@@ -279,10 +279,10 @@ struct QADataCollectingEngine {
279279 int nPhiSectorBins = fhNchVsPhiVsPtPosB->GetNbinsY ();
280280 float phiSectorLow = fhNchVsPhiVsPtNegB->GetYaxis ()->GetBinLowEdge (1 );
281281 float phiSectorHigh = fhNchVsPhiVsPtNegB->GetYaxis ()->GetBinUpEdge (nPhiSectorBins);
282- fhPerColNchVsPhiVsPtPosB = new TH2F (" PerColNchVsPhiVsPtPosB " , " " , nPtBins, ptLow, ptHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
283- fhPerColNchVsPhiVsInnerWallMomPosB = new TH2F (" PerColNchVsPhiVsInnerWallMomPosB " , " " , nTpcIwMomBins, tpcIwMomLow, tpcIwMomHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
284- fhPerColNchVsPhiVsPtNegB = new TH2F (" PerColNchVsPhiVsPtNegB " , " " , nPtBins, ptLow, ptHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
285- fhPerColNchVsPhiVsInnerWallMomNegB = new TH2F (" PerColNchVsPhiVsInnerWallMomNegB " , " " , nTpcIwMomBins, tpcIwMomLow, tpcIwMomHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
282+ fhPerColNchVsPhiVsPtPosB = new TH2F (TString::Format ( " %s_PerColNchVsPhiVsPtPosB " , dirname) , " " , nPtBins, ptLow, ptHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
283+ fhPerColNchVsPhiVsInnerWallMomPosB = new TH2F (TString::Format ( " %s_PerColNchVsPhiVsInnerWallMomPosB " , dirname) , " " , nTpcIwMomBins, tpcIwMomLow, tpcIwMomHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
284+ fhPerColNchVsPhiVsPtNegB = new TH2F (TString::Format ( " %s_PerColNchVsPhiVsPtNegB " , dirname) , " " , nPtBins, ptLow, ptHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
285+ fhPerColNchVsPhiVsInnerWallMomNegB = new TH2F (TString::Format ( " %s_PerColNchVsPhiVsInnerWallMomNegB " , dirname) , " " , nTpcIwMomBins, tpcIwMomLow, tpcIwMomHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
286286 for (uint isp = 0 ; isp < nsp; ++isp) {
287287 fhPhiVsPtA[isp] = ADDHISTOGRAM (TH2, DIRECTORYSTRING (" %s/%s/%s" , dirname, " Reco" , " After" ), HNAMESTRING (" PhiVsPt_%s" , tnames[isp].c_str ()), HTITLESTRING (" #varphi %s (mod(2#pi/18))" , tnames[isp].c_str ()), kTH2F , {pidPtAxis, phiSectorAxis});
288288 fhNchVsPhiVsPtA[isp] = ADDHISTOGRAM (TH3, DIRECTORYSTRING (" %s/%s/%s" , dirname, " Reco" , " After" ), HNAMESTRING (" NchVsPhiVsPt_%s" , tnames[isp].c_str ()), HTITLESTRING (" #it{N}_{ch}^{%s} #varphi (mod(2#pi/18))" , tnames[isp].c_str ()), kTH3F , {pidPtAxisReduced, phiSectorAxisReduced, nChargeAxis});
@@ -307,8 +307,8 @@ struct QADataCollectingEngine {
307307 fhPtVsEtaTpcTofA[isp] = ADDHISTOGRAM (TH2, DIRECTORYSTRING (" %s/%s/%s" , dirname, " Efficiency" , " Reco" ), HNAMESTRING (" ptTpcTof_%s" , tnames[isp].c_str ()), HTITLESTRING (" TPC&TOF %s tracks" , tnames[isp].c_str ()), kTH2F , {etaAxis, ptAxis});
308308 fhPtVsEtaItsTpcTofA[isp] = ADDHISTOGRAM (TH2, DIRECTORYSTRING (" %s/%s/%s" , dirname, " Efficiency" , " Reco" ), HNAMESTRING (" ptItsTpcTof_%s" , tnames[isp].c_str ()), HTITLESTRING (" ITS&TPC&TOF %s tracks" , tnames[isp].c_str ()), kTH2F , {etaAxis, ptAxis});
309309 /* per collision histograms not going to the results file */
310- fhPerColNchVsPhiVsPtA[isp] = new TH2F (HNAMESTRING (" PerColNchVsPhiVsPt_%s " , tnames[isp].c_str ()), " " , nPtBins, ptLow, ptHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
311- fhPerColNchVsPhiVsInnerWallMomA[isp] = new TH2F (HNAMESTRING (" PerColNchVsPhiVsInnerWallMom_%s " , tnames[isp].c_str ()), " " , nTpcIwMomBins, tpcIwMomLow, tpcIwMomHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
310+ fhPerColNchVsPhiVsPtA[isp] = new TH2F (HNAMESTRING (" %s_PerColNchVsPhiVsPt_%s " , dirname , tnames[isp].c_str ()), " " , nPtBins, ptLow, ptHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
311+ fhPerColNchVsPhiVsInnerWallMomA[isp] = new TH2F (HNAMESTRING (" %s_PerColNchVsPhiVsInnerWallMom_%s " , dirname , tnames[isp].c_str ()), " " , nTpcIwMomBins, tpcIwMomLow, tpcIwMomHigh, nPhiSectorBins, phiSectorLow, phiSectorHigh);
312312 }
313313 } else {
314314 AxisSpec recoSpecies{static_cast <int >(nsp) + 1 , -0.5 , nsp - 0.5 , " reco species" };
@@ -582,32 +582,38 @@ struct QAExtraDataCollectingEngine {
582582 /* pairs histograms */
583583 std::vector<std::vector<std::vector<std::shared_ptr<TH2>>>> fhPhiPhiA{2 , {nsp, {nsp, nullptr }}};
584584 std::vector<std::vector<std::vector<std::shared_ptr<TH3>>>> fhDeltaPhiVsPhiPhiA{2 , {nsp, {nsp, nullptr }}};
585+ std::vector<std::vector<std::vector<std::shared_ptr<TH3>>>> fhDeltaPhiVsEtaEtaA{2 , {nsp, {nsp, nullptr }}};
585586 std::vector<std::vector<std::vector<std::shared_ptr<TH2>>>> fhEtaEtaA{2 , {nsp, {nsp, nullptr }}};
586587 std::vector<std::vector<std::vector<std::shared_ptr<TH3>>>> fhDeltaEtaVsEtaEtaA{2 , {nsp, {nsp, nullptr }}};
588+ std::vector<std::vector<std::vector<std::shared_ptr<TH3>>>> fhDeltaEtaVsPhiPhiA{2 , {nsp, {nsp, nullptr }}};
587589
588590 template <efficiencyandqatask::KindOfData kindOfData>
589591 void init (HistogramRegistry& registry, const char * dirname)
590592 {
591593 using namespace efficiencyandqatask ;
592594 using namespace analysis ::dptdptfilter;
593595
594- AxisSpec phiAxis = {72 , 0 .0f , constants::math::TwoPI, " #varphi" };
595- AxisSpec deltaPhiAxis = {72 , 0 .0f , constants::math::TwoPI, " #Delta#varphi" };
596+ AxisSpec phiAxis = {phibins , 0 .0f , constants::math::TwoPI, " #varphi" };
597+ AxisSpec deltaPhiAxis = {phibins , 0 .0f , constants::math::TwoPI, " #Delta#varphi" };
596598 AxisSpec etaAxis = {etabins, etalow, etaup, " #eta" };
597- AxisSpec deltaEta = {2 * etabins - 1 , etalow - etaup, etaup - etalow, " #DeltaEta" };
599+ AxisSpec deltaEtaAxis = {2 * etabins - 1 , etalow - etaup, etaup - etalow, " #DeltaEta" };
598600
599601 /* the reconstructed and generated levels histograms */
600602 std::string recogen = (kindOfData == kReco ) ? " Reco" : " Gen" ;
601603 for (uint isp = 0 ; isp < nsp; ++isp) {
602604 for (uint jsp = 0 ; jsp < nsp; ++jsp) {
603605 fhPhiPhiA[kindOfData][isp][jsp] = ADDHISTOGRAM (TH2, DIRECTORYSTRING (" %s/%s/%s" , dirname, recogen.c_str (), " After" ), HNAMESTRING (" PhiPhi_%s%s" , tnames[isp].c_str (), tnames[jsp].c_str ()),
604606 HTITLESTRING (" %s%s pairs" , tnames[isp].c_str (), tnames[jsp].c_str ()), kTH2F , {phiAxis, phiAxis});
605- fhDeltaPhiVsPhiPhiA[kindOfData][isp][jsp] = ADDHISTOGRAM (TH3, DIRECTORYSTRING (" %s/%s/%s" , dirname, recogen.c_str (), " After" ), HNAMESTRING (" deltaPhiVsPhiPhi_ %s%s" , tnames[isp].c_str (), tnames[jsp].c_str ()),
607+ fhDeltaPhiVsPhiPhiA[kindOfData][isp][jsp] = ADDHISTOGRAM (TH3, DIRECTORYSTRING (" %s/%s/%s" , dirname, recogen.c_str (), " After" ), HNAMESTRING (" DeltaPhiVsPhiPhi_ %s%s" , tnames[isp].c_str (), tnames[jsp].c_str ()),
606608 HTITLESTRING (" %s%s pairs" , tnames[isp].c_str (), tnames[jsp].c_str ()), kTH3F , {phiAxis, phiAxis, deltaPhiAxis});
609+ fhDeltaEtaVsPhiPhiA[kindOfData][isp][jsp] = ADDHISTOGRAM (TH3, DIRECTORYSTRING (" %s/%s/%s" , dirname, recogen.c_str (), " After" ), HNAMESTRING (" DeltaEtaVsPhiPhi_%s%s" , tnames[isp].c_str (), tnames[jsp].c_str ()),
610+ HTITLESTRING (" %s%s pairs" , tnames[isp].c_str (), tnames[jsp].c_str ()), kTH3F , {phiAxis, phiAxis, deltaEtaAxis});
607611 fhEtaEtaA[kindOfData][isp][jsp] = ADDHISTOGRAM (TH2, DIRECTORYSTRING (" %s/%s/%s" , dirname, recogen.c_str (), " After" ), HNAMESTRING (" EtaEta_%s%s" , tnames[isp].c_str (), tnames[jsp].c_str ()),
608612 HTITLESTRING (" %s%s pairs" , tnames[isp].c_str (), tnames[jsp].c_str ()), kTH2F , {etaAxis, etaAxis});
609- fhDeltaEtaVsEtaEtaA[kindOfData][isp][jsp] = ADDHISTOGRAM (TH3, DIRECTORYSTRING (" %s/%s/%s" , dirname, recogen.c_str (), " After" ), HNAMESTRING (" deltaPhiVsEtaEta_%s%s" , tnames[isp].c_str (), tnames[jsp].c_str ()),
610- HTITLESTRING (" %s%s pairs" , tnames[isp].c_str (), tnames[jsp].c_str ()), kTH3F , {phiAxis, phiAxis, deltaPhiAxis});
613+ fhDeltaEtaVsEtaEtaA[kindOfData][isp][jsp] = ADDHISTOGRAM (TH3, DIRECTORYSTRING (" %s/%s/%s" , dirname, recogen.c_str (), " After" ), HNAMESTRING (" DeltaEtaVsEtaEta_%s%s" , tnames[isp].c_str (), tnames[jsp].c_str ()),
614+ HTITLESTRING (" %s%s pairs" , tnames[isp].c_str (), tnames[jsp].c_str ()), kTH3F , {etaAxis, etaAxis, deltaEtaAxis});
615+ fhDeltaPhiVsEtaEtaA[kindOfData][isp][jsp] = ADDHISTOGRAM (TH3, DIRECTORYSTRING (" %s/%s/%s" , dirname, recogen.c_str (), " After" ), HNAMESTRING (" DeltaPhiVsEtaEta_%s%s" , tnames[isp].c_str (), tnames[jsp].c_str ()),
616+ HTITLESTRING (" %s%s pairs" , tnames[isp].c_str (), tnames[jsp].c_str ()), kTH3F , {etaAxis, etaAxis, deltaPhiAxis});
611617 }
612618 }
613619 }
@@ -630,8 +636,10 @@ struct QAExtraDataCollectingEngine {
630636 float deltaEta = track1.eta () - track2.eta ();
631637 fhPhiPhiA[kindOfData][track1.trackacceptedid ()][track2.trackacceptedid ()]->Fill (track1.phi (), track2.phi ());
632638 fhDeltaPhiVsPhiPhiA[kindOfData][track1.trackacceptedid ()][track2.trackacceptedid ()]->Fill (track1.phi (), track2.phi (), deltaPhi);
639+ fhDeltaEtaVsPhiPhiA[kindOfData][track1.trackacceptedid ()][track2.trackacceptedid ()]->Fill (track1.phi (), track2.phi (), deltaEta);
633640 fhEtaEtaA[kindOfData][track1.trackacceptedid ()][track2.trackacceptedid ()]->Fill (track1.eta (), track2.eta ());
634641 fhDeltaEtaVsEtaEtaA[kindOfData][track1.trackacceptedid ()][track2.trackacceptedid ()]->Fill (track1.eta (), track2.eta (), deltaEta);
642+ fhDeltaPhiVsEtaEtaA[kindOfData][track1.trackacceptedid ()][track2.trackacceptedid ()]->Fill (track1.eta (), track2.eta (), deltaPhi);
635643 }
636644 }
637645 }
@@ -933,6 +941,16 @@ struct DptDptEfficiencyAndQc {
933941 HistogramRegistry registryEight{" registryEight" , {}, OutputObjHandlingPolicy::AnalysisObject};
934942 HistogramRegistry registryNine{" registryNine" , {}, OutputObjHandlingPolicy::AnalysisObject};
935943 HistogramRegistry registryTen{" registryTen" , {}, OutputObjHandlingPolicy::AnalysisObject};
944+ HistogramRegistry registryExtraOne{" extraregistryOne" , {}, OutputObjHandlingPolicy::AnalysisObject};
945+ HistogramRegistry registryExtraTwo{" extraregistryTwo" , {}, OutputObjHandlingPolicy::AnalysisObject};
946+ HistogramRegistry registryExtraThree{" extraregistryThree" , {}, OutputObjHandlingPolicy::AnalysisObject};
947+ HistogramRegistry registryExtraFour{" extraregistryFour" , {}, OutputObjHandlingPolicy::AnalysisObject};
948+ HistogramRegistry registryExtraFive{" extraregistryFive" , {}, OutputObjHandlingPolicy::AnalysisObject};
949+ HistogramRegistry registryExtraSix{" extraregistrySix" , {}, OutputObjHandlingPolicy::AnalysisObject};
950+ HistogramRegistry registryExtraSeven{" extraregistrySeven" , {}, OutputObjHandlingPolicy::AnalysisObject};
951+ HistogramRegistry registryExtraEight{" extraregistryEight" , {}, OutputObjHandlingPolicy::AnalysisObject};
952+ HistogramRegistry registryExtraNine{" extraregistryNine" , {}, OutputObjHandlingPolicy::AnalysisObject};
953+ HistogramRegistry registryExtraTen{" extraregistryTen" , {}, OutputObjHandlingPolicy::AnalysisObject};
936954 HistogramRegistry registryPidOne{" pidregistryOne" , {}, OutputObjHandlingPolicy::AnalysisObject};
937955 HistogramRegistry registryPidTwo{" pidregistryTwo" , {}, OutputObjHandlingPolicy::AnalysisObject};
938956 HistogramRegistry registryPidThree{" pidregistryThree" , {}, OutputObjHandlingPolicy::AnalysisObject};
@@ -943,9 +961,11 @@ struct DptDptEfficiencyAndQc {
943961 HistogramRegistry registryPidEight{" pidregistryEight" , {}, OutputObjHandlingPolicy::AnalysisObject};
944962 HistogramRegistry registryPidNine{" pidregistryNine" , {}, OutputObjHandlingPolicy::AnalysisObject};
945963 HistogramRegistry registryPidTen{" pidregistryTen" , {}, OutputObjHandlingPolicy::AnalysisObject};
946- std::vector<HistogramRegistry*> registrybank {®istryOne, ®istryTwo, ®istryThree, ®istryFour, ®istryFive,
964+ std::vector<HistogramRegistry*> registryBank {®istryOne, ®istryTwo, ®istryThree, ®istryFour, ®istryFive,
947965 ®istrySix, ®istrySeven, ®istryEight, ®istryNine, ®istryTen};
948- std::vector<HistogramRegistry*> pidregistrybank{®istryPidOne, ®istryPidTwo, ®istryPidThree, ®istryPidFour, ®istryPidFive,
966+ std::vector<HistogramRegistry*> extraRegistryBank{®istryExtraOne, ®istryExtraTwo, ®istryExtraThree, ®istryExtraFour, ®istryExtraFive,
967+ ®istryExtraSix, ®istryExtraSeven, ®istryExtraEight, ®istryExtraNine, ®istryExtraTen};
968+ std::vector<HistogramRegistry*> pidRegistryBank{®istryPidOne, ®istryPidTwo, ®istryPidThree, ®istryPidFour, ®istryPidFive,
949969 ®istryPidSix, ®istryPidSeven, ®istryPidEight, ®istryPidNine, ®istryPidTen};
950970
951971 Configurable<bool > useCentrality{" useCentrality" , false , " Perform the task using centrality/multiplicity classes. Default value: false" };
@@ -987,6 +1007,7 @@ struct DptDptEfficiencyAndQc {
9871007 getTaskOptionValue (initContext, " dpt-dpt-filter" , " binning.mEtabins" , etabins, false );
9881008 getTaskOptionValue (initContext, " dpt-dpt-filter" , " binning.mEtamin" , etalow, false );
9891009 getTaskOptionValue (initContext, " dpt-dpt-filter" , " binning.mEtamax" , etaup, false );
1010+ getTaskOptionValue (initContext, " dpt-dpt-filter" , " binning.mPhibins" , phibins, false );
9901011
9911012 /* configuring the involved species */
9921013 std::vector<std::string> cfgnames = {" elpidsel" , " mupidsel" , " pipidsel" , " kapidsel" , " prpidsel" };
@@ -1071,37 +1092,37 @@ struct DptDptEfficiencyAndQc {
10711092 pidExtraDataCE = new PidExtraDataCollectingEngine*[ncmranges];
10721093 }
10731094 std::string recogen;
1074- if (ncmranges > registrybank .size ()) {
1095+ if (ncmranges > registryBank .size ()) {
10751096 LOGF (fatal, " There are more centrality ranges configured than registries in the bank. Please fix it!" );
10761097 }
10771098 /* in reverse order for proper order in results file */
10781099 for (uint i = 0 ; i < ncmranges; ++i) {
1079- auto initializeCEInstance = [&](auto dce, auto name, auto & registry) {
1100+ auto initializeCEInstance = [&](auto dce, auto name, auto & registry, bool genlevel ) {
10801101 /* crete the output list for the passed centrality/multiplicity range */
10811102 /* init the data collection instance */
10821103 dce->template init <kReco >(registry, name.Data ());
1083- if (doprocessGeneratorLevelNotStored ) {
1104+ if (genlevel ) {
10841105 dce->template init <kGen >(registry, name.Data ());
10851106 }
10861107 };
10871108 auto buildQACEInstance = [&](float min, float max) {
10881109 auto * dce = new QADataCollectingEngine ();
1089- initializeCEInstance (dce, TString::Format (" EfficiencyAndQaData-%d-%d" , static_cast <int >(min), static_cast <int >(max)), *registrybank [i]);
1110+ initializeCEInstance (dce, TString::Format (" EfficiencyAndQaData-%d-%d" , static_cast <int >(min), static_cast <int >(max)), *registryBank [i], doprocessGeneratorLevelNotStored );
10901111 return dce;
10911112 };
10921113 auto buildQACEExtraInstance = [&](float min, float max) {
10931114 auto * dce = new QAExtraDataCollectingEngine ();
1094- initializeCEInstance (dce, TString::Format (" EfficiencyAndQaExtraData-%d-%d" , static_cast <int >(min), static_cast <int >(max)), *registrybank [i]);
1115+ initializeCEInstance (dce, TString::Format (" EfficiencyAndQaExtraData-%d-%d" , static_cast <int >(min), static_cast <int >(max)), *extraRegistryBank [i], doprocessExtraGeneratorLevelNotStored );
10951116 return dce;
10961117 };
10971118 auto buildPidCEInstance = [&](float min, float max) {
10981119 auto * dce = new PidDataCollectingEngine ();
1099- initializeCEInstance (dce, TString::Format (" EfficiencyAndPidData-%d-%d" , static_cast <int >(min), static_cast <int >(max)), *pidregistrybank [i]);
1120+ initializeCEInstance (dce, TString::Format (" EfficiencyAndPidData-%d-%d" , static_cast <int >(min), static_cast <int >(max)), *pidRegistryBank [i], doprocessGeneratorLevelNotStored );
11001121 return dce;
11011122 };
11021123 auto buildPidExtraCEInstance = [&](float min, float max) {
11031124 auto * dce = new PidExtraDataCollectingEngine ();
1104- initializeCEInstance (dce, TString::Format (" EfficiencyAndPidData-%d-%d" , static_cast <int >(min), static_cast <int >(max)), *pidregistrybank [i]);
1125+ initializeCEInstance (dce, TString::Format (" EfficiencyAndPidData-%d-%d" , static_cast <int >(min), static_cast <int >(max)), *pidRegistryBank [i], doprocessGeneratorLevelNotStored );
11051126 return dce;
11061127 };
11071128 /* in reverse order for proper order in results file */
0 commit comments