CMS 3D CMS Logo

DTCombinatorialPatternReco4D.h

Go to the documentation of this file.
00001 #ifndef DTSegment_DTCombinatorialPatternReco4D_h
00002 #define DTSegment_DTCombinatorialPatternReco4D_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 DTCombinatorialPatternReco;
00038 class DTHitPairForFit;
00039 
00040 // Class DTCombinatorialPatternReco4D Interface 
00041 
00042 class DTCombinatorialPatternReco4D : public DTRecSegment4DBaseAlgo {
00043 
00044  public:
00045 
00047   DTCombinatorialPatternReco4D(const edm::ParameterSet& pset) ;
00048   
00050   virtual ~DTCombinatorialPatternReco4D();
00051     
00053   virtual edm::OwnVector<DTRecSegment4D> reconstruct();
00054     
00055   virtual std::string algoName() const { return theAlgoName; }
00056 
00057   virtual void setES(const edm::EventSetup& setup);
00058   virtual void setDTRecHit1DContainer(edm::Handle<DTRecHitCollection> all1DHits);
00059   virtual void setDTRecSegment2DContainer(edm::Handle<DTRecSegment2DCollection> all2DSegments);
00060   virtual void setChamber(const DTChamberId &chId);
00061   virtual bool wants2DSegments(){return !allDTRecHits;}
00062 
00063  protected:
00064 
00065  private:
00066   std::vector<DTSegmentCand*> buildPhiSuperSegmentsCandidates(std::vector<DTHitPairForFit*> &pairPhiOwned);
00067 
00068   std::string theAlgoName;
00069 
00070   bool debug;
00071   // DTSegmentUpdator* theUpdator; // the updator and fitter
00072   // DTSegmentCleaner* theCleaner; // the cleaner
00073     
00074   edm::ESHandle<DTGeometry> theDTGeometry; // the DT geometry
00075 
00076   // The reconstruction 2D algorithm
00077   // For the 2D reco I use thei reconstructor!
00078   DTCombinatorialPatternReco* the2DAlgo;
00079   
00080   // the updator
00081   DTSegmentUpdator *theUpdator;
00082 
00083   const DTChamber *theChamber;
00084 
00085   //the input type
00086   bool allDTRecHits;
00087 
00088   //  std::vector<DTRecHit1D> the1DPhiHits;
00089   std::vector<DTSLRecSegment2D> theSegments2DTheta; 
00090   std::vector<DTRecHit1DPair> theHitsFromPhi1;
00091   std::vector<DTRecHit1DPair> theHitsFromTheta;
00092   std::vector<DTRecHit1DPair> theHitsFromPhi2;
00093 };
00094 #endif

Generated on Tue Jun 9 17:43:53 2009 for CMSSW by  doxygen 1.5.4