Skip to content

Commit 66b9272

Browse files
committed
New deuteron task
1 parent e0461a8 commit 66b9272

1 file changed

Lines changed: 32 additions & 54 deletions

File tree

‎DPG/Tasks/AOTTrack/PID/HMPID/hmpidDeuteron.cxx‎

Lines changed: 32 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,19 @@
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
1111

12+
// \brief Analysis task for the (anti-)deuteron absorption cross section using HMPID
13+
// \authors rocco.liotino@cern.ch
14+
1215
#include "tableHMPID.h"
1316

1417
#include <Framework/AnalysisTask.h>
15-
#include <Framework/Configurable.h>
1618
#include <Framework/HistogramRegistry.h>
17-
#include <Framework/HistogramSpec.h>
18-
#include <Framework/InitContext.h>
1919
#include <Framework/OutputObjHeader.h>
2020
#include <Framework/runDataProcessing.h>
2121

22+
#include <TMath.h>
2223
#include <TString.h>
2324

24-
#include <cmath>
25-
#include <cstdlib>
26-
2725
using namespace o2;
2826
using namespace o2::framework;
2927

@@ -44,16 +42,19 @@ struct HmpidDeuteron {
4442

4543
Configurable<float> cutMinMomGlobalTrack{"cutMinMomGlobalTrack", 1.5f, "minimum momentum of global track"};
4644

45+
Configurable<float> offsetX{"offsetX", 0.696712f, "Residuals offset - X direction"};
46+
Configurable<float> offsetY{"offsetY", 2.32849f, "Residuals offset - Y direction"};
47+
4748
// Configurables for plotting
4849
// Momentum
4950
Configurable<int> momNBins{"momNBins", 490, "Momentum bins"};
5051
Configurable<float> momMin{"momMin", 0.1f, "Momentum min"};
5152
Configurable<float> momMax{"momMax", 5.0f, "Momentum max"};
5253

5354
// DeltaR
54-
Configurable<int> deltaRNBins{"deltaRNBins", 300, "DeltaR bins"};
55+
Configurable<int> deltaRNBins{"deltaRNBins", 500, "DeltaR bins"};
5556
Configurable<float> deltaRMin{"deltaRMin", 0.0f, "DeltaR min"};
56-
Configurable<float> deltaRMax{"deltaRMax", 30.0f, "DeltaR max"};
57+
Configurable<float> deltaRMax{"deltaRMax", 50.0f, "DeltaR max"};
5758

5859
// nSigma TPC
5960
Configurable<int> nSigmaTPCNBins{"nSigmaTPCNBins", 20, "nSigmaTPC bins"};
@@ -123,11 +124,15 @@ struct HmpidDeuteron {
123124
registryDA.add("De_Pos_momentum", "De_Pos_momentum", HistType::kTH2F, {{100, 0.0, 5.0, "#it{p}_{vtx} (GeV/#it{c})"}, {100, 0.0, 5.0, "#it{p}_{hmpid} (GeV/#it{c})"}});
124125

125126
// nsigma plots
126-
registryDA.add("nSigmaTPC_vs_momHMPID_noCut_DePos", "nSigmaTPC_vs_momHMPID_noCut_DePos", HistType::kTH2F, {axisMom, axisNsigmaTPC});
127-
registryDA.add("nSigmaTOF_vs_momHMPID_noCut_DePos", "nSigmaTOF_vs_momHMPID_noCut_DePos", HistType::kTH2F, {axisMom, axisNsigmaTOF});
128127
registryDA.add("nSigmaTPC_vs_momHMPID_Cut_DePos", "nSigmaTPC_vs_momHMPID_Cut_DePos", HistType::kTH2F, {axisMom, axisNsigmaTPC});
129128
registryDA.add("nSigmaTOF_vs_momHMPID_Cut_DePos", "nSigmaTOF_vs_momHMPID_Cut_DePos", HistType::kTH2F, {axisMom, axisNsigmaTOF});
130129

130+
// check residuals distributions
131+
registryDA.add("residualsX_Vs_momentum_Neg_8cm", "residualsX_Vs_momentum_Neg_8cm", HistType::kTH2F, {axisMom, {400, -20.0f, 20.0f, "x_{mip} - x_{track} (cm)"}});
132+
registryDA.add("residualsY_Vs_momentum_Neg_8cm", "residualsY_Vs_momentum_Neg_8cm", HistType::kTH2F, {axisMom, {400, -20.0f, 20.0f, "y_{mip} - y_{track} (cm)"}});
133+
registryDA.add("residualsX_Vs_momentum_Pos_8cm", "residualsX_Vs_momentum_Pos_8cm", HistType::kTH2F, {axisMom, {400, -20.0f, 20.0f, "x_{mip} - x_{track} (cm)"}});
134+
registryDA.add("residualsY_Vs_momentum_Pos_8cm", "residualsY_Vs_momentum_Pos_8cm", HistType::kTH2F, {axisMom, {400, -20.0f, 20.0f, "y_{mip} - y_{track} (cm)"}});
135+
131136
// Deuteron Neg
132137
registryDA.add("incomingDe_Neg_8cm", "incomingDe_Neg_8cm", HistType::kTH1F, {axisMom});
133138
registryDA.add("incomingDe_Neg_4cm", "incomingDe_Neg_4cm", HistType::kTH1F, {axisMom});
@@ -144,18 +149,16 @@ struct HmpidDeuteron {
144149
registryDA.add("De_Neg_Q_4cm", "De_Neg_Q_4cm", HistType::kTH2F, {axisMom, axisCharge});
145150
registryDA.add("De_Neg_momentum", "De_Neg_momentum", HistType::kTH2F, {{100, 0.0, 5.0, "#it{p}_{vtx} (GeV/#it{c})"}, {100, 0.0, 5.0, "#it{p}_{hmpid} (GeV/#it{c})"}});
146151

147-
// first step of the analysis
148-
registryDA.add("residualsX_Vs_momentum", "residualsX_Vs_momentum", HistType::kTH2F, {axisMom, {400, -20.0f, 20.0f, "x_{mip} - x_{track} (cm)"}});
149-
registryDA.add("residualsY_Vs_momentum", "residualsY_Vs_momentum", HistType::kTH2F, {axisMom, {400, -20.0f, 20.0f, "y_{mip} - y_{track} (cm)"}});
152+
// check residuals distributions
153+
registryDA.add("residualsX_Vs_momentum_Neg_4cm", "residualsX_Vs_momentum_Neg_4cm", HistType::kTH2F, {axisMom, {400, -20.0f, 20.0f, "x_{mip} - x_{track} (cm)"}});
154+
registryDA.add("residualsY_Vs_momentum_Neg_4cm", "residualsY_Vs_momentum_Neg_4cm", HistType::kTH2F, {axisMom, {400, -20.0f, 20.0f, "y_{mip} - y_{track} (cm)"}});
155+
registryDA.add("residualsX_Vs_momentum_Pos_4cm", "residualsX_Vs_momentum_Pos_4cm", HistType::kTH2F, {axisMom, {400, -20.0f, 20.0f, "x_{mip} - x_{track} (cm)"}});
156+
registryDA.add("residualsY_Vs_momentum_Pos_4cm", "residualsY_Vs_momentum_Pos_4cm", HistType::kTH2F, {axisMom, {400, -20.0f, 20.0f, "y_{mip} - y_{track} (cm)"}});
150157

151158
// nsigma plots
152-
registryDA.add("nSigmaTPC_vs_momHMPID_noCut_DeNeg", "nSigmaTPC_vs_momHMPID_noCut_DeNeg", HistType::kTH2F, {axisMom, axisNsigmaTPC});
153-
registryDA.add("nSigmaTOF_vs_momHMPID_noCut_DeNeg", "nSigmaTOF_vs_momHMPID_noCut_DeNeg", HistType::kTH2F, {axisMom, axisNsigmaTOF});
154159
registryDA.add("nSigmaTPC_vs_momHMPID_Cut_DeNeg", "nSigmaTPC_vs_momHMPID_Cut_DeNeg", HistType::kTH2F, {axisMom, axisNsigmaTPC});
155160
registryDA.add("nSigmaTOF_vs_momHMPID_Cut_DeNeg", "nSigmaTOF_vs_momHMPID_Cut_DeNeg", HistType::kTH2F, {axisMom, axisNsigmaTOF});
156161

157-
registryDA.add("hmpidCkovvsMom", "hmpidCkovvsMom", kTH2F, {{500, 0, 10., "#it{p} (GeV/#it{c})"}, {800, 0., 0.8, "#theta_{Ch} (rad)"}});
158-
159162
// general plots
160163
registryDA.add("hEta", "hEta", kTH1F, {axisEta});
161164
registryDA.add("hPhi", "hPhi", kTH1F, {axisPhi});
@@ -164,10 +167,6 @@ struct HmpidDeuteron {
164167
registryDA.add("hMass", "hMass", kTH1F, {axisMass});
165168
registryDA.add("hMass_postDeuteron", "hMass_postDeuteron", kTH1F, {axisMass});
166169

167-
// quality check for step distributions
168-
registryDA.add("De_Pos_deltaR_precut", "De_Pos_deltaR_precut", HistType::kTH1F, {axisDeltaR});
169-
registryDA.add("De_Neg_deltaR_precut", "De_Neg_deltaR_precut", HistType::kTH1F, {axisDeltaR});
170-
171170
for (int iCh = 0; iCh < nCh; iCh++) {
172171
registryDA.add(Form("De_Pos_deltaR_%d", iCh), Form("De_Pos_deltaR_%d", iCh), HistType::kTH1F, {axisDeltaR});
173172
registryDA.add(Form("De_Neg_deltaR_%d", iCh), Form("De_Neg_deltaR_%d", iCh), HistType::kTH1F, {axisDeltaR});
@@ -206,7 +205,7 @@ struct HmpidDeuteron {
206205

207206
const float dx = hmpid.xMip() - hmpid.xTrack();
208207
const float dy = hmpid.yMip() - hmpid.yTrack();
209-
const float dr = std::hypot(dx, dy);
208+
const float dr = std::hypot(dx - offsetX, dy - offsetY);
210209

211210
const float mass =
212211
std::pow(nmean * momAbs * std::cos(hmpid.chAngle()), 2) -
@@ -258,31 +257,6 @@ struct HmpidDeuteron {
258257
registryDA.fill(HIST("hPhi_6"), hmpid.phiTrack());
259258
}
260259

261-
// -------------------------
262-
// precut deltaR
263-
// -------------------------
264-
if (isPos)
265-
registryDA.fill(HIST("De_Pos_deltaR_precut"), dr);
266-
if (isNeg)
267-
registryDA.fill(HIST("De_Neg_deltaR_precut"), dr);
268-
269-
// -------------------------
270-
// nsigma pre-cut
271-
// -------------------------
272-
if (isPos) {
273-
registryDA.fill(HIST("nSigmaTPC_vs_momHMPID_noCut_DePos"),
274-
momAbs, hmpid.tpcNSigmaDe());
275-
registryDA.fill(HIST("nSigmaTOF_vs_momHMPID_noCut_DePos"),
276-
momAbs, hmpid.tofNSigmaDe());
277-
}
278-
279-
if (isNeg) {
280-
registryDA.fill(HIST("nSigmaTPC_vs_momHMPID_noCut_DeNeg"),
281-
momAbs, hmpid.tpcNSigmaDe());
282-
registryDA.fill(HIST("nSigmaTOF_vs_momHMPID_noCut_DeNeg"),
283-
momAbs, hmpid.tofNSigmaDe());
284-
}
285-
286260
// -------------------------
287261
// deuteron candidate cuts - TPC
288262
// -------------------------
@@ -328,11 +302,6 @@ struct HmpidDeuteron {
328302
// DEUTERON CANDIDATES AFTER ALL CUTS
329303
// -------------------------
330304

331-
// -------------------------
332-
// Ckov angle vs momentum
333-
// -------------------------
334-
registryDA.fill(HIST("hmpidCkovvsMom"), momHmpid, hmpid.chAngle());
335-
336305
// -------------------------
337306
// deltaR per chamber (Pos/Neg)
338307
// -------------------------
@@ -391,6 +360,9 @@ struct HmpidDeuteron {
391360
registryDA.fill(HIST("De_Pos_Q_8cm"), momAbs, hmpid.chargeMip());
392361
registryDA.fill(HIST("De_Pos_deltaR_8cm"), dr);
393362
registryDA.fill(HIST("nSigmaTOF_vs_momHMPID_DePos_8cm"), momAbs, hmpid.tofNSigmaDe());
363+
364+
registryDA.fill(HIST("residualsX_Vs_momentum_Pos_8cm"), momAbs, dx);
365+
registryDA.fill(HIST("residualsY_Vs_momentum_Pos_8cm"), momAbs, dy);
394366
}
395367

396368
if (isNeg && chamber == abs8cm) {
@@ -400,8 +372,8 @@ struct HmpidDeuteron {
400372
registryDA.fill(HIST("De_Neg_deltaR_8cm"), dr);
401373
registryDA.fill(HIST("nSigmaTOF_vs_momHMPID_DeNeg_8cm"), momAbs, hmpid.tofNSigmaDe());
402374

403-
registryDA.fill(HIST("residualsX_Vs_momentum"), momAbs, dx);
404-
registryDA.fill(HIST("residualsY_Vs_momentum"), momAbs, dy);
375+
registryDA.fill(HIST("residualsX_Vs_momentum_Neg_8cm"), momAbs, dx);
376+
registryDA.fill(HIST("residualsY_Vs_momentum_Neg_8cm"), momAbs, dy);
405377
}
406378

407379
if (isPos && chamber == abs4cm) {
@@ -410,6 +382,9 @@ struct HmpidDeuteron {
410382
registryDA.fill(HIST("De_Pos_Q_4cm"), momAbs, hmpid.chargeMip());
411383
registryDA.fill(HIST("De_Pos_deltaR_4cm"), dr);
412384
registryDA.fill(HIST("nSigmaTOF_vs_momHMPID_DePos_4cm"), momAbs, hmpid.tofNSigmaDe());
385+
386+
registryDA.fill(HIST("residualsX_Vs_momentum_Pos_4cm"), momAbs, dx);
387+
registryDA.fill(HIST("residualsY_Vs_momentum_Pos_4cm"), momAbs, dy);
413388
}
414389

415390
if (isNeg && chamber == abs4cm) {
@@ -418,6 +393,9 @@ struct HmpidDeuteron {
418393
registryDA.fill(HIST("De_Neg_Q_4cm"), momAbs, hmpid.chargeMip());
419394
registryDA.fill(HIST("De_Neg_deltaR_4cm"), dr);
420395
registryDA.fill(HIST("nSigmaTOF_vs_momHMPID_DeNeg_4cm"), momAbs, hmpid.tofNSigmaDe());
396+
397+
registryDA.fill(HIST("residualsX_Vs_momentum_Neg_4cm"), momAbs, dx);
398+
registryDA.fill(HIST("residualsY_Vs_momentum_Neg_4cm"), momAbs, dy);
421399
}
422400
} // end of loop over hmpidTable
423401
} // end of process

0 commit comments

Comments
 (0)