@@ -113,8 +113,7 @@ struct CorrelationTask {
113113 ConfigurableAxis axisEtaEfficiency{" axisEtaEfficiency" , {20 , -1.0 , 1.0 }, " eta axis for efficiency histograms" };
114114 ConfigurableAxis axisPtEfficiency{" axisPtEfficiency" , {VARIABLE_WIDTH, 0.5 , 0.6 , 0.7 , 0.8 , 0.9 , 1.0 , 1.25 , 1.5 , 1.75 , 2.0 , 2.25 , 2.5 , 2.75 , 3.0 , 3.25 , 3.5 , 3.75 , 4.0 , 4.5 , 5.0 , 6.0 , 7.0 , 8.0 }, " pt axis for efficiency histograms" };
115115
116- ConfigurableAxis axisInvMass{" axisInvMass" , {VARIABLE_WIDTH, 0 , 1.7 , 1.75 , 1.8 , 1.85 , 1.9 , 1.95 , 2.0 , 5.0 }, " invariant mass axis for histograms" };
117- ConfigurableAxis axisInvMassHistogram{" axisInvMassHistogram" , {1000 , 1.0 , 3.0 }, " invariant mass histogram binning" };
116+ ConfigurableAxis axisInvMass{" axisInvMass" , {VARIABLE_WIDTH, 1.7 , 1.75 , 1.8 , 1.85 , 1.9 , 1.95 , 2.0 , 5.0 }, " invariant mass axis for histograms" };
118117
119118 // This filter is applied to AOD and derived data (column names are identical)
120119 Filter collisionZVtxFilter = nabs(aod::collision::posZ) < cfgCutVertex;
@@ -164,13 +163,15 @@ struct CorrelationTask {
164163 LOGF (fatal, " cfgPtDepMLbkg or cfgPtCentDepMLbkgSel can not be empty when ML 2-prong selections are used." );
165164 registry.add (" yields" , " multiplicity/centrality vs pT vs eta" , {HistType::kTH3F , {{100 , 0 , 100 , " /multiplicity/centrality" }, {40 , 0 , 20 , " p_{T}" }, {100 , -2 , 2 , " #eta" }}});
166165 registry.add (" etaphi" , " multiplicity/centrality vs eta vs phi" , {HistType::kTH3F , {{100 , 0 , 100 , " multiplicity/centrality" }, {100 , -2 , 2 , " #eta" }, {200 , 0 , o2::constants::math::TwoPI, " #varphi" }}});
167- if (doprocessSame2ProngDerived || doprocessSame2ProngDerivedML || doprocessSame2Prong2Prong || doprocessSame2Prong2ProngML) {
166+ if (doprocessSame2ProngDerived || doprocessSame2ProngDerivedML || doprocessSame2Prong2Prong || doprocessSame2Prong2ProngML || doprocessMCSameDerived2Prong ) {
168167 registry.add (" yieldsTrigger" , " multiplicity/centrality vs pT vs eta (triggers)" , {HistType::kTH3F , {{100 , 0 , 100 , " /multiplicity/centrality" }, {40 , 0 , 20 , " p_{T}" }, {100 , -2 , 2 , " #eta" }}});
169168 registry.add (" etaphiTrigger" , " multiplicity/centrality vs eta vs phi (triggers)" , {HistType::kTH3F , {{100 , 0 , 100 , " multiplicity/centrality" }, {100 , -2 , 2 , " #eta" }, {200 , 0 , o2::constants::math::TwoPI, " #varphi" }}});
170- registry.add (" invMass" , " 2-prong invariant mass (GeV/c^2)" , {HistType::kTH3F , {axisInvMassHistogram, axisPtTrigger, axisMultiplicity}});
169+ const AxisSpec& a = AxisSpec (axisInvMass);
170+ AxisSpec axisSpecMass = {1000 , a.binEdges [0 ], a.binEdges [a.getNbins ()]};
171+ registry.add (" invMass" , " 2-prong invariant mass (GeV/c^2)" , {HistType::kTH3F , {axisSpecMass, axisPtTrigger, axisMultiplicity}});
171172 if (doprocessSame2Prong2Prong || doprocessSame2Prong2ProngML) {
172- registry.add (" invMassTwoPart" , " 2D 2-prong invariant mass (GeV/c^2)" , {HistType::kTHnSparseF , {axisInvMassHistogram, axisInvMassHistogram , axisPtTrigger, axisPtAssoc, axisMultiplicity}});
173- registry.add (" invMassTwoPartDPhi" , " 2D 2-prong invariant mass (GeV/c^2)" , {HistType::kTHnSparseF , {axisInvMassHistogram, axisInvMassHistogram , axisPtTrigger, axisPtAssoc, axisDeltaPhi}});
173+ registry.add (" invMassTwoPart" , " 2D 2-prong invariant mass (GeV/c^2)" , {HistType::kTHnSparseF , {axisSpecMass, axisSpecMass , axisPtTrigger, axisPtAssoc, axisMultiplicity}});
174+ registry.add (" invMassTwoPartDPhi" , " 2D 2-prong invariant mass (GeV/c^2)" , {HistType::kTHnSparseF , {axisSpecMass, axisSpecMass , axisPtTrigger, axisPtAssoc, axisDeltaPhi}});
174175 }
175176 }
176177 registry.add (" multiplicity" , " event multiplicity" , {HistType::kTH1F , {{1000 , 0 , 100 , " /multiplicity/centrality" }}});
@@ -448,18 +449,23 @@ struct CorrelationTask {
448449 continue ;
449450 }
450451
451- float triggerWeight = eventWeight;
452- if constexpr (step == CorrelationContainer::kCFStepCorrected ) {
453- if (cfg.mEfficiencyTrigger ) {
454- triggerWeight *= getEfficiencyCorrection (cfg.mEfficiencyTrigger , track1.eta (), track1.pt (), multiplicity, posZ);
455- }
452+ if constexpr (std::experimental::is_detected<HasPartDaugh0Id, typename TTracks1::iterator>::value) {
453+ if (track1.cfParticleDaugh0Id () < 0 && track1.cfParticleDaugh1Id () < 0 )
454+ continue ; // these we could not match
456455 }
457456
458457 if constexpr (std::experimental::is_detected<HasMlProbD0, typename TTracks1::iterator>::value) {
459458 if (!passMLScore (track1))
460459 continue ;
461460 } // ML selection
462461
462+ float triggerWeight = eventWeight;
463+ if constexpr (step == CorrelationContainer::kCFStepCorrected ) {
464+ if (cfg.mEfficiencyTrigger ) {
465+ triggerWeight *= getEfficiencyCorrection (cfg.mEfficiencyTrigger , track1.eta (), track1.pt (), multiplicity, posZ);
466+ }
467+ }
468+
463469 if (cfgMassAxis) {
464470 if constexpr (std::experimental::is_detected<HasInvMass, typename TTracks1::iterator>::value)
465471 target->getTriggerHist ()->Fill (step, track1.pt (), multiplicity, posZ, track1.invMass (), triggerWeight);
0 commit comments