CMS 3D CMS Logo

TrackTransformer.h
Go to the documentation of this file.
1 #ifndef TrackingTools_TrackRefitter_TrackTransformer_H
2 #define TrackingTools_TrackRefitter_TrackTransformer_H
3 
17 
19 
21 
26 
28 
29 namespace edm {class ParameterSet; class EventSetup;}
30 namespace reco {class TransientTrack;}
31 
32 class TrajectoryFitter;
33 class TrajectorySmoother;
34 class Propagator;
36 class Trajectory;
37 
39 
40 public:
41 
44 
46  virtual ~TrackTransformer();
47 
48  // Operations
49 
51  virtual std::vector<Trajectory> transform(const reco::Track&) const;
52 
54  std::vector<Trajectory> transform(const reco::TrackRef&) const;
55 
57  std::vector<Trajectory> transform(const reco::TransientTrack&,
59 
61  const MagneticField* magneticField() const {return &*theMGField;}
62 
64  edm::ESHandle<GlobalTrackingGeometry> trackingGeometry() const {return theTrackingGeometry;}
65 
67  virtual void setServices(const edm::EventSetup&);
68 
70  std::unique_ptr<TrajectoryFitter> const & refitter() const {return theFitter;}
71 
73  std::unique_ptr<TrajectorySmoother> const & smoother() const {return theSmoother;}
74 
76  getTransientRecHits(const reco::TransientTrack& track) const;
77 
78  protected:
79 
80  private:
81 
83  edm::ESHandle<Propagator> propagator() const {return thePropagator;}
85 
86  unsigned long long theCacheId_TC;
87  unsigned long long theCacheId_GTG;
88  unsigned long long theCacheId_MG;
89  unsigned long long theCacheId_TRH;
90 
92 
95 
98 
100  std::unique_ptr<TrajectoryFitter> theFitter;
101 
103  std::unique_ptr<TrajectorySmoother> theSmoother;
104 
106  checkRecHitsOrdering(TransientTrackingRecHit::ConstRecHitContainer&) const;
107 
108  // void reorder(TransientTrackingRecHit::ConstRecHitContainer& recHits) const;
109 
113 
116 };
117 #endif
118 
const MagneticField * magneticField() const
the magnetic field
std::string theFitterName
std::unique_ptr< TrajectoryFitter > const & refitter() const
the refitter used to refit the reco::Track
std::string thePropagatorName
std::string theSmootherName
unsigned long long theCacheId_TRH
edm::ESHandle< GlobalTrackingGeometry > theTrackingGeometry
edm::ESHandle< Propagator > thePropagator
unsigned long long theCacheId_MG
edm::ESHandle< Propagator > propagator() const
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
std::unique_ptr< TrajectoryFitter > theFitter
unsigned long long theCacheId_TC
edm::ESHandle< MagneticField > theMGField
RefitDirection theRefitDirection
unsigned long long theCacheId_GTG
edm::ESHandle< TransientTrackingRecHitBuilder > theTrackerRecHitBuilder
std::vector< ConstRecHitPointer > ConstRecHitContainer
std::unique_ptr< TrajectorySmoother > const & smoother() const
the smoother used to smooth the trajectory which came from the refitting step
TkClonerImpl hitCloner
fixed size matrix
HLT enums.
edm::ESHandle< GlobalTrackingGeometry > trackingGeometry() const
the tracking geometry
std::string theTrackerRecHitBuilderName
std::string theMuonRecHitBuilderName
std::unique_ptr< TrajectorySmoother > theSmoother