CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/Geometry/GEMGeometry/interface/GEMEtaPartition.h

Go to the documentation of this file.
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