CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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::shared_ptr<L1CaloEcalScale>
77 {
78  using namespace edm::es;
79  auto pL1CaloEcalScale = std::make_shared<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::shared_ptr<L1CaloHcalScale>
108 {
109  using namespace edm::es;
110  auto pL1CaloHcalScale = std::make_shared<L1CaloHcalScale>() ;
111 
112  std::vector< double >::const_iterator posItr =
113  m_hcalEtThresholdsPosEta.begin() ;
114 
115  std::vector< double >::const_iterator negItr =
116  m_hcalEtThresholdsNegEta.begin() ;
117 
118 
119  for( unsigned short ieta = 1 ;
120  ieta <= L1CaloHcalScale::nBinEta ;
121  ++ieta )
122  {
123  for( unsigned short irank = 0 ;
125  ++irank )
126  {
127  pL1CaloHcalScale->setBin( irank, ieta, 1, *posItr ) ;
128  pL1CaloHcalScale->setBin( irank, ieta, -1, *negItr ) ;
129 
130  ++posItr ;
131  ++negItr ;
132  }
133  }
134 
135  return pL1CaloHcalScale ;
136 }
137 
138 //define this as a plug-in
139 //DEFINE_FWK_EVENTSETUP_MODULE(L1CaloInputScalesProducer);
T getParameter(std::string const &) const
std::vector< double > m_ecalEtThresholdsPosEta
L1CaloInputScalesProducer(const edm::ParameterSet &)
std::vector< double > m_hcalEtThresholdsNegEta
std::shared_ptr< L1CaloHcalScale > produceHcalScale(const L1CaloHcalScaleRcd &)
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
std::vector< double > m_hcalEtThresholdsPosEta
static const unsigned short nBinRank
std::vector< double > m_ecalEtThresholdsNegEta
std::shared_ptr< L1CaloEcalScale > produceEcalScale(const L1CaloEcalScaleRcd &)
static const unsigned short nBinRank
static const unsigned short nBinEta
static const unsigned short nBinEta