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
00106
00107 m_RegionalEtaScaleCSC = L1MuSymmetricBinnedScale ( nbitPackingCSCEta,
00108 nbinsCSCEta,
00109 minCSCEta,
00110 maxCSCEta );
00111
00112
00113
00114 m_RegionalEtaScale[3] = L1MuBinnedScale (nbitPackingFwdRPCEta,
00115 signedPackingFwdRPCEta,
00116 nbinsFwdRPCEta,
00117 scaleRPCEta,
00118 offsetFwdRPCEta );
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131 m_GMTEtaScale = L1MuSymmetricBinnedScale (nbitPackingGMTEta,
00132 nbinsGMTEta,
00133 scaleGMTEta );
00134
00135
00136
00137
00138
00139
00140 m_PhiScale = L1MuBinnedScale (nbitPackingPhi,
00141 signedPackingPhi,
00142 nbinsPhi,
00143 minPhi,
00144 maxPhi );
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164 };
00165
00166
00168 virtual ~L1MuTriggerScales() {
00169
00170
00171
00172
00173
00174
00175 };
00176
00178 const L1MuScale* getRegionalEtaScale(int isys) const {
00179 if (isys<0 || isys>3) edm::LogWarning("ScaleRangeViolation") << "Error in L1MuTriggerScales:: isys out of range: " << isys;
00180 if( isys == 2 )
00181 {
00182 return &m_RegionalEtaScaleCSC ;
00183 }
00184 else
00185 {
00186 return &( m_RegionalEtaScale[isys] );
00187 }
00188 };
00189
00191 const L1MuScale* getGMTEtaScale() const { return &m_GMTEtaScale ; };
00192
00194 const L1MuScale* getPhiScale() const { return &m_PhiScale;};
00195
00196
00197
00198
00199
00200 private:
00201 L1MuBinnedScale m_RegionalEtaScale[4];
00202 L1MuSymmetricBinnedScale m_RegionalEtaScaleCSC ;
00203 L1MuSymmetricBinnedScale m_GMTEtaScale;
00204 L1MuBinnedScale m_PhiScale;
00205
00206 };
00207
00208
00209 #endif