CMS 3D CMS Logo

GlobalMuonRefitter.h
Go to the documentation of this file.
1 #ifndef RecoMuon_GlobalTrackingTools_GlobalMuonRefitter_H
2 #define RecoMuon_GlobalTrackingTools_GlobalMuonRefitter_H
3 
35 
36 namespace edm {
37  class Event;
38 }
39 namespace reco {
40  class TransientTrack;
41 }
42 
44 class TrackerTopology;
45 
47 class MuonServiceProxy;
48 class Trajectory;
49 
50 class TrajectoryFitter;
51 
53 public:
58 
63 
64  typedef std::vector<Trajectory> TC;
65  typedef TC::const_iterator TI;
66 
67  enum subDetector { PXB = 1, PXF = 2, TIB = 3, TID = 4, TOB = 5, TEC = 6 };
68 
69 public:
72 
74  virtual ~GlobalMuonRefitter();
75 
77  virtual void setEvent(const edm::Event&);
78 
80  void setServices(const edm::EventSetup&);
81 
83  std::vector<Trajectory> refit(const reco::Track& globalTrack,
84  const int theMuonHitsOption,
85  const TrackerTopology* tTopo) const;
86 
88  std::vector<Trajectory> refit(const reco::Track& globalTrack,
91  const int theMuonHitsOption,
92  const TrackerTopology* tTopo) const;
93 
95  std::vector<Trajectory> transform(const reco::Track& newTrack,
96  const reco::TransientTrack track,
97  const TransientTrackingRecHit::ConstRecHitContainer& recHitsForReFit) const;
98 
99  // get rid of selected station RecHits
100  ConstRecHitContainer getRidOfSelectStationHits(const ConstRecHitContainer& hits, const TrackerTopology* tTopo) const;
101 
102  // return DYT-related informations
103  const reco::DYTInfo* getDYTInfo() { return dytInfo; }
104 
105 protected:
106  enum RefitDirection { insideOut, outsideIn, undetermined };
107 
109  void checkMuonHits(const reco::Track&, ConstRecHitContainer&, std::map<DetId, int>&) const;
110 
112  void getFirstHits(const reco::Track&, ConstRecHitContainer&, ConstRecHitContainer&) const;
113 
115  ConstRecHitContainer selectMuonHits(const Trajectory&, const std::map<DetId, int>&) const;
116 
118  void printHits(const ConstRecHitContainer&) const;
119 
120  RefitDirection checkRecHitsOrdering(const ConstRecHitContainer&) const;
121 
122  const MuonServiceProxy* service() const { return theService; }
123 
124 protected:
127  float thePtCut;
128 
129 private:
131  float theProbCut;
139 
152 
156 
157  unsigned long long theCacheId_TRH;
158 
160 
162 
164 
166 
167  std::vector<int> theDYTthrs;
174 
176  std::unique_ptr<TrajectoryFitter> theFitter;
177 
181 
184 
187 
192 };
193 #endif
std::string theMuonRecHitBuilderName
edm::Handle< DTRecHitCollection > theDTRecHits
const reco::DYTInfo * getDYTInfo()
MuonTransientTrackingRecHit::MuonRecHitPointer MuonRecHitPointer
TransientTrackingRecHit::RecHitPointer RecHitPointer
MuonTransientTrackingRecHit::ConstMuonRecHitPointer ConstMuonRecHitPointer
const MuonServiceProxy * theService
RefitDirection theRefitDirection
edm::ESHandle< TransientTrackingRecHitBuilder > theTrackerRecHitBuilder
edm::Handle< CSCSegmentCollection > CSCSegments
std::string thePropagatorName
edm::Handle< GEMRecHitCollection > theGEMRecHits
std::vector< ConstRecHitPointer > RecHitContainer
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
edm::EDGetTokenT< CSCSegmentCollection > CSCSegmentsToken
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
std::unique_ptr< TrajectoryFitter > theFitter
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
edm::Handle< ME0SegmentCollection > theME0RecHits
std::vector< int > theDYTthrs
const edm::Event * theEvent
TC::const_iterator TI
edm::Handle< DTRecSegment4DCollection > all4DSegments
std::shared_ptr< MuonTransientTrackingRecHit > MuonRecHitPointer
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer
std::vector< Trajectory > TC
edm::EDGetTokenT< ME0SegmentCollection > theME0RecHitToken
edm::ParameterSet theDYTthrsParameters
edm::Handle< CSCRecHit2DCollection > theCSCRecHits
edm::EDGetTokenT< DTRecHitCollection > theDTRecHitToken
edm::EDGetTokenT< CSCRecHit2DCollection > theCSCRecHitToken
std::shared_ptr< TrackingRecHit const > RecHitPointer
edm::InputTag theDTRecHitLabel
std::vector< ConstMuonRecHitPointer > ConstMuonRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
edm::InputTag theGEMRecHitLabel
edm::InputTag theME0RecHitLabel
edm::EDGetTokenT< DTRecSegment4DCollection > all4DSegmentsToken
reco::DYTInfo * dytInfo
TransientTrackingRecHit::RecHitContainer RecHitContainer
fixed size matrix
HLT enums.
MuonTransientTrackingRecHit::ConstMuonRecHitContainer ConstMuonRecHitContainer
std::shared_ptr< MuonTransientTrackingRecHit const > ConstMuonRecHitPointer
unsigned long long theCacheId_TRH
std::string theTrackerRecHitBuilderName
const MuonServiceProxy * service() const
std::vector< MuonRecHitPointer > MuonRecHitContainer
edm::InputTag theCSCRecHitLabel
edm::EDGetTokenT< GEMRecHitCollection > theGEMRecHitToken
unsigned transform(const HcalDetId &id, unsigned transformCode)