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 } // namespace edm
18 
19 class TrackingRecHit;
20 class SiStripRecHit1D;
21 class SiStripRecHit2D;
22 
24 public:
25  typedef std::vector<const reco::Track*> Tracks;
26 
29 
32 
34  Tracks select(const Tracks& tracks, const edm::Event& evt, const edm::EventSetup& eSetup) const;
36  bool useThisFilter();
37 
38 private:
40  Tracks basicCuts(const Tracks& tracks, const edm::Event& evt, const edm::EventSetup& eSetup) const;
42  bool detailedHitsCheck(const reco::Track* track, const edm::Event& evt, const edm::EventSetup& eSetup) const;
43  bool isHit2D(const TrackingRecHit& hit) const;
45  bool isOkCharge(const TrackingRecHit* therechit) const;
46  bool isOkChargeStripHit(const SiStripRecHit1D& siStripRecHit1D) const;
47  bool isOkChargeStripHit(const SiStripRecHit2D& siStripRecHit2D) const;
48  bool isIsolated(const TrackingRecHit* therechit, const edm::Event& evt) const;
49  bool isOkTrkQuality(const reco::Track* track) const;
50 
52  Tracks theNHighestPtTracks(const Tracks& tracks) const;
53 
54  //filter tracks that do not have a min # of hits taken by the Skim&Prescale workflow
55  Tracks checkPrescaledHits(const Tracks& tracks, const edm::Event& evt) const;
56 
58  struct ComparePt {
59  bool operator()(const reco::Track* t1, const reco::Track* t2) const { return t1->pt() > t2->pt(); }
60  };
62 
63  const bool applyBasicCuts_, applyNHighestPt_, applyMultiplicityFilter_;
64  const int seedOnlyFromAbove_;
65  const bool applyIsolation_, chargeCheck_;
66  const int nHighestPt_, minMultiplicity_, maxMultiplicity_;
67  const bool multiplicityOnInput_;
68  const double ptMin_, ptMax_, pMin_, pMax_, etaMin_, etaMax_, phiMin_, phiMax_;
69  const double nHitMin_, nHitMax_, chi2nMax_, d0Min_, d0Max_, dzMin_, dzMax_;
70  const int theCharge_;
71  const double minHitChargeStrip_, minHitIsolation_;
74  const bool countStereoHitAs2D_; // count hits on stereo components of GluedDet for nHitMin2D_?
75  const unsigned int nHitMin2D_;
76  const int minHitsinTIB_, minHitsinTOB_, minHitsinTID_, minHitsinTEC_;
77  const int minHitsinBPIX_, minHitsinFPIX_, minHitsinPIX_;
78  const int minHitsinTIDplus_, minHitsinTIDminus_, minHitsinTECplus_, minHitsinTECminus_;
79  const int minHitsinFPIXplus_, minHitsinFPIXminus_;
80  const int minHitsinENDCAP_, minHitsinENDCAPplus_, minHitsinENDCAPminus_;
81  const double maxHitDiffEndcaps_;
82  const double nLostHitMax_;
83  std::vector<double> RorZofFirstHitMin_;
84  std::vector<double> RorZofFirstHitMax_;
85  std::vector<double> RorZofLastHitMin_;
86  std::vector<double> RorZofLastHitMax_;
87 
88  const edm::InputTag clusterValueMapTag_; // ValueMap containing association cluster - flag
89  edm::EDGetTokenT<AliClusterValueMap> clusterValueMapToken_; // ValueMap containing association cluster - flag
90  const int minPrescaledHits_;
92 
93  std::vector<reco::TrackBase::TrackQuality> trkQualities_;
94 
95  std::vector<reco::TrackBase::TrackAlgorithm> trkSteps_;
98 };
99 
100 #endif
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_
double pt() const
track transverse momentum
Definition: TrackBase.h:602
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_
select
when omitted electron plots will be filled w/o cut on electronId electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.5) ), when omitted electron plots will be filled w/o additional pre- selection of the electron candidates
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)