CMS 3D CMS Logo

EcalTPInputAnalyzer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Class: EcalTPInputAnalyzer
4 //
10 //
11 //
12 // Original Author: Ursula Berthon
13 // Created: Thu Jul 4 11:38:38 CEST 2005
14 //
15 //
16 
17 
18 // system include files
19 #include <memory>
20 #include <utility>
21 
22 // user include files
25 
28 
31 
32 #include "EcalTPInputAnalyzer.h"
35 
36 using namespace edm;
37 
39 
40 {
41  histfile_=new TFile("histos.root","UPDATE");
42  histEndc = new TH1I("AdcE","Adc-s for Endcap",100,0.,5000.);
43  histBar = new TH1I("AdcB","Adc-s for Barrel",100,0.,5000.);
44  ecal_parts_.push_back("Barrel");
45  ecal_parts_.push_back("Endcap");
46 
47 // for (unsigned int i=0;i<2;++i) {
48 // ecal_et_[i]=new TH1I(ecal_parts_[i].c_str(),"Et",255,0,255);
49 // char title[30];
50 // sprintf(title,"%s_ttf",ecal_parts_[i].c_str());
51 // ecal_tt_[i]=new TH1I(title,"TTF",10,0,10);
52 // sprintf(title,"%s_fgvb",ecal_parts_[i].c_str());
53 // ecal_fgvb_[i]=new TH1I(title,"FGVB",10,0,10);
54 // }
55  producer_= iConfig.getParameter<std::string>("Producer");
56  ebLabel_= iConfig.getParameter<std::string>("EBLabel");
57  eeLabel_= iConfig.getParameter<std::string>("EELabel");
58 }
59 
60 
62 {
63 
64  // do anything here that needs to be done at desctruction time
65  // (e.g. close files, deallocate resources etc.)
66 
67  histfile_->Write();
68  histfile_->Close();
69 
70 }
71 
72 
73 //
74 // member functions
75 //
76 
77 // ------------ method called to analyze the data ------------
78 void
80 {
81  using namespace edm;
82  using namespace std;
83 
84  bool barrel=true;
87  if (!iEvent.getByLabel(producer_,ebLabel_,ebDigis)) {
88  barrel=false;
89  edm::LogWarning("EcalTPG") <<" Couldnt find Barrel dataframes with Producer:"<<producer_<<" and label: "<<ebLabel_;
90  }
91  bool endcap=true;
92  if (!iEvent.getByLabel(producer_,eeLabel_,eeDigis)) {
93  endcap=false;
94  edm::LogWarning("EcalTPG") <<" Couldnt find Endcap dataframes with Producer:"<<producer_<<" and label: "<<eeLabel_;
95  }
96  //barrel
97  if (barrel) {
98  const EBDigiCollection *ebdb=ebDigis.product();
99  for (unsigned int i=0;i<ebDigis->size();++i) {
100  EBDataFrame ebdf=(*ebdb)[i];
101  int nrSamples=ebdf.size();
102  //unsigned int nrSamples=(ebDigis.product())[i].size();
103  for (int is=0;is<nrSamples;++is) {
104  // EcalMGPASample sam=((ebDigis.product())[i])[is];
105  EcalMGPASample sam=ebdf[is];
106  histBar->Fill(sam.adc());
107  }
108  }
109  }
110  //endcap
111  if (endcap) {
112  const EEDigiCollection *eedb=eeDigis.product();
113  for (unsigned int i=0;i<eeDigis->size();++i) {
114  EEDataFrame eedf=(*eedb)[i];
115  int nrSamples=eedf.size();
116  for (int is=0;is<nrSamples;++is) {
117  EcalMGPASample sam=eedf[is];
118  histEndc->Fill(sam.adc());
119  }
120  }
121  }
122 // // Get input
123 // edm::Handle<EcalTrigPrimDigiCollection> tp;
124 // iEvent.getByLabel(label_,producer_,tp);
125 // for (unsigned int i=0;i<tp.product()->size();i++) {
126 // EcalTriggerPrimitiveDigi d=(*(tp.product()))[i];
127 // int subdet=d.id().subDet()-1;
128 // ecal_et_[subdet]->Fill(d.compressedEt());
129 // ecal_tt_[subdet]->Fill(d.ttFlag());
130 // ecal_fgvb_[subdet]->Fill(d.fineGrain());
131 // }
132 }
133 
134 void
136  histEndc ->Write();
137  histBar ->Write();
138 }
139 
140 
141 
142 
T getParameter(std::string const &) const
void analyze(const edm::Event &, const edm::EventSetup &) override
int size() const
Definition: EcalDataFrame.h:26
int iEvent
Definition: GenABIO.cc:230
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:464
T const * product() const
Definition: Handle.h:81
HLT enums.
EcalTPInputAnalyzer(const edm::ParameterSet &)
int adc() const
get the ADC sample (12 bits)