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; class ParameterSetDescription;}
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 
49  static void fillPSetDescription(edm::ParameterSetDescription& descriptions,
50  bool DoPredictionsOnly=false,
51  const std::string& Fitter="KFFitterForRefitInsideOut",
52  const std::string& Smoother="KFSmootherForRefitInsideOut",
53  const std::string& Propagator="SmartPropagatorAnyRK",
54  const std::string& RefitDirection="alongMomentum",
55  bool RefitRPCHits=true,
56  const std::string& TrackerRecHitBuilder="WithTrackAngle",
57  const std::string& MuonRecHitBuilder="MuonRecHitBuilder",
58  const std::string& MTDRecHitBuilder="MTDRecHitBuilder");
59 
60  // Operations
61 
63  std::vector<Trajectory> transform(const reco::Track&) const override;
64 
66  std::vector<Trajectory> transform(const reco::TrackRef&) const;
67 
69  std::vector<Trajectory> transform(const reco::TransientTrack&,
71 
73  const MagneticField* magneticField() const {return &*theMGField;}
74 
76  edm::ESHandle<GlobalTrackingGeometry> trackingGeometry() const {return theTrackingGeometry;}
77 
79  void setServices(const edm::EventSetup&) override;
80 
82  std::unique_ptr<TrajectoryFitter> const & refitter() const {return theFitter;}
83 
85  std::unique_ptr<TrajectorySmoother> const & smoother() const {return theSmoother;}
86 
88  getTransientRecHits(const reco::TransientTrack& track) const;
89 
90  private:
91 
93  checkRecHitsOrdering(TransientTrackingRecHit::ConstRecHitContainer const&) const;
94 
95 
96  unsigned long long theCacheId_TC=0;
97  unsigned long long theCacheId_GTG=0;
98  unsigned long long theCacheId_MG=0;
99  unsigned long long theCacheId_TRH=0;
100 
101  const bool theRPCInTheFit;
102 
105 
108 
110  std::unique_ptr<TrajectoryFitter> theFitter;
111 
113  std::unique_ptr<TrajectorySmoother> theSmoother;
114 
116  edm::ESHandle<Propagator> const & propagator() const {return thePropagator;}
118 
122 
125 
129 };
130 #endif
131 
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< TransientTrackingRecHitBuilder > theMTDRecHitBuilder
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
void fillPSetDescription(edm::ParameterSetDescription &desc)
const std::string theSmootherName
const std::string theMTDRecHitBuilderName
const bool theDoPredictionsOnly
fixed size matrix
HLT enums.
edm::ESHandle< GlobalTrackingGeometry > trackingGeometry() const
the tracking geometry
std::unique_ptr< TrajectorySmoother > theSmoother