Skip to content

Commit 5a241aa

Browse files
committed
extend dev to other fillSkimmedV0 functions and fillSkimmedV0Table<doUseCorreceddEdx=true>
1 parent 740f5f5 commit 5a241aa

File tree

1 file changed

+32
-18
lines changed

1 file changed

+32
-18
lines changed

DPG/Tasks/TPC/tpcSkimsTableCreator.cxx

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ struct TreeWriterTpcV0 {
165165
}
166166
};
167167

168-
template <bool doUseCorreceddEdx = false, typename T, typename TQA, typename C, typename V0>
169-
void fillSkimmedV0TableWithdEdxTrQA(V0 const& v0, T const& track, TQA const& trackQA, bool existTrkQA, C const& collision, const float nSigmaTPC, const float nSigmaTOF, const float dEdxExp, const o2::track::PID::ID id, int runnumber, double dwnSmplFactor, float hadronicRate)
168+
template <bool doUseCorreceddEdx = false, typename T, typename TQA, typename C, typename V0Casc>
169+
void fillSkimmedV0TableWithdEdxTrQA(V0Casc const& v0casc, T const& track, TQA const& trackQA, bool existTrkQA, C const& collision, const float nSigmaTPC, const float nSigmaTOF, const float dEdxExp, const o2::track::PID::ID id, int runnumber, double dwnSmplFactor, float hadronicRate)
170170
{
171171

172172
const double ncl = track.tpcNClsFound();
@@ -178,12 +178,12 @@ struct TreeWriterTpcV0 {
178178
auto trackocc = collision.trackOccupancyInTimeRange();
179179
auto ft0occ = collision.ft0cOccupancyInTimeRange();
180180

181-
const float alpha = v0.alpha();
182-
const float qt = v0.qtarm();
183-
const float cosPA = v0.v0cosPA();
184-
const float pT = v0.pt();
185-
const float v0radius = v0.v0radius();
186-
const float gammapsipair = v0.psipair();
181+
const float alpha = v0casc.alpha();
182+
const float qt = v0casc.qtarm();
183+
const float cosPA = GetCosPA(v0casc, collision);
184+
const float pT = v0casc.pt();
185+
const float v0radius = GetRadius(v0casc);
186+
const float gammapsipair = v0casc.psipair();
187187

188188
const double pseudoRndm = track.pt() * 1000. - static_cast<int64_t>(track.pt() * 1000);
189189
if (pseudoRndm < dwnSmplFactor) {
@@ -224,8 +224,8 @@ struct TreeWriterTpcV0 {
224224
};
225225

226226
/// Function to fill skimmed tables
227-
template <bool doUseCorreceddEdx = false, typename T, typename TQA, typename C, typename V0>
228-
void fillSkimmedV0TableWithTrQA(V0 const& v0, T const& track, TQA const& trackQA, bool existTrkQA, C const& collision, const float nSigmaTPC, const float nSigmaTOF, const float dEdxExp, const o2::track::PID::ID id, int runnumber, double dwnSmplFactor, float hadronicRate, int bcGlobalIndex, int bcTimeFrameId, int bcBcInTimeFrame)
227+
template <bool doUseCorreceddEdx = false, typename T, typename TQA, typename C, typename V0Casc>
228+
void fillSkimmedV0TableWithTrQA(V0Casc const& v0casc, T const& track, TQA const& trackQA, bool existTrkQA, C const& collision, const float nSigmaTPC, const float nSigmaTOF, const float dEdxExp, const o2::track::PID::ID id, int runnumber, double dwnSmplFactor, float hadronicRate, int bcGlobalIndex, int bcTimeFrameId, int bcBcInTimeFrame)
229229
{
230230

231231
const double ncl = track.tpcNClsFound();
@@ -237,12 +237,12 @@ struct TreeWriterTpcV0 {
237237
auto trackocc = collision.trackOccupancyInTimeRange();
238238
auto ft0occ = collision.ft0cOccupancyInTimeRange();
239239

240-
const float alpha = v0.alpha();
241-
const float qt = v0.qtarm();
242-
const float cosPA = v0.v0cosPA();
243-
const float pT = v0.pt();
244-
const float v0radius = v0.v0radius();
245-
const float gammapsipair = v0.psipair();
240+
const float alpha = v0casc.alpha();
241+
const float qt = v0casc.qtarm();
242+
const float cosPA = GetCosPA(v0casc, collision);
243+
const float pT = v0casc.pt();
244+
const float v0radius = GetRadius(v0casc);
245+
const float gammapsipair = v0casc.psipair();
246246

247247
const double pseudoRndm = track.pt() * 1000. - static_cast<int64_t>(track.pt() * 1000);
248248
if (pseudoRndm < dwnSmplFactor) {
@@ -454,7 +454,7 @@ struct TreeWriterTpcV0 {
454454
} /// process Standard
455455
PROCESS_SWITCH(TreeWriterTpcV0, processStandard, "Standard V0 Samples for PID", true);
456456

457-
void processStandardWithCorrecteddEdx(Colls::iterator const& collision, soa::Filtered<TrksWithDEdxCorrection> const& tracks, V0sWithID const& v0s, aod::BCsWithTimestamps const&)
457+
void processStandardWithCorrecteddEdx(Colls::iterator const& collision, soa::Filtered<TrksWithDEdxCorrection> const& tracks, V0sWithID const& v0s, CascsWithID const& cascs, aod::BCsWithTimestamps const&)
458458
{
459459
/// Check event slection
460460
if (!isEventSelected(collision, tracks)) {
@@ -514,7 +514,21 @@ struct TreeWriterTpcV0 {
514514
}
515515
}
516516
}
517-
} /// process Standard
517+
518+
/// Loop over cascade candidates
519+
for (const auto& casc : cascs) {
520+
auto bachTrack = casc.bachelor_as<soa::Filtered<TrksWithDEdxCorrection>>();
521+
if (casc.cascaddid() == kUndef) {
522+
continue;
523+
}
524+
// Omega and antiomega
525+
if (static_cast<bool>(bachTrack.pidbit() & (1 << kOmega)) || static_cast<bool>(bachTrack.pidbit() & (1 << kAntiOmega))) {
526+
if (downsampleTsalisCharged(bachTrack.pt(), downsamplingTsalisKaons, sqrtSNN, o2::track::pid_constants::sMasses[o2::track::PID::Kaon], maxPt4dwnsmplTsalisKaons)) {
527+
fillSkimmedV0Table<true>(casc, bachTrack, collision, bachTrack.tpcNSigmaKa(), bachTrack.tofNSigmaKa(), bachTrack.tpcExpSignalKa(bachTrack.tpcSignal()), o2::track::PID::Kaon, runnumber, dwnSmplFactor_Ka, hadronicRate);
528+
}
529+
}
530+
}
531+
} /// process StandardWithCorrecteddEdx
518532
PROCESS_SWITCH(TreeWriterTpcV0, processStandardWithCorrecteddEdx, "Standard V0 Samples for PID with corrected dEdx", false);
519533

520534
Preslice<Trks> perCollisionTracks = aod::track::collisionId;

0 commit comments

Comments
 (0)