00001 #ifndef DTSegment_DTRecSegment4DBaseAlgo_h 00002 #define DTSegment_DTRecSegment4DBaseAlgo_h 00003 00013 // Collaborating Class Declarations 00014 namespace edm { 00015 class ParameterSet; 00016 class EventSetup; 00017 } 00018 #include "DataFormats/Common/interface/OwnVector.h" 00019 #include "DataFormats/DTRecHit/interface/DTRecSegment4D.h" 00020 #include "DataFormats/DTRecHit/interface/DTRecSegment2DCollection.h" 00021 #include "DataFormats/DTRecHit/interface/DTRecHitCollection.h" 00022 00023 #include "DataFormats/Common/interface/Handle.h" 00024 00025 class DTChamberId; 00026 00027 // C++ Headers 00028 #include <vector> 00029 #include <string> 00030 00031 // ====================================================================== 00032 00033 // Class DTRecSegment4DBaseAlgo Interface 00034 00035 class DTRecSegment4DBaseAlgo{ 00036 00037 public: 00038 00040 DTRecSegment4DBaseAlgo(const edm::ParameterSet& ) {} 00041 00043 virtual ~DTRecSegment4DBaseAlgo() {} 00044 00045 // Operations 00046 virtual edm::OwnVector<DTRecSegment4D> reconstruct() = 0; 00047 00048 virtual std::string algoName() const = 0; 00049 00050 virtual void setES(const edm::EventSetup& setup) = 0; 00051 virtual void setDTRecHit1DContainer(edm::Handle<DTRecHitCollection> all1DHits) = 0; 00052 virtual void setDTRecSegment2DContainer(edm::Handle<DTRecSegment2DCollection> all2DSegments) = 0; 00053 virtual void setChamber(const DTChamberId &chId) = 0; 00054 virtual bool wants2DSegments() = 0; 00055 00056 protected: 00057 00058 00059 private: 00060 00061 }; 00062 #endif