00001 #ifndef DTSegment_DTRecSegment2DBaseAlgo_h 00002 #define DTSegment_DTRecSegment2DBaseAlgo_h 00003 00014 /* Base Class Headers */ 00015 00016 /* Collaborating Class Declarations */ 00017 namespace edm { 00018 class ParameterSet; 00019 class EventSetup; 00020 } 00021 #include "DataFormats/Common/interface/OwnVector.h" 00022 #include "DataFormats/DTRecHit/interface/DTSLRecSegment2D.h" 00023 #include "DataFormats/DTRecHit/interface/DTRecHit1DPair.h" 00024 class DTSuperLayer; 00025 00026 /* C++ Headers */ 00027 #include <vector> 00028 #include <string> 00029 00030 /* ====================================================================== */ 00031 00032 /* Class DTRecSegment2DBaseAlgo Interface */ 00033 00034 class DTRecSegment2DBaseAlgo{ 00035 00036 public: 00037 00039 DTRecSegment2DBaseAlgo(const edm::ParameterSet& ) {} 00040 00042 virtual ~DTRecSegment2DBaseAlgo() {} 00043 00044 /* Operations */ 00045 virtual edm::OwnVector<DTSLRecSegment2D> 00046 reconstruct(const DTSuperLayer* sl, 00047 const std::vector<DTRecHit1DPair>& hits) = 0; 00048 00049 virtual std::string algoName() const = 0; 00050 00051 virtual void setES(const edm::EventSetup& setup) = 0; 00052 00053 protected: 00054 00055 private: 00056 00057 }; 00058 #endif // DTSegment_DTRecSegment2DBaseAlgo_h