CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTLinearDriftFromDBAlgo.h
Go to the documentation of this file.
1 #ifndef RecoLocalMuon_DTLinearDrifFromDBtAlgo_H
2 #define RecoLocalMuon_DTLinearDriftFromDBAlgo_H
3 
13 
14 class DTMtime;
16 class MagneticField;
17 
19  public:
22 
24  virtual ~DTLinearDriftFromDBAlgo();
25 
26  // Operations
27 
29  virtual void setES(const edm::EventSetup& setup);
30 
31 
36  virtual bool compute(const DTLayer* layer,
37  const DTDigi& digi,
38  LocalPoint& leftPoint,
39  LocalPoint& rightPoint,
40  LocalError& error) const;
41 
42 
46  virtual bool compute(const DTLayer* layer,
47  const DTRecHit1D& recHit1D,
48  const float& angle,
49  DTRecHit1D& newHit1D) const;
50 
51 
57  virtual bool compute(const DTLayer* layer,
58  const DTRecHit1D& recHit1D,
59  const float& angle,
60  const GlobalPoint& globPos,
61  DTRecHit1D& newHit1D) const;
62 
63 
64  private:
65 
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,
73  LocalError& error,
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
85  const DTMtime *mTimeMap;
86 
87  // MF field
89  int nominalB;
90 
91  // Map of hit uncertainties
93 
94  // Times below MinTime (ns) are considered as coming from previous BXs.
95  const float minTime;
96 
97  // Times above MaxTime (ns) are considered as coming from following BXs
98  const float maxTime;
99 
100  // Perform a correction to vDrift for the external wheels
101  const bool doVdriftCorr;
102 
103  // Switch recalculating hit parameters from digi time in Step 2
104  // (when off, Step 2 does nothing)
105  const bool stepTwoFromDigi;
106 
107  // Assign hit uncertainties based on new uncertainties DB
108  // If false, the value taken from vdrift DB is used instead.
110 
111  // Switch on/off the verbosity
112  const bool debug;
113 };
114 #endif
115 
116 
virtual bool compute(const DTLayer *layer, const DTDigi &digi, LocalPoint &leftPoint, LocalPoint &rightPoint, LocalError &error) const
const DTRecoUncertainties * uncertMap
virtual ~DTLinearDriftFromDBAlgo()
Destructor.
virtual void setES(const edm::EventSetup &setup)
Pass the Event Setup to the algo at each event.
const MagneticField * field
Definition: DTDigi.h:17
DTLinearDriftFromDBAlgo(const edm::ParameterSet &config)
Constructor.
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11