CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalDumpConditions.cc
Go to the documentation of this file.
1 
2 /*----------------------------------------------------------------------
3 
4 R.Ofierzynski - 2.Oct. 2007
5  modified to dump all pedestals on screen, see
6  testHcalDBFake.cfg
7  testHcalDBFrontier.cfg
8 
9 July 29, 2009 Added HcalValidationCorrs - Gena Kukartsev
10 September 21, 2009 Added HcalLutMetadata - Gena Kukartsev
11 
12 ----------------------------------------------------------------------*/
13 
14 #include <stdexcept>
15 #include <string>
16 #include <iostream>
17 #include <fstream>
18 #include <sstream>
19 #include <map>
24 
27 
29 
31 
34 
37 
38 namespace edmtest
39 {
41  {
42  public:
44  {
45  front = p.getUntrackedParameter<std::string>("outFilePrefix","Dump");
46  mDumpRequest = p.getUntrackedParameter <std::vector <std::string> > ("dump", std::vector<std::string>());
47  }
48 
49  explicit HcalDumpConditions(int i)
50  { }
51  virtual ~ HcalDumpConditions() { }
52  virtual void analyze(const edm::Event& e, const edm::EventSetup& c);
53 
54  template<class S, class SRcd> void dumpIt(S* myS, SRcd* mySRcd, const edm::Event& e, const edm::EventSetup& context, std::string name);
55 
56  private:
57  std::string front;
58  std::vector<std::string> mDumpRequest;
59  };
60 
61 
62  template<class S, class SRcd>
63  void HcalDumpConditions::dumpIt(S* myS, SRcd* mySRcd, const edm::Event& e, const edm::EventSetup& context, std::string name)
64  {
65  int myrun = e.id().run();
67  context.get<SRcd>().get(p);
68  S* myobject = new S(*p.product());
69 
70  std::ostringstream file;
71  file << front << name.c_str() << "_Run" << myrun << ".txt";
72  std::ofstream outStream(file.str().c_str() );
73  std::cout << "HcalDumpConditions: ---- Dumping " << name.c_str() << " ----" << std::endl;
74  HcalDbASCIIIO::dumpObject (outStream, (*myobject) );
75 
76  if ( context.get<SRcd>().validityInterval().first() == edm::IOVSyncValue::invalidIOVSyncValue() )
77  std::cout << "error: invalid IOV sync value !" << std::endl;
78 
79  }
80 
81 
82  void
84  {
85  using namespace edm::eventsetup;
86  std::cout <<"HcalDumpConditions::analyze-> I AM IN RUN NUMBER "<<e.id().run() <<std::endl;
87 
88  if (mDumpRequest.empty()) return;
89  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("ElectronicsMap")) != mDumpRequest.end())
90  dumpIt(new HcalElectronicsMap, new HcalElectronicsMapRcd, e,context,"ElectronicsMap");
91  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("QIEData")) != mDumpRequest.end())
92  dumpIt(new HcalQIEData, new HcalQIEDataRcd, e,context,"QIEData");
93  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("Pedestals")) != mDumpRequest.end())
94  dumpIt(new HcalPedestals(false), new HcalPedestalsRcd, e,context,"Pedestals");
95  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("PedestalWidths")) != mDumpRequest.end())
96  dumpIt(new HcalPedestalWidths(false), new HcalPedestalWidthsRcd, e,context,"PedestalWidths");
97  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("Gains")) != mDumpRequest.end())
98  dumpIt(new HcalGains, new HcalGainsRcd, e,context,"Gains");
99  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("GainWidths")) != mDumpRequest.end())
100  dumpIt(new HcalGainWidths, new HcalGainWidthsRcd, e,context,"GainWidths");
101  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("ChannelQuality")) != mDumpRequest.end())
102  dumpIt(new HcalChannelQuality, new HcalChannelQualityRcd, e,context,"ChannelQuality");
103  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("RespCorrs")) != mDumpRequest.end())
104  dumpIt(new HcalRespCorrs, new HcalRespCorrsRcd, e,context,"RespCorrs");
105  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("ZSThresholds")) != mDumpRequest.end())
106  dumpIt(new HcalZSThresholds, new HcalZSThresholdsRcd, e,context,"ZSThresholds");
107  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("L1TriggerObjects")) != mDumpRequest.end())
108  dumpIt(new HcalL1TriggerObjects, new HcalL1TriggerObjectsRcd, e,context,"L1TriggerObjects");
109  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("TimeCorrs")) != mDumpRequest.end())
110  dumpIt(new HcalTimeCorrs, new HcalTimeCorrsRcd, e,context,"TimeCorrs");
111  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("LUTCorrs")) != mDumpRequest.end())
112  dumpIt(new HcalLUTCorrs, new HcalLUTCorrsRcd, e,context,"LUTCorrs");
113  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("PFCorrs")) != mDumpRequest.end())
114  dumpIt(new HcalPFCorrs, new HcalPFCorrsRcd, e,context,"PFCorrs");
115  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("ValidationCorrs")) != mDumpRequest.end())
116  dumpIt(new HcalValidationCorrs, new HcalValidationCorrsRcd, e,context,"ValidationCorrs");
117  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("LutMetadata")) != mDumpRequest.end())
118  dumpIt(new HcalLutMetadata, new HcalLutMetadataRcd, e,context,"LutMetadata");
119  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("DcsValues")) != mDumpRequest.end())
120  dumpIt(new HcalDcsValues, new HcalDcsRcd, e,context,"DcsValues");
121  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("DcsMap")) != mDumpRequest.end())
122  dumpIt(new HcalDcsMap, new HcalDcsMapRcd, e,context,"DcsMap");
123  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("CholeskyMatrices")) != mDumpRequest.end())
124  dumpIt(new HcalCholeskyMatrices, new HcalCholeskyMatricesRcd, e,context,"CholeskyMatrices");
125  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("RecoParams")) != mDumpRequest.end())
126  dumpIt(new HcalRecoParams, new HcalRecoParamsRcd, e,context,"RecoParams");
127  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("TimingParams")) != mDumpRequest.end())
128  dumpIt(new HcalTimingParams, new HcalTimingParamsRcd, e,context,"TimingParams");
129  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("LongRecoParams")) != mDumpRequest.end())
130  dumpIt(new HcalLongRecoParams, new HcalLongRecoParamsRcd, e,context,"LongRecoParams");
131  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("MCParams")) != mDumpRequest.end())
132  dumpIt(new HcalMCParams, new HcalMCParamsRcd, e,context,"MCParams");
133  if (std::find (mDumpRequest.begin(), mDumpRequest.end(), std::string ("FlagHFDigiTimeParams")) != mDumpRequest.end())
134  dumpIt(new HcalFlagHFDigiTimeParams, new HcalFlagHFDigiTimeParamsRcd, e,context,"FlagHFDigiTimeParams");
135 
136 
137  }
139 }
RunNumber_t run() const
Definition: EventID.h:42
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
void dumpIt(S *myS, SRcd *mySRcd, const edm::Event &e, const edm::EventSetup &context, std::string name)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
HcalDumpConditions(edm::ParameterSet const &p)
DEFINE_FWK_MODULE(DQMReferenceHistogramRootFileEventSetupAnalyzer)
std::vector< std::string > mDumpRequest
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
edm::EventID id() const
Definition: EventBase.h:56
bool dumpObject(std::ostream &fOutput, const HcalPedestals &fObject)
tuple cout
Definition: gather_cfg.py:121
static const IOVSyncValue & invalidIOVSyncValue()
Definition: IOVSyncValue.cc:92