Skip to content

Commit 425c429

Browse files
rashiguptrashi234
andauthored
[PWGHF] Add EMCal-registered event selection for hadrons in event mixing (#17741)
Co-authored-by: rashi.gupta@cern.ch <rashi.gupta@cern.ch>
1 parent 4e98452 commit 425c429

1 file changed

Lines changed: 19 additions & 18 deletions

File tree

PWGHF/HFC/TableProducer/correlatorHfeHadrons.cxx

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
#include "PWGHF/HFC/DataModel/CorrelationTables.h"
1818
#include "PWGHF/HFL/DataModel/ElectronSelectionTable.h"
19+
#include "PWGJE/DataModel/EMCALClusters.h"
1920

2021
#include "Common/CCDB/TriggerAliases.h"
2122
#include "Common/Core/RecoDecay.h"
@@ -62,7 +63,7 @@ struct HfCorrelatorHfeHadrons {
6263
// Event Selection
6364
Configurable<float> zPvPosMax{"zPvPosMax", 10., "Maximum z of the primary vertex (cm)"};
6465
Configurable<bool> isRun3{"isRun3", true, "Data is from Run3 or Run2"};
65-
66+
Configurable<bool> skipNoEmcClusters{"skipNoEmcClusters", false, "Skip events with no EMCal clusters"};
6667
Configurable<int> numberEventsMixed{"numberEventsMixed", 5, "number of events mixed in ME process"};
6768
Configurable<float> invMassEEMax{"invMassEEMax", 0.14f, "max Invariant Mass for Photonic electron"};
6869
// Associated Hadron selection
@@ -211,12 +212,17 @@ struct HfCorrelatorHfeHadrons {
211212
}
212213

213214
// Electron-hadron Correlation
214-
template <bool IsMc, typename TracksType, typename ElectronType, typename CollisionType, typename BcType, typename McParticlesType>
215-
void fillCorrelation(CollisionType const& collision, ElectronType const& electrons, TracksType const& tracks, BcType const&, McParticlesType const&)
215+
template <bool IsMc, typename TracksType, typename ElectronType, typename EmcClusterType, typename CollisionType, typename BcType, typename McParticlesType>
216+
void fillCorrelation(CollisionType const& collision, ElectronType const& electrons, TracksType const& tracks, EmcClusterType const& emcClusters, BcType const&, McParticlesType const&)
216217
{
217218
if (!(isRun3 ? collision.sel8() : (collision.sel7() && collision.alias_bit(kINT7)))) {
218219
return;
219220
}
221+
// skip events with no clusters
222+
if (emcClusters.size() == 0 && skipNoEmcClusters) {
223+
return;
224+
}
225+
220226
int poolBin = corrBinning.getBin(std::make_tuple(collision.posZ(), collision.multFT0M()));
221227
auto bc = collision.template bc_as<BcType>();
222228
int gCollisionId = collision.globalIndex();
@@ -240,7 +246,11 @@ struct HfCorrelatorHfeHadrons {
240246
if (!selAssoHadron(hTrack)) {
241247
continue;
242248
}
249+
if (!skipEventTableFilling) {
250+
registry.fill(HIST("hptHadron"), hTrack.pt());
243251

252+
entryHadron(hTrack.phi(), hTrack.eta(), hTrack.pt(), poolBin, gCollisionId, timeStamp);
253+
}
244254
// Mc rec hadron efficiency
245255
if constexpr (IsMc) {
246256
if (hTrack.has_mcParticle()) {
@@ -275,7 +285,6 @@ struct HfCorrelatorHfeHadrons {
275285
double ptElectron = -999;
276286
double phiElectron = -999;
277287
double etaElectron = -999;
278-
int cntEle = 0;
279288
for (const auto& eTrack : electrons) {
280289
ptElectron = eTrack.ptTrack();
281290
phiElectron = eTrack.phiTrack();
@@ -289,9 +298,7 @@ struct HfCorrelatorHfeHadrons {
289298
double etaHadron = -999;
290299
double phiHadron = -999;
291300
// EMCal electron
292-
if (eTrack.isEmcal() && requireEmcal) {
293-
acceptElectron = true;
294-
} else if (!eTrack.isEmcal() && !requireEmcal) {
301+
if (eTrack.isEmcal() == requireEmcal) {
295302
acceptElectron = true;
296303
}
297304

@@ -375,15 +382,9 @@ struct HfCorrelatorHfeHadrons {
375382
}
376383

377384
entryElectronHadronPair(deltaPhi, deltaEta, ptElectron, ptHadron, eTrack.eopEl(), eTrack.m02El(), eTrack.tpcNSigmaElTrack(), eTrack.tofNSigmaElTrack(), eTrack.tpcNClsCrRowsTrack(), eTrack.tpcCrRowsRatioTrack(), eTrack.itsChi2NClTrack(), eTrack.tpcChi2NClTrack(), eTrack.dcaXYTrack(), eTrack.dcaZTrack(), hTrack.tpcNClsCrossedRows(), hTrack.tpcCrossedRowsOverFindableCls(), hTrack.itsChi2NCl(), hTrack.tpcChi2NCl(), hTrack.dcaXY(), hTrack.dcaZ(), poolBin, nElHadLSCorr, nElHadUSCorr);
378-
if (!skipEventTableFilling) {
379-
if (cntEle == 0) {
380-
registry.fill(HIST("hptHadron"), hTrack.pt());
381385

382-
entryHadron(hTrack.phi(), hTrack.eta(), hTrack.pt(), poolBin, gCollisionId, timeStamp);
383-
}
384-
}
385386
} // end Hadron Track loop
386-
cntEle++;
387+
387388
} // end Electron loop
388389
}
389390

@@ -451,10 +452,10 @@ struct HfCorrelatorHfeHadrons {
451452

452453
void processData(TableCollision const& collision,
453454
aod::HfCorrSelEl const& electrons,
454-
TableTracks const& tracks,
455+
TableTracks const& tracks, aod::EMCALClusters const& emcClusters,
455456
aod::BCsWithTimestamps const& bcs)
456457
{
457-
fillCorrelation<false>(collision, electrons, tracks, bcs, 0);
458+
fillCorrelation<false>(collision, electrons, tracks, emcClusters, bcs, 0);
458459
}
459460

460461
PROCESS_SWITCH(HfCorrelatorHfeHadrons, processData, "Process for Data", false);
@@ -463,10 +464,10 @@ struct HfCorrelatorHfeHadrons {
463464

464465
void processMcRec(McTableCollision const& mcCollision,
465466
aod::HfCorrSelEl const& mcElectrons,
466-
McTableTracks const& mcTracks,
467+
McTableTracks const& mcTracks, aod::EMCALClusters const& emcClusters,
467468
aod::BCsWithTimestamps const& bcs, aod::McParticles const& mcParticle)
468469
{
469-
fillCorrelation<true>(mcCollision, mcElectrons, mcTracks, bcs, mcParticle);
470+
fillCorrelation<true>(mcCollision, mcElectrons, mcTracks, emcClusters, bcs, mcParticle);
470471
}
471472

472473
PROCESS_SWITCH(HfCorrelatorHfeHadrons, processMcRec, "Process MC Reco mode", true);

0 commit comments

Comments
 (0)