Skip to content

Commit ddf3690

Browse files
author
Andrea
committed
Making configurable pt-sampling parameters usable for partitioning track table; adding production of a collision table (needed when running on hyperloop)
1 parent 23a22ad commit ddf3690

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

DPG/Tasks/ITS/filterTracks.cxx

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,22 @@ DECLARE_SOA_COLUMN(MainBeautyAncestorPt, mainBeautyAncestorPt, float); //! origi
7070
DECLARE_SOA_COLUMN(MainBeautyAncestorY, mainBeautyAncestorY, float); //! original index in MCParticle tree of main mother: needed when chekcing if particles come from same mother
7171
DECLARE_SOA_COLUMN(MaxEtaDaughter, maxEtaDaughter, float); //! max (abs) eta of daughter particles, needed to reproduce acceptance cut
7272
} // namespace filterTracks
73+
DECLARE_SOA_TABLE(FilterColl, "AOD", "FILTERCOLL",
74+
o2::aod::collision::BCId,
75+
o2::aod::collision::PosX,
76+
o2::aod::collision::PosY,
77+
o2::aod::collision::PosZ,
78+
o2::aod::collision::CovXX,
79+
o2::aod::collision::CovXY,
80+
o2::aod::collision::CovYY,
81+
o2::aod::collision::CovXZ,
82+
o2::aod::collision::CovYZ,
83+
o2::aod::collision::CovZZ,
84+
o2::aod::collision::Flags,
85+
o2::aod::collision::Chi2,
86+
o2::aod::collision::NumContrib,
87+
o2::aod::collision::CollisionTime,
88+
o2::aod::collision::CollisionTimeRes);
7389
DECLARE_SOA_TABLE(FilterTrack, "AOD", "FILTERTRACK",
7490
o2::aod::track::CollisionId,
7591
aod::filterTracks::IsInsideBeamPipe,
@@ -128,6 +144,7 @@ struct FilterTracks {
128144
Produces<aod::FiltTracExtDet> filteredTracksTableExtraDet;
129145
Produces<aod::FilterTrackMC> filteredTracksMC;
130146
Produces<aod::GenParticles> selectedGenParticles;
147+
Produces<aod::FilterColl> filterCollTable;
131148

132149
// Configurable<int> dummy{"dummy", 0, "dummy"};
133150
Configurable<float> minTrackPt{"minTrackPt", 0.25, "min track pt"};
@@ -137,14 +154,15 @@ struct FilterTracks {
137154
Configurable<float> trackPtWeightMidPt{"trackPtWeightMidPt", 0.10f, "trackPtWeightMidPt"};
138155

139156
Filter trackFilter = requireGlobalTrackWoDCAInFilter() && aod::track::pt > minTrackPt&& nabs(aod::track::dcaXY) < trackDcaXyMax;
157+
using CollisionsWithEvSel = soa::Join<aod::Collisions, aod::EvSels>;
140158
using TracksWithSelAndDca = soa::Join<aod::Tracks, aod::TracksCov, aod::TracksDCA, aod::TracksDCACov, aod::TracksExtra, aod::TrackSelection, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTPCFullPr, aod::pidTOFFullPr>;
141159
using TracksWithSelAndDcaMc = soa::Join<TracksWithSelAndDca, aod::McTrackLabels>;
142-
Partition<soa::Filtered<TracksWithSelAndDca>> lowPtTracks = aod::track::pt < 2.f && (nabs(aod::track::pt * 10000.f - nround(aod::track::pt * 10000.f)) < trackPtWeightLowPt * 2.f);
143-
Partition<soa::Filtered<TracksWithSelAndDca>> midPtTracks = aod::track::pt > 2.f && aod::track::pt < 5.f && (nabs(aod::track::pt * 10000.f - nround(aod::track::pt * 10000.f)) < trackPtWeightMidPt * 2.f);
160+
Partition<soa::Filtered<TracksWithSelAndDca>> lowPtTracks = aod::track::pt < 2.f && (nabs(aod::track::pt * 10000.f - nround(aod::track::pt * 10000.f)) < trackPtWeightLowPt.node() * 2.f);
161+
Partition<soa::Filtered<TracksWithSelAndDca>> midPtTracks = aod::track::pt > 2.f && aod::track::pt < 5.f && (nabs(aod::track::pt * 10000.f - nround(aod::track::pt * 10000.f)) < trackPtWeightMidPt.node() * 2.f);
144162
Partition<soa::Filtered<TracksWithSelAndDca>> highPtTracks = aod::track::pt > 5.f;
145163

146-
Partition<soa::Filtered<TracksWithSelAndDcaMc>> lowPtTracksMC = aod::track::pt < 2.f && (nabs(aod::track::pt * 10000.f - nround(aod::track::pt * 10000.f)) < trackPtWeightLowPt * 2.f);
147-
Partition<soa::Filtered<TracksWithSelAndDcaMc>> midPtTracksMC = aod::track::pt > 2.f && aod::track::pt < 5.f && (nabs(aod::track::pt * 10000.f - nround(aod::track::pt * 10000.f)) < trackPtWeightMidPt * 2.f);
164+
Partition<soa::Filtered<TracksWithSelAndDcaMc>> lowPtTracksMC = aod::track::pt < 2.f && (nabs(aod::track::pt * 10000.f - nround(aod::track::pt * 10000.f)) < trackPtWeightLowPt.node() * 2.f);
165+
Partition<soa::Filtered<TracksWithSelAndDcaMc>> midPtTracksMC = aod::track::pt > 2.f && aod::track::pt < 5.f && (nabs(aod::track::pt * 10000.f - nround(aod::track::pt * 10000.f)) < trackPtWeightMidPt.node() * 2.f);
148166
Partition<soa::Filtered<TracksWithSelAndDcaMc>> highPtTracksMC = aod::track::pt > 5.f;
149167

150168
std::array<int, 3> pdgSignalParticleArray = {310, 421, 4122}; // K0s, D0 and Lc
@@ -255,6 +273,11 @@ struct FilterTracks {
255273
}
256274
}
257275
PROCESS_SWITCH(FilterTracks, processData, "process data", true);
276+
void processCollisions(CollisionsWithEvSel::iterator const& collision)
277+
{
278+
filterCollTable(collision.bcId(), collision.posX(), collision.posY(), collision.posZ(), collision.covXX(), collision.covXY(), collision.covYY(), collision.covXZ(), collision.covYZ(), collision.covZZ(), collision.flags(), collision.chi2(), collision.numContrib(), collision.collisionTime(), collision.collisionTimeRes());
279+
}
280+
PROCESS_SWITCH(FilterTracks, processCollisions, "process collisions", true);
258281

259282
void processMC(soa::Filtered<TracksWithSelAndDcaMc> const& tracks, aod::McParticles const& mcParticles)
260283
{

0 commit comments

Comments
 (0)