CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoLocalMuon/DTRecHit/plugins/DTLinearDriftFromDBAlgo.h

Go to the documentation of this file.
00001 #ifndef RecoLocalMuon_DTLinearDrifFromDBtAlgo_H
00002 #define RecoLocalMuon_DTLinearDriftFromDBAlgo_H
00003 
00014 #include "RecoLocalMuon/DTRecHit/interface/DTRecHitBaseAlgo.h"
00015 
00016 class DTMtime;
00017 
00018 class DTLinearDriftFromDBAlgo : public DTRecHitBaseAlgo {
00019  public:
00021   DTLinearDriftFromDBAlgo(const edm::ParameterSet& config);
00022 
00024   virtual ~DTLinearDriftFromDBAlgo();
00025 
00026   // Operations
00027 
00029   virtual void setES(const edm::EventSetup& setup);
00030 
00031 
00036   virtual bool compute(const DTLayer* layer,
00037                        const DTDigi& digi,
00038                        LocalPoint& leftPoint,
00039                        LocalPoint& rightPoint,
00040                        LocalError& error) const;
00041 
00042 
00046   virtual bool compute(const DTLayer* layer,
00047                        const DTRecHit1D& recHit1D,
00048                        const float& angle,
00049                        DTRecHit1D& newHit1D) const;
00050 
00051 
00057   virtual bool compute(const DTLayer* layer,
00058                        const DTRecHit1D& recHit1D,
00059                        const float& angle,
00060                        const GlobalPoint& globPos, 
00061                        DTRecHit1D& newHit1D) const;
00062 
00063 
00064  private:
00065 
00066   // Do the actual work.
00067   virtual bool compute(const DTLayer* layer,
00068                        const DTWireId& wireId,
00069                        const float digiTime,
00070                        const GlobalPoint& globPos, 
00071                        LocalPoint& leftPoint,
00072                        LocalPoint& rightPoint,
00073                        LocalError& error,
00074                        int step) const;
00075 
00076   // Interface to the method which does the actual work suited for 2nd and 3rd steps 
00077   virtual bool compute(const DTLayer* layer,
00078                        const DTWireId& wireId,
00079                        const float digiTime,
00080                        const GlobalPoint& globPos, 
00081                        DTRecHit1D& newHit1D,
00082                        int step) const;
00083 
00084   //Map of meantimes
00085    const DTMtime *mTimeMap;
00086  
00087   // Times below MinTime (ns) are considered as coming from previous BXs.
00088   static float minTime;
00089 
00090   // Times above MaxTime (ns) are considered as coming from following BXs
00091   static float maxTime;
00092   
00093   // Perform a correction to vDrift for the external wheels
00094   bool doVdriftCorr;
00095 
00096   // Switch recalculating hit parameters from digi time in Step 2 
00097   // (when off, Step 2 does nothing)
00098   bool stepTwoFromDigi;
00099 
00100   // Switch on/off the verbosity
00101   static bool debug;
00102 };
00103 #endif
00104 
00105