Go to the documentation of this file.00001
00002
00003
00004
00005
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "CondTools/L1Trigger/interface/L1ConfigOnlineProdBase.h"
00025
00026 #include "CondFormats/L1TObjects/interface/L1CaloEtScale.h"
00027 #include "CondFormats/DataRecord/interface/L1HtMissScaleRcd.h"
00028
00029
00030
00031
00032
00033
00034 class L1HtMissScaleOnlineProd :
00035 public L1ConfigOnlineProdBase< L1HtMissScaleRcd, L1CaloEtScale > {
00036 public:
00037 L1HtMissScaleOnlineProd(const edm::ParameterSet&);
00038 ~L1HtMissScaleOnlineProd();
00039
00040 virtual boost::shared_ptr< L1CaloEtScale > newObject(
00041 const std::string& objectKey ) ;
00042
00043
00044 private:
00045
00046 };
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 L1HtMissScaleOnlineProd::L1HtMissScaleOnlineProd(
00060 const edm::ParameterSet& iConfig)
00061 : L1ConfigOnlineProdBase< L1HtMissScaleRcd, L1CaloEtScale >( iConfig )
00062 {
00063
00064
00065
00066
00067 }
00068
00069
00070 L1HtMissScaleOnlineProd::~L1HtMissScaleOnlineProd()
00071 {
00072
00073
00074
00075
00076 }
00077
00078 boost::shared_ptr< L1CaloEtScale >
00079 L1HtMissScaleOnlineProd::newObject( const std::string& objectKey )
00080 {
00081 using namespace edm::es;
00082
00083 l1t::OMDSReader::QueryResults scalesKeyResults =
00084 m_omdsReader.basicQuery(
00085 "GCT_SCALES_KEY",
00086 "CMS_GCT",
00087 "GCT_PHYS_PARAMS",
00088 "GCT_PHYS_PARAMS.CONFIG_KEY",
00089 m_omdsReader.singleAttribute( objectKey ) );
00090
00091 std::string scalesKey ;
00092
00093 if( scalesKeyResults.queryFailed() ) {
00094 edm::LogError("L1-O2O")
00095 << "Problem with key for L1HtMissScaleRcd : GCT scales key query failed ";
00096 }
00097 else if( scalesKeyResults.numberRows() != 1 ) {
00098 edm::LogError("L1-O2O")
00099 << "Problem with key for L1HtMissScaleRcd : "
00100 << (scalesKeyResults.numberRows()) << " rows were returned when getting GCT scales key";
00101 }
00102 else {
00103 scalesKeyResults.fillVariable( scalesKey );
00104 }
00105
00106 edm::LogInfo("L1-O2O") << "L1 scales key : " << scalesKey << std::endl;
00107
00108
00109 l1t::OMDSReader::QueryResults htmScaleKeyResults =
00110 m_omdsReader.basicQuery(
00111 "SC_HTM_FK",
00112 "CMS_GT",
00113 "L1T_SCALES",
00114 "L1T_SCALES.ID",
00115 scalesKeyResults );
00116
00117 std::string htmScaleKey ;
00118
00119 if( htmScaleKeyResults.queryFailed() ) {
00120 edm::LogError("L1-O2O")
00121 << "Problem with key for L1HtMissEtScaleRcd : HtMiss scale key query failed ";
00122 }
00123 else if( htmScaleKeyResults.numberRows() != 1 ) {
00124 edm::LogError("L1-O2O")
00125 << "Problem with key for L1HtMissScaleRcd : "
00126 << (htmScaleKeyResults.numberRows()) << " rows were returned when getting HtMiss scale key";
00127 }
00128 else {
00129 htmScaleKeyResults.fillVariable( htmScaleKey ) ;
00130 }
00131
00132 edm::LogInfo("L1-O2O") << "L1HtMiss scale key : " << htmScaleKey << std::endl;
00133
00134
00135 std::vector< std::string > queryStrings ;
00136 queryStrings.push_back( "E_GEV_BIN_LOW_0");
00137 queryStrings.push_back( "E_GEV_BIN_LOW_1");
00138 queryStrings.push_back( "E_GEV_BIN_LOW_2");
00139 queryStrings.push_back( "E_GEV_BIN_LOW_3");
00140 queryStrings.push_back( "E_GEV_BIN_LOW_4");
00141 queryStrings.push_back( "E_GEV_BIN_LOW_5");
00142 queryStrings.push_back( "E_GEV_BIN_LOW_6");
00143 queryStrings.push_back( "E_GEV_BIN_LOW_7");
00144 queryStrings.push_back( "E_GEV_BIN_LOW_8");
00145 queryStrings.push_back( "E_GEV_BIN_LOW_9");
00146 queryStrings.push_back( "E_GEV_BIN_LOW_10");
00147 queryStrings.push_back( "E_GEV_BIN_LOW_11");
00148 queryStrings.push_back( "E_GEV_BIN_LOW_12");
00149 queryStrings.push_back( "E_GEV_BIN_LOW_13");
00150 queryStrings.push_back( "E_GEV_BIN_LOW_14");
00151 queryStrings.push_back( "E_GEV_BIN_LOW_15");
00152 queryStrings.push_back( "E_GEV_BIN_LOW_16");
00153 queryStrings.push_back( "E_GEV_BIN_LOW_17");
00154 queryStrings.push_back( "E_GEV_BIN_LOW_18");
00155 queryStrings.push_back( "E_GEV_BIN_LOW_19");
00156 queryStrings.push_back( "E_GEV_BIN_LOW_20");
00157 queryStrings.push_back( "E_GEV_BIN_LOW_21");
00158 queryStrings.push_back( "E_GEV_BIN_LOW_22");
00159 queryStrings.push_back( "E_GEV_BIN_LOW_23");
00160 queryStrings.push_back( "E_GEV_BIN_LOW_24");
00161 queryStrings.push_back( "E_GEV_BIN_LOW_25");
00162 queryStrings.push_back( "E_GEV_BIN_LOW_26");
00163 queryStrings.push_back( "E_GEV_BIN_LOW_27");
00164 queryStrings.push_back( "E_GEV_BIN_LOW_28");
00165 queryStrings.push_back( "E_GEV_BIN_LOW_29");
00166 queryStrings.push_back( "E_GEV_BIN_LOW_30");
00167 queryStrings.push_back( "E_GEV_BIN_LOW_31");
00168 queryStrings.push_back( "E_GEV_BIN_LOW_32");
00169 queryStrings.push_back( "E_GEV_BIN_LOW_33");
00170 queryStrings.push_back( "E_GEV_BIN_LOW_34");
00171 queryStrings.push_back( "E_GEV_BIN_LOW_35");
00172 queryStrings.push_back( "E_GEV_BIN_LOW_36");
00173 queryStrings.push_back( "E_GEV_BIN_LOW_37");
00174 queryStrings.push_back( "E_GEV_BIN_LOW_38");
00175 queryStrings.push_back( "E_GEV_BIN_LOW_39");
00176 queryStrings.push_back( "E_GEV_BIN_LOW_40");
00177 queryStrings.push_back( "E_GEV_BIN_LOW_41");
00178 queryStrings.push_back( "E_GEV_BIN_LOW_42");
00179 queryStrings.push_back( "E_GEV_BIN_LOW_43");
00180 queryStrings.push_back( "E_GEV_BIN_LOW_44");
00181 queryStrings.push_back( "E_GEV_BIN_LOW_45");
00182 queryStrings.push_back( "E_GEV_BIN_LOW_46");
00183 queryStrings.push_back( "E_GEV_BIN_LOW_47");
00184 queryStrings.push_back( "E_GEV_BIN_LOW_48");
00185 queryStrings.push_back( "E_GEV_BIN_LOW_49");
00186 queryStrings.push_back( "E_GEV_BIN_LOW_50");
00187 queryStrings.push_back( "E_GEV_BIN_LOW_51");
00188 queryStrings.push_back( "E_GEV_BIN_LOW_52");
00189 queryStrings.push_back( "E_GEV_BIN_LOW_53");
00190 queryStrings.push_back( "E_GEV_BIN_LOW_54");
00191 queryStrings.push_back( "E_GEV_BIN_LOW_55");
00192 queryStrings.push_back( "E_GEV_BIN_LOW_56");
00193 queryStrings.push_back( "E_GEV_BIN_LOW_57");
00194 queryStrings.push_back( "E_GEV_BIN_LOW_58");
00195 queryStrings.push_back( "E_GEV_BIN_LOW_59");
00196 queryStrings.push_back( "E_GEV_BIN_LOW_60");
00197 queryStrings.push_back( "E_GEV_BIN_LOW_61");
00198 queryStrings.push_back( "E_GEV_BIN_LOW_62");
00199 queryStrings.push_back( "E_GEV_BIN_LOW_63");
00200 queryStrings.push_back( "E_GEV_BIN_LOW_64");
00201 queryStrings.push_back( "E_GEV_BIN_LOW_65");
00202 queryStrings.push_back( "E_GEV_BIN_LOW_66");
00203 queryStrings.push_back( "E_GEV_BIN_LOW_67");
00204 queryStrings.push_back( "E_GEV_BIN_LOW_68");
00205 queryStrings.push_back( "E_GEV_BIN_LOW_69");
00206 queryStrings.push_back( "E_GEV_BIN_LOW_70");
00207 queryStrings.push_back( "E_GEV_BIN_LOW_71");
00208 queryStrings.push_back( "E_GEV_BIN_LOW_72");
00209 queryStrings.push_back( "E_GEV_BIN_LOW_73");
00210 queryStrings.push_back( "E_GEV_BIN_LOW_74");
00211 queryStrings.push_back( "E_GEV_BIN_LOW_75");
00212 queryStrings.push_back( "E_GEV_BIN_LOW_76");
00213 queryStrings.push_back( "E_GEV_BIN_LOW_77");
00214 queryStrings.push_back( "E_GEV_BIN_LOW_78");
00215 queryStrings.push_back( "E_GEV_BIN_LOW_79");
00216 queryStrings.push_back( "E_GEV_BIN_LOW_80");
00217 queryStrings.push_back( "E_GEV_BIN_LOW_81");
00218 queryStrings.push_back( "E_GEV_BIN_LOW_82");
00219 queryStrings.push_back( "E_GEV_BIN_LOW_83");
00220 queryStrings.push_back( "E_GEV_BIN_LOW_84");
00221 queryStrings.push_back( "E_GEV_BIN_LOW_85");
00222 queryStrings.push_back( "E_GEV_BIN_LOW_86");
00223 queryStrings.push_back( "E_GEV_BIN_LOW_87");
00224 queryStrings.push_back( "E_GEV_BIN_LOW_88");
00225 queryStrings.push_back( "E_GEV_BIN_LOW_89");
00226 queryStrings.push_back( "E_GEV_BIN_LOW_90");
00227 queryStrings.push_back( "E_GEV_BIN_LOW_91");
00228 queryStrings.push_back( "E_GEV_BIN_LOW_92");
00229 queryStrings.push_back( "E_GEV_BIN_LOW_93");
00230 queryStrings.push_back( "E_GEV_BIN_LOW_94");
00231 queryStrings.push_back( "E_GEV_BIN_LOW_95");
00232 queryStrings.push_back( "E_GEV_BIN_LOW_96");
00233 queryStrings.push_back( "E_GEV_BIN_LOW_97");
00234 queryStrings.push_back( "E_GEV_BIN_LOW_98");
00235 queryStrings.push_back( "E_GEV_BIN_LOW_99");
00236 queryStrings.push_back( "E_GEV_BIN_LOW_100");
00237 queryStrings.push_back( "E_GEV_BIN_LOW_101");
00238 queryStrings.push_back( "E_GEV_BIN_LOW_102");
00239 queryStrings.push_back( "E_GEV_BIN_LOW_103");
00240 queryStrings.push_back( "E_GEV_BIN_LOW_104");
00241 queryStrings.push_back( "E_GEV_BIN_LOW_105");
00242 queryStrings.push_back( "E_GEV_BIN_LOW_106");
00243 queryStrings.push_back( "E_GEV_BIN_LOW_107");
00244 queryStrings.push_back( "E_GEV_BIN_LOW_108");
00245 queryStrings.push_back( "E_GEV_BIN_LOW_109");
00246 queryStrings.push_back( "E_GEV_BIN_LOW_110");
00247 queryStrings.push_back( "E_GEV_BIN_LOW_111");
00248 queryStrings.push_back( "E_GEV_BIN_LOW_112");
00249 queryStrings.push_back( "E_GEV_BIN_LOW_113");
00250 queryStrings.push_back( "E_GEV_BIN_LOW_114");
00251 queryStrings.push_back( "E_GEV_BIN_LOW_115");
00252 queryStrings.push_back( "E_GEV_BIN_LOW_116");
00253 queryStrings.push_back( "E_GEV_BIN_LOW_117");
00254 queryStrings.push_back( "E_GEV_BIN_LOW_118");
00255 queryStrings.push_back( "E_GEV_BIN_LOW_119");
00256 queryStrings.push_back( "E_GEV_BIN_LOW_120");
00257 queryStrings.push_back( "E_GEV_BIN_LOW_121");
00258 queryStrings.push_back( "E_GEV_BIN_LOW_122");
00259 queryStrings.push_back( "E_GEV_BIN_LOW_123");
00260 queryStrings.push_back( "E_GEV_BIN_LOW_124");
00261 queryStrings.push_back( "E_GEV_BIN_LOW_125");
00262 queryStrings.push_back( "E_GEV_BIN_LOW_126");
00263 queryStrings.push_back( "E_GEV_BIN_LOW_127");
00264
00265 l1t::OMDSReader::QueryResults scaleResults =
00266 m_omdsReader.basicQuery( queryStrings,
00267 "CMS_GT",
00268 "L1T_SCALE_HTM_ENERGY",
00269 "L1T_SCALE_HTM_ENERGY.ID",
00270 htmScaleKeyResults
00271 );
00272
00273
00274
00275 std::vector<double> thresholds;
00276
00277 if( scaleResults.queryFailed() ||
00278 scaleResults.numberRows() != 1 )
00279 {
00280 edm::LogError( "L1-O2O" ) << "Problem with L1HtMissScale key : when reading scale." ;
00281 }
00282 else {
00283 for( std::vector< std::string >::iterator thresh = queryStrings.begin();
00284 thresh != queryStrings.end(); ++thresh) {
00285 float tempScale;
00286 scaleResults.fillVariable(*thresh,tempScale);
00287 thresholds.push_back(tempScale);
00288 }
00289 }
00290
00291
00292 double rgnEtLsb=0.;
00293
00294 l1t::OMDSReader::QueryResults lsbResults =
00295 m_omdsReader.basicQuery( "GCT_RGN_ET_LSB",
00296 "CMS_GCT",
00297 "GCT_PHYS_PARAMS",
00298 "GCT_PHYS_PARAMS.CONFIG_KEY",
00299 m_omdsReader.singleAttribute( objectKey ) ) ;
00300
00301 if( lsbResults.queryFailed() ) {
00302 edm::LogError( "L1-O2O" ) << "Problem with L1HtMissScale key." ;
00303 }
00304 else {
00305 lsbResults.fillVariable( "GCT_RGN_ET_LSB", rgnEtLsb );
00306 }
00307
00308
00309 return boost::shared_ptr< L1CaloEtScale >( new L1CaloEtScale( 0, 0x7f, rgnEtLsb, thresholds ) );
00310
00311 }
00312
00313
00314
00315
00316
00317
00318 DEFINE_FWK_EVENTSETUP_MODULE(L1HtMissScaleOnlineProd);