Skip to content

Commit 62e8fc9

Browse files
authored
[PWGCF] LambdaR2Correlation Update (AliceO2Group#9076)
1 parent 9a784c0 commit 62e8fc9

File tree

1 file changed

+46
-22
lines changed

1 file changed

+46
-22
lines changed

PWGCF/TwoParticleCorrelations/Tasks/lambdaR2Correlation.cxx

Lines changed: 46 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -158,32 +158,35 @@ struct LambdaCorrTableProducer {
158158

159159
// Tracks
160160
Configurable<float> cTrackMinPt{"cTrackMinPt", 0.2, "p_{T} minimum"};
161-
Configurable<float> cTrackMaxPt{"cTrackMaxPt", 4.0, "p_{T} minimum"};
161+
Configurable<float> cTrackMaxPt{"cTrackMaxPt", 999.0, "p_{T} minimum"};
162162
Configurable<float> cTrackEtaCut{"cTrackEtaCut", 0.8, "Pseudorapidity cut"};
163163
Configurable<int> cMinTpcCrossedRows{"cMinTpcCrossedRows", 70, "min crossed rows"};
164164
Configurable<double> cTpcNsigmaCut{"cTpcNsigmaCut", 2.0, "TPC NSigma Selection Cut"};
165165
Configurable<double> cTrackMinDcaXY{"cTrackMinDcaXY", 0.05, "Minimum DcaXY of Daughter Tracks"};
166+
Configurable<bool> cIsGlobalTrackWoDca{"cIsGlobalTrackWoDca", true, "Check for Global Track"};
166167

167168
// V0s
168-
Configurable<double> cMinV0DcaDaughters{"cMinV0DcaDaughters", 1.4, "min DCA between V0 daughters"};
169+
Configurable<double> cMinV0DcaDaughters{"cMinV0DcaDaughters", 0., "Minimum DCA between V0 daughters"};
170+
Configurable<double> cMaxV0DcaDaughters{"cMaxV0DcaDaughters", 1.4, "Maximum DCA between V0 daughters"};
169171
Configurable<double> cMinDcaPosToPV{"cMinDcaPosToPV", 0.1, "Minimum V0 Positive Track DCAr cut to PV"};
170172
Configurable<double> cMinDcaNegToPV{"cMinDcaNegToPV", 0.1, "Minimum V0 Negative Track DCAr cut to PV"};
171-
Configurable<double> cMinDcaV0ToPV{"cMinDcaV0ToPV", 3.0, "Minimum DCA V0 to PV"};
173+
Configurable<double> cMinDcaV0ToPV{"cMinDcaV0ToPV", 0.0, "Minimum DCA V0 to PV"};
174+
Configurable<double> cMaxDcaV0ToPV{"cMaxDcaV0ToPV", 999.0, "Maximum DCA V0 to PV"};
172175
Configurable<double> cMinV0TransRadius{"cMinV0TransRadius", 0.2, "Minimum V0 radius from PV"};
173-
Configurable<double> cMaxV0TransRadius{"cMaxV0TransRadius", 200.0, "Maximum V0 radius from PV"};
176+
Configurable<double> cMaxV0TransRadius{"cMaxV0TransRadius", 100.0, "Maximum V0 radius from PV"};
174177
Configurable<double> cMinV0CTau{"cMinV0CTau", 0.0, "Minimum ctau"};
175178
Configurable<double> cMaxV0CTau{"cMaxV0CTau", 30.0, "Maximum ctau"};
176179
Configurable<double> cMinV0CosPA{"cMinV0CosPA", 0.998, "Minimum V0 CosPA to PV"};
177-
Configurable<double> cLambdaMassWindow{"cLambdaMassWindow", 0.007, "Mass Window to select Lambda"};
178-
Configurable<double> cKshortRejMassWindow{"cKshortRejMassWindow", 0.005, "Reject K0Short Candidates"};
180+
Configurable<double> cLambdaMassWindow{"cLambdaMassWindow", 0.005, "Mass Window to select Lambda"};
181+
Configurable<double> cKshortRejMassWindow{"cKshortRejMassWindow", 0.017, "Reject K0Short Candidates"};
179182
Configurable<bool> cKshortRejFlag{"cKshortRejFlag", false, "K0short Mass Rej Flag"};
180183
Configurable<double> cArmPodCutValue{"cArmPodCutValue", 0.5, "Armentros-Podolanski Slope Parameter"};
181184
Configurable<bool> cArmPodCutFlag{"cArmPodCutFlag", true, "Armentros-Podolanski Cut Flag"};
182185

183186
// V0s kinmatic acceptance
184187
Configurable<float> cMinV0Pt{"cMinV0Pt", 0.8, "Minimum V0 pT"};
185188
Configurable<float> cMaxV0Pt{"cMaxV0Pt", 3.2, "Minimum V0 pT"};
186-
Configurable<float> cMaxV0Rap{"cMaxV0Rap", 0.8, "|rap| cut"};
189+
Configurable<float> cMaxV0Rap{"cMaxV0Rap", 0.6, "|rap| cut"};
187190

188191
// V0s MC
189192
Configurable<bool> cHasMcFlag{"cHasMcFlag", true, "Has Mc Tag"};
@@ -218,7 +221,7 @@ struct LambdaCorrTableProducer {
218221
ccdb->setCaching(true);
219222

220223
// initialize axis specifications
221-
const AxisSpec axisCol(20, 0, 20, "");
224+
const AxisSpec axisCol(25, 0, 25, "");
222225
const AxisSpec axisCent(105, 0, 105, "FT0M (%)");
223226
const AxisSpec axisMult(10, 0, 10, "N_{#Lambda}");
224227
const AxisSpec axisVz(220, -11, 11, "V_{z} (cm)");
@@ -308,7 +311,7 @@ struct LambdaCorrTableProducer {
308311
template <typename C>
309312
bool selCollision(C const& col)
310313
{
311-
if (col.posZ() < cMinZVtx || col.posZ() >= cMaxZVtx) {
314+
if (col.posZ() <= cMinZVtx || col.posZ() >= cMaxZVtx) {
312315
return false;
313316
}
314317

@@ -346,19 +349,23 @@ struct LambdaCorrTableProducer {
346349
template <typename T>
347350
bool selDaughterTracks(T const& track)
348351
{
349-
if (track.pt() < cTrackMinPt || track.pt() > cTrackMaxPt) {
352+
if (track.pt() <= cTrackMinPt || track.pt() >= cTrackMaxPt) {
350353
return false;
351354
}
352355

353356
if (std::abs(track.eta()) >= cTrackEtaCut) {
354357
return false;
355358
}
356359

357-
if (track.tpcNClsCrossedRows() < cMinTpcCrossedRows) {
360+
if (track.tpcNClsCrossedRows() <= cMinTpcCrossedRows) {
358361
return false;
359362
}
360363

361-
if (std::abs(track.dcaXY()) < cTrackMinDcaXY) {
364+
if (std::abs(track.dcaXY()) <= cTrackMinDcaXY) {
365+
return false;
366+
}
367+
368+
if (cIsGlobalTrackWoDca && !track.isGlobalTrackWoDCA()) {
362369
return false;
363370
}
364371

@@ -377,7 +384,7 @@ struct LambdaCorrTableProducer {
377384

378385
histos.fill(HIST("Tracks/h1f_tracks_info"), 2.5);
379386

380-
if (v0.dcaV0daughters() > cMinV0DcaDaughters) {
387+
if (v0.dcaV0daughters() <= cMinV0DcaDaughters || v0.dcaV0daughters() >= cMaxV0DcaDaughters) {
381388
return false;
382389
}
383390

@@ -389,22 +396,22 @@ struct LambdaCorrTableProducer {
389396
return false;
390397
}
391398

392-
if (v0.dcav0topv() > cMinDcaV0ToPV) {
399+
if (v0.dcav0topv() <= cMinDcaV0ToPV || v0.dcav0topv() >= cMaxDcaV0ToPV) {
393400
return false;
394401
}
395402

396-
if ((v0.v0radius() > cMaxV0TransRadius) || (v0.v0radius() < cMinV0TransRadius)) {
403+
if (v0.v0radius() <= cMinV0TransRadius || v0.v0radius() >= cMaxV0TransRadius) {
397404
return false;
398405
}
399406

400407
// ctau
401408
float ctau = v0.distovertotmom(col.posX(), col.posY(), col.posZ()) * MassLambda0;
402-
if (ctau < cMinV0CTau || ctau > cMaxV0CTau) {
409+
if (ctau <= cMinV0CTau || ctau >= cMaxV0CTau) {
403410
return false;
404411
}
405412

406413
// cosine of pointing angle
407-
if (v0.v0cosPA() < cMinV0CosPA) {
414+
if (v0.v0cosPA() <= cMinV0CosPA) {
408415
return false;
409416
}
410417

@@ -581,12 +588,16 @@ struct LambdaCorrTableProducer {
581588
float retVal = 0.;
582589

583590
if (std::string(obj->ClassName()) == "TH1F") {
591+
histos.fill(HIST("Tracks/h1f_tracks_info"), 21.5);
584592
retVal = hist->GetBinContent(hist->FindBin(v0.pt()));
585593
} else if (std::string(obj->ClassName()) == "TH2F") {
594+
histos.fill(HIST("Tracks/h1f_tracks_info"), 22.5);
586595
retVal = hist->GetBinContent(hist->FindBin(v0.pt(), v0.yLambda()));
587596
} else if (std::string(obj->ClassName()) == "TH3F") {
597+
histos.fill(HIST("Tracks/h1f_tracks_info"), 23.5);
588598
retVal = hist->GetBinContent(hist->FindBin(v0.pt(), v0.yLambda(), col.posZ()));
589599
} else {
600+
histos.fill(HIST("Tracks/h1f_tracks_info"), 24.5);
590601
LOGF(warning, "CCDB OBJECT IS NOT A HISTOGRAM !!!");
591602
retVal = 1.;
592603
}
@@ -674,7 +685,7 @@ struct LambdaCorrTableProducer {
674685
// check for corresponding MCGen Particle
675686
if constexpr (dmc == kMC) {
676687
histos.fill(HIST("Tracks/h1f_tracks_info"), 0.5);
677-
if (!v0.has_mcParticle()) {
688+
if (!v0.has_mcParticle() || !v0.template posTrack_as<T>().has_mcParticle() || !v0.template negTrack_as<T>().has_mcParticle()) {
678689
continue;
679690
}
680691
}
@@ -757,7 +768,7 @@ struct LambdaCorrTableProducer {
757768
histos.fill(HIST("McGen/h1f_collisions_info"), 1.5);
758769

759770
// apply collision cuts
760-
if (mcCollision.posZ() < cMinZVtx || mcCollision.posZ() > cMaxZVtx) {
771+
if (mcCollision.posZ() <= cMinZVtx || mcCollision.posZ() >= cMaxZVtx) {
761772
return;
762773
}
763774

@@ -800,6 +811,16 @@ struct LambdaCorrTableProducer {
800811
continue;
801812
}
802813

814+
if (v0type == kLambda) {
815+
histos.fill(HIST("McGen/h1f_lambda_daughter_PDG"), daughterPDGs[0], mcpart.pt());
816+
histos.fill(HIST("McGen/h1f_lambda_daughter_PDG"), daughterPDGs[1], mcpart.pt());
817+
histos.fill(HIST("McGen/h1f_lambda_daughter_PDG"), mcpart.pdgCode(), mcpart.pt());
818+
} else {
819+
histos.fill(HIST("McGen/h1f_antilambda_daughter_PDG"), daughterPDGs[0], mcpart.pt());
820+
histos.fill(HIST("McGen/h1f_antilambda_daughter_PDG"), daughterPDGs[1], mcpart.pt());
821+
histos.fill(HIST("McGen/h1f_antilambda_daughter_PDG"), mcpart.pdgCode(), mcpart.pt());
822+
}
823+
803824
lambdaMCGenTrackTable(lambdaMCGenCollisionTable.lastIndex(), mcpart.px(), mcpart.py(), mcpart.pz(),
804825
mcpart.pt(), mcpart.eta(), mcpart.phi(), mcpart.y(), RecoDecay::m(mcpart.p(), mcpart.e()),
805826
daughterIDs[0], daughterIDs[1], (int8_t)v0type, -999., -999., 1.);
@@ -854,7 +875,7 @@ struct LambdaR2Correlation {
854875
const AxisSpec axisCent(105, 0, 105, "FT0M (%)");
855876
const AxisSpec axisMult(10, 0, 10, "N_{#Lambda}");
856877
const AxisSpec axisMass(100, 1.06, 1.16, "Inv Mass (GeV/#it{c}^{2})");
857-
const AxisSpec axisPt(64, 0.2, 3.4, "p_{T} (GeV/#it{c})");
878+
const AxisSpec axisPt(32, 0.2, 3.4, "p_{T} (GeV/#it{c})");
858879
const AxisSpec axisEta(24, -1.2, 1.2, "#eta");
859880
const AxisSpec axisCPA(100, 0.99, 1.0, "cos(#theta_{PA})");
860881
const AxisSpec axisDcaDau(75, 0., 1.5, "Daug DCA (#sigma)");
@@ -900,12 +921,14 @@ struct LambdaR2Correlation {
900921

901922
// single and two particle densities
902923
// 1D Histograms
924+
histos.add("Reco/h1d_n1_mass_LaP", "#rho_{1}^{#Lambda}", kTH1D, {axisMass});
925+
histos.add("Reco/h1d_n1_mass_LaM", "#rho_{1}^{#bar{#Lambda}}", kTH1D, {axisMass});
903926
histos.add("Reco/h1d_n1_pt_LaP", "#rho_{1}^{#Lambda}", kTH1D, {axisPt});
904927
histos.add("Reco/h1d_n1_pt_LaM", "#rho_{1}^{#bar{#Lambda}}", kTH1D, {axisPt});
905928
histos.add("Reco/h1d_n1_eta_LaP", "#rho_{1}^{#Lambda}", kTH1D, {axisEta});
906929
histos.add("Reco/h1d_n1_eta_LaM", "#rho_{1}^{#bar{#Lambda}}", kTH1D, {axisEta});
907-
histos.add("Reco/h1d_n1_rap_LaP", "#rho_{1}^{#Lambda}", kTH1D, {axisEta});
908-
histos.add("Reco/h1d_n1_rap_LaM", "#rho_{1}^{#bar{#Lambda}}", kTH1D, {axisEta});
930+
histos.add("Reco/h1d_n1_rap_LaP", "#rho_{1}^{#Lambda}", kTH1D, {axisRap});
931+
histos.add("Reco/h1d_n1_rap_LaM", "#rho_{1}^{#bar{#Lambda}}", kTH1D, {axisRap});
909932
histos.add("Reco/h1d_n1_phi_LaP", "#rho_{1}^{#Lambda}", kTH1D, {axisPhi});
910933
histos.add("Reco/h1d_n1_phi_LaM", "#rho_{1}^{#bar{#Lambda}}", kTH1D, {axisPhi});
911934

@@ -1041,6 +1064,7 @@ struct LambdaR2Correlation {
10411064
++ntrk3;
10421065

10431066
// QA Plots
1067+
histos.fill(HIST(SubDirRecGen[rec_gen]) + HIST("h1d_n1_mass_") + HIST(SubDirHist[part]), track.mass());
10441068
histos.fill(HIST(SubDirRecGen[rec_gen]) + HIST("h1d_n1_pt_") + HIST(SubDirHist[part]), track.pt(), track.corrFact());
10451069
histos.fill(HIST(SubDirRecGen[rec_gen]) + HIST("h1d_n1_eta_") + HIST(SubDirHist[part]), track.eta(), track.corrFact());
10461070
histos.fill(HIST(SubDirRecGen[rec_gen]) + HIST("h1d_n1_phi_") + HIST(SubDirHist[part]), track.phi(), track.corrFact());

0 commit comments

Comments
 (0)