File indexing completed on 2024-09-12 04:16:16
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef CondFormatsL1TObjects_L1MuTriggerScales_h
0022 #define CondFormatsL1TObjects_L1MuTriggerScales_h
0023
0024 #include "CondFormats/Serialization/interface/Serializable.h"
0025
0026 #include <cmath>
0027 #include <iostream>
0028 #include <vector>
0029
0030 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0031 #include "CondFormats/L1TObjects/interface/L1MuScale.h"
0032
0033 class L1MuTriggerScales {
0034 public:
0035
0036 L1MuTriggerScales() {}
0037
0038 L1MuTriggerScales(int nbitPackingDTEta,
0039 bool signedPackingDTEta,
0040 int nbinsDTEta,
0041 float minDTEta,
0042 float maxDTEta,
0043 int offsetDTEta,
0044
0045 int nbitPackingCSCEta,
0046 int nbinsCSCEta,
0047 float minCSCEta,
0048 float maxCSCEta,
0049
0050 const std::vector<double>& scaleRPCEta,
0051 int nbitPackingBrlRPCEta,
0052 bool signedPackingBrlRPCEta,
0053 int nbinsBrlRPCEta,
0054 int offsetBrlRPCEta,
0055 int nbitPackingFwdRPCEta,
0056 bool signedPackingFwdRPCEta,
0057 int nbinsFwdRPCEta,
0058 int offsetFwdRPCEta,
0059
0060 int nbitPackingGMTEta,
0061 int nbinsGMTEta,
0062 const std::vector<double>& scaleGMTEta,
0063
0064 int nbitPackingPhi,
0065 bool signedPackingPhi,
0066 int nbinsPhi,
0067 float minPhi,
0068 float maxPhi
0069
0070
0071
0072
0073
0074
0075 ) {
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089 m_RegionalEtaScale[0] =
0090 L1MuBinnedScale(nbitPackingDTEta, signedPackingDTEta, nbinsDTEta, minDTEta, maxDTEta, offsetDTEta);
0091
0092
0093
0094 m_RegionalEtaScale[1] =
0095 L1MuBinnedScale(nbitPackingBrlRPCEta, signedPackingBrlRPCEta, nbinsBrlRPCEta, scaleRPCEta, offsetBrlRPCEta);
0096
0097
0098 m_RegionalEtaScale[2] = L1MuBinnedScale();
0099
0100
0101 m_RegionalEtaScaleCSC = L1MuSymmetricBinnedScale(nbitPackingCSCEta, nbinsCSCEta, minCSCEta, maxCSCEta);
0102
0103
0104
0105 m_RegionalEtaScale[3] =
0106 L1MuBinnedScale(nbitPackingFwdRPCEta, signedPackingFwdRPCEta, nbinsFwdRPCEta, scaleRPCEta, offsetFwdRPCEta);
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119 m_GMTEtaScale = L1MuSymmetricBinnedScale(nbitPackingGMTEta, nbinsGMTEta, scaleGMTEta);
0120
0121
0122
0123
0124
0125
0126 m_PhiScale = L1MuBinnedScale(nbitPackingPhi, signedPackingPhi, nbinsPhi, minPhi, maxPhi);
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145 };
0146
0147
0148 virtual ~L1MuTriggerScales() {
0149
0150
0151
0152
0153
0154
0155 };
0156
0157
0158 const L1MuScale* getRegionalEtaScale(int isys) const {
0159 if (isys < 0 || isys > 3)
0160 edm::LogWarning("ScaleRangeViolation") << "Error in L1MuTriggerScales:: isys out of range: " << isys;
0161 if (isys == 2) {
0162 return &m_RegionalEtaScaleCSC;
0163 } else {
0164 return &(m_RegionalEtaScale[isys]);
0165 }
0166 };
0167
0168
0169 const L1MuScale* getGMTEtaScale() const { return &m_GMTEtaScale; };
0170
0171
0172 void setGMTEtaScale(const L1MuSymmetricBinnedScale& scale) { m_GMTEtaScale = scale; };
0173
0174
0175 const L1MuScale* getPhiScale() const { return &m_PhiScale; };
0176
0177
0178 void setPhiScale(const L1MuBinnedScale& scale) { m_PhiScale = scale; };
0179
0180
0181
0182
0183 private:
0184 L1MuBinnedScale m_RegionalEtaScale[4];
0185 L1MuSymmetricBinnedScale m_RegionalEtaScaleCSC;
0186 L1MuSymmetricBinnedScale m_GMTEtaScale;
0187 L1MuBinnedScale m_PhiScale;
0188
0189
0190 COND_SERIALIZABLE;
0191 };
0192
0193 #endif