Skip to content

Commit 655e3b0

Browse files
authored
Add EMCal-registered event selection for hadrons in event mixing
Add EMCal-registered event selection for hadrons in event mixing
1 parent 8ea2a08 commit 655e3b0

1 file changed

Lines changed: 17 additions & 13 deletions

File tree

PWGHF/HFC/TableProducer/correlatorHfeHadrons.cxx

Lines changed: 17 additions & 13 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()) {
@@ -375,13 +385,7 @@ struct HfCorrelatorHfeHadrons {
375385
}
376386

377387
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());
381388

382-
entryHadron(hTrack.phi(), hTrack.eta(), hTrack.pt(), poolBin, gCollisionId, timeStamp);
383-
}
384-
}
385389
} // end Hadron Track loop
386390
cntEle++;
387391
} // end Electron loop
@@ -451,10 +455,10 @@ struct HfCorrelatorHfeHadrons {
451455

452456
void processData(TableCollision const& collision,
453457
aod::HfCorrSelEl const& electrons,
454-
TableTracks const& tracks,
458+
TableTracks const& tracks, aod::EMCALClusters const& emcClusters,
455459
aod::BCsWithTimestamps const& bcs)
456460
{
457-
fillCorrelation<false>(collision, electrons, tracks, bcs, 0);
461+
fillCorrelation<false>(collision, electrons, tracks, emcClusters, bcs, 0);
458462
}
459463

460464
PROCESS_SWITCH(HfCorrelatorHfeHadrons, processData, "Process for Data", false);
@@ -463,10 +467,10 @@ struct HfCorrelatorHfeHadrons {
463467

464468
void processMcRec(McTableCollision const& mcCollision,
465469
aod::HfCorrSelEl const& mcElectrons,
466-
McTableTracks const& mcTracks,
470+
McTableTracks const& mcTracks, aod::EMCALClusters const& emcClusters,
467471
aod::BCsWithTimestamps const& bcs, aod::McParticles const& mcParticle)
468472
{
469-
fillCorrelation<true>(mcCollision, mcElectrons, mcTracks, bcs, mcParticle);
473+
fillCorrelation<true>(mcCollision, mcElectrons, mcTracks, emcClusters, bcs, mcParticle);
470474
}
471475

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

0 commit comments

Comments
 (0)