Skip to content

Commit 4df99bb

Browse files
authored
[PWGDQ] Added additional D0 topology cuts and variables (#18369)
1 parent d7fbcbf commit 4df99bb

5 files changed

Lines changed: 257 additions & 8 deletions

File tree

‎PWGDQ/Core/CutsLibrary.cxx‎

Lines changed: 214 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3702,6 +3702,16 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
37023702
return cut;
37033703
}
37043704

3705+
if (nameStr == "pairD0Topology") {
3706+
cut->AddCut(GetAnalysisCut("pairD0Topology"));
3707+
return cut;
3708+
}
3709+
3710+
if (nameStr == "pairD0TopologyTight") {
3711+
cut->AddCut(GetAnalysisCut("pairD0TopologyTight"));
3712+
return cut;
3713+
}
3714+
37053715
if (nameStr == "pairD0HighPt1") {
37063716
cut->AddCut(GetAnalysisCut("pairLxyzProjected3sigma"));
37073717
cut->AddCut(GetAnalysisCut("pairPtLow5"));
@@ -3923,6 +3933,36 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
39233933
return cut;
39243934
}
39253935

3936+
if (nameStr == "alice3StandardTrackD0") {
3937+
cut->AddCut(GetAnalysisCut("alice3StandardKineD0"));
3938+
cut->AddCut(GetAnalysisCut("alice3TrackQuality"));
3939+
return cut;
3940+
}
3941+
3942+
if (nameStr == "alice3TOFEtaD0") {
3943+
cut->AddCut(GetAnalysisCut("alice3TOFEta"));
3944+
cut->AddCut(GetAnalysisCut("alice3TrackQuality"));
3945+
return cut;
3946+
}
3947+
3948+
if (nameStr == "alice3RICHEtaD0") {
3949+
cut->AddCut(GetAnalysisCut("alice3RICHEta"));
3950+
cut->AddCut(GetAnalysisCut("alice3TrackQuality"));
3951+
return cut;
3952+
}
3953+
3954+
if (nameStr == "alice3StandardTrackTOFAcceptanceD0") {
3955+
cut->AddCut(GetAnalysisCut("alice3KineTOFAcceptanceD0"));
3956+
cut->AddCut(GetAnalysisCut("alice3TrackQuality"));
3957+
return cut;
3958+
}
3959+
3960+
if (nameStr == "alice3StandardTrackRICHAcceptanceD0") {
3961+
cut->AddCut(GetAnalysisCut("alice3KineRICHAcceptanceD0"));
3962+
cut->AddCut(GetAnalysisCut("alice3TrackQuality"));
3963+
return cut;
3964+
}
3965+
39263966
if (nameStr == "alice3TightDCATrack") {
39273967
cut->AddCut(GetAnalysisCut("alice3StandardKine"));
39283968
cut->AddCut(GetAnalysisCut("alice3TrackQualityTightDCA"));
@@ -4005,6 +4045,32 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
40054045
return cut;
40064046
}
40074047

4048+
if (nameStr == "alice3EitherTOFPIDPi") {
4049+
auto* pidCut = new AnalysisCompositeCut(
4050+
"alice3EitherTOFPIDPi",
4051+
"iTOF OR oTOF pion PID",
4052+
kFALSE);
4053+
4054+
pidCut->AddCut(GetAnalysisCut("alice3iTOFPIDPi"));
4055+
pidCut->AddCut(GetAnalysisCut("alice3oTOFPIDPi"));
4056+
4057+
delete cut;
4058+
return pidCut;
4059+
}
4060+
4061+
if (nameStr == "alice3EitherTOFPIDKa") {
4062+
auto* pidCut = new AnalysisCompositeCut(
4063+
"alice3EitherTOFPIDKa",
4064+
"iTOF OR oTOF kaon PID",
4065+
kFALSE);
4066+
4067+
pidCut->AddCut(GetAnalysisCut("alice3iTOFPIDKa"));
4068+
pidCut->AddCut(GetAnalysisCut("alice3oTOFPIDKa"));
4069+
4070+
delete cut;
4071+
return pidCut;
4072+
}
4073+
40084074
if (nameStr == "alice3RICHPIDEl") {
40094075
cut->AddCut(GetAnalysisCut("alice3RICHPIDEl"));
40104076
return cut;
@@ -4108,6 +4174,32 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
41084174
return cut;
41094175
}
41104176

4177+
if (nameStr == "alice3TOFPIDPi") {
4178+
cut->AddCut(GetAnalysisCut("alice3iTOFPIDPi"));
4179+
cut->AddCut(GetAnalysisCut("alice3oTOFPIDPi"));
4180+
return cut;
4181+
}
4182+
4183+
if (nameStr == "alice3TOFPIDKaRej") {
4184+
cut->AddCut(GetAnalysisCut("alice3D0KaonTOFPID"));
4185+
return cut;
4186+
}
4187+
4188+
if (nameStr == "alice3TOFPIDPiRej") {
4189+
cut->AddCut(GetAnalysisCut("alice3D0PionTOFPID"));
4190+
return cut;
4191+
}
4192+
4193+
if (nameStr == "alice3RICHTOFPIDPiRej") {
4194+
cut->AddCut(GetAnalysisCut("alice3D0PionRICHTOFPID"));
4195+
return cut;
4196+
}
4197+
4198+
if (nameStr == "alice3RICHTOFPIDKaRej") {
4199+
cut->AddCut(GetAnalysisCut("alice3D0KaonRICHTOFPID"));
4200+
return cut;
4201+
}
4202+
41114203
delete cut;
41124204
LOGF(fatal, Form("Did not find cut %s. Returning nullptr", cutName));
41134205
return nullptr;
@@ -7083,6 +7175,35 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
70837175
return cut;
70847176
}
70857177

7178+
if (nameStr == "pairD0Topology") {
7179+
cut->AddCut(VarManager::kCosPointingAngle, 0.9, 1.0);
7180+
cut->AddCut(VarManager::kD0DcaDaughters, 0.0, 0.03);
7181+
cut->AddCut(VarManager::kD0ImpParProduct, -1000.0, 0.0);
7182+
cut->AddCut(VarManager::kDCAxy1, -0.1, 0.1);
7183+
cut->AddCut(VarManager::kDCAxy2, -0.1, 0.1);
7184+
return cut;
7185+
}
7186+
7187+
if (nameStr == "pairD0TopologyTight") {
7188+
cut->AddCut(VarManager::kCosPointingAngle, 0.8, 1.0, false, VarManager::kPt, 0.0, 1.0);
7189+
cut->AddCut(VarManager::kCosPointingAngle, 0.9, 1.0, false, VarManager::kPt, 1.0, 4.0);
7190+
cut->AddCut(VarManager::kCosPointingAngle, 0.85, 1.0, false, VarManager::kPt, 4.0, 50.0);
7191+
cut->AddCut(VarManager::kD0DcaDaughters, 0.035, 1000.0, false, VarManager::kPt, 0.0, 1.0);
7192+
cut->AddCut(VarManager::kD0DcaDaughters, 0.0, 0.03, false, VarManager::kPt, 1.0, 50.0);
7193+
cut->AddCut(VarManager::kD0ImpParProduct, -1000.0, 0.0);
7194+
cut->AddCut(VarManager::kDCAxy1, -0.1, 0.1);
7195+
cut->AddCut(VarManager::kDCAxy2, -0.1, 0.1);
7196+
cut->AddCut(VarManager::kPt1, 0.5, 100.0, false, VarManager::kPt, 0.0, 1.0);
7197+
cut->AddCut(VarManager::kPt1, 0.3, 100.0, false, VarManager::kPt, 1.0, 1.5);
7198+
cut->AddCut(VarManager::kPt1, 0.4, 100.0, false, VarManager::kPt, 1.5, 2.0);
7199+
cut->AddCut(VarManager::kPt1, 0.7, 100.0, false, VarManager::kPt, 2.0, 50.0);
7200+
cut->AddCut(VarManager::kPt2, 0.5, 100.0, false, VarManager::kPt, 0.0, 1.0);
7201+
cut->AddCut(VarManager::kPt2, 0.3, 100.0, false, VarManager::kPt, 1.0, 1.5);
7202+
cut->AddCut(VarManager::kPt2, 0.4, 100.0, false, VarManager::kPt, 1.5, 2.0);
7203+
cut->AddCut(VarManager::kPt2, 0.7, 100.0, false, VarManager::kPt, 2.0, 50.0);
7204+
return cut;
7205+
}
7206+
70867207
if (nameStr == "pairJpsi") {
70877208
cut->AddCut(VarManager::kMass, 2.8, 3.3);
70887209
return cut;
@@ -7339,6 +7460,35 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
73397460
return cut;
73407461
}
73417462

7463+
if (nameStr == "alice3StandardKineD0") {
7464+
cut->AddCut(VarManager::kPt, 0.7, 1000.0);
7465+
cut->AddCut(VarManager::kEta, -2.5, 2.5); // Total tracker acceptance in v3b geomety
7466+
return cut;
7467+
}
7468+
7469+
if (nameStr == "alice3TOFEta") {
7470+
cut->AddCut(VarManager::kPt, 0.7, 1000.0);
7471+
cut->AddCut(VarManager::kEta, -2.0, 2.0); // Total tracker acceptance in v3b geomety
7472+
return cut;
7473+
}
7474+
7475+
if (nameStr == "alice3RICHEta") {
7476+
cut->AddCut(VarManager::kEta, -0.8, 0.8); // Total tracker acceptance in v3b geomety
7477+
return cut;
7478+
}
7479+
7480+
if (nameStr == "alice3KineTOFAcceptanceD0") {
7481+
cut->AddCut(VarManager::kPt, 0.7, 1000.0);
7482+
cut->AddCut(VarManager::kEta, -2.0, 2.0); // TOF acceptance in v3b geomety
7483+
return cut;
7484+
}
7485+
7486+
if (nameStr == "alice3KineRICHAcceptanceD0") {
7487+
cut->AddCut(VarManager::kPt, 0.7, 1000.0);
7488+
cut->AddCut(VarManager::kEta, -0.8, 0.8); // TOF acceptance in v3b geomety
7489+
return cut;
7490+
}
7491+
73427492
if (nameStr == "alice3LambdaCKine") {
73437493
cut->AddCut(VarManager::kPt, 0.2, 1000.0);
73447494
cut->AddCut(VarManager::kEta, -2.0, 2.0);
@@ -7398,42 +7548,98 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
73987548
}
73997549

74007550
if (nameStr == "alice3iTOFPIDEl") {
7401-
cut->AddCut(VarManager::kInnerTOFnSigmaEl, -3.0, 3.0);
7551+
cut->AddCut(VarManager::kInnerTOFnSigmaEl, -3.0, 3.0, false, VarManager::kP, 0.0, 1.5);
74027552
return cut;
74037553
}
74047554

74057555
if (nameStr == "alice3iTOFPIDPi") {
7406-
cut->AddCut(VarManager::kInnerTOFnSigmaPi, -3.0, 3.0);
7556+
cut->AddCut(VarManager::kInnerTOFnSigmaPi, -3.0, 3.0, false, VarManager::kP, 0.0, 1.5);
74077557
return cut;
74087558
}
74097559

74107560
if (nameStr == "alice3iTOFPIDKa") {
7411-
cut->AddCut(VarManager::kInnerTOFnSigmaKa, -3.0, 3.0);
7561+
cut->AddCut(VarManager::kInnerTOFnSigmaKa, -3.0, 3.0, false, VarManager::kP, 0.0, 1.5);
74127562
return cut;
74137563
}
74147564

74157565
if (nameStr == "alice3iTOFPIDPr") {
7416-
cut->AddCut(VarManager::kInnerTOFnSigmaPr, -3.0, 3.0);
7566+
cut->AddCut(VarManager::kInnerTOFnSigmaPr, -3.0, 3.0, false, VarManager::kP, 0.0, 1.5);
74177567
return cut;
74187568
}
74197569

74207570
if (nameStr == "alice3oTOFPIDEl") {
7421-
cut->AddCut(VarManager::kOuterTOFnSigmaEl, -3.0, 3.0);
7571+
cut->AddCut(VarManager::kOuterTOFnSigmaEl, -3.0, 3.0, false, VarManager::kP, 0.0, 2.5);
74227572
return cut;
74237573
}
74247574

74257575
if (nameStr == "alice3oTOFPIDPi") {
7426-
cut->AddCut(VarManager::kOuterTOFnSigmaPi, -3.0, 3.0);
7576+
cut->AddCut(VarManager::kOuterTOFnSigmaPi, -3.0, 3.0, false, VarManager::kP, 0.0, 2.5);
74277577
return cut;
74287578
}
74297579

74307580
if (nameStr == "alice3oTOFPIDKa") {
7431-
cut->AddCut(VarManager::kOuterTOFnSigmaKa, -3.0, 3.0);
7581+
cut->AddCut(VarManager::kOuterTOFnSigmaKa, -3.0, 3.0, false, VarManager::kP, 0.0, 2.5);
74327582
return cut;
74337583
}
74347584

74357585
if (nameStr == "alice3oTOFPIDPr") {
7436-
cut->AddCut(VarManager::kOuterTOFnSigmaPr, -3.0, 3.0);
7586+
cut->AddCut(VarManager::kOuterTOFnSigmaPr, -3.0, 3.0, false, VarManager::kP, 0.0, 2.5);
7587+
return cut;
7588+
}
7589+
7590+
if (nameStr == "alice3D0KaonTOFPID") {
7591+
cut->AddCut(VarManager::kInnerTOFnSigmaKa, -3.0, 3.0, false, VarManager::kP, 0.0, 1.5);
7592+
cut->AddCut(VarManager::kOuterTOFnSigmaKa, -3.0, 3.0, false, VarManager::kP, 0.0, 2.5);
7593+
7594+
cut->AddCut(VarManager::kInnerTOFnSigmaPi, -3.0, 3.0, true, VarManager::kP, 0.0, 1.5);
7595+
cut->AddCut(VarManager::kInnerTOFnSigmaPr, -3.0, 3.0, true, VarManager::kP, 0.0, 1.5);
7596+
7597+
cut->AddCut(VarManager::kOuterTOFnSigmaPi, -3.0, 3.0, true, VarManager::kP, 0.0, 2.5);
7598+
cut->AddCut(VarManager::kOuterTOFnSigmaPr, -3.0, 3.0, true, VarManager::kP, 0.0, 2.5);
7599+
return cut;
7600+
}
7601+
7602+
if (nameStr == "alice3D0PionTOFPID") {
7603+
cut->AddCut(VarManager::kInnerTOFnSigmaPi, -3.0, 3.0, false, VarManager::kP, 0.0, 1.5);
7604+
cut->AddCut(VarManager::kOuterTOFnSigmaPi, -3.0, 3.0, false, VarManager::kP, 0.0, 2.5);
7605+
7606+
cut->AddCut(VarManager::kInnerTOFnSigmaKa, -3.0, 3.0, true, VarManager::kP, 0.0, 1.5);
7607+
cut->AddCut(VarManager::kInnerTOFnSigmaPr, -3.0, 3.0, true, VarManager::kP, 0.0, 1.5);
7608+
7609+
cut->AddCut(VarManager::kOuterTOFnSigmaKa, -3.0, 3.0, true, VarManager::kP, 0.0, 2.5);
7610+
cut->AddCut(VarManager::kOuterTOFnSigmaPr, -3.0, 3.0, true, VarManager::kP, 0.0, 2.5);
7611+
return cut;
7612+
}
7613+
7614+
if (nameStr == "alice3D0KaonRICHTOFPID") {
7615+
cut->AddCut(VarManager::kInnerTOFnSigmaKa, -3.0, 3.0, false, VarManager::kP, 0.0, 1.5);
7616+
cut->AddCut(VarManager::kOuterTOFnSigmaKa, -3.0, 3.0, false, VarManager::kP, 0.0, 2.5);
7617+
cut->AddCut(VarManager::kRICHnSigmaKa, -3.0, 3.0, false, VarManager::kP, 2.0, 1000.0, false, VarManager::kHasRICHSigKa, 0.5, 1.5);
7618+
7619+
cut->AddCut(VarManager::kInnerTOFnSigmaPi, -3.0, 3.0, true, VarManager::kP, 0.0, 1.5);
7620+
cut->AddCut(VarManager::kInnerTOFnSigmaPr, -3.0, 3.0, true, VarManager::kP, 0.0, 1.5);
7621+
7622+
cut->AddCut(VarManager::kOuterTOFnSigmaPi, -3.0, 3.0, true, VarManager::kP, 0.0, 2.5);
7623+
cut->AddCut(VarManager::kOuterTOFnSigmaPr, -3.0, 3.0, true, VarManager::kP, 0.0, 2.5);
7624+
7625+
cut->AddCut(VarManager::kRICHnSigmaPi, -3.0, 3.0, true, VarManager::kP, 0.57, 1000.0, false, VarManager::kRICHnSigmaPi, 0.5, 1.5);
7626+
cut->AddCut(VarManager::kRICHnSigmaPr, -3.0, 3.0, true, VarManager::kP, 3.8, 1000.0, false, VarManager::kRICHnSigmaPr, 0.5, 1.5);
7627+
return cut;
7628+
}
7629+
7630+
if (nameStr == "alice3D0PionRICHTOFPID") {
7631+
cut->AddCut(VarManager::kInnerTOFnSigmaPi, -3.0, 3.0, false, VarManager::kP, 0.0, 1.5);
7632+
cut->AddCut(VarManager::kOuterTOFnSigmaPi, -3.0, 3.0, false, VarManager::kP, 0.0, 2.5);
7633+
cut->AddCut(VarManager::kRICHnSigmaPi, -3.0, 3.0, false, VarManager::kP, 0.57, 1000.0, false, VarManager::kHasRICHSigKa, 0.5, 1.5);
7634+
7635+
cut->AddCut(VarManager::kInnerTOFnSigmaKa, -3.0, 3.0, true, VarManager::kP, 0.0, 1.5);
7636+
cut->AddCut(VarManager::kInnerTOFnSigmaPr, -3.0, 3.0, true, VarManager::kP, 0.0, 1.5);
7637+
7638+
cut->AddCut(VarManager::kOuterTOFnSigmaKa, -3.0, 3.0, true, VarManager::kP, 0.0, 2.5);
7639+
cut->AddCut(VarManager::kOuterTOFnSigmaPr, -3.0, 3.0, true, VarManager::kP, 0.0, 2.5);
7640+
7641+
cut->AddCut(VarManager::kRICHnSigmaKa, -3.0, 3.0, true, VarManager::kP, 2.0, 1000.0, false, VarManager::kRICHnSigmaPi, 0.5, 1.5);
7642+
cut->AddCut(VarManager::kRICHnSigmaPr, -3.0, 3.0, true, VarManager::kP, 3.8, 1000.0, false, VarManager::kRICHnSigmaPr, 0.5, 1.5);
74377643
return cut;
74387644
}
74397645

‎PWGDQ/Core/HistogramsLibrary.cxx‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1417,6 +1417,13 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
14171417
}
14181418
hm->AddHistogram(histClass, "Mass_PtLong", "", false, 500, alice3MassBins.data(), VarManager::kMass, 20, pTBins.data(), VarManager::kPt);
14191419
}
1420+
if (subGroupStr.Contains("alice3pair")) {
1421+
hm->AddHistogram(histClass, "CosinePointingAngle", "cos(#theta_{p})", false, 2000.0, -1.0, 1.0, VarManager::kCosPointingAngle);
1422+
hm->AddHistogram(histClass, "DCADaughters", "DCA_{dau}", false, 2000.0, -10.0, 10.0, VarManager::kD0DcaDaughters);
1423+
hm->AddHistogram(histClass, "ImpParProduct", "d_{k} #times d_{#pi}", false, 2000.0, -100.0, 100.0, VarManager::kD0ImpParProduct);
1424+
hm->AddHistogram(histClass, "DCAxy1", "DCA_{xy, 1}", false, 2000.0, -10.0, 10.0, VarManager::kDCAxy1);
1425+
hm->AddHistogram(histClass, "DCAxy2", "DCA_{xy, 2}", false, 2000.0, -10.0, 10.0, VarManager::kDCAxy2);
1426+
}
14201427
if (subGroupStr.Contains("alice3pbpb")) {
14211428
hm->AddHistogram(histClass, "Mass_Cent", "", false, 125, 0.0, 5.0, VarManager::kMass, 20, 0.0, 100.0, VarManager::kCent);
14221429
hm->AddHistogram(histClass, "Pt_CentFT0C", "", false, 100, 0.0, 10.0, VarManager::kPt, 20, 0.0, 100.0, VarManager::kCent);

‎PWGDQ/Core/MCSignalLibrary.cxx‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1754,6 +1754,16 @@ MCSignal* o2::aod::dqmcsignals::GetMCSignal(const char* name)
17541754
signal = new MCSignal(name, "Kaons from D+/- decays", {prong}, {-1});
17551755
return signal;
17561756
}
1757+
if (nameStr == "KFromD0") {
1758+
MCProng prong(2, {321, Pdg::kD0}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false});
1759+
signal = new MCSignal(name, "Kaons from D0 decays", {prong}, {-1});
1760+
return signal;
1761+
}
1762+
if (nameStr == "PiFromD0") {
1763+
MCProng prong(2, {211, Pdg::kD0}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false});
1764+
signal = new MCSignal(name, "Pions from D0 decays", {prong}, {-1});
1765+
return signal;
1766+
}
17571767
if (nameStr == "LambdaC") {
17581768
MCProng prong(1, {Pdg::kLambdaCPlus}, {true}, {false}, {0}, {0}, {false});
17591769
signal = new MCSignal(name, "Lambda_c", {prong}, {-1});

‎PWGDQ/Core/VarManager.cxx‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,6 +1359,10 @@ void VarManager::SetDefaultVarNames()
13591359
fgVariableUnits[kCosPointingAngle] = "";
13601360
fgVariableNames[kMCCosPointingAngle] = "MC cos(#theta_{pointing})";
13611361
fgVariableUnits[kMCCosPointingAngle] = "";
1362+
fgVariableNames[kD0DcaDaughters] = "DCA of D0 daughters";
1363+
fgVariableUnits[kD0DcaDaughters] = "";
1364+
fgVariableNames[kD0ImpParProduct] = "D0 impact parameter product";
1365+
fgVariableUnits[kD0ImpParProduct] = "";
13621366
fgVariableNames[kVertexingPz] = "Pz Pair";
13631367
fgVariableUnits[kVertexingPz] = "GeV/c";
13641368
fgVariableNames[kVertexingSV] = "Secondary Vertexing z";
@@ -2672,6 +2676,8 @@ void VarManager::SetDefaultVarNames()
26722676
fgVarNamesMap["kSignQuadDCAsigXY"] = kSignQuadDCAsigXY;
26732677
fgVarNamesMap["kCosPointingAngle"] = kCosPointingAngle;
26742678
fgVarNamesMap["kMCCosPointingAngle"] = kMCCosPointingAngle;
2679+
fgVarNamesMap["kD0ImpParProduct"] = kD0ImpParProduct;
2680+
fgVarNamesMap["kD0DcaDaughters"] = kD0DcaDaughters;
26752681
fgVarNamesMap["kImpParXYJpsi"] = kImpParXYJpsi;
26762682
fgVarNamesMap["kImpParXYK"] = kImpParXYK;
26772683
fgVarNamesMap["kDCATrackProd"] = kDCATrackProd;

‎PWGDQ/Core/VarManager.h‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -888,6 +888,8 @@ class VarManager : public TObject
888888
kQuadDCAsigXYZ,
889889
kSignQuadDCAsigXY,
890890
kCosPointingAngle,
891+
kD0ImpParProduct,
892+
kD0DcaDaughters,
891893
kImpParXYJpsi,
892894
kImpParXYK,
893895
kDCATrackProd,
@@ -7966,6 +7968,14 @@ void VarManager::FillPairAlice3(T1 const& t1, T2 const& t2, float* values)
79667968
if (fgUsedVars[kPairPhiv]) {
79677969
values[kPairPhiv] = calculatePhiV<pairType>(t1, t2);
79687970
}
7971+
7972+
if constexpr (pairType == kDecayToKPi) {
7973+
if constexpr ((fillMap & TrackDCA) > 0 || (fillMap & ReducedTrackBarrel) > 0) {
7974+
values[kDCAxy1] = t1.dcaXY();
7975+
values[kDCAxy2] = t2.dcaXY();
7976+
values[kD0ImpParProduct] = t1.dcaXY() * t2.dcaXY();
7977+
}
7978+
}
79697979
}
79707980

79717981
template <typename M, typename T>
@@ -8070,7 +8080,17 @@ void VarManager::FillPairVertexingAlice3(C const& collision, T const& t1, T cons
80708080
v1 = {trackParVar0.getPt(), trackParVar0.getEta(), trackParVar0.getPhi(), m1};
80718081
v2 = {trackParVar1.getPt(), trackParVar1.getEta(), trackParVar1.getPhi(), m2};
80728082
v12 = v1 + v2;
8083+
8084+
const auto pos1 = trackParVar0.getXYZGlo();
8085+
const auto pos2 = trackParVar1.getXYZGlo();
8086+
8087+
const double dx = pos1.X() - pos2.X();
8088+
const double dy = pos1.Y() - pos2.Y();
8089+
const double dz = pos1.Z() - pos2.Z();
8090+
8091+
values[kD0DcaDaughters] = std::sqrt(dx * dx + dy * dy + dz * dz);
80738092
}
8093+
80748094
double phi = std::atan2(secondaryVertex[1] - collision.posY(), secondaryVertex[0] - collision.posX());
80758095
double theta = std::atan2(secondaryVertex[2] - collision.posZ(),
80768096
std::sqrt((secondaryVertex[0] - collision.posX()) * (secondaryVertex[0] - collision.posX()) +

0 commit comments

Comments
 (0)