Skip to content

Commit e7d2dfa

Browse files
authored
[DPG] adding a configurable, maximum Pt for applying downsampling factor p… (AliceO2Group#8268)
1 parent 105bd85 commit e7d2dfa

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

DPG/Tasks/TPC/tpcSkimsTableCreator.cxx

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ struct TreeWriterTpcV0 {
6161
Configurable<float> downsamplingTsalisPions{"downsamplingTsalisPions", -1., "Downsampling factor to reduce the number of pions"};
6262
Configurable<float> downsamplingTsalisProtons{"downsamplingTsalisProtons", -1., "Downsampling factor to reduce the number of protons"};
6363
Configurable<float> downsamplingTsalisElectrons{"downsamplingTsalisElectrons", -1., "Downsampling factor to reduce the number of electrons"};
64+
Configurable<float> maxPt4dwnsmplTsalisPions{"maxPt4dwnsmplTsalisPions", 100., "Maximum Pt for applying downsampling factor of pions"};
65+
Configurable<float> maxPt4dwnsmplTsalisProtons{"maxPt4dwnsmplTsalisProtons", 100., "Maximum Pt for applying downsampling factor of protons"};
66+
Configurable<float> maxPt4dwnsmplTsalisElectrons{"maxPt4dwnsmplTsalisElectrons", 100., "Maximum Pt for applying downsampling factor of electrons"};
6467

6568
Filter trackFilter = (trackSelection.node() == 0) ||
6669
((trackSelection.node() == 1) && requireGlobalTrackInFilter()) ||
@@ -87,7 +90,7 @@ struct TreeWriterTpcV0 {
8790
const float v0radius = v0.v0radius();
8891
const float gammapsipair = v0.psipair();
8992

90-
const double pseudoRndm = track.pt() * 1000. - (int64_t)(track.pt() * 1000);
93+
const double pseudoRndm = track.pt() * 1000. - static_cast<int64_t>(track.pt() * 1000);
9194
if (pseudoRndm < dwnSmplFactor) {
9295
rowTPCTree(track.tpcSignal(),
9396
1. / dEdxExp,
@@ -129,11 +132,14 @@ struct TreeWriterTpcV0 {
129132
/// Random downsampling trigger function using Tsalis/Hagedorn spectra fit (sqrt(s) = 62.4 GeV to 13 TeV)
130133
/// as in https://iopscience.iop.org/article/10.1088/2399-6528/aab00f/pdf
131134
TRandom3* fRndm = new TRandom3(0);
132-
bool downsampleTsalisCharged(double pt, double factor1Pt, double sqrts, double mass)
135+
bool downsampleTsalisCharged(double pt, double factor1Pt, double sqrts, double mass, double maxPt)
133136
{
134137
if (factor1Pt < 0.) {
135138
return true;
136139
}
140+
if (pt > maxPt) {
141+
return true;
142+
}
137143
const double prob = tsalisCharged(pt, mass, sqrts) * pt;
138144
const double probNorm = tsalisCharged(1., mass, sqrts);
139145
if ((fRndm->Rndm() * ((prob / probNorm) * pt * pt)) > factor1Pt) {
@@ -181,37 +187,37 @@ struct TreeWriterTpcV0 {
181187
auto negTrack = v0.negTrack_as<soa::Filtered<Trks>>();
182188
// gamma
183189
if (static_cast<bool>(posTrack.pidbit() & (1 << 0)) && static_cast<bool>(negTrack.pidbit() & (1 << 0))) {
184-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisElectrons, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Electron])) {
190+
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisElectrons, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Electron], maxPt4dwnsmplTsalisElectrons)) {
185191
fillSkimmedV0Table(v0, posTrack, collision, posTrack.tpcNSigmaEl(), posTrack.tofNSigmaEl(), posTrack.tpcExpSignalEl(posTrack.tpcSignal()), o2::track::PID::Electron, runnumber, dwnSmplFactor_El);
186192
}
187-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisElectrons, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Electron])) {
193+
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisElectrons, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Electron], maxPt4dwnsmplTsalisElectrons)) {
188194
fillSkimmedV0Table(v0, negTrack, collision, negTrack.tpcNSigmaEl(), negTrack.tofNSigmaEl(), negTrack.tpcExpSignalEl(negTrack.tpcSignal()), o2::track::PID::Electron, runnumber, dwnSmplFactor_El);
189195
}
190196
}
191197
// Ks0
192198
if (static_cast<bool>(posTrack.pidbit() & (1 << 1)) && static_cast<bool>(negTrack.pidbit() & (1 << 1))) {
193-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisPions, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Pion])) {
199+
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisPions, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Pion], maxPt4dwnsmplTsalisPions)) {
194200
fillSkimmedV0Table(v0, posTrack, collision, posTrack.tpcNSigmaPi(), posTrack.tofNSigmaPi(), posTrack.tpcExpSignalPi(posTrack.tpcSignal()), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi);
195201
}
196-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisPions, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Pion])) {
202+
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisPions, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Pion], maxPt4dwnsmplTsalisPions)) {
197203
fillSkimmedV0Table(v0, negTrack, collision, negTrack.tpcNSigmaPi(), negTrack.tofNSigmaPi(), negTrack.tpcExpSignalPi(negTrack.tpcSignal()), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi);
198204
}
199205
}
200206
// Lambda
201207
if (static_cast<bool>(posTrack.pidbit() & (1 << 2)) && static_cast<bool>(negTrack.pidbit() & (1 << 2))) {
202-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisProtons, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Proton])) {
208+
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisProtons, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Proton], maxPt4dwnsmplTsalisProtons)) {
203209
fillSkimmedV0Table(v0, posTrack, collision, posTrack.tpcNSigmaPr(), posTrack.tofNSigmaPr(), posTrack.tpcExpSignalPr(posTrack.tpcSignal()), o2::track::PID::Proton, runnumber, dwnSmplFactor_Pr);
204210
}
205-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisPions, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Pion])) {
211+
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisPions, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Pion], maxPt4dwnsmplTsalisPions)) {
206212
fillSkimmedV0Table(v0, negTrack, collision, negTrack.tpcNSigmaPi(), negTrack.tofNSigmaPi(), negTrack.tpcExpSignalPi(negTrack.tpcSignal()), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi);
207213
}
208214
}
209215
// Antilambda
210216
if (static_cast<bool>(posTrack.pidbit() & (1 << 3)) && static_cast<bool>(negTrack.pidbit() & (1 << 3))) {
211-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisPions, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Pion])) {
217+
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisPions, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Pion], maxPt4dwnsmplTsalisPions)) {
212218
fillSkimmedV0Table(v0, posTrack, collision, posTrack.tpcNSigmaPi(), posTrack.tofNSigmaPi(), posTrack.tpcExpSignalPi(posTrack.tpcSignal()), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi);
213219
}
214-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisProtons, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Proton])) {
220+
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisProtons, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Proton], maxPt4dwnsmplTsalisProtons)) {
215221
fillSkimmedV0Table(v0, negTrack, collision, negTrack.tpcNSigmaPr(), negTrack.tofNSigmaPr(), negTrack.tpcExpSignalPr(negTrack.tpcSignal()), o2::track::PID::Proton, runnumber, dwnSmplFactor_Pr);
216222
}
217223
}
@@ -319,7 +325,7 @@ struct TreeWriterTPCTOF {
319325
const double bg = p / mass;
320326
const int multTPC = collision.multTPC();
321327

322-
const double pseudoRndm = track.pt() * 1000. - (int64_t)(track.pt() * 1000);
328+
const double pseudoRndm = track.pt() * 1000. - static_cast<int64_t>(track.pt() * 1000);
323329
if (pseudoRndm < dwnSmplFactor) {
324330
rowTPCTOFTree(track.tpcSignal(),
325331
1. / dEdxExp,

PWGDQ/Tasks/v0selector.cxx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
//
2020
#include <array>
2121
#include <map>
22+
#include <string>
23+
#include <memory>
2224
#include "Math/Vector4D.h"
2325
#include "Framework/runDataProcessing.h"
2426
#include "Framework/AnalysisTask.h"
@@ -301,7 +303,7 @@ struct v0selector {
301303
registry.fill(HIST("hMassGamma"), V0radius, mGamma);
302304
registry.fill(HIST("hV0Psi"), psipair, mGamma);
303305
}
304-
if (mGamma < v0max_mee && TMath::Abs(V0.posTrack_as<FullTracksExt>().tpcNSigmaEl()) < 5 && TMath::Abs(V0.negTrack_as<FullTracksExt>().tpcNSigmaEl()) < 5 && psipair < maxpsipair) {
306+
if (mGamma < v0max_mee && TMath::Abs(V0.posTrack_as<FullTracksExt>().tpcNSigmaEl()) < 5 && TMath::Abs(V0.negTrack_as<FullTracksExt>().tpcNSigmaEl()) < 5 && TMath::Abs(psipair) < maxpsipair) {
305307
pidmap[V0.posTrackId()] |= (uint8_t(1) << kGamma);
306308
pidmap[V0.negTrackId()] |= (uint8_t(1) << kGamma);
307309
if (fillhisto) {

0 commit comments

Comments
 (0)