00001
00002
00003
00004
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef CondFormatsL1TObjects_L1MuTriggerScales_h
00022 #define CondFormatsL1TObjects_L1MuTriggerScales_h
00023
00024 #include <cmath>
00025 #include <iostream>
00026 #include <vector>
00027
00028 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00029 #include "CondFormats/L1TObjects/interface/L1MuScale.h"
00030
00031 class L1MuTriggerScales {
00032 public:
00033
00035 L1MuTriggerScales() {}
00036
00037 L1MuTriggerScales( int nbitPackingDTEta,
00038 bool signedPackingDTEta,
00039 int nbinsDTEta,
00040 float minDTEta,
00041 float maxDTEta,
00042 int offsetDTEta,
00043
00044 int nbitPackingCSCEta,
00045 int nbinsCSCEta,
00046 float minCSCEta,
00047 float maxCSCEta,
00048
00049 const std::vector<double>& scaleRPCEta,
00050 int nbitPackingBrlRPCEta,
00051 bool signedPackingBrlRPCEta,
00052 int nbinsBrlRPCEta,
00053 int offsetBrlRPCEta,
00054 int nbitPackingFwdRPCEta,
00055 bool signedPackingFwdRPCEta,
00056 int nbinsFwdRPCEta,
00057 int offsetFwdRPCEta,
00058
00059 int nbitPackingGMTEta,
00060 int nbinsGMTEta,
00061 const std::vector<double>& scaleGMTEta,
00062
00063 int nbitPackingPhi,
00064 bool signedPackingPhi,
00065 int nbinsPhi,
00066 float minPhi,
00067 float maxPhi
00068
00069
00070
00071
00072
00073
00074 ) {
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089 m_RegionalEtaScale[0] = L1MuBinnedScale( nbitPackingDTEta,
00090 signedPackingDTEta,
00091 nbinsDTEta,
00092 minDTEta,
00093 maxDTEta,
00094 offsetDTEta );
00095
00096
00097
00098 m_RegionalEtaScale[1] = L1MuBinnedScale (nbitPackingBrlRPCEta,
00099 signedPackingBrlRPCEta,
00100 nbinsBrlRPCEta,
00101 scaleRPCEta,
00102 offsetBrlRPCEta ) ;
00103
00104
00105 m_RegionalEtaScale[2] = L1MuBinnedScale() ;
00106
00107
00108 m_RegionalEtaScaleCSC = L1MuSymmetricBinnedScale ( nbitPackingCSCEta,
00109 nbinsCSCEta,
00110 minCSCEta,
00111 maxCSCEta );
00112
00113
00114
00115 m_RegionalEtaScale[3] = L1MuBinnedScale (nbitPackingFwdRPCEta,
00116 signedPackingFwdRPCEta,
00117 nbinsFwdRPCEta,
00118 scaleRPCEta,
00119 offsetFwdRPCEta );
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132 m_GMTEtaScale = L1MuSymmetricBinnedScale (nbitPackingGMTEta,
00133 nbinsGMTEta,
00134 scaleGMTEta );
00135
00136
00137
00138
00139
00140
00141 m_PhiScale = L1MuBinnedScale (nbitPackingPhi,
00142 signedPackingPhi,
00143 nbinsPhi,
00144 minPhi,
00145 maxPhi );
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165 };
00166
00167
00169 virtual ~L1MuTriggerScales() {
00170
00171
00172
00173
00174
00175
00176 };
00177
00179 const L1MuScale* getRegionalEtaScale(int isys) const {
00180 if (isys<0 || isys>3) edm::LogWarning("ScaleRangeViolation") << "Error in L1MuTriggerScales:: isys out of range: " << isys;
00181 if( isys == 2 )
00182 {
00183 return &m_RegionalEtaScaleCSC ;
00184 }
00185 else
00186 {
00187 return &( m_RegionalEtaScale[isys] );
00188 }
00189 };
00190
00192 const L1MuScale* getGMTEtaScale() const { return &m_GMTEtaScale ; };
00193
00195 void setGMTEtaScale(const L1MuSymmetricBinnedScale& scale) { m_GMTEtaScale = scale ; };
00196
00197
00199 const L1MuScale* getPhiScale() const { return &m_PhiScale;};
00200
00202 void setPhiScale(const L1MuBinnedScale& scale) { m_PhiScale = scale ; };
00203
00204
00205
00206
00207
00208 private:
00209 L1MuBinnedScale m_RegionalEtaScale[4];
00210 L1MuSymmetricBinnedScale m_RegionalEtaScaleCSC ;
00211 L1MuSymmetricBinnedScale m_GMTEtaScale;
00212 L1MuBinnedScale m_PhiScale;
00213
00214 };
00215
00216
00217 #endif