@@ -37,6 +37,9 @@ using namespace o2::aod;
3737struct 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