@@ -60,7 +60,7 @@ class TrackingStudySpec : public Task
6060 void process (o2::globaltracking::RecoContainer& recoData);
6161 void updateTimeDependentParams (ProcessingContext& pc);
6262 std::vector<o2::BaseCluster<float >> prepareITSClusters (const o2::globaltracking::RecoContainer& data) const ;
63- bool selectITSTrack (GTrackID trkID, o2::globaltracking::RecoContainer& recoData, bool checkMCTruth = true ) const ;
63+ bool selectTrack (GTrackID trkID, o2::globaltracking::RecoContainer& recoData, bool checkMCTruth = true ) const ;
6464 T2VMap buildT2V (o2::globaltracking::RecoContainer& recoData, bool includeCont = false , bool requireMCMatch = true ) const ;
6565 void doDCAStudy (o2::globaltracking::RecoContainer& recoData);
6666 void doDCARefitStudy (o2::globaltracking::RecoContainer& recoData);
@@ -205,7 +205,7 @@ std::vector<o2::BaseCluster<float>> TrackingStudySpec::prepareITSClusters(const
205205 return std::move (itscl);
206206}
207207
208- bool TrackingStudySpec::selectITSTrack (GTrackID trkID, o2::globaltracking::RecoContainer& recoData, bool checkMCTruth) const
208+ bool TrackingStudySpec::selectTrack (GTrackID trkID, o2::globaltracking::RecoContainer& recoData, bool checkMCTruth) const
209209{
210210 const auto & conf = ITS3TrackingStudyParam::Instance ();
211211 if (!trkID.includesDet (GTrackID::ITS)) {
@@ -223,6 +223,11 @@ bool TrackingStudySpec::selectITSTrack(GTrackID trkID, o2::globaltracking::RecoC
223223 if (itsTrk.getChi2 () > conf.maxChi2 || itsTrk.getNClusters () < conf.minITSCls ) {
224224 return false ;
225225 }
226+ // TPC specific
227+ const auto & tpcTrk = recoData.getTPCTrack (contributorsGID[GTrackID::TPC]);
228+ if (tpcTrk.getChi2 () > conf.maxChi2 || tpcTrk.getNClusters () < conf.minITSCls ) {
229+ return false ;
230+ }
226231 // general
227232 const auto & gTrk = recoData.getTrackParam (trkID);
228233 if (gTrk .getPt () < conf.minPt || gTrk .getPt () > conf.maxPt ) {
@@ -353,7 +358,7 @@ void TrackingStudySpec::doDCAStudy(o2::globaltracking::RecoContainer& recoData)
353358 mTrackCounter &= cis;
354359 continue ;
355360 }
356- if (!selectITSTrack (contributorsGID[cis], recoData)) {
361+ if (!selectTrack (contributorsGID[cis], recoData)) {
357362 mTrackCounter &= vid.getSource ();
358363 continue ;
359364 }
@@ -416,16 +421,6 @@ void TrackingStudySpec::doDCARefitStudy(o2::globaltracking::RecoContainer& recoD
416421 TStopwatch sw;
417422 sw.Start ();
418423
419- auto selectTrack = [&](const VtxTrackID& trkID) -> bool {
420- if (trkID.isAmbiguous ()) {
421- return false ;
422- }
423- if (!trkID.isPVContributor ()) {
424- return false ;
425- }
426- return selectITSTrack (trkID, recoData);
427- };
428-
429424 // build track->vertex assoc.
430425 auto pvvec = recoData.getPrimaryVertices ();
431426 auto vtxRefs = recoData.getPrimaryVertexMatchedTrackRefs (); // references from vertex to these track IDs
@@ -456,7 +451,7 @@ void TrackingStudySpec::doDCARefitStudy(o2::globaltracking::RecoContainer& recoD
456451 mTrackCounter &= trkID.getSource ();
457452 return false ;
458453 }
459- if (!selectITSTrack (trkID, recoData, mUseMC )) {
454+ if (!selectTrack (trkID, recoData, mUseMC )) {
460455 mTrackCounter &= trkID.getSource ();
461456 return false ;
462457 }
@@ -607,7 +602,7 @@ void TrackingStudySpec::doPullStudy(o2::globaltracking::RecoContainer& recoData)
607602 };
608603
609604 auto checkInTrack = [&](GTrackID trkID) {
610- if (!selectITSTrack (trkID, recoData)) {
605+ if (!selectTrack (trkID, recoData)) {
611606 mTrackCounter &= trkID.getSource ();
612607 return ;
613608 }
0 commit comments