CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/RecoLocalMuon/DTSegment/src/DTMeantimerPatternReco4D.h

Go to the documentation of this file.
00001 #ifndef DTSegment_DTMeantimerPatternReco4D_h
00002 #define DTSegment_DTMeantimerPatternReco4D_h
00003 
00015 // Base Class Headers
00016 #include "RecoLocalMuon/DTSegment/src/DTRecSegment4DBaseAlgo.h"
00017 
00018 class DTRecSegment2DBaseAlgo;
00019 
00020 // Collaborating Class Declarations
00021 namespace edm {
00022   class ParameterSet;
00023   class EventSetup;
00024 }
00025 class DTSegmentUpdator;
00026 //class DTSegmentCleaner;
00027 
00028 // C++ Headers
00029 #include <vector>
00030 //#include <utility>
00031 
00032 #include "Geometry/DTGeometry/interface/DTGeometry.h"
00033 #include "FWCore/Framework/interface/ESHandle.h"
00034 
00035 // ====================================================================== 
00036 class DTSegmentCand;
00037 class DTMeantimerPatternReco;
00038 
00039 // Class DTMeantimerPatternReco4D Interface 
00040 
00041 class DTMeantimerPatternReco4D : public DTRecSegment4DBaseAlgo {
00042 
00043   public:
00044 
00046     DTMeantimerPatternReco4D(const edm::ParameterSet& pset) ;
00047 
00049     virtual ~DTMeantimerPatternReco4D();
00050 
00052     virtual edm::OwnVector<DTRecSegment4D> reconstruct();
00053 
00054     virtual std::string algoName() const { return theAlgoName; }
00055 
00056     virtual void setES(const edm::EventSetup& setup);
00057     virtual void setDTRecHit1DContainer(edm::Handle<DTRecHitCollection> all1DHits);
00058     virtual void setDTRecSegment2DContainer(edm::Handle<DTRecSegment2DCollection> all2DSegments);
00059     virtual void setChamber(const DTChamberId &chId);
00060     virtual bool wants2DSegments(){return !allDTRecHits;}
00061 
00062   protected:
00063 
00064   private:
00065     std::vector<DTSegmentCand*> buildPhiSuperSegmentsCandidates();
00066     DTRecSegment4D* segmentSpecialZed(DTRecSegment4D* seg);
00067 
00068 
00069     std::string theAlgoName;
00070 
00071     bool debug;
00072     // DTSegmentUpdator* theUpdator; // the updator and fitter
00073     // DTSegmentCleaner* theCleaner; // the cleaner
00074 
00075     edm::ESHandle<DTGeometry> theDTGeometry; // the DT geometry
00076 
00077     // The reconstruction 2D algorithm
00078     // For the 2D reco I use thei reconstructor!
00079     DTMeantimerPatternReco* the2DAlgo;
00080 
00081     // the updator
00082     DTSegmentUpdator *theUpdator;
00083 
00084     const DTChamber *theChamber;
00085 
00086     //the input type
00087     bool allDTRecHits;
00088 
00089     //  std::vector<DTRecHit1D> the1DPhiHits;
00090     std::vector<DTSLRecSegment2D> theSegments2DTheta; 
00091     std::vector<DTRecHit1DPair> theHitsFromPhi1;
00092     std::vector<DTRecHit1DPair> theHitsFromTheta;
00093     std::vector<DTRecHit1DPair> theHitsFromPhi2;
00094 };
00095 #endif