Skip to content

Commit 2aa43a6

Browse files
committed
mv isTrackSelected to utils; make tsalisCharged lambda
1 parent 1625739 commit 2aa43a6

File tree

2 files changed

+41
-27
lines changed

2 files changed

+41
-27
lines changed

DPG/Tasks/TPC/tpcSkimsTableCreator.cxx

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -129,13 +129,6 @@ struct TreeWriterTpcV0 {
129129
DaughterProton
130130
};
131131

132-
Filter trackFilter = (trackSelection.node() == static_cast<int>(TrackSelectionNoCut)) ||
133-
((trackSelection.node() == static_cast<int>(TrackSelectionGlobalTrack)) && requireGlobalTrackInFilter()) ||
134-
((trackSelection.node() == static_cast<int>(TrackSelectionTrackWoPtEta)) && requireGlobalTrackWoPtEtaInFilter()) ||
135-
((trackSelection.node() == static_cast<int>(TrackSelectionGlobalTrackWoDCA)) && requireGlobalTrackWoDCAInFilter()) ||
136-
((trackSelection.node() == static_cast<int>(TrackSelectionQualityTracks)) && requireQualityTracksInFilter()) ||
137-
((trackSelection.node() == static_cast<int>(TrackSelectionInAcceptanceTracks)) && requireTrackCutInFilter(TrackSelectionFlags::kInAcceptanceTracks));
138-
139132
ctpRateFetcher mRateFetcher;
140133

141134
struct V0Daughter {
@@ -465,6 +458,9 @@ struct TreeWriterTpcV0 {
465458
}
466459
const auto& posTrack = v0.posTrack_as<soa::Filtered<TrksType>>();
467460
const auto& negTrack = v0.negTrack_as<soa::Filtered<TrksType>>();
461+
if (!(isTrackSelected(posTrack, trackSelection) && isTrackSelected(negTrack, trackSelection))) {
462+
continue;
463+
}
468464

469465
const V0Mother v0Mother = createV0Mother(v0Id);
470466
const V0Daughter posDaughter = createV0Daughter<IsCorrectedDeDx>(v0, posTrack, v0Id, v0Mother.posDaughterId, true);
@@ -481,6 +477,9 @@ struct TreeWriterTpcV0 {
481477
continue;
482478
}
483479
const auto& bachTrack = casc.bachelor_as<soa::Filtered<TrksType>>();
480+
if (!isTrackSelected(bachTrack, trackSelection)) {
481+
continue;
482+
}
484483
const V0Daughter bachDaughter = createV0Daughter<IsCorrectedDeDx>(casc, bachTrack, cascId, DaughterKaon);
485484
// Omega and antiomega
486485
fillDaughterTrack(casc, bachTrack, bachDaughter);
@@ -566,6 +565,9 @@ struct TreeWriterTpcV0 {
566565
}
567566
const auto& posTrack = v0.posTrack_as<TrksType>();
568567
const auto& negTrack = v0.negTrack_as<TrksType>();
568+
if (!(isTrackSelected(posTrack, trackSelection) && isTrackSelected(negTrack, trackSelection))) {
569+
continue;
570+
}
569571

570572
const auto& [posTrackQA, existPosTrkQA] = getTrackQA(posTrack);
571573
const auto& [negTrackQA, existNegTrkQA] = getTrackQA(negTrack);
@@ -585,6 +587,9 @@ struct TreeWriterTpcV0 {
585587
continue;
586588
}
587589
const auto& bachTrack = casc.bachelor_as<TrksType>();
590+
if (!isTrackSelected(bachTrack, trackSelection)) {
591+
continue;
592+
}
588593
const V0Daughter bachDaughter = createV0Daughter<IsCorrectedDeDx>(casc, bachTrack, cascId, DaughterKaon);
589594
const auto& [bachTrackQA, existBachTrkQA] = getTrackQA(bachTrack);
590595
// Omega and antiomega
@@ -962,12 +967,7 @@ struct TreeWriterTPCTOF {
962967
}
963968
rowTPCTOFTreeWithTrkQA.reserve(tracks.size());
964969
for (auto const& trk : tracksWithITSPid) {
965-
if (!((trackSelection == TrackSelectionNoCut) ||
966-
((trackSelection == TrackSelectionGlobalTrack) && trk.isGlobalTrack()) ||
967-
((trackSelection == TrackSelectionTrackWoPtEta) && trk.isGlobalTrackWoPtEta()) ||
968-
((trackSelection == TrackSelectionGlobalTrackWoDCA) && trk.isGlobalTrackWoDCA()) ||
969-
((trackSelection == TrackSelectionQualityTracks) && trk.isQualityTrack()) ||
970-
((trackSelection == TrackSelectionInAcceptanceTracks) && trk.isInAcceptanceTrack()))) {
970+
if (!isTrackSelected(trk, trackSelection)) {
971971
continue;
972972
}
973973
// get the corresponding trackQA using labelTracks2TracKQA and get variables of interest

DPG/Tasks/TPC/utilsTpcSkimsTableCreator.h

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,6 @@ inline bool isEventSelected(const CollisionType& collision, const int applyEvSel
5555
return true;
5656
};
5757

58-
inline double tsalisCharged(const double pt, const double mass, const double sqrtSNN)
59-
{
60-
const double a = 6.81, b = 59.24;
61-
const double c = 0.082, d = 0.151;
62-
const double mt = std::sqrt(mass * mass + pt * pt);
63-
const double n = a + b / sqrtSNN;
64-
const double t = c + d / sqrtSNN;
65-
const double p0 = n * t;
66-
const double result = std::pow((1. + mt / p0), -n);
67-
return result;
68-
};
69-
7058
/// Random downsampling trigger function using Tsalis/Hagedorn spectra fit (sqrt(s) = 62.4 GeV to 13 TeV)
7159
/// as in https://iopscience.iop.org/article/10.1088/2399-6528/aab00f/pdf
7260
inline bool downsampleTsalisCharged(TRandom3* fRndm, const double pt, const double factor1Pt, const double mass, const double sqrtSNN, const double maxPt = 1e9)
@@ -75,14 +63,40 @@ inline bool downsampleTsalisCharged(TRandom3* fRndm, const double pt, const doub
7563
return true;
7664
}
7765

78-
const double prob = tsalisCharged(pt, mass, sqrtSNN) * pt;
79-
const double probNorm = tsalisCharged(1., mass, sqrtSNN);
66+
auto tsalisCharged = [&](const double pT) {
67+
const double a = 6.81, b = 59.24;
68+
const double c = 0.082, d = 0.151;
69+
const double mt = std::sqrt(mass * mass + pT * pT);
70+
const double n = a + b / sqrtSNN;
71+
const double t = c + d / sqrtSNN;
72+
const double p0 = n * t;
73+
const double result = std::pow((1. + mt / p0), -n);
74+
return result;
75+
};
76+
77+
const double prob = tsalisCharged(pt) * pt;
78+
const double probNorm = tsalisCharged(1.);
8079
if ((fRndm->Rndm() * ((prob / probNorm) * pt * pt)) > factor1Pt) {
8180
return false;
8281
} else {
8382
return true;
8483
}
8584
};
8685

86+
// Track selection
87+
template <typename TrackType>
88+
inline bool isTrackSelected(const TrackType& track, const int trackSelection)
89+
{
90+
bool isSelected{false};
91+
isSelected |= trackSelection == TrackSelectionNoCut;
92+
isSelected |= (trackSelection == TrackSelectionGlobalTrack) && track.isGlobalTrack();
93+
isSelected |= (trackSelection == TrackSelectionTrackWoPtEta) && track.isGlobalTrackWoPtEta();
94+
isSelected |= (trackSelection == TrackSelectionGlobalTrackWoDCA) && track.isGlobalTrackWoDCA();
95+
isSelected |= (trackSelection == TrackSelectionQualityTracks) && track.isQualityTrack();
96+
isSelected |= (trackSelection == TrackSelectionInAcceptanceTracks) && track.isInAcceptanceTrack();
97+
98+
return isSelected;
99+
}
100+
87101
} // namespace o2::dpg_tpcskimstablecreator
88102
#endif // DPG_TASKS_TPC_UTILSTPCSKIMSTABLECREATOR_H_

0 commit comments

Comments
 (0)