@@ -101,13 +101,14 @@ const char* speciesTitle[kDptDptNoOfSpecies] = {"", "e", "#mu", "#pi", "K", "p"}
101101// / \enum BeforeAfter
102102// / \brief when filling the histograms
103103enum BeforeAfter {
104- BeforeAfterBEFORE = 0 , // /< filling the histograms before selections
105- BeforeAfterAFTER, // /< filling the histograms after selections
106- BeforeAfterNOOFTIMES // /< how many times fill the histograms
104+ BeforeAfterBEFORE = 0 , // /< filling the histograms before selections
105+ BeforeAfterBEFOREMULTCORR, // /< filling the histograms before outliers exclusion
106+ BeforeAfterAFTER, // /< filling the histograms after selections
107+ BeforeAfterNOOFTIMES // /< how many times fill the histograms
107108};
108109
109- static const std::vector<std::string> beforeAfterName = {" before" , " " };
110- static const std::vector<std::string> beforeAfterSufix = {" B" , " A" };
110+ static const std::vector<std::string> beforeAfterName = {" before" , " before outliers exclusion " , " " };
111+ static const std::vector<std::string> beforeAfterSufix = {" B" , " BO " , " A" };
111112
112113/* helpers for the multiplicity axes definition */
113114static constexpr float MultiplicityUpperLimitBase[11 ][8 ] = {
@@ -506,6 +507,7 @@ struct DptDptFilter {
506507#define MULTSRCNAME (msrcid ) multiplicitySourceConfigNamesMap.at(msrcid).data()
507508 Configurable<LabeledArray<float >> multiplicityUpperLimit{" multiplicityUpperLimit" , {MultiplicityUpperLimitBase[0 ], 11 , 8 , {SYSTEMNAME (0 ), SYSTEMNAME (1 ), SYSTEMNAME (2 ), SYSTEMNAME (3 ), SYSTEMNAME (4 ), SYSTEMNAME (5 ), SYSTEMNAME (6 ), SYSTEMNAME (7 ), SYSTEMNAME (8 ), SYSTEMNAME (9 ), SYSTEMNAME (10 )}, {MULTSRCNAME (0 ), MULTSRCNAME (1 ), MULTSRCNAME (2 ), MULTSRCNAME (3 ), MULTSRCNAME (4 ), MULTSRCNAME (5 ), MULTSRCNAME (6 ), MULTSRCNAME (7 )}}, " Upper limits for the multiplicity observables" };
508509 Configurable<LabeledArray<std::string>> multiplicitiesExclusionFormula{" multiplicitiesExclusionFormula" , {multiplicityCentralityCorrelationsFormulaBase[0 ], 11 , 1 , {SYSTEMNAME (0 ), SYSTEMNAME (1 ), SYSTEMNAME (2 ), SYSTEMNAME (3 ), SYSTEMNAME (4 ), SYSTEMNAME (5 ), SYSTEMNAME (6 ), SYSTEMNAME (7 ), SYSTEMNAME (8 ), SYSTEMNAME (9 ), SYSTEMNAME (10 )}, {" Exclusion formula" }}, " Formula for excluding outliers of the multiplicities correlations. Use any parameter from centMultCorrelationsParamsMap" };
510+ Configurable<std::string> triggSel{" triggSel" , " mb+nocollintrstd+nocollinrofstd+nosamebunchpup+isvtxitstpc+gooditslayerall" , " Trigger selection: check \' triggerSelectionBitsMap\' for options. Default: mb+nocollintrstd+nocollinrofstd+nosamebunchpup+isvtxitstpc+gooditslayerall" };
509511 struct : ConfigurableGroup {
510512 std::string prefix = " cfgEventSelection.occupancySelection" ;
511513 Configurable<std::string> occupancyEstimation{" occupancyEstimation" , " None" , " Occupancy estimation: None, Tracks, FT0C. Default None" };
@@ -515,7 +517,6 @@ struct DptDptFilter {
515517 } cfgEventSelection;
516518 Configurable<std::string> cfgSystem{" cfgSystem" , " PbPb" , " System: Auto, pp, PbPb, Pbp, pPb, XeXe, ppRun3, PbPbRun3. Default PbPb" };
517519 Configurable<std::string> cfgDataType{" cfgDataType" , " data" , " Data type: data, datanoevsel, MC, FastMC, OnTheFlyMC. Default data" };
518- Configurable<std::string> cfgTriggSel{" cfgTriggSel" , " MB" , " Trigger selection: MB,VTXTOFMATCHED,VTXTRDMATCHED,VTXTRDTOFMATCHED,None. Default MB" };
519520 Configurable<std::string> cfgCentSpec{" cfgCentSpec" , " 00-10,10-20,20-30,30-40,40-50,50-60,60-70,70-80" , " Centrality/multiplicity ranges in min-max separated by commas" };
520521 Configurable<float > cfgOverallMinP{" cfgOverallMinP" , 0 .0f , " The overall minimum momentum for the analysis. Default: 0.0" };
521522 struct : ConfigurableGroup {
@@ -584,7 +585,7 @@ struct DptDptFilter {
584585 fMaxOccupancy = cfgEventSelection.occupancySelection .maxOccupancy ;
585586
586587 /* the trigger selection */
587- triggerSelectionFlags = getTriggerSelection (cfgTriggSel .value .c_str ());
588+ triggerSelectionFlags = getTriggerSelection (cfgEventSelection. triggSel .value .c_str ());
588589 traceCollId0 = cfgTraceCollId0;
589590
590591 /* if the system type is not known at this time, we have to put the initialization somewhere else */
@@ -832,32 +833,46 @@ void DptDptFilter::processReconstructed(CollisionObject const& collision, Tracks
832833 }
833834 /* report QC information if required */
834835 if (cfgEventSelection.fillQc ) {
835- [&](bool accepted) {
836- for (int i = 0 ; i < BeforeAfterNOOFTIMES; ++i) {
837- fhMultiplicityVsCentrality[i]->Fill (centormult, ftracks.size ());
838- fhMultiplicityVsT0cMultiplicity[i]->Fill (collision.multFT0C (), ftracks.size ());
839- fhMultiplicityVsT0aMultiplicity[i]->Fill (collision.multFT0A (), ftracks.size ());
840- fhMultiplicityVsV0aMultiplicity[i]->Fill (collision.multFV0A (), ftracks.size ());
841- fhMultiplicityVsPvMultiplicity[i]->Fill (collision.multNTracksPV (), ftracks.size ());
842- fhPvMultiplicityVsCentrality[i]->Fill (centormult, collision.multNTracksPV ());
843- fhPvMultiplicityVsT0cMultiplicity[i]->Fill (collision.multFT0C (), collision.multNTracksPV ());
844- fhPvMultiplicityVsT0aMultiplicity[i]->Fill (collision.multFT0A (), collision.multNTracksPV ());
845- fhPvMultiplicityVsV0aMultiplicity[i]->Fill (collision.multFV0A (), collision.multNTracksPV ());
846- fhV0aMultiplicityVsCentrality[i]->Fill (centormult, collision.multFV0A ());
847- fhV0aMultiplicityVsT0cMultiplicity[i]->Fill (collision.multFT0C (), collision.multFV0A ());
848- fhV0aMultiplicityVsT0aMultiplicity[i]->Fill (collision.multFT0A (), collision.multFV0A ());
849- fhT0cMultiplicityVsCentrality[i]->Fill (centormult, collision.multFT0C ());
850- fhT0cMultiplicityVsT0aMultiplicity[i]->Fill (collision.multFT0A (), collision.multFT0C ());
851- if constexpr (framework::has_type_v<aod::cent::CentFV0A, typename CollisionObject::all_columns>) {
852- fhT0CentralityVsCentrality[i]->Fill (centormult, collision.centFT0M ());
853- fhV0aCentralityVsCentrality[i]->Fill (centormult, collision.centFV0A ());
854- fhNtpvCentralityVsCentrality[i]->Fill (centormult, collision.centNTPV ());
855- }
856- /* if not accepted only before is filled */
857- if (!accepted)
836+ auto fillHistograms = [&](int step) {
837+ fhMultiplicityVsCentrality[step]->Fill (centormult, ftracks.size ());
838+ fhMultiplicityVsT0cMultiplicity[step]->Fill (collision.multFT0C (), ftracks.size ());
839+ fhMultiplicityVsT0aMultiplicity[step]->Fill (collision.multFT0A (), ftracks.size ());
840+ fhMultiplicityVsV0aMultiplicity[step]->Fill (collision.multFV0A (), ftracks.size ());
841+ fhMultiplicityVsPvMultiplicity[step]->Fill (collision.multNTracksPV (), ftracks.size ());
842+ fhPvMultiplicityVsCentrality[step]->Fill (centormult, collision.multNTracksPV ());
843+ fhPvMultiplicityVsT0cMultiplicity[step]->Fill (collision.multFT0C (), collision.multNTracksPV ());
844+ fhPvMultiplicityVsT0aMultiplicity[step]->Fill (collision.multFT0A (), collision.multNTracksPV ());
845+ fhPvMultiplicityVsV0aMultiplicity[step]->Fill (collision.multFV0A (), collision.multNTracksPV ());
846+ fhV0aMultiplicityVsCentrality[step]->Fill (centormult, collision.multFV0A ());
847+ fhV0aMultiplicityVsT0cMultiplicity[step]->Fill (collision.multFT0C (), collision.multFV0A ());
848+ fhV0aMultiplicityVsT0aMultiplicity[step]->Fill (collision.multFT0A (), collision.multFV0A ());
849+ fhT0cMultiplicityVsCentrality[step]->Fill (centormult, collision.multFT0C ());
850+ fhT0cMultiplicityVsT0aMultiplicity[step]->Fill (collision.multFT0A (), collision.multFT0C ());
851+ if constexpr (framework::has_type_v<aod::cent::CentFV0A, typename CollisionObject::all_columns>) {
852+ fhT0CentralityVsCentrality[step]->Fill (centormult, collision.centFT0M ());
853+ fhV0aCentralityVsCentrality[step]->Fill (centormult, collision.centFV0A ());
854+ fhNtpvCentralityVsCentrality[step]->Fill (centormult, collision.centNTPV ());
855+ }
856+ };
857+ for (int i = 0 ; i < BeforeAfterNOOFTIMES; ++i) {
858+ switch (static_cast <BeforeAfter>(i)) {
859+ case BeforeAfterBEFORE:
860+ fillHistograms (i);
861+ break ;
862+ case BeforeAfterBEFOREMULTCORR:
863+ if ((collisionFlags & CollSelPREMULTACCEPTEDRUN3) == CollSelPREMULTACCEPTEDRUN3) {
864+ fillHistograms (i);
865+ }
866+ break ;
867+ case BeforeAfterAFTER:
868+ if (acceptedevent) {
869+ fillHistograms (i);
870+ }
871+ break ;
872+ default :
858873 break ;
859874 }
860- }(acceptedevent);
875+ }
861876 }
862877}
863878
0 commit comments