@@ -154,6 +154,8 @@ struct JEPFlowAnalysis {
154154
155155 Configurable<bool > cfgSelEvtTwoHP{" cfgSelEvtTwoHP" , false , " event selection with two high pT" };
156156 Configurable<float > cfgHighPtSel{" cfgHighPtSel" , 5.0 , " pT threshold with cfgSelEvtTwoHP" };
157+ Configurable<float > cfgTwoLPAngle{" cfgTwoLPAngle" , 0.5 , " azimuthal difference between two LP" };
158+ Configurable<float > cfgEtaBalancing{" cfgEtaBalancing" , 0.5 , " pseudorapidity difference between two LP" };
157159
158160 Configurable<std::string> cfgDetName{" cfgDetName" , " FT0C" , " The name of detector to be analyzed" };
159161 Configurable<std::string> cfgRefAName{" cfgRefAName" , " TPCPos" , " The name of detector for reference A" };
@@ -193,8 +195,14 @@ struct JEPFlowAnalysis {
193195
194196 float activity = -1 .;
195197 float qOvecM = -1 .;
196- float highestPt = -1 .;
197- float hPtPhi = -999 .;
198+
199+ float leadingPt = -1 .;
200+ float leadingPhi = -999 .;
201+ float leadingEta = -999 .;
202+
203+ float subleadingPt = -1 .;
204+ float subleadingPhi = -999 .;
205+ float subleadingEta = -999 .;
198206
199207 std::vector<TProfile3D*> shiftprofile{};
200208 std::string fullCCDBShiftCorrPath;
@@ -423,20 +431,49 @@ struct JEPFlowAnalysis {
423431 q2selLow = q2Map->GetBinContent (q2Map->GetXaxis ()->FindBin (i + 2 ), q2Map->GetYaxis ()->FindBin (cent), q2Map->GetZaxis ()->FindBin (1 . - cfgQ2SelFrac));
424432 }
425433
434+
426435 if (cfgSelEvtTwoHP && i == 0 ) {
436+ leadingPt = 0.0 ;
437+ leadingPhi = 0.0 ;
438+ leadingEta = 0.0 ;
439+
440+ subleadingPt = 0.0 ;
441+ subleadingPhi = 0.0 ;
442+ subleadingEta = 0.0 ;
443+
427444 nHighPt = 0 ;
428445 for (const auto & track : tracks) {
429446 if (cfgTrkSelFlag && trackSel (track))
430447 continue ;
431448
432- if (track.pt () > cfgHighPtSel)
433- nHighPt++;
449+ if (leadingPt < track.pt ()) {
450+ subleadingPt = leadingPt;
451+ subleadingPhi = leadingPhi;
452+ subleadingEta = leadingEta;
453+
454+ leadingPt = track.pt ();
455+ leadingPhi = track.phi ();
456+ leadingEta = track.eta ();
457+ } else if (track.pt () > subleadingPt) {
458+ subleadingPt = track.pt ();
459+ subleadingPhi = track.phi ();
460+ subleadingEta = track.eta ();
461+ }
462+
463+ if (track.pt () > cfgHighPtSel)
464+ nHighPt++;
434465 }
435466 }
436467
437468 if (cfgSelEvtTwoHP && nHighPt < minnHighPt)
438469 continue ;
439470
471+ if (std::abs (RecoDecay::constrainAngle (leadingPhi - subleadingPhi, 0 ) - constants::math::PI ) > cfgTwoLPAngle)
472+ continue ;
473+
474+ if (std::abs (leadingEta + subleadingEta) > cfgEtaBalancing)
475+ continue ;
476+
440477 epFlowHistograms.fill (HIST (" EpDet" ), i + 2 , cent, eps[0 ]);
441478 epFlowHistograms.fill (HIST (" EpRefA" ), i + 2 , cent, eps[1 ]);
442479 epFlowHistograms.fill (HIST (" EpRefB" ), i + 2 , cent, eps[2 ]);
@@ -486,17 +523,13 @@ struct JEPFlowAnalysis {
486523 continue ;
487524 }
488525
489- highestPt = 0.0 ;
490- hPtPhi = 0.0 ;
526+ leadingPt = 0.0 ;
527+ leadingPhi = 0.0 ;
528+ leadingEta = 0.0 ;
491529 for (const auto & track : tracks) {
492530 if (cfgTrkSelFlag && trackSel (track))
493531 continue ;
494532
495- if (highestPt < track.pt ()) {
496- highestPt = track.pt ();
497- hPtPhi = track.phi ();
498- }
499-
500533 if (cfgEffCor) {
501534 weight = getEfficiencyCorrection (effMap, track.eta (), track.pt (), cent, coll.posZ ());
502535 }
@@ -525,14 +558,14 @@ struct JEPFlowAnalysis {
525558 }
526559 }
527560 if (i == 0 ) { // second harmonic only
528- epFlowHistograms.fill (HIST (" hQoverM" ), cent, highestPt , qOvecM);
529- epFlowHistograms.fill (HIST (" hActivity" ), cent, highestPt , activity);
561+ epFlowHistograms.fill (HIST (" hQoverM" ), cent, leadingPt , qOvecM);
562+ epFlowHistograms.fill (HIST (" hActivity" ), cent, leadingPt , activity);
530563
531564 epFlowHistograms.fill (HIST (" hQoverM2M" ), cent, coll.qvecAmp ()[detId], qOvecM);
532565 epFlowHistograms.fill (HIST (" hQoverM2Q2" ), cent, q2Mag, qOvecM);
533566
534- epFlowHistograms.fill (HIST (" hQoverMdphi" ), cent, RecoDecay::constrainAngle (hPtPhi - eps[0 ], -constants::math::PI ), qOvecM);
535- epFlowHistograms.fill (HIST (" hActivitydphi" ), cent, RecoDecay::constrainAngle (hPtPhi - eps[0 ], -constants::math::PI ), highestPt , activity);
567+ epFlowHistograms.fill (HIST (" hQoverMdphi" ), cent, RecoDecay::constrainAngle (leadingPhi - eps[0 ], -constants::math::PI ), qOvecM);
568+ epFlowHistograms.fill (HIST (" hActivitydphi" ), cent, RecoDecay::constrainAngle (leadingPhi - eps[0 ], -constants::math::PI ), leadingPt , activity);
536569 }
537570 }
538571 }
0 commit comments