Skip to content

Commit 9d07a45

Browse files
Update single track selector
1 parent 6288a38 commit 9d07a45

File tree

1 file changed

+37
-41
lines changed

1 file changed

+37
-41
lines changed

PWGCF/TableProducer/singleTrackSelector.cxx

Lines changed: 37 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ using namespace o2::aod;
3737
struct singleTrackSelector {
3838

3939
Configurable<int> applyEvSel{"applyEvSel", 2, "Flag to apply rapidity cut: 0 -> no event selection, 1 -> Run 2 event selection, 2 -> Run 3 event selection"};
40+
Configurable<float> cutDcaXy{"cutDcaXy", 0.12, ""};
41+
Configurable<float> cutTPCNSigmaPr{"cutTPCNSigmaPr", 3.f, "Cut on the TPC nsigma for protons"};
42+
Configurable<float> cutTPCNSigmaDe{"cutTPCNSigmaDe", 3.f, "Cut on the TPC nsigma for deuteron"};
4043
// Configurable<int> trackSelection{"trackSelection", 1, "Track selection: 0 -> No Cut, 1 -> kGlobalTrack, 2 -> kGlobalTrackWoPtEta, 3 -> kGlobalTrackWoDCA, 4 -> kQualityTracks, 5 -> kInAcceptanceTracks"};
4144

4245
using Trks = soa::Join<aod::Tracks, aod::TracksExtra, aod::pidEvTimeFlags, aod::TracksDCA,
@@ -57,54 +60,47 @@ struct singleTrackSelector {
5760

5861
void process(soa::Filtered<Coll>::iterator const& collision, soa::Filtered<Trks> const& tracks)
5962
{
60-
6163
tableRow.reserve(tracks.size());
62-
// tableRowColl.reserve(1);
63-
6464
tableRowColl(collision.globalIndex(),
6565
collision.multTPC(),
6666
collision.posZ());
6767

6868
for (auto& track : tracks) {
69-
if (track.hasITS()) {
70-
71-
tableRow(track.collisionId(),
72-
track.hasITS(),
73-
track.hasTOF(),
74-
track.px(),
75-
track.py(),
76-
track.pz(),
77-
track.p(),
78-
track.pt(),
79-
track.tpcInnerParam(),
80-
track.tpcSignal(),
81-
track.beta(),
82-
track.dcaXY(),
83-
track.dcaZ(),
84-
track.tpcNClsFound(),
85-
track.tpcFoundOverFindableCls(),
86-
track.tpcChi2NCl(),
87-
track.itsNCls(),
88-
track.itsChi2NCl(),
89-
track.sign(),
90-
track.eta(),
91-
track.phi(),
92-
// track.tpcNClsCrossedRows(),
93-
singletrackselector::packInTableInt<singletrackselector::storedcrossedrows::binning>(track.tpcNClsCrossedRows()),
94-
singletrackselector::packInTable<singletrackselector::nsigma::binning>(track.tofNSigmaPr()),
95-
singletrackselector::packInTable<singletrackselector::nsigma::binning>(track.tpcNSigmaPr()),
96-
singletrackselector::packInTable<singletrackselector::nsigma::binning>(track.tofNSigmaDe()),
97-
singletrackselector::packInTable<singletrackselector::nsigma::binning>(track.tpcNSigmaDe()));
98-
99-
if ((singletrackselector::unPackInt<singletrackselector::storedcrossedrows::binning>(singletrackselector::packInTableInt<singletrackselector::storedcrossedrows::binning>(track.tpcNClsCrossedRows())) != track.tpcNClsCrossedRows()) && (singletrackselector::unPackInt<singletrackselector::storedcrossedrows::binning>(singletrackselector::packInTableInt<singletrackselector::storedcrossedrows::binning>(track.tpcNClsCrossedRows())) != (track.tpcNClsCrossedRows() - 1))) {
100-
LOG(info) << "crossedRows: " << track.tpcNClsCrossedRows()
101-
<< ", Unpacked crossedRows: " << singletrackselector::unPackInt<singletrackselector::storedcrossedrows::binning>(singletrackselector::packInTableInt<singletrackselector::storedcrossedrows::binning>(track.tpcNClsCrossedRows()));
102-
// << "deve essere uguale a" << singletrackselector::unPack<singletrackselector::nsigma::binning>;
103-
}
69+
if (abs(track.dcaXY()) > cutDcaXy) {
70+
continue;
10471
}
105-
106-
// LOG(info) << "UnPacked crossedRows: " << singletrackselector::unPack(o2::aod::singletrackselector::storedcrossedrows::binning::binned_t(o2::aod::singletrackselector::storedcrossedrows::binning(tpcNClsCrossedRows)) )
107-
// LOG(info) << "Unpacked crossedRows: " << unpackedValue;
72+
if (abs(track.tpcNSigmaPr()) > cutTPCNSigmaPr) {
73+
continue;
74+
}
75+
if (abs(track.tpcNSigmaDe()) > cutTPCNSigmaDe) {
76+
continue;
77+
}
78+
tableRow(tableRowColl.lastIndex(),
79+
track.hasITS(),
80+
track.hasTOF(),
81+
track.px(),
82+
track.py(),
83+
track.pz(),
84+
track.p(),
85+
track.pt(),
86+
track.tpcInnerParam(),
87+
track.tpcSignal(),
88+
track.beta(),
89+
track.dcaXY(),
90+
track.dcaZ(),
91+
track.tpcNClsFound(),
92+
track.tpcFoundOverFindableCls(),
93+
track.tpcChi2NCl(),
94+
track.itsNCls(),
95+
track.itsChi2NCl(),
96+
track.sign(),
97+
track.eta(),
98+
track.phi(),
99+
singletrackselector::packInTableInt<singletrackselector::storedcrossedrows::binning>(track.tpcNClsCrossedRows()),
100+
singletrackselector::packInTable<singletrackselector::nsigma::binning>(track.tofNSigmaPr()),
101+
singletrackselector::packInTable<singletrackselector::nsigma::binning>(track.tpcNSigmaPr()),
102+
singletrackselector::packInTable<singletrackselector::nsigma::binning>(track.tofNSigmaDe()),
103+
singletrackselector::packInTable<singletrackselector::nsigma::binning>(track.tpcNSigmaDe()));
108104
}
109105
}
110106
};

0 commit comments

Comments
 (0)