CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1TCaloParamsESProducer.cc
Go to the documentation of this file.
1 
12 //
13 //
14 
15 
16 
17 
18 // system include files
19 #include <memory>
20 #include "boost/shared_ptr.hpp"
21 #include <iostream>
22 #include <fstream>
23 
24 // user include files
30 
32 
36 
37 using namespace std;
38 
39 //
40 // class declaration
41 //
42 
43 using namespace l1t;
44 
46 public:
49 
50  typedef boost::shared_ptr<CaloParams> ReturnType;
51 
52  ReturnType produce(const L1TCaloParamsRcd&);
53 
54 private:
57 };
58 
59 //
60 // constants, enums and typedefs
61 //
62 
63 //
64 // static data member definitions
65 //
66 
67 //
68 // constructors and destructor
69 //
71 {
72 
73  //the following line is needed to tell the framework what
74  // data is being produced
75  setWhatProduced(this);
76  //setWhatProduced(this, conf.getParameter<std::string>("label"));
77 
78  CaloParamsHelper m_params_helper;
79 
80  // towers
81  m_params_helper.setTowerLsbH(conf.getParameter<double>("towerLsbH"));
82  m_params_helper.setTowerLsbE(conf.getParameter<double>("towerLsbE"));
83  m_params_helper.setTowerLsbSum(conf.getParameter<double>("towerLsbSum"));
84  m_params_helper.setTowerNBitsH(conf.getParameter<int>("towerNBitsH"));
85  m_params_helper.setTowerNBitsE(conf.getParameter<int>("towerNBitsE"));
86  m_params_helper.setTowerNBitsSum(conf.getParameter<int>("towerNBitsSum"));
87  m_params_helper.setTowerNBitsRatio(conf.getParameter<int>("towerNBitsRatio"));
88  m_params_helper.setTowerEncoding(conf.getParameter<bool>("towerEncoding"));
89 
90  // regions
91  m_params_helper.setRegionLsb(conf.getParameter<double>("regionLsb"));
92  m_params_helper.setRegionPUSType(conf.getParameter<std::string>("regionPUSType"));
93  m_params_helper.setRegionPUSParams(conf.getParameter<std::vector<double> >("regionPUSParams"));
94 
95  // EG
96  m_params_helper.setEgEtaCut(conf.getParameter<int>("egEtaCut"));
97 
98  m_params_helper.setEgLsb(conf.getParameter<double>("egLsb"));
99  m_params_helper.setEgSeedThreshold(conf.getParameter<double>("egSeedThreshold"));
100  m_params_helper.setEgNeighbourThreshold(conf.getParameter<double>("egNeighbourThreshold"));
101  m_params_helper.setEgHcalThreshold(conf.getParameter<double>("egHcalThreshold"));
102 
103  edm::FileInPath egTrimmingLUTFile = conf.getParameter<edm::FileInPath>("egTrimmingLUTFile");
104  std::ifstream egTrimmingLUTStream(egTrimmingLUTFile.fullPath());
105  std::shared_ptr<LUT> egTrimmingLUT( new LUT(egTrimmingLUTStream) );
106  m_params_helper.setEgTrimmingLUT(*egTrimmingLUT);
107 
108  m_params_helper.setEgMaxHcalEt(conf.getParameter<double>("egMaxHcalEt"));
109  m_params_helper.setEgMaxPtHOverE(conf.getParameter<double>("egMaxPtHOverE"));
110  m_params_helper.setEgMinPtJetIsolation(conf.getParameter<int>("egMinPtJetIsolation"));
111  m_params_helper.setEgMaxPtJetIsolation(conf.getParameter<int>("egMaxPtJetIsolation"));
112  m_params_helper.setEgMinPtHOverEIsolation(conf.getParameter<int>("egMinPtHOverEIsolation"));
113  m_params_helper.setEgMaxPtHOverEIsolation(conf.getParameter<int>("egMaxPtHOverEIsolation"));
114 
115 
116  edm::FileInPath egMaxHOverELUTFile = conf.getParameter<edm::FileInPath>("egMaxHOverELUTFile");
117  std::ifstream egMaxHOverELUTStream(egMaxHOverELUTFile.fullPath());
118  std::shared_ptr<LUT> egMaxHOverELUT( new LUT(egMaxHOverELUTStream) );
119  m_params_helper.setEgMaxHOverELUT(*egMaxHOverELUT);
120 
121  edm::FileInPath egCompressShapesLUTFile = conf.getParameter<edm::FileInPath>("egCompressShapesLUTFile");
122  std::ifstream egCompressShapesLUTStream(egCompressShapesLUTFile.fullPath());
123  std::shared_ptr<LUT> egCompressShapesLUT( new LUT(egCompressShapesLUTStream) );
124  m_params_helper.setEgCompressShapesLUT(*egCompressShapesLUT);
125 
126  edm::FileInPath egShapeIdLUTFile = conf.getParameter<edm::FileInPath>("egShapeIdLUTFile");
127  std::ifstream egShapeIdLUTStream(egShapeIdLUTFile.fullPath());
128  std::shared_ptr<LUT> egShapeIdLUT( new LUT(egShapeIdLUTStream) );
129  m_params_helper.setEgShapeIdLUT(*egShapeIdLUT);
130 
131  m_params_helper.setEgPUSType(conf.getParameter<std::string>("egPUSType"));
132 
133  edm::FileInPath egIsoLUTFile = conf.getParameter<edm::FileInPath>("egIsoLUTFile");
134  std::ifstream egIsoLUTStream(egIsoLUTFile.fullPath());
135  std::shared_ptr<LUT> egIsoLUT( new LUT(egIsoLUTStream) );
136  m_params_helper.setEgIsolationLUT(*egIsoLUT);
137 
138  //edm::FileInPath egIsoLUTFileBarrel = conf.getParameter<edm::FileInPath>("egIsoLUTFileBarrel");
139  //std::ifstream egIsoLUTBarrelStream(egIsoLUTFileBarrel.fullPath());
140  //std::shared_ptr<LUT> egIsoLUTBarrel( new LUT(egIsoLUTBarrelStream) );
141  //m_params_helper.setEgIsolationLUTBarrel(egIsoLUTBarrel);
142 
143  //edm::FileInPath egIsoLUTFileEndcaps = conf.getParameter<edm::FileInPath>("egIsoLUTFileEndcaps");
144  //std::ifstream egIsoLUTEndcapsStream(egIsoLUTFileEndcaps.fullPath());
145  //std::shared_ptr<LUT> egIsoLUTEndcaps( new LUT(egIsoLUTEndcapsStream) );
146  //m_params_helper.setEgIsolationLUTEndcaps(egIsoLUTEndcaps);
147 
148 
149  m_params_helper.setEgIsoAreaNrTowersEta(conf.getParameter<unsigned int>("egIsoAreaNrTowersEta"));
150  m_params_helper.setEgIsoAreaNrTowersPhi(conf.getParameter<unsigned int>("egIsoAreaNrTowersPhi"));
151  m_params_helper.setEgIsoVetoNrTowersPhi(conf.getParameter<unsigned int>("egIsoVetoNrTowersPhi"));
152  //m_params_helper.setEgIsoPUEstTowerGranularity(conf.getParameter<unsigned int>("egIsoPUEstTowerGranularity"));
153  //m_params_helper.setEgIsoMaxEtaAbsForTowerSum(conf.getParameter<unsigned int>("egIsoMaxEtaAbsForTowerSum"));
154  //m_params_helper.setEgIsoMaxEtaAbsForIsoSum(conf.getParameter<unsigned int>("egIsoMaxEtaAbsForIsoSum"));
155  m_params_helper.setEgPUSParams(conf.getParameter<std::vector<double>>("egPUSParams"));
156 
157  edm::FileInPath egCalibrationLUTFile = conf.getParameter<edm::FileInPath>("egCalibrationLUTFile");
158  std::ifstream egCalibrationLUTStream(egCalibrationLUTFile.fullPath());
159  std::shared_ptr<LUT> egCalibrationLUT( new LUT(egCalibrationLUTStream) );
160  m_params_helper.setEgCalibrationLUT(*egCalibrationLUT);
161 
162  // tau
163  m_params_helper.setTauRegionMask(conf.getParameter<int>("tauRegionMask"));
164  m_params_helper.setTauLsb(conf.getParameter<double>("tauLsb"));
165  m_params_helper.setTauSeedThreshold(conf.getParameter<double>("tauSeedThreshold"));
166  m_params_helper.setTauNeighbourThreshold(conf.getParameter<double>("tauNeighbourThreshold"));
167  m_params_helper.setTauMaxPtTauVeto(conf.getParameter<double>("tauMaxPtTauVeto"));
168  m_params_helper.setTauMinPtJetIsolationB(conf.getParameter<double>("tauMinPtJetIsolationB"));
169  m_params_helper.setTauPUSType(conf.getParameter<std::string>("tauPUSType"));
170  m_params_helper.setTauMaxJetIsolationB(conf.getParameter<double>("tauMaxJetIsolationB"));
171  m_params_helper.setTauMaxJetIsolationA(conf.getParameter<double>("tauMaxJetIsolationA"));
172  m_params_helper.setTauIsoAreaNrTowersEta(conf.getParameter<unsigned int>("tauIsoAreaNrTowersEta"));
173  m_params_helper.setTauIsoAreaNrTowersPhi(conf.getParameter<unsigned int>("tauIsoAreaNrTowersPhi"));
174  m_params_helper.setTauIsoVetoNrTowersPhi(conf.getParameter<unsigned int>("tauIsoVetoNrTowersPhi"));
175 
176  edm::FileInPath tauIsoLUTFile = conf.getParameter<edm::FileInPath>("tauIsoLUTFile");
177  std::ifstream tauIsoLUTStream(tauIsoLUTFile.fullPath());
178  std::shared_ptr<LUT> tauIsoLUT( new LUT(tauIsoLUTStream) );
179  m_params_helper.setTauIsolationLUT(*tauIsoLUT);
180 
181  edm::FileInPath tauCalibrationLUTFile = conf.getParameter<edm::FileInPath>("tauCalibrationLUTFile");
182  std::ifstream tauCalibrationLUTStream(tauCalibrationLUTFile.fullPath());
183  std::shared_ptr<LUT> tauCalibrationLUT( new LUT(tauCalibrationLUTStream) );
184  m_params_helper.setTauCalibrationLUT(*tauCalibrationLUT);
185 
186  edm::FileInPath tauEtToHFRingEtLUTFile = conf.getParameter<edm::FileInPath>("tauEtToHFRingEtLUTFile");
187  std::ifstream tauEtToHFRingEtLUTStream(tauEtToHFRingEtLUTFile.fullPath());
188  std::shared_ptr<LUT> tauEtToHFRingEtLUT( new LUT(tauEtToHFRingEtLUTStream) );
189  m_params_helper.setTauEtToHFRingEtLUT(*tauEtToHFRingEtLUT);
190 
191  m_params_helper.setIsoTauEtaMin(conf.getParameter<int> ("isoTauEtaMin"));
192  m_params_helper.setIsoTauEtaMax(conf.getParameter<int> ("isoTauEtaMax"));
193 
194  m_params_helper.setTauPUSParams(conf.getParameter<std::vector<double>>("tauPUSParams"));
195 
196  // jets
197  m_params_helper.setJetLsb(conf.getParameter<double>("jetLsb"));
198  m_params_helper.setJetSeedThreshold(conf.getParameter<double>("jetSeedThreshold"));
199  m_params_helper.setJetNeighbourThreshold(conf.getParameter<double>("jetNeighbourThreshold"));
200  m_params_helper.setJetRegionMask(conf.getParameter<int>("jetRegionMask"));
201  m_params_helper.setJetPUSType(conf.getParameter<std::string>("jetPUSType"));
202  m_params_helper.setJetCalibrationType(conf.getParameter<std::string>("jetCalibrationType"));
203  m_params_helper.setJetCalibrationParams(conf.getParameter<std::vector<double> >("jetCalibrationParams"));
204  edm::FileInPath jetCalibrationLUTFile = conf.getParameter<edm::FileInPath>("jetCalibrationLUTFile");
205  std::ifstream jetCalibrationLUTStream(jetCalibrationLUTFile.fullPath());
206  std::shared_ptr<LUT> jetCalibrationLUT( new LUT(jetCalibrationLUTStream) );
207  m_params_helper.setJetCalibrationLUT(*jetCalibrationLUT);
208 
209  // sums
210  m_params_helper.setEtSumLsb(conf.getParameter<double>("etSumLsb"));
211 
212  std::vector<int> etSumEtaMin = conf.getParameter<std::vector<int> >("etSumEtaMin");
213  std::vector<int> etSumEtaMax = conf.getParameter<std::vector<int> >("etSumEtaMax");
214  std::vector<double> etSumEtThreshold = conf.getParameter<std::vector<double> >("etSumEtThreshold");
215 
216  if ((etSumEtaMin.size() == etSumEtaMax.size()) && (etSumEtaMin.size() == etSumEtThreshold.size())) {
217  for (unsigned i=0; i<etSumEtaMin.size(); ++i) {
218  m_params_helper.setEtSumEtaMin(i, etSumEtaMin.at(i));
219  m_params_helper.setEtSumEtaMax(i, etSumEtaMax.at(i));
220  m_params_helper.setEtSumEtThreshold(i, etSumEtThreshold.at(i));
221  }
222  }
223  else {
224  edm::LogError("l1t|calo") << "Inconsistent number of EtSum parameters" << std::endl;
225  }
226 
227  // HI centrality trigger
228  edm::FileInPath centralityLUTFile = conf.getParameter<edm::FileInPath>("centralityLUTFile");
229  std::ifstream centralityLUTStream(centralityLUTFile.fullPath());
230  std::shared_ptr<LUT> centralityLUT( new LUT(centralityLUTStream) );
231  m_params_helper.setCentralityLUT(*centralityLUT);
232  m_params_helper.setCentralityRegionMask(conf.getParameter<int>("centralityRegionMask"));
233  std::vector<int> minbiasThresholds = conf.getParameter<std::vector<int> >("minimumBiasThresholds");
234  if(minbiasThresholds.size() == 4) {
235  m_params_helper.setMinimumBiasThresholds(minbiasThresholds);
236  } else {
237  edm::LogError("l1t|calo") << "Incorrect number of minimum bias thresholds set.";
238  }
239 
240  // HI Q2 trigger
241  edm::FileInPath q2LUTFile = conf.getParameter<edm::FileInPath>("q2LUTFile");
242  std::ifstream q2LUTStream(q2LUTFile.fullPath());
243  std::shared_ptr<LUT> q2LUT( new LUT(q2LUTStream) );
244  m_params_helper.setQ2LUT(*q2LUT);
245 
246  m_params = (CaloParams)m_params_helper;
247 }
248 
249 
251 {
252 
253  // do anything here that needs to be done at desctruction time
254  // (e.g. close files, deallocate resources etc.)
255 
256 }
257 
258 
259 //
260 // member functions
261 //
262 
263 // ------------ method called to produce the data ------------
266 {
267  using namespace edm::es;
268  boost::shared_ptr<CaloParams> pCaloParams ;
269 
270  pCaloParams = boost::shared_ptr< CaloParams >(new CaloParams(m_params));
271  return pCaloParams;
272 }
273 
274 
275 
276 //define this as a plug-in
void setEtSumEtaMax(unsigned isum, int eta)
T getParameter(std::string const &) const
boost::shared_ptr< CaloParams > ReturnType
int i
Definition: DBlmapReader.cc:9
void setTauMaxJetIsolationA(double cutValue)
void setCentralityLUT(const l1t::LUT &lut)
void setIsoTauEtaMax(int value)
void setTauMinPtJetIsolationB(double limit)
void setRegionPUSType(std::string type)
void setEgNeighbourThreshold(double thresh)
void setEgMinPtHOverEIsolation(int cutValue)
void setEgLsb(double lsb)
void setJetCalibrationParams(std::vector< double > params)
void setTauEtToHFRingEtLUT(const l1t::LUT &lut)
void setTauCalibrationLUT(const l1t::LUT &lut)
void setTauLsb(double lsb)
void setTauIsolationLUT(const l1t::LUT &lut)
void setJetCalibrationLUT(const l1t::LUT &lut)
void setTauNeighbourThreshold(double thresh)
void setEgMaxPtJetIsolation(int cutValue)
void setEgHcalThreshold(double thresh)
void setTauIsoAreaNrTowersPhi(unsigned iTauIsoAreaNrTowersPhi)
void setCentralityRegionMask(int mask)
L1TCaloParamsESProducer(const edm::ParameterSet &)
void setTauIsoAreaNrTowersEta(unsigned iTauIsoAreaNrTowersEta)
void setEgCalibrationLUT(const l1t::LUT &lut)
void setEgShapeIdLUT(const l1t::LUT &lut)
ReturnType produce(const L1TCaloParamsRcd &)
void setEtSumEtaMin(unsigned isum, int eta)
void setTauMaxPtTauVeto(double limit)
void setRegionLsb(double lsb)
void setJetCalibrationType(std::string type)
void setTowerLsbH(double lsb)
void setEgMinPtJetIsolation(int cutValue)
void setEtSumEtThreshold(unsigned isum, double thresh)
void setTauPUSType(std::string type)
void setEgPUSType(std::string type)
void setTauSeedThreshold(double thresh)
void setTowerEncoding(bool doit)
void setTauMaxJetIsolationB(double limit)
void setEgIsoAreaNrTowersPhi(unsigned iEgIsoAreaNrTowersPhi)
tuple conf
Definition: dbtoconf.py:185
void setTowerNBitsSum(int n)
void setJetNeighbourThreshold(double thresh)
void setTauRegionMask(int mask)
void setJetRegionMask(int mask)
void setEgEtaCut(int mask)
void setEgMaxHcalEt(double cut)
void setJetLsb(double lsb)
void setTauPUSParams(const std::vector< double > &params)
void setQ2LUT(const l1t::LUT &lut)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
void setEgMaxHOverELUT(const l1t::LUT &lut)
void setMinimumBiasThresholds(std::vector< int > thresholds)
void setJetSeedThreshold(double thresh)
void setEgMaxPtHOverE(double thresh)
void setEgTrimmingLUT(const l1t::LUT &lut)
void setRegionPUSParams(const std::vector< double > &params)
void setEgIsolationLUT(const l1t::LUT &lut)
void setEgMaxPtHOverEIsolation(int cutValue)
void setEgSeedThreshold(double thresh)
void setTauIsoVetoNrTowersPhi(unsigned iTauIsoVetoNrTowersPhi)
void setJetPUSType(std::string type)
void setEgIsoVetoNrTowersPhi(unsigned iEgIsoVetoNrTowersPhi)
void setEtSumLsb(double lsb)
void setEgIsoAreaNrTowersEta(unsigned iEgIsoAreaNrTowersEta)
std::string fullPath() const
Definition: FileInPath.cc:165
std::vector< unsigned short int > LUT
Definition: DTTracoLUTs.h:32
void setIsoTauEtaMin(int value)
void setTowerLsbSum(double lsb)
void setEgPUSParams(const std::vector< double > &params)
void setTowerLsbE(double lsb)
void setEgCompressShapesLUT(const l1t::LUT &lut)
void setTowerNBitsRatio(int n)