CMS 3D CMS Logo

AlignmentTrackSelector.h
Go to the documentation of this file.
1 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentTrackSelector_h
2 #define Alignment_CommonAlignmentAlgorithm_AlignmentTrackSelector_h
3 
11 #include <vector>
12 
13 namespace edm {
14  class Event;
15  class EventSetup;
16  class ParameterSet;
17 }
18 
19 class TrackingRecHit;
20 class SiStripRecHit1D;
21 class SiStripRecHit2D;
22 
24 {
25 
26  public:
27 
28  typedef std::vector<const reco::Track*> Tracks;
29 
32 
35 
37  Tracks select(const Tracks& tracks, const edm::Event& evt, const edm::EventSetup& eSetup) const;
39  bool useThisFilter();
40 
41 
42  private:
43 
45  Tracks basicCuts(const Tracks& tracks, const edm::Event& evt, const edm::EventSetup& eSetup) const;
47  bool detailedHitsCheck(const reco::Track* track, const edm::Event& evt, const edm::EventSetup& eSetup) const;
48  bool isHit2D(const TrackingRecHit &hit) const;
50  bool isOkCharge(const TrackingRecHit* therechit) const;
51  bool isOkChargeStripHit(const SiStripRecHit1D &siStripRecHit1D) const;
52  bool isOkChargeStripHit(const SiStripRecHit2D &siStripRecHit2D) const;
53  bool isIsolated(const TrackingRecHit* therechit, const edm::Event& evt) const;
54  bool isOkTrkQuality(const reco::Track* track) const;
55 
57  Tracks theNHighestPtTracks(const Tracks& tracks) const;
58 
59  //filter tracks that do not have a min # of hits taken by the Skim&Prescale workflow
60  Tracks checkPrescaledHits(const Tracks& tracks, const edm::Event& evt) const;
61 
63  struct ComparePt {
64  bool operator()( const reco::Track* t1, const reco::Track* t2 ) const {
65  return t1->pt()> t2->pt();
66  }
67  };
69 
70  const bool applyBasicCuts_, applyNHighestPt_, applyMultiplicityFilter_;
71  const int seedOnlyFromAbove_;
72  const bool applyIsolation_, chargeCheck_;
73  const int nHighestPt_, minMultiplicity_, maxMultiplicity_;
74  const bool multiplicityOnInput_;
75  const double ptMin_,ptMax_,pMin_,pMax_,etaMin_,etaMax_,phiMin_,phiMax_;
76  const double nHitMin_,nHitMax_,chi2nMax_, d0Min_,d0Max_,dzMin_,dzMax_;
77  const int theCharge_;
78  const double minHitChargeStrip_, minHitIsolation_;
81  const bool countStereoHitAs2D_; // count hits on stereo components of GluedDet for nHitMin2D_?
82  const unsigned int nHitMin2D_;
83  const int minHitsinTIB_, minHitsinTOB_, minHitsinTID_, minHitsinTEC_;
84  const int minHitsinBPIX_, minHitsinFPIX_, minHitsinPIX_;
85  const int minHitsinTIDplus_, minHitsinTIDminus_, minHitsinTECplus_, minHitsinTECminus_;
86  const int minHitsinFPIXplus_, minHitsinFPIXminus_;
87  const int minHitsinENDCAP_, minHitsinENDCAPplus_, minHitsinENDCAPminus_;
88  const double maxHitDiffEndcaps_;
89  const double nLostHitMax_;
90  std::vector<double> RorZofFirstHitMin_;
91  std::vector<double> RorZofFirstHitMax_;
92  std::vector<double> RorZofLastHitMin_;
93  std::vector<double> RorZofLastHitMax_;
94 
95  const edm::InputTag clusterValueMapTag_; // ValueMap containing association cluster - flag
96  edm::EDGetTokenT<AliClusterValueMap> clusterValueMapToken_; // ValueMap containing association cluster - flag
97  const int minPrescaledHits_;
99 
100  std::vector<reco::TrackBase::TrackQuality> trkQualities_;
101 
102  std::vector<reco::TrackBase::TrackAlgorithm> trkSteps_;
105 };
106 
107 #endif
108 
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > matchedrecHitsToken_
std::vector< double > RorZofFirstHitMax_
std::vector< const reco::Track * > Tracks
std::vector< reco::TrackBase::TrackAlgorithm > trkSteps_
std::vector< reco::TrackBase::TrackQuality > trkQualities_
const unsigned int nHitMin2D_
edm::EDGetTokenT< SiStripRecHit2DCollection > rphirecHitsToken_
auto const T2 &decltype(t1.eta()) t2
Definition: deltaR.h:16
double pt() const
track transverse momentum
Definition: TrackBase.h:616
std::vector< double > RorZofLastHitMin_
edm::EDGetTokenT< AliClusterValueMap > clusterValueMapToken_
std::vector< double > RorZofFirstHitMin_
const double ptMin_
if true, cut min/maxMultiplicity on input instead of on final result
const edm::InputTag clusterValueMapTag_
HLT enums.
std::vector< double > RorZofLastHitMax_
bool operator()(const reco::Track *t1, const reco::Track *t2) const
compare two tracks in pt (used by theNHighestPtTracks)