@@ -66,6 +66,7 @@ struct HfCorrelatorHfeHadrons {
6666 Configurable<bool > isRun3{" isRun3" , true , " Data is from Run3 or Run2" };
6767
6868 Configurable<int > numberEventsMixed{" numberEventsMixed" , 5 , " number of events mixed in ME process" };
69+ Configurable<float > invMassEEMax{" invMassEEMax" , 0 .14f , " max Invariant Mass for Photonic electron" };
6970 // Associated Hadron selection
7071 Configurable<float > ptTrackMin{" ptTrackMin" , 0 .1f , " Transverse momentum range for associated hadron tracks" };
7172 Configurable<float > etaTrackMax{" etaTrackMax" , 0 .8f , " Eta range for associated hadron tracks" };
@@ -106,6 +107,7 @@ struct HfCorrelatorHfeHadrons {
106107 ConfigurableAxis binsPt{" binsPt" , {50 , 0.0 , 50 }, " #it{p_{T}}(GeV/#it{c})" };
107108 ConfigurableAxis binsPoolBin{" binsPoolBin" , {9 , 0 ., 9 .}, " PoolBin" };
108109 ConfigurableAxis binsNSigma{" binsNSigma" , {30 , -15 ., 15 .}, " #it{#sigma_{TPC}}" };
110+ ConfigurableAxis binsMass{" binsMass" , {100 , 0.0 , 2.0 }, " Mass (GeV/#it{c}^{2}); entries" };
109111
110112 HistogramRegistry registry{
111113 " registry" ,
@@ -117,11 +119,17 @@ struct HfCorrelatorHfeHadrons {
117119 AxisSpec axisDeltaEta = {binsDeltaEta, " #Delta #eta = #eta_{Electron}- #eta_{Hadron}" };
118120 AxisSpec axisDeltaPhi = {binsDeltaPhi, " #Delta #varphi = #varphi_{Electron}- #varphi_{Hadron}" };
119121 AxisSpec axisPt = {binsPt, " #it{p_{T}}(GeV/#it{c})" };
122+ AxisSpec axisMass = {binsMass, " Mass (GeV/#it{c}^{2}); entries" };
123+
120124 AxisSpec const axisPoolBin = {binsPoolBin, " PoolBin" };
121125 AxisSpec axisNSigma = {binsNSigma, " it{#sigma_{TPC}}" };
122126
123127 registry.add (" hZvertex" , " z vertex" , {HistType::kTH1D , {axisPosZ}});
124128 registry.add (" hNevents" , " No of events" , {HistType::kTH1D , {{3 , 1 , 4 }}});
129+ registry.add (" hLikeMass" , " Like mass" , {HistType::kTH1D , {{axisMass}}});
130+ registry.add (" hUnLikeMass" , " unLike mass" , {HistType::kTH1D , {{axisMass}}});
131+ registry.add (" hLikeSignPt" , " Like sign Momentum " , {HistType::kTH1D , {{axisPt}}});
132+ registry.add (" hUnLikeSignPt" , " UnLike sign Momentum" , {HistType::kTH1D , {{axisPt}}});
125133 registry.add (" hInclusiveEHCorrel" , " Sparse for Delta phi and Delta eta Inclusive Electron with Hadron;p_{T}^{e} (GeV#it{/c});p_{T}^{h} (GeV#it{/c});#Delta#varphi;#Delta#eta;" , {HistType::kTHnSparseF , {{axisPt}, {axisPt}, {axisDeltaPhi}, {axisDeltaEta}}});
126134 registry.add (" hLSEHCorrel" , " Sparse for Delta phi and Delta eta Like sign Electron pair with Hadron;p_{T}^{e} (GeV#it{/c});p_{T}^{h} (GeV#it{/c});#Delta#varphi;#Delta#eta;" , {HistType::kTHnSparseF , {{axisPt}, {axisPt}, {axisDeltaPhi}, {axisDeltaEta}}});
127135 registry.add (" hULSEHCorrel" , " Sparse for Delta phi and Delta eta UnLike sign Electron pair with Hadron;p_{T}^{e} (GeV#it{/c});p_{T}^{h} (GeV#it{/c});#Delta#varphi;#Delta#eta;" , {HistType::kTHnSparseF , {{axisPt}, {axisPt}, {axisDeltaPhi}, {axisDeltaEta}}});
@@ -168,13 +176,13 @@ struct HfCorrelatorHfeHadrons {
168176
169177 // Electron-hadron Correlation
170178 template <typename TracksType, typename ElectronType, typename CollisionType, typename BcType>
171- void fillCorrelation (CollisionType const & collision, ElectronType const & electron , TracksType const & tracks, BcType const &)
179+ void fillCorrelation (CollisionType const & collision, ElectronType const & electrons , TracksType const & tracks, BcType const &)
172180 {
173181 if (!(isRun3 ? collision.sel8 () : (collision.sel7 () && collision.alias_bit (kINT7 )))) {
174182 return ;
175183 }
176184 int poolBin = corrBinning.getBin (std::make_tuple (collision.posZ (), collision.multFT0M ()));
177- auto bc = collision.template bc_as <aod::BCsWithTimestamps >();
185+ auto bc = collision.template bc_as <BcType >();
178186 int gCollisionId = collision.globalIndex ();
179187 int64_t timeStamp = bc.timestamp ();
180188
@@ -205,7 +213,7 @@ struct HfCorrelatorHfeHadrons {
205213 double phiElectron = -999 ;
206214 double etaElectron = -999 ;
207215
208- for (const auto & eTrack : electron ) {
216+ for (const auto & eTrack : electrons ) {
209217 ptElectron = eTrack.ptTrack ();
210218 phiElectron = eTrack.phiTrack ();
211219 etaElectron = eTrack.etaTrack ();
@@ -237,18 +245,32 @@ struct HfCorrelatorHfeHadrons {
237245 registry.fill (HIST (" hptElectron" ), ptElectron);
238246 int nElectronLS = 0 ;
239247 int nElectronUS = 0 ;
248+ float massLike = 0 ;
249+ float massUnLike = 0 ;
240250 if (eTrack.nElPairLS () > 0 ) {
241251 for (int i = 0 ; i < eTrack.nElPairLS (); ++i) {
252+ massLike = eTrack.invariantMassEE ();
242253
243- ++nElectronLS;
244254 registry.fill (HIST (" hLSElectronBin" ), poolBin);
255+ registry.fill (HIST (" hLikeMass" ), massLike);
256+
257+ if (massLike <= invMassEEMax) {
258+ ++nElectronLS;
259+ registry.fill (HIST (" hLikeSignPt" ), eTrack.ptTrack ());
260+ }
245261 }
246262 }
247263 if (eTrack.nElPairUS () > 0 ) {
248264 for (int i = 0 ; i < eTrack.nElPairUS (); ++i) {
265+ massUnLike = eTrack.invariantMassEE ();
249266
250- ++nElectronUS;
251267 registry.fill (HIST (" hULSElectronBin" ), poolBin);
268+ registry.fill (HIST (" hUnLikeMass" ), massUnLike);
269+
270+ if (massUnLike <= invMassEEMax) {
271+ ++nElectronUS;
272+ registry.fill (HIST (" hLikeSignPt" ), eTrack.ptTrack ());
273+ }
252274 }
253275 }
254276
@@ -281,16 +303,18 @@ struct HfCorrelatorHfeHadrons {
281303 int nElHadUSCorr = 0 ;
282304 if (eTrack.nElPairLS () > 0 ) {
283305 for (int i = 0 ; i < eTrack.nElPairLS (); ++i) {
284-
285- ++nElHadLSCorr;
286- registry.fill (HIST (" hLSEHCorrel" ), ptElectron, ptHadron, deltaPhi, deltaEta);
306+ if (eTrack.invariantMassEE () <= invMassEEMax) {
307+ ++nElHadLSCorr;
308+ registry.fill (HIST (" hLSEHCorrel" ), ptElectron, ptHadron, deltaPhi, deltaEta);
309+ }
287310 }
288311 }
289312 if (eTrack.nElPairUS () > 0 ) {
290313 for (int i = 0 ; i < eTrack.nElPairUS (); ++i) {
291-
292- registry.fill (HIST (" hULSEHCorrel" ), ptElectron, ptHadron, deltaPhi, deltaEta);
293- ++nElHadUSCorr;
314+ if (eTrack.invariantMassEE () <= invMassEEMax) {
315+ registry.fill (HIST (" hULSEHCorrel" ), ptElectron, ptHadron, deltaPhi, deltaEta);
316+ ++nElHadUSCorr;
317+ }
294318 }
295319 }
296320 entryElectronHadronPair (deltaPhi, deltaEta, ptElectron, ptHadron, poolBin, nElHadLSCorr, nElHadUSCorr);
@@ -363,26 +387,28 @@ struct HfCorrelatorHfeHadrons {
363387 // ======= Process starts for Data, Same event ============
364388
365389 void processData (TableCollision const & collision,
366- aod::HfCorrSelEl const & electron,
367- TableTracks const & tracks, aod::BCsWithTimestamps const & bc)
390+ aod::HfCorrSelEl const & electrons,
391+ TableTracks const & tracks,
392+ aod::BCsWithTimestamps const & bcs)
368393 {
369- fillCorrelation (collision, electron , tracks, bc );
394+ fillCorrelation (collision, electrons , tracks, bcs );
370395 }
371396
372397 PROCESS_SWITCH (HfCorrelatorHfeHadrons, processData, " Process for Data" , true );
373398
374399 // ======= Process starts for McRec, Same event ============
375400
376401 void processMcRec (McTableCollision const & mcCollision,
377- aod::HfCorrSelEl const & mcElectron,
378- McTableTracks const & mcTracks)
402+ aod::HfCorrSelEl const & mcElectrons,
403+ McTableTracks const & mcTracks,
404+ aod::BCsWithTimestamps const & bcs)
379405 {
380- fillCorrelation (mcCollision, mcElectron , mcTracks, 0 );
406+ fillCorrelation (mcCollision, mcElectrons , mcTracks, bcs );
381407 }
382408
383409 PROCESS_SWITCH (HfCorrelatorHfeHadrons, processMcRec, " Process MC Reco mode" , false );
384410
385- void processMcGen (McGenTableCollision const & mcCollision, aod::McParticles const & mcParticles, aod::HfMcGenSelEl const & electron )
411+ void processMcGen (McGenTableCollision const & mcCollision, aod::McParticles const & mcParticles, aod::HfMcGenSelEl const & electrons )
386412 {
387413
388414 BinningTypeMcGen const corrBinningMcGen{{zBins, multBinsMcGen}, true };
@@ -407,7 +433,7 @@ struct HfCorrelatorHfeHadrons {
407433 double phiElectron = 0 ;
408434 double etaElectron = 0 ;
409435
410- for (const auto & electronMc : electron ) {
436+ for (const auto & electronMc : electrons ) {
411437 double ptHadron = 0 ;
412438 double phiHadron = 0 ;
413439 double etaHadron = 0 ;
@@ -486,6 +512,7 @@ struct HfCorrelatorHfeHadrons {
486512 }
487513 }
488514 PROCESS_SWITCH (HfCorrelatorHfeHadrons, processMcRecMixedEvent, " Process Mixed Event MC Reco mode" , false );
515+
489516 void processMcGenMixedEvent (McGenTableCollisions const & mcCollision, aod::HfMcGenSelEl const & electrons, aod::McParticles const & mcParticles)
490517 {
491518
@@ -539,6 +566,7 @@ struct HfCorrelatorHfeHadrons {
539566 }
540567 PROCESS_SWITCH (HfCorrelatorHfeHadrons, processMcGenMixedEvent, " Process Mixed Event MC Gen mode" , false );
541568};
569+
542570WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
543571{
544572 return WorkflowSpec{
0 commit comments