@@ -72,26 +72,29 @@ struct CheckFilterBit {
7272 // Binning
7373 ConfigurableAxis binsPt{" binsPt" , {VARIABLE_WIDTH, 0.0 , 0.1 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.7 , 0.8 , 0.9 , 1.0 , 1.1 , 1.2 , 1.3 , 1.4 , 1.5 , 2.0 , 5.0 , 10.0 , 20.0 , 50.0 }, " " };
7474 ConfigurableAxis binsEta{" binsEta" , {30 , -1.5 , 1.5 }, " " };
75+ ConfigurableAxis binsLength{" binsLength" , {VARIABLE_WIDTH, 0.0 , 10 ., 20 ., 50 ., 80 ., 120 ., 160 ., 200 ., 240 ., 280 ., 320 ., 380 , 420 , 460 ., 500 ., 550 }, " " };
7576 Configurable<float > zVtxCut{" zVtxCut" , 10 ., " Primary Vtx z cut" };
7677 ConfigurableAxis binsPhi{" binsPhi" , {180 , 0 ., 2 * M_PI}, " Phi binning" };
7778 ConfigurableAxis binsTPCITSmatching{" binsTPCITSmatching" , {2 , 0.5 , 2.5 }, " ITSTPCmatching" };
78- ConfigurableAxis binsNclustTPC{" binsNclustTPC" , {VARIABLE_WIDTH, -0.5 , 0.5 , 10 , 50 , 60 , 70 , 80 , 90 , 100 , 105 , 110 , 115 , 120 , 125 , 130 , 135 , 140 , 145 , 150 , 155 , 160 }, " " };
79+ ConfigurableAxis binsNclustTPC{" binsNclustTPC" , {VARIABLE_WIDTH, -0.5 , 0.5 , 10 , 30 , 50 , 60 , 70 , 80 , 90 , 100 , 105 , 110 , 115 , 120 , 125 , 130 , 135 , 140 , 145 , 150 , 155 , 160 }, " " };
80+ ConfigurableAxis binsRxy{" binsRxy" , {VARIABLE_WIDTH, 0.0 , 0.5 , 1 ., 1.5 , 2 ., 2.5 , 3 ., 4 ., 10 ., 10 ., 20 ., 50 ., 80 ., 120 ., 160 ., 200 ., 240 ., 280 ., 320 ., 380 , 420 , 460 ., 500 ., 550 }, " " };
81+ ConfigurableAxis binsIsPropagaed{" binsIsPropaged" , {2 , -0.5 , 1.5 }, " isTrackWithinBeamPipe" };
7982
8083 HistogramRegistry histos;
8184 Int_t ncollisionCounter = 0 ;
8285 float fzero = 0 .;
8386 using Tracksextension = soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection, aod::TrackSelectionExtension, aod::TracksDCA>;
8487 using TracksextensionMC = soa::Join<Tracksextension, aod::McTrackLabels>;
8588 SliceCache cache;
86- Partition<Tracksextension> positiveTPConlyTracks = o2::aod::track::signed1Pt > fzero&& o2::aod::track::tpcNClsFindable > (uint8_t )0 && o2::aod::track::itsChi2NCl < (float_t )0 ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==o2::aod::track::TPC && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==0;
87- Partition<Tracksextension> negativeTPConlyTracks = o2::aod::track::signed1Pt < fzero && o2::aod::track::tpcNClsFindable > (uint8_t )0 && o2::aod::track::itsChi2NCl < (float_t )0 ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==o2::aod::track::TPC && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==0;
88- Partition<Tracksextension> positiveITSonlyTracks = o2::aod::track::signed1Pt > fzero&& o2::aod::track::tpcChi2NCl<(float_t )0 && o2::aod::track::itsChi2NCl>(float_t ) 0 ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==0 && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==o2::aod::track::ITS && o2::aod::track::passedITSNCls==true;// && o2::aod::track::itsNCls==7;
89- Partition<Tracksextension> negativeITSonlyTracks = o2::aod::track::signed1Pt < fzero && o2::aod::track::tpcChi2NCl < (float_t )0 && o2::aod::track::itsChi2NCl > (float_t )0 ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==0 &&(o2::aod::track::detectorMap & o2::aod::track::ITS) ==o2::aod::track::ITS && o2::aod::track::passedITSNCls==true;// && o2::aod::track::itsNCls==7;
89+ Partition<Tracksextension> positiveTPConlyTracks = o2::aod::track::signed1Pt > fzero&& o2::aod::track::tpcNClsFindable > (uint8_t )0 && o2::aod::track::itsChi2NCl < (float_t )0 && o2::aod::track::trackType == ( uint8_t )o2::aod::track::TrackTypeEnum::Track ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==o2::aod::track::TPC && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==0;
90+ Partition<Tracksextension> negativeTPConlyTracks = o2::aod::track::signed1Pt < fzero && o2::aod::track::tpcNClsFindable > (uint8_t )0 && o2::aod::track::itsChi2NCl < (float_t )0 && o2::aod::track::trackType == ( uint8_t )o2::aod::track::TrackTypeEnum::Track ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==o2::aod::track::TPC && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==0;
91+ Partition<Tracksextension> positiveITSonlyTracks = o2::aod::track::signed1Pt > fzero&& o2::aod::track::tpcChi2NCl<(float_t )0 && o2::aod::track::itsChi2NCl>(float_t ) 0 && o2::aod::track::trackType == ( uint8_t )o2::aod::track::TrackTypeEnum::Track ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==0 && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==o2::aod::track::ITS && o2::aod::track::passedITSNCls==true;// && o2::aod::track::itsNCls==7;
92+ Partition<Tracksextension> negativeITSonlyTracks = o2::aod::track::signed1Pt < fzero && o2::aod::track::tpcChi2NCl < (float_t )0 && o2::aod::track::itsChi2NCl > (float_t )0 && o2::aod::track::trackType == ( uint8_t )o2::aod::track::TrackTypeEnum::Track ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==0 &&(o2::aod::track::detectorMap & o2::aod::track::ITS) ==o2::aod::track::ITS && o2::aod::track::passedITSNCls==true;// && o2::aod::track::itsNCls==7;
9093
91- Partition<TracksextensionMC> positiveTPConlyTracksMC = o2::aod::track::signed1Pt > fzero&& o2::aod::track::tpcNClsFindable > (uint8_t )0 && o2::aod::track::itsChi2NCl < (float_t )0 ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==o2::aod::track::TPC && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==0;
92- Partition<TracksextensionMC> negativeTPConlyTracksMC = o2::aod::track::signed1Pt < fzero && o2::aod::track::tpcNClsFindable > (uint8_t )0 && o2::aod::track::itsChi2NCl < (float_t )0 ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==o2::aod::track::TPC && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==0;
93- Partition<TracksextensionMC> positiveITSonlyTracksMC = o2::aod::track::signed1Pt > fzero&& o2::aod::track::tpcChi2NCl<(float_t )0 && o2::aod::track::itsChi2NCl>(float_t ) 0 ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==0 && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==o2::aod::track::ITS && o2::aod::track::passedITSNCls==true;// && o2::aod::track::itsNCls==7;
94- Partition<TracksextensionMC> negativeITSonlyTracksMC = o2::aod::track::signed1Pt < fzero && o2::aod::track::tpcChi2NCl < (float_t )0 && o2::aod::track::itsChi2NCl > (float_t )0 ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==0 &&(o2::aod::track::detectorMap & o2::aod::track::ITS) ==o2::aod::track::ITS && o2::aod::track::passedITSNCls==true;// && o2::aod::track::itsNCls==7;
94+ Partition<TracksextensionMC> positiveTPConlyTracksMC = o2::aod::track::signed1Pt > fzero&& o2::aod::track::tpcNClsFindable > (uint8_t )0 && o2::aod::track::itsChi2NCl < (float_t )0 && o2::aod::track::trackType == ( uint8_t )o2::aod::track::TrackTypeEnum::Track ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==o2::aod::track::TPC && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==0;
95+ Partition<TracksextensionMC> negativeTPConlyTracksMC = o2::aod::track::signed1Pt < fzero && o2::aod::track::tpcNClsFindable > (uint8_t )0 && o2::aod::track::itsChi2NCl < (float_t )0 && o2::aod::track::trackType == ( uint8_t )o2::aod::track::TrackTypeEnum::Track ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==o2::aod::track::TPC && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==0;
96+ Partition<TracksextensionMC> positiveITSonlyTracksMC = o2::aod::track::signed1Pt > fzero&& o2::aod::track::tpcChi2NCl<(float_t )0 && o2::aod::track::itsChi2NCl>(float_t ) 0 && o2::aod::track::trackType == ( uint8_t )o2::aod::track::TrackTypeEnum::Track ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==0 && (o2::aod::track::detectorMap & o2::aod::track::ITS) ==o2::aod::track::ITS && o2::aod::track::passedITSNCls==true;// && o2::aod::track::itsNCls==7;
97+ Partition<TracksextensionMC> negativeITSonlyTracksMC = o2::aod::track::signed1Pt < fzero && o2::aod::track::tpcChi2NCl < (float_t )0 && o2::aod::track::itsChi2NCl > (float_t )0 && o2::aod::track::trackType == ( uint8_t )o2::aod::track::TrackTypeEnum::Track ; // && (o2::aod::track::detectorMap & o2::aod::track::TPC) ==0 &&(o2::aod::track::detectorMap & o2::aod::track::ITS) ==o2::aod::track::ITS && o2::aod::track::passedITSNCls==true;// && o2::aod::track::itsNCls==7;
9598
9699 void init (InitContext const &)
97100 {
@@ -101,7 +104,9 @@ struct CheckFilterBit {
101104 const AxisSpec axisPhi{binsPhi, " #it{#varphi}" };
102105 const AxisSpec axisNclustTPC{binsNclustTPC, " NclustTPC" };
103106 const AxisSpec axisTPCITSmatching{binsNclustTPC, " NclustTPC" };
104-
107+ const AxisSpec axisLength{binsLength, " track length (cm)" };
108+ const AxisSpec axisRxy{binsRxy, " track Rxy (cm)" };
109+ const AxisSpec axisIsPropagated{binsIsPropagaed, " is track within BP" };
105110 histos.add (" EventProp/histMCcollZ" , " MC coll Z (cm); #it{z_{MCcoll}} (cm)" , kTH1D , {{100 , -20 ., 20 .}});
106111 histos.add (" EventProp/histDatacollZ" , " MC coll Z (cm); #it{z_{MCcoll}} (cm)" , kTH1D , {{100 , -20 ., 20 .}});
107112 histos.add (" EventProp/histPtTrackNegCollID" , " pt" , kTH1D , {axisPt});
@@ -116,6 +121,8 @@ struct CheckFilterBit {
116121 histos.add (" Tracks/Reco/histpt3DFB5" , " FB5 tracks;#it{p}_{T} (GeV/#it{c});#it{#eta};#it{#varphi}" , kTH3D , {axisPt, axisEta, axisPhi});
117122 histos.add (" Tracks/Reco/histpt3DITSonly" , " ITSonly tracks;#it{p}_{T} (GeV/#it{c});#it{#eta};#it{#varphi}" , kTH3D , {axisPt, axisEta, axisPhi});
118123 histos.add (" Tracks/Reco/histpt3DTPConly" , " TPConly tracks;#it{p}_{T} (GeV/#it{c});#it{#eta};#it{#varphi}" , kTH3D , {axisPt, axisEta, axisPhi});
124+ histos.add (" Tracks/Reco/histpt3DTPConlyPtLengthRadiusNclust" , " TPConly PtLengthRadiusNclust;#it{p}_{T} (GeV/#it{c});length (cm);Rx,y (cm);nclust;isPropagated" , HistType::kTHnF , {axisPt, axisLength, axisRxy, axisNclustTPC, axisIsPropagated});
125+ histos.add (" Tracks/Reco/histpt3DFB0PtLengthRadiusNclust" , " TPConly PtLengthRadiusNclust;#it{p}_{T} (GeV/#it{c});length (cm);Rx,y (cm);nclust;isPropagated" , HistType::kTHnF , {axisPt, axisLength, axisRxy, axisNclustTPC, axisIsPropagated});
119126
120127 histos.add (" Tracks/MCgen/histMCgenpt" , " pt" , kTH1D , {axisPt});
121128 histos.add (" Tracks/MCgen/histMCgen3dPhysPrimary" , " MC Phys. Prim.;#it{p}_{T} (GeV/#it{c});#it{#eta};#it{#varphi}" , kTH3D , {axisPt, axisEta, axisPhi});
@@ -187,8 +194,10 @@ struct CheckFilterBit {
187194 if (track.itsNClsInnerBarrel () > 0 )
188195 hasITS++;
189196 histos.fill (HIST (" Tracks/Reco/histNclustTPC" ), track.pt (), track.eta (), track.phi (), track.tpcNClsFound (), hasITS);
190- if (track.isGlobalTrack ())
197+ if (track.isGlobalTrack ()) {
191198 histos.fill (HIST (" Tracks/Reco/histpt3DFB0" ), track.pt (), track.eta (), track.phi ());
199+ histos.fill (HIST (" Tracks/Reco/histpt3DFB0PtLengthRadiusNclust" ), track.pt (), track.length (), std::sqrt (track.x () * track.x () + track.y () * track.y ()), track.tpcNClsFound (), track.isWithinBeamPipe () ? 1 : 0 );
200+ }
192201 if (track.trackCutFlagFb1 ())
193202 histos.fill (HIST (" Tracks/Reco/histpt3DFB1" ), track.pt (), track.eta (), track.phi ());
194203 if (track.trackCutFlagFb2 ())
@@ -203,6 +212,10 @@ struct CheckFilterBit {
203212 histos.fill (HIST (" Tracks/Reco/histpt3DITSonly" ), track.pt (), track.eta (), track.phi ());
204213 if (track.itsChi2NCl () < 0 . && track.tpcChi2NCl () > 0 .)
205214 histos.fill (HIST (" Tracks/Reco/histpt3DTPConly" ), track.pt (), track.eta (), track.phi ());
215+ if (std::abs (track.eta ()) < 0.8 ) {
216+ histos.fill (HIST (" Tracks/Reco/histpt3DTPConlyPtLengthRadiusNclust" ), track.pt (), track.length (), std::sqrt (track.x () * track.x () + track.y () * track.y ()), track.tpcNClsFound (), track.isWithinBeamPipe () ? 1 : 0 );
217+ // Printf("track length %f, radius %f, isPropagated %d, tracktype %d",track.length(),std::sqrt(track.x()*track.x()+track.y()*track.y()),track.isWithinBeamPipe()?1:0,track.trackType());
218+ }
206219 }
207220
208221 void processData (Tracksextension const & tracks)
0 commit comments