BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnPidQa.h
Go to the documentation of this file.
1
/**
2
* \file BmnPidQa.h
3
* \brief FairTask for pid performance calculation.
4
* \author Andrey Lebedev <andrey.lebedev@gsi.de> - original author for CBM experiment
5
* \author Sergey Merts <sergey.merts@gmail.com> - modifications for BMN experiment
6
* \date 2007-2021
7
*/
8
9
#ifndef BMNPIDQA_H_
10
#define BMNPIDQA_H_
11
12
#include "BmnGlobalTrack.h"
13
#include "
BmnMCTrackCreator.h
"
14
#include "FairTask.h"
15
#include "
TDatabasePDG.h
"
16
#include "
TParticlePDG.h
"
17
18
#include <unordered_map>
19
20
class
BmnHistManager
;
21
class
BmnTrackMatch
;
22
class
BmnMCTrackCreator
;
23
24
using
std::multimap;
25
using
std::string;
26
using
std::unordered_map;
27
using
std::vector;
28
29
class
BmnPidQa
:
public
FairTask
30
{
31
public
:
32
/**
33
* \brief Constructor.
34
*/
35
BmnPidQa
() {};
36
37
/**
38
* \brief Constructor.
39
*/
40
BmnPidQa
(
TString
name,
TString
storageName =
"canvStorage"
);
41
42
/**
43
* \brief Destructor.
44
*/
45
virtual
~BmnPidQa
();
46
47
/**
48
* \brief Derived from FairTask.
49
*/
50
virtual
InitStatus
Init
();
51
52
/**
53
* \brief Derived from FairTask.
54
*/
55
virtual
void
Exec
(
Option_t
* opt);
56
57
/**
58
* \brief Derived from FairTask.
59
*/
60
virtual
void
Finish
();
61
62
TParticlePDG
*
GetParticleExtend
(
Int_t
pdgCode);
63
64
void
SetOutputDir
(
const
std::string& dir) {
fOutputDir
= dir; }
65
66
void
SetPRange
(
Int_t
bins,
Int_t
min
,
Int_t
max
)
67
{
68
fPRangeBins
= bins;
69
fPRangeMin
=
min
;
70
fPRangeMax
=
max
;
71
}
72
73
void
SetOnlyPrimes
(
const
Bool_t
prime) {
fPrimes
= prime; }
74
75
Bool_t
GetOnlyPrimes
()
const
{
return
fPrimes
; }
76
77
private
:
78
Int_t
EnumToPdg
(PidParticles part);
79
80
/**
81
* \brief Read data branches from input data files.
82
*/
83
void
ReadDataBranches
();
84
85
void
CreateH1
(
const
string
& name,
86
const
string
& xTitle,
87
const
string
& yTitle,
88
Int_t
nofBins,
89
Double_t
minBin,
90
Double_t
maxBin);
91
92
void
CreateH2
(
const
string
& name,
93
const
string
& xTitle,
94
const
string
& yTitle,
95
const
string
& zTitle,
96
Int_t
nofBinsX,
97
Double_t
minBinX,
98
Double_t
maxBinX,
99
Int_t
nofBinsY,
100
Double_t
minBinY,
101
Double_t
maxBinY);
102
103
void
CreateTrackHitsHistogram
(
const
string
& detName);
104
105
void
ReadEventHeader
();
106
107
void
CreateHistograms
();
108
void
ProcessGlobal
();
109
110
TString
fOutName
;
111
TString
fStorageName
;
112
113
BmnHistManager
*
fHM
;
// Histogram manager
114
string
fOutputDir
;
// Output directory for results
115
116
Bool_t
fPrimes
;
// calculate efficiency only for primaries or for all particles
117
118
Double_t
fPRangeMin
;
// Minimum momentum for tracks for efficiency calculation [GeV/c]
119
Double_t
fPRangeMax
;
// Maximum momentum for tracks for efficiency calculation [GeV/c]
120
Int_t
fPRangeBins
;
// Number of bins for efficiency vs. momentum histogram
121
122
Double_t
fBetaRangeMin
;
// Minimum rigidity for tracks for efficiency calculation [GeV/c]
123
Double_t
fBetaRangeMax
;
// Maximum rigidity for tracks for efficiency calculation [GeV/c]
124
Int_t
fBetaRangeBins
;
// Number of bins for rigidity-momentum histogram
125
126
Double_t
fVelocRangeMin
;
// Minimum rigidity for tracks for efficiency calculation [GeV/c]
127
Double_t
fVelocRangeMax
;
// Maximum rigidity for tracks for efficiency calculation [GeV/c]
128
Int_t
fVelocRangeBins
;
// Number of bins for rigidity-momentum histogram
129
130
Double_t
fTimeRangeMin
;
131
Double_t
fTimeRangeMax
;
132
Int_t
fTimeRangeBins
;
133
134
Double_t
fMassRangeMin
;
135
Double_t
fMassRangeMax
;
136
Int_t
fMassRangeBins
;
137
138
Double_t
fNHitsRangeMin
;
// Minimum hits for tracks for efficiency calculation [GeV/c]
139
Double_t
fNHitsRangeMax
;
// Maximum hits for tracks for efficiency calculation [GeV/c]
140
Int_t
fNHitsRangeBins
;
// Number of bins for rigidity-momentum histogram
141
142
TDatabasePDG
*
db
=
nullptr
;
143
144
vector<TParticlePDG*>
fParticles
;
145
// mass table for particles
146
unordered_map<Double_t, string>
fMassTable
;
// {Mass: Particle name}
147
148
string
GetParticleName
(
Double_t
mass);
149
150
void
MassTablePrint
();
151
// key - Particle name
152
// value[0] -counter for true total number of particle of one sort
153
// value[1] - counter of true identifications
154
// value[2] - counter of false identifications
155
// value[3] - counter for undivided number of particle of one sort
156
unordered_map<string, vector<Int_t>>
fPidStatistics400
,
fPidStatistics700
;
157
void
PidStatisticsPrint400
();
158
void
PidStatisticsPrint700
();
159
160
// Pointers to data arrays
161
TClonesArray
*
fMCTracks
;
// CbmMCTrack array
162
TClonesArray
*
fGlobalTracks
;
// BmnGlobalTrack array
163
TClonesArray
*
fGlobalTrackMatches
;
// BmnGlobalTrackMatches array
164
TClonesArray
*
fTof400Hits
;
165
TClonesArray
*
fTof700Hits
;
166
167
BmnPidQa
(
const
BmnPidQa
&);
168
BmnPidQa
&
operator=
(
const
BmnPidQa
&);
169
170
ClassDef
(
BmnPidQa
, 1);
171
};
172
173
#endif
/* BMNPIDQA_H_ */
min
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition
P4_F32vec4.h:30
max
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition
P4_F32vec4.h:31
BmnMCTrackCreator.h
Creates BmnMCTrack objects.
Bool_t
bool Bool_t
Int_t
int Int_t
Double_t
double Double_t
Option_t
const char Option_t
ClassDef
#define ClassDef(name, id)
TDatabasePDG.h
TParticlePDG.h
BmnHistManager
Histogram manager.
Definition
BmnHistManager.h:42
BmnMCTrackCreator
Definition
BmnMCTrackCreator.h:35
BmnPidQa::GetParticleName
string GetParticleName(Double_t mass)
Definition
BmnPidQa.cxx:570
BmnPidQa::BmnPidQa
BmnPidQa()
Constructor.
Definition
BmnPidQa.h:35
BmnPidQa::~BmnPidQa
virtual ~BmnPidQa()
Destructor.
Definition
BmnPidQa.cxx:96
BmnPidQa::fNHitsRangeMin
Double_t fNHitsRangeMin
Definition
BmnPidQa.h:138
BmnPidQa::ReadDataBranches
void ReadDataBranches()
Read data branches from input data files.
Definition
BmnPidQa.cxx:134
BmnPidQa::fTof400Hits
TClonesArray * fTof400Hits
Definition
BmnPidQa.h:164
BmnPidQa::fBetaRangeMin
Double_t fBetaRangeMin
Definition
BmnPidQa.h:122
BmnPidQa::SetPRange
void SetPRange(Int_t bins, Int_t min, Int_t max)
Definition
BmnPidQa.h:66
BmnPidQa::fOutName
TString fOutName
Definition
BmnPidQa.h:110
BmnPidQa::fParticles
vector< TParticlePDG * > fParticles
Definition
BmnPidQa.h:144
BmnPidQa::CreateTrackHitsHistogram
void CreateTrackHitsHistogram(const string &detName)
Definition
BmnPidQa.cxx:180
BmnPidQa::fOutputDir
string fOutputDir
Definition
BmnPidQa.h:114
BmnPidQa::fTimeRangeMin
Double_t fTimeRangeMin
Definition
BmnPidQa.h:130
BmnPidQa::fPRangeBins
Int_t fPRangeBins
Definition
BmnPidQa.h:120
BmnPidQa::CreateH2
void CreateH2(const string &name, const string &xTitle, const string &yTitle, const string &zTitle, Int_t nofBinsX, Double_t minBinX, Double_t maxBinX, Int_t nofBinsY, Double_t minBinY, Double_t maxBinY)
Definition
BmnPidQa.cxx:164
BmnPidQa::fPrimes
Bool_t fPrimes
Definition
BmnPidQa.h:116
BmnPidQa::fMassRangeMax
Double_t fMassRangeMax
Definition
BmnPidQa.h:135
BmnPidQa::EnumToPdg
Int_t EnumToPdg(PidParticles part)
Definition
BmnPidQa.cxx:535
BmnPidQa::fNHitsRangeMax
Double_t fNHitsRangeMax
Definition
BmnPidQa.h:139
BmnPidQa::CreateH1
void CreateH1(const string &name, const string &xTitle, const string &yTitle, Int_t nofBins, Double_t minBin, Double_t maxBin)
Definition
BmnPidQa.cxx:153
BmnPidQa::Finish
virtual void Finish()
Derived from FairTask.
Definition
BmnPidQa.cxx:115
BmnPidQa::fNHitsRangeBins
Int_t fNHitsRangeBins
Definition
BmnPidQa.h:140
BmnPidQa::ProcessGlobal
void ProcessGlobal()
Definition
BmnPidQa.cxx:347
BmnPidQa::Init
virtual InitStatus Init()
Derived from FairTask.
Definition
BmnPidQa.cxx:102
BmnPidQa::fStorageName
TString fStorageName
Definition
BmnPidQa.h:111
BmnPidQa::fBetaRangeBins
Int_t fBetaRangeBins
Definition
BmnPidQa.h:124
BmnPidQa::fPidStatistics700
unordered_map< string, vector< Int_t > > fPidStatistics700
Definition
BmnPidQa.h:156
BmnPidQa::MassTablePrint
void MassTablePrint()
Definition
BmnPidQa.cxx:580
BmnPidQa::SetOutputDir
void SetOutputDir(const std::string &dir)
Definition
BmnPidQa.h:64
BmnPidQa::fVelocRangeMin
Double_t fVelocRangeMin
Definition
BmnPidQa.h:126
BmnPidQa::PidStatisticsPrint700
void PidStatisticsPrint700()
Definition
BmnPidQa.cxx:591
BmnPidQa::fGlobalTrackMatches
TClonesArray * fGlobalTrackMatches
Definition
BmnPidQa.h:163
BmnPidQa::fMCTracks
TClonesArray * fMCTracks
Definition
BmnPidQa.h:161
BmnPidQa::PidStatisticsPrint400
void PidStatisticsPrint400()
Definition
BmnPidQa.cxx:586
BmnPidQa::ReadEventHeader
void ReadEventHeader()
BmnPidQa::fPRangeMin
Double_t fPRangeMin
Definition
BmnPidQa.h:118
BmnPidQa::GetOnlyPrimes
Bool_t GetOnlyPrimes() const
Definition
BmnPidQa.h:75
BmnPidQa::fVelocRangeBins
Int_t fVelocRangeBins
Definition
BmnPidQa.h:128
BmnPidQa::GetParticleExtend
TParticlePDG * GetParticleExtend(Int_t pdgCode)
Definition
BmnPidQa.cxx:560
BmnPidQa::CreateHistograms
void CreateHistograms()
Definition
BmnPidQa.cxx:193
BmnPidQa::fHM
BmnHistManager * fHM
Definition
BmnPidQa.h:113
BmnPidQa::BmnPidQa
BmnPidQa(const BmnPidQa &)
BmnPidQa::fMassRangeBins
Int_t fMassRangeBins
Definition
BmnPidQa.h:136
BmnPidQa::operator=
BmnPidQa & operator=(const BmnPidQa &)
BmnPidQa::db
TDatabasePDG * db
Definition
BmnPidQa.h:142
BmnPidQa::fGlobalTracks
TClonesArray * fGlobalTracks
Definition
BmnPidQa.h:162
BmnPidQa::Exec
virtual void Exec(Option_t *opt)
Derived from FairTask.
Definition
BmnPidQa.cxx:110
BmnPidQa::fBetaRangeMax
Double_t fBetaRangeMax
Definition
BmnPidQa.h:123
BmnPidQa::fPRangeMax
Double_t fPRangeMax
Definition
BmnPidQa.h:119
BmnPidQa::SetOnlyPrimes
void SetOnlyPrimes(const Bool_t prime)
Definition
BmnPidQa.h:73
BmnPidQa::fVelocRangeMax
Double_t fVelocRangeMax
Definition
BmnPidQa.h:127
BmnPidQa::fTimeRangeMax
Double_t fTimeRangeMax
Definition
BmnPidQa.h:131
BmnPidQa::fMassTable
unordered_map< Double_t, string > fMassTable
Definition
BmnPidQa.h:146
BmnPidQa::fMassRangeMin
Double_t fMassRangeMin
Definition
BmnPidQa.h:134
BmnPidQa::fPidStatistics400
unordered_map< string, vector< Int_t > > fPidStatistics400
Definition
BmnPidQa.h:156
BmnPidQa::fTimeRangeBins
Int_t fTimeRangeBins
Definition
BmnPidQa.h:132
BmnPidQa::fTof700Hits
TClonesArray * fTof700Hits
Definition
BmnPidQa.h:165
BmnTrackMatch
Definition
BmnTrackMatch.h:20
FairTask
TClonesArray
TDatabasePDG
TParticlePDG
TString
QA
BmnPidQa.h
Generated on
for BmnRoot by
1.17.0