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
00094 DTTTrigBaseSync *theSync;
00095
00096 };
00097 #endif
00098
00099
00100
00101