CMS 3D CMS Logo

DTGeomSupplier.h

Go to the documentation of this file.
00001 //-------------------------------------------------
00002 //
00012 //
00013 //--------------------------------------------------
00014 #ifndef DT_GEOM_SUPPLIER_H
00015 #define DT_GEOM_SUPPLIER_H
00016 
00017 //------------------------------------
00018 // Collaborating Class Declarations --
00019 //------------------------------------
00020 
00021 //----------------------
00022 // Base Class Headers --
00023 //----------------------
00024 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00025 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00026 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
00027 #include "DataFormats/GeometryVector/interface/LocalVector.h"
00028 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00029 #include "DataFormats/MuonDetId/interface/DTSuperLayerId.h"
00030 #include "DataFormats/MuonDetId/interface/DTLayerId.h"
00031 #include "DataFormats/MuonDetId/interface/DTWireId.h"
00032 #include "Geometry/DTGeometry/interface/DTChamber.h"
00033 #include "L1Trigger/DTUtilities/interface/DTTrigGeom.h"
00034 #include "L1Trigger/DTUtilities/interface/DTTrigData.h"
00035 
00036 
00037 //---------------
00038 // C++ Headers --
00039 //---------------
00040 
00041 //              ---------------------
00042 //              -- Class Interface --
00043 //              ---------------------
00044 
00045 class DTGeomSupplier {
00046 
00047  public:
00048 
00050   DTGeomSupplier(DTTrigGeom* geom) : _geom(geom) {}
00051 
00053   virtual ~DTGeomSupplier() {}
00054 
00056   inline DTTrigGeom* geom() const { return _geom; }
00057 
00059   inline const DTChamber* stat() const { return _geom->stat(); }
00060 
00062   inline DTChamberId ChamberId() const { return _geom->statId(); }
00063 
00065   inline int wheel() const { return _geom->wheel(); }
00066 
00068   inline int station() const { return _geom->station(); }
00069 
00071   inline int sector() const { return _geom->sector(); }
00072 
00074   virtual LocalPoint localPosition(const DTTrigData*) const = 0;
00075 
00077   virtual LocalVector localDirection(const DTTrigData*) const = 0;
00078 
00080   inline GlobalPoint CMSPosition(const DTTrigData* trig) const {
00081     return _geom->toGlobal(localPosition(trig));
00082   }
00083 
00085   inline GlobalVector CMSDirection(const DTTrigData* trig) const {
00086     return _geom->toGlobal(localDirection(trig));
00087   }
00088 
00090   virtual void print(const DTTrigData* trig) const {
00091     trig->print();
00092     std::cout << " Local (pos)(dir): " << localPosition(trig)
00093               << localDirection(trig) << std::endl;
00094     std::cout << " CMS (pos)(dir): " << CMSPosition(trig) 
00095               << CMSDirection(trig) << std::endl;
00096   }    
00097 
00098 protected:
00099 
00100   DTTrigGeom* _geom;
00101 
00102 };
00103 
00104 #endif

Generated on Tue Jun 9 17:40:03 2009 for CMSSW by  doxygen 1.5.4