CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Attributes
EcalPreshowerRecHitsValidation Class Reference

#include <EcalPreshowerRecHitsValidation.h>

Inheritance diagram for EcalPreshowerRecHitsValidation:
one::DQMEDAnalyzer< T > one::dqmimplementation::DQMBaseClass< T... >

Public Member Functions

 EcalPreshowerRecHitsValidation (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~EcalPreshowerRecHitsValidation () override
 Destructor. More...
 
- Public Member Functions inherited from one::DQMEDAnalyzer< T >
 DQMEDAnalyzer ()=default
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > &&)=delete
 
 ~DQMEDAnalyzer () override=default
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 Analyze. More...
 
void bookHistograms (DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
 

Private Attributes

edm::EDGetTokenT< EERecHitCollectionEErechitCollection_token_
 
edm::EDGetTokenT< EEUncalibratedRecHitCollectionEEuncalibrechitCollection_token_
 
edm::EDGetTokenT< ESRecHitCollectionESrechitCollection_token_
 
MonitorElementmeESEERecHitsEnergy_zm_
 
MonitorElementmeESEERecHitsEnergy_zp_
 
MonitorElementmeESRecHitsEnergy_
 
MonitorElementmeESRecHitsEnergy_zm1st_
 
MonitorElementmeESRecHitsEnergy_zm2nd_
 
MonitorElementmeESRecHitsEnergy_zp1st_
 
MonitorElementmeESRecHitsEnergy_zp2nd_
 
MonitorElementmeESRecHitsMultip_
 
MonitorElementmeESRecHitsMultip_zm1st_
 
MonitorElementmeESRecHitsMultip_zm2nd_
 
MonitorElementmeESRecHitsMultip_zp1st_
 
MonitorElementmeESRecHitsMultip_zp2nd_
 
MonitorElementmeESRecHitsStripOccupancy_zm1st_ [36]
 
MonitorElementmeESRecHitsStripOccupancy_zm2nd_ [36]
 
MonitorElementmeESRecHitsStripOccupancy_zp1st_ [36]
 
MonitorElementmeESRecHitsStripOccupancy_zp2nd_ [36]
 
bool verbose_
 

Detailed Description

Definition at line 35 of file EcalPreshowerRecHitsValidation.h.

Constructor & Destructor Documentation

EcalPreshowerRecHitsValidation::EcalPreshowerRecHitsValidation ( const edm::ParameterSet ps)

Constructor.

Definition at line 17 of file EcalPreshowerRecHitsValidation.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), and GetRecoTauVFromDQM_MC_cff::kk.

17  {
18  // ----------------------
20  consumes<EEUncalibratedRecHitCollection>(ps.getParameter<edm::InputTag>("EEuncalibrechitCollection"));
21  EErechitCollection_token_ = consumes<EERecHitCollection>(ps.getParameter<edm::InputTag>("EErechitCollection"));
22  ESrechitCollection_token_ = consumes<ESRecHitCollection>(ps.getParameter<edm::InputTag>("ESrechitCollection"));
23 
24  // ----------------------
25  // verbosity switch
26  verbose_ = ps.getUntrackedParameter<bool>("verbose", false);
27 
28  // ----------------------
29  meESRecHitsEnergy_ = nullptr; // total energy
30  meESRecHitsEnergy_zp1st_ = nullptr;
31  meESRecHitsEnergy_zp2nd_ = nullptr;
32  meESRecHitsEnergy_zm1st_ = nullptr;
33  meESRecHitsEnergy_zm2nd_ = nullptr;
34  meESRecHitsMultip_ = nullptr; // total multiplicity
35  meESRecHitsMultip_zp1st_ = nullptr;
36  meESRecHitsMultip_zp2nd_ = nullptr;
37  meESRecHitsMultip_zm1st_ = nullptr;
38  meESRecHitsMultip_zm2nd_ = nullptr;
39  meESEERecHitsEnergy_zp_ = nullptr; // versus EE energy
40  meESEERecHitsEnergy_zm_ = nullptr;
41 
42  for (int kk = 0; kk < 32; kk++) {
47  }
48 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< EEUncalibratedRecHitCollection > EEuncalibrechitCollection_token_
edm::EDGetTokenT< EERecHitCollection > EErechitCollection_token_
edm::EDGetTokenT< ESRecHitCollection > ESrechitCollection_token_
EcalPreshowerRecHitsValidation::~EcalPreshowerRecHitsValidation ( )
override

Destructor.

Definition at line 50 of file EcalPreshowerRecHitsValidation.cc.

50 {}

Member Function Documentation

void EcalPreshowerRecHitsValidation::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overrideprotected

Analyze.

Definition at line 110 of file EcalPreshowerRecHitsValidation.cc.

References edm::SortedCollection< T, SORT >::begin(), edm::SortedCollection< T, SORT >::end(), edm::SortedCollection< T, SORT >::find(), edm::Event::getByToken(), edm::HandleBase::isValid(), ESDetId::plane(), edm::Handle< T >::product(), rpcPointValidation_cfi::recHit, ESDetId::six(), ESDetId::siy(), digitizers_cfi::strip, ESDetId::strip(), ESDetId::zside(), EEDetId::zside(), and ecaldqm::zside().

110  {
111  const ESRecHitCollection *ESRecHit = nullptr;
112  Handle<ESRecHitCollection> EcalRecHitES;
113  e.getByToken(ESrechitCollection_token_, EcalRecHitES);
114  if (EcalRecHitES.isValid()) {
115  ESRecHit = EcalRecHitES.product();
116  } else {
117  return;
118  }
119 
120  bool skipEE = false;
121  const EERecHitCollection *EERecHit = nullptr;
122  Handle<EERecHitCollection> EcalRecHitEE;
123  e.getByToken(EErechitCollection_token_, EcalRecHitEE);
124  if (EcalRecHitEE.isValid()) {
125  EERecHit = EcalRecHitEE.product();
126  } else {
127  skipEE = true;
128  }
129 
130  const EEUncalibratedRecHitCollection *EEUncalibRecHit = nullptr;
131  Handle<EEUncalibratedRecHitCollection> EcalUncalibRecHitEE;
132  e.getByToken(EEuncalibrechitCollection_token_, EcalUncalibRecHitEE);
133  if (EcalUncalibRecHitEE.isValid()) {
134  EEUncalibRecHit = EcalUncalibRecHitEE.product();
135  } else {
136  skipEE = true;
137  }
138 
139  // ----------------------
140  // loop over RecHits
141  // multiplicities
142  int mult_tot = 0;
143  int mult_zp1st = 0;
144  int mult_zp2nd = 0;
145  int mult_zm1st = 0;
146  int mult_zm2nd = 0;
147 
148  // energies
149  float ene_zp1st = 0.;
150  float ene_zp2nd = 0.;
151  float ene_zm1st = 0.;
152  float ene_zm2nd = 0.;
153 
154  // ES
155  for (ESRecHitCollection::const_iterator recHit = ESRecHit->begin(); recHit != ESRecHit->end(); ++recHit) {
156  ESDetId ESid = ESDetId(recHit->id());
157 
158  int zside = ESid.zside();
159  int plane = ESid.plane();
160  int six = ESid.six();
161  int siy = ESid.siy();
162  int strip = ESid.strip();
163 
164  // global
165  mult_tot++;
166  if (meESRecHitsEnergy_)
167  meESRecHitsEnergy_->Fill(recHit->energy());
168 
169  // side +, plane 1
170  if ((zside == +1) && (plane == 1)) {
171  mult_zp1st++;
172  ene_zp1st += recHit->energy();
175  }
176  if (meESRecHitsStripOccupancy_zp1st_[strip - 1]) {
177  meESRecHitsStripOccupancy_zp1st_[strip - 1]->Fill(six, siy);
178  }
179  }
180 
181  // side +, plane 2
182  if ((zside == +1) && (plane == 2)) {
183  mult_zp2nd++;
184  ene_zp2nd += recHit->energy();
187  }
188  if (meESRecHitsStripOccupancy_zp2nd_[strip - 1]) {
189  meESRecHitsStripOccupancy_zp2nd_[strip - 1]->Fill(six, siy);
190  }
191  }
192 
193  // side -, plane 1
194  if ((zside == -1) && (plane == 1)) {
195  mult_zm1st++;
196  ene_zm1st += recHit->energy();
199  }
200  if (meESRecHitsStripOccupancy_zm1st_[strip - 1]) {
201  meESRecHitsStripOccupancy_zm1st_[strip - 1]->Fill(six, siy);
202  }
203  }
204 
205  // side +, plane 2
206  if ((zside == -1) && (plane == 2)) {
207  mult_zm2nd++;
208  ene_zm2nd += recHit->energy();
211  }
212  if (meESRecHitsStripOccupancy_zm2nd_[strip - 1]) {
213  meESRecHitsStripOccupancy_zm2nd_[strip - 1]->Fill(six, siy);
214  }
215  }
216 
217  } // loop over the ES RecHitCollection
218 
219  // EE
220  double zpEE = 0.;
221  double zmEE = 0.;
222  if (!skipEE) {
223  for (EcalUncalibratedRecHitCollection::const_iterator uncalibRecHit = EEUncalibRecHit->begin();
224  uncalibRecHit != EEUncalibRecHit->end();
225  ++uncalibRecHit) {
226  EEDetId EEid = EEDetId(uncalibRecHit->id());
227  int mySide = EEid.zside();
228 
229  // Find corresponding recHit
230  EcalRecHitCollection::const_iterator myRecHit = EERecHit->find(EEid);
231 
232  if (myRecHit != EERecHit->end()) {
233  if (mySide > 0) {
234  zpEE = zpEE + myRecHit->energy();
235  }
236  if (mySide < 0) {
237  zmEE = zmEE + myRecHit->energy();
238  }
239  }
240  }
241  }
242 
243  // filling histos
244  if (meESRecHitsMultip_) {
245  meESRecHitsMultip_->Fill(mult_tot);
246  }
248  meESRecHitsMultip_zp1st_->Fill(mult_zp1st);
249  }
251  meESRecHitsMultip_zp2nd_->Fill(mult_zp2nd);
252  }
254  meESRecHitsMultip_zm1st_->Fill(mult_zm1st);
255  }
257  meESRecHitsMultip_zm2nd_->Fill(mult_zm2nd);
258  }
260  meESEERecHitsEnergy_zp_->Fill((ene_zp1st + 0.7 * ene_zp2nd) / 0.09, zpEE);
261  }
263  meESEERecHitsEnergy_zm_->Fill((ene_zm1st + 0.7 * ene_zm2nd) / 0.09, zmEE);
264  }
265 }
edm::EDGetTokenT< EEUncalibratedRecHitCollection > EEuncalibrechitCollection_token_
int strip() const
Definition: ESDetId.h:47
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
std::vector< EcalRecHit >::const_iterator const_iterator
int six() const
Definition: ESDetId.h:43
int zside(DetId const &)
void Fill(long long x)
int siy() const
Definition: ESDetId.h:45
edm::EDGetTokenT< EERecHitCollection > EErechitCollection_token_
int zside() const
Definition: EEDetId.h:71
int zside() const
Definition: ESDetId.h:39
bool isValid() const
Definition: HandleBase.h:74
const_iterator end() const
T const * product() const
Definition: Handle.h:74
edm::EDGetTokenT< ESRecHitCollection > ESrechitCollection_token_
iterator find(key_type k)
int plane() const
Definition: ESDetId.h:41
const_iterator begin() const
void EcalPreshowerRecHitsValidation::bookHistograms ( DQMStore::IBooker i,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotected

Definition at line 52 of file EcalPreshowerRecHitsValidation.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), trackerHits::histo, GetRecoTauVFromDQM_MC_cff::kk, and DQMStore::IBooker::setCurrentFolder().

54  {
55  Char_t histo[200];
56 
57  ibooker.setCurrentFolder("EcalRecHitsV/EcalPreshowerRecHitsTask");
58 
59  sprintf(histo, "ES Energy");
60  meESRecHitsEnergy_ = ibooker.book1D(histo, histo, 210, -0.0005, 0.01);
61 
62  sprintf(histo, "ES Energy Plane1 Side+");
63  meESRecHitsEnergy_zp1st_ = ibooker.book1D(histo, histo, 210, -0.0005, 0.01);
64 
65  sprintf(histo, "ES Energy Plane2 Side+");
66  meESRecHitsEnergy_zp2nd_ = ibooker.book1D(histo, histo, 210, -0.0005, 0.01);
67 
68  sprintf(histo, "ES Energy Plane1 Side-");
69  meESRecHitsEnergy_zm1st_ = ibooker.book1D(histo, histo, 210, -0.0005, 0.01);
70 
71  sprintf(histo, "ES Energy Plane2 Side-");
72  meESRecHitsEnergy_zm2nd_ = ibooker.book1D(histo, histo, 210, -0.0005, 0.01);
73 
74  sprintf(histo, "ES Multiplicity");
75  meESRecHitsMultip_ = ibooker.book1D(histo, histo, 100, 0., 700.);
76 
77  sprintf(histo, "ES Multiplicity Plane1 Side+");
78  meESRecHitsMultip_zp1st_ = ibooker.book1D(histo, histo, 100, 0., 700.);
79 
80  sprintf(histo, "ES Multiplicity Plane2 Side+");
81  meESRecHitsMultip_zp2nd_ = ibooker.book1D(histo, histo, 100, 0., 700.);
82 
83  sprintf(histo, "ES Multiplicity Plane1 Side-");
84  meESRecHitsMultip_zm1st_ = ibooker.book1D(histo, histo, 100, 0., 700.);
85 
86  sprintf(histo, "ES Multiplicity Plane2 Side-");
87  meESRecHitsMultip_zm2nd_ = ibooker.book1D(histo, histo, 100, 0., 700.);
88 
89  sprintf(histo, "Preshower EE vs ES energy Side+");
90  meESEERecHitsEnergy_zp_ = ibooker.book2D(histo, histo, 100, 0., 0.2, 100, 0., 150.);
91 
92  sprintf(histo, "Preshower EE vs ES energy Side-");
93  meESEERecHitsEnergy_zm_ = ibooker.book2D(histo, histo, 100, 0., 0.2, 100, 0., 150.);
94 
95  for (int kk = 0; kk < 32; kk++) {
96  sprintf(histo, "ES Occupancy Plane1 Side+ Strip%02d", kk + 1);
97  meESRecHitsStripOccupancy_zp1st_[kk] = ibooker.book2D(histo, histo, 40, 0., 40., 40, 0., 40.);
98 
99  sprintf(histo, "ES Occupancy Plane2 Side+ Strip%02d", kk + 1);
100  meESRecHitsStripOccupancy_zp2nd_[kk] = ibooker.book2D(histo, histo, 40, 0., 40., 40, 0., 40.);
101 
102  sprintf(histo, "ES Occupancy Plane1 Side- Strip%02d", kk + 1);
103  meESRecHitsStripOccupancy_zm1st_[kk] = ibooker.book2D(histo, histo, 40, 0., 40., 40, 0., 40.);
104 
105  sprintf(histo, "ES Occupancy Plane2 Side- Strip%02d", kk + 1);
106  meESRecHitsStripOccupancy_zm2nd_[kk] = ibooker.book2D(histo, histo, 40, 0., 40., 40, 0., 40.);
107  }
108 }

Member Data Documentation

edm::EDGetTokenT<EERecHitCollection> EcalPreshowerRecHitsValidation::EErechitCollection_token_
private

Definition at line 52 of file EcalPreshowerRecHitsValidation.h.

edm::EDGetTokenT<EEUncalibratedRecHitCollection> EcalPreshowerRecHitsValidation::EEuncalibrechitCollection_token_
private

Definition at line 51 of file EcalPreshowerRecHitsValidation.h.

edm::EDGetTokenT<ESRecHitCollection> EcalPreshowerRecHitsValidation::ESrechitCollection_token_
private

Definition at line 53 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESEERecHitsEnergy_zm_
private

Definition at line 66 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESEERecHitsEnergy_zp_
private

Definition at line 65 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsEnergy_
private

Definition at line 55 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsEnergy_zm1st_
private

Definition at line 58 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsEnergy_zm2nd_
private

Definition at line 59 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsEnergy_zp1st_
private

Definition at line 56 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsEnergy_zp2nd_
private

Definition at line 57 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsMultip_
private

Definition at line 60 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsMultip_zm1st_
private

Definition at line 63 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsMultip_zm2nd_
private

Definition at line 64 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsMultip_zp1st_
private

Definition at line 61 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsMultip_zp2nd_
private

Definition at line 62 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsStripOccupancy_zm1st_[36]
private

Definition at line 68 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsStripOccupancy_zm2nd_[36]
private

Definition at line 70 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsStripOccupancy_zp1st_[36]
private

Definition at line 67 of file EcalPreshowerRecHitsValidation.h.

MonitorElement* EcalPreshowerRecHitsValidation::meESRecHitsStripOccupancy_zp2nd_[36]
private

Definition at line 69 of file EcalPreshowerRecHitsValidation.h.

bool EcalPreshowerRecHitsValidation::verbose_
private

Definition at line 49 of file EcalPreshowerRecHitsValidation.h.