00001 #ifndef L1Trigger_RPCDetInfo_h 00002 #define L1Trigger_RPCDetInfo_h 00003 00004 00016 #include "DataFormats/MuonDetId/interface/RPCDetId.h" 00017 #include <Geometry/RPCGeometry/interface/RPCGeometry.h> // To have RPCRoll. check if needed 00018 #include <Geometry/Records/interface/MuonGeometryRecord.h> 00019 00020 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00021 00022 00023 #include <Geometry/CommonTopologies/interface/RectangularStripTopology.h> // XXX 00024 #include <Geometry/CommonTopologies/interface/TrapezoidalStripTopology.h> 00025 00026 class RPCDetInfo{ 00027 00028 public: 00029 typedef std::map<int, float> RPCStripPhiMap; 00030 00031 00032 00033 RPCDetInfo(){ }; // To be able to use map 00034 RPCDetInfo(RPCRoll* roll); 00035 00036 uint32_t rawId(); 00037 float getPhi(); 00038 float getMinPhi(); 00039 float getMaxPhi(); 00040 float getEtaCentre(); 00041 int getRingFromRollsId(); 00042 //void setEtaMin(float); 00043 //void setEtaMax(float); 00044 int getMinTower(); 00045 int getMaxTower(); 00046 int getRegion(); 00047 int getRing(); 00048 int getHwPlane(); 00049 int getRoll(); 00050 int getGlobRollNo(); 00051 00052 RPCStripPhiMap getRPCStripPhiMap(); 00053 //int giveNextStripInPhi(int); 00054 //int givePrevStripInPhi(int); 00055 int giveStripOfPhi(float); 00056 00057 void printContents(); 00058 int etaToTower(float eta); 00059 00060 private: 00061 void setHwPlane(); 00062 int etaToSign(float eta); 00063 //int getHwPlane(int region, int station, int layer); 00064 float transformPhi(float phi); 00065 void makeStripPhiMap(RPCRoll* roll); 00066 // Members 00067 00068 00069 private: 00070 00071 uint32_t m_detId; 00072 int m_region; 00073 int m_ring; 00074 int m_station; 00075 int m_layer; 00076 int m_roll; 00077 int m_sector; 00078 int m_subsector; 00079 int m_hwPlane; 00080 float m_etaMin; 00081 float m_etaMax; 00082 float m_etaCentre; 00083 float m_phi; 00084 float m_phiMin; 00085 float m_phiMax; 00086 int m_towerMin; 00087 int m_towerMax; 00088 int m_globRoll; 00089 static const float m_towerBounds[]; 00090 00091 00092 RPCStripPhiMap m_stripPhiMap; 00093 00094 }; 00095 #endif