Skip to content

Commit 71dd95b

Browse files
authored
Add TOF selection in track selection (#4385)
1 parent e09984b commit 71dd95b

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

Analysis/Core/include/Analysis/TrackSelection.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class TrackSelection : public TObject
4242
(track.tpcChi2NCl() < mMaxChi2PerClusterTPC) &&
4343
((mRequireITSRefit) ? (track.flags() & 0x4) : true) &&
4444
((mRequireTPCRefit) ? (track.flags() & 0x40) : true) &&
45+
((mRequireTOF) ? ((track.flags() & 0x2000) && (track.flags() & 0x80000000)) : true) &&
4546
FulfillsITSHitRequirements(track.itsClusterMap()) &&
4647
abs(track.dcaXY()) < mMaxDcaXY && abs(track.dcaZ()) < mMaxDcaZ) {
4748
return true;
@@ -63,6 +64,7 @@ class TrackSelection : public TObject
6364
{
6465
mRequireTPCRefit = requireTPCRefit;
6566
}
67+
void SetRequireTOF(bool requireTOF = true) { mRequireTOF = requireTOF; }
6668
void SetMinNClustersTPC(int minNClustersTPC)
6769
{
6870
mMinNClustersTPC = minNClustersTPC;
@@ -131,6 +133,7 @@ class TrackSelection : public TObject
131133

132134
bool mRequireITSRefit; // require refit in ITS
133135
bool mRequireTPCRefit; // require refit in TPC
136+
bool mRequireTOF; // require that track exits the TOF and that it has an associated time measurement (kTIME and kTOFOUT)
134137

135138
std::vector<std::pair<int8_t, std::set<uint8_t>>>
136139
mRequiredITSHits; // vector of ITS requirements (minNRequiredHits in

Analysis/DataModel/include/Analysis/TrackSelectionTables.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,15 @@ DECLARE_SOA_COLUMN(DcaZ, dcaZ, float);
2323
// Columns to store track filter decisions
2424
DECLARE_SOA_COLUMN(IsGlobalTrack, isGlobalTrack, uint8_t);
2525
DECLARE_SOA_COLUMN(IsGlobalTrackSDD, isGlobalTrackSDD, uint8_t);
26+
DECLARE_SOA_COLUMN(IsGlobalTrackwTOF, isGlobalTrackwTOF, uint8_t);
2627

2728
} // namespace track
2829
DECLARE_SOA_TABLE(TracksExtended, "AOD", "TRACKEXTENDED", track::DcaXY,
2930
track::DcaZ);
3031

3132
DECLARE_SOA_TABLE(TrackSelection, "AOD", "TRACKSELECTION", track::IsGlobalTrack,
32-
track::IsGlobalTrackSDD);
33+
track::IsGlobalTrackSDD,
34+
track::IsGlobalTrackwTOF);
3335
} // namespace o2::aod
3436

3537
#endif // O2_ANALYSIS_TRACKSELECTIONTABLES_H_

Analysis/Tasks/trackselection.cxx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,14 @@ TrackSelection getGlobalTrackSelectionSDD()
6767
return selectedTracks;
6868
}
6969

70+
// Default track selection requiring a cluster matched in TOF
71+
TrackSelection getGlobalTrackSelectionwTOF()
72+
{
73+
TrackSelection selectedTracks = getGlobalTrackSelection();
74+
selectedTracks.SetRequireTOF(kTRUE);
75+
return selectedTracks;
76+
}
77+
7078
//****************************************************************************************
7179
/**
7280
* Produce the derived track quantities needed for track selection.
@@ -111,18 +119,21 @@ struct TrackSelectionTask {
111119

112120
TrackSelection globalTracks;
113121
TrackSelection globalTracksSDD;
122+
TrackSelection globalTrackswTOF;
114123

115124
void init(InitContext&)
116125
{
117126
globalTracks = getGlobalTrackSelection();
118127
globalTracksSDD = getGlobalTrackSelectionSDD();
128+
globalTrackswTOF = getGlobalTrackSelectionwTOF();
119129
}
120130

121131
void process(soa::Join<aod::FullTracks, aod::TracksExtended> const& tracks)
122132
{
123133
for (auto& track : tracks) {
124134
filterTable((uint8_t)globalTracks.IsSelected(track),
125-
(uint8_t)globalTracksSDD.IsSelected(track));
135+
(uint8_t)globalTracksSDD.IsSelected(track),
136+
(uint8_t)globalTrackswTOF.IsSelected(track));
126137
}
127138
}
128139
};

0 commit comments

Comments
 (0)