CMS 3D CMS Logo

HCALRecHitAnalyzer.cc
Go to the documentation of this file.
2 // author: Bobby Scurlock, University of Florida
3 // first version 12/7/2006
4 // modified: Mike Schmitt
5 // date: 03.05.2007
6 // note: 1) code rewrite. 2.) changed to loop over all hcal detids;
7 // not only those within calotowers.
8 
11 
18 
19 //#include "Geometry/Vector/interface/GlobalPoint.h"
26 
30 
31 #include <memory>
32 #include <vector>
33 #include <utility>
34 #include <ostream>
35 #include <fstream>
36 #include <string>
37 #include <algorithm>
38 #include <cmath>
39 #include <TLorentzVector.h>
41 
42 #define DEBUG(X) \
43  { \
44  if (debug_) { \
45  std::cout << X << std::endl; \
46  } \
47  }
48 
50  // Retrieve Information from the Configuration File
51  hBHERecHitsLabel_ = consumes<HBHERecHitCollection>(iConfig.getParameter<edm::InputTag>("HBHERecHitsLabel"));
52  hORecHitsLabel_ = consumes<HORecHitCollection>(iConfig.getParameter<edm::InputTag>("HORecHitsLabel"));
53  hFRecHitsLabel_ = consumes<HFRecHitCollection>(iConfig.getParameter<edm::InputTag>("HFRecHitsLabel"));
54  caloGeomToken_ = esConsumes<edm::Transition::BeginRun>();
55  debug_ = iConfig.getParameter<bool>("Debug");
56  finebinning_ = iConfig.getUntrackedParameter<bool>("FineBinning");
57  FolderName_ = iConfig.getUntrackedParameter<std::string>("FolderName");
58 }
59 
60 void HCALRecHitAnalyzer::dqmBeginRun(const edm::Run& iRun, const edm::EventSetup& iSetup) {
61  Nevents = 0;
62  FillGeometry(iSetup);
63 }
64 
66  ibooker.setCurrentFolder(FolderName_ + "/geometry");
67  hHCAL_ieta_iphi_HBMap = ibooker.book2D("METTask_HCAL_ieta_iphi_HBMap", "", 83, -41, 42, 72, 1, 73);
68  hHCAL_ieta_iphi_HEMap = ibooker.book2D("METTask_HCAL_ieta_iphi_HEMap", "", 83, -41, 42, 72, 1, 73);
69  hHCAL_ieta_iphi_HFMap = ibooker.book2D("METTask_HCAL_ieta_iphi_HFMap", "", 83, -41, 42, 72, 1, 73);
70  hHCAL_ieta_iphi_HOMap = ibooker.book2D("METTask_HCAL_ieta_iphi_HOMap", "", 83, -41, 42, 72, 1, 73);
71  hHCAL_ieta_iphi_etaMap = ibooker.book2D("METTask_HCAL_ieta_iphi_etaMap", "", 83, -41, 42, 72, 1, 73);
72  hHCAL_ieta_iphi_phiMap = ibooker.book2D("METTask_HCAL_ieta_iphi_phiMap", "", 83, -41, 42, 72, 1, 73);
73  hHCAL_ieta_detaMap = ibooker.book1D("METTask_HCAL_ieta_detaMap", "", 83, -41, 42);
74  hHCAL_ieta_dphiMap = ibooker.book1D("METTask_HCAL_ieta_dphiMap", "", 83, -41, 42);
75 
76  // Initialize bins for geometry to -999 because z = 0 is a valid entry
77  for (int i = 1; i <= 83; i++) {
80 
81  for (int j = 1; j <= 72; j++) {
88  }
89  }
90 
91  // ibooker.setCurrentFolder("RecoMETV/MET_HCAL/data");
93  //--Store number of events used
94  hHCAL_Nevents = ibooker.book1D("METTask_HCAL_Nevents", "", 1, 0, 1);
95  //--Data integrated over all events and stored by HCAL(ieta,iphi)
96 
97  hHCAL_D1_energy_ieta_iphi = ibooker.book2D("METTask_HCAL_D1_energy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
98  hHCAL_D2_energy_ieta_iphi = ibooker.book2D("METTask_HCAL_D2_energy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
99  hHCAL_D3_energy_ieta_iphi = ibooker.book2D("METTask_HCAL_D3_energy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
100  hHCAL_D4_energy_ieta_iphi = ibooker.book2D("METTask_HCAL_D4_energy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
101 
102  hHCAL_D1_Minenergy_ieta_iphi = ibooker.book2D("METTask_HCAL_D1_Minenergy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
103  hHCAL_D2_Minenergy_ieta_iphi = ibooker.book2D("METTask_HCAL_D2_Minenergy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
104  hHCAL_D3_Minenergy_ieta_iphi = ibooker.book2D("METTask_HCAL_D3_Minenergy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
105  hHCAL_D4_Minenergy_ieta_iphi = ibooker.book2D("METTask_HCAL_D4_Minenergy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
106 
107  hHCAL_D1_Maxenergy_ieta_iphi = ibooker.book2D("METTask_HCAL_D1_Maxenergy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
108  hHCAL_D2_Maxenergy_ieta_iphi = ibooker.book2D("METTask_HCAL_D2_Maxenergy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
109  hHCAL_D3_Maxenergy_ieta_iphi = ibooker.book2D("METTask_HCAL_D3_Maxenergy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
110  hHCAL_D4_Maxenergy_ieta_iphi = ibooker.book2D("METTask_HCAL_D4_Maxenergy_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
111 
112  // need to initialize those
113  for (int i = 1; i <= 83; i++)
114  for (int j = 1; j <= 73; j++) {
119 
124  }
125 
126  hHCAL_D1_Occ_ieta_iphi = ibooker.book2D("METTask_HCAL_D1_Occ_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
127  hHCAL_D2_Occ_ieta_iphi = ibooker.book2D("METTask_HCAL_D2_Occ_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
128  hHCAL_D3_Occ_ieta_iphi = ibooker.book2D("METTask_HCAL_D3_Occ_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
129  hHCAL_D4_Occ_ieta_iphi = ibooker.book2D("METTask_HCAL_D4_Occ_ieta_iphi", "", 83, -41, 42, 72, 1, 73);
130  //--Data over eta-rings
131 
132  // CaloTower values
133 
134  if (finebinning_) {
135  hHCAL_D1_energyvsieta = ibooker.book2D("METTask_HCAL_D1_energyvsieta", "", 83, -41, 42, 20101, -100, 2001);
136  hHCAL_D2_energyvsieta = ibooker.book2D("METTask_HCAL_D2_energyvsieta", "", 83, -41, 42, 20101, -100, 2001);
137  hHCAL_D3_energyvsieta = ibooker.book2D("METTask_HCAL_D3_energyvsieta", "", 83, -41, 42, 20101, -100, 2001);
138  hHCAL_D4_energyvsieta = ibooker.book2D("METTask_HCAL_D4_energyvsieta", "", 83, -41, 42, 20101, -100, 2001);
139 
140  hHCAL_D1_Minenergyvsieta = ibooker.book2D("METTask_HCAL_D1_Minenergyvsieta", "", 83, -41, 42, 20101, -100, 2001);
141  hHCAL_D2_Minenergyvsieta = ibooker.book2D("METTask_HCAL_D2_Minenergyvsieta", "", 83, -41, 42, 20101, -100, 2001);
142  hHCAL_D3_Minenergyvsieta = ibooker.book2D("METTask_HCAL_D3_Minenergyvsieta", "", 83, -41, 42, 20101, -100, 2001);
143  hHCAL_D4_Minenergyvsieta = ibooker.book2D("METTask_HCAL_D4_Minenergyvsieta", "", 83, -41, 42, 20101, -100, 2001);
144 
145  hHCAL_D1_Maxenergyvsieta = ibooker.book2D("METTask_HCAL_D1_Maxenergyvsieta", "", 83, -41, 42, 20101, -100, 2001);
146  hHCAL_D2_Maxenergyvsieta = ibooker.book2D("METTask_HCAL_D2_Maxenergyvsieta", "", 83, -41, 42, 20101, -100, 2001);
147  hHCAL_D3_Maxenergyvsieta = ibooker.book2D("METTask_HCAL_D3_Maxenergyvsieta", "", 83, -41, 42, 20101, -100, 2001);
148  hHCAL_D4_Maxenergyvsieta = ibooker.book2D("METTask_HCAL_D4_Maxenergyvsieta", "", 83, -41, 42, 20101, -100, 2001);
149 
150  // Integrated over phi
151  hHCAL_D1_Occvsieta = ibooker.book2D("METTask_HCAL_D1_Occvsieta", "", 83, -41, 42, 73, 0, 73);
152  hHCAL_D2_Occvsieta = ibooker.book2D("METTask_HCAL_D2_Occvsieta", "", 83, -41, 42, 73, 0, 73);
153  hHCAL_D3_Occvsieta = ibooker.book2D("METTask_HCAL_D3_Occvsieta", "", 83, -41, 42, 73, 0, 73);
154  hHCAL_D4_Occvsieta = ibooker.book2D("METTask_HCAL_D4_Occvsieta", "", 83, -41, 42, 73, 0, 73);
155 
156  hHCAL_D1_SETvsieta = ibooker.book2D("METTask_HCAL_D1_SETvsieta", "", 83, -41, 42, 20001, 0, 2001);
157  hHCAL_D2_SETvsieta = ibooker.book2D("METTask_HCAL_D2_SETvsieta", "", 83, -41, 42, 20001, 0, 2001);
158  hHCAL_D3_SETvsieta = ibooker.book2D("METTask_HCAL_D3_SETvsieta", "", 83, -41, 42, 20001, 0, 2001);
159  hHCAL_D4_SETvsieta = ibooker.book2D("METTask_HCAL_D4_SETvsieta", "", 83, -41, 42, 20001, 0, 2001);
160 
161  hHCAL_D1_METvsieta = ibooker.book2D("METTask_HCAL_D1_METvsieta", "", 83, -41, 42, 20001, 0, 2001);
162  hHCAL_D2_METvsieta = ibooker.book2D("METTask_HCAL_D2_METvsieta", "", 83, -41, 42, 20001, 0, 2001);
163  hHCAL_D3_METvsieta = ibooker.book2D("METTask_HCAL_D3_METvsieta", "", 83, -41, 42, 20001, 0, 2001);
164  hHCAL_D4_METvsieta = ibooker.book2D("METTask_HCAL_D4_METvsieta", "", 83, -41, 42, 20001, 0, 2001);
165 
166  hHCAL_D1_METPhivsieta = ibooker.book2D("METTask_HCAL_D1_METPhivsieta", "", 83, -41, 42, 80, -4, 4);
167  hHCAL_D2_METPhivsieta = ibooker.book2D("METTask_HCAL_D2_METPhivsieta", "", 83, -41, 42, 80, -4, 4);
168  hHCAL_D3_METPhivsieta = ibooker.book2D("METTask_HCAL_D3_METPhivsieta", "", 83, -41, 42, 80, -4, 4);
169  hHCAL_D4_METPhivsieta = ibooker.book2D("METTask_HCAL_D4_METPhivsieta", "", 83, -41, 42, 80, -4, 4);
170 
171  hHCAL_D1_MExvsieta = ibooker.book2D("METTask_HCAL_D1_MExvsieta", "", 83, -41, 42, 10001, -500, 501);
172  hHCAL_D2_MExvsieta = ibooker.book2D("METTask_HCAL_D2_MExvsieta", "", 83, -41, 42, 10001, -500, 501);
173  hHCAL_D3_MExvsieta = ibooker.book2D("METTask_HCAL_D3_MExvsieta", "", 83, -41, 42, 10001, -500, 501);
174  hHCAL_D4_MExvsieta = ibooker.book2D("METTask_HCAL_D4_MExvsieta", "", 83, -41, 42, 10001, -500, 501);
175 
176  hHCAL_D1_MEyvsieta = ibooker.book2D("METTask_HCAL_D1_MEyvsieta", "", 83, -41, 42, 10001, -500, 501);
177  hHCAL_D2_MEyvsieta = ibooker.book2D("METTask_HCAL_D2_MEyvsieta", "", 83, -41, 42, 10001, -500, 501);
178  hHCAL_D3_MEyvsieta = ibooker.book2D("METTask_HCAL_D3_MEyvsieta", "", 83, -41, 42, 10001, -500, 501);
179  hHCAL_D4_MEyvsieta = ibooker.book2D("METTask_HCAL_D4_MEyvsieta", "", 83, -41, 42, 10001, -500, 501);
180  } else {
181  hHCAL_D1_energyvsieta = ibooker.book2D("METTask_HCAL_D1_energyvsieta", "", 83, -41, 42, 1000, -10, 1990);
182  hHCAL_D2_energyvsieta = ibooker.book2D("METTask_HCAL_D2_energyvsieta", "", 83, -41, 42, 1000, -10, 1990);
183  hHCAL_D3_energyvsieta = ibooker.book2D("METTask_HCAL_D3_energyvsieta", "", 83, -41, 42, 1000, -10, 1990);
184  hHCAL_D4_energyvsieta = ibooker.book2D("METTask_HCAL_D4_energyvsieta", "", 83, -41, 42, 1000, -10, 1990);
185 
186  hHCAL_D1_Minenergyvsieta = ibooker.book2D("METTask_HCAL_D1_Minenergyvsieta", "", 83, -41, 42, 1000, -10, 1990);
187  hHCAL_D2_Minenergyvsieta = ibooker.book2D("METTask_HCAL_D2_Minenergyvsieta", "", 83, -41, 42, 1000, -10, 1990);
188  hHCAL_D3_Minenergyvsieta = ibooker.book2D("METTask_HCAL_D3_Minenergyvsieta", "", 83, -41, 42, 1000, -10, 1990);
189  hHCAL_D4_Minenergyvsieta = ibooker.book2D("METTask_HCAL_D4_Minenergyvsieta", "", 83, -41, 42, 1000, -10, 1990);
190 
191  hHCAL_D1_Maxenergyvsieta = ibooker.book2D("METTask_HCAL_D1_Maxenergyvsieta", "", 83, -41, 42, 1000, -10, 1990);
192  hHCAL_D2_Maxenergyvsieta = ibooker.book2D("METTask_HCAL_D2_Maxenergyvsieta", "", 83, -41, 42, 1000, -10, 1990);
193  hHCAL_D3_Maxenergyvsieta = ibooker.book2D("METTask_HCAL_D3_Maxenergyvsieta", "", 83, -41, 42, 1000, -10, 1990);
194  hHCAL_D4_Maxenergyvsieta = ibooker.book2D("METTask_HCAL_D4_Maxenergyvsieta", "", 83, -41, 42, 1000, -10, 1990);
195 
196  // Integrated over phi
197  hHCAL_D1_Occvsieta = ibooker.book2D("METTask_HCAL_D1_Occvsieta", "", 83, -41, 42, 73, 0, 73);
198  hHCAL_D2_Occvsieta = ibooker.book2D("METTask_HCAL_D2_Occvsieta", "", 83, -41, 42, 73, 0, 73);
199  hHCAL_D3_Occvsieta = ibooker.book2D("METTask_HCAL_D3_Occvsieta", "", 83, -41, 42, 73, 0, 73);
200  hHCAL_D4_Occvsieta = ibooker.book2D("METTask_HCAL_D4_Occvsieta", "", 83, -41, 42, 73, 0, 73);
201 
202  hHCAL_D1_SETvsieta = ibooker.book2D("METTask_HCAL_D1_SETvsieta", "", 83, -41, 42, 1000, 0, 2000);
203  hHCAL_D2_SETvsieta = ibooker.book2D("METTask_HCAL_D2_SETvsieta", "", 83, -41, 42, 1000, 0, 2000);
204  hHCAL_D3_SETvsieta = ibooker.book2D("METTask_HCAL_D3_SETvsieta", "", 83, -41, 42, 1000, 0, 2000);
205  hHCAL_D4_SETvsieta = ibooker.book2D("METTask_HCAL_D4_SETvsieta", "", 83, -41, 42, 1000, 0, 2000);
206 
207  hHCAL_D1_METvsieta = ibooker.book2D("METTask_HCAL_D1_METvsieta", "", 83, -41, 42, 1000, 0, 2000);
208  hHCAL_D2_METvsieta = ibooker.book2D("METTask_HCAL_D2_METvsieta", "", 83, -41, 42, 1000, 0, 2000);
209  hHCAL_D3_METvsieta = ibooker.book2D("METTask_HCAL_D3_METvsieta", "", 83, -41, 42, 1000, 0, 2000);
210  hHCAL_D4_METvsieta = ibooker.book2D("METTask_HCAL_D4_METvsieta", "", 83, -41, 42, 1000, 0, 2000);
211 
212  hHCAL_D1_METPhivsieta = ibooker.book2D("METTask_HCAL_D1_METPhivsieta", "", 83, -41, 42, 80, -4, 4);
213  hHCAL_D2_METPhivsieta = ibooker.book2D("METTask_HCAL_D2_METPhivsieta", "", 83, -41, 42, 80, -4, 4);
214  hHCAL_D3_METPhivsieta = ibooker.book2D("METTask_HCAL_D3_METPhivsieta", "", 83, -41, 42, 80, -4, 4);
215  hHCAL_D4_METPhivsieta = ibooker.book2D("METTask_HCAL_D4_METPhivsieta", "", 83, -41, 42, 80, -4, 4);
216 
217  hHCAL_D1_MExvsieta = ibooker.book2D("METTask_HCAL_D1_MExvsieta", "", 83, -41, 42, 500, -500, 500);
218  hHCAL_D2_MExvsieta = ibooker.book2D("METTask_HCAL_D2_MExvsieta", "", 83, -41, 42, 500, -500, 500);
219  hHCAL_D3_MExvsieta = ibooker.book2D("METTask_HCAL_D3_MExvsieta", "", 83, -41, 42, 500, -500, 500);
220  hHCAL_D4_MExvsieta = ibooker.book2D("METTask_HCAL_D4_MExvsieta", "", 83, -41, 42, 500, -500, 500);
221 
222  hHCAL_D1_MEyvsieta = ibooker.book2D("METTask_HCAL_D1_MEyvsieta", "", 83, -41, 42, 500, -500, 500);
223  hHCAL_D2_MEyvsieta = ibooker.book2D("METTask_HCAL_D2_MEyvsieta", "", 83, -41, 42, 500, -500, 500);
224  hHCAL_D3_MEyvsieta = ibooker.book2D("METTask_HCAL_D3_MEyvsieta", "", 83, -41, 42, 500, -500, 500);
225  hHCAL_D4_MEyvsieta = ibooker.book2D("METTask_HCAL_D4_MEyvsieta", "", 83, -41, 42, 500, -500, 500);
226  }
227  // Inspect Setup for CaloTower Geometry
228  // FillGeometry(iSetup);
229 }
230 
232  // ==========================================================
233  // Retrieve!
234  // ==========================================================
235 
236  const auto& pG = iSetup.getHandle(caloGeomToken_);
237 
238  if (!pG.isValid()) {
239  edm::LogInfo("OutputInfo") << "Failed to retrieve an Event Setup Handle, Aborting Task "
240  << "HCALRecHitAnalyzer::FillGeometry!\n";
241  return;
242  }
243 
244  const CaloGeometry cG = *pG;
245 
246  const HcalGeometry* HBgeom = dynamic_cast<const HcalGeometry*>(cG.getSubdetectorGeometry(DetId::Hcal, HcalBarrel));
247  const HcalGeometry* HEgeom = dynamic_cast<const HcalGeometry*>(cG.getSubdetectorGeometry(DetId::Hcal, HcalEndcap));
250 
251  // ==========================================================
252  // Fill Histograms!
253  // ==========================================================
254 
255  std::vector<DetId>::iterator i;
256 
257  int HBmin_ieta = 99, HBmax_ieta = -99;
258  int HBmin_iphi = 99, HBmax_iphi = -99;
259 
260  // Loop Over all Hcal Barrel DetId's
261  int nHBdetid = 0;
262  std::vector<DetId> HBids = HBgeom->getValidDetIds(DetId::Hcal, HcalBarrel);
263 
264  for (i = HBids.begin(); i != HBids.end(); i++) {
265  nHBdetid++;
266 
267  HcalDetId HcalID(*i);
268 
269  int Calo_ieta = 42 + HcalID.ieta();
270  int Calo_iphi = HcalID.iphi();
271  double Calo_eta = HBgeom->getPosition(HcalID).eta();
272  double Calo_phi = HBgeom->getPosition(HcalID).phi();
273 
274  if (hHCAL_ieta_iphi_etaMap->getBinContent(Calo_ieta, Calo_iphi) == -999) {
275  hHCAL_ieta_iphi_etaMap->setBinContent(Calo_ieta, Calo_iphi, Calo_eta);
276  hHCAL_ieta_iphi_phiMap->setBinContent(Calo_ieta, Calo_iphi, Calo_phi * 180.0 / M_PI);
277  }
278 
279  if (Calo_ieta > HBmax_ieta)
280  HBmax_ieta = Calo_ieta;
281  if (Calo_ieta < HBmin_ieta)
282  HBmin_ieta = Calo_ieta;
283  if (Calo_iphi > HBmax_iphi)
284  HBmax_iphi = Calo_iphi;
285  if (Calo_iphi > HBmax_iphi)
286  HBmin_iphi = Calo_iphi;
287  }
288 
289  int HEmin_ieta = 99, HEmax_ieta = -99;
290  int HEmin_iphi = 99, HEmax_iphi = -99;
291 
292  // Loop Over all Hcal Endcap DetId's
293  int nHEdetid = 0;
294  std::vector<DetId> HEids = HEgeom->getValidDetIds(DetId::Hcal, HcalEndcap);
295 
296  for (i = HEids.begin(); i != HEids.end(); i++) {
297  nHEdetid++;
298 
299  HcalDetId HcalID(*i);
300 
301  int Calo_ieta = 42 + HcalID.ieta();
302  int Calo_iphi = HcalID.iphi();
303  double Calo_eta = HEgeom->getPosition(HcalID).eta();
304  double Calo_phi = HEgeom->getPosition(HcalID).phi();
305 
306  // HCAL to HE eta, phi map comparison
307  if (hHCAL_ieta_iphi_etaMap->getBinContent(Calo_ieta, Calo_iphi) == -999) {
308  hHCAL_ieta_iphi_etaMap->setBinContent(Calo_ieta, Calo_iphi, Calo_eta);
309  hHCAL_ieta_iphi_phiMap->setBinContent(Calo_ieta, Calo_iphi, Calo_phi * 180.0 / M_PI);
310  }
311 
312  if (Calo_ieta > HEmax_ieta)
313  HEmax_ieta = Calo_ieta;
314  if (Calo_ieta < HEmin_ieta)
315  HEmin_ieta = Calo_ieta;
316  if (Calo_iphi > HEmax_iphi)
317  HEmax_iphi = Calo_iphi;
318  if (Calo_iphi > HEmax_iphi)
319  HEmin_iphi = Calo_iphi;
320  }
321 
322  int HFmin_ieta = 99, HFmax_ieta = -99;
323  int HFmin_iphi = 99, HFmax_iphi = -99;
324 
325  // Loop Over all Hcal Forward DetId's
326  int nHFdetid = 0;
327  std::vector<DetId> HFids = HFgeom->getValidDetIds(DetId::Hcal, HcalForward);
328 
329  for (i = HFids.begin(); i != HFids.end(); i++) {
330  nHFdetid++;
331 
332  auto cell = HFgeom->getGeometry(*i);
333  HcalDetId HcalID(i->rawId());
334  //GlobalPoint p = cell->getPosition();
335 
336  int Calo_ieta = 42 + HcalID.ieta();
337  int Calo_iphi = HcalID.iphi();
338  double Calo_eta = cell->getPosition().eta();
339  double Calo_phi = cell->getPosition().phi();
340 
341  // HCAL to HF eta, phi map comparison
342  if (hHCAL_ieta_iphi_etaMap->getBinContent(Calo_ieta, Calo_iphi) == -999) {
343  hHCAL_ieta_iphi_etaMap->setBinContent(Calo_ieta, Calo_iphi, Calo_eta);
344  hHCAL_ieta_iphi_phiMap->setBinContent(Calo_ieta, Calo_iphi, Calo_phi * 180.0 / M_PI);
345  }
346 
347  if (Calo_ieta > HFmax_ieta)
348  HFmax_ieta = Calo_ieta;
349  if (Calo_ieta < HFmin_ieta)
350  HFmin_ieta = Calo_ieta;
351  if (Calo_iphi > HFmax_iphi)
352  HFmax_iphi = Calo_iphi;
353  if (Calo_iphi > HFmax_iphi)
354  HFmin_iphi = Calo_iphi;
355  }
356 
357  int HOmin_ieta = 99, HOmax_ieta = -99;
358  int HOmin_iphi = 99, HOmax_iphi = -99;
359 
360  // Loop Over all Hcal Outer DetId's
361  int nHOdetid = 0;
362  std::vector<DetId> HOids = HOgeom->getValidDetIds(DetId::Hcal, HcalOuter);
363 
364  for (i = HOids.begin(); i != HOids.end(); i++) {
365  nHOdetid++;
366 
367  auto cell = HOgeom->getGeometry(*i);
368  HcalDetId HcalID(i->rawId());
369  //GlobalPoint p = cell->getPosition();
370 
371  int Calo_ieta = 42 + HcalID.ieta();
372  int Calo_iphi = HcalID.iphi();
373  double Calo_eta = cell->getPosition().eta();
374  double Calo_phi = cell->getPosition().phi();
375 
376  // HCAL to HO eta, phi map comparison
377  if (hHCAL_ieta_iphi_etaMap->getBinContent(Calo_ieta, Calo_iphi) == -999) {
378  hHCAL_ieta_iphi_etaMap->setBinContent(Calo_ieta, Calo_iphi, Calo_eta);
379  hHCAL_ieta_iphi_phiMap->setBinContent(Calo_ieta, Calo_iphi, Calo_phi * 180.0 / M_PI);
380  }
381 
382  if (Calo_ieta > HOmax_ieta)
383  HOmax_ieta = Calo_ieta;
384  if (Calo_ieta < HOmin_ieta)
385  HOmin_ieta = Calo_ieta;
386  if (Calo_iphi > HOmax_iphi)
387  HOmax_iphi = Calo_iphi;
388  if (Calo_iphi > HOmax_iphi)
389  HOmin_iphi = Calo_iphi;
390  }
391 
392  // Set the Cell Size for each (ieta, iphi) Bin
393  double currentLowEdge_eta = 0; //double currentHighEdge_eta = 0;
394  for (int ieta = 1; ieta < 42; ieta++) {
395  int ieta_ = 42 + ieta;
396  double eta = hHCAL_ieta_iphi_etaMap->getBinContent(ieta_, 3);
397  double phi = hHCAL_ieta_iphi_phiMap->getBinContent(ieta_, 3);
398  double deta = 2.0 * (eta - currentLowEdge_eta);
399  deta = ((float)((int)(1.0E3 * deta + 0.5))) / 1.0E3;
400  double dphi = 2.0 * phi;
401  if (ieta == 40 || ieta == 41)
402  dphi = 20;
403  if (ieta <= 39 && ieta >= 21)
404  dphi = 10;
405  if (ieta <= 20)
406  dphi = 5;
407  // BS: This is WRONG...need to correct overlap
408  if (ieta == 28)
409  deta = 0.218;
410  if (ieta == 29)
411  deta = 0.096;
412  currentLowEdge_eta += deta;
413 
414  // BS: This is WRONG...need to correct overlap
415  if (ieta == 29)
416  currentLowEdge_eta = 2.964;
417 
418  hHCAL_ieta_detaMap->setBinContent(ieta_, deta); // positive rings
419  hHCAL_ieta_dphiMap->setBinContent(ieta_, dphi); // positive rings
420  hHCAL_ieta_detaMap->setBinContent(42 - ieta, deta); // negative rings
421  hHCAL_ieta_dphiMap->setBinContent(42 - ieta, dphi); // negative rings
422 
423  } // end loop over ieta
424 
425  edm::LogInfo("OutputInfo") << "HB ieta range: " << HBmin_ieta << " " << HBmax_ieta;
426  edm::LogInfo("OutputInfo") << "HB iphi range: " << HBmin_iphi << " " << HBmax_iphi;
427  edm::LogInfo("OutputInfo") << "HE ieta range: " << HEmin_ieta << " " << HEmax_ieta;
428  edm::LogInfo("OutputInfo") << "HE iphi range: " << HEmin_iphi << " " << HEmax_iphi;
429  edm::LogInfo("OutputInfo") << "HF ieta range: " << HFmin_ieta << " " << HFmax_ieta;
430  edm::LogInfo("OutputInfo") << "HF iphi range: " << HFmin_iphi << " " << HFmax_iphi;
431  edm::LogInfo("OutputInfo") << "HO ieta range: " << HOmin_ieta << " " << HOmax_ieta;
432  edm::LogInfo("OutputInfo") << "HO iphi range: " << HOmin_iphi << " " << HOmax_iphi;
433 }
434 
436  Nevents++;
437  hHCAL_Nevents->Fill(0);
438  // ==========================================================
439  // Retrieve!
440  // ==========================================================
441 
443  const HORecHitCollection* HORecHits;
445 
446  edm::Handle<HBHERecHitCollection> HBHERecHitsHandle;
447  iEvent.getByToken(hBHERecHitsLabel_, HBHERecHitsHandle);
448  if (!HBHERecHitsHandle.isValid()) {
449  edm::LogInfo("OutputInfo") << "Failed to retrieve an Event Handle, Aborting Task "
450  << "HCALRecHitAnalyzer::analyze!\n";
451  return;
452  } else {
453  HBHERecHits = HBHERecHitsHandle.product();
454  }
455  edm::Handle<HORecHitCollection> HORecHitsHandle;
456  iEvent.getByToken(hORecHitsLabel_, HORecHitsHandle);
457  if (!HORecHitsHandle.isValid()) {
458  edm::LogInfo("OutputInfo") << "Failed to retrieve an Event Handle, Aborting Task "
459  << "HCALRecHitAnalyzer::analyze!\n";
460  return;
461  } else {
462  HORecHits = HORecHitsHandle.product();
463  }
464  edm::Handle<HFRecHitCollection> HFRecHitsHandle;
465  iEvent.getByToken(hFRecHitsLabel_, HFRecHitsHandle);
466  if (!HFRecHitsHandle.isValid()) {
467  edm::LogInfo("OutputInfo") << "Failed to retrieve an Event Handle, Aborting Task "
468  << "HCALRecHitAnalyzer::analyze!\n";
469  return;
470  } else {
471  HFRecHits = HFRecHitsHandle.product();
472  }
473 
474  // ==========================================================
475  // Fill Histograms!
476  // ==========================================================
477 
478  TLorentzVector vHBHEMET_EtaRing[83][4];
479  int HBHEActiveRing[83][4];
480  int HBHENActiveCells[83][4];
481  double HBHESET_EtaRing[83][4];
482  double HBHEMinEnergy_EtaRing[83][4];
483  double HBHEMaxEnergy_EtaRing[83][4];
484 
485  for (int i = 0; i < 83; i++) {
486  for (int j = 0; j < 4; j++) {
487  HBHEActiveRing[i][j] = 0;
488  HBHENActiveCells[i][j] = 0;
489  HBHESET_EtaRing[i][j] = 0;
490  HBHEMinEnergy_EtaRing[i][j] = 14E3;
491  HBHEMaxEnergy_EtaRing[i][j] = -999;
492  }
493  }
494 
495  // Loop over HBHERecHit's
497  int nHBrechit = 0, nHErechit = 0;
498 
499  for (hbherechit = HBHERecHits->begin(); hbherechit != HBHERecHits->end(); hbherechit++) {
500  HcalDetId det = hbherechit->id();
501  double Energy = hbherechit->energy();
502  Int_t depth = det.depth();
503  Int_t ieta = det.ieta();
504  Int_t iphi = det.iphi();
505  int EtaRing = 41 + ieta; // this counts from 0
506  double eta = hHCAL_ieta_iphi_etaMap->getBinContent(EtaRing + 1, iphi);
507  double phi = hHCAL_ieta_iphi_phiMap->getBinContent(EtaRing + 1, iphi);
508  double theta = 2 * TMath::ATan(exp(-1 * eta));
509  double ET = Energy * TMath::Sin(theta);
510  HcalSubdetector HcalNum = det.subdet();
511  TLorentzVector v_;
512 
513  if (Energy > 0) // zero suppress
514  {
515  HBHEActiveRing[EtaRing][depth - 1] = 1;
516  HBHENActiveCells[EtaRing][depth - 1]++;
517  HBHESET_EtaRing[EtaRing][depth - 1] += ET;
518  v_.SetPtEtaPhiE(ET, 0, phi, ET);
519  vHBHEMET_EtaRing[EtaRing][depth - 1] -= v_;
520 
521  DEBUG(EtaRing << " " << Energy << " " << ET << " " << theta << " " << eta << " " << phi << " : "
522  << vHBHEMET_EtaRing[EtaRing][depth - 1].Phi() << " " << vHBHEMET_EtaRing[EtaRing][depth - 1].Pt());
523 
524  switch (depth) {
525  case 1:
527  break;
528  case 2:
530  break;
531  case 3:
533  break;
534  } // end switch
535  }
536 
537  if (Energy > HBHEMaxEnergy_EtaRing[EtaRing][depth - 1])
538  HBHEMaxEnergy_EtaRing[EtaRing][depth - 1] = Energy;
539  if (Energy < HBHEMinEnergy_EtaRing[EtaRing][depth - 1])
540  HBHEMinEnergy_EtaRing[EtaRing][depth - 1] = Energy;
541 
542  switch (depth) {
543  case 1:
548  if (Energy < hHCAL_D1_Minenergy_ieta_iphi->getBinContent(EtaRing + 1, iphi))
550 
551  break;
552  case 2:
554 
558  if (Energy < hHCAL_D2_Minenergy_ieta_iphi->getBinContent(EtaRing + 1, iphi))
560  break;
561  case 3:
563 
567  if (Energy < hHCAL_D3_Minenergy_ieta_iphi->getBinContent(EtaRing + 1, iphi))
569  break;
570  } // end switch
571 
572  if (HcalNum == HcalBarrel) {
573  nHBrechit++;
574  } else { // HcalEndcap
575  nHErechit++;
576  }
577  } // end loop over HBHERecHit's
578 
579  // Fill eta-ring MET quantities
580  for (int iEtaRing = 0; iEtaRing < 83; iEtaRing++) {
581  for (int jDepth = 0; jDepth < 3; jDepth++) {
582  switch (jDepth + 1) {
583  case 1:
584  hHCAL_D1_Maxenergyvsieta->Fill(iEtaRing - 41, HBHEMaxEnergy_EtaRing[iEtaRing][jDepth]);
585  hHCAL_D1_Minenergyvsieta->Fill(iEtaRing - 41, HBHEMinEnergy_EtaRing[iEtaRing][jDepth]);
586  break;
587  case 2:
588  hHCAL_D2_Maxenergyvsieta->Fill(iEtaRing - 41, HBHEMaxEnergy_EtaRing[iEtaRing][jDepth]);
589  hHCAL_D2_Minenergyvsieta->Fill(iEtaRing - 41, HBHEMinEnergy_EtaRing[iEtaRing][jDepth]);
590  break;
591  case 3:
592  hHCAL_D3_Maxenergyvsieta->Fill(iEtaRing - 41, HBHEMaxEnergy_EtaRing[iEtaRing][jDepth]);
593  hHCAL_D3_Minenergyvsieta->Fill(iEtaRing - 41, HBHEMinEnergy_EtaRing[iEtaRing][jDepth]);
594  break;
595  }
596 
597  if (HBHEActiveRing[iEtaRing][jDepth]) {
598  switch (jDepth + 1) {
599  case 1:
600  hHCAL_D1_METPhivsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Phi());
601  hHCAL_D1_MExvsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Px());
602  hHCAL_D1_MEyvsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Py());
603  hHCAL_D1_METvsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Pt());
604  hHCAL_D1_SETvsieta->Fill(iEtaRing - 41, HBHESET_EtaRing[iEtaRing][jDepth]);
605  hHCAL_D1_Occvsieta->Fill(iEtaRing - 41, HBHENActiveCells[iEtaRing][jDepth]);
606  break;
607  case 2:
608  hHCAL_D2_METPhivsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Phi());
609  hHCAL_D2_MExvsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Px());
610  hHCAL_D2_MEyvsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Py());
611  hHCAL_D2_METvsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Pt());
612  hHCAL_D2_SETvsieta->Fill(iEtaRing - 41, HBHESET_EtaRing[iEtaRing][jDepth]);
613  hHCAL_D2_Occvsieta->Fill(iEtaRing - 41, HBHENActiveCells[iEtaRing][jDepth]);
614  break;
615  case 3:
616  hHCAL_D3_METPhivsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Phi());
617  hHCAL_D3_MExvsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Px());
618  hHCAL_D3_MEyvsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Py());
619  hHCAL_D3_METvsieta->Fill(iEtaRing - 41, vHBHEMET_EtaRing[iEtaRing][jDepth].Pt());
620  hHCAL_D3_SETvsieta->Fill(iEtaRing - 41, HBHESET_EtaRing[iEtaRing][jDepth]);
621  hHCAL_D3_Occvsieta->Fill(iEtaRing - 41, HBHENActiveCells[iEtaRing][jDepth]);
622  break;
623  } //switch
624  } //activering
625  } //depth
626  } //etaring
627 
628  //-------------------------------------------------HO
629  TLorentzVector vHOMET_EtaRing[83];
630  int HOActiveRing[83];
631  int HONActiveCells[83];
632  double HOSET_EtaRing[83];
633  double HOMinEnergy_EtaRing[83];
634  double HOMaxEnergy_EtaRing[83];
635 
636  for (int i = 0; i < 83; i++) {
637  HOActiveRing[i] = 0;
638  HONActiveCells[i] = 0;
639  HOSET_EtaRing[i] = 0;
640  HOMinEnergy_EtaRing[i] = 14E3;
641  HOMaxEnergy_EtaRing[i] = -999;
642  }
643 
644  // Loop over HORecHit's
646  int nHOrechit = 0;
647 
648  for (horechit = HORecHits->begin(); horechit != HORecHits->end(); horechit++) {
649  nHOrechit++;
650 
651  HcalDetId det = horechit->id();
652  double Energy = horechit->energy();
654  Int_t ieta = det.ieta();
655  Int_t iphi = det.iphi();
656  int EtaRing = 41 + ieta; // this counts from 0
657  double eta = hHCAL_ieta_iphi_etaMap->getBinContent(EtaRing + 1, iphi);
658  double phi = hHCAL_ieta_iphi_phiMap->getBinContent(EtaRing + 1, iphi);
659  double theta = 2 * TMath::ATan(exp(-1 * eta));
660  double ET = Energy * TMath::Sin(theta);
661  TLorentzVector v_;
662 
663  if (Energy > 0) // zero suppress
664  {
665  HOActiveRing[EtaRing] = 1;
666  HONActiveCells[EtaRing]++;
667  HOSET_EtaRing[EtaRing] += ET;
668  v_.SetPtEtaPhiE(ET, 0, phi, ET);
669  vHOMET_EtaRing[EtaRing] -= v_;
670 
672  }
673 
674  if (Energy > HOMaxEnergy_EtaRing[EtaRing])
675  HOMaxEnergy_EtaRing[EtaRing] = Energy;
676  if (Energy < HOMinEnergy_EtaRing[EtaRing])
677  HOMinEnergy_EtaRing[EtaRing] = Energy;
678 
680 
684  if (Energy < hHCAL_D4_Minenergy_ieta_iphi->getBinContent(EtaRing + 1, iphi))
686 
687  } // end loop over HORecHit's
688 
689  // Fill eta-ring MET quantities
690  for (int iEtaRing = 0; iEtaRing < 83; iEtaRing++) {
691  hHCAL_D4_Maxenergyvsieta->Fill(iEtaRing - 41, HOMaxEnergy_EtaRing[iEtaRing]);
692  hHCAL_D4_Minenergyvsieta->Fill(iEtaRing - 41, HOMinEnergy_EtaRing[iEtaRing]);
693 
694  if (HOActiveRing[iEtaRing]) {
695  hHCAL_D4_METPhivsieta->Fill(iEtaRing - 41, vHOMET_EtaRing[iEtaRing].Phi());
696  hHCAL_D4_MExvsieta->Fill(iEtaRing - 41, vHOMET_EtaRing[iEtaRing].Px());
697  hHCAL_D4_MEyvsieta->Fill(iEtaRing - 41, vHOMET_EtaRing[iEtaRing].Py());
698  hHCAL_D4_METvsieta->Fill(iEtaRing - 41, vHOMET_EtaRing[iEtaRing].Pt());
699  hHCAL_D4_SETvsieta->Fill(iEtaRing - 41, HOSET_EtaRing[iEtaRing]);
700  hHCAL_D4_Occvsieta->Fill(iEtaRing - 41, HONActiveCells[iEtaRing]);
701  }
702  }
703 
704  //------------------------------------------------HF
705 
706  TLorentzVector vHFMET_EtaRing[83][2];
707  int HFActiveRing[83][2];
708  int HFNActiveCells[83][2];
709  double HFSET_EtaRing[83][2];
710  double HFMinEnergy_EtaRing[83][2];
711  double HFMaxEnergy_EtaRing[83][2];
712 
713  for (int i = 0; i < 83; i++) {
714  for (int j = 0; j < 2; j++) {
715  HFActiveRing[i][j] = 0;
716  HFNActiveCells[i][j] = 0;
717  HFSET_EtaRing[i][j] = 0;
718  HFMinEnergy_EtaRing[i][j] = 14E3;
719  HFMaxEnergy_EtaRing[i][j] = -999;
720  }
721  }
722 
723  // Loop over HFRecHit's
725  int nHFrechit = 0;
726 
727  for (hfrechit = HFRecHits->begin(); hfrechit != HFRecHits->end(); hfrechit++) {
728  nHFrechit++;
729 
730  HcalDetId det = hfrechit->id();
731  double Energy = hfrechit->energy();
732  Int_t depth = det.depth();
733  Int_t ieta = det.ieta();
734  Int_t iphi = det.iphi();
735  int EtaRing = 41 + ieta; // this counts from 0
736  double eta = hHCAL_ieta_iphi_etaMap->getBinContent(EtaRing + 1, iphi);
737  double phi = hHCAL_ieta_iphi_phiMap->getBinContent(EtaRing + 1, iphi);
738  double theta = 2 * TMath::ATan(exp(-1 * eta));
739  double ET = Energy * TMath::Sin(theta);
740 
741  TLorentzVector v_;
742  if (Energy > 0) // zero suppress
743  {
744  HFActiveRing[EtaRing][depth - 1] = 1;
745  HFNActiveCells[EtaRing][depth - 1]++;
746  HFSET_EtaRing[EtaRing][depth - 1] += ET;
747  v_.SetPtEtaPhiE(ET, 0, phi, ET);
748  vHFMET_EtaRing[EtaRing][depth - 1] -= v_;
749 
750  switch (depth) {
751  case 1:
753  break;
754  case 2:
756  break;
757  }
758  }
759 
760  if (Energy > HFMaxEnergy_EtaRing[EtaRing][depth - 1])
761  HFMaxEnergy_EtaRing[EtaRing][depth - 1] = Energy;
762  if (Energy < HFMinEnergy_EtaRing[EtaRing][depth - 1])
763  HFMinEnergy_EtaRing[EtaRing][depth - 1] = Energy;
764 
765  switch (depth) {
766  case 1:
768 
772  if (Energy < hHCAL_D1_Minenergy_ieta_iphi->getBinContent(EtaRing + 1, iphi))
774  break;
775  case 2:
777 
781  if (Energy < hHCAL_D2_Minenergy_ieta_iphi->getBinContent(EtaRing + 1, iphi))
783  break;
784  }
785 
786  } // end loop over HFRecHit's
787 
788  // Fill eta-ring MET quantities
789  for (int iEtaRing = 0; iEtaRing < 83; iEtaRing++) {
790  for (int jDepth = 0; jDepth < 2; jDepth++) {
791  switch (jDepth + 1) {
792  case 1:
793  hHCAL_D1_Maxenergyvsieta->Fill(iEtaRing - 41, HFMaxEnergy_EtaRing[iEtaRing][jDepth]);
794  hHCAL_D1_Minenergyvsieta->Fill(iEtaRing - 41, HFMinEnergy_EtaRing[iEtaRing][jDepth]);
795  break;
796  case 2:
797  hHCAL_D2_Maxenergyvsieta->Fill(iEtaRing - 41, HFMaxEnergy_EtaRing[iEtaRing][jDepth]);
798  hHCAL_D2_Minenergyvsieta->Fill(iEtaRing - 41, HFMinEnergy_EtaRing[iEtaRing][jDepth]);
799  break;
800  }
801 
802  if (HFActiveRing[iEtaRing][jDepth]) {
803  switch (jDepth + 1) {
804  case 1:
805 
806  hHCAL_D1_METPhivsieta->Fill(iEtaRing - 41, vHFMET_EtaRing[iEtaRing][jDepth].Phi());
807  hHCAL_D1_MExvsieta->Fill(iEtaRing - 41, vHFMET_EtaRing[iEtaRing][jDepth].Px());
808  hHCAL_D1_MEyvsieta->Fill(iEtaRing - 41, vHFMET_EtaRing[iEtaRing][jDepth].Py());
809  hHCAL_D1_METvsieta->Fill(iEtaRing - 41, vHFMET_EtaRing[iEtaRing][jDepth].Pt());
810  hHCAL_D1_SETvsieta->Fill(iEtaRing - 41, HFSET_EtaRing[iEtaRing][jDepth]);
811  hHCAL_D1_Occvsieta->Fill(iEtaRing - 41, HFNActiveCells[iEtaRing][jDepth]);
812  break;
813 
814  case 2:
815 
816  hHCAL_D2_METPhivsieta->Fill(iEtaRing - 41, vHFMET_EtaRing[iEtaRing][jDepth].Phi());
817  hHCAL_D2_MExvsieta->Fill(iEtaRing - 41, vHFMET_EtaRing[iEtaRing][jDepth].Px());
818  hHCAL_D2_MEyvsieta->Fill(iEtaRing - 41, vHFMET_EtaRing[iEtaRing][jDepth].Py());
819  hHCAL_D2_METvsieta->Fill(iEtaRing - 41, vHFMET_EtaRing[iEtaRing][jDepth].Pt());
820  hHCAL_D2_SETvsieta->Fill(iEtaRing - 41, HFSET_EtaRing[iEtaRing][jDepth]);
821  hHCAL_D2_Occvsieta->Fill(iEtaRing - 41, HFNActiveCells[iEtaRing][jDepth]);
822  break;
823  }
824  }
825  }
826  }
827 }
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
MonitorElement * hHCAL_D4_Maxenergy_ieta_iphi
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MonitorElement * hHCAL_ieta_iphi_HFMap
MonitorElement * hHCAL_D3_Maxenergy_ieta_iphi
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
MonitorElement * hHCAL_D3_Maxenergyvsieta
const std::vector< DetId > & getValidDetIds(DetId::Detector det=DetId::Detector(0), int subdet=0) const override
Get a list of valid detector ids (for the given subdetector)
Definition: HcalGeometry.cc:76
MonitorElement * hHCAL_ieta_iphi_phiMap
MonitorElement * hHCAL_D1_SETvsieta
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * hHCAL_D3_Occvsieta
HCALRecHitAnalyzer(const edm::ParameterSet &)
MonitorElement * hHCAL_D2_Minenergy_ieta_iphi
MonitorElement * hHCAL_D4_METvsieta
MonitorElement * hHCAL_D4_energyvsieta
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
MonitorElement * hHCAL_D4_Maxenergyvsieta
T eta() const
Definition: PV3DBase.h:73
T const * product() const
Definition: Handle.h:70
MonitorElement * hHCAL_D1_Minenergy_ieta_iphi
std::vector< T >::const_iterator const_iterator
MonitorElement * hHCAL_D4_Occvsieta
void FillGeometry(const edm::EventSetup &)
MonitorElement * hHCAL_D3_Minenergyvsieta
MonitorElement * hHCAL_D3_Occ_ieta_iphi
MonitorElement * hHCAL_D4_Occ_ieta_iphi
MonitorElement * hHCAL_D2_Minenergyvsieta
MonitorElement * hHCAL_ieta_iphi_etaMap
MonitorElement * hHCAL_D4_MEyvsieta
MonitorElement * hHCAL_D4_SETvsieta
MonitorElement * hHCAL_ieta_iphi_HBMap
MonitorElement * hHCAL_D3_METvsieta
MonitorElement * hHCAL_ieta_iphi_HOMap
MonitorElement * hHCAL_D3_MExvsieta
MonitorElement * hHCAL_D1_Maxenergy_ieta_iphi
T getUntrackedParameter(std::string const &, T const &) const
void Fill(long long x)
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
MonitorElement * hHCAL_D1_Occ_ieta_iphi
MonitorElement * hHCAL_D4_METPhivsieta
MonitorElement * hHCAL_D4_Minenergyvsieta
int iEvent
Definition: GenABIO.cc:224
MonitorElement * hHCAL_D2_METvsieta
MonitorElement * hHCAL_D1_Occvsieta
MonitorElement * hHCAL_D1_Minenergyvsieta
MonitorElement * hHCAL_D1_METPhivsieta
MonitorElement * hHCAL_D1_METvsieta
MonitorElement * hHCAL_D1_Maxenergyvsieta
void analyze(const edm::Event &, const edm::EventSetup &) override
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
MonitorElement * hHCAL_D3_energyvsieta
MonitorElement * hHCAL_D2_Maxenergyvsieta
MonitorElement * hHCAL_D2_energyvsieta
HcalSubdetector
Definition: HcalAssistant.h:31
edm::EDGetTokenT< HFRecHitCollection > hFRecHitsLabel_
virtual const std::vector< DetId > & getValidDetIds(DetId::Detector det=DetId::Detector(0), int subdet=0) const
Get a list of valid detector ids (for the given subdetector)
MonitorElement * hHCAL_D2_METPhivsieta
const_iterator begin() const
MonitorElement * hHCAL_D2_Occvsieta
MonitorElement * hHCAL_D2_Maxenergy_ieta_iphi
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:151
MonitorElement * hHCAL_D3_METPhivsieta
MonitorElement * hHCAL_D1_energyvsieta
MonitorElement * hHCAL_ieta_detaMap
MonitorElement * hHCAL_D2_energy_ieta_iphi
virtual std::shared_ptr< const CaloCellGeometry > getGeometry(const DetId &id) const
Get the cell geometry of a given detector id. Should return false if not found.
#define M_PI
const_iterator end() const
Log< level::Info, false > LogInfo
MonitorElement * hHCAL_D1_energy_ieta_iphi
MonitorElement * hHCAL_D4_Minenergy_ieta_iphi
MonitorElement * hHCAL_D3_SETvsieta
edm::EDGetTokenT< HORecHitCollection > hORecHitsLabel_
MonitorElement * hHCAL_D1_MExvsieta
MonitorElement * hHCAL_D4_MExvsieta
MonitorElement * hHCAL_D2_MEyvsieta
#define DEBUG(X)
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:212
MonitorElement * hHCAL_D1_MEyvsieta
edm::EDGetTokenT< HBHERecHitCollection > hBHERecHitsLabel_
bool isValid() const
Definition: HandleBase.h:70
MonitorElement * hHCAL_D4_energy_ieta_iphi
MonitorElement * hHCAL_D3_energy_ieta_iphi
GlobalPoint getPosition(const DetId &id) const
MonitorElement * hHCAL_D2_Occ_ieta_iphi
MonitorElement * hHCAL_Nevents
MonitorElement * hHCAL_D3_Minenergy_ieta_iphi
MonitorElement * hHCAL_D2_SETvsieta
#define ET
MonitorElement * hHCAL_D2_MExvsieta
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
Geom::Theta< T > theta() const
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
MonitorElement * hHCAL_D3_MEyvsieta
MonitorElement * hHCAL_ieta_iphi_HEMap
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: Run.h:45
MonitorElement * hHCAL_ieta_dphiMap
virtual double getBinContent(int binx) const
get content of bin (1-D)
constexpr int depth() const
get the tower depth
Definition: HcalDetId.h:164