CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/RecoMuon/GlobalTrackingTools/interface/ChamberSegmentUtility.h

Go to the documentation of this file.
00001 #ifndef EstimatorTool_RecSegment_h
00002 #define EstimatorTool_RecSegment_h
00003 
00018 #include "Geometry/DTGeometry/interface/DTGeometry.h"
00019 #include "FWCore/Framework/interface/ESHandle.h"
00020 #include "FWCore/Framework/interface/Event.h"
00021 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00022 #include "DataFormats/GeometrySurface/interface/LocalError.h"
00023 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
00024 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
00025 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
00026 #include "Geometry/CSCGeometry/interface/CSCGeometry.h"
00027 #include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h"
00028 #include "Geometry/DTGeometry/interface/DTChamber.h"
00029 #include "DataFormats/DTRecHit/interface/DTRecSegment4D.h"
00030 #include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h"
00031 #include "DataFormats/CSCRecHit/interface/CSCSegment.h"
00032 #include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h"
00033 
00034 
00035 class ChamberSegmentUtility {
00036 
00037  public:
00038 
00039   ChamberSegmentUtility(const edm::Event&, const edm::EventSetup&);
00040 
00041   // Get the 4D segments in a CSC chamber
00042   std::vector<CSCSegment> getCSCSegmentsInChamber(CSCDetId);
00043 
00044   // Get the 4D segments in a DT chamber
00045   std::vector<DTRecSegment4D> getDTSegmentsInChamber(DTChamberId);
00046 
00047   // Get the list of DT chambers with segments
00048   const std::map<int, std::vector<DTRecSegment4D> >& getDTlist() const { return dtsegMap; };
00049 
00050   // Get the list of CSC chambers with segments
00051   const std::map<int, std::vector<CSCSegment> >& getCSClist() const { return cscsegMap; };
00052 
00053   // Get the map association between segments4d and rechits
00054   std::vector<DTRecHit1D> getDTRHmap(const DTRecSegment4D&);
00055 
00056   // Get the map association between segments4d and rechits 
00057   std::vector<CSCRecHit2D> getCSCRHmap(const CSCSegment&);
00058 
00059   
00060  private:
00061 
00062   edm::ESHandle<CSCGeometry> cscGeometry;
00063   edm::Handle<CSCSegmentCollection> CSCSegments;
00064   edm::ESHandle<DTGeometry> dtGeom;
00065   edm::Handle<DTRecSegment4DCollection> all4DSegments;
00066 
00067   std::vector<DTRecSegment4D> dtseg;
00068   std::vector<CSCSegment> cscseg;
00069   std::map<int, std::vector<DTRecSegment4D> > dtsegMap;
00070   std::map<int, std::vector<CSCSegment> > cscsegMap;
00071   DTChamberId selectedDT;
00072   CSCDetId selectedCSC;
00073   std::vector<DTRecHit1D> phiSegRH;
00074   std::vector<DTRecHit1D> zSegRH;  
00075 };
00076 
00077 #endif
00078 
00079