File indexing completed on 2024-04-06 12:02:30
0001 #ifndef RPCReadOutMapping_H
0002 #define RPCReadOutMapping_H
0003
0004
0005
0006
0007
0008
0009 #include "CondFormats/Serialization/interface/Serializable.h"
0010
0011 #include <map>
0012 #include <vector>
0013 #include <utility>
0014 #include <string>
0015
0016 #include "CondFormats/RPCObjects/interface/DccSpec.h"
0017 #include "CondFormats/RPCObjects/interface/LinkBoardElectronicIndex.h"
0018 #include "CondFormats/RPCObjects/interface/LinkBoardPackedStrip.h"
0019 #include <cstdint>
0020 class LinkBoardSpec;
0021
0022 class RPCReadOutMapping {
0023 public:
0024
0025 typedef std::pair<uint32_t, int> StripInDetUnit;
0026
0027 RPCReadOutMapping(const std::string& version = "");
0028 virtual ~RPCReadOutMapping() {}
0029
0030
0031 const DccSpec* dcc(int dccId) const;
0032
0033
0034 std::pair<int, int> dccNumberRange() const;
0035
0036
0037 std::vector<const DccSpec*> dccList() const;
0038
0039
0040 void add(const DccSpec& dcc);
0041
0042
0043 const std::string& version() const { return theVersion; }
0044
0045
0046 virtual const LinkBoardSpec* location(const LinkBoardElectronicIndex& ele) const;
0047
0048
0049 virtual StripInDetUnit detUnitFrame(const LinkBoardSpec& location, const LinkBoardPackedStrip& packedStrip) const;
0050
0051
0052 std::vector<std::pair<LinkBoardElectronicIndex, LinkBoardPackedStrip> > rawDataFrame(
0053 const StripInDetUnit& duFrame) const;
0054
0055
0056 std::vector<const LinkBoardSpec*> getLBforChamber(const std::string& name) const;
0057 std::pair<LinkBoardElectronicIndex, int> getRAWSpecForCMSChamberSrip(uint32_t detId,
0058 int strip,
0059 int dccInputChannel) const;
0060
0061 private:
0062 typedef std::map<int, DccSpec>::const_iterator IMAP;
0063 std::map<int, DccSpec> theFeds;
0064 std::string theVersion;
0065
0066 COND_SERIALIZABLE;
0067 };
0068
0069 #endif