00001 #ifndef DTSegment_DTRefitAndCombineReco4D_h 00002 #define DTSegment_DTRefitAndCombineReco4D_h 00003 00016 // Base Class Headers 00017 #include "RecoLocalMuon/DTSegment/src/DTRecSegment4DBaseAlgo.h" 00018 00019 //class DTRecSegment2DBaseAlgo; 00020 00021 // Collaborating Class Declarations 00022 namespace edm { 00023 class ParameterSet; 00024 class EventSetup; 00025 } 00026 class DTSegmentUpdator; 00027 //class DTSegmentCleaner; 00028 00029 // C++ Headers 00030 #include <vector> 00031 //#include <utility> 00032 00033 #include "Geometry/DTGeometry/interface/DTGeometry.h" 00034 #include "FWCore/Framework/interface/ESHandle.h" 00035 00036 // ====================================================================== 00037 //#include "DataFormats/DTRecHit/interface/DTRecSegment2DPhi.h" 00038 00039 // Class DTRefitAndCombineReco4D Interface 00040 00041 class DTRefitAndCombineReco4D : public DTRecSegment4DBaseAlgo { 00042 00043 public: 00044 00046 DTRefitAndCombineReco4D(const edm::ParameterSet& pset) ; 00047 00049 virtual ~DTRefitAndCombineReco4D(){}; 00050 00052 virtual edm::OwnVector<DTRecSegment4D> 00053 reconstruct(); 00054 00055 virtual std::string algoName() const { return theAlgoName; } 00056 00057 virtual void setES(const edm::EventSetup& setup); 00058 00059 virtual void setDTRecHit1DContainer(edm::Handle<DTRecHitCollection> all1DHits) {}; 00060 virtual void setDTRecSegment2DContainer(edm::Handle<DTRecSegment2DCollection> all2DSegments); 00061 virtual void setChamber(const DTChamberId &chId); 00062 virtual bool wants2DSegments(){return true;} 00063 00064 protected: 00065 00066 private: 00067 std::vector<DTChamberRecSegment2D> refitSuperSegments(); 00068 00069 std::string theAlgoName; 00070 00071 double theMaxChi2forPhi; 00072 00073 bool debug; 00074 // DTSegmentUpdator* theUpdator; // the updator and fitter 00075 // DTSegmentCleaner* theCleaner; // the cleaner 00076 00077 edm::ESHandle<DTGeometry> theDTGeometry; // the DT geometry 00078 00079 // // The reconstruction 2D algorithm 00080 // DTRecSegment2DBaseAlgo* the2DAlgo; 00081 00082 // the updator 00083 DTSegmentUpdator *theUpdator; 00084 00085 const DTChamber *theChamber; 00086 std::vector<DTSLRecSegment2D> theSegments2DPhi1; 00087 std::vector<DTSLRecSegment2D> theSegments2DTheta; 00088 std::vector<DTSLRecSegment2D> theSegments2DPhi2; 00089 00090 }; 00091 #endif