Skip to content

Commit 1e2203c

Browse files
authored
Add FT0A vs FT0C correlations
1 parent 47d2db2 commit 1e2203c

1 file changed

Lines changed: 55 additions & 16 deletions

File tree

PWGCF/TwoParticleCorrelations/Tasks/longrangecorrDerived.cxx

Lines changed: 55 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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

697736
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)