CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DTParametrizedDriftAlgo.h
Go to the documentation of this file.
1 #ifndef RecoLocalMuon_DTParametrizedDriftAlgo_H
2 #define RecoLocalMuon_DTParametrizedDriftAlgo_H
3 
14 
15 class MagneticField;
17 
19 public:
22 
24  ~DTParametrizedDriftAlgo() override;
25 
26  // Operations
27 
29  void setES(const edm::EventSetup& setup) override;
30 
36  bool compute(const DTLayer* layer,
37  const DTDigi& digi,
38  LocalPoint& leftPoint,
39  LocalPoint& rightPoint,
40  LocalError& error) const override;
41 
49  bool compute(const DTLayer* layer,
50  const DTRecHit1D& recHit1D,
51  const float& angle,
52  DTRecHit1D& newHit1D) const override;
53 
61  bool compute(const DTLayer* layer,
62  const DTRecHit1D& recHit1D,
63  const float& angle,
64  const GlobalPoint& globPos,
65  DTRecHit1D& newHit1D) const override;
66 
67 private:
68  // Interpolate parametrization function
69  const bool interpolate;
70 
71  // Times below MinTime (ns) are considered as coming from previous BXs.
72  const float minTime;
73 
74  // Times above MaxTime (ns) are considered as coming from following BXs
75  const float maxTime;
76 
77  // Do the actual work.
78  virtual bool compute(const DTLayer* layer,
79  const DTWireId& wireId,
80  const float digiTime,
81  const float& angle,
82  const GlobalPoint& globPos,
83  LocalPoint& leftPoint,
84  LocalPoint& rightPoint,
85  LocalError& error,
86  int step) const;
87 
88  // Interface to the method which does the actual work suited for 2nd and 3rd steps
89  virtual bool compute(const DTLayer* layer,
90  const DTWireId& wireId,
91  const float digiTime,
92  const float& angle,
93  const GlobalPoint& globPos,
94  DTRecHit1D& newHit1D,
95  int step) const;
96 
97  // Switch on/off the verbosity
98  const bool debug;
99 
100  // Pointer to the magnetic field (read from ES once per event)
103 };
104 #endif
void setES(const edm::EventSetup &setup) override
Pass the Event Setup to the algo at each event.
bool compute(const DTLayer *layer, const DTDigi &digi, LocalPoint &leftPoint, LocalPoint &rightPoint, LocalError &error) const override
~DTParametrizedDriftAlgo() override
Destructor.
constexpr std::array< uint8_t, layerIndexSize > layer
const MagneticField * magField
DTParametrizedDriftAlgo(const edm::ParameterSet &config, edm::ConsumesCollector)
Constructor.
Definition: DTDigi.h:17
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
tuple config
parse the configuration file
step
Definition: StallMonitor.cc:94
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11