@@ -68,9 +68,6 @@ struct LongrangecorrDerived {
6868 Configurable<float > cfgZdcCut{" cfgZdcCut" , 0 .1f , " ZDC threshold" };
6969 Configurable<int > cfgGapSideCut{" cfgGapSideCut" , 0 , " Gap-side A=0, C=1, AC = 2, No Gap = -1, All events = 3" };
7070
71- Configurable<bool > isApplyAmpCut{" isApplyAmpCut" , false , " Enable FT0 amplitude cut" };
72- Configurable<float > cfgLowAmpCut{" cfgLowAmpCut" , 2 .0f , " Low FT0 amplitude cut" };
73-
7471 ConfigurableAxis axisMultiplicity{" axisMultiplicity" , {VARIABLE_WIDTH, 0 , 10 , 15 , 25 , 50 , 60 , 1000 }, " multiplicity axis" };
7572 ConfigurableAxis axisPhi{" axisPhi" , {96 , 0 , TwoPI}, " #phi axis" };
7673 ConfigurableAxis axisEtaTrig{" axisEtaTrig" , {40 , -1 ., 1 .}, " #eta trig axis" };
@@ -165,6 +162,10 @@ struct LongrangecorrDerived {
165162 histos.add (" Trig_pt" , " Trig_pt" , kTH1D , {axisPtTrigger});
166163 histos.add (" Trig_invMass" , " Trig_invMass" , kTH1D , {axisInvMassQA});
167164 histos.add (" Trig_hist" , " Trig_hist" , kTHnSparseF , {axisVtxZ, axisMultiplicity, axisPtTrigger, axisInvMass});
165+ histos.add (" Trig_amp" , " Trig_amp" , kTH1D , {axisAmplitude});
166+ histos.add (" Trig_amp_gaincorrected" , " Trig_amp_gaincorrected" , kTH1D , {axisAmplitude});
167+ histos.add (" Channel_vs_Trig_amp" , " Channel_vs_Trig_amp" , kTH2D , {axisChannel, axisAmplitude});
168+ histos.add (" Channel_vs_Trig_amp_gaincorrected" , " Channel_vs_Trig_amp_gaincorrected" , kTH2D , {axisChannel, axisAmplitude});
168169
169170 histos.add (" Assoc_eta" , " Assoc_eta" , kTH1D , {axisEtaAssoc});
170171 histos.add (" Assoc_phi" , " Assoc_phi" , kTH1D , {axisPhi});
@@ -195,7 +196,14 @@ struct LongrangecorrDerived {
195196 histos.fill (HIST (" Trig_etavsphi" ), track.phi (), track.eta ());
196197 histos.fill (HIST (" Trig_eta" ), track.eta ());
197198 histos.fill (HIST (" Trig_phi" ), track.phi ());
198- histos.fill (HIST (" Trig_pt" ), track.pt ());
199+ if constexpr (std::experimental::is_detected<HasFt0, TTrack>::value) {
200+ histos.fill (HIST (" Trig_amp" ), track.amplitude ());
201+ histos.fill (HIST (" Channel_vs_Trig_amp" ), track.channelID (), track.amplitude ());
202+ histos.fill (HIST (" Trig_amp_gaincorrected" ), track.gainAmplitude ());
203+ histos.fill (HIST (" Channel_vs_Trig_amp_gaincorrected" ), track.channelID (), track.gainAmplitude ());
204+ } else {
205+ histos.fill (HIST (" Trig_pt" ), track.pt ());
206+ }
199207 if constexpr (std::experimental::is_detected<HasInvMass, TTrack>::value) {
200208 histos.fill (HIST (" Trig_invMass" ), track.invMass ());
201209 }
@@ -251,6 +259,7 @@ struct LongrangecorrDerived {
251259 template <CorrelationContainer::CFStep step, typename TTarget, typename TTriggers, typename TAssocs>
252260 void fillCorrHist (TTarget target, TTriggers const & triggers, TAssocs const & assocs, bool mixing, float vz, float multiplicity, float eventWeight)
253261 {
262+ auto trigAmpl = 1 .0f ;
254263 for (auto const & triggerTrack : triggers) {
255264 if constexpr (std::experimental::is_detected<HasTpcTrack, typename TTriggers::iterator>::value) {
256265 if (cfgPidMask != 0 && (cfgPidMask & (1u << static_cast <uint32_t >(triggerTrack.trackType ()))) == 0u )
@@ -259,33 +268,39 @@ struct LongrangecorrDerived {
259268 if (cfgV0Mask != 0 && (cfgV0Mask & (1u << static_cast <uint32_t >(triggerTrack.v0Type ()))) == 0u )
260269 continue ;
261270 }
271+ if constexpr (std::experimental::is_detected<HasFt0, typename TTriggers::iterator>::value) {
272+ trigAmpl *= triggerTrack.gainAmplitude ();
273+ }
262274 if (!mixing) {
263275 fillTrigTrackQA (triggerTrack);
264- if constexpr (std::experimental::is_detected<HasInvMass, typename TTriggers::iterator>::value) {
265- histos.fill (HIST (" Trig_hist" ), vz, multiplicity, triggerTrack.pt (), triggerTrack.invMass (), eventWeight);
276+ if constexpr (std::experimental::is_detected<HasFt0, typename TTriggers::iterator>::value) {
277+ histos.fill (HIST (" Trig_hist" ), vz, multiplicity, 1.0 , 1.0 , eventWeight * trigAmpl);
278+ } else if constexpr (std::experimental::is_detected<HasInvMass, typename TTriggers::iterator>::value) {
279+ histos.fill (HIST (" Trig_hist" ), vz, multiplicity, triggerTrack.pt (), triggerTrack.invMass (), eventWeight * trigAmpl);
266280 } else {
267- histos.fill (HIST (" Trig_hist" ), vz, multiplicity, triggerTrack.pt (), 1.0 , eventWeight);
281+ histos.fill (HIST (" Trig_hist" ), vz, multiplicity, triggerTrack.pt (), 1.0 , eventWeight * trigAmpl );
268282 }
269283 }
270- auto ampl = 1 .0f ;
284+ auto assoAmpl = 1 .0f ;
271285 for (auto const & assoTrack : assocs) {
272286 if constexpr (std::experimental::is_detected<HasFt0, typename TAssocs::iterator>::value) {
273- if (isApplyAmpCut && (assoTrack.amplitude () < cfgLowAmpCut))
274- continue ;
275- ampl *= assoTrack.gainAmplitude ();
287+ assoAmpl *= assoTrack.gainAmplitude ();
276288 }
277289 float deltaPhi = RecoDecay::constrainAngle (triggerTrack.phi () - assoTrack.phi (), -PIHalf);
278290 float deltaEta = triggerTrack.eta () - assoTrack.eta ();
279291 if (!mixing) {
280292 fillAssocTrackQA (assoTrack);
281- histos.fill (HIST (" deltaEta_deltaPhi_same" ), deltaPhi, deltaEta, eventWeight * ampl );
293+ histos.fill (HIST (" deltaEta_deltaPhi_same" ), deltaPhi, deltaEta, eventWeight * trigAmpl * assoAmpl );
282294 } else {
283- histos.fill (HIST (" deltaEta_deltaPhi_mixed" ), deltaPhi, deltaEta, eventWeight * ampl );
295+ histos.fill (HIST (" deltaEta_deltaPhi_mixed" ), deltaPhi, deltaEta, eventWeight * trigAmpl * assoAmpl );
284296 }
285- if constexpr (std::experimental::is_detected<HasInvMass, typename TTriggers::iterator>::value) {
286- target->getPairHist ()->Fill (step, vz, multiplicity, triggerTrack.pt (), triggerTrack.pt (), deltaPhi, deltaEta, triggerTrack.invMass (), eventWeight * ampl);
297+
298+ if constexpr (std::experimental::is_detected<HasFt0, typename TTriggers::iterator>::value) {
299+ target->getPairHist ()->Fill (step, vz, multiplicity, 1.0 , 1.0 , deltaPhi, deltaEta, 1.0 , eventWeight * trigAmpl * assoAmpl);
300+ } else if constexpr (std::experimental::is_detected<HasInvMass, typename TTriggers::iterator>::value) {
301+ target->getPairHist ()->Fill (step, vz, multiplicity, triggerTrack.pt (), triggerTrack.pt (), deltaPhi, deltaEta, triggerTrack.invMass (), eventWeight * trigAmpl * assoAmpl);
287302 } else {
288- target->getPairHist ()->Fill (step, vz, multiplicity, triggerTrack.pt (), triggerTrack.pt (), deltaPhi, deltaEta, 1.0 , eventWeight * ampl );
303+ target->getPairHist ()->Fill (step, vz, multiplicity, triggerTrack.pt (), triggerTrack.pt (), deltaPhi, deltaEta, 1.0 , eventWeight * trigAmpl * assoAmpl );
289304 }
290305 } // associated tracks
291306 } // trigger tracks
@@ -446,6 +461,11 @@ struct LongrangecorrDerived {
446461 processSame (col, tracks, mfts);
447462 }
448463
464+ void processFt0aft0cSE (CollsTable::iterator const & col, Ft0aTrksTable const & ft0as, Ft0cTrksTable const & ft0cs)
465+ {
466+ processSame (col, ft0as, ft0cs);
467+ }
468+
449469 void processTpcft0aME (CollsTable const & cols, TrksTable const & tracks, Ft0aTrksTable const & ft0as)
450470 {
451471 processMixed (cols, tracks, ft0as);
@@ -491,6 +511,11 @@ struct LongrangecorrDerived {
491511 processMixed (cols, tracks, mfts);
492512 }
493513
514+ void processFt0aft0cME (CollsTable const & cols, Ft0aTrksTable const & ft0as, Ft0cTrksTable const & ft0cs)
515+ {
516+ processMixed (cols, ft0as, ft0cs);
517+ }
518+
494519 void processUpcTpcft0aSE (UpcCollsTable::iterator const & col, TrksUpcTable const & tracks, Ft0aTrksUpcTable const & ft0as)
495520 {
496521 if (!isUpcEventSelected<true >(col)) {
@@ -628,6 +653,11 @@ struct LongrangecorrDerived {
628653 processMcSame (mccollision, collisions, mfts, ft0as);
629654 }
630655
656+ void processMcFt0aft0cSE (McCollsTable::iterator const & mccollision, soa::SmallGroups<aod::LRCollisionsWithLabel> const & collisions, McFt0aTrksTable const & ft0as, McFt0cTrksTable const & ft0cs)
657+ {
658+ processMcSame (mccollision, collisions, ft0as, ft0cs);
659+ }
660+
631661 void processMcTpcft0aME (McCollsTable const & mccollisions, aod::LRCollisionsWithLabel const & collisions, McTrksTable const & tracks, McFt0aTrksTable const & ft0as)
632662 {
633663 processMcMixed (mccollisions, collisions, tracks, ft0as);
@@ -648,6 +678,11 @@ struct LongrangecorrDerived {
648678 processMcMixed (mccollisions, collisions, mfts, ft0as);
649679 }
650680
681+ void processMcFt0aft0cME (McCollsTable const & mccollisions, aod::LRCollisionsWithLabel const & collisions, McFt0aTrksTable const & ft0as, McFt0cTrksTable const & ft0cs)
682+ {
683+ processMcMixed (mccollisions, collisions, ft0as, ft0cs);
684+ }
685+
651686 PROCESS_SWITCH (LongrangecorrDerived, processTpcft0aSE, " same event TPC vs FT0A" , false );
652687 PROCESS_SWITCH (LongrangecorrDerived, processTpcft0aME, " mixed event TPC vs FT0A" , false );
653688 PROCESS_SWITCH (LongrangecorrDerived, processTpcft0cSE, " same event TPC vs FT0C" , false );
@@ -666,6 +701,8 @@ struct LongrangecorrDerived {
666701 PROCESS_SWITCH (LongrangecorrDerived, processMftbestft0aME, " mixed event best MFT vs FT0A" , false );
667702 PROCESS_SWITCH (LongrangecorrDerived, processV0mftbestSE, " same event V0 vs best MFT" , false );
668703 PROCESS_SWITCH (LongrangecorrDerived, processV0mftbestME, " mixed event V0 vs best MFT" , false );
704+ PROCESS_SWITCH (LongrangecorrDerived, processFt0aft0cSE, " same event FT0A vs FT0C" , false );
705+ PROCESS_SWITCH (LongrangecorrDerived, processFt0aft0cME, " mixed event FT0A vs FT0C" , false );
669706 PROCESS_SWITCH (LongrangecorrDerived, processUpcTpcft0aSE, " same UPC event TPC vs FT0A" , false );
670707 PROCESS_SWITCH (LongrangecorrDerived, processUpcTpcft0aME, " mixed UPC event TPC vs FT0A" , false );
671708 PROCESS_SWITCH (LongrangecorrDerived, processUpcTpcft0cSE, " same UPC event TPC vs FT0C" , false );
@@ -692,6 +729,8 @@ struct LongrangecorrDerived {
692729 PROCESS_SWITCH (LongrangecorrDerived, processMcTpcmftME, " mixed MC event TPC vs MFT" , false );
693730 PROCESS_SWITCH (LongrangecorrDerived, processMcMftft0aSE, " same MC event MFT vs FT0A" , false );
694731 PROCESS_SWITCH (LongrangecorrDerived, processMcMftft0aME, " mixed MC event MFT vs FT0A" , false );
732+ PROCESS_SWITCH (LongrangecorrDerived, processMcFt0aft0cSE, " same MC event FT0A vs FT0C" , false );
733+ PROCESS_SWITCH (LongrangecorrDerived, processMcFt0aft0cME, " mixed MC event FT0A vs FT0C" , false );
695734};
696735
697736WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
0 commit comments