24 #include "AliKFParticle.h" 36 fBGEventCounter(NULL),
37 fBGEventENegCounter(NULL),
38 fBGEventMesonCounter(NULL),
39 fBGEventBufferCounter(NULL),
43 fNBinsMultiplicity(0),
44 fBinLimitsArrayZ(NULL),
45 fBinLimitsArrayMultiplicity(NULL),
57 fBGEventCounter(NULL),
58 fBGEventENegCounter(NULL),
59 fBGEventMesonCounter(NULL),
60 fBGEventBufferCounter(NULL),
64 fNBinsMultiplicity(binsMultiplicity),
65 fBinLimitsArrayZ(NULL),
66 fBinLimitsArrayMultiplicity(NULL),
100 if(collisionSystem > 0 && collisionSystem < 8){
101 Double_t fBinLimitsArrayZPbPb[8] = {-50, -5.5, -2.9, -0.65,
102 1.45, 3.65, 6.15, 50};
106 }
else if(collisionSystem == 0){
107 Double_t fBinLimitsArrayZpp[8] = {-50, -3.375, -1.605, -0.225,
108 1.065, 2.445, 4.245, 50};
113 Double_t fBinLimitsArrayZpPb[8] = {-50, -5.85, -3.35, -1.15,
114 0.85, 2.95, 5.55, 50};
124 Double_t fBinLimitsArrayMultiplicitypp[5] = {0., 8.5, 16.5, 27.5, 200.};
128 if(collisionSystem > 0 && collisionSystem < 8){
129 if(centMin == 0 && centMax == 5){
130 Double_t fBinLimitsArrayMultiplicityPbPb0005[5] = {0., 1540., 1665., 1780., 5000};
134 }
else if(centMin == 0 && centMax == 10){
135 Double_t fBinLimitsArrayMultiplicityPbPb0010[5] = {0., 1360., 1520., 1685., 5000};
139 }
else if(centMin == 0 && centMax == 20){
140 Double_t fBinLimitsArrayMultiplicityPbPb0020[5] = {0., 1110., 1360., 1600., 5000};
144 }
else if(centMin == 0 && centMax == 80){
145 Double_t fBinLimitsArrayMultiplicityPbPb0080[5] = {0., 890., 1240., 1540., 5000};
149 }
else if(centMin == 5 && centMax == 10){
150 Double_t fBinLimitsArrayMultiplicityPbPb0510[5] = {0., 1250., 1345., 1445., 5000};
154 }
else if(centMin == 10 && centMax == 20){
155 Double_t fBinLimitsArrayMultiplicityPbPb1020[5] = {0., 915., 1020., 1130., 5000};
159 }
else if(centMin == 20 && centMax == 40){
160 Double_t fBinLimitsArrayMultiplicityPbPb2040[5] = {0., 510., 625., 730., 5000};
164 }
else if(centMin == 40 && centMax == 80){
165 Double_t fBinLimitsArrayMultiplicityPbPb4080[5] = {0., 185., 250., 300., 5000};
169 }
else if(centMin == 60 && centMax == 80){
170 Double_t fBinLimitsArrayMultiplicityPbPb6080[5] = {0., 55., 80., 100., 5000};
175 Double_t fBinLimitsArrayMultiplicityPbPb[5] = {0., 510., 625., 730., 5000};
180 }
else if(collisionSystem == 8 || collisionSystem == 9){
181 Double_t fBinLimitsArrayMultiplicitypPb[5] = {0., 7.5, 16.5, 29.5, 500};
185 if(centMin == 0 && centMax == 20){
186 Double_t fBinLimitsArrayMultiplicitypPb0020[5] = {0., 31.5, 40.5, 50.5, 500};
190 }
else if(centMin == 20 && centMax == 40){
191 Double_t fBinLimitsArrayMultiplicitypPb2040[5] = {0., 19.5, 25.5, 32.5, 500};
195 }
else if(centMin == 40 && centMax == 60){
196 Double_t fBinLimitsArrayMultiplicitypPb4060[5] = {0., 12.5, 16.5, 22.5, 500};
200 }
else if(centMin == 60 && centMax == 80){
201 Double_t fBinLimitsArrayMultiplicitypPb6080[5] = {0., 5.5, 9.5, 13.5, 500};
205 }
else if(centMin == 60 && centMax == 100){
206 Double_t fBinLimitsArrayMultiplicitypPb60100[5] = {0., 2.5, 6.5, 11.5, 500};
213 if (mode == 0 || mode == 1) {
215 Double_t fBinLimitsArrayMultiplicitypp[5] = {2., 3., 4., 5., 9999.};
219 if(collisionSystem > 0 && collisionSystem < 8){
220 if(centMin == 0 && centMax == 5){
221 Double_t fBinLimitsArrayMultiplicityPbPb0005[5] = {0., 27., 31., 36., 100.};
225 }
else if(centMin == 0 && centMax == 10){
226 Double_t fBinLimitsArrayMultiplicityPbPb0010[5] = {0., 25., 30., 36., 100.};
230 }
else if(centMin == 0 && centMax == 20){
231 Double_t fBinLimitsArrayMultiplicityPbPb0020[5] = {0., 22., 27., 33., 100.};
235 }
else if(centMin == 0 && centMax == 80){
236 Double_t fBinLimitsArrayMultiplicityPbPb0080[5] = {0., 18., 25., 32., 100.};
240 }
else if(centMin == 5 && centMax == 10){
241 Double_t fBinLimitsArrayMultiplicityPbPb0510[5] = {0., 23., 27., 32., 100.};
245 }
else if(centMin == 10 && centMax == 20){
246 Double_t fBinLimitsArrayMultiplicityPbPb1020[5] = {0., 18., 22., 27., 100.};
250 }
else if(centMin == 20 && centMax == 40){
251 Double_t fBinLimitsArrayMultiplicityPbPb2040[5] = {0., 11., 14., 18., 100.};
255 }
else if(centMin == 40 && centMax == 80){
256 Double_t fBinLimitsArrayMultiplicityPbPb4080[5] = {0., 5., 7., 11., 100.};
260 }
else if(centMin == 60 && centMax == 80){
261 Double_t fBinLimitsArrayMultiplicityPbPb6080[5] = {0., 2., 3., 5., 100.};
266 Double_t fBinLimitsArrayMultiplicityPbPb[5] = {0., 11., 14., 18., 100.};
272 }
else if (mode == 2 || mode == 3 || mode == 4 || mode == 5){
273 if(collisionSystem > 0 && collisionSystem < 8){
274 if(centMin == 0 && centMax == 5){
275 Double_t fBinLimitsArrayMultiplicityPbPb0005[5] = {0., 27., 31., 36., 100.};
279 }
else if(centMin == 0 && centMax == 10){
280 Double_t fBinLimitsArrayMultiplicityPbPb0010[5] = {0., 25., 30., 36., 100.};
284 }
else if(centMin == 0 && centMax == 20){
285 Double_t fBinLimitsArrayMultiplicityPbPb0020[5] = {0., 22., 27., 33., 100.};
289 }
else if(centMin == 0 && centMax == 80){
290 Double_t fBinLimitsArrayMultiplicityPbPb0080[5] = {0., 18., 25., 32., 100.};
294 }
else if(centMin == 5 && centMax == 10){
295 Double_t fBinLimitsArrayMultiplicityPbPb0510[5] = {0., 23., 27., 32., 100.};
299 }
else if(centMin == 10 && centMax == 20){
300 Double_t fBinLimitsArrayMultiplicityPbPb1020[5] = {0., 18., 22., 27., 100.};
304 }
else if(centMin == 20 && centMax == 40){
305 Double_t fBinLimitsArrayMultiplicityPbPb2040[5] = {0., 11., 14., 18., 100.};
309 }
else if(centMin == 40 && centMax == 80){
310 Double_t fBinLimitsArrayMultiplicityPbPb4080[5] = {0., 5., 7., 11., 100.};
314 }
else if(centMin == 60 && centMax == 80){
315 Double_t fBinLimitsArrayMultiplicityPbPb6080[5] = {0., 2., 3., 5., 100.};
320 Double_t fBinLimitsArrayMultiplicityPbPb[5] = {0., 11., 14., 18., 100.};
329 if (mode == 2 || mode == 3){
330 Double_t fBinLimitsArrayMultiplicitypp_pPbConvCalo[5] = {1., 2., 3., 4., 9999};
336 Double_t fBinLimitsArrayMultiplicitypp_pPbCaloCalo[5] = {2., 3., 4., 5., 9999};
441 if(multiplicityBinLimitsArray){
514 Double_t BGProbabilityLookup[7][4] =
516 {0.243594,0.279477,0.305104,0.315927},
517 {0.241964,0.272995,0.307165,0.292248},
518 {0.241059,0.27509,0.283657,0.310512},
519 {0.23888,0.283418,0.297232,0.348188},
520 {0.245555,0.281218,0.317236,0.323495},
521 {0.244572,0.259498,0.278383,0.284696},
522 {0.24703, 0.275265,0.284004,0.343584}
563 return fNBinsMultiplicity-1;
602 for(
Int_t i=0; i< eventGammas->GetEntries();i++){
637 for(
Int_t i=0; i< eventMothers->GetEntries();i++){
667 for(
const auto &mother : eventMother){
696 for(
Int_t i=0; i< eventENeg->GetEntriesFast();i++){
733 cout<<
"Getting the data for z bin: "<<z<<endl;
736 cout<<
"Getting the data for multiplicity bin: "<<multiplicity<<endl;
738 if(
fBGEvents[z][multiplicity][event].size()>0){
739 cout<<
"Event: "<<
event<<
" has: "<<
fBGEvents[z][multiplicity][event].size()<<endl;
AliGammaConversionBGVector fBGEventsENeg
Double_t ** fBGProbability
bg counter
std::vector< AliGammaConversionBGEventVector > AliGammaConversionMultipicityVector
Int_t GetNBackgroundEventsInBuffer(Int_t binz, int binMult) const
GammaConversionVertex *** fBGEventVertex
prob per bin
Double_t * fBinLimitsArrayZ
void AddMesonEvent(TList *const eventMothers, Double_t xvalue, Double_t yvalue, Double_t zvalue, Int_t multiplicity, Double_t epvalue=-100)
AliGammaConversionAODVector * GetBGGoodENeg(Int_t event, Double_t zvalue, Int_t multiplicity)
AliGammaConversionBGVector fBGEvents
bin limit multiplicity array
std::vector< AliGammaConversionMotherBGEventVector > AliGammaConversionMotherMultipicityVector
AliGammaConversionAODBGHandler & operator=(const AliGammaConversionAODBGHandler &g)
std::vector< AliAODConversionPhoton * > AliGammaConversionAODVector
void AddEvent(TList *const eventGammas, Double_t xvalue, Double_t yvalue, Double_t zvalue, Int_t multiplicity, Double_t epvalue=-100)
std::vector< AliAODConversionMother * > AliGammaConversionMotherAODVector
Int_t ** fBGEventENegCounter
bg counter
void AddElectronEvent(TClonesArray *const eventENeg, Double_t zvalue, Int_t multiplicity)
void Initialize(Double_t *const zBinLimitsArray, Double_t *const multiplicityBinLimitsArray)
Int_t fNBinsZ
array of event vertex
AliGammaConversionAODBGHandler()
std::vector< AliGammaConversionMotherAODVector > AliGammaConversionMotherBGEventVector
Double_t nEvents
plot quality messages
virtual ~AliGammaConversionAODBGHandler()
Int_t ** fBGEventMesonCounter
bg electron counter
Int_t GetZBinIndex(Double_t z) const
AliGammaConversionAODVector * GetBGGoodV0s(Int_t zbin, Int_t mbin, Int_t event)
Double_t * fBinLimitsArrayMultiplicity
bin limits z array
AliGammaConversionMotherAODVector * GetBGGoodMesons(Int_t zbin, Int_t mbin, Int_t event)
std::vector< AliGammaConversionAODVector > AliGammaConversionBGEventVector
Int_t ** fBGEventBufferCounter
bg counter
Int_t GetMultiplicityBinIndex(Int_t mult) const
AliGammaConversionMotherBGVector fBGEventsMeson