Go to the documentation of this file.00001 #ifndef RecoLocalMuon_DTParametrizedDriftAlgo_H
00002 #define RecoLocalMuon_DTParametrizedDriftAlgo_H
00003
00014 #include "RecoLocalMuon/DTRecHit/interface/DTRecHitBaseAlgo.h"
00015
00016 class MagneticField;
00017
00018 class DTParametrizedDriftAlgo : public DTRecHitBaseAlgo {
00019 public:
00021 DTParametrizedDriftAlgo(const edm::ParameterSet& config);
00022
00024 virtual ~DTParametrizedDriftAlgo();
00025
00026
00027
00029 virtual void setES(const edm::EventSetup& setup);
00030
00031
00037 virtual bool compute(const DTLayer* layer,
00038 const DTDigi& digi,
00039 LocalPoint& leftPoint,
00040 LocalPoint& rightPoint,
00041 LocalError& error) const;
00042
00043
00051 virtual bool compute(const DTLayer* layer,
00052 const DTRecHit1D& recHit1D,
00053 const float& angle,
00054 DTRecHit1D& newHit1D) const;
00055
00056
00064 virtual bool compute(const DTLayer* layer,
00065 const DTRecHit1D& recHit1D,
00066 const float& angle,
00067 const GlobalPoint& globPos,
00068 DTRecHit1D& newHit1D) const;
00069
00070
00071 private:
00072
00073 static bool interpolate;
00074
00075
00076 static float minTime;
00077
00078
00079 static float maxTime;
00080
00081
00082 virtual bool compute(const DTLayer* layer,
00083 const DTWireId& wireId,
00084 const float digiTime,
00085 const float& angle,
00086 const GlobalPoint& globPos,
00087 LocalPoint& leftPoint,
00088 LocalPoint& rightPoint,
00089 LocalError& error,
00090 int step) const;
00091
00092
00093 virtual bool compute(const DTLayer* layer,
00094 const DTWireId& wireId,
00095 const float digiTime,
00096 const float& angle,
00097 const GlobalPoint& globPos,
00098 DTRecHit1D& newHit1D,
00099 int step) const;
00100
00101
00102 static bool debug;
00103
00104
00105
00106 const MagneticField * magField;
00107
00108
00109 };
00110 #endif
00111
00112