Skip to content

Commit 01da5ae

Browse files
[PWGHF,PWGCF] fix a small bug and fill timestamp into the track table (#12504)
1 parent b029457 commit 01da5ae

File tree

3 files changed

+23
-13
lines changed

3 files changed

+23
-13
lines changed

PWGCF/DataModel/FemtoDerived.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,9 @@ DECLARE_SOA_TABLE(FDHfCandMC, "AOD", "FDHFCANDMC", //! Table for reconstructed M
374374
DECLARE_SOA_TABLE(FDParticlesIndex, "AOD", "FDPARTICLEINDEX", //! Table track index to match associate particle with charm hadron prongs
375375
o2::soa::Index<>,
376376
fdhf::TrackId);
377+
DECLARE_SOA_TABLE(FDTrkTimeStamp, "AOD", "FDHFTRKTIMESTAMP", //! Time Stampe of track associate event
378+
o2::soa::Index<>,
379+
fdhf::TimeStamp);
377380

378381
DECLARE_SOA_TABLE_STAGED(FDParticles, "FDPARTICLE",
379382
o2::soa::Index<>,

PWGHF/HFC/TableProducer/femtoDreamProducer.cxx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ struct HfFemtoDreamProducer {
102102
Produces<aod::FDHfCandMC> rowCandMcCharmHad;
103103
Produces<aod::FDHfCandMCGen> rowCandCharmHadGen;
104104
Produces<aod::FDParticlesIndex> outputPartsIndex;
105+
Produces<aod::FDTrkTimeStamp> outputPartsTime;
105106
Produces<aod::FDMCCollisions> outputMcCollision;
106107
Produces<aod::FDMCCollLabels> outputCollsMcLabels;
107108
Produces<aod::FDParticles> outputParts;
@@ -391,9 +392,11 @@ struct HfFemtoDreamProducer {
391392
trackCuts.fillQA<aod::femtodreamparticle::ParticleType::kTrack, aod::femtodreamparticle::TrackType::kNoChild, true>(track);
392393
// the bit-wise container of the systematic variations is obtained
393394
auto cutContainer = trackCuts.getCutContainer<false, aod::femtodreamparticle::cutContainerType>(track, track.pt(), track.eta(), sqrtf(powf(track.dcaXY(), 2.f) + powf(track.dcaZ(), 2.f)));
394-
395+
auto bc = col.template bc_as<aod::BCsWithTimestamps>();
396+
int64_t timeStamp = bc.timestamp();
395397
// track global index
396398
outputPartsIndex(track.globalIndex());
399+
outputPartsTime(timeStamp);
397400
// now the table is filled
398401

399402
outputParts(outputCollision.lastIndex(),

PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ struct HfTaskCharmHadronsFemtoDream {
139139
using FilteredCharmMcCands = soa::Filtered<soa::Join<aod::FDHfCand, aod::FDHfCandMC>>;
140140
using FilteredCharmMcCand = FilteredCharmMcCands::iterator;
141141

142-
using FilteredColisions = soa::Filtered<soa::Join<FDCollisions, FDColMasks, aod::Collisions>>;
142+
using FilteredColisions = soa::Filtered<soa::Join<FDCollisions, FDColMasks>>;
143143
using FilteredColision = FilteredColisions::iterator;
144144

145145
using FilteredMcColisions = soa::Filtered<soa::Join<aod::FDCollisions, FDColMasks, aod::FDMCCollLabels>>;
@@ -148,7 +148,7 @@ struct HfTaskCharmHadronsFemtoDream {
148148
using FilteredFDMcParts = soa::Filtered<soa::Join<aod::FDParticles, aod::FDParticlesIndex, aod::FDExtParticles, aod::FDMCLabels, aod::FDExtMCLabels>>;
149149
using FilteredFDMcPart = FilteredFDMcParts::iterator;
150150

151-
using FilteredFDParticles = soa::Filtered<soa::Join<aod::FDParticles, aod::FDExtParticles, aod::FDParticlesIndex>>;
151+
using FilteredFDParticles = soa::Filtered<soa::Join<aod::FDParticles, aod::FDExtParticles, aod::FDParticlesIndex, aod::FDTrkTimeStamp>>;
152152
using FilteredFDParticle = FilteredFDParticles::iterator;
153153

154154
Filter eventMultiplicity = aod::femtodreamcollision::multNtr >= eventSel.multMin && aod::femtodreamcollision::multNtr <= eventSel.multMax;
@@ -160,7 +160,8 @@ struct HfTaskCharmHadronsFemtoDream {
160160
Filter trackPtFilterLow = ifnode(aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack), aod::femtodreamparticle::pt < ptTrack1Max, true);
161161
Filter trackPtFilterUp = ifnode(aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack), aod::femtodreamparticle::pt > ptTrack1Min, true);
162162

163-
Preslice<aod::FDParticles> perCol = aod::femtodreamparticle::fdCollisionId;
163+
Preslice<FilteredFDParticles> perCol = aod::femtodreamparticle::fdCollisionId;
164+
Preslice<FilteredCharmCands> perHfByCol = aod::femtodreamparticle::fdCollisionId;
164165

165166
/// Partition for particle 1
166167
Partition<FilteredFDParticles> partitionTrk1 = (aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack)) && (ncheckbit(aod::femtodreamparticle::cut, cutBitTrack1)) && ifnode(aod::femtodreamparticle::pt * coshEta(aod::femtodreamparticle::eta) <= pidThresTrack1, ncheckbit(aod::femtodreamparticle::pidcut, tpcBitTrack1), ncheckbit(aod::femtodreamparticle::pidcut, tpcTofBitTrack1));
@@ -477,8 +478,7 @@ struct HfTaskCharmHadronsFemtoDream {
477478
eventHisto.fillQA(col);
478479
auto sliceTrk1 = partitionTrk1->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache);
479480
auto sliceCharmHad = partitionCharmHadron->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache);
480-
auto bc = col.template bc_as<aod::BCsWithTimestamps>();
481-
int64_t timeStamp = bc.timestamp();
481+
int64_t timeStamp = -999;
482482

483483
/// Filling QA histograms of the all tracks and all charm hadrons before pairing
484484
for (auto const& part : sliceTrk1) {
@@ -491,7 +491,7 @@ struct HfTaskCharmHadronsFemtoDream {
491491
} else {
492492
chargeTrack = NegativeCharge;
493493
}
494-
494+
timeStamp = part.timeStamp();
495495
rowFemtoResultTrk(
496496
col.globalIndex(),
497497
timeStamp,
@@ -509,6 +509,8 @@ struct HfTaskCharmHadronsFemtoDream {
509509
for (auto const& part : sliceCharmHad) {
510510
float invMass = getCharmHadronMass(part);
511511
registryCharmHadronQa.fill(HIST("CharmHadronQA/hPtVsMass"), part.pt(), invMass);
512+
timeStamp = part.timeStamp();
513+
512514
rowFemtoResultCharm(
513515
col.globalIndex(),
514516
timeStamp,
@@ -525,15 +527,17 @@ struct HfTaskCharmHadronsFemtoDream {
525527
part.bdtFD());
526528
}
527529

528-
rowFemtoResultColl(
529-
col.globalIndex(),
530-
timeStamp,
531-
col.posZ(),
532-
col.multNtr());
530+
if (sliceCharmHad.size() || sliceTrk1.size()) {
533531

534-
if ((col.bitmaskTrackOne() & bitMask) != bitMask || (col.bitmaskTrackTwo() & bitMask) != bitMask) {
532+
rowFemtoResultColl(
533+
col.globalIndex(),
534+
timeStamp,
535+
col.posZ(),
536+
col.multNtr());
537+
} else {
535538
return;
536539
}
540+
537541
doSameEvent<false>(sliceTrk1, sliceCharmHad, parts, col);
538542
}
539543
PROCESS_SWITCH(HfTaskCharmHadronsFemtoDream, processSameEvent, "Enable processing same event", false);

0 commit comments

Comments
 (0)