Skip to content

Commit 148b531

Browse files
authored
[PWGLF] Sixteen plots and a new cut were added (#11758)
1 parent a00927f commit 148b531

File tree

1 file changed

+128
-1
lines changed

1 file changed

+128
-1
lines changed

PWGMM/UE/Tasks/dedxAnalysis.cxx

Lines changed: 128 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ struct DedxAnalysis {
6464
float invMassCutGamma = 0.0015;
6565
float magField = 1;
6666
float pTcut = 2.0;
67+
float nclCut = 120.0;
6768

6869
// Configurable Parameters
6970
// Tracks cuts
@@ -99,11 +100,15 @@ struct DedxAnalysis {
99100
"Minimum Mass Gamma"};
100101
Configurable<float> maxMassGamma{"maxMassGamma", 0.002022f,
101102
"Maximum Mass Gamma"};
102-
Configurable<bool> calibrationMode{"calibrationMode", true, "calibration mode"};
103+
Configurable<bool> calibrationMode{"calibrationMode", false, "calibration mode"};
103104
Configurable<bool> additionalCuts{"additionalCuts", true, "additional cuts"};
104105
// Histograms names
105106
static constexpr std::string_view kDedxvsMomentumPos[kParticlesType] = {"dEdx_vs_Momentum_all_Pos", "dEdx_vs_Momentum_Pi_v0_Pos", "dEdx_vs_Momentum_Pr_v0_Pos", "dEdx_vs_Momentum_El_v0_Pos"};
106107
static constexpr std::string_view kDedxvsMomentumNeg[kParticlesType] = {"dEdx_vs_Momentum_all_Neg", "dEdx_vs_Momentum_Pi_v0_Neg", "dEdx_vs_Momentum_Pr_v0_Neg", "dEdx_vs_Momentum_El_v0_Neg"};
108+
static constexpr std::string_view kNclDedxMomentumNegBefore[kEtaIntervals] = {"Ncl_vs_dEdx_vs_Momentum_Neg_1_Before", "Ncl_vs_dEdx_vs_Momentum_Neg_2_Before", "Ncl_vs_dEdx_vs_Momentum_Neg_3_Before", "Ncl_vs_dEdx_vs_Momentum_Neg_4_Before", "Ncl_vs_dEdx_vs_Momentum_Neg_5_Before", "Ncl_vs_dEdx_vs_Momentum_Neg_6_Before", "Ncl_vs_dEdx_vs_Momentum_Neg_7_Before", "Ncl_vs_dEdx_vs_Momentum_Neg_8_Before"};
109+
static constexpr std::string_view kNclDedxMomentumPosBefore[kEtaIntervals] = {"Ncl_vs_dEdx_vs_Momentum_Pos_1_Before", "Ncl_vs_dEdx_vs_Momentum_Pos_2_Before", "Ncl_vs_dEdx_vs_Momentum_Pos_3_Before", "Ncl_vs_dEdx_vs_Momentum_Pos_4_Before", "Ncl_vs_dEdx_vs_Momentum_Pos_5_Before", "Ncl_vs_dEdx_vs_Momentum_Pos_6_Before", "Ncl_vs_dEdx_vs_Momentum_Pos_7_Before", "Ncl_vs_dEdx_vs_Momentum_Pos_8_Before"};
110+
static constexpr std::string_view kNclDedxMomentumNegAfter[kEtaIntervals] = {"Ncl_vs_dEdx_vs_Momentum_Neg_1_After", "Ncl_vs_dEdx_vs_Momentum_Neg_2_After", "Ncl_vs_dEdx_vs_Momentum_Neg_3_After", "Ncl_vs_dEdx_vs_Momentum_Neg_4_After", "Ncl_vs_dEdx_vs_Momentum_Neg_5_After", "Ncl_vs_dEdx_vs_Momentum_Neg_6_After", "Ncl_vs_dEdx_vs_Momentum_Neg_7_After", "Ncl_vs_dEdx_vs_Momentum_Neg_8_After"};
111+
static constexpr std::string_view kNclDedxMomentumPosAfter[kEtaIntervals] = {"Ncl_vs_dEdx_vs_Momentum_Pos_1_After", "Ncl_vs_dEdx_vs_Momentum_Pos_2_After", "Ncl_vs_dEdx_vs_Momentum_Pos_3_After", "Ncl_vs_dEdx_vs_Momentum_Pos_4_After", "Ncl_vs_dEdx_vs_Momentum_Pos_5_After", "Ncl_vs_dEdx_vs_Momentum_Pos_6_After", "Ncl_vs_dEdx_vs_Momentum_Pos_7_After", "Ncl_vs_dEdx_vs_Momentum_Pos_8_After"};
107112
static constexpr double EtaCut[kEtaIntervals + 1] = {-0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8};
108113
Configurable<std::vector<float>> calibrationFactorNeg{"calibrationFactorNeg", {50.4011, 50.4764, 50.186, 49.2955, 48.8222, 49.4273, 49.9292, 50.0556}, "negative calibration factors"};
109114
Configurable<std::vector<float>> calibrationFactorPos{"calibrationFactorPos", {50.5157, 50.6359, 50.3198, 49.3345, 48.9197, 49.4931, 50.0188, 50.1406}, "positive calibration factors"};
@@ -223,6 +228,20 @@ struct DedxAnalysis {
223228
"hpt_vs_phi_Ncl_Before", "phi cut", HistType::kTH3F,
224229
{{ptAxis}, {100, 0.0, 0.4, "#varphi^{'}"}, {100, 0, 160, "N_{cl}"}});
225230

231+
// Ncl vs de/dx
232+
233+
for (int i = 0; i < kEtaIntervals; ++i) {
234+
registryDeDx.add(kNclDedxMomentumPosBefore[i].data(), "Ncl vs dE/dx vs Momentum Positive before", HistType::kTH3F,
235+
{{100, 0, 160, "N_{cl}"}, {dedxAxis}, {pAxis}});
236+
registryDeDx.add(kNclDedxMomentumNegBefore[i].data(), "Ncl vs dE/dx vs Momentum Negative before", HistType::kTH3F,
237+
{{100, 0, 160, "N_{cl}"}, {dedxAxis}, {pAxis}});
238+
239+
registryDeDx.add(kNclDedxMomentumPosAfter[i].data(), "Ncl vs dE/dx vs Momentum Positive after", HistType::kTH3F,
240+
{{100, 0, 160, "N_{cl}"}, {dedxAxis}, {pAxis}});
241+
registryDeDx.add(kNclDedxMomentumNegAfter[i].data(), "Ncl vs dE/dx vs Momentum Negative after", HistType::kTH3F,
242+
{{100, 0, 160, "N_{cl}"}, {dedxAxis}, {pAxis}});
243+
}
244+
226245
// beta plot
227246
registryDeDx.add(
228247
"hbeta_vs_p_Neg", "beta", HistType::kTH2F,
@@ -405,7 +424,9 @@ struct DedxAnalysis {
405424
float pt = trk.pt();
406425
float phi = trk.phi();
407426
int charge = trk.sign();
427+
float eta = trk.eta();
408428
auto nTPCCl = trk.tpcNClsFindable() - trk.tpcNClsFindableMinusFound();
429+
float sigP = trk.sign() * trk.tpcInnerParam();
409430

410431
if (pt < pTcut)
411432
return true;
@@ -421,10 +442,116 @@ struct DedxAnalysis {
421442

422443
registryDeDx.fill(HIST("hpt_vs_phi_Ncl_Before"), pt, phi, nTPCCl);
423444

445+
// cut phi
424446
if (phi < fphiCutHigh.Eval(pt) && phi > fphiCutLow.Eval(pt))
425447
return false; // reject track
426448

449+
if (eta > EtaCut[0] && eta < EtaCut[1]) {
450+
if (sigP < 0) {
451+
registryDeDx.fill(HIST(kNclDedxMomentumNegBefore[0]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
452+
} else {
453+
registryDeDx.fill(HIST(kNclDedxMomentumPosBefore[0]), nTPCCl, trk.tpcSignal(), sigP);
454+
}
455+
} else if (eta > EtaCut[1] && eta < EtaCut[2]) {
456+
if (sigP < 0) {
457+
registryDeDx.fill(HIST(kNclDedxMomentumNegBefore[1]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
458+
} else {
459+
registryDeDx.fill(HIST(kNclDedxMomentumPosBefore[1]), nTPCCl, trk.tpcSignal(), sigP);
460+
}
461+
} else if (eta > EtaCut[2] && eta < EtaCut[3]) {
462+
if (sigP < 0) {
463+
registryDeDx.fill(HIST(kNclDedxMomentumNegBefore[2]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
464+
} else {
465+
registryDeDx.fill(HIST(kNclDedxMomentumPosBefore[2]), nTPCCl, trk.tpcSignal(), sigP);
466+
}
467+
} else if (eta > EtaCut[3] && eta < EtaCut[4]) {
468+
if (sigP < 0) {
469+
registryDeDx.fill(HIST(kNclDedxMomentumNegBefore[3]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
470+
} else {
471+
registryDeDx.fill(HIST(kNclDedxMomentumPosBefore[3]), nTPCCl, trk.tpcSignal(), sigP);
472+
}
473+
} else if (eta > EtaCut[4] && eta < EtaCut[5]) {
474+
if (sigP < 0) {
475+
registryDeDx.fill(HIST(kNclDedxMomentumNegBefore[4]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
476+
} else {
477+
registryDeDx.fill(HIST(kNclDedxMomentumPosBefore[4]), nTPCCl, trk.tpcSignal(), sigP);
478+
}
479+
} else if (eta > EtaCut[5] && eta < EtaCut[6]) {
480+
if (sigP < 0) {
481+
registryDeDx.fill(HIST(kNclDedxMomentumNegBefore[5]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
482+
} else {
483+
registryDeDx.fill(HIST(kNclDedxMomentumPosBefore[5]), nTPCCl, trk.tpcSignal(), sigP);
484+
}
485+
} else if (eta > EtaCut[6] && eta < EtaCut[7]) {
486+
if (sigP < 0) {
487+
registryDeDx.fill(HIST(kNclDedxMomentumNegBefore[6]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
488+
} else {
489+
registryDeDx.fill(HIST(kNclDedxMomentumPosBefore[6]), nTPCCl, trk.tpcSignal(), sigP);
490+
}
491+
} else if (eta > EtaCut[7] && eta < EtaCut[8]) {
492+
if (sigP < 0) {
493+
registryDeDx.fill(HIST(kNclDedxMomentumNegBefore[7]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
494+
} else {
495+
registryDeDx.fill(HIST(kNclDedxMomentumPosBefore[7]), nTPCCl, trk.tpcSignal(), sigP);
496+
}
497+
}
498+
499+
// cut Ncl
500+
if (nTPCCl < nclCut)
501+
return false;
502+
427503
registryDeDx.fill(HIST("hpt_vs_phi_Ncl_After"), pt, phi, nTPCCl);
504+
505+
if (eta > EtaCut[0] && eta < EtaCut[1]) {
506+
if (sigP < 0) {
507+
registryDeDx.fill(HIST(kNclDedxMomentumNegAfter[0]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
508+
} else {
509+
registryDeDx.fill(HIST(kNclDedxMomentumPosAfter[0]), nTPCCl, trk.tpcSignal(), sigP);
510+
}
511+
} else if (eta > EtaCut[1] && eta < EtaCut[2]) {
512+
if (sigP < 0) {
513+
registryDeDx.fill(HIST(kNclDedxMomentumNegAfter[1]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
514+
} else {
515+
registryDeDx.fill(HIST(kNclDedxMomentumPosAfter[1]), nTPCCl, trk.tpcSignal(), sigP);
516+
}
517+
} else if (eta > EtaCut[2] && eta < EtaCut[3]) {
518+
if (sigP < 0) {
519+
registryDeDx.fill(HIST(kNclDedxMomentumNegAfter[2]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
520+
} else {
521+
registryDeDx.fill(HIST(kNclDedxMomentumPosAfter[2]), nTPCCl, trk.tpcSignal(), sigP);
522+
}
523+
} else if (eta > EtaCut[3] && eta < EtaCut[4]) {
524+
if (sigP < 0) {
525+
registryDeDx.fill(HIST(kNclDedxMomentumNegAfter[3]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
526+
} else {
527+
registryDeDx.fill(HIST(kNclDedxMomentumPosAfter[3]), nTPCCl, trk.tpcSignal(), sigP);
528+
}
529+
} else if (eta > EtaCut[4] && eta < EtaCut[5]) {
530+
if (sigP < 0) {
531+
registryDeDx.fill(HIST(kNclDedxMomentumNegAfter[4]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
532+
} else {
533+
registryDeDx.fill(HIST(kNclDedxMomentumPosAfter[4]), nTPCCl, trk.tpcSignal(), sigP);
534+
}
535+
} else if (eta > EtaCut[5] && eta < EtaCut[6]) {
536+
if (sigP < 0) {
537+
registryDeDx.fill(HIST(kNclDedxMomentumNegAfter[5]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
538+
} else {
539+
registryDeDx.fill(HIST(kNclDedxMomentumPosAfter[5]), nTPCCl, trk.tpcSignal(), sigP);
540+
}
541+
} else if (eta > EtaCut[6] && eta < EtaCut[7]) {
542+
if (sigP < 0) {
543+
registryDeDx.fill(HIST(kNclDedxMomentumNegAfter[6]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
544+
} else {
545+
registryDeDx.fill(HIST(kNclDedxMomentumPosAfter[6]), nTPCCl, trk.tpcSignal(), sigP);
546+
}
547+
} else if (eta > EtaCut[7] && eta < EtaCut[8]) {
548+
if (sigP < 0) {
549+
registryDeDx.fill(HIST(kNclDedxMomentumNegAfter[7]), nTPCCl, trk.tpcSignal(), std::abs(sigP));
550+
} else {
551+
registryDeDx.fill(HIST(kNclDedxMomentumPosAfter[7]), nTPCCl, trk.tpcSignal(), sigP);
552+
}
553+
}
554+
428555
return true;
429556
}
430557

0 commit comments

Comments
 (0)