@@ -166,10 +166,6 @@ struct RadialFlowDecorr {
166166 Configurable<float > cfgPtMin{" cfgPtMin" , 0 .2f , " min pT" };
167167 Configurable<float > cfgPtMax{" cfgPtMax" , 5 .0f , " max pT" };
168168 Configurable<float > cfgEtaCut{" cfgEtaCut" , 0 .8f , " |η| cut" };
169- Configurable<float > cfgTPCClsMin{" cfgTPCClsMin" , 70 .f , " min TPC clusters" };
170- Configurable<float > cfgChi2TPCMax{" cfgChi2TPCMax" , 4 .0f , " max TPC χ²" };
171- Configurable<float > cfgCutTpcChi2NCl{" cfgCutTpcChi2NCl" , 2 .5f , " Maximum TPCchi2NCl" };
172- Configurable<float > cfgCutItsChi2NCl{" cfgCutItsChi2NCl" , 36 .0f , " Maximum ITSchi2NCl" };
173169 Configurable<float > cfgCutVertex{" cfgCutVertex" , 10 .0f , " Accepted z-vertex range" };
174170 Configurable<float > cfgCutTracKDcaMaxZ{" cfgCutTracKDcaMaxZ" , 2 .0f , " Maximum DcaZ" };
175171 Configurable<float > cfgCutTracKDcaMaxXY{" cfgCutTracKDcaMaxXY" , 0 .2f , " Maximum DcaZ" };
@@ -193,10 +189,6 @@ struct RadialFlowDecorr {
193189 Configurable<float > cfgnSigmaCutTOF{" cfgnSigmaCutTOF" , 2 .0f , " PID nSigma cut for TOF" };
194190 Configurable<float > cfgnSigmaCutCombTPCTOF{" cfgnSigmaCutCombTPCTOF" , 2 .0f , " PID nSigma combined cut for TPC and TOF" };
195191
196- Configurable<float > cfgTpcElRejCutMin{" cfgTpcElRejCutMin" , -3 .0f , " Electron Rejection Cut Minimum" };
197- Configurable<float > cfgTpcElRejCutMax{" cfgTpcElRejCutMax" , 5 .0f , " Electron Rejection Cut Maximum" };
198- Configurable<float > cfgTpcElRejCut{" cfgTpcElRejCut" , 3 .0f , " TPC Hadron Rejection Cut" };
199-
200192 Configurable<float > cfgCutPtLower{" cfgCutPtLower" , 0 .2f , " Lower pT cut" };
201193 Configurable<float > cfgCutPtUpper{" cfgCutPtUpper" , 10 .0f , " Higher pT cut for inclusive hadron analysis" };
202194 Configurable<float > cfgCutPtUpperPID{" cfgCutPtUpperPID" , 6 .0f , " Higher pT cut for identified particle analysis" };
@@ -334,18 +326,6 @@ struct RadialFlowDecorr {
334326 histos.fill (HIST (" h3DnsigmaTpcVsPtBefCut_Cent_PrAll" ), cent, pt, track.tpcNSigmaPr ());
335327 histos.fill (HIST (" h3DnsigmaTofVsPtBefCut_Cent_PrAll" ), cent, pt, track.tofNSigmaPr ());
336328 histos.fill (HIST (" h3DnsigmaTpcVsTofBefCut_Cent_PrAll" ), cent, track.tofNSigmaPr (), track.tpcNSigmaPr ());
337-
338- histos.fill (HIST (" h3DnsigmaTpcVsPtBefCut_Cent" ), cent, pt, track.tpcNSigmaPi ());
339- histos.fill (HIST (" h3DnsigmaTofVsPtBefCut_Cent" ), cent, pt, track.tofNSigmaPi ());
340- histos.fill (HIST (" h3DnsigmaTpcVsTofBefCut_Cent" ), cent, track.tofNSigmaPi (), track.tpcNSigmaPi ());
341-
342- histos.fill (HIST (" h3DnsigmaTpcVsPtBefCut_Cent" ), cent, pt, track.tpcNSigmaKa ());
343- histos.fill (HIST (" h3DnsigmaTofVsPtBefCut_Cent" ), cent, pt, track.tofNSigmaKa ());
344- histos.fill (HIST (" h3DnsigmaTpcVsTofBefCut_Cent" ), cent, track.tofNSigmaKa (), track.tpcNSigmaKa ());
345-
346- histos.fill (HIST (" h3DnsigmaTpcVsPtBefCut_Cent" ), cent, pt, track.tpcNSigmaPr ());
347- histos.fill (HIST (" h3DnsigmaTofVsPtBefCut_Cent" ), cent, pt, track.tofNSigmaPr ());
348- histos.fill (HIST (" h3DnsigmaTpcVsTofBefCut_Cent" ), cent, track.tofNSigmaPr (), track.tpcNSigmaPr ());
349329 }
350330
351331 template <typename T>
@@ -375,10 +355,6 @@ struct RadialFlowDecorr {
375355 histos.fill (HIST (" h3DnsigmaTpcVsPtAftCut_Cent_PiAll" ), cent, pt, tpcPi);
376356 histos.fill (HIST (" h3DnsigmaTofVsPtAftCut_Cent_PiAll" ), cent, pt, tofPi);
377357 histos.fill (HIST (" h3DnsigmaTpcVsTofAftCut_Cent_PiAll" ), cent, tofPi, tpcPi);
378-
379- histos.fill (HIST (" h3DnsigmaTpcVsPtAftCut_Cent" ), cent, pt, tpcPi);
380- histos.fill (HIST (" h3DnsigmaTofVsPtAftCut_Cent" ), cent, pt, tofPi);
381- histos.fill (HIST (" h3DnsigmaTpcVsTofAftCut_Cent" ), cent, tofPi, tpcPi);
382358 }
383359 if (isSpecies[kKaPlusIdx ]) {
384360 histos.fill (HIST (" h3DnsigmaTpcVsPtAftCut_Cent_KaPlus" ), cent, pt, tpcKa);
@@ -394,10 +370,6 @@ struct RadialFlowDecorr {
394370 histos.fill (HIST (" h3DnsigmaTpcVsPtAftCut_Cent_KaAll" ), cent, pt, tpcKa);
395371 histos.fill (HIST (" h3DnsigmaTofVsPtAftCut_Cent_KaAll" ), cent, pt, tofKa);
396372 histos.fill (HIST (" h3DnsigmaTpcVsTofAftCut_Cent_KaAll" ), cent, tofKa, tpcKa);
397-
398- histos.fill (HIST (" h3DnsigmaTpcVsPtAftCut_Cent" ), cent, pt, tpcKa);
399- histos.fill (HIST (" h3DnsigmaTofVsPtAftCut_Cent" ), cent, pt, tofKa);
400- histos.fill (HIST (" h3DnsigmaTpcVsTofAftCut_Cent" ), cent, tofPi, tpcKa);
401373 }
402374 if (isSpecies[kPrIdx ]) {
403375 histos.fill (HIST (" h3DnsigmaTpcVsPtAftCut_Cent_Pr" ), cent, pt, tpcPr);
@@ -413,10 +385,6 @@ struct RadialFlowDecorr {
413385 histos.fill (HIST (" h3DnsigmaTpcVsPtAftCut_Cent_PrAll" ), cent, pt, tpcPr);
414386 histos.fill (HIST (" h3DnsigmaTofVsPtAftCut_Cent_PrAll" ), cent, pt, tofPr);
415387 histos.fill (HIST (" h3DnsigmaTpcVsTofAftCut_Cent_PrAll" ), cent, tofPr, tpcPr);
416-
417- histos.fill (HIST (" h3DnsigmaTpcVsPtAftCut_Cent" ), cent, pt, tpcPr);
418- histos.fill (HIST (" h3DnsigmaTofVsPtAftCut_Cent" ), cent, pt, tofPr);
419- histos.fill (HIST (" h3DnsigmaTpcVsTofAftCut_Cent" ), cent, tofPi, tpcPr);
420388 } else
421389 return ;
422390 }
@@ -751,6 +719,10 @@ struct RadialFlowDecorr {
751719 return ;
752720 }
753721 offsetFT0 = ccdb->getForTimeStamp <std::vector<o2::detectors::AlignParam>>(" FT0/Calib/Align" , timestamp);
722+ if (!offsetFT0) {
723+ LOGF (fatal, " Failed to load valid FT0 alignment from CCDB!" );
724+ return ;
725+ }
754726 mLastTimestamp = timestamp;
755727 LOGF (info, " Successfully loaded new alignment parameters for timestamp %llu" , timestamp);
756728 LOGF (info, " Offset for FT0A: x = %.3f y = %.3f z = %.3f\n " , (*offsetFT0)[0 ].getX (), (*offsetFT0)[0 ].getY (), (*offsetFT0)[0 ].getZ ());
@@ -1013,8 +985,8 @@ struct RadialFlowDecorr {
1013985 histos.add (" pmeanFT0Cmultpv" , " N_{PV}; AmplitudeA" , kTProfile , {nChAxis});
1014986 histos.add (" pmeanFT0C_cent" , " cent; AmplitudeA" , kTProfile , {centAxis1Per});
1015987
1016- histos.add <TProfile3D>(" pmean_cent_id_eta_FT0" , " ;cent;channel id; #eta;amplitude" , kTProfile3D , {{centAxis1Per}, {100 , -0.5 , 99 .5 }, {100 , -5.0 , 5.0 }});
1017- histos.add (" h3_cent_id_eta_FT0" , " ;cent;channel id; #eta" , kTH3F , {{centAxis1Per}, {100 , -0.5 , 99 .5 }, {100 , -5.0 , 5.0 }});
988+ histos.add <TProfile3D>(" pmean_cent_id_eta_FT0" , " ;cent;channel id; #eta;amplitude" , kTProfile3D , {{centAxis1Per}, {200 , -0.5 , 199 .5 }, {100 , -5.0 , 5.0 }});
989+ histos.add (" h3_cent_id_eta_FT0" , " ;cent;channel id; #eta" , kTH3F , {{centAxis1Per}, {200 , -0.5 , 199 .5 }, {100 , -5.0 , 5.0 }});
1018990
1019991 histos.add <TProfile2D>(" Prof_Cent_Nsp_Nchrec" , " ;cent;Species;#LT N_{PV}#GT" , kTProfile2D , {{centAxis1Per}, {spBinAxis}});
1020992 histos.add <TProfile2D>(" Prof_Mult_Nsp_Nchrec" , " ;N_{PV};Species;#LT N_{PV}#GT" , kTProfile2D , {{nChAxis}, {spBinAxis}});
@@ -1252,7 +1224,9 @@ struct RadialFlowDecorr {
12521224 if (hNumS && hNumF && hDenF) {
12531225 state.hFake [pidType] = reinterpret_cast <TH3F*>(hNumS->Clone (Form (" hFake%s" , suffix.c_str ())));
12541226 state.hFake [pidType]->Add (hNumF);
1255- state.hFake [pidType]->Add (hNumF2);
1227+ if (pidType != kInclusiveIdx && hNumF2) {
1228+ state.hFake [pidType]->Add (hNumF2);
1229+ }
12561230 state.hFake [pidType]->SetDirectory (nullptr );
12571231 state.hFake [pidType]->Divide (hDenF);
12581232 } else {
@@ -1485,16 +1459,11 @@ struct RadialFlowDecorr {
14851459
14861460 histos.fill (HIST (" Hist2D_globalTracks_PVTracks" ), multPV, trackSlice.size ());
14871461 histos.fill (HIST (" Hist2D_cent_nch" ), trackSlice.size (), cent);
1488-
1489- for (const auto & particle : partSlice) {
1490- if (!isParticleSelected (particle) || !particle.isPhysicalPrimary ())
1491- continue ;
14921462 for (const auto & track : trackSlice) {
14931463 if (!isTrackSelected (track))
14941464 continue ;
14951465 fillNSigmaBefCut (track, cent);
14961466 }
1497- }
14981467 }
14991468 }
15001469 }
@@ -1542,7 +1511,7 @@ struct RadialFlowDecorr {
15421511 float pt = particle.pt (), eta = particle.eta ();
15431512
15441513 bool isSpecies[KNsp] = {
1545- (absPdg == KPiPlus || absPdg == KKPlus || absPdg == KProton) , // kInclusiveIdx
1514+ true , // kInclusiveIdx
15461515 pdg == -KPiPlus, // kPiMinusIdx
15471516 pdg == KPiPlus, // kPiPlusIdx
15481517 absPdg == KPiPlus, // kPiAllIdx
@@ -1589,10 +1558,8 @@ struct RadialFlowDecorr {
15891558 bool isPi = (id == KPidPionOne);
15901559 bool isKa = (id == KPidKaonTwo);
15911560 bool isPr = (id == KPidProtonThree);
1592- bool isAny = (isPi || isKa || isPr); // Only true if it passed PID!
1593-
15941561 bool isSpecies[KNsp] = {
1595- isAny ,
1562+ true ,
15961563 isPi && sign < 0 , isPi && sign > 0 , isPi,
15971564 isKa && sign < 0 , isKa && sign > 0 , isKa,
15981565 isPr && sign < 0 , isPr && sign > 0 , isPr};
@@ -1608,18 +1575,12 @@ struct RadialFlowDecorr {
16081575 if (track.has_mcParticle ()) {
16091576 auto mcP = track.mcParticle ();
16101577 if (mcP.isPhysicalPrimary ()) {
1611- int mcPdg = std::abs (mcP.pdgCode ());
1612- if (mcPdg == KPiPlus || mcPdg == KKPlus || mcPdg == KProton) {
16131578 histos.fill (HIST (" ptResolution" ), mcP.pt (), (pt - mcP.pt ()) / mcP.pt ());
16141579 histos.fill (HIST (" etaResolution" ), mcP.eta (), eta - mcP.eta ());
16151580 histos.fill (HIST (" etaTruthReco" ), mcP.eta (), eta);
16161581 histos.fill (HIST (" vzResolution" ), mcP.vz (), (vz - mcP.vz ()) / mcP.vz ());
16171582 histos.fill (HIST (" TruthTracKVz" ), mcP.vz (), vz);
16181583 histos.fill (HIST (" h3_RecoMatchedToPrimary" ), multPV, mcP.pt (), mcP.eta ());
1619- } else {
1620- // Misidentified! Reconstructed track, but true particle is not pi/K/P
1621- histos.fill (HIST (" h3_RecoMatchedToPrimary_MisID" ), multPV, pt, eta);
1622- }
16231584 } else {
16241585 histos.fill (HIST (" h3_RecoUnMatchedToPrimary_Secondary" ), multPV, pt, eta);
16251586 }
@@ -1818,10 +1779,8 @@ struct RadialFlowDecorr {
18181779 bool isPi = (id == KPidPionOne);
18191780 bool isKa = (id == KPidKaonTwo);
18201781 bool isPr = (id == KPidProtonThree);
1821- bool isAny = (isPi || isKa || isPr); // Only true if it passed PID!
1822-
18231782 bool isSpecies[KNsp] = {
1824- isAny ,
1783+ true ,
18251784 isPi && sign < 0 , isPi && sign > 0 , isPi,
18261785 isKa && sign < 0 , isKa && sign > 0 , isKa,
18271786 isPr && sign < 0 , isPr && sign > 0 , isPr};
@@ -1937,7 +1896,7 @@ struct RadialFlowDecorr {
19371896 int absPdg = std::abs (pdgCode);
19381897
19391898 bool isSpecies[KNsp] = {
1940- (absPdg == KPiPlus || absPdg == KKPlus || absPdg == KProton) , // kInclusiveIdx
1899+ true , // kInclusiveIdx
19411900 pdgCode == -KPiPlus, // kPiMinusIdx
19421901 pdgCode == KPiPlus, // kPiPlusIdx
19431902 absPdg == KPiPlus, // kPiAllIdx
@@ -1982,9 +1941,8 @@ struct RadialFlowDecorr {
19821941 bool isPi = (id == KPidPionOne);
19831942 bool isKa = (id == KPidKaonTwo);
19841943 bool isPr = (id == KPidProtonThree);
1985- bool isAny = (isPi || isKa || isPr); // Only true if it passed PID!
19861944 bool isSpecies[KNsp] = {
1987- isAny ,
1945+ true ,
19881946 isPi && sign < 0 , isPi && sign > 0 , isPi,
19891947 isKa && sign < 0 , isKa && sign > 0 , isKa,
19901948 isPr && sign < 0 , isPr && sign > 0 , isPr};
@@ -2311,7 +2269,7 @@ struct RadialFlowDecorr {
23112269 int absPdg = std::abs (pdgCode);
23122270
23132271 bool isSpecies[KNsp] = {
2314- (absPdg == KPiPlus || absPdg == KKPlus || absPdg == KProton) , // kInclusiveIdx
2272+ true , // kInclusiveIdx
23152273 pdgCode == -KPiPlus, // kPiMinusIdx
23162274 pdgCode == KPiPlus, // kPiPlusIdx
23172275 absPdg == KPiPlus, // kPiAllIdx
@@ -2354,10 +2312,8 @@ struct RadialFlowDecorr {
23542312 bool isPi = (id == KPidPionOne);
23552313 bool isKa = (id == KPidKaonTwo);
23562314 bool isPr = (id == KPidProtonThree);
2357- bool isAny = (isPi || isKa || isPr); // Only true if it passed PID!
2358-
23592315 bool isSpecies[KNsp] = {
2360- isAny ,
2316+ true ,
23612317 isPi && sign < 0 , isPi && sign > 0 , isPi,
23622318 isKa && sign < 0 , isKa && sign > 0 , isKa,
23632319 isPr && sign < 0 , isPr && sign > 0 , isPr};
@@ -3080,10 +3036,8 @@ struct RadialFlowDecorr {
30803036 bool isPi = (id == KPidPionOne);
30813037 bool isKa = (id == KPidKaonTwo);
30823038 bool isPr = (id == KPidProtonThree);
3083- bool isAny = (isPi || isKa || isPr); // Only true if it passed PID!
3084-
30853039 bool isSpecies[KNsp] = {
3086- isAny ,
3040+ true ,
30873041 isPi && sign < 0 , isPi && sign > 0 , isPi,
30883042 isKa && sign < 0 , isKa && sign > 0 , isKa,
30893043 isPr && sign < 0 , isPr && sign > 0 , isPr};
@@ -3208,10 +3162,8 @@ struct RadialFlowDecorr {
32083162 bool isPi = (id == KPidPionOne);
32093163 bool isKa = (id == KPidKaonTwo);
32103164 bool isPr = (id == KPidProtonThree);
3211- bool isAny = (isPi || isKa || isPr); // Only true if it passed PID!
3212-
32133165 bool isSpecies[KNsp] = {
3214- isAny ,
3166+ true ,
32153167 isPi && sign < 0 , isPi && sign > 0 , isPi,
32163168 isKa && sign < 0 , isKa && sign > 0 , isKa,
32173169 isPr && sign < 0 , isPr && sign > 0 , isPr};
@@ -3419,10 +3371,8 @@ struct RadialFlowDecorr {
34193371 bool isPi = (id == KPidPionOne);
34203372 bool isKa = (id == KPidKaonTwo);
34213373 bool isPr = (id == KPidProtonThree);
3422- bool isAny = (isPi || isKa || isPr); // Only true if it passed PID!
3423-
34243374 bool isSpecies[KNsp] = {
3425- isAny ,
3375+ true ,
34263376 isPi && sign < 0 , isPi && sign > 0 , isPi,
34273377 isKa && sign < 0 , isKa && sign > 0 , isKa,
34283378 isPr && sign < 0 , isPr && sign > 0 , isPr};
0 commit comments