CMS 3D CMS Logo

TrackerGeometry.h

Go to the documentation of this file.
00001 #ifndef Geometry_TrackerGeometryBuilder_TrackerGeometry_H
00002 #define Geometry_TrackerGeometryBuilder_TrackerGeometry_H
00003 
00004 #include "Geometry/CommonDetUnit/interface/TrackingGeometry.h"
00005 
00006 class GeometricDet;
00007 
00008 #include "Geometry/TrackerGeometryBuilder/interface/trackerHierarchy.h"
00009 
00010 #include "DataFormats/Common/interface/Trie.h"
00011 
00012 // FIXME here just to allow prototyping...
00013 namespace trackerTrie {
00014   typedef GeomDet const* PDet;
00015   typedef edm::Trie<PDet> DetTrie;
00016   typedef edm::TrieNode<PDet> Node;
00017   typedef Node const * node_pointer; // sigh....
00018   typedef edm::TrieNodeIter<PDet> node_iterator;
00019 }
00020 
00021 
00026 class TrackerGeometry : public TrackingGeometry {
00027 public:
00028 
00029   explicit TrackerGeometry(GeometricDet const* gd=0);  
00030 
00031   virtual const DetTypeContainer&  detTypes()         const;
00032   virtual const DetUnitContainer&  detUnits()         const;
00033   virtual const DetContainer&      dets()             const;
00034   virtual const DetIdContainer&    detUnitIds()       const;
00035   virtual const DetIdContainer&    detIds()           const;
00036   virtual const GeomDetUnit*       idToDetUnit(DetId) const;
00037   virtual const GeomDet*           idToDet(DetId)     const;
00038 
00039 
00040   void addType(GeomDetType* p);
00041   void addDetUnit(GeomDetUnit* p);
00042   void addDetUnitId(DetId p);
00043   void addDet(GeomDet* p);
00044   void addDetId(DetId p);
00045 
00046 
00047 
00048 
00049   GeometricDet const * trackerDet() const; 
00050 
00051   const DetContainer& detsPXB() const;
00052   const DetContainer& detsPXF() const;
00053   const DetContainer& detsTIB() const;
00054   const DetContainer& detsTID() const;
00055   const DetContainer& detsTOB() const;
00056   const DetContainer& detsTEC() const;
00057 
00058 private:
00059 
00060   GeometricDet const * theTrackerDet; 
00061 
00063   friend class GeometryAligner;
00064 
00065   DetTypeContainer  theDetTypes;
00066   DetUnitContainer  theDetUnits;
00067   DetContainer      theDets;
00068   DetIdContainer    theDetUnitIds;
00069   DetIdContainer    theDetIds;
00070   mapIdToDetUnit    theMapUnit;
00071   mapIdToDet        theMap;
00072 
00073   DetContainer      thePXBDets;
00074   DetContainer      thePXFDets;
00075   DetContainer      theTIBDets;
00076   DetContainer      theTIDDets;
00077   DetContainer      theTOBDets;
00078   DetContainer      theTECDets;
00079 
00080 
00081 };
00082 
00083 #endif

Generated on Tue Jun 9 17:37:33 2009 for CMSSW by  doxygen 1.5.4