00001 #ifndef RPCReadOutMappingWithFastSearch_H 00002 #define RPCReadOutMappingWithFastSearch_H 00003 00004 #include "CondFormats/RPCObjects/interface/RPCReadOutMapping.h" 00005 #include <string> 00006 #include <map> 00007 00008 class RPCReadOutMappingWithFastSearch : public RPCReadOutMapping { 00009 public: 00010 RPCReadOutMappingWithFastSearch(); 00011 virtual ~RPCReadOutMappingWithFastSearch(){} 00012 00014 void init(const RPCReadOutMapping * arm); 00015 00016 virtual const LinkBoardSpec* location (const LinkBoardElectronicIndex & ele) const; 00017 00018 virtual RPCReadOutMapping::StripInDetUnit detUnitFrame( 00019 const LinkBoardSpec& location, const LinkBoardPackedStrip & lbstrip) const; 00020 00021 private: 00022 std::string theVersion; 00023 const RPCReadOutMapping * theMapping; 00024 00025 struct lessMap { 00026 bool operator()(const LinkBoardElectronicIndex & lb1, const LinkBoardElectronicIndex & lb2) const; 00027 }; 00028 00029 typedef std::map<LinkBoardElectronicIndex, const LinkBoardSpec*, lessMap> LBMap; 00030 LBMap theLBMap; 00031 }; 00032 #endif