Skip to content

Commit 9687930

Browse files
author
Francesco Mazzaschi
committed
Fix track access + improvements to the final thn
1 parent 237c89d commit 9687930

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

PWGLF/TableProducer/Strangeness/sigmaHadCorr.cxx

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,13 @@ struct sigmaHadCorrTask {
102102
Configurable<float> cutNSigmaTPC{"cutNSigmaTPC", 3, "TPC nSigma cut for hadron track"};
103103
Configurable<float> cutNSigmaTOF{"cutNSigmaTOF", 3, "TOF nSigma cut for hadron track"};
104104
Configurable<bool> applyTOFPIDKinkDaughter{"applyTOFPIDKinkDaughter", false, "If true, apply TOF PID cut to the kink daughter track"};
105-
Configurable<bool> matchSigmaToPions{"matchSigmaToPions", false, "If true, pair Sigma with pions instead of hadrons"};
105+
Configurable<bool> doSigmaPion{"doSigmaPion", false, "If true, pair Sigma with pions instead of protons"};
106106

107107
Configurable<float> cutMaxKStar{"cutMaxKStar", 1.5, "Maximum k* for Sigma-hadron pairs (GeV/c)"};
108-
Configurable<bool> useRecalculatedSigmaMomentum{"useRecalculatedSigmaMomentum", false, "If true, compute k* using Sigma momentum recalculated from daughter kinematics"};
108+
Configurable<bool> useRecalculatedSigmaMomentum{"useRecalculatedSigmaMomentum", true, "If true, compute k* using Sigma momentum recalculated from daughter kinematics"};
109109

110110
Configurable<bool> fillOutputTree{"fillOutputTree", true, "If true, fill the output tree with Sigma-hadron candidates"};
111-
Configurable<bool> fillSparseInvMassKstar{"fillSparseInvMassKstar", false, "If true, fill THnSparse with invmass, k*, sigma charge, proton charge, sigma decay radius, cosPA, sigma pt"};
111+
Configurable<bool> fillSparseInvMassKstar{"fillSparseInvMassKstar", false, "If true, fill THn with invmass, k*, sigma charge, proton charge, sigma decay radius, cosPA, sigma pt"};
112112

113113
ConfigurableAxis CfgVtxBins{"CfgVtxBins", {10, -10, 10}, "Mixing bins - z-vertex"};
114114
ConfigurableAxis CfgMultBins{"CfgMultBins", {VARIABLE_WIDTH, 0.0, 40.0, 80.0, 500.0}, "Mixing bins - number of contributor"};
@@ -124,14 +124,17 @@ struct sigmaHadCorrTask {
124124
const AxisSpec ptAxis{100, -10, 10, "#it{p}_{T} (GeV/#it{c})"};
125125
const AxisSpec massResolutionAxis{100, -0.1, 0.1, "m_{rec} - m_{gen} (GeV/#it{c}^{2})"};
126126
const AxisSpec nSigmaHadAxis{100, -5, 5, "n#sigma_{had}"};
127-
const AxisSpec sigmaMassAxis{100, 1.1, 1.3, "m (GeV/#it{c}^{2})"};
127+
const AxisSpec sigmaMassAxis{50, 1.1, 1.3, "m (GeV/#it{c}^{2})"};
128128
const AxisSpec kStarAxis{200, 0.0, 2., "k* (GeV/#it{c})"};
129129
const AxisSpec ptHadAxis{100, 0.0, 10.0, "#it{p}_{T,had} (GeV/#it{c})"};
130130
const AxisSpec sigmaPtAxis{100, 0.0, 10.0, "#it{p}_{T,#Sigma} (GeV/#it{c})"};
131+
const AxisSpec sigmaPtAxisCoarse{20, 0.0, 10.0, "#it{p}_{T,#Sigma} (GeV/#it{c})"};
131132
const AxisSpec sigmaChargeAxis{2, -1.5, 1.5, "#Sigma charge"};
132133
const AxisSpec hadronChargeAxis{2, -1.5, 1.5, "Hadron charge"};
133134
const AxisSpec sigmaDecRadiusAxis{25, 14.5, 40.5, "#Sigma decay radius (cm)"};
135+
const AxisSpec sigmaDecRadiusAxisCoarse{5, 14.5, 40.5, "#Sigma decay radius (cm)"};
134136
const AxisSpec cosPAAxis{50, 0.9, 1.0, "cos(PA)"};
137+
const AxisSpec cosPAAxisCoarse{5, 0.9, 1.0, "cos(PA)"};
135138
const AxisSpec alphaAPAxis{100, -1.0, 1.0, "#alpha_{AP}"};
136139
const AxisSpec qtAPAxis{100, 0.0, 0.5, "q_{T,AP} (GeV/#it{c})"};
137140
const AxisSpec vertexZAxis{100, -15., 15., "vrtx_{Z} [cm]"};
@@ -148,19 +151,19 @@ struct sigmaHadCorrTask {
148151

149152
if (fillSparseInvMassKstar) {
150153
rSigmaHad.add("hSparseSigmaHad",
151-
"7D sparse: invmass, k*, sigma charge, hadron charge, sigma decay radius, cosPA, sigma pt",
152-
{HistType::kTHnSparseF, {sigmaMassAxis, kStarAxis, sigmaChargeAxis, hadronChargeAxis, sigmaDecRadiusAxis, cosPAAxis, sigmaPtAxis}});
154+
"7D THn: invmass, k*, sigma charge, hadron charge, sigma decay radius, cosPA, sigma pt",
155+
{HistType::kTHnF, {sigmaMassAxis, kStarAxis, sigmaChargeAxis, hadronChargeAxis, sigmaDecRadiusAxisCoarse, cosPAAxisCoarse, sigmaPtAxisCoarse}});
153156
rSigmaHad.add("hSparseSigmaHadMC",
154-
"8D sparse (MC): invmass, k*, sigma charge, hadron charge, sigma decay radius, cosPA, sigma pt, k* gen",
155-
{HistType::kTHnSparseF, {sigmaMassAxis, kStarAxis, sigmaChargeAxis, hadronChargeAxis, sigmaDecRadiusAxis, cosPAAxis, sigmaPtAxis, kStarAxis}});
157+
"8D THn (MC): invmass, k*, sigma charge, hadron charge, sigma decay radius, cosPA, sigma pt, k* gen",
158+
{HistType::kTHnF, {sigmaMassAxis, kStarAxis, sigmaChargeAxis, hadronChargeAxis, sigmaDecRadiusAxisCoarse, cosPAAxisCoarse, sigmaPtAxisCoarse, kStarAxis}});
156159
}
157160

158161
LOG(info) << "Sigma-hadron correlation task initialized";
159162
LOG(info) << "Process SE enabled: " << doprocessSameEvent;
160163
LOG(info) << "Process ME enabled: " << doprocessMixedEvent;
161164
LOG(info) << "Process SE MC enabled: " << doprocessSameEventMC;
162165
LOG(info) << "Process ME MC enabled: " << doprocessMixedEventMC;
163-
LOG(info) << "Pairing mode: " << (matchSigmaToPions ? "Sigma-pion" : "Sigma-hadron");
166+
LOG(info) << "Pairing mode: " << (doSigmaPion ? "Sigma-pion" : "Sigma-proton");
164167
}
165168

166169
float getAlphaAP(const std::array<float, 3>& momMother, const std::array<float, 3>& momKink)
@@ -254,7 +257,7 @@ struct sigmaHadCorrTask {
254257

255258
float getHadTrackMass()
256259
{
257-
return matchSigmaToPions ? o2::constants::physics::MassPionCharged : o2::constants::physics::MassProton;
260+
return doSigmaPion ? o2::constants::physics::MassPionCharged : o2::constants::physics::MassProton;
258261
}
259262

260263
float getSigmaMassForKstar()
@@ -265,13 +268,13 @@ struct sigmaHadCorrTask {
265268
template <typename Ttrack>
266269
float getTPCNSigmaHad(const Ttrack& track)
267270
{
268-
return matchSigmaToPions ? track.tpcNSigmaPi() : track.tpcNSigmaPr();
271+
return doSigmaPion ? track.tpcNSigmaPi() : track.tpcNSigmaPr();
269272
}
270273

271274
template <typename Ttrack>
272275
float getTOFNSigmaHad(const Ttrack& track)
273276
{
274-
return matchSigmaToPions ? track.tofNSigmaPi() : track.tofNSigmaPr();
277+
return doSigmaPion ? track.tofNSigmaPi() : track.tofNSigmaPr();
275278
}
276279

277280
TLorentzVector trackSum, PartOneCMS, PartTwoCMS, trackRelK;
@@ -471,10 +474,8 @@ struct sigmaHadCorrTask {
471474

472475
float sigmaPtUsed = std::hypot(sigmaMomForKstar[0], sigmaMomForKstar[1]);
473476

474-
rSigmaHad.fill(HIST("h2PtHadNSigmaTPC"), candidate.ptHad(), candidate.nSigmaTPCHad);
475477
rSigmaHad.fill(HIST("QA/h2TPCNSigmaHadVsPtHad"), candidate.ptHad(), candidate.nSigmaTPCHad);
476478
if (hadTrack.hasTOF()) {
477-
rSigmaHad.fill(HIST("h2PtHadNSigmaTOF"), candidate.ptHad(), candidate.nSigmaTOFHad);
478479
rSigmaHad.fill(HIST("QA/h2TOFNSigmaHadVsPtHad"), candidate.ptHad(), candidate.nSigmaTOFHad);
479480
}
480481
if (fillSparseInvMassKstar && !isMC) {
@@ -503,7 +504,7 @@ struct sigmaHadCorrTask {
503504
continue;
504505
}
505506
rEventSelection.fill(HIST("hVertexZRec"), collision.posZ());
506-
fillTreeAndHistograms(kinkCands_c, tracks_c, tracks_c, collision, false);
507+
fillTreeAndHistograms(kinkCands_c, tracks, tracks_c, collision, false);
507508
if (fillOutputTree) {
508509
// Fill output table
509510
for (const auto& candidate : sigmaHadCandidates) {
@@ -550,7 +551,7 @@ struct sigmaHadCorrTask {
550551
auto kinkCands_c1 = kinkCands.sliceBy(kinkCandsPerCollisionPreslice, collision1.globalIndex());
551552
auto tracks_c1 = tracks.sliceBy(tracksPerCollisionPreslice, collision1.globalIndex());
552553
auto tracks_c2 = tracks.sliceBy(tracksPerCollisionPreslice, collision2.globalIndex());
553-
fillTreeAndHistograms(kinkCands_c1, tracks_c1, tracks_c2, collision1, false);
554+
fillTreeAndHistograms(kinkCands_c1, tracks, tracks_c2, collision1, false);
554555

555556
if (fillOutputTree) {
556557
// Fill output table
@@ -589,7 +590,7 @@ struct sigmaHadCorrTask {
589590
continue;
590591
}
591592
rEventSelection.fill(HIST("hVertexZRec"), collision.posZ());
592-
fillTreeAndHistograms(kinkCands_c, tracks_c, tracks_c, collision, true);
593+
fillTreeAndHistograms(kinkCands_c, tracks, tracks_c, collision, true);
593594
for (const auto& candidate : sigmaHadCandidates) {
594595
auto mcLabelSigma = tracks.rawIteratorAt(candidate.sigmaID);
595596
auto mcLabelSigmaDau = tracks.rawIteratorAt(candidate.kinkDauID);
@@ -670,7 +671,7 @@ struct sigmaHadCorrTask {
670671
auto kinkCands_c1 = kinkCands.sliceBy(kinkCandsPerCollisionPreslice, collision1.globalIndex());
671672
auto tracks_c1 = tracks.sliceBy(tracksPerCollisionPreslice, collision1.globalIndex());
672673
auto tracks_c2 = tracks.sliceBy(tracksPerCollisionPreslice, collision2.globalIndex());
673-
fillTreeAndHistograms(kinkCands_c1, tracks_c1, tracks_c2, collision1, true);
674+
fillTreeAndHistograms(kinkCands_c1, tracks, tracks_c2, collision1, true);
674675

675676
for (const auto& candidate : sigmaHadCandidates) {
676677
auto mcLabelSigma = tracks.rawIteratorAt(candidate.sigmaID);

0 commit comments

Comments
 (0)