Skip to content

Commit 4254c4d

Browse files
JStaaalibuild
andauthored
[PWGCF] using FT0M and changed the radial distance method to only check for proton daughters (#9574)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 7405299 commit 4254c4d

File tree

1 file changed

+37
-51
lines changed

1 file changed

+37
-51
lines changed

PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx

Lines changed: 37 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ struct ThreeParticleCorrelations {
4141
HistogramRegistry rQARegistry{"QARegistry", {}, OutputObjHandlingPolicy::AnalysisObject, false, true};
4242

4343
// Collision & Event filters
44-
Filter collCent = aod::cent::centFT0C > 0.0f && aod::cent::centFT0C < 90.0f;
44+
Filter collCent = aod::cent::centFT0M > 0.0f && aod::cent::centFT0M < 90.0f;
4545
Filter collZvtx = nabs(aod::collision::posZ) < 7.0f;
4646
Filter mcCollZvtx = nabs(aod::mccollision::posZ) < 7.0f;
4747
Filter evSelect = aod::evsel::sel8 == true;
@@ -60,7 +60,7 @@ struct ThreeParticleCorrelations {
6060
Filter particleEta = nabs(aod::mcparticle::eta) < 0.8f;
6161

6262
// Table aliases - Data
63-
using MyFilteredCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::CentFT0Cs, aod::EvSels>>;
63+
using MyFilteredCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::CentFT0Ms, aod::EvSels>>;
6464
using MyFilteredCollision = MyFilteredCollisions::iterator;
6565
using MyFilteredV0s = soa::Filtered<aod::V0Datas>;
6666
using MyFilteredTracks = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection,
@@ -79,7 +79,7 @@ struct ThreeParticleCorrelations {
7979
SliceCache cache;
8080
ConfigurableAxis confCentBins{"confCentBins", {VARIABLE_WIDTH, 0.0f, 10.0f, 20.0f, 30.0f, 40.0f, 50.0f, 60.0f, 70.0f, 80.0f, 90.0f}, "ME Centrality binning"};
8181
ConfigurableAxis confZvtxBins{"confZvtxBins", {VARIABLE_WIDTH, -7.0f, -5.0f, -3.0f, -1.0f, 0.0f, 1.0f, 3.0f, 5.0f, 7.0f}, "ME Zvtx binning"};
82-
using BinningType = ColumnBinningPolicy<aod::cent::CentFT0C, aod::collision::PosZ>;
82+
using BinningType = ColumnBinningPolicy<aod::cent::CentFT0M, aod::collision::PosZ>;
8383

8484
BinningType collBinning{{confCentBins, confZvtxBins}, true};
8585
Pair<MyFilteredCollisions, MyFilteredV0s, MyFilteredTracks, BinningType> pair{collBinning, 5, -1, &cache};
@@ -103,7 +103,7 @@ struct ThreeParticleCorrelations {
103103

104104
double deltaPhi, deltaEta;
105105

106-
//================================================================================================================================================================================================================
106+
//==========================================================================================================================================================================================================================================================================
107107

108108
void init(InitContext const&)
109109
{
@@ -149,12 +149,8 @@ struct ThreeParticleCorrelations {
149149
// PhiStar
150150
rPhiStarRegistry.add("hSEProtonPreCut", "hSEProtonPreCut", {HistType::kTH2D, {{80, -0.2, 0.2}, {40, -0.1, 0.1}}});
151151
rPhiStarRegistry.add("hSEProtonPostCut", "hSEProtonPostCut", {HistType::kTH2D, {{80, -0.2, 0.2}, {40, -0.1, 0.1}}});
152-
rPhiStarRegistry.add("hSEPionPreCut", "hSEPionPreCut", {HistType::kTH2D, {{80, -0.2, 0.2}, {40, -0.1, 0.1}}});
153-
rPhiStarRegistry.add("hSEPionPostCut", "hSEPionPostCut", {HistType::kTH2D, {{80, -0.2, 0.2}, {40, -0.1, 0.1}}});
154152
rPhiStarRegistry.add("hMEProtonPreCut", "hMEProtonPreCut", {HistType::kTH2D, {{80, -0.2, 0.2}, {40, -0.1, 0.1}}});
155153
rPhiStarRegistry.add("hMEProtonPostCut", "hMEProtonPostCut", {HistType::kTH2D, {{80, -0.2, 0.2}, {40, -0.1, 0.1}}});
156-
rPhiStarRegistry.add("hMEPionPreCut", "hMEPionPreCut", {HistType::kTH2D, {{80, -0.2, 0.2}, {40, -0.1, 0.1}}});
157-
rPhiStarRegistry.add("hMEPionPostCut", "hMEPionPostCut", {HistType::kTH2D, {{80, -0.2, 0.2}, {40, -0.1, 0.1}}});
158154

159155
// Efficiency
160156
rMCRegistry.add("hGenerated", "hGenerated", {HistType::kTH1D, {trackPtAxis}});
@@ -212,14 +208,14 @@ struct ThreeParticleCorrelations {
212208
hEffProtons[1] = static_cast<TH1D*>(efficiencyList->FindObject("hEfficiencyProtonN"));
213209
}
214210

215-
//================================================================================================================================================================================================================
211+
//==========================================================================================================================================================================================================================================================================
216212

217213
void processSame(MyFilteredCollision const& collision, MyFilteredV0s const& v0s, MyFilteredTracks const& tracks, aod::BCsWithTimestamps const&)
218214
{
219215

220216
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
221217
auto bField = getMagneticField(bc.timestamp());
222-
rQARegistry.fill(HIST("hEventCentrality"), collision.centFT0C());
218+
rQARegistry.fill(HIST("hEventCentrality"), collision.centFT0M());
223219
rQARegistry.fill(HIST("hEventZvtx"), collision.posZ());
224220

225221
// Start of the Track QA
@@ -264,10 +260,10 @@ struct ThreeParticleCorrelations {
264260
triggSign = v0Sign(trigger);
265261
if (triggSign == 1) {
266262
candMass = trigger.mLambda();
267-
rQARegistry.fill(HIST("hInvMassLambda"), trigger.mLambda(), trigger.pt(), collision.centFT0C());
263+
rQARegistry.fill(HIST("hInvMassLambda"), trigger.mLambda(), trigger.pt(), collision.centFT0M());
268264
} else if (triggSign == -1) {
269265
candMass = trigger.mAntiLambda();
270-
rQARegistry.fill(HIST("hInvMassAntiLambda"), trigger.mAntiLambda(), trigger.pt(), collision.centFT0C());
266+
rQARegistry.fill(HIST("hInvMassAntiLambda"), trigger.mAntiLambda(), trigger.pt(), collision.centFT0M());
271267
}
272268

273269
for (const auto& associate : tracks) {
@@ -280,19 +276,19 @@ struct ThreeParticleCorrelations {
280276

281277
if (candMass >= massLambda - 4 * dGaussSigma && candMass <= massLambda + 4 * dGaussSigma) {
282278
if (assocPID[0] == 0.0) { // Pions
283-
rSECorrRegistry.fill(HIST("hSameLambdaPion_SGNL"), deltaPhi, deltaEta, collision.centFT0C(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffPions, associate.sign(), associate.pt()));
279+
rSECorrRegistry.fill(HIST("hSameLambdaPion_SGNL"), deltaPhi, deltaEta, collision.centFT0M(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffPions, associate.sign(), associate.pt()));
284280
} else if (assocPID[0] == 1.0) { // Kaons
285-
rSECorrRegistry.fill(HIST("hSameLambdaKaon_SGNL"), deltaPhi, deltaEta, collision.centFT0C(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffKaons, associate.sign(), associate.pt()));
281+
rSECorrRegistry.fill(HIST("hSameLambdaKaon_SGNL"), deltaPhi, deltaEta, collision.centFT0M(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffKaons, associate.sign(), associate.pt()));
286282
} else if (assocPID[0] == 2.0) { // Protons
287-
rSECorrRegistry.fill(HIST("hSameLambdaProton_SGNL"), deltaPhi, deltaEta, collision.centFT0C(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffProtons, associate.sign(), associate.pt()));
283+
rSECorrRegistry.fill(HIST("hSameLambdaProton_SGNL"), deltaPhi, deltaEta, collision.centFT0M(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffProtons, associate.sign(), associate.pt()));
288284
}
289285
} else if (candMass >= massLambda - 8 * dGaussSigma && candMass <= massLambda + 8 * dGaussSigma) {
290286
if (assocPID[0] == 0.0) { // Pions
291-
rSECorrRegistry.fill(HIST("hSameLambdaPion_SB"), deltaPhi, deltaEta, collision.centFT0C(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffPions, associate.sign(), associate.pt()));
287+
rSECorrRegistry.fill(HIST("hSameLambdaPion_SB"), deltaPhi, deltaEta, collision.centFT0M(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffPions, associate.sign(), associate.pt()));
292288
} else if (assocPID[0] == 1.0) { // Kaons
293-
rSECorrRegistry.fill(HIST("hSameLambdaKaon_SB"), deltaPhi, deltaEta, collision.centFT0C(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffKaons, associate.sign(), associate.pt()));
289+
rSECorrRegistry.fill(HIST("hSameLambdaKaon_SB"), deltaPhi, deltaEta, collision.centFT0M(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffKaons, associate.sign(), associate.pt()));
294290
} else if (assocPID[0] == 2.0) { // Protons
295-
rSECorrRegistry.fill(HIST("hSameLambdaProton_SB"), deltaPhi, deltaEta, collision.centFT0C(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffProtons, associate.sign(), associate.pt()));
291+
rSECorrRegistry.fill(HIST("hSameLambdaProton_SB"), deltaPhi, deltaEta, collision.centFT0M(), collision.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffProtons, associate.sign(), associate.pt()));
296292
}
297293
}
298294
}
@@ -328,19 +324,19 @@ struct ThreeParticleCorrelations {
328324

329325
if (candMass >= massLambda - 4 * dGaussSigma && candMass <= massLambda + 4 * dGaussSigma) {
330326
if (assocPID[0] == 0.0) { // Pions
331-
rMECorrRegistry.fill(HIST("hMixLambdaPion_SGNL"), deltaPhi, deltaEta, coll_1.centFT0C(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffPions, associate.sign(), associate.pt()));
327+
rMECorrRegistry.fill(HIST("hMixLambdaPion_SGNL"), deltaPhi, deltaEta, coll_1.centFT0M(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffPions, associate.sign(), associate.pt()));
332328
} else if (assocPID[0] == 1.0) { // Kaons
333-
rMECorrRegistry.fill(HIST("hMixLambdaKaon_SGNL"), deltaPhi, deltaEta, coll_1.centFT0C(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffKaons, associate.sign(), associate.pt()));
329+
rMECorrRegistry.fill(HIST("hMixLambdaKaon_SGNL"), deltaPhi, deltaEta, coll_1.centFT0M(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffKaons, associate.sign(), associate.pt()));
334330
} else if (assocPID[0] == 2.0) { // Protons
335-
rMECorrRegistry.fill(HIST("hMixLambdaProton_SGNL"), deltaPhi, deltaEta, coll_1.centFT0C(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffProtons, associate.sign(), associate.pt()));
331+
rMECorrRegistry.fill(HIST("hMixLambdaProton_SGNL"), deltaPhi, deltaEta, coll_1.centFT0M(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffProtons, associate.sign(), associate.pt()));
336332
}
337333
} else if (candMass >= massLambda - 8 * dGaussSigma && candMass <= massLambda + 8 * dGaussSigma) {
338334
if (assocPID[0] == 0.0) { // Pions
339-
rMECorrRegistry.fill(HIST("hMixLambdaPion_SB"), deltaPhi, deltaEta, coll_1.centFT0C(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffPions, associate.sign(), associate.pt()));
335+
rMECorrRegistry.fill(HIST("hMixLambdaPion_SB"), deltaPhi, deltaEta, coll_1.centFT0M(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffPions, associate.sign(), associate.pt()));
340336
} else if (assocPID[0] == 1.0) { // Kaons
341-
rMECorrRegistry.fill(HIST("hMixLambdaKaon_SB"), deltaPhi, deltaEta, coll_1.centFT0C(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffKaons, associate.sign(), associate.pt()));
337+
rMECorrRegistry.fill(HIST("hMixLambdaKaon_SB"), deltaPhi, deltaEta, coll_1.centFT0M(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffKaons, associate.sign(), associate.pt()));
342338
} else if (assocPID[0] == 2.0) { // Protons
343-
rMECorrRegistry.fill(HIST("hMixLambdaProton_SB"), deltaPhi, deltaEta, coll_1.centFT0C(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffProtons, associate.sign(), associate.pt()));
339+
rMECorrRegistry.fill(HIST("hMixLambdaProton_SB"), deltaPhi, deltaEta, coll_1.centFT0M(), coll_1.posZ(), triggSign, associate.sign(), 1. / trackEff(hEffProtons, associate.sign(), associate.pt()));
344340
}
345341
}
346342
}
@@ -459,7 +455,7 @@ struct ThreeParticleCorrelations {
459455
PROCESS_SWITCH(ThreeParticleCorrelations, processMCGen, "Process Monte-Carlo, generator level", false);
460456
PROCESS_SWITCH(ThreeParticleCorrelations, processMCRec, "Process Monte-Carlo, reconstructed level", false);
461457

462-
//================================================================================================================================================================================================================
458+
//==========================================================================================================================================================================================================================================================================
463459

464460
double getMagneticField(uint64_t timestamp)
465461
{
@@ -532,7 +528,7 @@ struct ThreeParticleCorrelations {
532528
return pid;
533529
}
534530

535-
//================================================================================================================================================================================================================
531+
//==========================================================================================================================================================================================================================================================================
536532

537533
template <class V0Cand>
538534
bool v0Filters(const V0Cand& v0)
@@ -684,51 +680,41 @@ struct ThreeParticleCorrelations {
684680
bool radialDistanceFilter(const V0Cand& v0, const TrackCand& track, double B, bool Mix)
685681
{
686682

687-
auto dProton = v0.template posTrack_as<MyFilteredTracks>();
688-
auto dPion = v0.template negTrack_as<MyFilteredTracks>();
683+
auto proton = v0.template posTrack_as<MyFilteredTracks>();
689684
if (v0Sign(v0) == -1) {
690-
dProton = v0.template negTrack_as<MyFilteredTracks>();
691-
dPion = v0.template posTrack_as<MyFilteredTracks>();
685+
proton = v0.template negTrack_as<MyFilteredTracks>();
692686
}
693687

694-
double dEtaProton = dProton.eta() - track.eta();
695-
double dEtaPion = dPion.eta() - track.eta();
696-
if (std::abs(dEtaProton) > 0.02 && std::abs(dEtaPion) > 0.02) {
688+
double dEta = proton.eta() - track.eta();
689+
if (std::abs(dEta) > 0.02) {
697690
return kTRUE;
698691
}
699692

700-
double phiStarProton, phiStarPion;
701-
double dPhiProton = dProton.phi() - track.phi();
702-
double dPhiPion = dPion.phi() - track.phi();
703-
double phaseProton = (-0.3 * B * dProton.sign()) / (2 * dProton.pt());
704-
double phasePion = (-0.3 * B * dPion.sign()) / (2 * dPion.pt());
693+
double dPhiStar;
694+
double dPhi = proton.phi() - track.phi();
695+
double phaseProton = (-0.3 * B * proton.sign()) / (2 * proton.pt());
705696
double phaseTrack = (-0.3 * B * track.sign()) / (2 * track.pt());
706697

707698
for (double r = 0.8; r <= 2.5; r += 0.01) {
708-
phiStarProton = RecoDecay::constrainAngle(dPhiProton + std::asin(phaseProton * r) - std::asin(phaseTrack * r), -constants::math::PIHalf);
709-
phiStarPion = RecoDecay::constrainAngle(dPhiPion + std::asin(phasePion * r) - std::asin(phaseTrack * r), -constants::math::PIHalf);
699+
dPhiStar = RecoDecay::constrainAngle(dPhi + std::asin(phaseProton * r) - std::asin(phaseTrack * r), -constants::math::PIHalf);
710700

711701
if (r == 0.8) {
712702
if (!Mix) {
713-
rPhiStarRegistry.fill(HIST("hSEProtonPreCut"), phiStarProton, dEtaProton);
714-
rPhiStarRegistry.fill(HIST("hSEPionPreCut"), phiStarPion, dEtaPion);
703+
rPhiStarRegistry.fill(HIST("hSEProtonPreCut"), dPhiStar, dEta);
715704
} else {
716-
rPhiStarRegistry.fill(HIST("hMEProtonPreCut"), phiStarProton, dEtaProton);
717-
rPhiStarRegistry.fill(HIST("hMEPionPreCut"), phiStarPion, dEtaPion);
705+
rPhiStarRegistry.fill(HIST("hMEProtonPreCut"), dPhiStar, dEta);
718706
}
719707
}
720708

721-
if ((std::abs(dEtaProton) <= 0.02 && std::abs(phiStarProton) <= 0.045) || (std::abs(dEtaPion) <= 0.02 && std::abs(phiStarPion) <= 0.045)) {
709+
if (std::abs(dPhiStar) <= 0.1) {
722710
return kFALSE;
723711
}
724712

725713
if (r == 0.8) {
726714
if (!Mix) {
727-
rPhiStarRegistry.fill(HIST("hSEProtonPostCut"), phiStarProton, dEtaProton);
728-
rPhiStarRegistry.fill(HIST("hSEPionPostCut"), phiStarPion, dEtaPion);
715+
rPhiStarRegistry.fill(HIST("hSEProtonPostCut"), dPhiStar, dEta);
729716
} else {
730-
rPhiStarRegistry.fill(HIST("hMEProtonPostCut"), phiStarProton, dEtaProton);
731-
rPhiStarRegistry.fill(HIST("hMEPionPostCut"), phiStarPion, dEtaPion);
717+
rPhiStarRegistry.fill(HIST("hMEProtonPostCut"), dPhiStar, dEta);
732718
}
733719
}
734720
}
@@ -737,12 +723,12 @@ struct ThreeParticleCorrelations {
737723
}
738724
};
739725

740-
//==================================================================================================================================================================================================================
726+
//==========================================================================================================================================================================================================================================================================
741727

742728
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
743729
{
744730
WorkflowSpec workflow{adaptAnalysisTask<ThreeParticleCorrelations>(cfgc)};
745731
return workflow;
746732
}
747733

748-
//==================================================================================================================================================================================================================
734+
//==========================================================================================================================================================================================================================================================================

0 commit comments

Comments
 (0)