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 {
30  class ParameterSet;
31  class EventSetup;
33 } // namespace edm
34 namespace reco {
35  class TransientTrack;
36 }
37 
38 class TrajectoryFitter;
39 class TrajectorySmoother;
40 class Propagator;
42 class Trajectory;
43 
44 class TrackTransformer final : public TrackTransformerBase {
45 public:
47  explicit TrackTransformer(const edm::ParameterSet&);
48 
50  ~TrackTransformer() override;
51 
53  static void fillPSetDescription(edm::ParameterSetDescription& descriptions,
54  bool DoPredictionsOnly = false,
55  const std::string& Fitter = "KFFitterForRefitInsideOut",
56  const std::string& Smoother = "KFSmootherForRefitInsideOut",
57  const std::string& Propagator = "SmartPropagatorAnyRK",
58  const std::string& RefitDirection = "alongMomentum",
59  bool RefitRPCHits = true,
60  const std::string& TrackerRecHitBuilder = "WithTrackAngle",
61  const std::string& MuonRecHitBuilder = "MuonRecHitBuilder",
62  const std::string& MTDRecHitBuilder = "MTDRecHitBuilder");
63 
64  // Operations
65 
67  std::vector<Trajectory> transform(const reco::Track&) const override;
68 
70  std::vector<Trajectory> transform(const reco::TrackRef&) const;
71 
74 
76  const MagneticField* magneticField() const { return &*theMGField; }
77 
80 
82  void setServices(const edm::EventSetup&) override;
83 
85  std::unique_ptr<TrajectoryFitter> const& refitter() const { return theFitter; }
86 
88  std::unique_ptr<TrajectorySmoother> const& smoother() const { return theSmoother; }
89 
91 
92 private:
94 
95  unsigned long long theCacheId_TC = 0;
96  unsigned long long theCacheId_GTG = 0;
97  unsigned long long theCacheId_MG = 0;
98  unsigned long long theCacheId_TRH = 0;
99 
100  const bool theRPCInTheFit;
101 
104 
107 
109  std::unique_ptr<TrajectoryFitter> theFitter;
110 
112  std::unique_ptr<TrajectorySmoother> theSmoother;
113 
117 
121 
124 
128 };
129 #endif
TrackTransformer::theTrackerRecHitBuilderName
const std::string theTrackerRecHitBuilderName
Definition: TrackTransformer.h:118
RefitDirection.h
TrackTransformer::theSmoother
std::unique_ptr< TrajectorySmoother > theSmoother
Definition: TrackTransformer.h:112
TrackTransformer::theRPCInTheFit
const bool theRPCInTheFit
Definition: TrackTransformer.h:100
ESHandle.h
TrackTransformer::setServices
void setServices(const edm::EventSetup &) override
set the services needed by the TrackTransformer
Definition: TrackTransformer.cc:66
TrackTransformer::getTransientRecHits
TransientTrackingRecHit::ConstRecHitContainer getTransientRecHits(const reco::TransientTrack &track) const
Definition: TrackTransformer.cc:117
edm
HLT enums.
Definition: AlignableModifier.h:19
trackingRecoMaterialAnalyzer_cfi.MTDRecHitBuilder
MTDRecHitBuilder
Definition: trackingRecoMaterialAnalyzer_cfi.py:14
TrackTransformer::theCacheId_MG
unsigned long long theCacheId_MG
Definition: TrackTransformer.h:97
HLTSiStripMonitoring_cff.Fitter
Fitter
Definition: HLTSiStripMonitoring_cff.py:207
RefitDirection::GeometricalDirection
GeometricalDirection
Definition: RefitDirection.h:15
TrackTransformer::magneticField
const MagneticField * magneticField() const
the magnetic field
Definition: TrackTransformer.h:76
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
TrackTransformer::transform
std::vector< Trajectory > transform(const reco::Track &) const override
Convert a reco::Track into Trajectory.
Definition: TrackTransformer.cc:164
TrackTransformer::theCacheId_GTG
unsigned long long theCacheId_GTG
Definition: TrackTransformer.h:96
TransientTrackingRecHit.h
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
TrackTransformer::theMGField
edm::ESHandle< MagneticField > theMGField
Definition: TrackTransformer.h:106
TrackTransformer::smoother
std::unique_ptr< TrajectorySmoother > const & smoother() const
the smoother used to smooth the trajectory which came from the refitting step
Definition: TrackTransformer.h:88
TrackTransformer::theMtdAvailable
bool theMtdAvailable
Definition: TrackTransformer.h:126
TrackTransformer::~TrackTransformer
~TrackTransformer() override
Destructor.
Definition: TrackTransformer.cc:43
TkTransientTrackingRecHitBuilder.h
edm::Ref< TrackCollection >
TrajectorySmoother
Definition: TrajectorySmoother.h:11
Propagator
Definition: Propagator.h:44
TrackTransformer::theTrackingGeometry
edm::ESHandle< GlobalTrackingGeometry > theTrackingGeometry
Definition: TrackTransformer.h:105
TrackTransformer::theMTDRecHitBuilder
edm::ESHandle< TransientTrackingRecHitBuilder > theMTDRecHitBuilder
Definition: TrackTransformer.h:127
TrackTransformer::thePropagator
edm::ESHandle< Propagator > thePropagator
Definition: TrackTransformer.h:116
TrackTransformer::thePropagatorName
const std::string thePropagatorName
Definition: TrackTransformer.h:114
TrackFwd.h
TrackTransformer::checkRecHitsOrdering
RefitDirection::GeometricalDirection checkRecHitsOrdering(TransientTrackingRecHit::ConstRecHitContainer const &) const
Definition: TrackTransformer.cc:145
TrackTransformer::theFitterName
const std::string theFitterName
Definition: TrackTransformer.h:108
TrackTransformer::theMuonRecHitBuilder
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
Definition: TrackTransformer.h:123
TrackTransformer::theCacheId_TC
unsigned long long theCacheId_TC
Definition: TrackTransformer.h:95
reco::Track
Definition: Track.h:27
edm::ESHandle< GlobalTrackingGeometry >
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TrackTransformer::theDoPredictionsOnly
const bool theDoPredictionsOnly
Definition: TrackTransformer.h:102
edm::ParameterSet
Definition: ParameterSet.h:36
ParameterSet
Definition: Functions.h:16
TrackingRecHit::ConstRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
Definition: TrackingRecHit.h:32
TrackTransformer::trackingGeometry
edm::ESHandle< GlobalTrackingGeometry > trackingGeometry() const
the tracking geometry
Definition: TrackTransformer.h:79
TrackTransformer::theCacheId_TRH
unsigned long long theCacheId_TRH
Definition: TrackTransformer.h:98
MuonAlignmentFromReference_cff.RefitRPCHits
RefitRPCHits
Definition: MuonAlignmentFromReference_cff.py:16
TrackTransformer::theTrackerRecHitBuilder
edm::ESHandle< TransientTrackingRecHitBuilder > theTrackerRecHitBuilder
Definition: TrackTransformer.h:119
RefitDirection
Definition: RefitDirection.h:13
TrackTransformerBase.h
MagneticField.h
edm::EventSetup
Definition: EventSetup.h:57
TrackTransformerBase
Definition: TrackTransformerBase.h:17
TrackTransformer::hitCloner
TkClonerImpl hitCloner
Definition: TrackTransformer.h:120
trackingRecoMaterialAnalyzer_cfi.TrackerRecHitBuilder
TrackerRecHitBuilder
Definition: trackingRecoMaterialAnalyzer_cfi.py:11
TrackTransformer::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &descriptions, bool DoPredictionsOnly=false, const std::string &Fitter="KFFitterForRefitInsideOut", const std::string &Smoother="KFSmootherForRefitInsideOut", const std::string &Propagator="SmartPropagatorAnyRK", const std::string &RefitDirection="alongMomentum", bool RefitRPCHits=true, const std::string &TrackerRecHitBuilder="WithTrackAngle", const std::string &MuonRecHitBuilder="MuonRecHitBuilder", const std::string &MTDRecHitBuilder="MTDRecHitBuilder")
fillDescriptions
Definition: TrackTransformer.cc:45
trackingRecoMaterialAnalyzer_cfi.MuonRecHitBuilder
MuonRecHitBuilder
Definition: trackingRecoMaterialAnalyzer_cfi.py:13
TrackTransformer::theSmootherName
const std::string theSmootherName
Definition: TrackTransformer.h:111
TrajectoryFitter
Definition: TrajectoryFitter.h:19
TkClonerImpl
Definition: TkClonerImpl.h:12
reco::TransientTrack
Definition: TransientTrack.h:19
Trajectory
Definition: Trajectory.h:38
TrackTransformer::theFitter
std::unique_ptr< TrajectoryFitter > theFitter
Definition: TrackTransformer.h:109
trackingRecoMaterialAnalyzer_cfi.DoPredictionsOnly
DoPredictionsOnly
Definition: trackingRecoMaterialAnalyzer_cfi.py:9
HLTSiStripMonitoring_cff.Smoother
Smoother
Definition: HLTSiStripMonitoring_cff.py:209
ParameterSetDescription
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
TrackTransformer::refitter
std::unique_ptr< TrajectoryFitter > const & refitter() const
the refitter used to refit the reco::Track
Definition: TrackTransformer.h:85
EventSetup
TrackTransformer::theMTDRecHitBuilderName
const std::string theMTDRecHitBuilderName
Definition: TrackTransformer.h:125
TrackTransformer::theRefitDirection
const RefitDirection theRefitDirection
Definition: TrackTransformer.h:103
GlobalTrackingGeometry.h
TrackTransformer::propagator
edm::ESHandle< Propagator > const & propagator() const
Definition: TrackTransformer.h:115
MagneticField
Definition: MagneticField.h:19
TransientTrackingRecHitBuilder
Definition: TransientTrackingRecHitBuilder.h:6
TrackTransformer::theMuonRecHitBuilderName
const std::string theMuonRecHitBuilderName
Definition: TrackTransformer.h:122
TrackTransformer
Definition: TrackTransformer.h:44
TrackTransformer::TrackTransformer
TrackTransformer(const edm::ParameterSet &)
Constructor.
Definition: TrackTransformer.cc:31