CMS 3D CMS Logo

L1RCTParametersOnlineProd.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: L1RCTParametersOnlineProd
4 // Class: L1RCTParametersOnlineProd
5 //
13 //
14 // Original Author: Werner Man-Li Sun
15 // Created: Tue Sep 16 22:43:22 CEST 2008
16 //
17 //
18 
19 
20 // system include files
21 
22 // user include files
24 
27 
28 // #include "FWCore/Framework/interface/HCTypeTagTemplate.h"
29 // #include "FWCore/Framework/interface/EventSetup.h"
30 
31 //
32 // class declaration
33 //
34 
36  public L1ConfigOnlineProdBase< L1RCTParametersRcd, L1RCTParameters > {
37  public:
39  ~L1RCTParametersOnlineProd() override;
40 
41  std::unique_ptr< L1RCTParameters > newObject(
42  const std::string& objectKey ) override ;
43 
44  void fillScaleFactors(
45  const l1t::OMDSReader::QueryResults& results,
46  std::vector< double >& output, int nfactor = 1 ) ;
47  /*
48 
49  void fillScaleFactors(
50  const l1t::OMDSReader::QueryResults& results,
51  std::vector< std::vector< double > >& output ) ;
52  */
53  private:
54  // ----------member data ---------------------------
55 };
56 
57 //
58 // constants, enums and typedefs
59 //
60 
61 //
62 // static data member definitions
63 //
64 
65 //
66 // constructors and destructor
67 //
69  const edm::ParameterSet& iConfig)
71 {
72  //the following line is needed to tell the framework what
73  // data is being produced
74 
75  //now do what ever other initialization is needed
76 }
77 
78 
80 {
81 
82  // do anything here that needs to be done at desctruction time
83  // (e.g. close files, deallocate resources etc.)
84 
85 }
86 
87 std::unique_ptr< L1RCTParameters >
89 {
90  std::string rctSchema = "CMS_RCT" ;
91  const l1t::OMDSReader::QueryResults paremKeyResults =
92  m_omdsReader.singleAttribute( objectKey ) ;
93 
94  // ~~~~~~~~~ Cut values ~~~~~~~~~
95 
96  // select egamma_lsb, jetmet_lsb, e_min_for_fg_cut, e_max_for_fg_cut,
97  // h_ove r_e_cut, e_min_for_h_over_e_cut, e_max_for_h_over_e_cut,
98  // h_min_for_h_over_e_cut, e_activity_cut, h_activity_cut,
99  // eic_isolation_threshold, jsc_quiet_threshold_barrel,
100  // jsc_quiet_threshold_endcap, noisevetohb, noisevetoheplus,
101  // noisevetoheminus from parem_conf where parem_conf.parem_key =
102  // (select rct_parameter from rct_conf where rct_conf.rct_key =
103  // 'rct_cmssw_def');
104 
105  std::vector< std::string > queryStrings ;
106  queryStrings.push_back( "EGAMMA_LSB" ) ;
107  queryStrings.push_back( "JETMET_LSB" ) ;
108  queryStrings.push_back( "E_MIN_FOR_FG_CUT" ) ;
109  queryStrings.push_back( "E_MAX_FOR_FG_CUT" ) ;
110  queryStrings.push_back( "H_OVER_E_CUT" ) ;
111  queryStrings.push_back( "E_MIN_FOR_H_OVER_E_CUT" ) ;
112  queryStrings.push_back( "E_MAX_FOR_H_OVER_E_CUT" ) ;
113  queryStrings.push_back( "H_MIN_FOR_H_OVER_E_CUT" ) ;
114  queryStrings.push_back( "E_ACTIVITY_CUT" ) ;
115  queryStrings.push_back( "H_ACTIVITY_CUT" ) ;
116  queryStrings.push_back( "EIC_ISOLATION_THRESHOLD" ) ;
117  queryStrings.push_back( "JSC_QUIET_THRESHOLD_BARREL" ) ;
118  queryStrings.push_back( "JSC_QUIET_THRESHOLD_ENDCAP" ) ;
119  queryStrings.push_back( "NOISEVETOHB" ) ;
120  queryStrings.push_back( "NOISEVETOHEPLUS" ) ;
121  queryStrings.push_back( "NOISEVETOHEMINUS" ) ;
122  queryStrings.push_back( "USECORR" );
123  l1t::OMDSReader::QueryResults paremResults =
124  m_omdsReader.basicQuery( queryStrings,
125  rctSchema,
126  "PAREM_CONF",
127  "PAREM_CONF.PAREM_KEY",
128  paremKeyResults ) ;
129 
130  if( paremResults.queryFailed() ||
131  paremResults.numberRows() != 1 ) // check query successful
132  {
133  edm::LogError( "L1-O2O" ) << "Problem with L1RCTParameters key." ;
134  return std::unique_ptr< L1RCTParameters >() ;
135  }
136 
137  double eGammaLSB, jetMETLSB, eMinForFGCut, eMaxForFGCut, hOeCut ;
138  double eMinForHoECut, eMaxForHoECut, hMinForHoECut ;
139  double eActivityCut, hActivityCut ;
140  double jscQuietThreshBarrel, jscQuietThreshEndcap, eicIsolationThreshold ;
141  bool noiseVetoHB, noiseVetoHEplus, noiseVetoHEminus, useCorr ;
142 
143  paremResults.fillVariable( "EGAMMA_LSB", eGammaLSB ) ;
144  paremResults.fillVariable( "JETMET_LSB", jetMETLSB ) ;
145  paremResults.fillVariable( "E_MIN_FOR_FG_CUT", eMinForFGCut ) ;
146  paremResults.fillVariable( "E_MAX_FOR_FG_CUT", eMaxForFGCut ) ;
147  paremResults.fillVariable( "H_OVER_E_CUT", hOeCut ) ;
148  paremResults.fillVariable( "E_MIN_FOR_H_OVER_E_CUT", eMinForHoECut ) ;
149  paremResults.fillVariable( "E_MAX_FOR_H_OVER_E_CUT", eMaxForHoECut ) ;
150  paremResults.fillVariable( "H_MIN_FOR_H_OVER_E_CUT", hMinForHoECut ) ;
151  paremResults.fillVariable( "E_ACTIVITY_CUT", eActivityCut ) ;
152  paremResults.fillVariable( "H_ACTIVITY_CUT", hActivityCut ) ;
153  paremResults.fillVariable( "JSC_QUIET_THRESHOLD_BARREL",
154  jscQuietThreshBarrel ) ;
155  paremResults.fillVariable( "JSC_QUIET_THRESHOLD_ENDCAP",
156  jscQuietThreshEndcap ) ;
157  paremResults.fillVariable( "EIC_ISOLATION_THRESHOLD",
158  eicIsolationThreshold ) ;
159  paremResults.fillVariable( "NOISEVETOHB", noiseVetoHB ) ;
160  paremResults.fillVariable( "NOISEVETOHEPLUS", noiseVetoHEplus ) ;
161  paremResults.fillVariable( "NOISEVETOHEMINUS", noiseVetoHEminus ) ;
162  paremResults.fillVariable( "USECORR", useCorr ) ;
163 // std::cout << "eGammaLSB = " << eGammaLSB << std::endl ;
164 // std::cout << "jetMETLSB = " << jetMETLSB << std::endl ;
165 // std::cout << "eMinForFGCut = " << eMinForFGCut << std::endl ;
166 // std::cout << "eMaxForFGCut = " << eMaxForFGCut << std::endl ;
167 // std::cout << "hOeCut = " << hOeCut << std::endl ;
168 // std::cout << "eMinForHoECut = " << eMinForHoECut << std::endl ;
169 // std::cout << "eMaxForHoECut = " << eMaxForHoECut << std::endl ;
170 // std::cout << "hMinForHoECut = " << hMinForHoECut << std::endl ;
171 // std::cout << "eActivityCut = " << eActivityCut << std::endl ;
172 // std::cout << "hActivityCut = " << hActivityCut << std::endl ;
173 // std::cout << "eicIsolationThreshold = " << eicIsolationThreshold << std::endl ;
174 // std::cout << "jscQuietThreshBarrel = " << jscQuietThreshBarrel << std::endl ;
175 // std::cout << "jscQuietThreshEndcap = " << jscQuietThreshEndcap << std::endl ;
176 // std::cout << "noiseVetoHB = " << noiseVetoHB << std::endl ;
177 // std::cout << "noiseVetoHEplus = " << noiseVetoHEplus << std::endl ;
178 // std::cout << "noiseVetoHEminus = " << noiseVetoHEminus << std::endl ;
179 
180  // ~~~~~~~~~ EGamma ECAL scale factors ~~~~~~~~~
181 
182  // select scalefactor, fk_rct_eta from egamma_ecal_scalefactor where
183  // egamma_ecal_scalefactor.fk_version =
184  // (select egamma_ecal from parem_conf where parem_conf.parem_key =
185  // (select rct_parameter from rct_conf where rct_conf.rct_key=
186  // 'rct_cmssw_def'));
187 
188  std::vector< std::string > scaleFactorQueryStrings ;
189  scaleFactorQueryStrings.push_back( "SCALEFACTOR" ) ;
190  scaleFactorQueryStrings.push_back( "FK_RCT_ETA" ) ;
191 
192  l1t::OMDSReader::QueryResults egammaEcalResults =
194  scaleFactorQueryStrings,
195  rctSchema,
196  "EGAMMA_ECAL_SCALEFACTOR",
197  "EGAMMA_ECAL_SCALEFACTOR.FK_VERSION",
198  m_omdsReader.basicQuery( "EGAMMA_ECAL",
199  rctSchema,
200  "PAREM_CONF",
201  "PAREM_CONF.PAREM_KEY",
202  paremKeyResults ) ) ;
203 
204  if( egammaEcalResults.queryFailed() ) // check query successful
205  {
206  edm::LogError( "L1-O2O" ) << "Problem with EgammaEcal key." ;
207  return std::unique_ptr< L1RCTParameters >() ;
208  }
209 
210 // std::cout << "egammaEcal " ;
211  std::vector< double > egammaEcalScaleFactors ;
212  fillScaleFactors( egammaEcalResults, egammaEcalScaleFactors ) ;
213 
214  // ~~~~~~~~~ EGamma HCAL scale factors ~~~~~~~~~
215 
216  // select scalefactor, fk_rct_eta from egamma_hcal_scalefactor where
217  // egamma_hcal_scalefactor.fk_version =
218  // (select egamma_hcal from parem_conf where parem_conf.parem_key =
219  // (select rct_parameter from rct_conf where rct_conf.rct_key=
220  // 'rct_cmssw_def'));
221 
222  l1t::OMDSReader::QueryResults egammaHcalResults =
224  scaleFactorQueryStrings,
225  rctSchema,
226  "EGAMMA_HCAL_SCALEFACTOR",
227  "EGAMMA_HCAL_SCALEFACTOR.FK_VERSION",
228  m_omdsReader.basicQuery( "EGAMMA_HCAL",
229  rctSchema,
230  "PAREM_CONF",
231  "PAREM_CONF.PAREM_KEY",
232  paremKeyResults ) ) ;
233 
234  if( egammaHcalResults.queryFailed() ) // check query successful
235  {
236  edm::LogError( "L1-O2O" ) << "Problem with EgammaHcal key." ;
237  return std::unique_ptr< L1RCTParameters >() ;
238  }
239 
240 // std::cout << "egammaHcal " ;
241  std::vector< double > egammaHcalScaleFactors ;
242  fillScaleFactors( egammaHcalResults, egammaHcalScaleFactors ) ;
243 
244  // ~~~~~~~~~ JetMET ECAL scale factors ~~~~~~~~~
245 
246  // select scalefactor, fk_rct_eta from jetmet_ecal_scalefactor where
247  // jetmet_ecal_scalefactor.fk_version =
248  // (select jetmet_ecal from parem_conf where parem_conf.parem_key =
249  // (select rct_parameter from rct_conf where rct_conf.rct_key=
250  // 'rct_cmssw_def'));
251 
252  l1t::OMDSReader::QueryResults jetmetEcalResults =
254  scaleFactorQueryStrings,
255  rctSchema,
256  "JETMET_ECAL_SCALEFACTOR",
257  "JETMET_ECAL_SCALEFACTOR.FK_VERSION",
258  m_omdsReader.basicQuery( "JETMET_ECAL",
259  rctSchema,
260  "PAREM_CONF",
261  "PAREM_CONF.PAREM_KEY",
262  paremKeyResults ) ) ;
263 
264  if( jetmetEcalResults.queryFailed() ) // check query successful
265  {
266  edm::LogError( "L1-O2O" ) << "Problem with JetmetEcal key." ;
267  return std::unique_ptr< L1RCTParameters >() ;
268  }
269 
270 // std::cout << "jetmetEcal " ;
271  std::vector< double > jetmetEcalScaleFactors ;
272  fillScaleFactors( jetmetEcalResults, jetmetEcalScaleFactors ) ;
273 
274  // ~~~~~~~~~ JetMET HCAL scale factors ~~~~~~~~~
275 
276  // select scalefactor, fk_rct_eta from jetmet_hcal_scalefactor where
277  // jetmet_hcal_scalefactor.fk_version =
278  // (select jetmet_hcal from parem_conf where parem_conf.parem_key =
279  // (select rct_parameter from rct_conf where rct_conf.rct_key=
280  // 'rct_cmssw_def'));
281 
282  l1t::OMDSReader::QueryResults jetmetHcalResults =
284  scaleFactorQueryStrings,
285  rctSchema,
286  "JETMET_HCAL_SCALEFACTOR",
287  "JETMET_HCAL_SCALEFACTOR.FK_VERSION",
288  m_omdsReader.basicQuery( "JETMET_HCAL",
289  rctSchema,
290  "PAREM_CONF",
291  "PAREM_CONF.PAREM_KEY",
292  paremKeyResults ) ) ;
293 
294  if( jetmetHcalResults.queryFailed() ) // check query successful
295  {
296  edm::LogError( "L1-O2O" ) << "Problem with JetmetHcal key." ;
297  return std::unique_ptr< L1RCTParameters >() ;
298  }
299 
300 // std::cout << "jetmetHcal " ;
301  std::vector< double > jetmetHcalScaleFactors ;
302  fillScaleFactors( jetmetHcalResults, jetmetHcalScaleFactors ) ;
303 
304 
305 
306  //Lindsay variables
307 
308  /*
309  std::vector< std::vector< double > > hcalCalibScaleFactors ;
310  std::vector< std::vector< double > > hcalCalibHighScaleFactors ;
311  std::vector< std::vector< double > > ecalCalibScaleFactors ;
312  std::vector< std::vector< double > > crossTermsScaleFactors ;
313  */
314  std::vector< double > lowHoverE_smear, highHoverE_smear ;
315  std::vector< double > hcalCalibScaleFactors,ecalCalibScaleFactors;
316  std::vector< double > hcalCalibHighScaleFactors,crossTermsScaleFactors;
317 
318  if(useCorr) { //lindsay corrections
319 
320  std::vector< std::string > scaleFactorQuery3Strings ;
321  scaleFactorQuery3Strings.push_back( "SCALEFACTOR" ) ;
322  scaleFactorQuery3Strings.push_back( "SF2" ) ;
323  scaleFactorQuery3Strings.push_back( "SF3" ) ;
324  scaleFactorQuery3Strings.push_back( "FK_RCT_ETA" ) ;
325 
326  l1t::OMDSReader::QueryResults hcalCalibResults =
328  scaleFactorQuery3Strings,
329  rctSchema,
330  "HCAL_CALIB_FACTOR",
331  "HCAL_CALIB_FACTOR.VERSION",
332  m_omdsReader.basicQuery( "HCAL_CALIB_VERSION",
333  rctSchema,
334  "PAREM_CONF",
335  "PAREM_CONF.PAREM_KEY",
336  paremKeyResults ) ) ;
337 
338  if( hcalCalibResults.queryFailed() ) {// check query successful
339 
340  edm::LogError( "L1-O2O" ) << "Problem with JetmetHcal key." ;
341  return std::unique_ptr< L1RCTParameters >() ;
342  }
343 
344 // std::cout << "jetmetHcal " ;
345 
346  fillScaleFactors( hcalCalibResults, hcalCalibScaleFactors, 3 ) ;
347 
348  l1t::OMDSReader::QueryResults hcalCalibHighResults =
350  scaleFactorQuery3Strings,
351  rctSchema,
352  "HCAL_CALIB_HIGH_FACTOR",
353  "HCAL_CALIB_HIGH_FACTOR.VERSION",
354  m_omdsReader.basicQuery( "HCAL_CALIB_HIGH_VERSION",
355  rctSchema,
356  "PAREM_CONF",
357  "PAREM_CONF.PAREM_KEY",
358  paremKeyResults ) ) ;
359 
360  if( hcalCalibHighResults.queryFailed() ) // check query successful
361  {
362  edm::LogError( "L1-O2O" ) << "Problem with hcalHigh key." ;
363  return std::unique_ptr< L1RCTParameters >() ;
364  }
365 
366 
367 
368  fillScaleFactors( hcalCalibHighResults, hcalCalibHighScaleFactors,3 ) ;
369 
370  l1t::OMDSReader::QueryResults ecalCalibResults =
372  scaleFactorQuery3Strings,
373  rctSchema,
374  "ECAL_CALIB_FACTOR",
375  "ECAL_CALIB_FACTOR.VERSION",
376  m_omdsReader.basicQuery( "ECAL_CALIB_VERSION",
377  rctSchema,
378  "PAREM_CONF",
379  "PAREM_CONF.PAREM_KEY",
380  paremKeyResults ) ) ;
381 
382  if( ecalCalibResults.queryFailed() ) // check query successful
383  {
384  edm::LogError( "L1-O2O" ) << "Problem with ecal calib key." ;
385  return std::unique_ptr< L1RCTParameters >() ;
386  }
387 
388 
389  fillScaleFactors( ecalCalibResults, ecalCalibScaleFactors,3 ) ;
390 
391 
392  std::vector< std::string > scaleFactorQuery6Strings ;
393  scaleFactorQuery6Strings.push_back( "SCALEFACTOR" ) ;
394  scaleFactorQuery6Strings.push_back( "SF2" ) ;
395  scaleFactorQuery6Strings.push_back( "SF3" ) ;
396  scaleFactorQuery6Strings.push_back( "SF4" ) ;
397  scaleFactorQuery6Strings.push_back( "SF5" ) ;
398  scaleFactorQuery6Strings.push_back( "SF6" ) ;
399  scaleFactorQuery6Strings.push_back( "FK_RCT_ETA" ) ;
400  l1t::OMDSReader::QueryResults crossTermResults =
402  scaleFactorQuery6Strings,
403  rctSchema,
404  "CROSS_TERMS_FACTOR",
405  "CROSS_TERMS_FACTOR.VERSION",
406  m_omdsReader.basicQuery( "CROSS_TERMS_VERSION",
407  rctSchema,
408  "PAREM_CONF",
409  "PAREM_CONF.PAREM_KEY",
410  paremKeyResults ) ) ;
411 
412  if( crossTermResults.queryFailed() ) // check query successful
413  {
414  edm::LogError( "L1-O2O" ) << "Problem with crossTerms key." ;
415  return std::unique_ptr< L1RCTParameters >() ;
416  }
417 
418  fillScaleFactors( crossTermResults, crossTermsScaleFactors,6 ) ;
419 
420  l1t::OMDSReader::QueryResults hoveresmearhighResults =
422  scaleFactorQueryStrings,
423  rctSchema,
424  "H_OVER_E_SMEAR_HIGH_FACTOR",
425  "H_OVER_E_SMEAR_HIGH_FACTOR.FK_VERSION",
426  m_omdsReader.basicQuery( "H_OVER_E_SMEAR_HIGH_VERSION",
427  rctSchema,
428  "PAREM_CONF",
429  "PAREM_CONF.PAREM_KEY",
430  paremKeyResults ) ) ;
431 
432  if( hoveresmearhighResults.queryFailed() ) // check query successful
433  {
434  edm::LogError( "L1-O2O" ) << "Problem with low h over e smear key." ;
435  return std::unique_ptr< L1RCTParameters >() ;
436  }
437 
438 // std::cout << "egammaEcal " ;
439  fillScaleFactors( hoveresmearhighResults, highHoverE_smear ) ;
440 
441 
442  l1t::OMDSReader::QueryResults hoveresmearlowResults =
444  scaleFactorQueryStrings,
445  rctSchema,
446  "H_OVER_E_SMEAR_LOW_FACTOR",
447  "H_OVER_E_SMEAR_LOW_FACTOR.FK_VERSION",
448  m_omdsReader.basicQuery( "H_OVER_E_SMEAR_LOW_VERSION",
449  rctSchema,
450  "PAREM_CONF",
451  "PAREM_CONF.PAREM_KEY",
452  paremKeyResults ) ) ;
453 
454  if( hoveresmearlowResults.queryFailed() ) // check query successful
455  {
456  edm::LogError( "L1-O2O" ) << "Problem with low h over e smear key." ;
457  return std::unique_ptr< L1RCTParameters >() ;
458  }
459 
460 // std::cout << "egammaEcal " ;
461  fillScaleFactors( hoveresmearlowResults, lowHoverE_smear ) ;
462  }
463 
464 
465  //~~~~~~~~~ Instantiate new L1RCTParameters object. ~~~~~~~~~
466 
467  // Default objects for Lindsey
468 
469  return std::make_unique< L1RCTParameters >(
470  eGammaLSB,
471  jetMETLSB,
472  eMinForFGCut,
473  eMaxForFGCut,
474  hOeCut,
475  eMinForHoECut,
476  eMaxForHoECut,
477  hMinForHoECut,
478  eActivityCut,
479  hActivityCut,
480  (unsigned int) eicIsolationThreshold,
481  (int) jscQuietThreshBarrel,
482  (int) jscQuietThreshEndcap,
483  noiseVetoHB,
484  noiseVetoHEplus,
485  noiseVetoHEminus,
486  useCorr, // useLindsey
487  egammaEcalScaleFactors,
488  egammaHcalScaleFactors,
489  jetmetEcalScaleFactors,
490  jetmetHcalScaleFactors,
491  ecalCalibScaleFactors,
492  hcalCalibScaleFactors,
493  hcalCalibHighScaleFactors,
494  crossTermsScaleFactors,
495  lowHoverE_smear,
496  highHoverE_smear
497  ) ;
498 }
499 
500 //
501 // member functions
502 //
503 
504 void
506  const l1t::OMDSReader::QueryResults& results,
507  std::vector< double >& output, int nfactors )
508 {
509  if( (nfactors < 1) || (nfactors > 6)){
510  edm::LogError( "L1-O2O" ) <<"invalid number of factors in scale factors fill";
511  return;
512  }
513 
514  std::vector< std::string > scaleFactorQuery6Strings ;
515  scaleFactorQuery6Strings.push_back( "SCALEFACTOR" ) ;
516  scaleFactorQuery6Strings.push_back( "SF2" ) ;
517  scaleFactorQuery6Strings.push_back( "SF3" ) ;
518  scaleFactorQuery6Strings.push_back( "SF4" ) ;
519  scaleFactorQuery6Strings.push_back( "SF5" ) ;
520  scaleFactorQuery6Strings.push_back( "SF6" ) ;
521  // Store scale factors in temporary array to get ordering right.
522  // Reserve space for 100 bins.
523 
524  // static const int reserve = 100 ;
525  std::vector <double> sfTmp[100] ;
526  /*
527  for( int i = 0 ; i < reserve ; ++i )
528  {
529  sfTmp[ i ] = 0. ;
530  }
531  */
532  short maxBin = 0 ;
533  for( int i = 0 ; i < results.numberRows() ; ++i )
534  {
535  double sf[6] ;
536  for(int nf = 0; nf < nfactors; nf++){
537  results.fillVariableFromRow( scaleFactorQuery6Strings.at(nf), i, sf[nf] ) ;
538  }
539  short ieta = 0;
540  results.fillVariableFromRow( "FK_RCT_ETA", i, ieta ) ;
541 
542  for(int nf = 0; nf< nfactors; nf++)
543  // sfTmp[ ieta-1 ] = sf ; // eta bins start at 1.
544  sfTmp[ieta-1].push_back(sf[nf]);
545 
546  if( ieta > maxBin )
547  {
548  maxBin = ieta ;
549  }
550  }
551 
552 
553  for( short i = 0 ; i < maxBin ; ++i )
554  {
555  for( short nf = 0; nf < nfactors; nf++)
556  output.push_back( sfTmp[ i ].at(nf) ) ;
557 
558  }
559 }
560 
561 // ------------ method called to produce the data ------------
562 
563 
564 //define this as a plug-in
bool fillVariable(const std::string &columnName, T &outputVariable) const
Definition: OMDSReader.h:311
const QueryResults singleAttribute(const T &data) const
Definition: OMDSReader.h:295
void fillScaleFactors(const l1t::OMDSReader::QueryResults &results, std::vector< double > &output, int nfactor=1)
std::unique_ptr< L1RCTParameters > newObject(const std::string &objectKey) override
bool fillVariableFromRow(const std::string &columnName, int rowNumber, T &outputVariable) const
Definition: OMDSReader.h:319
const QueryResults basicQuery(const std::vector< std::string > &columnNames, const std::string &schemaName, const std::string &tableName, const std::string &conditionLHS="", const QueryResults conditionRHS=QueryResults(), const std::string &conditionRHSName="")
Definition: OMDSReader.cc:86
L1RCTParametersOnlineProd(const edm::ParameterSet &)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60