Go to the documentation of this file.00001
00002
00003
00004
00005
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <memory>
00023
00024
00025 #include "FWCore/Framework/interface/Frameworkfwd.h"
00026 #include "FWCore/Framework/interface/EDAnalyzer.h"
00027 #include "FWCore/Framework/interface/Event.h"
00028 #include "DataFormats/Common/interface/Handle.h"
00029 #include "FWCore/Framework/interface/ESHandle.h"
00030 #include "FWCore/Framework/interface/MakerMacros.h"
00031 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00032 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00033 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
00034 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
00035 #include "TBDataFormats/HcalTBObjects/interface/HcalTBTriggerData.h"
00036 #include "RecoTBCalo/HcalPlotter/src/HcalQLPlotAnalAlgos.h"
00037 #include <string>
00038
00039
00040
00041
00042 class HcalQLPlotAnal : public edm::EDAnalyzer {
00043 public:
00044 explicit HcalQLPlotAnal(const edm::ParameterSet&);
00045 ~HcalQLPlotAnal();
00046
00047
00048 private:
00049 virtual void analyze(const edm::Event&, const edm::EventSetup&);
00050 virtual void endJob() ;
00051
00052
00053 edm::InputTag hbheRHLabel_,hoRHLabel_,hfRHLabel_;
00054 edm::InputTag hcalDigiLabel_, hcalTrigLabel_;
00055 bool doCalib_;
00056 double calibFC2GeV_;
00057 HcalQLPlotAnalAlgos * algo_;
00058
00059 };
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 HcalQLPlotAnal::HcalQLPlotAnal(const edm::ParameterSet& iConfig) :
00073 hbheRHLabel_(iConfig.getUntrackedParameter<edm::InputTag>("hbheRHtag")),
00074 hoRHLabel_(iConfig.getUntrackedParameter<edm::InputTag>("hoRHtag")),
00075 hfRHLabel_(iConfig.getUntrackedParameter<edm::InputTag>("hfRHtag")),
00076 hcalDigiLabel_(iConfig.getUntrackedParameter<edm::InputTag>("hcalDigiTag")),
00077 hcalTrigLabel_(iConfig.getUntrackedParameter<edm::InputTag>("hcalTrigTag")),
00078 doCalib_(iConfig.getUntrackedParameter<bool>("doCalib",false)),
00079 calibFC2GeV_(iConfig.getUntrackedParameter<double>("calibFC2GeV",0.2))
00080 {
00081 algo_ = new
00082 HcalQLPlotAnalAlgos(iConfig.getUntrackedParameter<std::string>("outputFilename").c_str(),
00083 iConfig.getParameter<edm::ParameterSet>("HistoParameters"));
00084 }
00085
00086
00087 HcalQLPlotAnal::~HcalQLPlotAnal()
00088 {
00089
00090
00091 }
00092
00093
00094
00095
00096
00097
00098
00099 void
00100 HcalQLPlotAnal::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
00101 {
00102
00103 edm::Handle<HcalTBTriggerData> trig;
00104 iEvent.getByLabel(hcalTrigLabel_,trig);
00105 if (!trig.isValid()) {
00106 edm::LogError("HcalQLPlotAnal::analyze") << "No Trigger Data found, skip event";
00107 return;
00108 } else {
00109 algo_->SetEventType(*trig);
00110 }
00111 edm::Handle<HBHEDigiCollection> hbhedg;
00112 iEvent.getByLabel(hcalDigiLabel_,hbhedg);
00113 if (!hbhedg.isValid()) {
00114 edm::LogWarning("HcalQLPlotAnal::analyze") << "One of HBHE Digis/RecHits not found";
00115 } else {
00116 algo_->processDigi(*hbhedg);
00117 }
00118 edm::Handle<HBHERecHitCollection> hbherh;
00119 iEvent.getByLabel(hbheRHLabel_,hbherh);
00120 if (!hbherh.isValid()) {
00121 edm::LogWarning("HcalQLPlotAnal::analyze") << "One of HBHE Digis/RecHits not found";
00122 } else {
00123 algo_->processRH(*hbherh,*hbhedg);
00124 }
00125
00126 edm::Handle<HODigiCollection> hodg;
00127 iEvent.getByLabel(hcalDigiLabel_,hodg);
00128 if (!hodg.isValid()) {
00129
00130 edm::LogWarning("HcalQLPlotAnal::analyze") << "One of HO Digis/RecHits not found";
00131 } else {
00132 algo_->processDigi(*hodg);
00133 }
00134 edm::Handle<HORecHitCollection> horh;
00135 iEvent.getByLabel(hoRHLabel_,horh);
00136 if (!horh.isValid()) {
00137
00138 edm::LogWarning("HcalQLPlotAnal::analyze") << "One of HO Digis/RecHits not found";
00139 } else {
00140 algo_->processRH(*horh,*hodg);
00141 }
00142
00143 edm::Handle<HFDigiCollection> hfdg;
00144 iEvent.getByLabel(hcalDigiLabel_,hfdg);
00145
00146 if (!hfdg.isValid()) {
00147
00148 edm::LogWarning("HcalQLPlotAnal::analyze") << "One of HF Digis/RecHits not found";
00149 } else {
00150 algo_->processDigi(*hfdg);
00151 }
00152
00153 edm::Handle<HFRecHitCollection> hfrh;
00154 iEvent.getByLabel(hfRHLabel_,hfrh);
00155 if (!hfrh.isValid()) {
00156
00157 edm::LogWarning("HcalQLPlotAnal::analyze") << "One of HF Digis/RecHits not found";
00158 } else {
00159 algo_->processRH(*hfrh,*hfdg);
00160 }
00161
00162 if (doCalib_) {
00163
00164 edm::Handle<HcalCalibDigiCollection> calibdg;
00165 iEvent.getByLabel(hcalDigiLabel_,calibdg);
00166 if (!calibdg.isValid()) {
00167 edm::LogWarning("HcalQLPlotAnal::analyze") << "Hcal Calib Digis not found";
00168 } else {
00169 algo_->processDigi(*calibdg,calibFC2GeV_);
00170 }
00171 }
00172
00173 }
00174
00175
00176
00177 void
00178 HcalQLPlotAnal::endJob()
00179 {
00180 algo_->end();
00181 }
00182
00183
00184 DEFINE_FWK_MODULE(HcalQLPlotAnal);