Skip to content

Commit 8ee13ad

Browse files
authored
Merge branch 'AliceO2Group:master' into master
2 parents ab4d075 + 0af789a commit 8ee13ad

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+3362
-957
lines changed

Common/TableProducer/multCentTable.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ struct MultCentTable {
7575
ccdb->setFatalWhenNull(false); // please never crash on your own, all exceptions captured (as they always should)
7676

7777
// task-specific
78-
module.init(opts, initContext);
78+
module.init(metadataInfo, opts, initContext);
7979
}
8080

8181
void processRun2(soa::Join<aod::Collisions, aod::Run2MatchedSparse> const& collisions,

Common/Tools/MultModule.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -413,8 +413,8 @@ class MultModule
413413
CalibrationInfo nGlobalInfo = CalibrationInfo("NGlobal");
414414
CalibrationInfo mftInfo = CalibrationInfo("MFT");
415415

416-
template <typename TConfigurables, typename TInitContext>
417-
void init(TConfigurables& opts, TInitContext& context)
416+
template <typename TMetadatainfo, typename TConfigurables, typename TInitContext>
417+
void init(TMetadatainfo const& metadataInfo, TConfigurables& opts, TInitContext& context)
418418
{
419419
// read in configurations from the task where it's used
420420
internalOpts = opts;
@@ -488,6 +488,11 @@ class MultModule
488488
listOfRequestors[kPVMults].Append(Form("%s ", "dependency check"));
489489
}
490490

491+
// capture the need for PYTHIA calibration in Pb-Pb runs
492+
if (metadataInfo.isMC() && mRunNumber >= 544013 && mRunNumber <= 545367) {
493+
internalOpts.generatorName.value = "PYTHIA";
494+
}
495+
491496
mRunNumber = 0;
492497
mRunNumberCentrality = 0;
493498
lCalibLoaded = false;

Common/Tools/timestampModule.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,10 @@ class TimestampModule
9696
int64_t sorTimestamp = runDuration.first; // timestamp of the SOR/SOX/STF in ms
9797
int64_t eorTimestamp = runDuration.second; // timestamp of the EOR/EOX/ETF in ms
9898

99+
// clear cache to prevent interference with orbit reset queries from other code
100+
// FIXME this should not have been a problem, to be investigated
101+
ccdb->clearCache(timestampOpts.orbit_reset_path.value.data());
102+
99103
const bool isUnanchoredRun3MC = runNumber >= 300000 && runNumber < 500000;
100104
if (timestampOpts.isRun2MC.value == 1 || isUnanchoredRun3MC) {
101105
// isRun2MC: bc/orbit distributions are not simulated in Run2 MC. All bcs are set to 0.

PWGCF/FemtoDream/Tasks/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ o2physics_add_dpl_workflow(femtodream-collision-masker
5959
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
6060
COMPONENT_NAME Analysis)
6161

62+
o2physics_add_dpl_workflow(femtodream-pair-efficiency
63+
SOURCES femtoDreamPairEfficiency.cxx
64+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
65+
COMPONENT_NAME Analysis)
66+
6267
o2physics_add_dpl_workflow(femtodream-hash
6368
SOURCES femtoDreamHashTask.cxx
6469
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore

PWGCF/FemtoDream/Tasks/femtoDreamPairEfficiency.cxx

Lines changed: 623 additions & 0 deletions
Large diffs are not rendered by default.

PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx

Lines changed: 62 additions & 34 deletions
Large diffs are not rendered by default.

PWGCF/Tasks/correlations.cxx

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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);

PWGEM/Dilepton/Core/Dilepton.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1132,7 +1132,7 @@ struct Dilepton {
11321132

11331133
SliceCache cache;
11341134
Preslice<MyElectrons> perCollision_electron = aod::emprimaryelectron::emeventId;
1135-
Filter trackFilter_electron = dielectroncuts.cfg_min_pt_track < o2::aod::track::pt && dielectroncuts.cfg_min_eta_track < o2::aod::track::eta && o2::aod::track::eta < dielectroncuts.cfg_max_eta_track && dielectroncuts.cfg_min_phi_track < o2::aod::track::phi && o2::aod::track::phi < dielectroncuts.cfg_max_phi_track && o2::aod::track::tpcChi2NCl < dielectroncuts.cfg_max_chi2tpc && o2::aod::track::itsChi2NCl < dielectroncuts.cfg_max_chi2its && nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz;
1135+
Filter trackFilter_electron = dielectroncuts.cfg_min_pt_track < o2::aod::track::pt && dielectroncuts.cfg_min_eta_track < o2::aod::track::eta && o2::aod::track::eta < dielectroncuts.cfg_max_eta_track && o2::aod::track::tpcChi2NCl < dielectroncuts.cfg_max_chi2tpc && o2::aod::track::itsChi2NCl < dielectroncuts.cfg_max_chi2its && nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz;
11361136
Filter pidFilter_electron = dielectroncuts.cfg_min_TPCNsigmaEl < o2::aod::pidtpc::tpcNSigmaEl && o2::aod::pidtpc::tpcNSigmaEl < dielectroncuts.cfg_max_TPCNsigmaEl;
11371137
Filter ttcaFilter_electron = ifnode(dielectroncuts.enableTTCA.node(), o2::aod::emprimaryelectron::isAssociatedToMPC == true || o2::aod::emprimaryelectron::isAssociatedToMPC == false, o2::aod::emprimaryelectron::isAssociatedToMPC == true);
11381138
Filter prefilter_derived_electron = ifnode(dielectroncuts.cfg_apply_cuts_from_prefilter_derived.node() && dielectroncuts.cfg_prefilter_bits_derived.node() >= static_cast<uint16_t>(1),

PWGEM/Dilepton/Core/DileptonMC.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1211,7 +1211,7 @@ struct DileptonMC {
12111211

12121212
SliceCache cache;
12131213
Preslice<MyMCElectrons> perCollision_electron = aod::emprimaryelectron::emeventId;
1214-
Filter trackFilter_electron = dielectroncuts.cfg_min_phi_track < o2::aod::track::phi && o2::aod::track::phi < dielectroncuts.cfg_max_phi_track && o2::aod::track::tpcChi2NCl < dielectroncuts.cfg_max_chi2tpc && o2::aod::track::itsChi2NCl < dielectroncuts.cfg_max_chi2its && nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz;
1214+
Filter trackFilter_electron = o2::aod::track::tpcChi2NCl < dielectroncuts.cfg_max_chi2tpc && o2::aod::track::itsChi2NCl < dielectroncuts.cfg_max_chi2its && nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz;
12151215
Filter pidFilter_electron = dielectroncuts.cfg_min_TPCNsigmaEl < o2::aod::pidtpc::tpcNSigmaEl && o2::aod::pidtpc::tpcNSigmaEl < dielectroncuts.cfg_max_TPCNsigmaEl;
12161216
Filter ttcaFilter_electron = ifnode(dielectroncuts.enableTTCA.node(), o2::aod::emprimaryelectron::isAssociatedToMPC == true || o2::aod::emprimaryelectron::isAssociatedToMPC == false, o2::aod::emprimaryelectron::isAssociatedToMPC == true);
12171217
Filter prefilter_derived_electron = ifnode(dielectroncuts.cfg_apply_cuts_from_prefilter_derived.node() && dielectroncuts.cfg_prefilter_bits_derived.node() >= static_cast<uint16_t>(1),

PWGEM/Dilepton/Core/DimuonCut.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ class DimuonCut : public TNamed
194194
return track.nClusters() >= mMinNClustersMCHMID;
195195

196196
case DimuonCuts::kChi2:
197-
return track.chi2() / (2.f * (track.nClusters() + track.nClustersMFT()) - 5.f) < mMaxChi2;
197+
return (track.trackType() == static_cast<uint8_t>(o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) ? track.chi2() / (2.f * (track.nClusters() + track.nClustersMFT()) - 5.f) : track.chi2()) < mMaxChi2;
198198

199199
case DimuonCuts::kMatchingChi2MCHMFT:
200200
return track.chi2MatchMCHMFT() < mMaxMatchingChi2MCHMFT;

0 commit comments

Comments
 (0)