Skip to content

Commit f7cd81c

Browse files
authored
[PWGDQ] Add and change the code for the energy correlator analysis (#14656)
1 parent 07da348 commit f7cd81c

File tree

4 files changed

+136
-46
lines changed

4 files changed

+136
-46
lines changed

PWGDQ/Core/VarManager.cxx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1950,10 +1950,6 @@ void VarManager::SetDefaultVarNames()
19501950
fgVarNamesMap["kMCdeltaphi_randomPhi_toward"] = kMCdeltaphi_randomPhi_toward;
19511951
fgVarNamesMap["kMCdeltaphi_randomPhi_away"] = kMCdeltaphi_randomPhi_away;
19521952
fgVarNamesMap["kMCdeltaphi_randomPhi_trans"] = kMCdeltaphi_randomPhi_trans;
1953-
fgVarNamesMap["kMCCosChi_randomPhi_trans_rec"] = kMCCosChi_randomPhi_trans_rec;
1954-
fgVarNamesMap["kMCWeight_randomPhi_trans_rec"] = kMCWeight_randomPhi_trans_rec;
1955-
fgVarNamesMap["kMCCosChi_randomPhi_trans_gen"] = kMCCosChi_randomPhi_trans_gen;
1956-
fgVarNamesMap["kMCWeight_randomPhi_trans_gen"] = kMCWeight_randomPhi_trans_gen;
19571953
fgVarNamesMap["kMCCosChi_gen"] = kMCCosChi_gen;
19581954
fgVarNamesMap["kMCWeight_gen"] = kMCWeight_gen;
19591955
fgVarNamesMap["kMCdeltaeta_gen"] = kMCdeltaeta_gen;

PWGDQ/Core/VarManager.h

Lines changed: 9 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -661,10 +661,6 @@ class VarManager : public TObject
661661
kMCCosChi_rec,
662662
kMCWeight_rec,
663663
kMCdeltaeta_rec,
664-
kMCCosChi_randomPhi_trans_rec,
665-
kMCWeight_randomPhi_trans_rec,
666-
kMCCosChi_randomPhi_trans_gen,
667-
kMCWeight_randomPhi_trans_gen,
668664

669665
// MC mother particle variables
670666
kMCMotherPdgCode,
@@ -1280,7 +1276,7 @@ class VarManager : public TObject
12801276
template <typename U, typename T>
12811277
static void FillTrackMC(const U& mcStack, T const& track, float* values = nullptr);
12821278
template <int pairType, typename T, typename T1>
1283-
static void FillEnergyCorrelatorsMC(T const& track, T1 const& t1, float* values = nullptr);
1279+
static void FillEnergyCorrelatorsMC(T const& track, T1 const& t1, float* values = nullptr, float Translow = 1. / 3, float Transhigh = 2. / 3);
12841280
template <int pairType, typename T1, typename T2, typename T, typename T3>
12851281
static void FillEnergyCorrelatorsMCUnfolding(T1 const& dilepton, T2 const& hadron, T const& track, T3 const& t1, float* values = nullptr);
12861282
template <uint32_t fillMap, typename T1, typename T2, typename C>
@@ -1314,7 +1310,7 @@ class VarManager : public TObject
13141310
template <typename T1, typename T2>
13151311
static void FillDileptonHadron(T1 const& dilepton, T2 const& hadron, float* values = nullptr, float hadronMass = 0.0f);
13161312
template <typename T1, typename T2>
1317-
static void FillEnergyCorrelator(T1 const& dilepton, T2 const& hadron, float* values = nullptr, bool applyFitMass = false, float sidebandMass = 0.0f);
1313+
static void FillEnergyCorrelator(T1 const& dilepton, T2 const& hadron, float* values = nullptr, float Translow = 1. / 3, float Transhigh = 2. / 3, bool applyFitMass = false, float sidebandMass = 0.0f);
13181314
template <typename T1, typename T2>
13191315
static void FillDileptonPhoton(T1 const& dilepton, T2 const& photon, float* values = nullptr);
13201316
template <typename T>
@@ -3022,7 +3018,7 @@ void VarManager::FillTrackCollisionMC(T1 const& track, T2 const& MotherTrack, C
30223018
}
30233019

30243020
template <int pairType, typename T, typename T1>
3025-
void VarManager::FillEnergyCorrelatorsMC(T const& track, T1 const& t1, float* values)
3021+
void VarManager::FillEnergyCorrelatorsMC(T const& track, T1 const& t1, float* values, float Translow, float Transhigh)
30263022
{
30273023
// energy correlators
30283024
float MassHadron;
@@ -3062,7 +3058,8 @@ void VarManager::FillEnergyCorrelatorsMC(T const& track, T1 const& t1, float* va
30623058
float randomPhi_toward = -o2::constants::math::PIHalf;
30633059
float randomPhi_away = -o2::constants::math::PIHalf;
30643060

3065-
if ((deltaphi > -0.5 * TMath::Pi() && deltaphi < -1. / 3 * TMath::Pi()) || (deltaphi > 4. / 3 * TMath::Pi() && deltaphi < 1.5 * TMath::Pi()) || (deltaphi > 1. / 3 * TMath::Pi() && deltaphi < 2. / 3 * TMath::Pi())) {
3061+
float deltaphitrans = RecoDecay::constrainAngle(track.phi() - t1.phi(), -o2::constants::math::PI);
3062+
if ((deltaphitrans > -Transhigh * TMath::Pi() && deltaphitrans < -Translow * TMath::Pi()) || (deltaphitrans > Translow * TMath::Pi() && deltaphitrans < Transhigh * TMath::Pi())) {
30663063
randomPhi_trans = gRandom->Uniform(-o2::constants::math::PIHalf, 3. * o2::constants::math::PIHalf);
30673064
randomPhi_toward = gRandom->Uniform(-o2::constants::math::PIHalf, 3. * o2::constants::math::PIHalf);
30683065
randomPhi_away = gRandom->Uniform(-o2::constants::math::PIHalf, 3. * o2::constants::math::PIHalf);
@@ -3088,7 +3085,7 @@ void VarManager::FillEnergyCorrelatorsMC(T const& track, T1 const& t1, float* va
30883085
template <int pairType, typename T1, typename T2, typename T, typename T3>
30893086
void VarManager::FillEnergyCorrelatorsMCUnfolding(T1 const& dilepton, T2 const& hadron, T const& track, T3 const& t1, float* values)
30903087
{
3091-
if (fgUsedVars[kMCCosChi_gen] || fgUsedVars[kMCWeight_gen] || fgUsedVars[kMCdeltaeta_gen] || fgUsedVars[kMCCosChi_rec] || fgUsedVars[kMCWeight_rec] || fgUsedVars[kMCdeltaeta_rec] || fgUsedVars[kMCCosChi_randomPhi_trans_rec] || fgUsedVars[kMCWeight_randomPhi_trans_rec] || fgUsedVars[kMCCosChi_randomPhi_trans_gen] || fgUsedVars[kMCWeight_randomPhi_trans_gen]) {
3088+
if (fgUsedVars[kMCCosChi_gen] || fgUsedVars[kMCWeight_gen] || fgUsedVars[kMCdeltaeta_gen] || fgUsedVars[kMCCosChi_rec] || fgUsedVars[kMCWeight_rec] || fgUsedVars[kMCdeltaeta_rec]) {
30923089
// energy correlators
30933090
float MassHadron;
30943091
if constexpr (pairType == kJpsiHadronMass) {
@@ -3111,31 +3108,6 @@ void VarManager::FillEnergyCorrelatorsMCUnfolding(T1 const& dilepton, T2 const&
31113108
float E_boost_rec = LorentzTransformJpsihadroncosChi("weight_boost", v1_rec, v2_rec);
31123109
values[kMCWeight_rec] = E_boost_rec / v1_rec.M();
31133110
values[kMCdeltaeta_rec] = dilepton.eta() - hadron.eta();
3114-
3115-
values[kMCCosChi_randomPhi_trans_rec] = -999.9f;
3116-
values[kMCCosChi_randomPhi_trans_gen] = -999.9f;
3117-
3118-
float randomPhi_trans_rec = -o2::constants::math::PIHalf;
3119-
float randomPhi_trans_gen = -o2::constants::math::PIHalf;
3120-
3121-
float deltaphi_rec = RecoDecay::constrainAngle(dilepton.phi() - hadron.phi(), -o2::constants::math::PIHalf);
3122-
float deltaphi_gen = RecoDecay::constrainAngle(track.phi() - t1.phi(), -o2::constants::math::PIHalf);
3123-
3124-
if ((deltaphi_rec > -0.5 * TMath::Pi() && deltaphi_rec < -1. / 3 * TMath::Pi()) || (deltaphi_rec > 4. / 3 * TMath::Pi() && deltaphi_rec < 1.5 * TMath::Pi()) || (deltaphi_rec > 1. / 3 * TMath::Pi() && deltaphi_rec < 2. / 3 * TMath::Pi())) {
3125-
randomPhi_trans_rec = gRandom->Uniform(-o2::constants::math::PIHalf, 3. * o2::constants::math::PIHalf);
3126-
3127-
ROOT::Math::PtEtaPhiMVector v2_randomPhi_trans_rec(v2_rec.pt(), v2_rec.eta(), randomPhi_trans_rec, o2::constants::physics::MassPionCharged);
3128-
values[kMCCosChi_randomPhi_trans_rec] = LorentzTransformJpsihadroncosChi("coschi", v1_rec, v2_randomPhi_trans_rec);
3129-
values[kMCWeight_randomPhi_trans_rec] = LorentzTransformJpsihadroncosChi("weight_boost", v1_rec, v2_randomPhi_trans_rec) / v1_rec.M();
3130-
}
3131-
3132-
if ((deltaphi_gen > -0.5 * TMath::Pi() && deltaphi_gen < -1. / 3 * TMath::Pi()) || (deltaphi_gen > 4. / 3 * TMath::Pi() && deltaphi_gen < 1.5 * TMath::Pi()) || (deltaphi_gen > 1. / 3 * TMath::Pi() && deltaphi_gen < 2. / 3 * TMath::Pi())) {
3133-
randomPhi_trans_gen = gRandom->Uniform(-o2::constants::math::PIHalf, 3. * o2::constants::math::PIHalf);
3134-
3135-
ROOT::Math::PtEtaPhiMVector v2_randomPhi_trans_gen(v2_gen.pt(), v2_gen.eta(), randomPhi_trans_gen, MassHadron);
3136-
values[kMCCosChi_randomPhi_trans_gen] = LorentzTransformJpsihadroncosChi("coschi", v1_gen, v2_randomPhi_trans_gen);
3137-
values[kMCWeight_randomPhi_trans_gen] = LorentzTransformJpsihadroncosChi("weight_boost", v1_gen, v2_randomPhi_trans_gen) / v1_gen.M();
3138-
}
31393111
}
31403112
}
31413113

@@ -5495,7 +5467,7 @@ void VarManager::FillDileptonHadron(T1 const& dilepton, T2 const& hadron, float*
54955467
}
54965468

54975469
template <typename T1, typename T2>
5498-
void VarManager::FillEnergyCorrelator(T1 const& dilepton, T2 const& hadron, float* values, bool applyFitMass, float sidebandMass)
5470+
void VarManager::FillEnergyCorrelator(T1 const& dilepton, T2 const& hadron, float* values, float Translow, float Transhigh, bool applyFitMass, float sidebandMass)
54995471
{
55005472
float dileptonmass = o2::constants::physics::MassJPsi;
55015473
if (applyFitMass) {
@@ -5518,7 +5490,7 @@ void VarManager::FillEnergyCorrelator(T1 const& dilepton, T2 const& hadron, floa
55185490
values[kEtaDau] = v2.eta();
55195491
values[kPhiDau] = RecoDecay::constrainAngle(v2.phi(), -o2::constants::math::PIHalf);
55205492

5521-
float deltaphi = RecoDecay::constrainAngle(v1.phi() - v2.phi(), -o2::constants::math::PIHalf);
5493+
float deltaphi = RecoDecay::constrainAngle(v1.phi() - v2.phi(), -o2::constants::math::PI);
55225494
values[kCosChi_randomPhi_trans] = -999.9f;
55235495
values[kCosChi_randomPhi_toward] = -999.9f;
55245496
values[kCosChi_randomPhi_away] = -999.9f;
@@ -5531,7 +5503,7 @@ void VarManager::FillEnergyCorrelator(T1 const& dilepton, T2 const& hadron, floa
55315503
float randomPhi_toward = -o2::constants::math::PIHalf;
55325504
float randomPhi_away = -o2::constants::math::PIHalf;
55335505

5534-
if ((deltaphi > -0.5 * TMath::Pi() && deltaphi < -1. / 3 * TMath::Pi()) || (deltaphi > 4. / 3 * TMath::Pi() && deltaphi < 1.5 * TMath::Pi()) || (deltaphi > 1. / 3 * TMath::Pi() && deltaphi < 2. / 3 * TMath::Pi())) {
5506+
if ((deltaphi > -Transhigh * TMath::Pi() && deltaphi < -Translow * TMath::Pi()) || (deltaphi > Translow * TMath::Pi() && deltaphi < Transhigh * TMath::Pi())) {
55355507
randomPhi_trans = gRandom->Uniform(-o2::constants::math::PIHalf, 3. * o2::constants::math::PIHalf);
55365508
randomPhi_toward = gRandom->Uniform(-o2::constants::math::PIHalf, 3. * o2::constants::math::PIHalf);
55375509
randomPhi_away = gRandom->Uniform(-o2::constants::math::PIHalf, 3. * o2::constants::math::PIHalf);

PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx

Lines changed: 117 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2067,6 +2067,7 @@ struct AnalysisDileptonTrack {
20672067
Configurable<bool> fConfigPublishTripletTable{"cfgPublishTripletTable", false, "Publish the triplet tables, BmesonCandidates"};
20682068
Configurable<bool> fConfigApplyMassEC{"cfgApplyMassEC", false, "Apply fit mass for sideband for the energy correlator study"};
20692069
Configurable<std::vector<int>> fConfigSavelessevents{"cfgSavelessevents", std::vector<int>{1, 0}, "Save less events for the energy correlator study"};
2070+
Configurable<std::vector<float>> fConfigTransRange{"cfgTransRange", std::vector<float>{0.333333, 0.666667}, "Transverse region for the energy correlstor analysis"};
20702071
} fConfigOptions;
20712072

20722073
struct : ConfigurableGroup {
@@ -2133,6 +2134,7 @@ struct AnalysisDileptonTrack {
21332134
{
21342135
cout << "AnalysisDileptonTrack::init() called" << endl;
21352136
bool isBarrel = context.mOptions.get<bool>("processBarrel");
2137+
bool isBarrelME = context.mOptions.get<bool>("processBarrelMixedEvent");
21362138
// bool isBarrelAsymmetric = context.mOptions.get<bool>("processDstarToD0Pi");
21372139
// bool isMuon = context.mOptions.get<bool>("processMuonSkimmed");
21382140
bool isMCGen = context.mOptions.get<bool>("processMCGen");
@@ -2395,6 +2397,9 @@ struct AnalysisDileptonTrack {
23952397
DefineHistograms(fHistMan, Form("DileptonTrack_%s_%s", pairLegCutName.Data(), fTrackCutNames[iCutTrack].Data()), fConfigOptions.fConfigHistogramSubgroups.value.data());
23962398
for (auto& sig : fRecMCSignals) {
23972399
DefineHistograms(fHistMan, Form("DileptonTrackMCMatched_%s_%s_%s", pairLegCutName.Data(), fTrackCutNames[iCutTrack].Data(), sig->GetName()), fConfigOptions.fConfigHistogramSubgroups.value.data());
2400+
if (isBarrelME) {
2401+
DefineHistograms(fHistMan, Form("DileptonTrackMCMatchedME_%s_%s_%s", pairLegCutName.Data(), fTrackCutNames[iCutTrack].Data(), sig->GetName()), fConfigOptions.fConfigHistogramSubgroups.value.data());
2402+
}
23982403
}
23992404

24002405
if (!cfgPairing_strCommonTrackCuts.IsNull()) {
@@ -2588,7 +2593,8 @@ struct AnalysisDileptonTrack {
25882593
auto trackMC = track.mcParticle();
25892594
// for the energy correlator analysis
25902595
auto motherParticle = lepton1MC.template mothers_first_as<McParticles>();
2591-
VarManager::FillEnergyCorrelator(dilepton, track, fValuesHadron, fConfigOptions.fConfigApplyMassEC);
2596+
std::vector<float> fTransRange = fConfigOptions.fConfigTransRange;
2597+
VarManager::FillEnergyCorrelator(dilepton, track, fValuesHadron, fTransRange[0], fTransRange[1], fConfigOptions.fConfigApplyMassEC);
25922598
VarManager::FillEnergyCorrelatorsMCUnfolding<VarManager::kJpsiHadronMass>(dilepton, track, motherParticle, trackMC, fValuesHadron);
25932599
mcDecision = 0;
25942600
isig = 0;
@@ -2804,6 +2810,112 @@ struct AnalysisDileptonTrack {
28042810
cout << "AnalysisDileptonTrack::processBarrel() completed" << endl;
28052811
}
28062812

2813+
void processBarrelMixedEvent(soa::Filtered<MyEventsHashSelected>& events,
2814+
BCsWithTimestamps const& bcs,
2815+
soa::Join<aod::TrackAssoc, aod::BarrelTrackCuts> const& assocs,
2816+
MyBarrelTracksWithCov const& tracks, soa::Filtered<MyDielectronCandidates> const& dileptons,
2817+
McCollisions const& /*mcEvents*/, McParticles const& /*mcTracks*/)
2818+
{
2819+
if (events.size() == 0) {
2820+
return;
2821+
}
2822+
if (fCurrentRun != bcs.begin().runNumber()) { // start: runNumber
2823+
initParamsFromCCDB(bcs.begin().timestamp());
2824+
fCurrentRun = bcs.begin().runNumber();
2825+
} // end: runNumber
2826+
// loop over two event comibnations
2827+
for (auto& [event1, event2] : selfCombinations(fHashBin, fConfigOptions.fConfigMixingDepth.value, -1, events, events)) {
2828+
// fill event quantities
2829+
if (!event1.isEventSelected_bit(0) || !event2.isEventSelected_bit(0)) {
2830+
continue;
2831+
}
2832+
std::vector<int> fSavelessevents = fConfigOptions.fConfigSavelessevents;
2833+
if (fSavelessevents[0] > 1 && event1.globalIndex() % fSavelessevents[0] == fSavelessevents[1]) {
2834+
continue;
2835+
}
2836+
// get the dilepton slice for event1
2837+
auto evDileptons = dileptons.sliceBy(dielectronsPerCollision, event1.globalIndex());
2838+
evDileptons.bindExternalIndices(&events);
2839+
2840+
// get the track associations slice for event2
2841+
auto evAssocs = assocs.sliceBy(trackAssocsPerCollision, event2.globalIndex());
2842+
evAssocs.bindExternalIndices(&events);
2843+
2844+
uint32_t mcDecision = static_cast<uint32_t>(0);
2845+
size_t isig = 0;
2846+
2847+
// loop over dileptons
2848+
for (auto dilepton : evDileptons) {
2849+
// get full track info of tracks based on the index
2850+
auto lepton1 = tracks.rawIteratorAt(dilepton.index0Id());
2851+
auto lepton2 = tracks.rawIteratorAt(dilepton.index1Id());
2852+
if (!lepton1.has_mcParticle() || !lepton2.has_mcParticle()) {
2853+
continue;
2854+
}
2855+
auto lepton1MC = lepton1.mcParticle();
2856+
auto lepton2MC = lepton2.mcParticle();
2857+
// Check that the dilepton has zero charge
2858+
if (dilepton.sign() != 0) {
2859+
continue;
2860+
}
2861+
// dilepton rap cut
2862+
float rap = dilepton.rap();
2863+
if (fConfigMCOptions.fConfigUseMCRapcut && abs(rap) > fConfigOptions.fConfigDileptonRapCutAbs) {
2864+
continue;
2865+
}
2866+
2867+
// loop over associations
2868+
for (auto& assoc : evAssocs) {
2869+
2870+
// check that this track fulfills at least one of the specified cuts
2871+
uint32_t trackSelection = (assoc.isBarrelSelected_raw() & fTrackCutBitMap);
2872+
if (!trackSelection) {
2873+
continue;
2874+
}
2875+
2876+
// get the track from this association
2877+
// auto track = assoc.template track_as<TTracks>();
2878+
auto track = tracks.rawIteratorAt(assoc.trackId());
2879+
// check that this track is not included in the current dilepton
2880+
if (track.globalIndex() == dilepton.index0Id() || track.globalIndex() == dilepton.index1Id()) {
2881+
continue;
2882+
}
2883+
2884+
if (!track.has_mcParticle()) {
2885+
continue;
2886+
}
2887+
auto trackMC = track.mcParticle();
2888+
// for the energy correlator analysis
2889+
auto motherParticle = lepton1MC.template mothers_first_as<McParticles>();
2890+
VarManager::FillEnergyCorrelatorsMCUnfolding<VarManager::kJpsiHadronMass>(dilepton, track, motherParticle, trackMC, VarManager::fgValues);
2891+
mcDecision = 0;
2892+
isig = 0;
2893+
for (auto sig = fRecMCSignals.begin(); sig != fRecMCSignals.end(); sig++, isig++) {
2894+
if ((*sig)->CheckSignal(true, lepton1MC, lepton2MC, trackMC)) {
2895+
mcDecision |= (static_cast<uint32_t>(1) << isig);
2896+
}
2897+
}
2898+
2899+
// loop over dilepton leg cuts and track cuts and fill histograms separately for each combination
2900+
for (int icut = 0; icut < fNCuts; icut++) {
2901+
if (!dilepton.filterMap_bit(icut)) {
2902+
continue;
2903+
}
2904+
for (uint32_t iTrackCut = 0; iTrackCut < fTrackCutNames.size(); iTrackCut++) {
2905+
if (trackSelection & (static_cast<uint32_t>(1) << iTrackCut)) {
2906+
for (uint32_t isig = 0; isig < fRecMCSignals.size(); isig++) {
2907+
if (mcDecision & (static_cast<uint32_t>(1) << isig)) {
2908+
fHistMan->FillHistClass(Form("DileptonTrackMCMatchedME_%s_%s_%s", fLegCutNames[icut].Data(), fTrackCutNames[iTrackCut].Data(), fRecMCSignals[isig]->GetName()), VarManager::fgValues);
2909+
}
2910+
}
2911+
}
2912+
}
2913+
}
2914+
} // end for (assocs)
2915+
} // end for (dileptons)
2916+
} // end event loop
2917+
}
2918+
28072919
/* void processDstarToD0Pi(soa::Filtered<MyEventsSelected> const& events, BCsWithTimestamps const& bcs,
28082920
soa::Filtered<soa::Join<aod::TrackAssoc, aod::BarrelTrackCuts>> const& assocs,
28092921
MyBarrelTracksWithCov const& tracks, soa::Filtered<MyDitrackCandidates> const& ditracks,
@@ -2823,7 +2935,7 @@ struct AnalysisDileptonTrack {
28232935
runDileptonHadron<VarManager::kDstarToD0KPiPi, gkEventFillMapWithCov, gkTrackFillMapWithCov>(event, groupedBarrelAssocs, tracks, groupedDitracks, mcEvents, mcTracks);
28242936
}
28252937
}
2826-
*/
2938+
*/
28272939
/*
28282940
Preslice<aod::ReducedMuonsAssoc> muonAssocsPerCollision = aod::reducedtrack_association::reducedeventId;
28292941
Preslice<MyDimuonCandidates> dimuonsPerCollision = aod::reducedpair::reducedeventId;
@@ -2964,7 +3076,8 @@ struct AnalysisDileptonTrack {
29643076
}
29653077
if (t2_raw.getGenStatusCode() <= 0)
29663078
continue;
2967-
VarManager::FillEnergyCorrelatorsMC<THadronMassType>(t1_raw, t2_raw, VarManager::fgValues);
3079+
std::vector<float> fTransRange = fConfigOptions.fConfigTransRange;
3080+
VarManager::FillEnergyCorrelatorsMC<THadronMassType>(t1_raw, t2_raw, VarManager::fgValues, fTransRange[0], fTransRange[1]);
29683081
for (auto& sig : fGenMCSignals) {
29693082
if (sig->CheckSignal(true, t1_raw)) {
29703083
fHistMan->FillHistClass(Form("MCTruthEenergyCorrelators_%s", sig->GetName()), VarManager::fgValues);
@@ -3096,6 +3209,7 @@ struct AnalysisDileptonTrack {
30963209
}
30973210

30983211
PROCESS_SWITCH(AnalysisDileptonTrack, processBarrel, "Run barrel dilepton-track pairing, using skimmed data", false);
3212+
PROCESS_SWITCH(AnalysisDileptonTrack, processBarrelMixedEvent, "Run barrel dilepton-hadron mixed event pairing", false);
30993213
// PROCESS_SWITCH(AnalysisDileptonTrack, processDstarToD0Pi, "Run barrel pairing of D0 daughters with pion candidate, using skimmed data", false);
31003214
// PROCESS_SWITCH(AnalysisDileptonTrack, processMuonSkimmed, "Run muon dilepton-track pairing, using skimmed data", false);
31013215
PROCESS_SWITCH(AnalysisDileptonTrack, processMCGen, "Loop over MC particle stack and fill generator level histograms", false);

0 commit comments

Comments
 (0)