Skip to content

Commit 7eb442a

Browse files
victor-gonzalezVictor
andauthored
[PWGCF] DptDpt - Fill multiplicity histograms before outliers exclusion (#12805)
Co-authored-by: Victor <victor@cern.ch>
1 parent 8030bff commit 7eb442a

File tree

3 files changed

+55
-35
lines changed

3 files changed

+55
-35
lines changed

PWGCF/TableProducer/dptDptFilter.cxx

Lines changed: 46 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,14 @@ const char* speciesTitle[kDptDptNoOfSpecies] = {"", "e", "#mu", "#pi", "K", "p"}
101101
/// \enum BeforeAfter
102102
/// \brief when filling the histograms
103103
enum 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 */
113114
static 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

PWGCF/TableProducer/dptDptFilter.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
#include <TMCProcess.h>
4040
#include <TPDGCode.h>
4141

42+
#include <Rtypes.h>
43+
4244
#include <bitset>
4345
#include <fstream>
4446
#include <functional>
@@ -413,6 +415,9 @@ enum CollisionSelectionFlags {
413415
CollSelNOOFFLAGS ///< number of flags
414416
};
415417

418+
constexpr std::bitset<32> CollSelACCEPTEDRUN3 = BIT(CollSelTRIGGSELBIT) | BIT(CollSelRCTBIT) | BIT(CollSelOCCUPANCYBIT) | BIT(CollSelCENTRALITYBIT) | BIT(CollSelZVERTEXBIT) | BIT(CollSelMULTCORRELATIONS);
419+
constexpr std::bitset<32> CollSelPREMULTACCEPTEDRUN3 = BIT(CollSelTRIGGSELBIT) | BIT(CollSelRCTBIT) | BIT(CollSelOCCUPANCYBIT) | BIT(CollSelCENTRALITYBIT) | BIT(CollSelZVERTEXBIT);
420+
416421
/// \std::mag collisionSelectionExternalNamesMap
417422
/// \brief maps collision selection bits to external names
418423
static const std::map<int, std::string_view> collisionSelectionExternalNamesMap{

PWGCF/Tasks/dptDptCorrelations.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -971,10 +971,10 @@ struct DptDptCorrelations {
971971
nNoOfDimensions = static_cast<HistoDimensions>(cfgNoOfDimensions.value);
972972

973973
/* self configure the CCDB access to the input file */
974-
getTaskOptionValue(initContext, "dpt-dpt-filter", "cfgCCDBUrl", cfgCCDBUrl, false);
975-
getTaskOptionValue(initContext, "dpt-dpt-filter", "cfgCCDBPathName", cfgCCDBPathName, false);
976-
getTaskOptionValue(initContext, "dpt-dpt-filter", "cfgCCDBDate", cfgCCDBDate, false);
977-
getTaskOptionValue(initContext, "dpt-dpt-filter", "cfgCCDBPeriod", cfgCCDBPeriod, false);
974+
getTaskOptionValue(initContext, "dpt-dpt-filter", "cfgCCDB.url", cfgCCDBUrl, false);
975+
getTaskOptionValue(initContext, "dpt-dpt-filter", "cfgCCDB.pathName", cfgCCDBPathName, false);
976+
getTaskOptionValue(initContext, "dpt-dpt-filter", "cfgCCDB.date", cfgCCDBDate, false);
977+
getTaskOptionValue(initContext, "dpt-dpt-filter", "cfgCCDB.period", cfgCCDBPeriod, false);
978978
loadfromccdb = cfgCCDBPathName.length() > 0;
979979

980980
/* update the potential binning change */

0 commit comments

Comments
 (0)