CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/Geometry/RPCGeometry/interface/RPCRoll.h

Go to the documentation of this file.
00001 #ifndef Geometry_RPCSimAlgo_RPCRoll_H
00002 #define Geometry_RPCSimAlgo_RPCRoll_H
00003 
00004 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h"
00005 #include "Geometry/CommonDetUnit/interface/GeomDetType.h"
00006 #include "DataFormats/MuonDetId/interface/RPCDetId.h"
00007 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00008 
00009 class StripTopology;
00010 class RPCRollSpecs;
00011 class RPCChamber;
00012 class RPCRoll : public GeomDetUnit{
00013 
00014  public:
00015   
00016   RPCRoll(RPCDetId id, BoundPlane::BoundPlanePointer bp, RPCRollSpecs* rrs);
00017   ~RPCRoll();
00018   const RPCRollSpecs* specs() const;
00019   RPCDetId id() const;
00020   const Topology& topology() const;
00021   const StripTopology& specificTopology() const;
00022   const GeomDetType& type() const; 
00023  
00025   const RPCChamber* chamber() const;
00026   
00027   int nstrips() const;
00028 
00029   LocalPoint  centreOfStrip(int strip) const;
00030   LocalPoint  centreOfStrip(float strip) const;
00031   LocalError  localError(float strip) const;
00032 
00033   float strip(const LocalPoint& lp) const;
00034   float pitch() const;
00035   float localPitch(const LocalPoint& lp) const; 
00036   bool isBarrel() const; 
00037   bool isForward() const;
00038   
00039  private:
00040   void setChamber(const RPCChamber* ch);
00041 
00042  private:
00043   RPCDetId _id;
00044   RPCRollSpecs* _rrs;
00045   const RPCChamber* theCh; // NOT owned
00046 };
00047 
00048 #endif