00001 #ifndef L1Trigger_RPCTriggerGeo_h 00002 #define L1Trigger_RPCTriggerGeo_h 00003 00013 #include <FWCore/Framework/interface/ESHandle.h> // Handle to read geometry 00014 #include "FWCore/Framework/interface/Event.h" 00015 #include "DataFormats/MuonDetId/interface/RPCDetId.h" 00016 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h" 00017 00018 #include <Geometry/RPCGeometry/interface/RPCGeometry.h> 00019 #include <Geometry/Records/interface/MuonGeometryRecord.h> 00020 00021 #include "L1Trigger/RPCTrigger/interface/RPCDetInfo.h" 00022 #include "L1Trigger/RPCTrigger/interface/RPCRingFromRolls.h" 00023 00024 #include "L1Trigger/RPCTrigger/interface/RPCLogCone.h" 00025 #include <set> 00026 #include <vector> 00027 00028 00029 class RPCTriggerGeo { 00030 public: 00031 RPCTriggerGeo(); 00032 ~RPCTriggerGeo() {}; 00033 00034 void buildGeometry(edm::ESHandle<RPCGeometry> rpcGeom); 00035 bool isGeometryBuilt(); 00036 00037 L1RpcLogConesVec getCones(edm::Handle<RPCDigiCollection> rpcDigis, int bx); 00038 void printLinks(); 00039 00040 RPCRingFromRolls::RPCLinks getLinks() const {return m_links;}; 00041 00042 std::vector<int> getTowersForStrip(RPCDetId detID, int strip); 00043 //int getTowersForStrip(RPCDetId detID, int strip); 00044 private: 00045 void addDet(RPCRoll* roll); 00046 void printRingFromRollsMapInfo(); 00047 int etaToTower(float eta); 00048 00049 bool m_isGeometryBuilt; 00050 typedef std::map<uint32_t, RPCRingFromRolls> RPCRingFromRollsMap; 00051 // Probably the curls should be local 00052 RPCRingFromRollsMap m_RPCRingFromRollsMap; 00053 RPCRingFromRollsMap m_refRPCRingFromRollsMap; 00054 RPCRingFromRollsMap m_otherRPCRingFromRollsMap; 00055 00056 //L1RpcLogConesVec m_activeCones; 00057 00058 RPCRingFromRolls::RPCLinks m_links; 00059 00060 std::set<uint32_t> m_detsToIngore; 00061 }; 00062 #endif