00001 #ifndef Geometry_GEMGeometry_GEMEtaPartition_H 00002 #define Geometry_GEMGeometry_GEMEtaPartition_H 00003 00004 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h" 00005 #include "Geometry/CommonDetUnit/interface/GeomDetType.h" 00006 #include "DataFormats/MuonDetId/interface/GEMDetId.h" 00007 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00008 00009 class StripTopology; 00010 class GEMEtaPartitionSpecs; 00011 //class GEMChamber; 00012 00013 class GEMEtaPartition : public GeomDetUnit 00014 { 00015 public: 00016 00017 GEMEtaPartition(GEMDetId id, BoundPlane::BoundPlanePointer bp, GEMEtaPartitionSpecs* rrs); 00018 ~GEMEtaPartition(); 00019 00020 const GEMEtaPartitionSpecs* specs() const { return specs_; } 00021 GEMDetId id() const { return id_; } 00022 00023 const Topology& topology() const; 00024 const StripTopology& specificTopology() const; 00025 00026 const Topology& padTopology() const; 00027 const StripTopology& specificPadTopology() const; 00028 00029 const GeomDetType& type() const; 00030 00032 //const GEMChamber* chamber() const; 00033 00034 // strip-related methods: 00035 00037 int nstrips() const; 00038 00041 LocalPoint centreOfStrip(int strip) const; 00042 00045 LocalPoint centreOfStrip(float strip) const; 00046 LocalError localError(float strip) const; 00047 00051 float strip(const LocalPoint& lp) const; 00052 00053 float pitch() const; 00054 float localPitch(const LocalPoint& lp) const; 00055 00056 00057 // GEM-CSC pad-related methods: 00058 00060 int npads() const; 00061 00064 LocalPoint centreOfPad(int pad) const; 00065 00068 LocalPoint centreOfPad(float pad) const; 00069 00071 float pad(const LocalPoint& lp) const; 00072 00074 float padPitch() const; 00076 float localPadPitch(const LocalPoint& lp) const; 00077 00078 00079 // relations between strips and pads: 00080 00082 float padOfStrip(int strip) const; 00083 00085 int firstStripInPad(int pad) const; 00086 00088 int lastStripInPad(int pad) const; 00089 00090 private: 00091 00092 GEMDetId id_; 00093 GEMEtaPartitionSpecs* specs_; 00094 }; 00095 00096 #endif 00097