CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoLocalMuon/DTRecHit/interface/DTRecHitBaseAlgo.h

Go to the documentation of this file.
00001 #ifndef RecoLocalMuon_DTRecHitBaseAlgo_H
00002 #define RecoLocalMuon_DTRecHitBaseAlgo_H
00003 
00013 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
00014 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00015 #include "DataFormats/GeometrySurface/interface/LocalError.h"                       
00016 
00017 #include "DataFormats/DTDigi/interface/DTDigiCollection.h"
00018 #include "DataFormats/DTRecHit/interface/DTRecHit1DPair.h"
00019 #include "DataFormats/Common/interface/OwnVector.h"
00020 
00021 class DTDigi;
00022 class DTLayer;
00023 class DTLayerId;
00024 class DTTTrigBaseSync;
00025 
00026 namespace edm {
00027   class ParameterSet;
00028   class EventSetup;
00029 }
00030 
00031 
00032 
00033 
00034 
00035 class DTRecHitBaseAlgo {
00036 
00037  public:
00038   
00040   DTRecHitBaseAlgo(const edm::ParameterSet& config);
00041 
00043   virtual ~DTRecHitBaseAlgo();
00044   
00045 
00047   virtual void setES(const edm::EventSetup& setup) = 0;
00048 
00049 
00051   virtual edm::OwnVector<DTRecHit1DPair> reconstruct(const DTLayer* layer,
00052                                                      const DTLayerId& layerId,
00053                                                      const DTDigiCollection::Range& digiRange);
00054 
00055 
00060   virtual bool compute(const DTLayer* layer,
00061                        const DTDigi& digi,
00062                        LocalPoint& leftPoint,
00063                        LocalPoint& rightPoint,
00064                        LocalError& error) const = 0 ;
00065 
00066 
00073   virtual bool compute(const DTLayer* layer,
00074                        const DTRecHit1D& recHit1D,
00075                        const float& angle,
00076                        DTRecHit1D& newHit1D) const = 0;
00077   
00078 
00086   virtual bool compute(const DTLayer* layer,
00087                        const DTRecHit1D& recHit1D,
00088                        const float& angle,
00089                        const GlobalPoint& globPos, 
00090                        DTRecHit1D& newHit1D) const = 0;
00091 
00092  protected:
00093   // The module to be used for digi time synchronization
00094   DTTTrigBaseSync *theSync;
00095   
00096 };
00097 #endif
00098 
00099 
00100 
00101