@@ -34,11 +34,8 @@ using namespace o2::framework;
3434using namespace constants ::physics;
3535
3636using PIDTracks = soa::Join<
37- aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::pidTOFbeta,
38- aod::pidTOFmass, aod::TrackSelection, aod::TrackSelectionExtension,
39- aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr, aod::pidTPCFullDe,
40- aod::pidTPCFullTr, aod::pidTPCFullHe, aod::pidTOFFullPi, aod::pidTOFFullKa,
41- aod::pidTOFFullPr, aod::pidTOFFullDe, aod::pidTOFFullTr, aod::pidTOFFullHe, aod::pidTOFFullEl>;
37+ aod::Tracks, aod::TracksExtra, aod::TrackSelectionExtension,
38+ aod::pidTOFFullPi, aod::pidTOFFullPr, aod::pidTOFFullEl>;
4239
4340using SelectedCollisions = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs>;
4441
@@ -87,9 +84,11 @@ struct DedxAnalysis {
8784 Configurable<bool > eventSelection{" eventSelection" , true , " event selection" };
8885 Configurable<bool > calibrationMode{" calibrationMode" , false , " calibration mode" };
8986 // Histograms names
90- static constexpr std::string_view kDedxvsMomentum [4 ] = {" dEdx_vs_Momentum_all" , " dEdx_vs_Momentum_Pi_v0" , " dEdx_vs_Momentum_Pr_v0" , " dEdx_vs_Momentum_El_v0" };
87+ static constexpr std::string_view kDedxvsMomentumPos [4 ] = {" dEdx_vs_Momentum_all_Pos" , " dEdx_vs_Momentum_Pi_v0_Pos" , " dEdx_vs_Momentum_Pr_v0_Pos" , " dEdx_vs_Momentum_El_v0_Pos" };
88+ static constexpr std::string_view kDedxvsMomentumNeg [4 ] = {" dEdx_vs_Momentum_all_Neg" , " dEdx_vs_Momentum_Pi_v0_Neg" , " dEdx_vs_Momentum_Pr_v0_Neg" , " dEdx_vs_Momentum_El_v0_Neg" };
9189 static constexpr double EtaCut[9 ] = {-0.8 , -0.6 , -0.4 , -0.2 , 0.0 , 0.2 , 0.4 , 0.6 , 0.8 };
92- static constexpr double Correction[8 ] = {56.0452 , 56.632 , 57.2627 , 57.8265 , 57.8403 , 57.5441 , 57.2386 , 56.7532 };
90+ static constexpr double Correction[8 ] = {54.5281 , 54.6548 , 54.6513 , 54.6781 , 54.6167 , 54.7384 , 55.0047 , 54.9592 };
91+ ConfigurableAxis binP{" binP" , {VARIABLE_WIDTH, 0.1 , 0.12 , 0.14 , 0.16 , 0.18 , 0.2 , 0.25 , 0.3 , 0.35 , 0.4 , 0.45 , 0.5 , 0.55 , 0.6 , 0.65 , 0.7 , 0.75 , 0.8 , 0.85 , 0.9 , 0.95 , 1.0 , 1.1 , 1.2 , 1.3 , 1.4 , 1.5 , 1.6 , 1.7 , 1.8 , 1.9 , 2.0 , 2.1 , 2.2 , 2.3 , 2.4 , 2.5 , 2.6 , 2.7 , 2.8 , 2.9 , 3.0 , 3.2 , 3.4 , 3.6 , 3.8 , 4.0 , 4.5 , 5.0 , 5.5 , 6.0 , 6.5 , 7.0 , 8.0 , 9.0 , 10.0 , 11.0 , 12.0 , 13.0 , 14.0 , 15.0 , 16.0 , 18.0 , 20.0 }, " " };
9392
9493 void init (InitContext const &)
9594 {
@@ -103,6 +102,8 @@ struct DedxAnalysis {
103102 {{100 , 0.0 , 6.4 , " #phi" }, {100 , 0.0 , 600.0 , " dE/dx MIP (a. u.)" }});
104103
105104 } else {
105+ AxisSpec pAxis = {binP, " #it{p}/Z (GeV/c)" };
106+
106107 registryDeDx.add (
107108 " hdEdxMIP_vs_eta_calibrated" , " dE/dx" , HistType::kTH2F ,
108109 {{8 , -0.8 , 0.8 , " #eta" }, {10 , 30.0 , 70.0 , " dE/dx MIP (a. u.)" }});
@@ -112,8 +113,10 @@ struct DedxAnalysis {
112113
113114 // De/Dx for ch and v0 particles
114115 for (int i = 0 ; i < 4 ; ++i) {
115- registryDeDx.add (kDedxvsMomentum [i].data (), " dE/dx" , HistType::kTH3F ,
116- {{100 , -20 , 20 , " #it{p}/Z (GeV/c)" }, {100 , 0.0 , 600.0 , " dE/dx (a. u.)" }, {8 , -0.8 , 0.8 , " #eta" }});
116+ registryDeDx.add (kDedxvsMomentumPos [i].data (), " dE/dx" , HistType::kTH3F ,
117+ {{pAxis}, {100 , 0.0 , 600.0 , " dE/dx (a. u.)" }, {8 , -0.8 , 0.8 , " #eta" }});
118+ registryDeDx.add (kDedxvsMomentumNeg [i].data (), " dE/dx" , HistType::kTH3F ,
119+ {{pAxis}, {100 , 0.0 , 600.0 , " dE/dx (a. u.)" }, {8 , -0.8 , 0.8 , " #eta" }});
117120 }
118121 }
119122 // Event Counter
@@ -306,7 +309,7 @@ struct DedxAnalysis {
306309 float signedP = trk.sign () * trk.tpcInnerParam ();
307310
308311 // MIP for pions
309- if (trk.tpcInnerParam () >= 0.25 && trk.tpcInnerParam () <= 0.35 ) {
312+ if (trk.tpcInnerParam () >= 0.35 && trk.tpcInnerParam () <= 0.45 ) {
310313 if (calibrationMode) {
311314 registryDeDx.fill (HIST (" hdEdxMIP_vs_eta" ), trk.eta (), trk.tpcSignal ());
312315 registryDeDx.fill (HIST (" hdEdxMIP_vs_phi" ), trk.phi (), trk.tpcSignal ());
@@ -323,7 +326,11 @@ struct DedxAnalysis {
323326 if (!calibrationMode) {
324327 for (int i = 0 ; i < 8 ; ++i) {
325328 if (trk.eta () > EtaCut[i] && trk.eta () < EtaCut[i + 1 ]) {
326- registryDeDx.fill (HIST (kDedxvsMomentum [0 ]), signedP, trk.tpcSignal () * 50 / Correction[i], trk.eta ());
329+ if (signedP > 0 ) {
330+ registryDeDx.fill (HIST (kDedxvsMomentumPos [0 ]), signedP, trk.tpcSignal () * 50 / Correction[i], trk.eta ());
331+ } else {
332+ registryDeDx.fill (HIST (kDedxvsMomentumNeg [0 ]), std::abs (signedP), trk.tpcSignal () * 50 / Correction[i], trk.eta ());
333+ }
327334 }
328335 }
329336 }
@@ -378,11 +385,11 @@ struct DedxAnalysis {
378385 for (int i = 0 ; i < 8 ; ++i) {
379386 if (negTrack.eta () > EtaCut[i] && negTrack.eta () < EtaCut[i + 1 ]) {
380387
381- registryDeDx.fill (HIST (kDedxvsMomentum [1 ]), signedPneg, negTrack.tpcSignal () * 50 / Correction[i], negTrack.eta ());
388+ registryDeDx.fill (HIST (kDedxvsMomentumNeg [1 ]), std::abs ( signedPneg) , negTrack.tpcSignal () * 50 / Correction[i], negTrack.eta ());
382389 }
383390 if (posTrack.eta () > EtaCut[i] && posTrack.eta () < EtaCut[i + 1 ]) {
384391
385- registryDeDx.fill (HIST (kDedxvsMomentum [1 ]), signedPpos, posTrack.tpcSignal () * 50 / Correction[i], posTrack.eta ());
392+ registryDeDx.fill (HIST (kDedxvsMomentumPos [1 ]), signedPpos, posTrack.tpcSignal () * 50 / Correction[i], posTrack.eta ());
386393 }
387394 }
388395 }
@@ -402,11 +409,11 @@ struct DedxAnalysis {
402409 for (int i = 0 ; i < 8 ; ++i) {
403410 if (negTrack.eta () > EtaCut[i] && negTrack.eta () < EtaCut[i + 1 ]) {
404411
405- registryDeDx.fill (HIST (kDedxvsMomentum [1 ]), signedPneg, negTrack.tpcSignal () * 50 / Correction[i], negTrack.eta ());
412+ registryDeDx.fill (HIST (kDedxvsMomentumNeg [1 ]), std::abs ( signedPneg) , negTrack.tpcSignal () * 50 / Correction[i], negTrack.eta ());
406413 }
407414 if (posTrack.eta () > EtaCut[i] && posTrack.eta () < EtaCut[i + 1 ]) {
408415
409- registryDeDx.fill (HIST (kDedxvsMomentum [2 ]), signedPpos, posTrack.tpcSignal () * 50 / Correction[i], posTrack.eta ());
416+ registryDeDx.fill (HIST (kDedxvsMomentumPos [2 ]), signedPpos, posTrack.tpcSignal () * 50 / Correction[i], posTrack.eta ());
410417 }
411418 }
412419 }
@@ -426,11 +433,11 @@ struct DedxAnalysis {
426433 for (int i = 0 ; i < 8 ; ++i) {
427434 if (negTrack.eta () > EtaCut[i] && negTrack.eta () < EtaCut[i + 1 ]) {
428435
429- registryDeDx.fill (HIST (kDedxvsMomentum [2 ]), signedPneg, negTrack.tpcSignal () * 50 / Correction[i], negTrack.eta ());
436+ registryDeDx.fill (HIST (kDedxvsMomentumNeg [2 ]), std::abs ( signedPneg) , negTrack.tpcSignal () * 50 / Correction[i], negTrack.eta ());
430437 }
431438 if (posTrack.eta () > EtaCut[i] && posTrack.eta () < EtaCut[i + 1 ]) {
432439
433- registryDeDx.fill (HIST (kDedxvsMomentum [1 ]), signedPpos, posTrack.tpcSignal () * 50 / Correction[i], posTrack.eta ());
440+ registryDeDx.fill (HIST (kDedxvsMomentumPos [1 ]), signedPpos, posTrack.tpcSignal () * 50 / Correction[i], posTrack.eta ());
434441 }
435442 }
436443 }
@@ -450,11 +457,11 @@ struct DedxAnalysis {
450457 for (int i = 0 ; i < 8 ; ++i) {
451458 if (negTrack.eta () > EtaCut[i] && negTrack.eta () < EtaCut[i + 1 ]) {
452459
453- registryDeDx.fill (HIST (kDedxvsMomentum [3 ]), signedPneg, negTrack.tpcSignal () * 50 / Correction[i], negTrack.eta ());
460+ registryDeDx.fill (HIST (kDedxvsMomentumNeg [3 ]), std::abs ( signedPneg) , negTrack.tpcSignal () * 50 / Correction[i], negTrack.eta ());
454461 }
455462 if (posTrack.eta () > EtaCut[i] && posTrack.eta () < EtaCut[i + 1 ]) {
456463
457- registryDeDx.fill (HIST (kDedxvsMomentum [3 ]), signedPpos, posTrack.tpcSignal () * 50 / Correction[i], posTrack.eta ());
464+ registryDeDx.fill (HIST (kDedxvsMomentumPos [3 ]), signedPpos, posTrack.tpcSignal () * 50 / Correction[i], posTrack.eta ());
458465 }
459466 }
460467 }
0 commit comments