CMS 3D CMS Logo

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