Skip to content

Commit 34c878b

Browse files
maciaccoalibuild
andauthored
[PWGLF] add dedicated table for non-pid ebye studies in lf (#17444)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 6656bb3 commit 34c878b

2 files changed

Lines changed: 49 additions & 17 deletions

File tree

PWGLF/DataModel/LFEbyeTables.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,25 @@ DECLARE_SOA_TABLE(McMiniTrkTables, "AOD", "MCMINITRKTABLE",
160160
LFEbyeTable::GenEtaMask,
161161
LFEbyeTable::IsReco);
162162
using McMiniTrkTable = McMiniTrkTables::iterator;
163+
164+
DECLARE_SOA_TABLE(MiniChTables, "AOD", "MINICHTABLE",
165+
o2::soa::Index<>,
166+
LFEbyeTable::MiniCollTableId,
167+
LFEbyeTable::Pt,
168+
LFEbyeTable::EtaMask,
169+
LFEbyeTable::SelMask);
170+
using MiniChTable = MiniChTables::iterator;
171+
172+
DECLARE_SOA_TABLE(McMiniChTables, "AOD", "MCMINICHTABLE",
173+
o2::soa::Index<>,
174+
LFEbyeTable::MiniCollTableId,
175+
LFEbyeTable::Pt,
176+
LFEbyeTable::EtaMask,
177+
LFEbyeTable::SelMask,
178+
LFEbyeTable::GenPt,
179+
LFEbyeTable::GenEtaMask,
180+
LFEbyeTable::IsReco);
181+
using McMiniChTable = McMiniChTables::iterator;
163182
} // namespace o2::aod
164183

165184
#endif // PWGLF_DATAMODEL_LFEBYETABLES_H_

PWGLF/TableProducer/Nuspex/ebyeMaker.cxx

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -214,19 +214,21 @@ struct EbyeMaker {
214214
Produces<aod::McNucleiEbyeTable> mcNucleiEbyeTable;
215215
Produces<aod::McLambdaEbyeTable> mcLambdaEbyeTable;
216216
Produces<aod::McMiniTrkTable> mcMiniTrkTable;
217+
Produces<aod::MiniChTable> miniChTable;
218+
Produces<aod::McMiniChTable> mcMiniChTable;
217219
std::mt19937 gen32;
218220
std::vector<CandidateV0> candidateV0s;
219221
std::array<std::vector<CandidateTrack>, 2> candidateTracks;
220222
Service<o2::ccdb::BasicCCDBManager> ccdb;
221223
o2::vertexing::DCAFitterN<2> fitter;
222224
std::vector<int> classIds;
223225

224-
int mRunNumber;
225-
float dBz;
226-
uint8_t nTrackletsColl;
227-
uint8_t nTracksColl;
228-
uint8_t nChPartGen;
229-
int nTracksCollFull;
226+
int mRunNumber{-999};
227+
float dBz{-999.f};
228+
uint8_t nTrackletsColl{0u};
229+
uint8_t nTracksColl{0u};
230+
uint8_t nChPartGen{0u};
231+
int nTracksCollFull{-999};
230232

231233
Configurable<int> cfgMaterialCorrection{"cfgMaterialCorrection", static_cast<int>(o2::base::Propagator::MatCorrType::USEMatCorrNONE), "Type of material correction"};
232234
Configurable<LabeledArray<double>> cfgBetheBlochParams{"cfgBetheBlochParams", {kBetheBlochDefault[0], 2, 6, particleNamesPar, betheBlochParNames}, "TPC Bethe-Bloch parameterisation for deuteron"};
@@ -306,11 +308,11 @@ struct EbyeMaker {
306308
Configurable<LabeledArray<float>> cfgTrackSels{"cfgTrackSels", {kTrackSels, 1, 12, particleName, trackSelsNames}, "Track selections"};
307309
Configurable<LabeledArray<float>> cfgDcaSelsParam{"cfgDcaSelsParam", {kDcaSelsParam[0], 3, 3, dcaSelsNames, dcaParNames}, "DCA threshold settings"};
308310

309-
std::array<float, kNpart> ptMin;
310-
std::array<float, kNpart> ptTof;
311-
std::array<float, kNpart> ptMax;
312-
std::array<float, kNpart> nSigmaTpcCutLow;
313-
std::array<float, kNpart> nSigmaTpcCutUp;
311+
std::array<float, kNpart> ptMin{0};
312+
std::array<float, kNpart> ptTof{0};
313+
std::array<float, kNpart> ptMax{0};
314+
std::array<float, kNpart> nSigmaTpcCutLow{0};
315+
std::array<float, kNpart> nSigmaTpcCutUp{0};
314316

315317
HistogramRegistry histos{"histos", {}, OutputObjHandlingPolicy::AnalysisObject};
316318

@@ -498,13 +500,26 @@ struct EbyeMaker {
498500
candidateTrack.pdgcode > 0 ? candidateTrack.genpt : -candidateTrack.genpt,
499501
static_cast<int8_t>(candidateTrack.geneta * 100),
500502
candidateTrack.isreco);
503+
mcMiniChTable(
504+
miniCollTable.lastIndex(),
505+
candidateTrack.pt,
506+
static_cast<int8_t>(candidateTrack.eta * 100),
507+
selMask,
508+
candidateTrack.pdgcode > 0 ? candidateTrack.genpt : -candidateTrack.genpt,
509+
static_cast<int8_t>(candidateTrack.geneta * 100),
510+
candidateTrack.isreco);
501511
} else if (!isMc) {
502512
miniTrkTable(
503513
miniCollTable.lastIndex(),
504514
candidateTrack.pt,
505515
static_cast<int8_t>(candidateTrack.eta * 100),
506516
selMask,
507517
candidateTrack.outerPID);
518+
miniChTable(
519+
miniCollTable.lastIndex(),
520+
candidateTrack.pt,
521+
static_cast<int8_t>(candidateTrack.eta * 100),
522+
selMask);
508523
}
509524
}
510525

@@ -663,7 +678,7 @@ struct EbyeMaker {
663678
continue;
664679
}
665680

666-
if (trackPt <= ptTof[iP] || (trackPt > ptTof[iP] && hasTof)) {
681+
if (trackPt <= ptTof[iP] || hasTof) {
667682
CandidateTrack candTrack;
668683
candTrack.pt = track.sign() > 0. ? trackPt : -trackPt;
669684
candTrack.eta = trackEta;
@@ -683,7 +698,6 @@ struct EbyeMaker {
683698
}
684699

685700
if (lambdaPtMax > lambdaPtMin) {
686-
std::vector<int64_t> trkId;
687701
for (const auto& v0 : V0s) {
688702
auto posTrack = v0.posTrack_as<T>();
689703
auto negTrack = v0.negTrack_as<T>();
@@ -931,7 +945,7 @@ struct EbyeMaker {
931945
candV0.genpt = genPt;
932946
candV0.geneta = mcPart.eta();
933947
candV0.pdgcode = pdgCode;
934-
auto it = find_if(candidateV0s.begin(), candidateV0s.end(), [&](CandidateV0 v0) { return v0.mcIndex == mcPart.globalIndex(); });
948+
auto it = find_if(candidateV0s.begin(), candidateV0s.end(), [&](const CandidateV0& v0) { return v0.mcIndex == mcPart.globalIndex(); });
935949
if (it != candidateV0s.end()) {
936950
continue;
937951
} else {
@@ -945,7 +959,6 @@ struct EbyeMaker {
945959
}
946960
if ((!mcPart.isPhysicalPrimary() && !doprocessMiniMcRun2))
947961
continue;
948-
auto genPt = std::hypot(mcPart.px(), mcPart.py());
949962
CandidateTrack candTrack;
950963
candTrack.genpt = genPt;
951964
candTrack.geneta = mcPart.eta();
@@ -955,7 +968,7 @@ struct EbyeMaker {
955968
else if (mcPart.has_mothers() && iP == 0 && kUsePID)
956969
candTrack.pdgcodemoth = getPartTypeMother(mcPart);
957970

958-
auto it = find_if(candidateTracks[iP].begin(), candidateTracks[iP].end(), [&](CandidateTrack trk) { return trk.mcIndex == mcPart.globalIndex(); });
971+
auto it = find_if(candidateTracks[iP].begin(), candidateTracks[iP].end(), [&](const CandidateTrack& trk) { return trk.mcIndex == mcPart.globalIndex(); });
959972
if (it != candidateTracks[iP].end()) {
960973
continue;
961974
} else {
@@ -1013,7 +1026,7 @@ struct EbyeMaker {
10131026

10141027
float centrality = collision.centRun2V0M();
10151028
const float centTriggerEdges[]{10.f, 30.f, 50.f};
1016-
if (!(collision.sel7() && collision.alias_bit(kINT7)) && (!kINT7Intervals || (kINT7Intervals && ((centrality >= centTriggerEdges[0] && centrality < centTriggerEdges[1]) || centrality > centTriggerEdges[2]))))
1029+
if (!(collision.sel7() && collision.alias_bit(kINT7)) && (!kINT7Intervals || ((centrality >= centTriggerEdges[0] && centrality < centTriggerEdges[1]) || centrality > centTriggerEdges[2])))
10171030
continue;
10181031

10191032
float centralityCl0 = collision.centRun2CL0();

0 commit comments

Comments
 (0)