CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalTextCalibrations.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 // Original Author: Fedor Ratnikov
3 //
4 //
5 
6 #include <memory>
7 #include <iostream>
8 #include <fstream>
9 
13 
15 
18 
20 
21 #include "HcalTextCalibrations.h"
22 //
23 // class declaration
24 //
25 
26 using namespace cms;
27 
29 
30 {
31  //parsing parameters
32  std::vector<edm::ParameterSet> data = iConfig.getParameter<std::vector<edm::ParameterSet> >("input");
33  std::vector<edm::ParameterSet>::iterator request = data.begin ();
34  for (; request != data.end (); request++) {
35  std::string objectName = request->getParameter<std::string> ("object");
36  edm::FileInPath fp = request->getParameter<edm::FileInPath>("file");
37  mInputs [objectName] = fp.fullPath();
38  if (objectName == "Pedestals") {
39  setWhatProduced (this, &HcalTextCalibrations::producePedestals);
40  findingRecord <HcalPedestalsRcd> ();
41  }
42  else if (objectName == "PedestalWidths") {
43  setWhatProduced (this, &HcalTextCalibrations::producePedestalWidths);
44  findingRecord <HcalPedestalWidthsRcd> ();
45  }
46  else if (objectName == "Gains") {
47  setWhatProduced (this, &HcalTextCalibrations::produceGains);
48  findingRecord <HcalGainsRcd> ();
49  }
50  else if (objectName == "GainWidths") {
51  setWhatProduced (this, &HcalTextCalibrations::produceGainWidths);
52  findingRecord <HcalGainWidthsRcd> ();
53  }
54  else if (objectName == "QIEData") {
55  setWhatProduced (this, &HcalTextCalibrations::produceQIEData);
56  findingRecord <HcalQIEDataRcd> ();
57  }
58  else if (objectName == "ChannelQuality") {
59  setWhatProduced (this, &HcalTextCalibrations::produceChannelQuality);
60  findingRecord <HcalChannelQualityRcd> ();
61  }
62  else if (objectName == "ZSThresholds") {
63  setWhatProduced (this, &HcalTextCalibrations::produceZSThresholds);
64  findingRecord <HcalZSThresholdsRcd> ();
65  }
66  else if (objectName == "RespCorrs") {
67  setWhatProduced (this, &HcalTextCalibrations::produceRespCorrs);
68  findingRecord <HcalRespCorrsRcd> ();
69  }
70  else if (objectName == "LUTCorrs") {
71  setWhatProduced (this, &HcalTextCalibrations::produceLUTCorrs);
72  findingRecord <HcalLUTCorrsRcd> ();
73  }
74  else if (objectName == "PFCorrs") {
75  setWhatProduced (this, &HcalTextCalibrations::producePFCorrs);
76  findingRecord <HcalPFCorrsRcd> ();
77  }
78  else if (objectName == "TimeCorrs") {
79  setWhatProduced (this, &HcalTextCalibrations::produceTimeCorrs);
80  findingRecord <HcalTimeCorrsRcd> ();
81  }
82  else if (objectName == "L1TriggerObjects") {
83  setWhatProduced (this, &HcalTextCalibrations::produceL1TriggerObjects);
84  findingRecord <HcalL1TriggerObjectsRcd> ();
85  }
86  else if (objectName == "ElectronicsMap") {
87  setWhatProduced (this, &HcalTextCalibrations::produceElectronicsMap);
88  findingRecord <HcalElectronicsMapRcd> ();
89  }
90  else if (objectName == "ValidationCorrs") {
91  setWhatProduced (this, &HcalTextCalibrations::produceValidationCorrs);
92  findingRecord <HcalValidationCorrsRcd> ();
93  }
94  else if (objectName == "LutMetadata") {
95  setWhatProduced (this, &HcalTextCalibrations::produceLutMetadata);
96  findingRecord <HcalLutMetadataRcd> ();
97  }
98  else if (objectName == "DcsValues") {
99  setWhatProduced (this, &HcalTextCalibrations::produceDcsValues);
100  findingRecord <HcalDcsRcd> ();
101  }
102  else if (objectName == "DcsMap") {
103  setWhatProduced (this, &HcalTextCalibrations::produceDcsMap);
104  findingRecord <HcalDcsMapRcd> ();
105  }
106  else if (objectName == "CholeskyMatrices") {
107  setWhatProduced (this, &HcalTextCalibrations::produceCholeskyMatrices);
108  findingRecord <HcalCholeskyMatricesRcd> ();
109  }
110  else if (objectName == "CovarianceMatrices") {
111  setWhatProduced (this, &HcalTextCalibrations::produceCovarianceMatrices);
112  findingRecord <HcalCovarianceMatricesRcd> ();
113  }
114  else if (objectName == "RecoParams") {
115  setWhatProduced (this, &HcalTextCalibrations::produceRecoParams);
116  findingRecord <HcalRecoParamsRcd> ();
117  }
118  else if (objectName == "TimingParams") {
119  setWhatProduced (this, &HcalTextCalibrations::produceTimingParams);
120  findingRecord <HcalTimingParamsRcd> ();
121  }
122  else if (objectName == "LongRecoParams") {
123  setWhatProduced (this, &HcalTextCalibrations::produceLongRecoParams);
124  findingRecord <HcalLongRecoParamsRcd> ();
125  }
126  else if (objectName == "MCParams") {
127  setWhatProduced (this, &HcalTextCalibrations::produceMCParams);
128  findingRecord <HcalMCParamsRcd> ();
129  }
130  else if (objectName == "FlagHFDigiTimeParams") {
131  setWhatProduced (this, &HcalTextCalibrations::produceFlagHFDigiTimeParams);
132  findingRecord <HcalFlagHFDigiTimeParamsRcd> ();
133  }
134  else {
135  std::cerr << "HcalTextCalibrations-> Unknown object name '" << objectName
136  << "', known names are: "
137  << "Pedestals PedestalWidths Gains GainWidths QIEData ChannelQuality ElectronicsMap "
138  << "ZSThresholds RespCorrs LUTCorrs PFCorrs TimeCorrs L1TriggerObjects "
139  << "ValidationCorrs LutMetadata DcsValues DcsMap CholeskyMatrices CovarianceMatrices "
140  << "RecoParams LongRecoParams FlagHFDigiTimeParams MCParams "
141  << std::endl;
142  }
143  }
144  // setWhatProduced(this);
145 }
146 
147 
149 {
150 }
151 
152 
153 //
154 // member functions
155 //
156 void
158  std::string record = iKey.name ();
160 }
161 
162 template <class T>
163 std::auto_ptr<T> produce_impl (const HcalTopology* topo, const std::string& fFile) {
164  std::auto_ptr<T> result (new T (topo));
165  // std::auto_ptr<T> result;
166  std::ifstream inStream (fFile.c_str ());
167  if (!inStream.good ()) {
168  std::cerr << "HcalTextCalibrations-> Unable to open file '" << fFile << "'" << std::endl;
169  throw cms::Exception("FileNotFound") << "Unable to open '" << fFile << "'" << std::endl;
170  }
171  if (!HcalDbASCIIIO::getObject (inStream, &*result)) {
172  std::cerr << "HcalTextCalibrations-> Can not read object from file '" << fFile << "'" << std::endl;
173  throw cms::Exception("ReadError") << "Can not read object from file '" << fFile << "'" << std::endl;
174  }
175  return result;
176 }
177 
178 template <class T>
179 std::auto_ptr<T> produce_impl (const std::string& fFile) {
180  std::auto_ptr<T> result (new T ());
181  // std::auto_ptr<T> result;
182  std::ifstream inStream (fFile.c_str ());
183  if (!inStream.good ()) {
184  std::cerr << "HcalTextCalibrations-> Unable to open file '" << fFile << "'" << std::endl;
185  throw cms::Exception("FileNotFound") << "Unable to open '" << fFile << "'" << std::endl;
186  }
187  if (!HcalDbASCIIIO::getObject (inStream, &*result)) {
188  std::cerr << "HcalTextCalibrations-> Can not read object from file '" << fFile << "'" << std::endl;
189  throw cms::Exception("ReadError") << "Can not read object from file '" << fFile << "'" << std::endl;
190  }
191  return result;
192 }
193 
194 
195 
196 std::auto_ptr<HcalPedestals> HcalTextCalibrations::producePedestals (const HcalPedestalsRcd& rcd) {
198  rcd.getRecord<IdealGeometryRecord>().get(htopo);
199  const HcalTopology* topo=&(*htopo);
200 
201  return produce_impl<HcalPedestals> (topo,mInputs ["Pedestals"]);
202 }
203 
204 std::auto_ptr<HcalPedestalWidths> HcalTextCalibrations::producePedestalWidths (const HcalPedestalWidthsRcd& rcd) {
206  rcd.getRecord<IdealGeometryRecord>().get(htopo);
207  const HcalTopology* topo=&(*htopo);
208  return produce_impl<HcalPedestalWidths> (topo,mInputs ["PedestalWidths"]);
209 }
210 
211 std::auto_ptr<HcalGains> HcalTextCalibrations::produceGains (const HcalGainsRcd& rcd) {
213  rcd.getRecord<IdealGeometryRecord>().get(htopo);
214  const HcalTopology* topo=&(*htopo);
215  return produce_impl<HcalGains> (topo,mInputs ["Gains"]);
216 }
217 
218 std::auto_ptr<HcalGainWidths> HcalTextCalibrations::produceGainWidths (const HcalGainWidthsRcd& rcd) {
220  rcd.getRecord<IdealGeometryRecord>().get(htopo);
221  const HcalTopology* topo=&(*htopo);
222  return produce_impl<HcalGainWidths> (topo,mInputs ["GainWidths"]);
223 }
224 
225 std::auto_ptr<HcalQIEData> HcalTextCalibrations::produceQIEData (const HcalQIEDataRcd& rcd) {
227  rcd.getRecord<IdealGeometryRecord>().get(htopo);
228  const HcalTopology* topo=&(*htopo);
229  return produce_impl<HcalQIEData> (topo,mInputs ["QIEData"]);
230 }
231 
232 std::auto_ptr<HcalChannelQuality> HcalTextCalibrations::produceChannelQuality (const HcalChannelQualityRcd& rcd) {
234  rcd.getRecord<IdealGeometryRecord>().get(htopo);
235  const HcalTopology* topo=&(*htopo);
236  return produce_impl<HcalChannelQuality> (topo,mInputs ["ChannelQuality"]);
237 }
238 
240  rcd.getRecord<IdealGeometryRecord>().get(htopo);
241  const HcalTopology* topo=&(*htopo);
242  return produce_impl<HcalZSThresholds> (topo,mInputs ["ZSThresholds"]);
243 }
244 
245 std::auto_ptr<HcalRespCorrs> HcalTextCalibrations::produceRespCorrs (const HcalRespCorrsRcd& rcd) {
247  rcd.getRecord<IdealGeometryRecord>().get(htopo);
248  const HcalTopology* topo=&(*htopo);
249  return produce_impl<HcalRespCorrs> (topo,mInputs ["RespCorrs"]);
250 }
251 
252 std::auto_ptr<HcalLUTCorrs> HcalTextCalibrations::produceLUTCorrs (const HcalLUTCorrsRcd& rcd) {
254  rcd.getRecord<IdealGeometryRecord>().get(htopo);
255  const HcalTopology* topo=&(*htopo);
256  return produce_impl<HcalLUTCorrs> (topo,mInputs ["LUTCorrs"]);
257 }
258 
259 std::auto_ptr<HcalPFCorrs> HcalTextCalibrations::producePFCorrs (const HcalPFCorrsRcd& rcd) {
261  rcd.getRecord<IdealGeometryRecord>().get(htopo);
262  const HcalTopology* topo=&(*htopo);
263  return produce_impl<HcalPFCorrs> (topo,mInputs ["PFCorrs"]);
264 }
265 
266 std::auto_ptr<HcalTimeCorrs> HcalTextCalibrations::produceTimeCorrs (const HcalTimeCorrsRcd& rcd) {
268  rcd.getRecord<IdealGeometryRecord>().get(htopo);
269  const HcalTopology* topo=&(*htopo);
270  return produce_impl<HcalTimeCorrs> (topo,mInputs ["TimeCorrs"]);
271 }
272 
273 std::auto_ptr<HcalL1TriggerObjects> HcalTextCalibrations::produceL1TriggerObjects (const HcalL1TriggerObjectsRcd& rcd) {
275  rcd.getRecord<IdealGeometryRecord>().get(htopo);
276  const HcalTopology* topo=&(*htopo);
277  return produce_impl<HcalL1TriggerObjects> (topo,mInputs ["L1TriggerObjects"]);
278 }
279 
280 std::auto_ptr<HcalElectronicsMap> HcalTextCalibrations::produceElectronicsMap (const HcalElectronicsMapRcd& rcd) {
281  return produce_impl<HcalElectronicsMap> (mInputs ["ElectronicsMap"]);
282 }
283 
284 std::auto_ptr<HcalValidationCorrs> HcalTextCalibrations::produceValidationCorrs (const HcalValidationCorrsRcd& rcd) {
286  rcd.getRecord<IdealGeometryRecord>().get(htopo);
287  const HcalTopology* topo=&(*htopo);
288  return produce_impl<HcalValidationCorrs> (topo,mInputs ["ValidationCorrs"]);
289 }
290 
291 std::auto_ptr<HcalLutMetadata> HcalTextCalibrations::produceLutMetadata (const HcalLutMetadataRcd& rcd) {
293  rcd.getRecord<IdealGeometryRecord>().get(htopo);
294  const HcalTopology* topo=&(*htopo);
295  return produce_impl<HcalLutMetadata> (topo,mInputs ["LutMetadata"]);
296 }
297 
298 std::auto_ptr<HcalDcsValues>
300  return produce_impl<HcalDcsValues> (mInputs ["DcsValues"]);
301 }
302 
303 std::auto_ptr<HcalDcsMap> HcalTextCalibrations::produceDcsMap (const HcalDcsMapRcd& rcd) {
304  return produce_impl<HcalDcsMap> (mInputs ["DcsMap"]);
305 }
306 
307 std::auto_ptr<HcalCovarianceMatrices> HcalTextCalibrations::produceCovarianceMatrices (const HcalCovarianceMatricesRcd& rcd) {
309  rcd.getRecord<IdealGeometryRecord>().get(htopo);
310  const HcalTopology* topo=&(*htopo);
311  return produce_impl<HcalCovarianceMatrices> (topo,mInputs ["CovarianceMatrices"]);
312 }
313 
314 std::auto_ptr<HcalCholeskyMatrices> HcalTextCalibrations::produceCholeskyMatrices (const HcalCholeskyMatricesRcd& rcd) {
316  rcd.getRecord<IdealGeometryRecord>().get(htopo);
317  const HcalTopology* topo=&(*htopo);
318  return produce_impl<HcalCholeskyMatrices> (topo,mInputs ["CholeskyMatrices"]);
319 }
320 
321 std::auto_ptr<HcalRecoParams> HcalTextCalibrations::produceRecoParams (const HcalRecoParamsRcd& rcd) {
323  rcd.getRecord<IdealGeometryRecord>().get(htopo);
324  const HcalTopology* topo=&(*htopo);
325  return produce_impl<HcalRecoParams> (topo,mInputs ["RecoParams"]);
326 }
327 
328 std::auto_ptr<HcalLongRecoParams> HcalTextCalibrations::produceLongRecoParams (const HcalLongRecoParamsRcd& rcd) {
330  rcd.getRecord<IdealGeometryRecord>().get(htopo);
331  const HcalTopology* topo=&(*htopo);
332  return produce_impl<HcalLongRecoParams> (topo,mInputs ["LongRecoParams"]);
333 }
334 std::auto_ptr<HcalTimingParams> HcalTextCalibrations::produceTimingParams (const HcalTimingParamsRcd& rcd) {
336  rcd.getRecord<IdealGeometryRecord>().get(htopo);
337  const HcalTopology* topo=&(*htopo);
338  return produce_impl<HcalTimingParams> (topo,mInputs ["TimingParams"]);
339 }
340 std::auto_ptr<HcalMCParams> HcalTextCalibrations::produceMCParams (const HcalMCParamsRcd& rcd) {
342  rcd.getRecord<IdealGeometryRecord>().get(htopo);
343  const HcalTopology* topo=&(*htopo);
344  return produce_impl<HcalMCParams> (topo,mInputs ["MCParams"]);
345 }
346 
347 std::auto_ptr<HcalFlagHFDigiTimeParams> HcalTextCalibrations::produceFlagHFDigiTimeParams (const HcalFlagHFDigiTimeParamsRcd& rcd) {
349  rcd.getRecord<IdealGeometryRecord>().get(htopo);
350  const HcalTopology* topo=&(*htopo);
351  return produce_impl<HcalFlagHFDigiTimeParams> (topo,mInputs ["FlagHFDigiTimeParams"]);
352 }
T getParameter(std::string const &) const
std::auto_ptr< HcalDcsValues > produceDcsValues(HcalDcsRcd const &rcd)
std::auto_ptr< HcalQIEData > produceQIEData(const HcalQIEDataRcd &rcd)
std::auto_ptr< HcalLongRecoParams > produceLongRecoParams(const HcalLongRecoParamsRcd &rcd)
JetCorrectorParameters::Record record
Definition: classes.h:7
std::auto_ptr< HcalPedestals > producePedestals(const HcalPedestalsRcd &rcd)
std::auto_ptr< HcalCovarianceMatrices > produceCovarianceMatrices(const HcalCovarianceMatricesRcd &rcd)
static const IOVSyncValue & endOfTime()
Definition: IOVSyncValue.cc:97
std::pair< Time_t, Time_t > ValidityInterval
Definition: Time.h:19
virtual void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &)
std::auto_ptr< HcalMCParams > produceMCParams(const HcalMCParamsRcd &rcd)
std::auto_ptr< HcalGainWidths > produceGainWidths(const HcalGainWidthsRcd &rcd)
static const IOVSyncValue & beginOfTime()
std::auto_ptr< HcalZSThresholds > produceZSThresholds(const HcalZSThresholdsRcd &rcd)
std::auto_ptr< HcalValidationCorrs > produceValidationCorrs(const HcalValidationCorrsRcd &rcd)
std::auto_ptr< HcalFlagHFDigiTimeParams > produceFlagHFDigiTimeParams(const HcalFlagHFDigiTimeParamsRcd &rcd)
tuple result
Definition: query.py:137
HcalTextCalibrations(const edm::ParameterSet &)
std::auto_ptr< HcalRespCorrs > produceRespCorrs(const HcalRespCorrsRcd &rcd)
std::auto_ptr< HcalL1TriggerObjects > produceL1TriggerObjects(const HcalL1TriggerObjectsRcd &rcd)
std::auto_ptr< HcalRecoParams > produceRecoParams(const HcalRecoParamsRcd &rcd)
std::auto_ptr< HcalTimeCorrs > produceTimeCorrs(const HcalTimeCorrsRcd &rcd)
std::auto_ptr< HcalTimingParams > produceTimingParams(const HcalTimingParamsRcd &rcd)
std::auto_ptr< HcalCholeskyMatrices > produceCholeskyMatrices(const HcalCholeskyMatricesRcd &rcd)
std::auto_ptr< HcalChannelQuality > produceChannelQuality(const HcalChannelQualityRcd &rcd)
bool getObject(std::istream &fInput, HcalPedestals *fObject)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
std::auto_ptr< HcalGains > produceGains(const HcalGainsRcd &rcd)
std::auto_ptr< HcalLUTCorrs > produceLUTCorrs(const HcalLUTCorrsRcd &rcd)
std::auto_ptr< HcalLutMetadata > produceLutMetadata(const HcalLutMetadataRcd &rcd)
std::string fullPath() const
Definition: FileInPath.cc:165
std::auto_ptr< T > produce_impl(const std::string &fFile)
long double T
std::auto_ptr< HcalElectronicsMap > produceElectronicsMap(const HcalElectronicsMapRcd &rcd)
std::auto_ptr< HcalPedestalWidths > producePedestalWidths(const HcalPedestalWidthsRcd &rcd)
std::auto_ptr< HcalPFCorrs > producePFCorrs(const HcalPFCorrsRcd &rcd)
std::auto_ptr< HcalDcsMap > produceDcsMap(const HcalDcsMapRcd &rcd)