Skip to content

Commit 4da0e07

Browse files
authored
[PWGLF] adding TOF hits (#10068)
1 parent bc17093 commit 4da0e07

File tree

2 files changed

+75
-11
lines changed

2 files changed

+75
-11
lines changed

PWGLF/DataModel/ReducedHeptaQuarkTables.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ namespace redhqevent
3131
{
3232
DECLARE_SOA_COLUMN(NumPhi, numPhi, int); //! Number of negative K
3333
DECLARE_SOA_COLUMN(NumLambda, numLambda, int); //! Number of lambda
34+
DECLARE_SOA_COLUMN(Centrality, centrality, float); //!
3435
} // namespace redhqevent
3536
DECLARE_SOA_TABLE(RedHQEvents, "AOD", "REDHQEVENT",
3637
o2::soa::Index<>,
@@ -39,6 +40,7 @@ DECLARE_SOA_TABLE(RedHQEvents, "AOD", "REDHQEVENT",
3940
timestamp::Timestamp,
4041
collision::PosZ,
4142
collision::NumContrib,
43+
redhqevent::Centrality,
4244
redhqevent::NumPhi,
4345
redhqevent::NumLambda);
4446
using RedHQEvent = RedHQEvents::iterator;
@@ -63,6 +65,10 @@ DECLARE_SOA_COLUMN(HQd1Charge, hqd1Charge, float); //! HQ d1 charge
6365
DECLARE_SOA_COLUMN(HQd2Charge, hqd2Charge, float); //! HQ d1 charge
6466
DECLARE_SOA_COLUMN(HQd1TPC, hqd1TPC, float); //! TPC nsigma d1
6567
DECLARE_SOA_COLUMN(HQd2TPC, hqd2TPC, float); //! TPC nsigma d2
68+
DECLARE_SOA_COLUMN(HQd1TOFHit, hqd1TOFHit, int); //! TOF hit d1
69+
DECLARE_SOA_COLUMN(HQd2TOFHit, hqd2TOFHit, int); //! TOF hit d2
70+
DECLARE_SOA_COLUMN(HQd1TOF, hqd1TOF, float); //! TOF nsigma d1
71+
DECLARE_SOA_COLUMN(HQd2TOF, hqd2TOF, float); //! TOF nsigma d2
6672

6773
} // namespace hqtrack
6874
DECLARE_SOA_TABLE(HQTracks, "AOD", "HQTRACK",
@@ -84,7 +90,11 @@ DECLARE_SOA_TABLE(HQTracks, "AOD", "HQTRACK",
8490
hqtrack::HQd1Charge,
8591
hqtrack::HQd2Charge,
8692
hqtrack::HQd1TPC,
87-
hqtrack::HQd2TPC);
93+
hqtrack::HQd2TPC,
94+
hqtrack::HQd1TOFHit,
95+
hqtrack::HQd2TOFHit,
96+
hqtrack::HQd1TOF,
97+
hqtrack::HQd2TOF);
8898

8999
using HQTrack = HQTracks::iterator;
90100
} // namespace o2::aod

PWGLF/TableProducer/Resonances/HeptaQuarktable.cxx

Lines changed: 64 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ struct heptaquarktable {
107107
Filter acceptanceFilter = (nabs(aod::track::eta) < cfgCutEta && nabs(aod::track::pt) > cfgCutPt);
108108
Filter DCAcutFilter = (nabs(aod::track::dcaXY) < cfgCutDCAxy) && (nabs(aod::track::dcaZ) < cfgCutDCAz);
109109

110-
using EventCandidates = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults>>;
111-
using TrackCandidates = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr>>;
110+
using EventCandidates = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms, aod::CentFT0Cs>>;
111+
using TrackCandidates = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>>;
112112

113113
HistogramRegistry histos{
114114
"histos",
@@ -124,9 +124,11 @@ struct heptaquarktable {
124124
double massPi = o2::constants::physics::MassPionCharged;
125125
double massKa = o2::constants::physics::MassKPlus;
126126

127+
float centrality;
128+
127129
void init(o2::framework::InitContext&)
128130
{
129-
histos.add("hEventstat", "", {HistType::kTH1F, {{2, 0, 2}}});
131+
histos.add("hEventstat", "", {HistType::kTH1F, {{3, 0, 3}}});
130132
}
131133

132134
template <typename T>
@@ -230,6 +232,7 @@ struct heptaquarktable {
230232
int numberLambda = 0;
231233
auto currentRunNumber = collision.bc_as<aod::BCsWithTimestamps>().runNumber();
232234
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
235+
centrality = collision.centFT0M();
233236

234237
std::vector<int> HQId = {};
235238

@@ -242,10 +245,18 @@ struct heptaquarktable {
242245
std::vector<float> HQd1TPC = {};
243246
std::vector<float> HQd2TPC = {};
244247

248+
std::vector<int> HQd1TOFHit = {};
249+
std::vector<int> HQd2TOFHit = {};
250+
251+
std::vector<float> HQd1TOF = {};
252+
std::vector<float> HQd2TOF = {};
253+
245254
std::vector<ROOT::Math::PtEtaPhiMVector> hqresonance, hqresonanced1, hqresonanced2;
246255

256+
histos.fill(HIST("hEventstat"), 0.5);
247257
if (!(collision.sel8() && collision.selection_bit(aod::evsel::kNoTimeFrameBorder) && collision.selection_bit(aod::evsel::kNoITSROFrameBorder) && collision.selection_bit(aod::evsel::kNoSameBunchPileup) && collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV)))
248258
return;
259+
histos.fill(HIST("hEventstat"), 1.5);
249260

250261
auto posThisColl = posTracks->sliceByCached(aod::track::collisionId, collision.globalIndex(), cache);
251262
auto negThisColl = negTracks->sliceByCached(aod::track::collisionId, collision.globalIndex(), cache);
@@ -308,6 +319,26 @@ struct heptaquarktable {
308319

309320
HQd1TPC.push_back(track1.tpcNSigmaKa());
310321
HQd2TPC.push_back(track2.tpcNSigmaKa());
322+
323+
auto d1TOFHit = -1;
324+
auto d2TOFHit = -1;
325+
auto d1TOF = -999.0;
326+
auto d2TOF = -999.0;
327+
328+
if (track1.hasTOF()) {
329+
d1TOFHit = 1;
330+
d1TOF = track1.tofNSigmaKa();
331+
}
332+
if (track2.hasTOF()) {
333+
d2TOFHit = 1;
334+
d2TOF = track2.tofNSigmaKa();
335+
}
336+
337+
HQd1TOFHit.push_back(d1TOFHit);
338+
HQd2TOFHit.push_back(d2TOFHit);
339+
340+
HQd1TOF.push_back(d1TOF);
341+
HQd2TOF.push_back(d2TOF);
311342
}
312343
}
313344
for (auto& v0 : V0s) {
@@ -363,19 +394,42 @@ struct heptaquarktable {
363394
HQd1Charge.push_back(postrack_v0.sign());
364395
HQd2Charge.push_back(negtrack_v0.sign());
365396

366-
HQd1TPC.push_back(postrack_v0.tpcNSigmaKa());
367-
HQd2TPC.push_back(negtrack_v0.tpcNSigmaKa());
397+
if (LambdaTag) {
398+
HQd1TPC.push_back(postrack_v0.tpcNSigmaPr());
399+
HQd2TPC.push_back(negtrack_v0.tpcNSigmaPi());
400+
} else if (aLambdaTag) {
401+
HQd1TPC.push_back(postrack_v0.tpcNSigmaPi());
402+
HQd2TPC.push_back(negtrack_v0.tpcNSigmaPr());
403+
}
404+
405+
auto d1TOFHit = -1;
406+
auto d2TOFHit = -1;
407+
auto d1TOF = -999.0;
408+
auto d2TOF = -999.0;
409+
410+
if (postrack_v0.hasTOF()) {
411+
d1TOFHit = 1;
412+
d1TOF = postrack_v0.tofNSigmaPr();
413+
}
414+
if (negtrack_v0.hasTOF()) {
415+
d2TOFHit = 1;
416+
d2TOF = negtrack_v0.tofNSigmaPr();
417+
} ////// TOF with PV assumption to be corrected
418+
HQd1TOFHit.push_back(d1TOFHit);
419+
HQd2TOFHit.push_back(d2TOFHit);
420+
421+
HQd1TOF.push_back(d1TOF);
422+
HQd2TOF.push_back(d2TOF);
368423
} // select collision
369424
if (numberPhi < 2 || numberLambda < 1)
370425
return;
371426

372427
keepEventDoubleHQ = true;
373428

374-
histos.fill(HIST("hEventstat"), 0.5);
375429
if (keepEventDoubleHQ && numberPhi > 1 && numberLambda > 0 && (hqresonance.size() == hqresonanced1.size()) && (hqresonance.size() == hqresonanced2.size())) {
376-
histos.fill(HIST("hEventstat"), 1.5);
430+
histos.fill(HIST("hEventstat"), 2.5);
377431
/////////// Fill collision table///////////////
378-
redHQEvents(bc.globalBC(), currentRunNumber, bc.timestamp(), collision.posZ(), collision.numContrib(), numberPhi, numberLambda);
432+
redHQEvents(bc.globalBC(), currentRunNumber, bc.timestamp(), collision.posZ(), collision.numContrib(), centrality, numberPhi, numberLambda);
379433
auto indexEvent = redHQEvents.lastIndex();
380434
//// Fill track table for HQ//////////////////
381435
for (auto if1 = hqresonance.begin(); if1 != hqresonance.end(); ++if1) {
@@ -387,8 +441,8 @@ struct heptaquarktable {
387441
HQd1dummy.Px(), HQd1dummy.Py(), HQd1dummy.Pz(), HQd2dummy.Px(), HQd2dummy.Py(), HQd2dummy.Pz(),
388442
HQVectorDummy.M(),
389443
HQd1Index.at(i5), HQd2Index.at(i5),
390-
HQd1Charge.at(i5), HQd2Charge.at(i5),
391-
HQd1TPC.at(i5), HQd2TPC.at(i5));
444+
HQd1Charge.at(i5), HQd2Charge.at(i5), HQd1TPC.at(i5), HQd2TPC.at(i5),
445+
HQd1TOFHit.at(i5), HQd2TOFHit.at(i5), HQd1TOF.at(i5), HQd2TOF.at(i5));
392446
}
393447
}
394448
} // process

0 commit comments

Comments
 (0)