@@ -146,6 +146,8 @@ struct CreateResolutionMap {
146146 Configurable<bool > includeITSsa{" includeITSsa" , false , " Flag to include ITSsa tracks" };
147147 Configurable<float > maxpt_itssa{" maxpt_itssa" , 0.15 , " max pt for ITSsa track" };
148148 Configurable<float > maxMeanITSClusterSize{" maxMeanITSClusterSize" , 16 , " max <ITS cluster size> x cos(lambda)" };
149+ Configurable<bool > checkPIDforTracking{" checkPIDforTracking" , false , " check for PID in tracking" };
150+ Configurable<int > PartIdentifier{" PartIdentifier" , 2 , " Particle identifier for selected particle; 0: electron, 1: muon, 2: pion, 3: kaon, 4: proton, 5: deuteron, 6: triton, 7: helium3, 8: alpha" };
149151 } electroncuts;
150152
151153 struct : ConfigurableGroup {
@@ -498,6 +500,10 @@ struct CreateResolutionMap {
498500 }
499501 }
500502
503+ if (electroncuts.checkPIDforTracking && track.pidForTracking () != static_cast <unsigned int >(std::abs (electroncuts.PartIdentifier ))) {
504+ return false ;
505+ }
506+
501507 return true ;
502508 }
503509
@@ -628,8 +634,8 @@ struct CreateResolutionMap {
628634 if constexpr (withMFTCov) {
629635 auto mfttrackcov = mftCovs.rawIteratorAt (map_mfttrackcovs[mfttrack.globalIndex ()]);
630636 auto muonAtMP = propagateMuon (mchtrack, mchtrack, collision, propagationPoint::kToMatchingPlane , muoncuts.matchingZ , mBzMFT , 0.0 ); // propagated to matching plane
631- o2::track::TrackParCovFwd mftsaAtMP = getTrackParCovFwd (mfttrack, mfttrackcov); // values at innermost update
632- mftsaAtMP.propagateToZhelix (muoncuts.matchingZ , mBzMFT ); // propagated to matching plane
637+ o2::track::TrackParCovFwd mftsaAtMP = getTrackParCovFwd (mfttrack, mfttrackcov); // values at innermost update
638+ mftsaAtMP.propagateToZhelix (muoncuts.matchingZ , mBzMFT ); // propagated to matching plane
633639 etaMatchedMFTatMP = mftsaAtMP.getEta ();
634640 phiMatchedMFTatMP = mftsaAtMP.getPhi ();
635641 etaMatchedMCHMIDatMP = muonAtMP.getEta ();
0 commit comments