Skip to content

Commit d6a4680

Browse files
RafRaf11alibuild
andauthored
[PWGLF] Update NucleiHistTask.cxx (#8691)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 4dd4c5a commit d6a4680

File tree

1 file changed

+95
-24
lines changed

1 file changed

+95
-24
lines changed

PWGLF/Tasks/Nuspex/NucleiHistTask.cxx

Lines changed: 95 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ using namespace o2;
3939
using namespace o2::framework;
4040
using namespace o2::framework::expressions;
4141

42+
std::vector<float> ptBinning = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.8, 3.2, 3.6, 4., 5., 6., 8., 10., 12., 14.};
43+
4244
struct NucleiHistTask {
4345

4446
// Data
@@ -473,6 +475,26 @@ struct NucleiHistTask {
473475
Configurable<bool> requireGoldenChi2{"requireGoldenChi2", false, "Enable the requirement of GoldenChi2"};
474476
Configurable<bool> event_selection_sel8{"event_selection_sel8", true, "Enable sel8 event selection"};
475477
Configurable<bool> event_selection_MC_sel8{"event_selection_MC_sel8", true, "Enable sel8 event selection in MC processing"};
478+
Configurable<std::vector<float>> Tpc_mSigma_shift_Pi{"Tpc_mSigma_shift_Pi", {.0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f}, "Array for shifting pi^{+} & pi^{-} nSigma values in TPC"};
479+
Configurable<std::vector<float>> Tpc_mSigma_shift_Pr{"Tpc_mSigma_shift_Pr", {.0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f}, "Array for shifting (anti)proton nSigma values in TPC"};
480+
Configurable<std::vector<float>> Tpc_mSigma_shift_De{"Tpc_mSigma_shift_De", {.0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f}, "Array for shifting (anti)deuteron nSigma values in TPC"};
481+
Configurable<std::vector<float>> Tpc_mSigma_shift_Tr{"Tpc_mSigma_shift_Tr", {.0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f}, "Array for shifting (anti)triton nSigma values in TPC"};
482+
Configurable<std::vector<float>> Tpc_mSigma_shift_He3{"Tpc_mSigma_shift_He3", {.0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f}, "Array for shifting (anti)helium-3 nSigma values in TPC"};
483+
Configurable<std::vector<float>> Tpc_mSigma_shift_Al{"Tpc_mSigma_shift_Al", {.0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f, .0f}, "Array for shifting (anti)helium-4 nSigma values in TPC"};
484+
485+
// ***************************************************************************
486+
487+
int getBinIndex(const std::vector<float>& ptBinning, float momentum)
488+
{
489+
for (size_t i = 0; i < ptBinning.size() - 1; ++i) {
490+
if (momentum >= ptBinning[i] && momentum < ptBinning[i + 1]) {
491+
return i;
492+
}
493+
}
494+
return -1;
495+
}
496+
497+
// ***************************************************************************
476498

477499
template <typename CollisionType, typename TracksType>
478500
void fillHistograms(const CollisionType& event, const TracksType& tracks)
@@ -630,6 +652,20 @@ struct NucleiHistTask {
630652

631653
spectra_reg.fill(HIST("histTpcSignalData"), momentum * track.sign(), track.tpcSignal());
632654

655+
int binIndex = getBinIndex(ptBinning, momentum);
656+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Pi.value.size()))
657+
nSigmaPion += Tpc_mSigma_shift_Pi.value[binIndex];
658+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Pr.value.size()))
659+
nSigmaProton += Tpc_mSigma_shift_Pr.value[binIndex];
660+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_De.value.size()))
661+
nSigmaDeut += Tpc_mSigma_shift_De.value[binIndex];
662+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Tr.value.size()))
663+
nSigmaTriton += Tpc_mSigma_shift_Tr.value[binIndex];
664+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_He3.value.size()))
665+
nSigmaHe3 += Tpc_mSigma_shift_He3.value[binIndex];
666+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Al.value.size()))
667+
nSigmaHe4 += Tpc_mSigma_shift_Al.value[binIndex];
668+
633669
if (track.sign() > 0) {
634670
pion_reg.fill(HIST("histTpcNsigmaData"), momentum, nSigmaPion);
635671
proton_reg.fill(HIST("histTpcNsigmaData"), momentum, nSigmaProton);
@@ -1231,6 +1267,13 @@ struct NucleiHistTask {
12311267
if (requireGoldenChi2 && !(track.passedGoldenChi2()))
12321268
continue;
12331269

1270+
float nSigmaPion = track.tpcNSigmaPi();
1271+
float nSigmaProton = track.tpcNSigmaPr();
1272+
float nSigmaDeut = track.tpcNSigmaDe();
1273+
float nSigmaTriton = track.tpcNSigmaTr();
1274+
float nSigmaHe3 = track.tpcNSigmaHe();
1275+
float nSigmaHe4 = track.tpcNSigmaAl();
1276+
12341277
TLorentzVector lorentzVector_pion{};
12351278
TLorentzVector lorentzVector_proton{};
12361279
TLorentzVector lorentzVector_deuteron{};
@@ -1253,22 +1296,36 @@ struct NucleiHistTask {
12531296
lorentzVector_He4.Rapidity() < yMin || lorentzVector_He4.Rapidity() > yMax)
12541297
continue;
12551298

1299+
int binIndex = getBinIndex(ptBinning, momentum);
1300+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Pi.value.size()))
1301+
nSigmaPion += Tpc_mSigma_shift_Pi.value[binIndex];
1302+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Pr.value.size()))
1303+
nSigmaProton += Tpc_mSigma_shift_Pr.value[binIndex];
1304+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_De.value.size()))
1305+
nSigmaDeut += Tpc_mSigma_shift_De.value[binIndex];
1306+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Tr.value.size()))
1307+
nSigmaTriton += Tpc_mSigma_shift_Tr.value[binIndex];
1308+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_He3.value.size()))
1309+
nSigmaHe3 += Tpc_mSigma_shift_He3.value[binIndex];
1310+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Al.value.size()))
1311+
nSigmaHe4 += Tpc_mSigma_shift_Al.value[binIndex];
1312+
12561313
if (track.sign() > 0) {
12571314

1258-
pion_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, track.tpcNSigmaPi(), event.centFT0C());
1259-
proton_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, track.tpcNSigmaPr(), event.centFT0C());
1260-
deuteron_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, track.tpcNSigmaDe(), event.centFT0C());
1261-
triton_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, track.tpcNSigmaTr(), event.centFT0C());
1262-
Helium3_reg.fill(HIST("histTpcNsigmaData_cent"), momentum * 2.0, track.tpcNSigmaHe(), event.centFT0C());
1263-
Helium4_reg.fill(HIST("histTpcNsigmaData_cent"), momentum * 2.0, track.tpcNSigmaAl(), event.centFT0C());
1315+
pion_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, nSigmaPion, event.centFT0C());
1316+
proton_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, nSigmaProton, event.centFT0C());
1317+
deuteron_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, nSigmaDeut, event.centFT0C());
1318+
triton_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, nSigmaTriton, event.centFT0C());
1319+
Helium3_reg.fill(HIST("histTpcNsigmaData_cent"), momentum * 2.0, nSigmaHe3, event.centFT0C());
1320+
Helium4_reg.fill(HIST("histTpcNsigmaData_cent"), momentum * 2.0, nSigmaHe4, event.centFT0C());
12641321

12651322
if ((event.centFT0C() > minCentrality) && (event.centFT0C() < maxCentrality)) {
1266-
pion_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, track.tpcNSigmaPi(), track.eta());
1267-
proton_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, track.tpcNSigmaPr(), track.eta());
1268-
deuteron_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, track.tpcNSigmaDe(), track.eta());
1269-
triton_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, track.tpcNSigmaTr(), track.eta());
1270-
Helium3_reg.fill(HIST("histTpcNsigmaData_eta"), momentum * 2.0, track.tpcNSigmaHe(), track.eta());
1271-
Helium4_reg.fill(HIST("histTpcNsigmaData_eta"), momentum * 2.0, track.tpcNSigmaAl(), track.eta());
1323+
pion_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, nSigmaPion, track.eta());
1324+
proton_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, nSigmaProton, track.eta());
1325+
deuteron_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, nSigmaDeut, track.eta());
1326+
triton_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, nSigmaTriton, track.eta());
1327+
Helium3_reg.fill(HIST("histTpcNsigmaData_eta"), momentum * 2.0, nSigmaHe3, track.eta());
1328+
Helium4_reg.fill(HIST("histTpcNsigmaData_eta"), momentum * 2.0, nSigmaHe4, track.eta());
12721329
}
12731330

12741331
if (track.hasTOF()) {
@@ -1316,20 +1373,20 @@ struct NucleiHistTask {
13161373

13171374
if (track.sign() < 0) {
13181375

1319-
apion_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, track.tpcNSigmaPi(), event.centFT0C());
1320-
aproton_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, track.tpcNSigmaPr(), event.centFT0C());
1321-
adeuteron_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, track.tpcNSigmaDe(), event.centFT0C());
1322-
atriton_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, track.tpcNSigmaTr(), event.centFT0C());
1323-
aHelium3_reg.fill(HIST("histTpcNsigmaData_cent"), momentum * 2.0, track.tpcNSigmaHe(), event.centFT0C());
1324-
aHelium4_reg.fill(HIST("histTpcNsigmaData_cent"), momentum * 2.0, track.tpcNSigmaAl(), event.centFT0C());
1376+
apion_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, nSigmaPion, event.centFT0C());
1377+
aproton_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, nSigmaProton, event.centFT0C());
1378+
adeuteron_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, nSigmaDeut, event.centFT0C());
1379+
atriton_reg.fill(HIST("histTpcNsigmaData_cent"), momentum, nSigmaTriton, event.centFT0C());
1380+
aHelium3_reg.fill(HIST("histTpcNsigmaData_cent"), momentum * 2.0, nSigmaHe3, event.centFT0C());
1381+
aHelium4_reg.fill(HIST("histTpcNsigmaData_cent"), momentum * 2.0, nSigmaHe4, event.centFT0C());
13251382

13261383
if ((event.centFT0C() > minCentrality) && (event.centFT0C() < maxCentrality)) {
1327-
apion_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, track.tpcNSigmaPi(), track.eta());
1328-
aproton_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, track.tpcNSigmaPr(), track.eta());
1329-
adeuteron_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, track.tpcNSigmaDe(), track.eta());
1330-
atriton_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, track.tpcNSigmaTr(), track.eta());
1331-
aHelium3_reg.fill(HIST("histTpcNsigmaData_eta"), momentum * 2.0, track.tpcNSigmaHe(), track.eta());
1332-
aHelium4_reg.fill(HIST("histTpcNsigmaData_eta"), momentum * 2.0, track.tpcNSigmaAl(), track.eta());
1384+
apion_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, nSigmaPion, track.eta());
1385+
aproton_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, nSigmaProton, track.eta());
1386+
adeuteron_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, nSigmaDeut, track.eta());
1387+
atriton_reg.fill(HIST("histTpcNsigmaData_eta"), momentum, nSigmaTriton, track.eta());
1388+
aHelium3_reg.fill(HIST("histTpcNsigmaData_eta"), momentum * 2.0, nSigmaHe3, track.eta());
1389+
aHelium4_reg.fill(HIST("histTpcNsigmaData_eta"), momentum * 2.0, nSigmaHe4, track.eta());
13331390
}
13341391

13351392
if (track.hasTOF()) {
@@ -1658,6 +1715,20 @@ struct NucleiHistTask {
16581715
float nSigmaHe3 = track.tpcNSigmaHe();
16591716
float nSigmaHe4 = track.tpcNSigmaAl();
16601717

1718+
int binIndex = getBinIndex(ptBinning, momentum);
1719+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Pi.value.size()))
1720+
nSigmaPion += Tpc_mSigma_shift_Pi.value[binIndex];
1721+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Pr.value.size()))
1722+
nSigmaProton += Tpc_mSigma_shift_Pr.value[binIndex];
1723+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_De.value.size()))
1724+
nSigmaDeuteron += Tpc_mSigma_shift_De.value[binIndex];
1725+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Tr.value.size()))
1726+
nSigmaTriton += Tpc_mSigma_shift_Tr.value[binIndex];
1727+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_He3.value.size()))
1728+
nSigmaHe3 += Tpc_mSigma_shift_He3.value[binIndex];
1729+
if (binIndex >= 0 && binIndex < static_cast<int>(Tpc_mSigma_shift_Al.value.size()))
1730+
nSigmaHe4 += Tpc_mSigma_shift_Al.value[binIndex];
1731+
16611732
if (track.sign() > 0) {
16621733
MC_recon_reg.fill(HIST("histTpcNsigmaDataPi"), momentum, nSigmaPion);
16631734
MC_recon_reg.fill(HIST("histTpcNsigmaDataPr"), momentum, nSigmaProton);

0 commit comments

Comments
 (0)