Skip to content

Commit de266e0

Browse files
PaolaVTPaola Vargas Torres
andauthored
[PWGLF] Update DCA cuts for systematic studies and add V0 mass plots (#16120)
Co-authored-by: Paola Vargas Torres <paovargas@MacBook-Air-de-Paola.local>
1 parent 0e05a82 commit de266e0

1 file changed

Lines changed: 127 additions & 31 deletions

File tree

PWGLF/Tasks/Nuspex/dedxPidAnalysis.cxx

Lines changed: 127 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ struct DedxPidAnalysis {
8383
static constexpr int EtaIntervals = 8;
8484
static constexpr int ParticlesType = 4;
8585
static constexpr int CentralityClasses = 10;
86-
float tpcCut = 0.6;
8786
float pionMin = 0.35;
8887
float pionMax = 0.45;
8988
float elTofCut = 0.1;
@@ -197,6 +196,11 @@ struct DedxPidAnalysis {
197196
Configurable<float> etaMin{"etaMin", -0.8f, "etaMin"};
198197
Configurable<float> etaMax{"etaMax", +0.8f, "etaMax"};
199198
Configurable<float> minNCrossedRowsOverFindableClustersTPC{"minNCrossedRowsOverFindableClustersTPC", 0.8f, "Additional cut on the minimum value of the ratio between crossed rows and findable clusters in the TPC"};
199+
Configurable<float> nSigmaDCAxy{"nSigmaDCAxy", 3.0, "nSigma DCAxy selection"};
200+
Configurable<float> dcaXYp0{"dcaXYp0", 0.0105f, "DCAxy formula: p0 + p1/pt^p2"};
201+
Configurable<float> dcaXYp1{"dcaXYp1", 0.0350f, "DCAxy p1 parameter"};
202+
Configurable<float> dcaXYp2{"dcaXYp2", 1.1f, "DCA_xy p2 parameter"};
203+
Configurable<float> nSigmaDCAz{"nSigmaDCAz", 3.0, "nSigma DCAz selection"};
200204
Configurable<float> maxDCAz{"maxDCAz", 0.1f, "maxDCAz"};
201205
// v0 cuts
202206
Configurable<float> v0cospaMin{"v0cospaMin", 0.999f, "Minimum V0 CosPA"};
@@ -215,7 +219,8 @@ struct DedxPidAnalysis {
215219
Configurable<float> v0rapidityCut{"v0rapidityCut", 0.5f, "V0 rapidity cut"};
216220
Configurable<float> v0ProperLifetimeCutK0s{"v0ProperLifetimeCutK0s", 20.f, "V0 proper lifetime cut for K0s"};
217221
Configurable<float> v0ProperLifetimeCutLambda{"v0ProperLifetimeCutLambda", 30.f, "V0 proper lifetime cut for Lambda"};
218-
Configurable<float> nsigmaTOFmax{"nsigmaTOFmax", 3.0f, "Maximum nsigma TOF"};
222+
Configurable<float> nsigmaMax{"nsigmaMax", 3.0f, "Maximum nsigma cut"};
223+
Configurable<float> tpcMomentumCut{"tpcMomentumCut", 0.6f, "Momentum threshold above which TOF is required"};
219224
Configurable<float> invMassCutK0s{"invMassCutK0s", 0.015f, "invariant Mass Cut for K0s"};
220225
Configurable<float> invMassCutLambda{"invMassCutLambda", 0.015f, "invariant Mass Cut for Lambda"};
221226
Configurable<float> invMassCutGamma{"invMassCutGamma", 0.015f, "invariant Mass Cut for Gamma"};
@@ -276,8 +281,8 @@ struct DedxPidAnalysis {
276281
selectedTracks.SetMaxChi2PerClusterTPC(maxChi2TPC);
277282
selectedTracks.SetRequireHitsInITSLayers(1, {0, 1, 2});
278283
selectedTracks.SetMaxChi2PerClusterITS(maxChi2ITS);
279-
selectedTracks.SetMaxDcaXYPtDep([](float pt) { return 0.0105f + 0.0350f / std::pow(pt, 1.1f); });
280-
selectedTracks.SetMaxDcaZ(maxDCAz);
284+
// selectedTracks.SetMaxDcaXYPtDep([](float pt) { return 0.0105f + 0.0350f / std::pow(pt, 1.1f); });
285+
// selectedTracks.SetMaxDcaZ(maxDCAz);
281286
selectedTracks.SetRequireGoldenChi2(true);
282287

283288
return selectedTracks;
@@ -299,7 +304,8 @@ struct DedxPidAnalysis {
299304
LOGF(info, "GoodZvtxFT0vsPV cut disabled");
300305
}
301306
if (nINELSelectionMode == NoSelINEL) {
302-
LOGF(info, "INEL cut disabled");
307+
LOGF(info, "Applying just INEL");
308+
label = "INEL";
303309
} else if (nINELSelectionMode == SelINELgt0) {
304310
LOGF(info, "Applying INEL > 0 cut");
305311
label = "INEL > 0";
@@ -483,6 +489,30 @@ struct DedxPidAnalysis {
483489
for (int i = 0; i < CentralityClasses + 1; ++i) {
484490
hDedxVspTMomentumVsCent[i] = registryDeDx.add<TH3>(DedxvspTMomentumvsCent[i].data(), "dE/dx", HistType::kTH3F, {{ptAxis}, {dedxAxis}, {etaAxis}});
485491
}
492+
493+
// Invariant Mass
494+
registryDeDx.add("hMassK0s", "Invariant mass K0s;m_{#pi#pi} (GeV/c^{2});Counts",
495+
HistType::kTH1F, {{200, 0.4, 0.6}});
496+
registryDeDx.add("hMassLambda", "Invariant mass #Lambda;m_{p#pi} (GeV/c^{2});Counts",
497+
HistType::kTH1F, {{200, 1.08, 1.16}});
498+
registryDeDx.add("hMassAntiLambda", "Invariant mass #bar{#Lambda};m_{#bar{p}#pi} (GeV/c^{2});Counts",
499+
HistType::kTH1F, {{200, 1.08, 1.16}});
500+
registryDeDx.add("hMassGamma", "Invariant mass #gamma;m_{ee} (GeV/c^{2});Counts",
501+
HistType::kTH1F, {{200, 0.0, 0.1}});
502+
503+
// Armenteros-Podolanski plot
504+
registryDeDx.add("hArmenterosAll", "Armenteros-Podolanski (all V0s);#alpha;q_{T} (GeV/c)",
505+
HistType::kTH2F, {{200, -1, 1}, {200, 0, 0.3}});
506+
507+
// Armenteros-Podolanski plot by particle
508+
registryDeDx.add("hArmenterosK0s", "Armenteros-Podolanski K0s;#alpha;q_{T} (GeV/c)",
509+
HistType::kTH2F, {{200, -1, 1}, {200, 0, 0.3}});
510+
registryDeDx.add("hArmenterosLambda", "Armenteros-Podolanski #Lambda;#alpha;q_{T} (GeV/c)",
511+
HistType::kTH2F, {{200, -1, 1}, {200, 0, 0.3}});
512+
registryDeDx.add("hArmenterosAntiLambda", "Armenteros-Podolanski #bar{#Lambda};#alpha;q_{T} (GeV/c)",
513+
HistType::kTH2F, {{200, -1, 1}, {200, 0, 0.3}});
514+
registryDeDx.add("hArmenterosGamma", "Armenteros-Podolanski #gamma;#alpha;q_{T} (GeV/c)",
515+
HistType::kTH2F, {{200, -1, 1}, {200, 0, 0.3}});
486516
}
487517

488518
registryDeDx.add(
@@ -663,6 +693,23 @@ struct DedxPidAnalysis {
663693
registryDeDx.add("Tracks_vs_pT_all", "pT All", HistType::kTH1F, {{ptAxis}});
664694
registryDeDx.add("Tracks_vs_pT_all_cuts", "pT All + cuts", HistType::kTH1F, {{ptAxis}});
665695

696+
// NCluster distributions
697+
registryDeDx.add("hTPCClustersBefore", "N clusters TPC found Before", HistType::kTH1F, {{200, 0, 200, "N_{cl,found, Before}"}});
698+
registryDeDx.add("hTPCClustersAfter", "N clusters TPC found After", HistType::kTH1F, {{200, 0, 200, "N_{cl,found, After}"}});
699+
700+
registryDeDx.add("hTPCPIDBefore", "N clusters TPC PID Before", HistType::kTH1F, {{200, 0, 200, "N_{cl,PID, Before}"}});
701+
registryDeDx.add("hTPCPIDAfter", "N clusters TPC PID After", HistType::kTH1F, {{200, 0, 200, "N_{cl,PID, After}"}});
702+
703+
// DCA cut
704+
registryDeDx.add("hDCAxyVsPt_before", "DCAxy vs pT before cut;#it{p}_{T} (GeV/c);DCA_{xy} (cm)",
705+
HistType::kTH2F, {{ptAxis}, {200, -0.5, 0.5}});
706+
registryDeDx.add("hDCAzVsPt_before", "DCAz vs pT before cut;#it{p}_{T} (GeV/c);DCA_{z} (cm)",
707+
HistType::kTH2F, {{ptAxis}, {200, -0.5, 0.5}});
708+
registryDeDx.add("hDCAxyVsPt_after", "DCAxy vs pT after cut;#it{p}_{T} (GeV/c);DCA_{xy} (cm)",
709+
HistType::kTH2F, {{ptAxis}, {200, -0.5, 0.5}});
710+
registryDeDx.add("hDCAzVsPt_after", "DCAz vs pT after cut;#it{p}_{T} (GeV/c);DCA_{z} (cm)",
711+
HistType::kTH2F, {{ptAxis}, {200, -0.5, 0.5}});
712+
666713
// Event Counter
667714
registryDeDx.add("evsel", "events selected", HistType::kTH1F, {{6, 0.5, 6.5, ""}});
668715
auto hstat = registryDeDx.get<TH1>(HIST("evsel"));
@@ -721,6 +768,7 @@ struct DedxPidAnalysis {
721768
xSec->SetBinLabel(V0TypeGamma, "V0TypeGamma");
722769
xSec->SetBinLabel(V0RapidityGamma, "V0RapidityGamma");
723770
xSec->SetBinLabel(MassCutGamma, "MassCutGamma");
771+
724772
mySelectionPrim = myTrackSelection();
725773
}
726774

@@ -740,7 +788,20 @@ struct DedxPidAnalysis {
740788

741789
return true;
742790
}
743-
791+
// DCA xy cut
792+
template <typename T1>
793+
bool passesDCAxyCut(const T1& track) const
794+
{
795+
const float maxDcaXY = nSigmaDCAxy.value * (dcaXYp0.value + dcaXYp1.value / std::pow(track.pt(), dcaXYp2.value)) / 3.0;
796+
return std::abs(track.dcaXY()) < maxDcaXY;
797+
}
798+
// DCA z cut
799+
template <typename T1>
800+
bool passesDCAzCut(const T1& track) const
801+
{
802+
const float maxiDcaZ = nSigmaDCAz.value * (maxDCAz.value) / 3.0;
803+
return std::abs(track.dcaZ()) < maxiDcaZ;
804+
}
744805
// Momentum
745806
template <typename T1>
746807
float getMomentum(const T1& track)
@@ -780,7 +841,7 @@ struct DedxPidAnalysis {
780841
return false;
781842
if (!passedSingleTrackSelection(ntrack, collision))
782843
return false;
783-
/*double sigmap = 0.0;
844+
double sigmap = 0.0;
784845
double sigman = 0.0;
785846

786847
if (v0SelectionMode == V0TPC) {
@@ -794,19 +855,20 @@ struct DedxPidAnalysis {
794855
sigman = std::hypot(ntrack.tpcNSigmaPi(), ntrack.tofNSigmaPi());
795856
}
796857

797-
if (ptrack.tpcInnerParam() > tpcCut) {
858+
if (ptrack.tpcInnerParam() > tpcMomentumCut) {
798859
if (!ptrack.hasTOF())
799860
return false;
800-
if (std::abs(sigmap) > nsigmaTOFmax)
861+
if (std::abs(sigmap) > nsigmaMax)
801862
return false;
802863
}
803864

804-
if (ntrack.tpcInnerParam() > tpcCut) {
865+
if (ntrack.tpcInnerParam() > tpcMomentumCut) {
805866
if (!ntrack.hasTOF())
806867
return false;
807-
if (std::abs(sigman) > nsigmaTOFmax)
868+
if (std::abs(sigman) > nsigmaMax)
808869
return false;
809-
}*/
870+
}
871+
810872
if (fillHist)
811873
registryDeDx.fill(HIST("trackselSec"), TrkSecCutLabel::SingleTrackSelectionK0s);
812874

@@ -860,7 +922,7 @@ struct DedxPidAnalysis {
860922
if (!passedSingleTrackSelection(ntrack, collision))
861923
return false;
862924

863-
/*double sigmap = 0.0;
925+
double sigmap = 0.0;
864926
double sigman = 0.0;
865927

866928
if (v0SelectionMode == V0TPC) {
@@ -874,19 +936,19 @@ struct DedxPidAnalysis {
874936
sigman = std::hypot(ntrack.tpcNSigmaPi(), ntrack.tofNSigmaPi());
875937
}
876938

877-
if (ptrack.tpcInnerParam() > tpcCut) {
939+
if (ptrack.tpcInnerParam() > tpcMomentumCut) {
878940
if (!ptrack.hasTOF())
879941
return false;
880-
if (std::abs(sigmap) > nsigmaTOFmax)
942+
if (std::abs(sigmap) > nsigmaMax)
881943
return false;
882944
}
883945

884-
if (ntrack.tpcInnerParam() > tpcCut) {
946+
if (ntrack.tpcInnerParam() > tpcMomentumCut) {
885947
if (!ntrack.hasTOF())
886948
return false;
887-
if (std::abs(sigman) > nsigmaTOFmax)
949+
if (std::abs(sigman) > nsigmaMax)
888950
return false;
889-
}*/
951+
}
890952

891953
if (fillHist)
892954
registryDeDx.fill(HIST("trackselSec"), TrkSecCutLabel::SingleTrackSelectionLambda);
@@ -935,7 +997,7 @@ struct DedxPidAnalysis {
935997
return false;
936998
if (!passedSingleTrackSelection(ntrack, collision))
937999
return false;
938-
/*double sigmap = 0.0;
1000+
double sigmap = 0.0;
9391001
double sigman = 0.0;
9401002

9411003
if (v0SelectionMode == V0TPC) {
@@ -948,19 +1010,19 @@ struct DedxPidAnalysis {
9481010
sigmap = std::hypot(ptrack.tpcNSigmaPi(), ptrack.tofNSigmaPi());
9491011
sigman = std::hypot(ntrack.tpcNSigmaPr(), ntrack.tofNSigmaPr());
9501012
}
951-
if (ptrack.tpcInnerParam() > tpcCut) {
1013+
if (ptrack.tpcInnerParam() > tpcMomentumCut) {
9521014
if (!ptrack.hasTOF())
9531015
return false;
954-
if (std::abs(sigmap) > nsigmaTOFmax)
1016+
if (std::abs(sigmap) > nsigmaMax)
9551017
return false;
9561018
}
9571019

958-
if (ntrack.tpcInnerParam() > tpcCut) {
1020+
if (ntrack.tpcInnerParam() > tpcMomentumCut) {
9591021
if (!ntrack.hasTOF())
9601022
return false;
961-
if (std::abs(sigman) > nsigmaTOFmax)
1023+
if (std::abs(sigman) > nsigmaMax)
9621024
return false;
963-
}*/
1025+
}
9641026

9651027
if (fillHist)
9661028
registryDeDx.fill(HIST("trackselSec"), TrkSecCutLabel::SingleTrackSelectionAntiLambda);
@@ -1011,7 +1073,7 @@ struct DedxPidAnalysis {
10111073
if (!passedSingleTrackSelection(ntrack, collision))
10121074
return false;
10131075

1014-
/*double sigmap = 0.0;
1076+
double sigmap = 0.0;
10151077
double sigman = 0.0;
10161078

10171079
if (v0SelectionMode == V0TPC) {
@@ -1025,19 +1087,19 @@ struct DedxPidAnalysis {
10251087
sigman = std::hypot(ntrack.tpcNSigmaEl(), ntrack.tofNSigmaEl());
10261088
}
10271089

1028-
if (ptrack.tpcInnerParam() > tpcCut) {
1090+
if (ptrack.tpcInnerParam() > tpcMomentumCut) {
10291091
if (!ptrack.hasTOF())
10301092
return false;
1031-
if (std::abs(sigmap) > nsigmaTOFmax)
1093+
if (std::abs(sigmap) > nsigmaMax)
10321094
return false;
10331095
}
10341096

1035-
if (ntrack.tpcInnerParam() > tpcCut) {
1097+
if (ntrack.tpcInnerParam() > tpcMomentumCut) {
10361098
if (!ntrack.hasTOF())
10371099
return false;
1038-
if (std::abs(sigman) > nsigmaTOFmax)
1100+
if (std::abs(sigman) > nsigmaMax)
10391101
return false;
1040-
}*/
1102+
}
10411103
const float gammaMass = 2 * MassElectron; // GeV/c^2
10421104

10431105
if (fillHist)
@@ -1462,6 +1524,7 @@ struct DedxPidAnalysis {
14621524
}
14631525

14641526
if (nINELSelectionMode == NoSelINEL) {
1527+
registryDeDx.fill(HIST("evsel"), EvCutLabel::INELgt);
14651528
} else if (nINELSelectionMode == SelINELgt0) {
14661529
if (!collision.isInelGt0())
14671530
return;
@@ -1490,10 +1553,28 @@ struct DedxPidAnalysis {
14901553
for (const auto& trk : tracks) {
14911554
registryDeDx.fill(HIST("trackselAll"), TrkPriCutLabel::AllPri);
14921555

1493-
// track Selection
1556+
// Ncl distribution before cuts
1557+
registryDeDx.fill(HIST("hTPCClustersBefore"), trk.tpcNClsFound());
1558+
registryDeDx.fill(HIST("hTPCPIDBefore"), trk.tpcNClsPID());
1559+
1560+
// track Selection wo DCA
14941561
if (!mySelectionPrim.IsSelected(trk))
14951562
continue;
14961563

1564+
// Before DCA cuts
1565+
registryDeDx.fill(HIST("hDCAxyVsPt_before"), trk.pt(), trk.dcaXY());
1566+
registryDeDx.fill(HIST("hDCAzVsPt_before"), trk.pt(), trk.dcaZ());
1567+
1568+
// DCA cuts
1569+
if (!passesDCAxyCut(trk))
1570+
continue;
1571+
if (!passesDCAzCut(trk))
1572+
continue;
1573+
1574+
// After DCA cuts
1575+
registryDeDx.fill(HIST("hDCAxyVsPt_after"), trk.pt(), trk.dcaXY());
1576+
registryDeDx.fill(HIST("hDCAzVsPt_after"), trk.pt(), trk.dcaZ());
1577+
14971578
registryDeDx.fill(HIST("trackselAll"), TrkPriCutLabel::SelectionPrim);
14981579
// For pt
14991580
registryDeDx.fill(HIST("Tracks_vs_pT_all"), trk.pt());
@@ -1527,6 +1608,10 @@ struct DedxPidAnalysis {
15271608
// For pt + cuts
15281609
registryDeDx.fill(HIST("Tracks_vs_pT_all_cuts"), trk.pt());
15291610

1611+
// Ncl distribution After all cuts
1612+
registryDeDx.fill(HIST("hTPCClustersAfter"), trk.tpcNClsFound());
1613+
registryDeDx.fill(HIST("hTPCPIDAfter"), trk.tpcNClsPID());
1614+
15301615
float signedP = trk.sign() * getMomentum(trk);
15311616
float signedpT = trk.sign() * trk.pt();
15321617

@@ -1718,12 +1803,17 @@ struct DedxPidAnalysis {
17181803

17191804
fillHist = true;
17201805

1806+
// Armenteros for all V0
1807+
registryDeDx.fill(HIST("hArmenterosAll"), v0.alpha(), v0.qtarm());
1808+
17211809
// K0s Selection
17221810
if (passedK0Selection(v0, negTrack, posTrack, collision)) {
17231811
registryDeDx.fill(HIST("heta_vs_NclPID_TPC_After_PionsK0s"), posTrack.eta(), posTrack.tpcNClsPID());
17241812
registryDeDx.fill(HIST("heta_vs_NclPID_TPC_After_PionsK0s"), negTrack.eta(), negTrack.tpcNClsPID());
17251813
registryDeDx.fill(HIST("hp_vs_NclPID_TPC_After_PionsK0s"), posTrack.p(), posTrack.tpcNClsPID());
17261814
registryDeDx.fill(HIST("hp_vs_NclPID_TPC_After_PionsK0s"), negTrack.p(), negTrack.tpcNClsPID());
1815+
registryDeDx.fill(HIST("hMassK0s"), v0.mK0Short());
1816+
registryDeDx.fill(HIST("hArmenterosK0s"), v0.alpha(), v0.qtarm());
17271817
for (int i = 0; i < EtaIntervals; ++i) {
17281818
if (negTrack.eta() > EtaCut[i] && negTrack.eta() < EtaCut[i + 1]) {
17291819
registryDeDx.fill(HIST(DedxvsMomentumNeg[1]), std::abs(signedPneg), negTrack.tpcSignal() * 50 / calibrationFactorNeg->at(i), negTrack.eta());
@@ -1740,6 +1830,8 @@ struct DedxPidAnalysis {
17401830
registryDeDx.fill(HIST("heta_vs_NclPID_TPC_After_PionsLambda"), negTrack.eta(), negTrack.tpcNClsPID());
17411831
registryDeDx.fill(HIST("hp_vs_NclPID_TPC_After_ProtonsLambda"), posTrack.p(), posTrack.tpcNClsPID());
17421832
registryDeDx.fill(HIST("hp_vs_NclPID_TPC_After_PionsLambda"), negTrack.p(), negTrack.tpcNClsPID());
1833+
registryDeDx.fill(HIST("hMassLambda"), v0.mLambda());
1834+
registryDeDx.fill(HIST("hArmenterosLambda"), v0.alpha(), v0.qtarm());
17431835
for (int i = 0; i < EtaIntervals; ++i) {
17441836
if (negTrack.eta() > EtaCut[i] && negTrack.eta() < EtaCut[i + 1]) {
17451837
registryDeDx.fill(HIST(DedxvsMomentumNeg[1]), std::abs(signedPneg), negTrack.tpcSignal() * 50 / calibrationFactorNeg->at(i), negTrack.eta());
@@ -1756,6 +1848,8 @@ struct DedxPidAnalysis {
17561848
registryDeDx.fill(HIST("heta_vs_NclPID_TPC_After_ProtonsLambda"), negTrack.eta(), negTrack.tpcNClsPID());
17571849
registryDeDx.fill(HIST("hp_vs_NclPID_TPC_After_PionsLambda"), posTrack.p(), posTrack.tpcNClsPID());
17581850
registryDeDx.fill(HIST("hp_vs_NclPID_TPC_After_ProtonsLambda"), negTrack.p(), negTrack.tpcNClsPID());
1851+
registryDeDx.fill(HIST("hMassAntiLambda"), v0.mAntiLambda());
1852+
registryDeDx.fill(HIST("hArmenterosAntiLambda"), v0.alpha(), v0.qtarm());
17591853
for (int i = 0; i < EtaIntervals; ++i) {
17601854
if (negTrack.eta() > EtaCut[i] && negTrack.eta() < EtaCut[i + 1]) {
17611855
registryDeDx.fill(HIST(DedxvsMomentumNeg[2]), std::abs(signedPneg), negTrack.tpcSignal() * 50 / calibrationFactorNeg->at(i), negTrack.eta());
@@ -1772,6 +1866,8 @@ struct DedxPidAnalysis {
17721866
registryDeDx.fill(HIST("heta_vs_NclPID_TPC_After_ElectronsGamma"), negTrack.eta(), negTrack.tpcNClsPID());
17731867
registryDeDx.fill(HIST("hp_vs_NclPID_TPC_After_ElectronsGamma"), posTrack.p(), posTrack.tpcNClsPID());
17741868
registryDeDx.fill(HIST("hp_vs_NclPID_TPC_After_ElectronsGamma"), negTrack.p(), negTrack.tpcNClsPID());
1869+
registryDeDx.fill(HIST("hMassGamma"), v0.mGamma());
1870+
registryDeDx.fill(HIST("hArmenterosGamma"), v0.alpha(), v0.qtarm());
17751871
for (int i = 0; i < EtaIntervals; ++i) {
17761872
if (negTrack.eta() > EtaCut[i] && negTrack.eta() < EtaCut[i + 1]) {
17771873
registryDeDx.fill(HIST(DedxvsMomentumNeg[3]), std::abs(signedPneg), negTrack.tpcSignal() * 50 / calibrationFactorNeg->at(i), negTrack.eta());

0 commit comments

Comments
 (0)