Go to the documentation of this file.00001
00002
00003
00004
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <memory>
00021 #include <utility>
00022
00023
00024 #include "FWCore/Framework/interface/Frameworkfwd.h"
00025 #include "FWCore/Framework/interface/EDAnalyzer.h"
00026
00027 #include "FWCore/Framework/interface/Event.h"
00028 #include "FWCore/Framework/interface/MakerMacros.h"
00029
00030 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00031 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00032
00033 #include "EcalTPInputAnalyzer.h"
00034 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
00035 #include "DataFormats/EcalDigi/interface/EcalTriggerPrimitiveDigi.h"
00036
00037 using namespace edm;
00038
00039 EcalTPInputAnalyzer::EcalTPInputAnalyzer(const edm::ParameterSet& iConfig)
00040
00041 {
00042 histfile_=new TFile("histos.root","UPDATE");
00043 histEndc = new TH1I("AdcE","Adc-s for Endcap",100,0.,5000.);
00044 histBar = new TH1I("AdcB","Adc-s for Barrel",100,0.,5000.);
00045 ecal_parts_.push_back("Barrel");
00046 ecal_parts_.push_back("Endcap");
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 producer_= iConfig.getParameter<std::string>("Producer");
00057 ebLabel_= iConfig.getParameter<std::string>("EBLabel");
00058 eeLabel_= iConfig.getParameter<std::string>("EELabel");
00059 }
00060
00061
00062 EcalTPInputAnalyzer::~EcalTPInputAnalyzer()
00063 {
00064
00065
00066
00067
00068 histfile_->Write();
00069 histfile_->Close();
00070
00071 }
00072
00073
00074
00075
00076
00077
00078
00079 void
00080 EcalTPInputAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
00081 {
00082 using namespace edm;
00083 using namespace std;
00084
00085 bool barrel=true;
00086 edm::Handle<EBDigiCollection> ebDigis;
00087 edm::Handle<EEDigiCollection> eeDigis;
00088 if (!iEvent.getByLabel(producer_,ebLabel_,ebDigis)) {
00089 barrel=false;
00090 edm::LogWarning("EcalTPG") <<" Couldnt find Barrel dataframes with Producer:"<<producer_<<" and label: "<<ebLabel_;
00091 }
00092 bool endcap=true;
00093 if (!iEvent.getByLabel(producer_,eeLabel_,eeDigis)) {
00094 endcap=false;
00095 edm::LogWarning("EcalTPG") <<" Couldnt find Endcap dataframes with Producer:"<<producer_<<" and label: "<<eeLabel_;
00096 }
00097
00098 if (barrel) {
00099 const EBDigiCollection *ebdb=ebDigis.product();
00100 for (unsigned int i=0;i<ebDigis->size();++i) {
00101 EBDataFrame ebdf=(*ebdb)[i];
00102 int nrSamples=ebdf.size();
00103
00104 for (int is=0;is<nrSamples;++is) {
00105
00106 EcalMGPASample sam=ebdf[is];
00107 histBar->Fill(sam.adc());
00108 }
00109 }
00110 }
00111
00112 if (endcap) {
00113 const EEDigiCollection *eedb=eeDigis.product();
00114 for (unsigned int i=0;i<eeDigis->size();++i) {
00115 EEDataFrame eedf=(*eedb)[i];
00116 int nrSamples=eedf.size();
00117 for (int is=0;is<nrSamples;++is) {
00118 EcalMGPASample sam=eedf[is];
00119 histEndc->Fill(sam.adc());
00120 }
00121 }
00122 }
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133 }
00134
00135 void
00136 EcalTPInputAnalyzer::endJob(){
00137 histEndc ->Write();
00138 histBar ->Write();
00139 }
00140
00141
00142
00143