Belle II Software  release-05-02-19
CombinedPIDPerformanceModule.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jake Bennett
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef COMBINEDPIDPERFORMANCEMODULE_H_
12 #define COMBINEDPIDPERFORMANCEMODULE_H_
13 
14 #include <framework/core/Module.h>
15 #include <TFile.h>
16 #include <TList.h>
17 #include <TEfficiency.h>
18 #include <TH3F.h>
19 
20 #include <mdst/dataobjects/MCParticle.h>
21 #include <mdst/dataobjects/PIDLikelihood.h>
22 #include <mdst/dataobjects/Track.h>
23 #include <mdst/dataobjects/TrackFitResult.h>
24 
25 #include <framework/datastore/StoreArray.h>
26 
27 namespace Belle2 {
39  class CombinedPIDPerformanceModule : public Module {
40 
41  public:
42 
45 
48 
50  virtual void initialize() override;
51 
53  virtual void event() override;
54 
56  virtual void terminate() override;
57 
58  private:
59 
60  // required input
67  TList* m_histoList{nullptr};
68 
70  TEfficiency* createEfficiency(const char* name, const char* title,
71  Int_t nbins, Double_t min, Double_t max, TList* histoList = NULL);
72 
74  void fillEfficiencyHistos(const TrackFitResult* fitResult, const PIDLikelihood* pid, int pdg);
75 
76  /* user-defined parameters */
77  std::string m_rootFileName;
78  std::string m_mdstType;
79  int m_nbins;
80  double m_pLow;
81  double m_pHigh;
83  /* ROOT file related parameters */
84  TFile* m_rootFilePtr;
86  /* list of histograms filled per MCParticle found in the event */
87  // TEfficiencies for each particle type
88  std::vector< TEfficiency* > m_piK_Efficiencies;
89  std::vector< TEfficiency* > m_Kpi_Efficiencies;
90  std::vector< TEfficiency* > m_ppi_Efficiencies;
91  std::vector< TEfficiency* > m_pK_Efficiencies;
92  std::vector< TEfficiency* > m_dpi_Efficiencies;
93  std::vector< TEfficiency* > m_epi_Efficiencies;
94  std::vector< TEfficiency* > m_mpi_Efficiencies;
96  // TEfficiencies for fake rates
97  std::vector< TEfficiency* > m_piK_FakeRates;
98  std::vector< TEfficiency* > m_Kpi_FakeRates;
99  std::vector< TEfficiency* > m_ppi_FakeRates;
100  std::vector< TEfficiency* > m_pK_FakeRates;
101  std::vector< TEfficiency* > m_dpi_FakeRates;
102  std::vector< TEfficiency* > m_epi_FakeRates;
103  std::vector< TEfficiency* > m_mpi_FakeRates;
105  TH3F* h_ROC[5][10] = {};
108  double pidvalue(float pida, float pidb);
109 
111  bool pidavail(const PIDLikelihood* pid, Const::DetectorSet dets);
112 
113  // determine which detectors to use for each particle
119  enum dettype {svd, cdc, top, arich, klm, ecl, dedx, dedxtop, dedxecl, all};
120  std::vector<int> detset;
121  std::vector<int> edetset;
123  };
125 } // end of namespace
126 
127 #endif
Belle2::CombinedPIDPerformanceModule::m_mdstType
std::string m_mdstType
flag for Belle/BelleII mdst files
Definition: CombinedPIDPerformanceModule.h:86
Belle2::CombinedPIDPerformanceModule::m_rootFileName
std::string m_rootFileName
root file name
Definition: CombinedPIDPerformanceModule.h:85
Belle2::CombinedPIDPerformanceModule::m_trackFitResults
StoreArray< TrackFitResult > m_trackFitResults
Required array of input TrackFitResults.
Definition: CombinedPIDPerformanceModule.h:70
Belle2::CombinedPIDPerformanceModule::fillEfficiencyHistos
void fillEfficiencyHistos(const TrackFitResult *fitResult, const PIDLikelihood *pid, int pdg)
method to fill TEfficiencies
Definition: CombinedPIDPerformanceModule.cc:215
Belle2::CombinedPIDPerformanceModule::m_epi_Efficiencies
std::vector< TEfficiency * > m_epi_Efficiencies
electron efficiencies
Definition: CombinedPIDPerformanceModule.h:101
Belle2::CombinedPIDPerformanceModule::m_ppi_FakeRates
std::vector< TEfficiency * > m_ppi_FakeRates
proton fake rates
Definition: CombinedPIDPerformanceModule.h:107
Belle2::CombinedPIDPerformanceModule::m_dpi_Efficiencies
std::vector< TEfficiency * > m_dpi_Efficiencies
deuteron efficiencies
Definition: CombinedPIDPerformanceModule.h:100
Belle2::CombinedPIDPerformanceModule::~CombinedPIDPerformanceModule
virtual ~CombinedPIDPerformanceModule()
Destructor.
Definition: CombinedPIDPerformanceModule.cc:36
Belle2::CombinedPIDPerformanceModule::event
virtual void event() override
This method is called for each event.
Definition: CombinedPIDPerformanceModule.cc:168
Belle2::CombinedPIDPerformanceModule::m_pHigh
double m_pHigh
upper bound of momentum range
Definition: CombinedPIDPerformanceModule.h:89
Belle2::CombinedPIDPerformanceModule::initialize
virtual void initialize() override
Initialize the module.
Definition: CombinedPIDPerformanceModule.cc:38
Belle2::CombinedPIDPerformanceModule::m_piK_FakeRates
std::vector< TEfficiency * > m_piK_FakeRates
pion fake rates
Definition: CombinedPIDPerformanceModule.h:105
Belle2::CombinedPIDPerformanceModule::m_histoList
TList * m_histoList
list to store TObjects
Definition: CombinedPIDPerformanceModule.h:75
Belle2::Const::DetectorSet
The DetectorSet class for sets of detector IDs in the form of EDetector values.
Definition: Const.h:66
Belle2::PIDLikelihood
Class to collect log likelihoods from TOP, ARICH, dEdx, ECL and KLM aimed for output to mdst includes...
Definition: PIDLikelihood.h:37
Belle2::CombinedPIDPerformanceModule::muonSet
Const::DetectorSet muonSet
muons
Definition: CombinedPIDPerformanceModule.h:124
Belle2::CombinedPIDPerformanceModule::m_epi_FakeRates
std::vector< TEfficiency * > m_epi_FakeRates
electron fake rates
Definition: CombinedPIDPerformanceModule.h:110
Belle2::CombinedPIDPerformanceModule::pidvalue
double pidvalue(float pida, float pidb)
returns the likelihood ratio for given log likelihoods
Definition: CombinedPIDPerformanceModule.cc:400
Belle2::TrackFitResult
Values of the result of a track fit with a given particle hypothesis.
Definition: TrackFitResult.h:59
Belle2::CombinedPIDPerformanceModule::h_ROC
TH3F * h_ROC[5][10]
ROC histograms.
Definition: CombinedPIDPerformanceModule.h:113
Belle2::CombinedPIDPerformanceModule::dettype
dettype
enumeration for detector numbering
Definition: CombinedPIDPerformanceModule.h:127
Belle2::CombinedPIDPerformanceModule::edetset
std::vector< int > edetset
set of detectors used electrons
Definition: CombinedPIDPerformanceModule.h:129
Belle2::CombinedPIDPerformanceModule::m_Kpi_FakeRates
std::vector< TEfficiency * > m_Kpi_FakeRates
kaon fake rates
Definition: CombinedPIDPerformanceModule.h:106
Belle2::CombinedPIDPerformanceModule::m_rootFilePtr
TFile * m_rootFilePtr
pointer at root file used for storing histograms
Definition: CombinedPIDPerformanceModule.h:92
Belle2::CombinedPIDPerformanceModule::m_mcParticles
StoreArray< MCParticle > m_mcParticles
Required array of input MCParticles.
Definition: CombinedPIDPerformanceModule.h:72
Belle2::CombinedPIDPerformanceModule::m_ppi_Efficiencies
std::vector< TEfficiency * > m_ppi_Efficiencies
proton efficiencies
Definition: CombinedPIDPerformanceModule.h:98
Belle2::CombinedPIDPerformanceModule::m_pLow
double m_pLow
lower bound of momentum range
Definition: CombinedPIDPerformanceModule.h:88
Belle2::CombinedPIDPerformanceModule::m_mpi_FakeRates
std::vector< TEfficiency * > m_mpi_FakeRates
muon fake rates
Definition: CombinedPIDPerformanceModule.h:111
Belle2::CombinedPIDPerformanceModule::createEfficiency
TEfficiency * createEfficiency(const char *name, const char *title, Int_t nbins, Double_t min, Double_t max, TList *histoList=NULL)
method to create TEfficiencies
Definition: CombinedPIDPerformanceModule.cc:387
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::CombinedPIDPerformanceModule::detset
std::vector< int > detset
set of detectors used for hadrons
Definition: CombinedPIDPerformanceModule.h:128
Belle2::CombinedPIDPerformanceModule::m_mpi_Efficiencies
std::vector< TEfficiency * > m_mpi_Efficiencies
muon efficiencies
Definition: CombinedPIDPerformanceModule.h:102
Belle2::CombinedPIDPerformanceModule::chargedSet
Const::DetectorSet chargedSet
pions, kaons, protons
Definition: CombinedPIDPerformanceModule.h:122
Belle2::CombinedPIDPerformanceModule::m_Kpi_Efficiencies
std::vector< TEfficiency * > m_Kpi_Efficiencies
kaon efficiencies
Definition: CombinedPIDPerformanceModule.h:97
Belle2::CombinedPIDPerformanceModule::terminate
virtual void terminate() override
End of the event processing.
Definition: CombinedPIDPerformanceModule.cc:198
Belle2::CombinedPIDPerformanceModule::m_dpi_FakeRates
std::vector< TEfficiency * > m_dpi_FakeRates
deuteron fake rates
Definition: CombinedPIDPerformanceModule.h:109
Belle2::CombinedPIDPerformanceModule::m_piK_Efficiencies
std::vector< TEfficiency * > m_piK_Efficiencies
pion efficiencies
Definition: CombinedPIDPerformanceModule.h:96
Belle2::CombinedPIDPerformanceModule::m_pidLikelihoods
StoreArray< PIDLikelihood > m_pidLikelihoods
Required array of input PIDLikelihoods.
Definition: CombinedPIDPerformanceModule.h:71
Belle2::CombinedPIDPerformanceModule::m_pK_Efficiencies
std::vector< TEfficiency * > m_pK_Efficiencies
proton efficiencies
Definition: CombinedPIDPerformanceModule.h:99
Belle2::CombinedPIDPerformanceModule::electronSet
Const::DetectorSet electronSet
electrons
Definition: CombinedPIDPerformanceModule.h:123
Belle2::StoreArray
Accessor to arrays stored in the data store.
Definition: ECLMatchingPerformanceExpertModule.h:33
Belle2::CombinedPIDPerformanceModule::m_tracks
StoreArray< Track > m_tracks
Required array of input Tracks.
Definition: CombinedPIDPerformanceModule.h:69
Belle2::CombinedPIDPerformanceModule::m_nbins
int m_nbins
number of momentum bins
Definition: CombinedPIDPerformanceModule.h:87
Belle2::CombinedPIDPerformanceModule::CombinedPIDPerformanceModule
CombinedPIDPerformanceModule()
Default constructor.
Definition: CombinedPIDPerformanceModule.cc:22
Belle2::CombinedPIDPerformanceModule::pidavail
bool pidavail(const PIDLikelihood *pid, Const::DetectorSet dets)
determine the availability of the given detector(s)
Definition: CombinedPIDPerformanceModule.cc:416
Belle2::CombinedPIDPerformanceModule::m_pK_FakeRates
std::vector< TEfficiency * > m_pK_FakeRates
proton fake rates
Definition: CombinedPIDPerformanceModule.h:108