CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h

Go to the documentation of this file.
00001 #ifndef GlobalTrackingGeometry_h
00002 #define GlobalTrackingGeometry_h
00003 
00018 #include <Geometry/CommonDetUnit/interface/TrackingGeometry.h>
00019 #include <vector>
00020 
00021 class GlobalTrackingGeometry : public TrackingGeometry {
00022     public:
00024         GlobalTrackingGeometry(std::vector<const TrackingGeometry*>& geos);
00025 
00027         virtual ~GlobalTrackingGeometry();  
00028 
00029         // Return a vector of all det types.
00030         virtual const DetTypeContainer&  detTypes()         const;
00031 
00032         // Returm a vector of all GeomDetUnit
00033         virtual const DetUnitContainer&  detUnits()         const;
00034 
00035         // Returm a vector of all GeomDet (including all GeomDetUnits)
00036         virtual const DetContainer&      dets()             const;
00037 
00038         // Returm a vector of all GeomDetUnit DetIds
00039         virtual const DetIdContainer&    detUnitIds()       const;
00040 
00041         // Returm a vector of all GeomDet DetIds (including those of GeomDetUnits)
00042         virtual const DetIdContainer&    detIds()           const;
00043 
00044         // Return the pointer to the GeomDetUnit corresponding to a given DetId
00045         virtual const GeomDetUnit*       idToDetUnit(DetId) const;
00046 
00047         // Return the pointer to the GeomDet corresponding to a given DetId
00048         // (valid also for GeomDetUnits)
00049         virtual const GeomDet*           idToDet(DetId)     const; 
00050         
00052         const TrackingGeometry* slaveGeometry(DetId id) const;
00053 
00054     private:
00055  
00056         std::vector<const TrackingGeometry*> theGeometries;
00057 };
00058 #endif
00059