File indexing completed on 2024-06-07 02:29:28
0001 #ifndef EcalDQMCommonUtils_H
0002 #define EcalDQMCommonUtils_H
0003
0004 #include <algorithm>
0005 #include <cmath>
0006 #include <iomanip>
0007
0008 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0009 #include "Geometry/CaloTopology/interface/EcalTrigTowerConstituentsMap.h"
0010 #include "Geometry/EcalMapping/interface/EcalElectronicsMapping.h"
0011
0012 #include "DataFormats/EcalDetId/interface/EBDetId.h"
0013 #include "DataFormats/EcalDetId/interface/EEDetId.h"
0014 #include "DataFormats/EcalDetId/interface/EcalElectronicsId.h"
0015 #include "DataFormats/EcalDetId/interface/EcalPnDiodeDetId.h"
0016 #include "DataFormats/EcalDetId/interface/EcalScDetId.h"
0017 #include "DataFormats/EcalDetId/interface/EcalSubdetector.h"
0018 #include "DataFormats/EcalDetId/interface/EcalTrigTowerDetId.h"
0019 #include "DataFormats/EcalDetId/interface/EcalTriggerElectronicsId.h"
0020
0021 #include "FWCore/Utilities/interface/Exception.h"
0022
0023 namespace ecaldqm {
0024
0025 enum SMName {
0026 kEEm07,
0027 kEEm08,
0028 kEEm09,
0029 kEEm01,
0030 kEEm02,
0031 kEEm03,
0032 kEEm04,
0033 kEEm05,
0034 kEEm06,
0035 kEBm01,
0036 kEBm02,
0037 kEBm03,
0038 kEBm04,
0039 kEBm05,
0040 kEBm06,
0041 kEBm07,
0042 kEBm08,
0043 kEBm09,
0044 kEBm10,
0045 kEBm11,
0046 kEBm12,
0047 kEBm13,
0048 kEBm14,
0049 kEBm15,
0050 kEBm16,
0051 kEBm17,
0052 kEBm18,
0053 kEBp01,
0054 kEBp02,
0055 kEBp03,
0056 kEBp04,
0057 kEBp05,
0058 kEBp06,
0059 kEBp07,
0060 kEBp08,
0061 kEBp09,
0062 kEBp10,
0063 kEBp11,
0064 kEBp12,
0065 kEBp13,
0066 kEBp14,
0067 kEBp15,
0068 kEBp16,
0069 kEBp17,
0070 kEBp18,
0071 kEEp07,
0072 kEEp08,
0073 kEEp09,
0074 kEEp01,
0075 kEEp02,
0076 kEEp03,
0077 kEEp04,
0078 kEEp05,
0079 kEEp06,
0080 kEEmLow = kEEm07,
0081 kEEmHigh = kEEm06,
0082 kEEpLow = kEEp07,
0083 kEEpHigh = kEEp06,
0084 kEBmLow = kEBm01,
0085 kEBmHigh = kEBm18,
0086 kEBpLow = kEBp01,
0087 kEBpHigh = kEBp18
0088 };
0089
0090 static constexpr int nDCC = 54, nEBDCC = 36, nEEDCC = 18, nDCCMEM = 44, nEEDCCMEM = 8;
0091
0092
0093
0094
0095
0096
0097 static constexpr int nTTOuter = 16, nTTInner = 28;
0098
0099 static constexpr int nTCC = 108, kEEmTCCLow = 0, kEEmTCCHigh = 35, kEEpTCCLow = 72, kEEpTCCHigh = 107, kEBTCCLow = 36,
0100 kEBTCCHigh = 71, nChannels = EBDetId::kSizeForDenseIndexing + EEDetId::kSizeForDenseIndexing,
0101 nTowers = EcalTrigTowerDetId::kEBTotalTowers + EcalScDetId::kSizeForDenseIndexing;
0102
0103 extern std::vector<unsigned> const memDCC;
0104
0105 extern double const etaBound;
0106
0107
0108 unsigned dccId(DetId const &, EcalElectronicsMapping const *);
0109 unsigned dccId(EcalElectronicsId const &);
0110
0111 unsigned memDCCId(unsigned);
0112 unsigned memDCCIndex(unsigned);
0113
0114
0115 unsigned tccId(DetId const &, EcalElectronicsMapping const *);
0116 unsigned tccId(EcalElectronicsId const &, EcalElectronicsMapping const *);
0117
0118
0119 unsigned towerId(DetId const &, EcalElectronicsMapping const *);
0120 unsigned towerId(EcalElectronicsId const &);
0121
0122 unsigned ttId(DetId const &, EcalElectronicsMapping const *);
0123 unsigned ttId(EcalElectronicsId const &, EcalElectronicsMapping const *);
0124
0125 unsigned rtHalf(DetId const &, EcalElectronicsMapping const *);
0126
0127 std::pair<unsigned, unsigned> innerTCCs(unsigned);
0128 std::pair<unsigned, unsigned> outerTCCs(unsigned);
0129
0130 std::vector<DetId> scConstituents(EcalScDetId const &);
0131
0132 EcalPnDiodeDetId pnForCrystal(DetId const &, char, EcalElectronicsMapping const *);
0133
0134 unsigned dccId(std::string const &);
0135 std::string smName(unsigned);
0136
0137 int zside(DetId const &);
0138
0139 double eta(EBDetId const &, CaloGeometry const *);
0140 double eta(EEDetId const &, CaloGeometry const *);
0141 double phi(EBDetId const &);
0142 double phi(EEDetId const &);
0143 double phi(EcalTrigTowerDetId const &);
0144 double phi(double);
0145
0146 bool isForward(DetId const &);
0147
0148 bool isCrystalId(DetId const &);
0149 bool isSingleChannelId(DetId const &);
0150 bool isEcalScDetId(DetId const &);
0151 bool isEndcapTTId(DetId const &);
0152
0153 unsigned nCrystals(unsigned);
0154 unsigned nSuperCrystals(unsigned);
0155
0156 bool ccuExists(unsigned, unsigned);
0157 }
0158
0159 #endif