File indexing completed on 2024-04-06 12:07:28
0001 #ifndef HashFunctions_h
0002 #define HashFunctions_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "DQM/HcalCommon/interface/Constants.h"
0013 #include "DQM/HcalCommon/interface/HcalCommonHeaders.h"
0014
0015 namespace hcaldqm {
0016 namespace hashfunctions {
0017
0018
0019
0020 uint32_t hash_Subdet(HcalDetId const &);
0021 uint32_t hash_Subdetiphi(HcalDetId const &);
0022 uint32_t hash_Subdetieta(HcalDetId const &);
0023 uint32_t hash_Subdetdepth(HcalDetId const &);
0024 uint32_t hash_SubdetPM(HcalDetId const &);
0025 uint32_t hash_SubdetPMiphi(HcalDetId const &);
0026 uint32_t hash_iphi(HcalDetId const &);
0027 uint32_t hash_ieta(HcalDetId const &);
0028 uint32_t hash_depth(HcalDetId const &);
0029 uint32_t hash_HFPMiphi(HcalDetId const &);
0030 uint32_t hash_HBHEPartition(HcalDetId const &);
0031 uint32_t hash_DChannel(HcalDetId const &);
0032
0033
0034
0035
0036 uint32_t hash_FED(HcalElectronicsId const &);
0037 uint32_t hash_FEDSpigot(HcalElectronicsId const &);
0038 uint32_t hash_FEDSlot(HcalElectronicsId const &);
0039 uint32_t hash_Crate(HcalElectronicsId const &);
0040 uint32_t hash_CrateSpigot(HcalElectronicsId const &);
0041 uint32_t hash_CrateSlot(HcalElectronicsId const &);
0042 uint32_t hash_Fiber(HcalElectronicsId const &);
0043 uint32_t hash_FiberFiberCh(HcalElectronicsId const &);
0044 uint32_t hash_FiberCh(HcalElectronicsId const &);
0045 uint32_t hash_Electronics(HcalElectronicsId const &);
0046 uint32_t hash_EChannel(HcalElectronicsId const &);
0047
0048
0049
0050
0051 uint32_t hash_TTSubdet(HcalTrigTowerDetId const &);
0052 uint32_t hash_TTSubdetPM(HcalTrigTowerDetId const &);
0053 uint32_t hash_TTSubdetPMiphi(HcalTrigTowerDetId const &);
0054 uint32_t hash_TTSubdetieta(HcalTrigTowerDetId const &);
0055 uint32_t hash_TTdepth(HcalTrigTowerDetId const &);
0056 uint32_t hash_TChannel(HcalTrigTowerDetId const &);
0057
0058
0059
0060
0061 uint32_t hash_TTSubdetFW(HcalTrigTowerDetId const &, HcalElectronicsId const &);
0062
0063 std::string name_Subdet(HcalDetId const &);
0064 std::string name_Subdetiphi(HcalDetId const &);
0065 std::string name_Subdetieta(HcalDetId const &);
0066 std::string name_Subdetdepth(HcalDetId const &);
0067 std::string name_SubdetPM(HcalDetId const &);
0068 std::string name_SubdetPMiphi(HcalDetId const &);
0069 std::string name_iphi(HcalDetId const &);
0070 std::string name_ieta(HcalDetId const &);
0071 std::string name_depth(HcalDetId const &);
0072 std::string name_HFPMiphi(HcalDetId const &);
0073 std::string name_HBHEPartition(HcalDetId const &);
0074 std::string name_DChannel(HcalDetId const &);
0075
0076 uint32_t hash_Subdet(std::string const &);
0077 uint32_t hash_Subdetiphi(std::string const &);
0078 uint32_t hash_Subdetieta(std::string const &);
0079 uint32_t hash_Subdetdepth(std::string const &);
0080 uint32_t hash_SubdetPM(std::string const &);
0081 uint32_t hash_SubdetPMiphi(std::string const &);
0082 uint32_t hash_iphi(std::string const &);
0083 uint32_t hash_ieta(std::string const &);
0084 uint32_t hash_depth(std::string const &);
0085 uint32_t hash_HFPMiphi(std::string const &);
0086 uint32_t hash_HBHEPartition(std::string const &);
0087 uint32_t hash_DChannel(std::string const &);
0088
0089 std::string name_FED(HcalElectronicsId const &);
0090 std::string name_FEDSpigot(HcalElectronicsId const &);
0091 std::string name_FEDSlot(HcalElectronicsId const &);
0092 std::string name_Crate(HcalElectronicsId const &);
0093 std::string name_CrateSpigot(HcalElectronicsId const &);
0094 std::string name_CrateSlot(HcalElectronicsId const &);
0095 std::string name_Fiber(HcalElectronicsId const &);
0096 std::string name_FiberFiberCh(HcalElectronicsId const &);
0097 std::string name_FiberCh(HcalElectronicsId const &);
0098 std::string name_Electronics(HcalElectronicsId const &);
0099 std::string name_EChannel(HcalElectronicsId const &);
0100
0101 uint32_t hash_FED(std::string const &);
0102 uint32_t hash_FEDSpigot(std::string const &);
0103 uint32_t hash_FEDSlot(std::string const &);
0104 uint32_t hash_Crate(std::string const &);
0105 uint32_t hash_CrateSpigot(std::string const &);
0106 uint32_t hash_CrateSlot(std::string const &);
0107 uint32_t hash_Fiber(std::string const &);
0108 uint32_t hash_FiberFiberCh(std::string const &);
0109 uint32_t hash_FiberCh(std::string const &);
0110 uint32_t hash_Electronics(std::string const &);
0111 uint32_t hash_EChannel(std::string const &);
0112
0113 std::string name_TTSubdet(HcalTrigTowerDetId const &);
0114 std::string name_TTSubdetPM(HcalTrigTowerDetId const &);
0115 std::string name_TTSubdetPMiphi(HcalTrigTowerDetId const &);
0116 std::string name_TTSubdetieta(HcalTrigTowerDetId const &);
0117 std::string name_TTdepth(HcalTrigTowerDetId const &);
0118 std::string name_TChannel(HcalTrigTowerDetId const &);
0119
0120 uint32_t hash_TTSubdet(std::string const &);
0121 uint32_t hash_TTSubdetPM(std::string const &);
0122 uint32_t hash_TTSubdetPMiphi(std::string const &);
0123 uint32_t hash_TTSubdetieta(std::string const &);
0124 uint32_t hash_TTdepth(std::string const &);
0125 uint32_t hash_TChannel(std::string const &);
0126
0127 std::string name_TTSubdetFW(HcalTrigTowerDetId const &, HcalElectronicsId const &);
0128
0129 uint32_t hash_TTSubdetFW(std::string const &);
0130
0131 enum HashType {
0132 fSubdet = 0,
0133 fSubdetiphi = 1,
0134 fSubdetieta = 2,
0135 fSubdetdepth = 3,
0136 fSubdetPM = 4,
0137 fSubdetPMiphi = 5,
0138 fiphi = 6,
0139 fieta = 7,
0140 fdepth = 8,
0141 fHFPMiphi = 9,
0142 fHBHEPartition = 10,
0143 fDChannel = 11,
0144 nHashType_did = 12,
0145 fFED = 13,
0146 fFEDSpigot = 14,
0147 fFEDSlot = 15,
0148 fCrate = 16,
0149 fCrateSpigot = 17,
0150 fCrateSlot = 18,
0151 fFiber = 19,
0152 fFiberFiberCh = 20,
0153 fFiberCh = 21,
0154 fElectronics = 22,
0155 fEChannel = 23,
0156 nHashType_eid = 24,
0157 fTTSubdet = 25,
0158 fTTSubdetPM = 26,
0159 fTTSubdetPMiphi = 27,
0160 fTTSubdetieta = 28,
0161 fTTdepth = 29,
0162 fTChannel = 30,
0163 nHashType_tid = 31,
0164 fTTSubdetFW = 32,
0165 nHashType_mixid = 33,
0166 nHashType = 34
0167 };
0168 typedef uint32_t (*hash_function_did)(HcalDetId const &);
0169 typedef uint32_t (*hash_function_eid)(HcalElectronicsId const &);
0170 typedef uint32_t (*hash_function_tid)(HcalTrigTowerDetId const &);
0171 typedef uint32_t (*hash_function_mixid)(HcalTrigTowerDetId const &, HcalElectronicsId const &);
0172 typedef std::string (*name_function_did)(HcalDetId const &);
0173 typedef std::string (*name_function_eid)(HcalElectronicsId const &);
0174 typedef std::string (*name_function_tid)(HcalTrigTowerDetId const &);
0175 typedef std::string (*name_function_mixid)(HcalTrigTowerDetId const &, HcalElectronicsId const &);
0176 hash_function_did const hash_did[nHashType_did] = {hash_Subdet,
0177 hash_Subdetiphi,
0178 hash_Subdetieta,
0179 hash_Subdetdepth,
0180 hash_SubdetPM,
0181 hash_SubdetPMiphi,
0182 hash_iphi,
0183 hash_ieta,
0184 hash_depth,
0185 hash_HFPMiphi,
0186 hash_HBHEPartition,
0187 hash_DChannel};
0188 hash_function_eid const hash_eid[nHashType_eid - nHashType_did - 1] = {hash_FED,
0189 hash_FEDSpigot,
0190 hash_FEDSlot,
0191 hash_Crate,
0192 hash_CrateSpigot,
0193 hash_CrateSlot,
0194 hash_Fiber,
0195 hash_FiberFiberCh,
0196 hash_FiberCh,
0197 hash_Electronics,
0198 hash_EChannel};
0199 hash_function_tid const hash_tid[nHashType_tid - nHashType_eid - 1] = {
0200 hash_TTSubdet, hash_TTSubdetPM, hash_TTSubdetPMiphi, hash_TTSubdetieta, hash_TTdepth, hash_TChannel};
0201 hash_function_mixid const hash_mixid[nHashType_mixid - nHashType_tid - 1] = {hash_TTSubdetFW};
0202 name_function_did const name_did[nHashType_did] = {name_Subdet,
0203 name_Subdetiphi,
0204 name_Subdetieta,
0205 name_Subdetdepth,
0206 name_SubdetPM,
0207 name_SubdetPMiphi,
0208 name_iphi,
0209 name_ieta,
0210 name_depth,
0211 name_HFPMiphi,
0212 name_HBHEPartition,
0213 name_DChannel};
0214 name_function_eid const name_eid[nHashType_eid - nHashType_did - 1] = {name_FED,
0215 name_FEDSpigot,
0216 name_FEDSlot,
0217 name_Crate,
0218 name_CrateSpigot,
0219 name_CrateSlot,
0220 name_Fiber,
0221 name_FiberFiberCh,
0222 name_FiberCh,
0223 name_Electronics,
0224 name_EChannel};
0225 name_function_tid const name_tid[nHashType_tid - nHashType_eid - 1] = {
0226 name_TTSubdet, name_TTSubdetPM, name_TTSubdetPMiphi, name_TTSubdetieta, name_TTdepth, name_TChannel};
0227 name_function_mixid const name_mixid[nHashType_mixid - nHashType_tid - 1] = {name_TTSubdetFW};
0228 int const nhashes = nHashType_did + (nHashType_eid - nHashType_did - 1) + (nHashType_tid - nHashType_eid - 1) +
0229 (nHashType_mixid - nHashType_tid - 1);
0230 std::string const hash_names[nhashes] = {
0231 "Subdet", "Subdetiphi", "Subdetieta", "Subdetdepth", "SubdetPM", "SubdetPMiphi",
0232 "iphi", "ieta", "depth", "HFPMiphi", "HBHEPartition", "DChannel",
0233
0234 "FED", "FEDSpigot", "FEDSlot", "Crate", "CrateSpigot", "CrateSlot",
0235 "Fiber", "FiberFiberCh", "FiberCh", "Electronics", "EChannel",
0236
0237 "TTSubdet", "TTSubdetPM", "TTSubdetPMiphi", "TTSubdetieta", "TTdepth", "TChannel",
0238
0239 "TTSubdetFW"};
0240 }
0241 }
0242
0243 #endif