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