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 
43  explicit TrackTransformer(const edm::ParameterSet&);
44 
46  ~TrackTransformer() override;
47 
48  // Operations
49 
51  std::vector<Trajectory> transform(const reco::Track&) const override;
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  void setServices(const edm::EventSetup&) override;
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  private:
79 
81  checkRecHitsOrdering(TransientTrackingRecHit::ConstRecHitContainer const&) const;
82 
83 
84  unsigned long long theCacheId_TC=0;
85  unsigned long long theCacheId_GTG=0;
86  unsigned long long theCacheId_MG=0;
87  unsigned long long theCacheId_TRH=0;
88 
89  const bool theRPCInTheFit;
90 
93 
96 
98  std::unique_ptr<TrajectoryFitter> theFitter;
99 
101  std::unique_ptr<TrajectorySmoother> theSmoother;
102 
104  edm::ESHandle<Propagator> const & propagator() const {return thePropagator;}
106 
110 
113 };
114 #endif
115 
const std::string theTrackerRecHitBuilderName
const MagneticField * magneticField() const
the magnetic field
std::unique_ptr< TrajectoryFitter > const & refitter() const
the refitter used to refit the reco::Track
const RefitDirection theRefitDirection
const bool theRPCInTheFit
edm::ESHandle< GlobalTrackingGeometry > theTrackingGeometry
edm::ESHandle< Propagator > thePropagator
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
std::unique_ptr< TrajectoryFitter > theFitter
const std::string thePropagatorName
const std::string theFitterName
edm::ESHandle< MagneticField > theMGField
edm::ESHandle< Propagator > const & propagator() const
edm::ESHandle< TransientTrackingRecHitBuilder > theTrackerRecHitBuilder
const std::string theMuonRecHitBuilderName
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
const std::string theSmootherName
const bool theDoPredictionsOnly
fixed size matrix
HLT enums.
edm::ESHandle< GlobalTrackingGeometry > trackingGeometry() const
the tracking geometry
std::unique_ptr< TrajectorySmoother > theSmoother