CMS 3D CMS Logo

L1CaloInputScalesProducer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: L1CaloInputScalesProducer
4 // Class: L1CaloInputScalesProducer
5 //
13 //
14 // Original Author: Jim Brooke
15 // Created: Fri May 16 16:09:43 CEST 2008
16 //
17 //
18 
19 // system include files
20 
21 // user include files
24 
25 //
26 // class decleration
27 //
28 
29 //
30 // constants, enums and typedefs
31 //
32 
33 //
34 // static data member definitions
35 //
36 
37 //
38 // constructors and destructor
39 //
41 {
42  //the following line is needed to tell the framework what
43  // data is being produced
46 
47  //now do what ever other initialization is needed
48 
49  // { Et for each rank, eta bin 0 }, { Et for each rank, eta bin 1 }, ...
51  iConfig.getParameter< std::vector<double> >("L1EcalEtThresholdsPositiveEta");
53  iConfig.getParameter< std::vector<double> >("L1EcalEtThresholdsNegativeEta");
55  iConfig.getParameter< std::vector<double> >("L1HcalEtThresholdsPositiveEta");
57  iConfig.getParameter< std::vector<double> >("L1HcalEtThresholdsNegativeEta");
58 }
59 
60 
62 {
63 
64  // do anything here that needs to be done at desctruction time
65  // (e.g. close files, deallocate resources etc.)
66 
67 }
68 
69 
70 //
71 // member functions
72 //
73 
74 // ------------ method called to produce the data ------------
75 std::unique_ptr<L1CaloEcalScale>
77 {
78  using namespace edm::es;
79  auto pL1CaloEcalScale = std::make_unique<L1CaloEcalScale>() ;
80 
81  std::vector< double >::const_iterator posItr =
82  m_ecalEtThresholdsPosEta.begin() ;
83  std::vector< double >::const_iterator negItr =
84  m_ecalEtThresholdsNegEta.begin() ;
85 
86  for( unsigned short ieta = 1 ;
87  ieta <= L1CaloEcalScale::nBinEta ;
88  ++ieta )
89  {
90  for( unsigned short irank = 0 ;
92  ++irank )
93  {
94  pL1CaloEcalScale->setBin( irank, ieta, 1, *posItr ) ;
95  pL1CaloEcalScale->setBin( irank, ieta, -1, *negItr ) ;
96 
97  ++posItr ;
98  ++negItr ;
99  }
100  }
101 
102  return pL1CaloEcalScale ;
103 }
104 
105 // ------------ method called to produce the data ------------
106 std::unique_ptr<L1CaloHcalScale>
108 {
109  auto pL1CaloHcalScale = std::make_unique<L1CaloHcalScale>() ;
110 
111  std::vector< double >::const_iterator posItr =
112  m_hcalEtThresholdsPosEta.begin() ;
113 
114  std::vector< double >::const_iterator negItr =
115  m_hcalEtThresholdsNegEta.begin() ;
116 
117 
118  for( unsigned short ieta = 1 ;
119  ieta <= L1CaloHcalScale::nBinEta ;
120  ++ieta )
121  {
122  for( unsigned short irank = 0 ;
124  ++irank )
125  {
126  pL1CaloHcalScale->setBin( irank, ieta, 1, *posItr ) ;
127  pL1CaloHcalScale->setBin( irank, ieta, -1, *negItr ) ;
128 
129  ++posItr ;
130  ++negItr ;
131  }
132  }
133 
134  return pL1CaloHcalScale ;
135 }
136 
137 //define this as a plug-in
138 //DEFINE_FWK_EVENTSETUP_MODULE(L1CaloInputScalesProducer);
T getParameter(std::string const &) const
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:116
std::unique_ptr< L1CaloEcalScale > produceEcalScale(const L1CaloEcalScaleRcd &)
std::vector< double > m_ecalEtThresholdsPosEta
L1CaloInputScalesProducer(const edm::ParameterSet &)
std::vector< double > m_hcalEtThresholdsNegEta
std::unique_ptr< L1CaloHcalScale > produceHcalScale(const L1CaloHcalScaleRcd &)
std::vector< double > m_hcalEtThresholdsPosEta
static const unsigned short nBinRank
std::vector< double > m_ecalEtThresholdsNegEta
static const unsigned short nBinRank
static const unsigned short nBinEta
static const unsigned short nBinEta