Skip to content

Commit 224139f

Browse files
authored
[PWGCF] fix multiplicity calcultion funcation and include tpcsignal plot (#16358)
1 parent e51e2ac commit 224139f

1 file changed

Lines changed: 106 additions & 66 deletions

File tree

PWGCF/EbyEFluctuations/Tasks/FactorialMomentsTask.cxx

Lines changed: 106 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -53,24 +53,29 @@ using namespace o2;
5353
using namespace o2::framework;
5454
using namespace o2::framework::expressions;
5555
TH1D* tmpFqErr[6][5][52];
56-
56+
float collisionZ = 0.f;
5757
struct FactorialMomentsTask {
5858
Configurable<bool> useITS{"useITS", false, "Select tracks with ITS"};
5959
Configurable<bool> useTPC{"useTPC", false, "Select tracks with TPC"};
6060
Configurable<bool> useGlobal{"useGlobal", true, "Select global tracks"};
6161
Configurable<bool> applyCheckPtForRec{"applyCheckPtForRec", false, "Apply checkpT for reconstructed tracks"};
6262
Configurable<bool> applyCheckPtForMC{"applyCheckPtForMC", true, "Apply checkpT for MC-generated tracks"};
63+
Configurable<bool> cfgEvSelkNoITSROFrameBorder{"cfgEvSelkNoITSROFrameBorder", true, "ITSROFrame border event selection cut"};
64+
Configurable<bool> cfgEvSelkNoTimeFrameBorder{"cfgEvSelkNoTimeFrameBorder", true, "TimeFrame border event selection cut"};
6365
Configurable<float> centralEta{"centralEta", 0.9, "eta limit for tracks"};
6466
Configurable<int> numPt{"numPt", 5, "number of pT bins"};
6567
Configurable<float> ptMin{"ptMin", 0.2f, "lower pT cut"};
66-
Configurable<float> dcaXY{"dcaXY", 2.4f, "DCA xy cut"};
67-
Configurable<float> dcaZ{"dcaZ", 2.0f, "DCA z cut"};
68+
Configurable<float> dcaXY{"dcaXY", 0.1f, "DCA xy cut"};
69+
Configurable<float> dcaZ{"dcaZ", 1.0f, "DCA z cut"};
70+
Configurable<float> cfgCutTpcChi2NCl{"cfgCutTpcChi2NCl", 2.5f, "Maximum TPCchi2NCl"};
71+
Configurable<float> cfgCutItsChi2NCl{"cfgCutItsChi2NCl", 40.0f, "Maximum ITSchi2NCl"};
6872
Configurable<float> mintPCCls{"mintPCCls", 70.0f, "minimum number of TPC clusters"};
6973
Configurable<std::vector<int>> centLimits{"centLimits", {0, 5}, "centrality min and max"};
7074
Configurable<std::vector<float>> vertexXYZ{"vertexXYZ", {0.3f, 0.4f, 10.0f}, "vertex cuts"};
7175
Configurable<std::vector<float>> ptCuts{"ptCuts", {0.2f, 2.0f}, "pT cuts"};
7276
Configurable<bool> isApplySameBunchPileup{"isApplySameBunchPileup", true, "Enable SameBunchPileup cut"};
7377
Configurable<bool> isApplyGoodZvtxFT0vsPV{"isApplyGoodZvtxFT0vsPV", true, "Enable GoodZvtxFT0vsPV cut"};
78+
Configurable<bool> cfgUseGoodITSLayerAllCut{"cfgUseGoodITSLayerAllCut", true, "Remove time interval with dead ITS zone"};
7479
Configurable<bool> isApplyVertexITSTPC{"isApplyVertexITSTPC", true, "Enable VertexITSTPC cut"};
7580
Configurable<bool> isApplyVertexTOFmatched{"isApplyVertexTOFmatched", true, "Enable VertexTOFmatched cut"};
7681
Configurable<bool> isApplyVertexTRDmatched{"isApplyVertexTRDmatched", true, "Enable VertexTRDmatched cut"};
@@ -81,14 +86,20 @@ struct FactorialMomentsTask {
8186
Configurable<bool> includeITSTracks{"includeITSTracks", false, "ITS Tracks"};
8287
Configurable<int> samplesize{"samplesize", 100, "Sample size"};
8388
Configurable<bool> useMC{"useMC", false, "Use MC information"};
89+
Configurable<bool> useGlobalTrack{"useGlobalTrack", true, "Require global track in filter"};
90+
Configurable<int> cfgITScluster{"cfgITScluster", 6, "Minimum Number of ITS cluster"};
91+
Configurable<int> cfgTPCcluster{"cfgTPCcluster", 80, "Minimum Number of TPC cluster"};
92+
Configurable<int> cfgTPCnCrossedRows{"cfgTPCnCrossedRows", 70, "Minimum Number of TPC crossed-rows"};
93+
Configurable<float> cfgTPCnCrossedRowsOverFindableCls{"cfgTPCnCrossedRowsOverFindableCls", 0.8, "Minimum ratio of crossed rows over findable clusters TPC"};
8494
Configurable<int> reduceOutput{"reduceOutput", 0, "Suppress info level output (0 = all output, 1 = per collision, 2 = none)"};
85-
Filter filterTracks = (nabs(aod::track::eta) < centralEta) && (aod::track::pt >= ptMin) && (nabs(aod::track::dcaXY) < dcaXY) && (nabs(aod::track::dcaZ) < dcaZ);
95+
Filter filterTracks = (nabs(aod::track::eta) < centralEta) && (aod::track::pt >= ptMin);
8696
Filter filterCollisions = (nabs(aod::collision::posZ) < vertexXYZ.value[2]) && (nabs(aod::collision::posX) < vertexXYZ.value[0]) && (nabs(aod::collision::posY) < vertexXYZ.value[1]);
8797
Service<o2::framework::O2DatabasePDG> pdg;
8898
// Histograms
8999
HistogramRegistry histos1{
90100
"histos1",
91101
{
102+
{"h3DVtxZetaPhi", "VtxZ vs #eta vs #phi;VtxZ;#eta;#phi", {HistType::kTH3F, {{20, -10, 10}, {16, -0.8, 0.8}, {100, 0., o2::constants::math::TwoPI}}}},
92103
{"hRecoPtBefore", "Reco pT before cuts;pt (GeV/c);Counts", {HistType::kTH1F, {{1000, 0.0, 20.0}}}},
93104
{"hGenPtBefore", "Gen pT before cuts;pt (GeV/c);Counts", {HistType::kTH1F, {{1000, 0.0, 20.0}}}},
94105
{"hRecoPtAfter", "Reco pT after cuts;pt (GeV/c);Counts", {HistType::kTH1F, {{1000, 0.0, 20.0}}}},
@@ -118,6 +129,8 @@ struct FactorialMomentsTask {
118129
HistogramRegistry histos{
119130
"histos",
120131
{
132+
133+
{"mtpcsignalvspt", "tpcsignal vs #pt", {HistType::kTH2F, {{900, 0, 10}, {1400, 0, 1400}}}},
121134
{"mChargeBefore", "Charge before MC cuts;charge;entries", {HistType::kTH1F, {{7, -3.5, 3.5}}}},
122135
{"mChargeAfter", "Charge after MC cuts;charge;entries", {HistType::kTH1F, {{7, -3.5, 3.5}}}},
123136
{"mCollID", "collisionID", {HistType::kTH1I, {{1000, -10000, 10000}}}},
@@ -153,6 +166,10 @@ struct FactorialMomentsTask {
153166
},
154167
OutputObjHandlingPolicy::AnalysisObject,
155168
true};
169+
const double dcaxyMaxTrackPar0 = 0.0105;
170+
const double dcaxyMaxTrackPar1 = 0.035;
171+
const double dcaxyMaxTrackPar2 = 1.1;
172+
const double dcazMaxTrack = 2.0;
156173
static const int nBins = 52;
157174
double kMinCharge = 1e-6;
158175
static const int nfqOrder = 6;
@@ -167,6 +184,7 @@ struct FactorialMomentsTask {
167184
std::array<std::array<std::array<double, nBins>, 5>, 6> errorFq = {{{{{0, 0, 0, 0, 0}}}}};
168185
std::vector<std::shared_ptr<TH2>> mHistArrReset;
169186
std::vector<std::shared_ptr<TH1>> mHistArrQA;
187+
std::vector<std::shared_ptr<TH3>> mHistArrEff;
170188
std::vector<std::shared_ptr<TH1>> mFqBinFinal;
171189
std::vector<std::shared_ptr<TH1>> mBinConFinal;
172190
std::vector<std::shared_ptr<TH1>> mFqBinFinalSampled;
@@ -185,14 +203,15 @@ struct FactorialMomentsTask {
185203
}
186204
}
187205
AxisSpec axisPt[5] = {{100, -0.01, 3 * ptCuts.value[1], ""}, {100, -0.01, 3 * ptCuts.value[3], ""}, {100, -0.01, 3 * ptCuts.value[5], ""}, {100, -0.01, 3 * ptCuts.value[7], ""}, {100, -0.01, 3 * ptCuts.value[9], ""}}; // pT axis
188-
auto mEventSelected = std::get<std::shared_ptr<TH1>>(histos.add("mEventSelected", "eventSelected", HistType::kTH1D, {{8, 0.5, 8.5}}));
189-
mEventSelected->GetXaxis()->SetBinLabel(1, "all");
190-
mEventSelected->GetXaxis()->SetBinLabel(2, "sel8");
191-
mEventSelected->GetXaxis()->SetBinLabel(3, "sameBunchPileup");
192-
mEventSelected->GetXaxis()->SetBinLabel(4, "goodZvtxFT0vsPV");
193-
mEventSelected->GetXaxis()->SetBinLabel(5, "vertexITSTPC");
194-
mEventSelected->GetXaxis()->SetBinLabel(6, "centrality");
195-
mEventSelected->GetXaxis()->SetBinLabel(7, "final");
206+
auto mEventSelected = std::get<std::shared_ptr<TH1>>(histos.add("mEventSelected", "eventSelected", HistType::kTH1D, {{7, 0.5, 8.5}}));
207+
mEventSelected->GetXaxis()->SetBinLabel(0, "all");
208+
mEventSelected->GetXaxis()->SetBinLabel(1, "sel8");
209+
mEventSelected->GetXaxis()->SetBinLabel(2, "kNoITSROFrameBorder");
210+
mEventSelected->GetXaxis()->SetBinLabel(3, "kNoTimeFrameBorder");
211+
mEventSelected->GetXaxis()->SetBinLabel(4, "sameBunchPileup");
212+
mEventSelected->GetXaxis()->SetBinLabel(5, "kIsGoodITSLayersAll");
213+
mEventSelected->GetXaxis()->SetBinLabel(6, "kIsGoodZvtxFT0vsPV");
214+
mEventSelected->GetXaxis()->SetBinLabel(7, "FTOC");
196215
auto mTrackSelected = std::get<std::shared_ptr<TH1>>(histos.add(
197216
"mTrackSelected", "Track Selection Steps", HistType::kTH1D, {{5, 0.5, 5.5}}));
198217
mTrackSelected->GetXaxis()->SetBinLabel(1, "all");
@@ -207,6 +226,7 @@ struct FactorialMomentsTask {
207226
binningM[iM] = 2 * (iM + 2);
208227
}
209228
for (int iPt = 0; iPt < numPt; ++iPt) {
229+
mHistArrEff.push_back(std::get<std::shared_ptr<TH3>>(histos.add(Form("bin%i/m3DVtxZetaPhi", iPt + 1), Form("#eta #phi #vtxz for bin %.2f-%.2f;vz;#eta;#phi", ptCuts.value[2 * iPt], ptCuts.value[2 * iPt + 1]), HistType::kTH3F, {{20, -10, 10}, {16, -0.8, +0.8}, {100, 0., o2::constants::math::TwoPI}})));
210230
mHistArrQA.push_back(std::get<std::shared_ptr<TH1>>(histos.add(Form("bin%i/mEta", iPt + 1), Form("#eta for bin %.2f-%.2f;#eta", ptCuts.value[2 * iPt], ptCuts.value[2 * iPt + 1]), HistType::kTH1F, {{1000, -2, 2}})));
211231
mHistArrQA.push_back(std::get<std::shared_ptr<TH1>>(histos.add(Form("bin%i/mPt", iPt + 1), Form("pT for bin %.2f-%.2f;pT", ptCuts.value[2 * iPt], ptCuts.value[2 * iPt + 1]), HistType::kTH1F, {axisPt[iPt]})));
212232
mHistArrQA.push_back(std::get<std::shared_ptr<TH1>>(histos.add(Form("bin%i/mPhi", iPt + 1), Form("#phi for bin %.2f-%.2f;#phi", ptCuts.value[2 * iPt], ptCuts.value[2 * iPt + 1]), HistType::kTH1F, {{1000, 0, o2::constants::math::TwoPI}})));
@@ -236,24 +256,22 @@ struct FactorialMomentsTask {
236256
template <typename T>
237257
void checkpT(const T& track)
238258
{
239-
for (int iPt = 0; iPt < numPt; ++iPt) {
259+
for (auto iPt = 0; iPt < numPt; ++iPt) {
240260
if (track.pt() > ptCuts.value[2 * iPt] && track.pt() < ptCuts.value[2 * iPt + 1]) {
241261
float iphi = track.phi();
242262
iphi = gRandom->Gaus(iphi, o2::constants::math::TwoPI);
243-
iphi = RecoDecay::constrainAngle(iphi);
244-
263+
iphi = RecoDecay::constrainAngle(iphi, 0.);
264+
mHistArrEff[iPt]->Fill(collisionZ, track.eta(), iphi);
245265
mHistArrQA[iPt * 4]->Fill(track.eta());
246266
mHistArrQA[iPt * 4 + 1]->Fill(track.pt());
247-
mHistArrQA[iPt * 4 + 2]->Fill(track.phi());
267+
mHistArrQA[iPt * 4 + 2]->Fill(iphi);
248268
countTracks[iPt]++;
249-
250-
for (int iM = 0; iM < nBins; ++iM) {
251-
mHistArrReset[iPt * nBins + iM]->Fill(track.eta(), track.phi());
269+
for (auto iM = 0; iM < nBins; ++iM) {
270+
mHistArrReset[iPt * nBins + iM]->Fill(track.eta(), iphi);
252271
}
253272
}
254273
}
255274
}
256-
257275
void calculateMoments(std::vector<std::shared_ptr<TH2>> hist)
258276
{
259277
double binContent = 0;
@@ -319,21 +337,36 @@ struct FactorialMomentsTask {
319337
void processRun3(soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs>>::iterator const& coll, TracksFMs const& tracks)
320338
{
321339
// selection of events
340+
histos.fill(HIST("mEventSelected"), 0);
322341
if (!coll.sel8()) {
323342
return;
324343
}
344+
if (cfgEvSelkNoITSROFrameBorder && !(coll.selection_bit(o2::aod::evsel::kNoITSROFrameBorder))) {
345+
return;
346+
}
347+
348+
histos.fill(HIST("mEventSelected"), 2);
349+
if (cfgEvSelkNoTimeFrameBorder && !(coll.selection_bit(o2::aod::evsel::kNoTimeFrameBorder))) {
350+
return;
351+
}
352+
histos.fill(HIST("mEventSelected"), 3);
325353
if (isApplySameBunchPileup && !coll.selection_bit(o2::aod::evsel::kNoSameBunchPileup)) {
326354
return;
327355
}
328-
if (isApplyGoodZvtxFT0vsPV && !coll.selection_bit(o2::aod::evsel::kIsGoodZvtxFT0vsPV)) {
356+
histos.fill(HIST("mEventSelected"), 4);
357+
if (cfgUseGoodITSLayerAllCut && !(coll.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll))) {
329358
return;
330359
}
331-
if (isApplyVertexITSTPC && !coll.selection_bit(o2::aod::evsel::kIsVertexITSTPC)) {
360+
histos.fill(HIST("mEventSelected"), 5);
361+
if (isApplyGoodZvtxFT0vsPV && !coll.selection_bit(o2::aod::evsel::kIsGoodZvtxFT0vsPV)) {
332362
return;
333363
}
364+
histos.fill(HIST("mEventSelected"), 6);
334365
if (coll.centFT0C() < centLimits.value[0] || coll.centFT0C() > centLimits.value[1]) {
335366
return;
336367
}
368+
collisionZ = coll.posZ();
369+
histos.fill(HIST("mEventSelected"), 7);
337370
histos.fill(HIST("mVertexX"), coll.posX());
338371
histos.fill(HIST("mVertexY"), coll.posY());
339372
histos.fill(HIST("mVertexZ"), coll.posZ());
@@ -354,29 +387,32 @@ struct FactorialMomentsTask {
354387
continue;
355388
if (useGlobal && !track.isGlobalTrack())
356389
continue;
357-
histos.fill(HIST("mCollID"), track.collisionId());
358-
histos.fill(HIST("mEta"), track.eta());
359-
histos.fill(HIST("mPt"), track.pt());
360-
histos.fill(HIST("mPhi"), track.phi());
361-
histos.fill(HIST("mNFindableClsTPC"), track.tpcNClsFindable());
362-
histos.fill(HIST("mNClsTPC"), track.tpcNClsFound());
363-
histos.fill(HIST("mNClsITS"), track.itsNCls());
364-
histos.fill(HIST("mChi2TPC"), track.tpcChi2NCl());
365-
histos.fill(HIST("mChi2ITS"), track.itsChi2NCl());
366-
histos.fill(HIST("mChi2TRD"), track.trdChi2());
367-
histos.fill(HIST("mDCAxy"), track.dcaXY());
368-
histos.fill(HIST("mDCAx"), track.dcaZ());
369-
histos.fill(HIST("mDCAxyPt"), track.pt(), track.dcaXY());
370-
histos.fill(HIST("mDCAzPt"), track.pt(), track.dcaZ());
371-
histos.fill(HIST("mNSharedClsTPC"), track.tpcNClsShared());
372-
histos.fill(HIST("mCrossedRowsTPC"), track.tpcNClsCrossedRows());
373-
histos.fill(HIST("mNFinClsminusCRows"), track.tpcNClsFindableMinusCrossedRows());
374-
histos.fill(HIST("mNFractionShClsTPC"), track.tpcFractionSharedCls());
375-
histos.fill(HIST("mSharedClsvsPt"), track.pt(), track.tpcNClsShared());
376-
histos.fill(HIST("mSharedClsProbvsPt"), track.pt(), track.tpcFractionSharedCls() / track.tpcNClsCrossedRows());
377-
checkpT(track);
378-
}
379390

391+
if (std::fabs(track.dcaXY()) < (dcaxyMaxTrackPar0 + dcaxyMaxTrackPar1 / std::pow(track.pt(), dcaxyMaxTrackPar2))) {
392+
histos.fill(HIST("mCollID"), track.collisionId());
393+
histos.fill(HIST("mEta"), track.eta());
394+
histos.fill(HIST("mPt"), track.pt());
395+
histos.fill(HIST("mPhi"), track.phi());
396+
histos.fill(HIST("mNFindableClsTPC"), track.tpcNClsFindable());
397+
histos.fill(HIST("mNClsTPC"), track.tpcNClsFound());
398+
histos.fill(HIST("mNClsITS"), track.itsNCls());
399+
histos.fill(HIST("mChi2TPC"), track.tpcChi2NCl());
400+
histos.fill(HIST("mChi2ITS"), track.itsChi2NCl());
401+
histos.fill(HIST("mChi2TRD"), track.trdChi2());
402+
histos.fill(HIST("mDCAxy"), track.dcaXY());
403+
histos.fill(HIST("mtpcsignalvspt"), track.pt(), track.tpcSignal());
404+
histos.fill(HIST("mDCAxyPt"), track.pt(), track.dcaXY());
405+
histos.fill(HIST("mDCAzPt"), track.pt(), track.dcaZ());
406+
histos.fill(HIST("mDCAzPt"), track.pt(), track.dcaZ());
407+
histos.fill(HIST("mNSharedClsTPC"), track.tpcNClsShared());
408+
histos.fill(HIST("mCrossedRowsTPC"), track.tpcNClsCrossedRows());
409+
histos.fill(HIST("mNFinClsminusCRows"), track.tpcNClsFindableMinusCrossedRows());
410+
histos.fill(HIST("mNFractionShClsTPC"), track.tpcFractionSharedCls());
411+
histos.fill(HIST("mSharedClsvsPt"), track.pt(), track.tpcNClsShared());
412+
histos.fill(HIST("mSharedClsProbvsPt"), track.pt(), track.tpcFractionSharedCls() / track.tpcNClsCrossedRows());
413+
checkpT(track);
414+
}
415+
}
380416
for (int iPt = 0; iPt < numPt; ++iPt) {
381417
if (countTracks[iPt] > 0) {
382418
mHistArrQA[iPt * 4 + 3]->Fill(countTracks[iPt]);
@@ -412,6 +448,7 @@ struct FactorialMomentsTask {
412448
if (coll.centFT0C() < centLimits.value[0] || coll.centFT0C() > centLimits.value[1]) {
413449
return;
414450
}
451+
415452
histos.fill(HIST("mEventSelected"), 5);
416453
histos.fill(HIST("mVertexX"), coll.posX());
417454
histos.fill(HIST("mVertexY"), coll.posY());
@@ -430,28 +467,31 @@ struct FactorialMomentsTask {
430467
continue;
431468
if (useGlobal && !track.isGlobalTrack())
432469
continue;
433-
histos.fill(HIST("mCollID"), track.collisionId());
434-
histos.fill(HIST("mEta"), track.eta());
435-
histos.fill(HIST("mPt"), track.pt());
436-
histos.fill(HIST("mPhi"), track.phi());
437-
histos.fill(HIST("mNFindableClsTPC"), track.tpcNClsFindable());
438-
histos.fill(HIST("mNClsTPC"), track.tpcNClsFound());
439-
histos.fill(HIST("mNClsITS"), track.itsNCls());
440-
histos.fill(HIST("mChi2TPC"), track.tpcChi2NCl());
441-
histos.fill(HIST("mChi2ITS"), track.itsChi2NCl());
442-
histos.fill(HIST("mChi2TRD"), track.trdChi2());
443-
histos.fill(HIST("mDCAxy"), track.dcaXY());
444-
histos.fill(HIST("mDCAx"), track.dcaZ());
445-
histos.fill(HIST("mDCAxyPt"), track.pt(), track.dcaXY());
446-
histos.fill(HIST("mDCAzPt"), track.pt(), track.dcaZ());
447-
histos.fill(HIST("mNSharedClsTPC"), track.tpcNClsShared());
448-
histos.fill(HIST("mCrossedRowsTPC"), track.tpcNClsCrossedRows());
449-
histos.fill(HIST("mNFinClsminusCRows"), track.tpcNClsFindableMinusCrossedRows());
450-
histos.fill(HIST("mNFractionShClsTPC"), track.tpcFractionSharedCls());
451-
histos.fill(HIST("mSharedClsvsPt"), track.pt(), track.tpcNClsShared());
452-
histos.fill(HIST("mSharedClsProbvsPt"), track.pt(), track.tpcFractionSharedCls() / track.tpcNClsCrossedRows());
453-
if (applyCheckPtForRec && !applyCheckPtForMC) {
454-
checkpT(track);
470+
if (std::fabs(track.dcaXY()) < (dcaxyMaxTrackPar0 + dcaxyMaxTrackPar1 / std::pow(track.pt(), dcaxyMaxTrackPar2))) {
471+
histos.fill(HIST("mCollID"), track.collisionId());
472+
histos.fill(HIST("mEta"), track.eta());
473+
histos.fill(HIST("mPt"), track.pt());
474+
histos.fill(HIST("mPhi"), track.phi());
475+
histos.fill(HIST("mNFindableClsTPC"), track.tpcNClsFindable());
476+
histos.fill(HIST("mNClsTPC"), track.tpcNClsFound());
477+
histos.fill(HIST("mNClsITS"), track.itsNCls());
478+
histos.fill(HIST("mChi2TPC"), track.tpcChi2NCl());
479+
histos.fill(HIST("mChi2ITS"), track.itsChi2NCl());
480+
histos.fill(HIST("mChi2TRD"), track.trdChi2());
481+
histos.fill(HIST("mDCAxy"), track.dcaXY());
482+
histos.fill(HIST("mDCAx"), track.dcaZ());
483+
histos.fill(HIST("mtpcsignalvspt"), track.pt(), track.tpcSignal());
484+
histos.fill(HIST("mDCAxyPt"), track.pt(), track.dcaXY());
485+
histos.fill(HIST("mDCAzPt"), track.pt(), track.dcaZ());
486+
histos.fill(HIST("mNSharedClsTPC"), track.tpcNClsShared());
487+
histos.fill(HIST("mCrossedRowsTPC"), track.tpcNClsCrossedRows());
488+
histos.fill(HIST("mNFinClsminusCRows"), track.tpcNClsFindableMinusCrossedRows());
489+
histos.fill(HIST("mNFractionShClsTPC"), track.tpcFractionSharedCls());
490+
histos.fill(HIST("mSharedClsvsPt"), track.pt(), track.tpcNClsShared());
491+
histos.fill(HIST("mSharedClsProbvsPt"), track.pt(), track.tpcFractionSharedCls() / track.tpcNClsCrossedRows());
492+
if (applyCheckPtForRec && !applyCheckPtForMC) {
493+
checkpT(track);
494+
}
455495
}
456496
}
457497
auto mcParts = mcParticles.sliceBy(perMcCollision, coll.mcCollision().globalIndex());

0 commit comments

Comments
 (0)