CMS 3D CMS Logo

DTLinearDriftFromDBAlgo.h
Go to the documentation of this file.
1 #ifndef RecoLocalMuon_DTLinearDriftFromDBAlgo_H
2 #define RecoLocalMuon_DTLinearDriftFromDBAlgo_H
3 
14 
15 class DTMtime;
16 class DTRecoConditions;
17 class MagneticField;
18 class DTMtimeRcd;
22 
24 public:
27 
29  ~DTLinearDriftFromDBAlgo() override;
30 
31  // Operations
32 
34  void setES(const edm::EventSetup& setup) override;
35 
40  bool compute(const DTLayer* layer,
41  const DTDigi& digi,
42  LocalPoint& leftPoint,
43  LocalPoint& rightPoint,
44  LocalError& error) const override;
45 
49  bool compute(const DTLayer* layer,
50  const DTRecHit1D& recHit1D,
51  const float& angle,
52  DTRecHit1D& newHit1D) const override;
53 
59  bool compute(const DTLayer* layer,
60  const DTRecHit1D& recHit1D,
61  const float& angle,
62  const GlobalPoint& globPos,
63  DTRecHit1D& newHit1D) const override;
64 
65 private:
66  // Do the actual work.
67  virtual bool compute(const DTLayer* layer,
68  const DTWireId& wireId,
69  const float digiTime,
70  const GlobalPoint& globPos,
71  LocalPoint& leftPoint,
72  LocalPoint& rightPoint,
74  int step) const;
75 
76  // Interface to the method which does the actual work suited for 2nd and 3rd steps
77  virtual bool compute(const DTLayer* layer,
78  const DTWireId& wireId,
79  const float digiTime,
80  const GlobalPoint& globPos,
81  DTRecHit1D& newHit1D,
82  int step) const;
83 
84  // Map of meantimes (old DB format)
85  const DTMtime* mTimeMap;
87 
88  // Drift velocity (new DB format)
91 
92  // MF field
95  int nominalB;
96 
97  // Map of hit uncertainties
100 
101  // Times below MinTime (ns) are considered as coming from previous BXs.
102  const float minTime;
103 
104  // Times above MaxTime (ns) are considered as coming from following BXs
105  const float maxTime;
106 
107  // Perform a correction to vDrift for the external wheels
108  const bool doVdriftCorr;
109 
110  // Switch recalculating hit parameters from digi time in Step 2
111  // (when off, Step 2 does nothing)
112  const bool stepTwoFromDigi;
113 
114  // Assign hit uncertainties based on new uncertainties DB
115  // If false, the value taken from vdrift DB is used instead.
117 
118  // Read legacy format for vdrift and ttrig DBs
121 
122  // Switch on/off the verbosity
123  const bool debug;
124 };
125 #endif // RecoLocalMuon_DTLinearDriftFromDBAlgo_H
DTLinearDriftFromDBAlgo(const edm::ParameterSet &config, edm::ConsumesCollector cc)
Constructor.
edm::ESGetToken< DTRecoConditions, DTRecoConditionsUncertRcd > uncertMapToken_
edm::ESGetToken< DTRecoConditions, DTRecoConditionsVdriftRcd > vDriftMapToken_
const DTRecoConditions * vDriftMap
Definition: config.py:1
constexpr std::array< uint8_t, layerIndexSize > layer
edm::ESGetToken< DTMtime, DTMtimeRcd > mTimeMapToken_
const DTRecoConditions * uncertMap
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > fieldToken_
const MagneticField * field
Definition: DTDigi.h:17
~DTLinearDriftFromDBAlgo() override
Destructor.
void setES(const edm::EventSetup &setup) override
Pass the Event Setup to the algo at each event.
step
Definition: StallMonitor.cc:98
bool compute(const DTLayer *layer, const DTDigi &digi, LocalPoint &leftPoint, LocalPoint &rightPoint, LocalError &error) const override
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11