CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CastorTextCalibrations.cc
Go to the documentation of this file.
1 #include <memory>
2 #include <iostream>
3 #include <fstream>
4 
7 
9 
11 
19 
27 
28 
29 #include "CastorTextCalibrations.h"
30 //
31 // class decleration
32 //
33 
34 using namespace cms;
35 
37 
38 {
39  //parsing parameters
40  std::vector<edm::ParameterSet> data = iConfig.getParameter<std::vector<edm::ParameterSet> >("input");
41  std::vector<edm::ParameterSet>::iterator request = data.begin ();
42  for (; request != data.end (); request++) {
43  std::string objectName = request->getParameter<std::string> ("object");
44  edm::FileInPath fp = request->getParameter<edm::FileInPath>("file");
45  mInputs [objectName] = fp.fullPath();
46  if (objectName == "Pedestals") {
47  setWhatProduced (this, &CastorTextCalibrations::producePedestals);
48  findingRecord <CastorPedestalsRcd> ();
49  }
50  else if (objectName == "PedestalWidths") {
51  setWhatProduced (this, &CastorTextCalibrations::producePedestalWidths);
52  findingRecord <CastorPedestalWidthsRcd> ();
53  }
54  else if (objectName == "Gains") {
55  setWhatProduced (this, &CastorTextCalibrations::produceGains);
56  findingRecord <CastorGainsRcd> ();
57  }
58  else if (objectName == "GainWidths") {
59  setWhatProduced (this, &CastorTextCalibrations::produceGainWidths);
60  findingRecord <CastorGainWidthsRcd> ();
61  }
62  else if (objectName == "QIEData") {
63  setWhatProduced (this, &CastorTextCalibrations::produceQIEData);
64  findingRecord <CastorQIEDataRcd> ();
65  }
66  else if (objectName == "ChannelQuality") {
67  setWhatProduced (this, &CastorTextCalibrations::produceChannelQuality);
68  findingRecord <CastorChannelQualityRcd> ();
69  }
70  else if (objectName == "ElectronicsMap") {
71  setWhatProduced (this, &CastorTextCalibrations::produceElectronicsMap);
72  findingRecord <CastorElectronicsMapRcd> ();
73  }
74  else {
75  std::cerr << "CastorTextCalibrations-> Unknown object name '" << objectName
76  << "', known names are: "
77  << "Pedestals PedestalWidths Gains GainWidths QIEData ChannelQuality ElectronicsMap"
78  << std::endl;
79  }
80  }
81  // setWhatProduced(this);
82 }
83 
84 
86 {
87 }
88 
89 
90 //
91 // member functions
92 //
93 void
95  std::string record = iKey.name ();
97 }
98 
99 template <class T>
100 std::auto_ptr<T> produce_impl (const std::string& fFile) {
101  std::auto_ptr<T> result (new T ());
102  std::ifstream inStream (fFile.c_str ());
103  if (!inStream.good ()) {
104  std::cerr << "CastorTextCalibrations-> Unable to open file '" << fFile << "'" << std::endl;
105  throw cms::Exception("FileNotFound") << "Unable to open '" << fFile << "'" << std::endl;
106  }
107  if (!CastorDbASCIIIO::getObject (inStream, &*result)) {
108  std::cerr << "CastorTextCalibrations-> Can not read object from file '" << fFile << "'" << std::endl;
109  throw cms::Exception("ReadError") << "Can not read object from file '" << fFile << "'" << std::endl;
110  }
111  return result;
112 }
113 
114 
115 std::auto_ptr<CastorPedestals> CastorTextCalibrations::producePedestals (const CastorPedestalsRcd&) {
116  return produce_impl<CastorPedestals> (mInputs ["Pedestals"]);
117 }
118 
119 std::auto_ptr<CastorPedestalWidths> CastorTextCalibrations::producePedestalWidths (const CastorPedestalWidthsRcd&) {
120  return produce_impl<CastorPedestalWidths> (mInputs ["PedestalWidths"]);
121 }
122 
123 std::auto_ptr<CastorGains> CastorTextCalibrations::produceGains (const CastorGainsRcd&) {
124  return produce_impl<CastorGains> (mInputs ["Gains"]);
125 }
126 
127 std::auto_ptr<CastorGainWidths> CastorTextCalibrations::produceGainWidths (const CastorGainWidthsRcd&) {
128  return produce_impl<CastorGainWidths> (mInputs ["GainWidths"]);
129 }
130 
131 std::auto_ptr<CastorQIEData> CastorTextCalibrations::produceQIEData (const CastorQIEDataRcd& rcd) {
132  return produce_impl<CastorQIEData> (mInputs ["QIEData"]);
133 }
134 
135 std::auto_ptr<CastorChannelQuality> CastorTextCalibrations::produceChannelQuality (const CastorChannelQualityRcd& rcd) {
136  return produce_impl<CastorChannelQuality> (mInputs ["ChannelQuality"]);
137 }
138 
139 std::auto_ptr<CastorElectronicsMap> CastorTextCalibrations::produceElectronicsMap (const CastorElectronicsMapRcd& rcd) {
140  return produce_impl<CastorElectronicsMap> (mInputs ["ElectronicsMap"]);
141 }
142 
T getParameter(std::string const &) const
std::auto_ptr< CastorElectronicsMap > produceElectronicsMap(const CastorElectronicsMapRcd &rcd)
JetCorrectorParameters::Record record
Definition: classes.h:11
std::auto_ptr< CastorChannelQuality > produceChannelQuality(const CastorChannelQualityRcd &rcd)
static const IOVSyncValue & endOfTime()
Definition: IOVSyncValue.cc:97
virtual void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &)
std::pair< Time_t, Time_t > ValidityInterval
Definition: Time.h:19
static const IOVSyncValue & beginOfTime()
tuple result
Definition: query.py:137
bool getObject(std::istream &fInput, CastorPedestals *fObject)
std::auto_ptr< CastorPedestals > producePedestals(const CastorPedestalsRcd &rcd)
std::auto_ptr< CastorPedestalWidths > producePedestalWidths(const CastorPedestalWidthsRcd &rcd)
std::auto_ptr< CastorQIEData > produceQIEData(const CastorQIEDataRcd &rcd)
std::auto_ptr< CastorGainWidths > produceGainWidths(const CastorGainWidthsRcd &rcd)
CastorTextCalibrations(const edm::ParameterSet &)
std::string fullPath() const
Definition: FileInPath.cc:170
std::auto_ptr< T > produce_impl(const std::string &fFile)
long double T
std::auto_ptr< CastorGains > produceGains(const CastorGainsRcd &rcd)