CMS 3D CMS Logo

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

#include <HcalRecHitsValidation.h>

Inheritance diagram for HcalRecHitsValidation:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void analyze (edm::Event const &ev, edm::EventSetup const &c) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 HcalRecHitsValidation (edm::ParameterSet const &conf)
 
 ~HcalRecHitsValidation () override=default
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Member Functions

double dPhiWsign (double phi1, double phi2)
 
double dR (double eta1, double phi1, double eta2, double phi2)
 
virtual void fillRecHitsTmp (int subdet_, edm::Event const &ev)
 
double phi12 (double phi1, double en1, double phi2, double en2)
 

Private Attributes

std::vector< uint32_t > cauxstwd
 
std::vector< double > cchi2
 
std::vector< int > cdepth
 
std::vector< double > cen
 
std::vector< double > ceta
 
std::vector< int > cieta
 
std::vector< int > ciphi
 
std::vector< double > cphi
 
std::vector< uint32_t > cstwd
 
std::vector< int > csub
 
std::vector< double > ctime
 
std::vector< double > cz
 
const edm::InputTag EBRecHitCollectionLabel_
 
const std::string ecalselector_
 
const edm::InputTag EERecHitCollectionLabel_
 
const CaloGeometrygeometry_
 
const std::string hcalselector_
 
int imc
 
int iz
 
const std::string mc_
 
MonitorElementmeEnConeEtaProfile
 
MonitorElementmeEnConeEtaProfile_E
 
MonitorElementmeEnConeEtaProfile_EH
 
MonitorElementmeEnergyHcalVsEcalHB
 
MonitorElementmeEnergyHcalVsEcalHE
 
MonitorElementmeLog10Chi2profileHB
 
MonitorElementmeLog10Chi2profileHE
 
MonitorElementmeRecHitsEnergyHB
 
MonitorElementmeRecHitsEnergyHE
 
MonitorElementmeRecHitsEnergyHF
 
MonitorElementmeRecHitsEnergyHO
 
MonitorElementmeRecHitSimHitHB
 
MonitorElementmeRecHitSimHitHE
 
MonitorElementmeRecHitSimHitHF
 
MonitorElementmeRecHitSimHitHFL
 
MonitorElementmeRecHitSimHitHFS
 
MonitorElementmeRecHitSimHitHO
 
MonitorElementmeRecHitSimHitProfileHB
 
MonitorElementmeRecHitSimHitProfileHE
 
MonitorElementmeRecHitSimHitProfileHF
 
MonitorElementmeRecHitSimHitProfileHFL
 
MonitorElementmeRecHitSimHitProfileHFS
 
MonitorElementmeRecHitSimHitProfileHO
 
MonitorElementmeRecHitsM2Chi2HB
 
MonitorElementmeRecHitsM2Chi2HE
 
MonitorElementmeTEprofileHB
 
MonitorElementmeTEprofileHB_High
 
MonitorElementmeTEprofileHB_Low
 
MonitorElementmeTEprofileHE
 
MonitorElementmeTEprofileHE_Low
 
MonitorElementmeTEprofileHF
 
MonitorElementmeTEprofileHF_Low
 
MonitorElementmeTEprofileHO
 
MonitorElementmeTEprofileHO_High
 
int nevtot
 
const std::string outputFile_
 
const std::string sign_
 
int subdet_
 
const bool testNumber_
 
const edm::EDGetTokenT< EBRecHitCollectiontok_EB_
 
const edm::EDGetTokenT< EERecHitCollectiontok_EE_
 
const edm::EDGetTokenT< edm::HepMCProducttok_evt_
 
const edm::ESGetToken< CaloGeometry, CaloGeometryRecordtok_Geom_
 
const edm::EDGetTokenT< HBHERecHitCollectiontok_hbhe_
 
const edm::EDGetTokenT< HFRecHitCollectiontok_hf_
 
const edm::EDGetTokenT< edm::PCaloHitContainertok_hh_
 
const edm::EDGetTokenT< HORecHitCollectiontok_ho_
 
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecordtok_HRNDC_
 
const std::string topFolderName_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 57 of file HcalRecHitsValidation.h.

Constructor & Destructor Documentation

◆ HcalRecHitsValidation()

HcalRecHitsValidation::HcalRecHitsValidation ( edm::ParameterSet const &  conf)

Definition at line 8 of file HcalRecHitsValidation.cc.

References hcalselector_, imc, iz, mc_, nevtot, outputFile_, sign_, and subdet_.

9  : topFolderName_(conf.getParameter<std::string>("TopFolderName")),
10  outputFile_(conf.getUntrackedParameter<std::string>("outputFile", "myfile.root")),
11  hcalselector_(conf.getUntrackedParameter<std::string>("hcalselector", "all")),
12  ecalselector_(conf.getUntrackedParameter<std::string>("ecalselector", "yes")),
13  sign_(conf.getUntrackedParameter<std::string>("sign", "*")),
14  mc_(conf.getUntrackedParameter<std::string>("mc", "yes")),
15  testNumber_(conf.getParameter<bool>("TestNumber")),
16  EBRecHitCollectionLabel_(conf.getParameter<edm::InputTag>("EBRecHitCollectionLabel")),
17  EERecHitCollectionLabel_(conf.getParameter<edm::InputTag>("EERecHitCollectionLabel")),
18  tok_evt_(consumes<edm::HepMCProduct>(edm::InputTag("generatorSmeared"))),
19  tok_EB_(consumes<EBRecHitCollection>(EBRecHitCollectionLabel_)),
20  tok_EE_(consumes<EERecHitCollection>(EERecHitCollectionLabel_)),
21  tok_hh_(consumes<edm::PCaloHitContainer>(conf.getUntrackedParameter<edm::InputTag>("SimHitCollectionLabel"))),
22  tok_hbhe_(consumes<HBHERecHitCollection>(conf.getUntrackedParameter<edm::InputTag>("HBHERecHitCollectionLabel"))),
23  tok_hf_(consumes<HFRecHitCollection>(conf.getUntrackedParameter<edm::InputTag>("HFRecHitCollectionLabel"))),
24  tok_ho_(consumes<HORecHitCollection>(conf.getUntrackedParameter<edm::InputTag>("HORecHitCollectionLabel"))),
25  tok_HRNDC_(esConsumes<HcalDDDRecConstants, HcalRecNumberingRecord>()),
26  tok_Geom_(esConsumes<CaloGeometry, CaloGeometryRecord>()) {
27  // DQM ROOT output
28  if (!outputFile_.empty()) {
29  edm::LogVerbatim("OutputInfo") << " Hcal RecHit Task histograms will be saved to '" << outputFile_.c_str() << "'";
30  } else {
31  edm::LogVerbatim("OutputInfo") << " Hcal RecHit Task histograms will NOT be saved";
32  }
33 
34  nevtot = 0;
35 
36  // Collections
37 
38  // register for data access
39 
40  subdet_ = 5;
41  if (hcalselector_ == "noise")
42  subdet_ = 0;
43  if (hcalselector_ == "HB")
44  subdet_ = 1;
45  if (hcalselector_ == "HE")
46  subdet_ = 2;
47  if (hcalselector_ == "HO")
48  subdet_ = 3;
49  if (hcalselector_ == "HF")
50  subdet_ = 4;
51  if (hcalselector_ == "all")
52  subdet_ = 5;
53  if (hcalselector_ == "ZS")
54  subdet_ = 6;
55 
56  iz = 1;
57  if (sign_ == "-")
58  iz = -1;
59  if (sign_ == "*")
60  iz = 0;
61 
62  imc = 1;
63  if (mc_ == "no")
64  imc = 0;
65 }
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > tok_HRNDC_
Log< level::Info, true > LogVerbatim
const edm::InputTag EBRecHitCollectionLabel_
const std::string ecalselector_
const edm::InputTag EERecHitCollectionLabel_
const std::string topFolderName_
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_hh_
const std::string hcalselector_
const std::string outputFile_
const edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
const edm::EDGetTokenT< EBRecHitCollection > tok_EB_
const edm::EDGetTokenT< EERecHitCollection > tok_EE_
const edm::EDGetTokenT< edm::HepMCProduct > tok_evt_
const edm::EDGetTokenT< HORecHitCollection > tok_ho_
const edm::EDGetTokenT< HFRecHitCollection > tok_hf_
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_Geom_

◆ ~HcalRecHitsValidation()

HcalRecHitsValidation::~HcalRecHitsValidation ( )
overridedefault

Member Function Documentation

◆ analyze()

void HcalRecHitsValidation::analyze ( edm::Event const &  ev,
edm::EventSetup const &  c 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 186 of file HcalRecHitsValidation.cc.

References edm::SortedCollection< T, SORT >::begin(), HltBtagPostValidation_cff::c, cchi2, cdepth, cen, ceta, nano_mu_local_reco_cff::chi2, cieta, cphi, csub, ctime, hcalRecHitTable_cff::depth, dR(), ecalselector_, edm::SortedCollection< T, SORT >::end(), PVValHelper::eta, PV3DBase< T, PVType, FrameType >::eta(), ALCARECOTkAlBeamHalo_cff::etaMax, makeMEIFBenchmarkPlots::ev, dqm::impl::MonitorElement::Fill(), fillRecHitsTmp(), geometry_, edm::HepMCProduct::GetEvent(), CaloSubdetectorGeometry::getGeometry(), HcalGeometry::getPosition(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, mps_fire::i, hcalRecHitTable_cff::ieta, imc, edm::HandleBase::isValid(), PV_cfg::maxPt, meEnConeEtaProfile, meEnConeEtaProfile_E, meEnConeEtaProfile_EH, meLog10Chi2profileHB, meLog10Chi2profileHE, meRecHitsEnergyHB, meRecHitsEnergyHE, meRecHitsEnergyHF, meRecHitsEnergyHO, meRecHitSimHitHB, meRecHitSimHitHE, meRecHitSimHitHF, meRecHitSimHitHFL, meRecHitSimHitHFS, meRecHitSimHitHO, meRecHitSimHitProfileHB, meRecHitSimHitProfileHE, meRecHitSimHitProfileHF, meRecHitSimHitProfileHFL, meRecHitSimHitProfileHFS, meRecHitSimHitProfileHO, meRecHitsM2Chi2HB, meRecHitsM2Chi2HE, meTEprofileHB, meTEprofileHB_High, meTEprofileHB_Low, meTEprofileHE, meTEprofileHE_Low, meTEprofileHF, meTEprofileHF_Low, meTEprofileHO, meTEprofileHO_High, nevtot, AlCaHLTBitMon_ParallelJobs::p, phi, PV3DBase< T, PVType, FrameType >::phi(), edm::Handle< T >::product(), DiDispStaMuonMonitor_cfi::pt, alignCSCRings::r, HcalHitRelabeller::relabel(), HcalDetId::subdet(), subdet_, submitPVValidationJobs::t, testNumber_, tok_EB_, tok_EE_, tok_evt_, tok_Geom_, tok_hh_, and tok_HRNDC_.

186  {
187  using namespace edm;
188 
189  const HcalDDDRecConstants *hcons = &c.getData(tok_HRNDC_);
190 
191  // cuts for each subdet_ector mimiking "Scheme B"
192  // double cutHB = 0.9, cutHE = 1.4, cutHO = 1.1, cutHFL = 1.2, cutHFS = 1.8;
193 
194  // energy in HCAL
195  double eHcalConeHB = 0.;
196  double eHcalConeHE = 0.;
197  double eHcalConeHO = 0.;
198  double eHcalConeHF = 0.;
199  double eHcalConeHFL = 0.;
200  double eHcalConeHFS = 0.;
201 
202  // energy in ECAL
203  double eEcalCone = 0.;
204 
205  // MC info
206  double phi_MC = -999999.; // phi of initial particle from HepMC
207  double eta_MC = -999999.; // eta of initial particle from HepMC
208 
209  // HCAL energy around MC eta-phi at all depths;
210  double partR = 0.3;
211 
212  if (imc != 0) {
213  const edm::Handle<edm::HepMCProduct> &evtMC = ev.getHandle(tok_evt_); // generator in late 310_preX
214  if (!evtMC.isValid()) {
215  edm::LogVerbatim("HcalRecHitsValidation") << "no HepMCProduct found";
216  } else {
217 #ifdef EDM_ML_DEBUG
218  edm::LogVerbatim("HcalRecHitsValidation") << "*** source HepMCProduct found";
219 #endif
220  }
221 
222  // MC particle with highest pt is taken as a direction reference
223  double maxPt = -99999.;
224  const HepMC::GenEvent *myGenEvent = evtMC->GetEvent();
225  for (HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin(); p != myGenEvent->particles_end();
226  ++p) {
227  double phip = (*p)->momentum().phi();
228  double etap = (*p)->momentum().eta();
229  // phi_MC = phip;
230  // eta_MC = etap;
231  double pt = (*p)->momentum().perp();
232  if (pt > maxPt) {
233  maxPt = pt;
234  phi_MC = phip;
235  eta_MC = etap;
236  }
237  }
238 #ifdef EDM_ML_DEBUG
239  edm::LogVerbatim("HcalRecHitsValidation") << "*** Max pT = " << maxPt;
240 #endif
241  }
242 
243 #ifdef EDM_ML_DEBUG
244  edm::LogVerbatim("HcalRecHitsValidation") << "*** 2";
245 #endif
246 
247  geometry_ = &c.getData(tok_Geom_);
248 
249  // Fill working vectors of HCAL RecHits quantities (all of these are drawn)
251 
252 #ifdef EDM_ML_DEBUG
253  edm::LogVerbatim("HcalRecHitsValidation") << "*** 3";
254 #endif
255 
256  //===========================================================================
257  // IN ALL other CASES : ieta-iphi maps
258  //===========================================================================
259 
260  // ECAL
261  if (ecalselector_ == "yes" && (subdet_ == 1 || subdet_ == 2 || subdet_ == 5)) {
262  const edm::Handle<EBRecHitCollection> &rhitEB = ev.getHandle(tok_EB_);
263 
266 
267  if (rhitEB.isValid()) {
268  RecHit = rhitEB.product()->begin();
269  RecHitEnd = rhitEB.product()->end();
270 
271  for (; RecHit != RecHitEnd; ++RecHit) {
272  EBDetId EBid = EBDetId(RecHit->id());
273 
274  auto cellGeometry = geometry_->getSubdetectorGeometry(EBid)->getGeometry(EBid);
275  double eta = cellGeometry->getPosition().eta();
276  double phi = cellGeometry->getPosition().phi();
277  double en = RecHit->energy();
278 
279  double r = dR(eta_MC, phi_MC, eta, phi);
280  if (r < partR) {
281  eEcalCone += en;
282  }
283  }
284  }
285 
286  const edm::Handle<EERecHitCollection> &rhitEE = ev.getHandle(tok_EE_);
287 
288  if (rhitEE.isValid()) {
289  RecHit = rhitEE.product()->begin();
290  RecHitEnd = rhitEE.product()->end();
291 
292  for (; RecHit != RecHitEnd; ++RecHit) {
293  EEDetId EEid = EEDetId(RecHit->id());
294 
295  auto cellGeometry = geometry_->getSubdetectorGeometry(EEid)->getGeometry(EEid);
296  double eta = cellGeometry->getPosition().eta();
297  double phi = cellGeometry->getPosition().phi();
298  double en = RecHit->energy();
299 
300  double r = dR(eta_MC, phi_MC, eta, phi);
301  if (r < partR) {
302  eEcalCone += en;
303  }
304  }
305  }
306  } // end of ECAL selection
307 
308 #ifdef EDM_ML_DEBUG
309  edm::LogVerbatim("HcalRecHitsValidation") << "*** 4";
310 #endif
311 
312  //===========================================================================
313  // SUBSYSTEMS,
314  //===========================================================================
315 
316  if ((subdet_ != 6) && (subdet_ != 0)) {
317 #ifdef EDM_ML_DEBUG
318  edm::LogVerbatim("HcalRecHitsValidation") << "*** 6";
319 #endif
320 
321  double HcalCone = 0.;
322 
323  int ietaMax = 9999;
324  double etaMax = 9999.;
325 
326  // CYCLE over cells ====================================================
327 
328  for (unsigned int i = 0; i < cen.size(); i++) {
329  int sub = csub[i];
330  int depth = cdepth[i];
331  double eta = ceta[i];
332  double phi = cphi[i];
333  double en = cen[i];
334  double t = ctime[i];
335  int ieta = cieta[i];
336  double chi2 = cchi2[i];
337 
338  double chi2_log10 = 9.99; // initial value above histos limits , keep it if chi2 <= 0.
339  if (chi2 > 0.)
340  chi2_log10 = log10(chi2);
341 
342  double r = dR(eta_MC, phi_MC, eta, phi);
343  if (r < partR) {
344  if (sub == 1)
345  eHcalConeHB += en;
346  if (sub == 2)
347  eHcalConeHE += en;
348  if (sub == 3)
349  eHcalConeHO += en;
350  if (sub == 4) {
351  eHcalConeHF += en;
352  if (depth == 1)
353  eHcalConeHFL += en;
354  else
355  eHcalConeHFS += en;
356  }
357 
358  HcalCone += en;
359  // alternative: ietamax -> closest to MC eta !!!
360  float eta_diff = fabs(eta_MC - eta);
361  if (eta_diff < etaMax) {
362  etaMax = eta_diff;
363  ietaMax = ieta;
364  }
365  }
366 
367  // The energy and overall timing histos are drawn while
368  // the ones split by depth are not
369  if (sub == 1 && (subdet_ == 1 || subdet_ == 5)) {
370  meRecHitsM2Chi2HB->Fill(chi2_log10);
371  meLog10Chi2profileHB->Fill(en, chi2_log10);
372 
373  meRecHitsEnergyHB->Fill(en);
374 
375  meTEprofileHB_Low->Fill(en, t);
376  meTEprofileHB->Fill(en, t);
377  meTEprofileHB_High->Fill(en, t);
378  }
379  if (sub == 2 && (subdet_ == 2 || subdet_ == 5)) {
380  meRecHitsM2Chi2HE->Fill(chi2_log10);
381  meLog10Chi2profileHE->Fill(en, chi2_log10);
382 
383  meRecHitsEnergyHE->Fill(en);
384 
385  meTEprofileHE_Low->Fill(en, t);
386  meTEprofileHE->Fill(en, t);
387  }
388  if (sub == 4 && (subdet_ == 4 || subdet_ == 5)) {
389  meRecHitsEnergyHF->Fill(en);
390 
391  meTEprofileHF_Low->Fill(en, t);
392  meTEprofileHF->Fill(en, t);
393  }
394  if (sub == 3 && (subdet_ == 3 || subdet_ == 5)) {
395  meRecHitsEnergyHO->Fill(en);
396 
397  meTEprofileHO->Fill(en, t);
398  meTEprofileHO_High->Fill(en, t);
399  }
400  }
401 
402  if (imc != 0) {
403  meEnConeEtaProfile->Fill(double(ietaMax), HcalCone); //
404  meEnConeEtaProfile_E->Fill(double(ietaMax), eEcalCone);
405  meEnConeEtaProfile_EH->Fill(double(ietaMax), HcalCone + eEcalCone);
406  }
407 
408 #ifdef EDM_ML_DEBUG
409  edm::LogVerbatim("HcalRecHitsValidation") << "*** 7";
410 #endif
411  }
412 
413  // SimHits vs. RecHits
414  if (subdet_ > 0 && subdet_ < 6 && imc != 0) { // not noise
415 
416  const edm::Handle<PCaloHitContainer> &hcalHits = ev.getHandle(tok_hh_);
417  if (hcalHits.isValid()) {
418  const PCaloHitContainer *SimHitResult = hcalHits.product();
419 
420  double enSimHitsHB = 0.;
421  double enSimHitsHE = 0.;
422  double enSimHitsHO = 0.;
423  double enSimHitsHF = 0.;
424  double enSimHitsHFL = 0.;
425  double enSimHitsHFS = 0.;
426  // sum of SimHits in the cone
427 
428  for (std::vector<PCaloHit>::const_iterator SimHits = SimHitResult->begin(); SimHits != SimHitResult->end();
429  ++SimHits) {
430  int sub, depth;
431  HcalDetId cell;
432 
433  if (testNumber_)
434  cell = HcalHitRelabeller::relabel(SimHits->id(), hcons);
435  else
436  cell = HcalDetId(SimHits->id());
437 
438  sub = cell.subdet();
439  depth = cell.depth();
440 
441  if (sub != subdet_ && subdet_ != 5)
442  continue; // If we are not looking at all of the subdetectors and the
443  // simhit doesn't come from the specific subdetector of
444  // interest, then we won't do any thing with it
445 
446  const HcalGeometry *cellGeometry =
447  dynamic_cast<const HcalGeometry *>(geometry_->getSubdetectorGeometry(DetId::Hcal, cell.subdet()));
448  double etaS = cellGeometry->getPosition(cell).eta();
449  double phiS = cellGeometry->getPosition(cell).phi();
450  double en = SimHits->energy();
451 
452  double r = dR(eta_MC, phi_MC, etaS, phiS);
453 
454  if (r < partR) { // just energy in the small cone
455 
456  if (sub == static_cast<int>(HcalBarrel))
457  enSimHitsHB += en;
458  if (sub == static_cast<int>(HcalEndcap))
459  enSimHitsHE += en;
460  if (sub == static_cast<int>(HcalOuter))
461  enSimHitsHO += en;
462  if (sub == static_cast<int>(HcalForward)) {
463  enSimHitsHF += en;
464  if (depth == 1)
465  enSimHitsHFL += en;
466  else
467  enSimHitsHFS += en;
468  }
469  }
470  }
471 
472  // Now some histos with SimHits
473 
474  if (subdet_ == 4 || subdet_ == 5) {
475  meRecHitSimHitHF->Fill(enSimHitsHF, eHcalConeHF);
476  meRecHitSimHitProfileHF->Fill(enSimHitsHF, eHcalConeHF);
477 
478  meRecHitSimHitHFL->Fill(enSimHitsHFL, eHcalConeHFL);
479  meRecHitSimHitProfileHFL->Fill(enSimHitsHFL, eHcalConeHFL);
480  meRecHitSimHitHFS->Fill(enSimHitsHFS, eHcalConeHFS);
481  meRecHitSimHitProfileHFS->Fill(enSimHitsHFS, eHcalConeHFS);
482  }
483  if (subdet_ == 1 || subdet_ == 5) {
484  meRecHitSimHitHB->Fill(enSimHitsHB, eHcalConeHB);
485  meRecHitSimHitProfileHB->Fill(enSimHitsHB, eHcalConeHB);
486  }
487  if (subdet_ == 2 || subdet_ == 5) {
488  meRecHitSimHitHE->Fill(enSimHitsHE, eHcalConeHE);
489  meRecHitSimHitProfileHE->Fill(enSimHitsHE, eHcalConeHE);
490  }
491  if (subdet_ == 3 || subdet_ == 5) {
492  meRecHitSimHitHO->Fill(enSimHitsHO, eHcalConeHO);
493  meRecHitSimHitProfileHO->Fill(enSimHitsHO, eHcalConeHO);
494  }
495  }
496  }
497 
498  nevtot++;
499 }
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > tok_HRNDC_
Log< level::Info, true > LogVerbatim
std::vector< double > cchi2
const std::string ecalselector_
MonitorElement * meRecHitsM2Chi2HB
std::vector< PCaloHit > PCaloHitContainer
MonitorElement * meRecHitsEnergyHF
MonitorElement * meTEprofileHE_Low
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
T eta() const
Definition: PV3DBase.h:73
T const * product() const
Definition: Handle.h:70
std::vector< EcalRecHit >::const_iterator const_iterator
MonitorElement * meLog10Chi2profileHB
MonitorElement * meEnConeEtaProfile
MonitorElement * meRecHitSimHitProfileHF
MonitorElement * meRecHitSimHitProfileHFS
MonitorElement * meRecHitsEnergyHB
std::vector< double > ceta
MonitorElement * meRecHitSimHitHF
MonitorElement * meRecHitsEnergyHE
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_hh_
MonitorElement * meRecHitSimHitProfileHE
MonitorElement * meEnConeEtaProfile_E
const CaloGeometry * geometry_
MonitorElement * meRecHitSimHitHB
MonitorElement * meRecHitSimHitHFS
void Fill(long long x)
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
std::vector< double > cphi
MonitorElement * meRecHitsM2Chi2HE
MonitorElement * meTEprofileHB
virtual void fillRecHitsTmp(int subdet_, edm::Event const &ev)
double dR(double eta1, double phi1, double eta2, double phi2)
MonitorElement * meLog10Chi2profileHE
const_iterator begin() const
DetId relabel(const uint32_t testId) const
MonitorElement * meRecHitSimHitHO
MonitorElement * meRecHitSimHitProfileHB
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:37
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.
const_iterator end() const
MonitorElement * meTEprofileHF_Low
const edm::EDGetTokenT< EBRecHitCollection > tok_EB_
MonitorElement * meTEprofileHO_High
MonitorElement * meTEprofileHE
const edm::EDGetTokenT< EERecHitCollection > tok_EE_
MonitorElement * meTEprofileHF
MonitorElement * meRecHitSimHitProfileHO
maxPt
Definition: PV_cfg.py:224
std::vector< double > ctime
MonitorElement * meEnConeEtaProfile_EH
MonitorElement * meRecHitSimHitProfileHFL
bool isValid() const
Definition: HandleBase.h:70
MonitorElement * meRecHitsEnergyHO
HLT enums.
GlobalPoint getPosition(const DetId &id) const
MonitorElement * meRecHitSimHitHFL
const edm::EDGetTokenT< edm::HepMCProduct > tok_evt_
MonitorElement * meTEprofileHO
MonitorElement * meTEprofileHB_Low
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_Geom_
MonitorElement * meRecHitSimHitHE
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
MonitorElement * meTEprofileHB_High
std::vector< double > cen

◆ bookHistograms()

void HcalRecHitsValidation::bookHistograms ( DQMStore::IBooker ib,
edm::Run const &  run,
edm::EventSetup const &  es 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 67 of file HcalRecHitsValidation.cc.

References timingPdfMaker::histo, cuy::ib, imc, meEnConeEtaProfile, meEnConeEtaProfile_E, meEnConeEtaProfile_EH, meLog10Chi2profileHB, meLog10Chi2profileHE, meRecHitsEnergyHB, meRecHitsEnergyHE, meRecHitsEnergyHF, meRecHitsEnergyHO, meRecHitSimHitHB, meRecHitSimHitHE, meRecHitSimHitHF, meRecHitSimHitHFL, meRecHitSimHitHFS, meRecHitSimHitHO, meRecHitSimHitProfileHB, meRecHitSimHitProfileHE, meRecHitSimHitProfileHF, meRecHitSimHitProfileHFL, meRecHitSimHitProfileHFS, meRecHitSimHitProfileHO, meRecHitsM2Chi2HB, meRecHitsM2Chi2HE, meTEprofileHB, meTEprofileHB_High, meTEprofileHB_Low, meTEprofileHE, meTEprofileHE_Low, meTEprofileHF, meTEprofileHF_Low, meTEprofileHO, meTEprofileHO_High, subdet_, and topFolderName_.

67  {
68  Char_t histo[200];
69 
70  ib.setCurrentFolder(topFolderName_);
71 
72  //======================= Now various cases one by one ===================
73 
74  // Histograms drawn for single pion scan
75  if (subdet_ != 0 && imc != 0) { // just not for noise
76  sprintf(histo, "HcalRecHitTask_En_rechits_cone_profile_vs_ieta_all_depths");
77  meEnConeEtaProfile = ib.bookProfile(histo, histo, 83, -41.5, 41.5, -100., 2000., " ");
78 
79  sprintf(histo, "HcalRecHitTask_En_rechits_cone_profile_vs_ieta_all_depths_E");
80  meEnConeEtaProfile_E = ib.bookProfile(histo, histo, 83, -41.5, 41.5, -100., 2000., " ");
81 
82  sprintf(histo, "HcalRecHitTask_En_rechits_cone_profile_vs_ieta_all_depths_EH");
83  meEnConeEtaProfile_EH = ib.bookProfile(histo, histo, 83, -41.5, 41.5, -100., 2000., " ");
84  }
85 
86  // ************** HB **********************************
87  if (subdet_ == 1 || subdet_ == 5) {
88  sprintf(histo, "HcalRecHitTask_M2Log10Chi2_of_rechits_HB"); // Chi2
89  meRecHitsM2Chi2HB = ib.book1D(histo, histo, 120, -2., 10.);
90 
91  sprintf(histo, "HcalRecHitTask_Log10Chi2_vs_energy_profile_HB");
92  meLog10Chi2profileHB = ib.bookProfile(histo, histo, 300, -5., 295., -2., 9.9, " ");
93 
94  sprintf(histo, "HcalRecHitTask_energy_of_rechits_HB");
95  meRecHitsEnergyHB = ib.book1D(histo, histo, 2010, -10., 2000.);
96 
97  sprintf(histo, "HcalRecHitTask_timing_vs_energy_profile_HB");
98  meTEprofileHB = ib.bookProfile(histo, histo, 150, -5., 295., -48., 92., " ");
99 
100  sprintf(histo, "HcalRecHitTask_timing_vs_energy_profile_Low_HB");
101  meTEprofileHB_Low = ib.bookProfile(histo, histo, 150, -5., 295., -48., 92., " ");
102 
103  sprintf(histo, "HcalRecHitTask_timing_vs_energy_profile_High_HB");
104  meTEprofileHB_High = ib.bookProfile(histo, histo, 150, -5., 295., 48., 92., " ");
105 
106  if (imc != 0) {
107  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_HB");
108  meRecHitSimHitHB = ib.book2D(histo, histo, 120, 0., 1.2, 300, 0., 150.);
109  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_profile_HB");
110  meRecHitSimHitProfileHB = ib.bookProfile(histo, histo, 120, 0., 1.2, 0., 500., " ");
111  }
112  }
113 
114  // ********************** HE ************************************
115  if (subdet_ == 2 || subdet_ == 5) {
116  sprintf(histo, "HcalRecHitTask_M2Log10Chi2_of_rechits_HE"); // Chi2
117  meRecHitsM2Chi2HE = ib.book1D(histo, histo, 120, -2., 10.);
118 
119  sprintf(histo, "HcalRecHitTask_Log10Chi2_vs_energy_profile_HE");
120  meLog10Chi2profileHE = ib.bookProfile(histo, histo, 1000, -5., 995., -2., 9.9, " ");
121 
122  sprintf(histo, "HcalRecHitTask_energy_of_rechits_HE");
123  meRecHitsEnergyHE = ib.book1D(histo, histo, 2010, -10., 2000.);
124 
125  sprintf(histo, "HcalRecHitTask_timing_vs_energy_profile_Low_HE");
126  meTEprofileHE_Low = ib.bookProfile(histo, histo, 80, -5., 75., -48., 92., " ");
127 
128  sprintf(histo, "HcalRecHitTask_timing_vs_energy_profile_HE");
129  meTEprofileHE = ib.bookProfile(histo, histo, 200, -5., 2995., -48., 92., " ");
130 
131  if (imc != 0) {
132  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_HE");
133  meRecHitSimHitHE = ib.book2D(histo, histo, 120, 0., 0.6, 300, 0., 150.);
134  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_profile_HE");
135  meRecHitSimHitProfileHE = ib.bookProfile(histo, histo, 120, 0., 0.6, 0., 500., " ");
136  }
137  }
138 
139  // ************** HO ****************************************
140  if (subdet_ == 3 || subdet_ == 5) {
141  sprintf(histo, "HcalRecHitTask_energy_of_rechits_HO");
142  meRecHitsEnergyHO = ib.book1D(histo, histo, 2010, -10., 2000.);
143 
144  sprintf(histo, "HcalRecHitTask_timing_vs_energy_profile_HO");
145  meTEprofileHO = ib.bookProfile(histo, histo, 60, -5., 55., -48., 92., " ");
146 
147  sprintf(histo, "HcalRecHitTask_timing_vs_energy_profile_High_HO");
148  meTEprofileHO_High = ib.bookProfile(histo, histo, 100, -5., 995., -48., 92., " ");
149 
150  if (imc != 0) {
151  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_HO");
152  meRecHitSimHitHO = ib.book2D(histo, histo, 150, 0., 1.5, 350, 0., 350.);
153  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_profile_HO");
154  meRecHitSimHitProfileHO = ib.bookProfile(histo, histo, 150, 0., 1.5, 0., 500., " ");
155  }
156  }
157 
158  // ********************** HF ************************************
159  if (subdet_ == 4 || subdet_ == 5) {
160  sprintf(histo, "HcalRecHitTask_energy_of_rechits_HF");
161  meRecHitsEnergyHF = ib.book1D(histo, histo, 2010, -10., 2000.);
162 
163  sprintf(histo, "HcalRecHitTask_timing_vs_energy_profile_Low_HF");
164  meTEprofileHF_Low = ib.bookProfile(histo, histo, 100, -5., 195., -48., 92., " ");
165 
166  sprintf(histo, "HcalRecHitTask_timing_vs_energy_profile_HF");
167  meTEprofileHF = ib.bookProfile(histo, histo, 200, -5., 995., -48., 92., " ");
168 
169  if (imc != 0) {
170  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_HF");
171  meRecHitSimHitHF = ib.book2D(histo, histo, 50, 0., 50., 150, 0., 150.);
172  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_HFL");
173  meRecHitSimHitHFL = ib.book2D(histo, histo, 50, 0., 50., 150, 0., 150.);
174  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_HFS");
175  meRecHitSimHitHFS = ib.book2D(histo, histo, 50, 0., 50., 150, 0., 150.);
176  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_profile_HF");
177  meRecHitSimHitProfileHF = ib.bookProfile(histo, histo, 50, 0., 50., 0., 500., " ");
178  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_profile_HFL");
179  meRecHitSimHitProfileHFL = ib.bookProfile(histo, histo, 50, 0., 50., 0., 500., " ");
180  sprintf(histo, "HcalRecHitTask_energy_rechits_vs_simhits_profile_HFS");
181  meRecHitSimHitProfileHFS = ib.bookProfile(histo, histo, 50, 0., 50., 0., 500., " ");
182  }
183  }
184 }
MonitorElement * meRecHitsM2Chi2HB
MonitorElement * meRecHitsEnergyHF
MonitorElement * meTEprofileHE_Low
MonitorElement * meLog10Chi2profileHB
const std::string topFolderName_
MonitorElement * meEnConeEtaProfile
MonitorElement * meRecHitSimHitProfileHF
MonitorElement * meRecHitSimHitProfileHFS
MonitorElement * meRecHitsEnergyHB
MonitorElement * meRecHitSimHitHF
MonitorElement * meRecHitsEnergyHE
MonitorElement * meRecHitSimHitProfileHE
MonitorElement * meEnConeEtaProfile_E
MonitorElement * meRecHitSimHitHB
MonitorElement * meRecHitSimHitHFS
MonitorElement * meRecHitsM2Chi2HE
MonitorElement * meTEprofileHB
MonitorElement * meLog10Chi2profileHE
MonitorElement * meRecHitSimHitHO
MonitorElement * meRecHitSimHitProfileHB
MonitorElement * meTEprofileHF_Low
MonitorElement * meTEprofileHO_High
MonitorElement * meTEprofileHE
MonitorElement * meTEprofileHF
MonitorElement * meRecHitSimHitProfileHO
MonitorElement * meEnConeEtaProfile_EH
MonitorElement * meRecHitSimHitProfileHFL
MonitorElement * meRecHitsEnergyHO
MonitorElement * meRecHitSimHitHFL
MonitorElement * meTEprofileHO
MonitorElement * meTEprofileHB_Low
MonitorElement * meRecHitSimHitHE
MonitorElement * meTEprofileHB_High
ib
Definition: cuy.py:661

◆ dPhiWsign()

double HcalRecHitsValidation::dPhiWsign ( double  phi1,
double  phi2 
)
private

Definition at line 654 of file HcalRecHitsValidation.cc.

References testProducerWithPsetDescEmpty_cfi::a2, PI, and createJobs::tmp.

654  {
655  // clockwise phi2 w.r.t phi1 means "+" phi distance
656  // anti-clockwise phi2 w.r.t phi1 means "-" phi distance
657 
658  double PI = 3.1415926535898;
659  double a1 = phi1;
660  double a2 = phi2;
661  double tmp = a2 - a1;
662  if (a1 * a2 < 0.) {
663  if (a1 > 0.5 * PI)
664  tmp += 2. * PI;
665  if (a2 > 0.5 * PI)
666  tmp -= 2. * PI;
667  }
668  return tmp;
669 }
#define PI
Definition: QcdUeDQM.h:37
tmp
align.sh
Definition: createJobs.py:716

◆ dR()

double HcalRecHitsValidation::dR ( double  eta1,
double  phi1,
double  eta2,
double  phi2 
)
private

Definition at line 621 of file HcalRecHitsValidation.cc.

References HLT_2024v11_cff::eta1, HLT_2024v11_cff::eta2, mathSSE::sqrt(), and createJobs::tmp.

Referenced by analyze().

621  {
622  double PI = 3.1415926535898;
623  double deltaphi = phi1 - phi2;
624  if (phi2 > phi1) {
625  deltaphi = phi2 - phi1;
626  }
627  if (deltaphi > PI) {
628  deltaphi = 2. * PI - deltaphi;
629  }
630  double deltaeta = eta2 - eta1;
631  double tmp = sqrt(deltaeta * deltaeta + deltaphi * deltaphi);
632  return tmp;
633 }
T sqrt(T t)
Definition: SSEVec.h:19
tmp
align.sh
Definition: createJobs.py:716

◆ fillRecHitsTmp()

void HcalRecHitsValidation::fillRecHitsTmp ( int  subdet_,
edm::Event const &  ev 
)
privatevirtual

Definition at line 502 of file HcalRecHitsValidation.cc.

References edm::SortedCollection< T, SORT >::begin(), cchi2, cdepth, cen, ceta, nano_mu_local_reco_cff::chi2, cieta, ciphi, cphi, csub, ctime, cz, hcalRecHitTable_cff::depth, edm::SortedCollection< T, SORT >::end(), PVValHelper::eta, makeMEIFBenchmarkPlots::ev, geometry_, CaloSubdetectorGeometry::getGeometry(), CaloGeometry::getSubdetectorGeometry(), DetId::Hcal, edm::HandleBase::isValid(), iz, dqmiolumiharvest::j, phi, subdet_, submitPVValidationJobs::t, tok_hbhe_, tok_hf_, and tok_ho_.

Referenced by analyze().

502  {
503  using namespace edm;
504 
505  // initialize data vectors
506  csub.clear();
507  cen.clear();
508  ceta.clear();
509  cphi.clear();
510  ctime.clear();
511  cieta.clear();
512  ciphi.clear();
513  cdepth.clear();
514  cz.clear();
515  cchi2.clear();
516 
517  if (subdet_ == 1 || subdet_ == 2 || subdet_ == 5 || subdet_ == 6 || subdet_ == 0) {
518  // HBHE
519  const edm::Handle<HBHERecHitCollection> &hbhecoll = ev.getHandle(tok_hbhe_);
520  if (hbhecoll.isValid()) {
521  for (HBHERecHitCollection::const_iterator j = hbhecoll->begin(); j != hbhecoll->end(); j++) {
522  HcalDetId cell(j->id());
523  const HcalGeometry *cellGeometry =
524  dynamic_cast<const HcalGeometry *>(geometry_->getSubdetectorGeometry(DetId::Hcal, cell.subdet()));
525  double eta = cellGeometry->getPosition(cell).eta();
526  double phi = cellGeometry->getPosition(cell).phi();
527  double zc = cellGeometry->getPosition(cell).z();
528  int sub = cell.subdet();
529  int depth = cell.depth();
530  int inteta = cell.ieta();
531  int intphi = cell.iphi() - 1;
532  double en = j->energy();
533  double t = j->time();
534  double chi2 = j->chi2();
535 
536  if ((iz > 0 && eta > 0.) || (iz < 0 && eta < 0.) || iz == 0) {
537  csub.push_back(sub);
538  cen.push_back(en);
539  ceta.push_back(eta);
540  cphi.push_back(phi);
541  ctime.push_back(t);
542  cieta.push_back(inteta);
543  ciphi.push_back(intphi);
544  cdepth.push_back(depth);
545  cz.push_back(zc);
546  cchi2.push_back(chi2);
547  }
548  }
549  }
550  }
551 
552  if (subdet_ == 4 || subdet_ == 5 || subdet_ == 6 || subdet_ == 0) {
553  // HF
554  const edm::Handle<HFRecHitCollection> &hfcoll = ev.getHandle(tok_hf_);
555  if (hfcoll.isValid()) {
556  for (HFRecHitCollection::const_iterator j = hfcoll->begin(); j != hfcoll->end(); j++) {
557  HcalDetId cell(j->id());
558  auto cellGeometry = geometry_->getSubdetectorGeometry(cell)->getGeometry(cell);
559 
560  double eta = cellGeometry->getPosition().eta();
561  double phi = cellGeometry->getPosition().phi();
562  double zc = cellGeometry->getPosition().z();
563  int sub = cell.subdet();
564  int depth = cell.depth();
565  int inteta = cell.ieta();
566  int intphi = cell.iphi() - 1;
567  double en = j->energy();
568  double t = j->time();
569 
570  if ((iz > 0 && eta > 0.) || (iz < 0 && eta < 0.) || iz == 0) {
571  csub.push_back(sub);
572  cen.push_back(en);
573  ceta.push_back(eta);
574  cphi.push_back(phi);
575  ctime.push_back(t);
576  cieta.push_back(inteta);
577  ciphi.push_back(intphi);
578  cdepth.push_back(depth);
579  cz.push_back(zc);
580  cchi2.push_back(0.);
581  }
582  }
583  }
584  }
585 
586  // HO
587  if (subdet_ == 3 || subdet_ == 5 || subdet_ == 6 || subdet_ == 0) {
588  const edm::Handle<HORecHitCollection> &hocoll = ev.getHandle(tok_ho_);
589  if (hocoll.isValid()) {
590  for (HORecHitCollection::const_iterator j = hocoll->begin(); j != hocoll->end(); j++) {
591  HcalDetId cell(j->id());
592  auto cellGeometry = geometry_->getSubdetectorGeometry(cell)->getGeometry(cell);
593 
594  double eta = cellGeometry->getPosition().eta();
595  double phi = cellGeometry->getPosition().phi();
596  double zc = cellGeometry->getPosition().z();
597  int sub = cell.subdet();
598  int depth = cell.depth();
599  int inteta = cell.ieta();
600  int intphi = cell.iphi() - 1;
601  double t = j->time();
602  double en = j->energy();
603 
604  if ((iz > 0 && eta > 0.) || (iz < 0 && eta < 0.) || iz == 0) {
605  csub.push_back(sub);
606  cen.push_back(en);
607  ceta.push_back(eta);
608  cphi.push_back(phi);
609  ctime.push_back(t);
610  cieta.push_back(inteta);
611  ciphi.push_back(intphi);
612  cdepth.push_back(depth);
613  cz.push_back(zc);
614  cchi2.push_back(0.);
615  }
616  }
617  }
618  }
619 }
std::vector< double > cchi2
std::vector< T >::const_iterator const_iterator
std::vector< double > ceta
const CaloGeometry * geometry_
std::vector< double > cphi
const edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
const_iterator begin() const
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.
const_iterator end() const
std::vector< double > ctime
std::vector< double > cz
bool isValid() const
Definition: HandleBase.h:70
HLT enums.
const edm::EDGetTokenT< HORecHitCollection > tok_ho_
const edm::EDGetTokenT< HFRecHitCollection > tok_hf_
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
std::vector< double > cen

◆ phi12()

double HcalRecHitsValidation::phi12 ( double  phi1,
double  en1,
double  phi2,
double  en2 
)
private

Definition at line 635 of file HcalRecHitsValidation.cc.

References testProducerWithPsetDescEmpty_cfi::a2, PI, and createJobs::tmp.

635  {
636  // weighted mean value of phi1 and phi2
637 
638  double tmp;
639  double PI = 3.1415926535898;
640  double a1 = phi1;
641  double a2 = phi2;
642 
643  if (a1 > 0.5 * PI && a2 < 0.)
644  a2 += 2 * PI;
645  if (a2 > 0.5 * PI && a1 < 0.)
646  a1 += 2 * PI;
647  tmp = (a1 * en1 + a2 * en2) / (en1 + en2);
648  if (tmp > PI)
649  tmp -= 2. * PI;
650 
651  return tmp;
652 }
#define PI
Definition: QcdUeDQM.h:37
tmp
align.sh
Definition: createJobs.py:716

Member Data Documentation

◆ cauxstwd

std::vector<uint32_t> HcalRecHitsValidation::cauxstwd
private

Definition at line 167 of file HcalRecHitsValidation.h.

◆ cchi2

std::vector<double> HcalRecHitsValidation::cchi2
private

Definition at line 168 of file HcalRecHitsValidation.h.

Referenced by analyze(), and fillRecHitsTmp().

◆ cdepth

std::vector<int> HcalRecHitsValidation::cdepth
private

Definition at line 160 of file HcalRecHitsValidation.h.

Referenced by analyze(), and fillRecHitsTmp().

◆ cen

std::vector<double> HcalRecHitsValidation::cen
private

Definition at line 161 of file HcalRecHitsValidation.h.

Referenced by analyze(), and fillRecHitsTmp().

◆ ceta

std::vector<double> HcalRecHitsValidation::ceta
private

Definition at line 162 of file HcalRecHitsValidation.h.

Referenced by analyze(), and fillRecHitsTmp().

◆ cieta

std::vector<int> HcalRecHitsValidation::cieta
private

Definition at line 158 of file HcalRecHitsValidation.h.

Referenced by analyze(), and fillRecHitsTmp().

◆ ciphi

std::vector<int> HcalRecHitsValidation::ciphi
private

Definition at line 159 of file HcalRecHitsValidation.h.

Referenced by fillRecHitsTmp().

◆ cphi

std::vector<double> HcalRecHitsValidation::cphi
private

Definition at line 163 of file HcalRecHitsValidation.h.

Referenced by analyze(), and fillRecHitsTmp().

◆ cstwd

std::vector<uint32_t> HcalRecHitsValidation::cstwd
private

Definition at line 166 of file HcalRecHitsValidation.h.

◆ csub

std::vector<int> HcalRecHitsValidation::csub
private

Definition at line 157 of file HcalRecHitsValidation.h.

Referenced by analyze(), and fillRecHitsTmp().

◆ ctime

std::vector<double> HcalRecHitsValidation::ctime
private

Definition at line 164 of file HcalRecHitsValidation.h.

Referenced by analyze(), and fillRecHitsTmp().

◆ cz

std::vector<double> HcalRecHitsValidation::cz
private

Definition at line 165 of file HcalRecHitsValidation.h.

Referenced by fillRecHitsTmp().

◆ EBRecHitCollectionLabel_

const edm::InputTag HcalRecHitsValidation::EBRecHitCollectionLabel_
private

Definition at line 80 of file HcalRecHitsValidation.h.

◆ ecalselector_

const std::string HcalRecHitsValidation::ecalselector_
private

Definition at line 74 of file HcalRecHitsValidation.h.

Referenced by analyze().

◆ EERecHitCollectionLabel_

const edm::InputTag HcalRecHitsValidation::EERecHitCollectionLabel_
private

Definition at line 81 of file HcalRecHitsValidation.h.

◆ geometry_

const CaloGeometry* HcalRecHitsValidation::geometry_
private

Definition at line 154 of file HcalRecHitsValidation.h.

Referenced by analyze(), and fillRecHitsTmp().

◆ hcalselector_

const std::string HcalRecHitsValidation::hcalselector_
private

Definition at line 73 of file HcalRecHitsValidation.h.

Referenced by HcalRecHitsValidation().

◆ imc

int HcalRecHitsValidation::imc
private

Definition at line 98 of file HcalRecHitsValidation.h.

Referenced by analyze(), bookHistograms(), and HcalRecHitsValidation().

◆ iz

int HcalRecHitsValidation::iz
private

Definition at line 97 of file HcalRecHitsValidation.h.

Referenced by fillRecHitsTmp(), and HcalRecHitsValidation().

◆ mc_

const std::string HcalRecHitsValidation::mc_
private

Definition at line 76 of file HcalRecHitsValidation.h.

Referenced by HcalRecHitsValidation().

◆ meEnConeEtaProfile

MonitorElement* HcalRecHitsValidation::meEnConeEtaProfile
private

Definition at line 105 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEnConeEtaProfile_E

MonitorElement* HcalRecHitsValidation::meEnConeEtaProfile_E
private

Definition at line 106 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEnConeEtaProfile_EH

MonitorElement* HcalRecHitsValidation::meEnConeEtaProfile_EH
private

Definition at line 107 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEnergyHcalVsEcalHB

MonitorElement* HcalRecHitsValidation::meEnergyHcalVsEcalHB
private

Definition at line 144 of file HcalRecHitsValidation.h.

◆ meEnergyHcalVsEcalHE

MonitorElement* HcalRecHitsValidation::meEnergyHcalVsEcalHE
private

Definition at line 145 of file HcalRecHitsValidation.h.

◆ meLog10Chi2profileHB

MonitorElement* HcalRecHitsValidation::meLog10Chi2profileHB
private

Definition at line 151 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meLog10Chi2profileHE

MonitorElement* HcalRecHitsValidation::meLog10Chi2profileHE
private

Definition at line 152 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitsEnergyHB

MonitorElement* HcalRecHitsValidation::meRecHitsEnergyHB
private

Definition at line 110 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitsEnergyHE

MonitorElement* HcalRecHitsValidation::meRecHitsEnergyHE
private

Definition at line 111 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitsEnergyHF

MonitorElement* HcalRecHitsValidation::meRecHitsEnergyHF
private

Definition at line 113 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitsEnergyHO

MonitorElement* HcalRecHitsValidation::meRecHitsEnergyHO
private

Definition at line 112 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitHB

MonitorElement* HcalRecHitsValidation::meRecHitSimHitHB
private

Definition at line 129 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitHE

MonitorElement* HcalRecHitsValidation::meRecHitSimHitHE
private

Definition at line 130 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitHF

MonitorElement* HcalRecHitsValidation::meRecHitSimHitHF
private

Definition at line 132 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitHFL

MonitorElement* HcalRecHitsValidation::meRecHitSimHitHFL
private

Definition at line 133 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitHFS

MonitorElement* HcalRecHitsValidation::meRecHitSimHitHFS
private

Definition at line 134 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitHO

MonitorElement* HcalRecHitsValidation::meRecHitSimHitHO
private

Definition at line 131 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitProfileHB

MonitorElement* HcalRecHitsValidation::meRecHitSimHitProfileHB
private

Definition at line 136 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitProfileHE

MonitorElement* HcalRecHitsValidation::meRecHitSimHitProfileHE
private

Definition at line 137 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitProfileHF

MonitorElement* HcalRecHitsValidation::meRecHitSimHitProfileHF
private

Definition at line 139 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitProfileHFL

MonitorElement* HcalRecHitsValidation::meRecHitSimHitProfileHFL
private

Definition at line 140 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitProfileHFS

MonitorElement* HcalRecHitsValidation::meRecHitSimHitProfileHFS
private

Definition at line 141 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitSimHitProfileHO

MonitorElement* HcalRecHitsValidation::meRecHitSimHitProfileHO
private

Definition at line 138 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitsM2Chi2HB

MonitorElement* HcalRecHitsValidation::meRecHitsM2Chi2HB
private

Definition at line 148 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meRecHitsM2Chi2HE

MonitorElement* HcalRecHitsValidation::meRecHitsM2Chi2HE
private

Definition at line 149 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meTEprofileHB

MonitorElement* HcalRecHitsValidation::meTEprofileHB
private

Definition at line 116 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meTEprofileHB_High

MonitorElement* HcalRecHitsValidation::meTEprofileHB_High
private

Definition at line 117 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meTEprofileHB_Low

MonitorElement* HcalRecHitsValidation::meTEprofileHB_Low
private

Definition at line 115 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meTEprofileHE

MonitorElement* HcalRecHitsValidation::meTEprofileHE
private

Definition at line 120 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meTEprofileHE_Low

MonitorElement* HcalRecHitsValidation::meTEprofileHE_Low
private

Definition at line 119 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meTEprofileHF

MonitorElement* HcalRecHitsValidation::meTEprofileHF
private

Definition at line 126 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meTEprofileHF_Low

MonitorElement* HcalRecHitsValidation::meTEprofileHF_Low
private

Definition at line 125 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meTEprofileHO

MonitorElement* HcalRecHitsValidation::meTEprofileHO
private

Definition at line 122 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meTEprofileHO_High

MonitorElement* HcalRecHitsValidation::meTEprofileHO_High
private

Definition at line 123 of file HcalRecHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ nevtot

int HcalRecHitsValidation::nevtot
private

Definition at line 171 of file HcalRecHitsValidation.h.

Referenced by analyze(), and HcalRecHitsValidation().

◆ outputFile_

const std::string HcalRecHitsValidation::outputFile_
private

Definition at line 72 of file HcalRecHitsValidation.h.

Referenced by HcalRecHitsValidation().

◆ sign_

const std::string HcalRecHitsValidation::sign_
private

Definition at line 75 of file HcalRecHitsValidation.h.

Referenced by HcalRecHitsValidation().

◆ subdet_

int HcalRecHitsValidation::subdet_
private

◆ testNumber_

const bool HcalRecHitsValidation::testNumber_
private

Definition at line 77 of file HcalRecHitsValidation.h.

Referenced by analyze().

◆ tok_EB_

const edm::EDGetTokenT<EBRecHitCollection> HcalRecHitsValidation::tok_EB_
private

Definition at line 83 of file HcalRecHitsValidation.h.

Referenced by analyze().

◆ tok_EE_

const edm::EDGetTokenT<EERecHitCollection> HcalRecHitsValidation::tok_EE_
private

Definition at line 84 of file HcalRecHitsValidation.h.

Referenced by analyze().

◆ tok_evt_

const edm::EDGetTokenT<edm::HepMCProduct> HcalRecHitsValidation::tok_evt_
private

Definition at line 82 of file HcalRecHitsValidation.h.

Referenced by analyze().

◆ tok_Geom_

const edm::ESGetToken<CaloGeometry, CaloGeometryRecord> HcalRecHitsValidation::tok_Geom_
private

Definition at line 91 of file HcalRecHitsValidation.h.

Referenced by analyze().

◆ tok_hbhe_

const edm::EDGetTokenT<HBHERecHitCollection> HcalRecHitsValidation::tok_hbhe_
private

Definition at line 86 of file HcalRecHitsValidation.h.

Referenced by fillRecHitsTmp().

◆ tok_hf_

const edm::EDGetTokenT<HFRecHitCollection> HcalRecHitsValidation::tok_hf_
private

Definition at line 87 of file HcalRecHitsValidation.h.

Referenced by fillRecHitsTmp().

◆ tok_hh_

const edm::EDGetTokenT<edm::PCaloHitContainer> HcalRecHitsValidation::tok_hh_
private

Definition at line 85 of file HcalRecHitsValidation.h.

Referenced by analyze().

◆ tok_ho_

const edm::EDGetTokenT<HORecHitCollection> HcalRecHitsValidation::tok_ho_
private

Definition at line 88 of file HcalRecHitsValidation.h.

Referenced by fillRecHitsTmp().

◆ tok_HRNDC_

const edm::ESGetToken<HcalDDDRecConstants, HcalRecNumberingRecord> HcalRecHitsValidation::tok_HRNDC_
private

Definition at line 90 of file HcalRecHitsValidation.h.

Referenced by analyze().

◆ topFolderName_

const std::string HcalRecHitsValidation::topFolderName_
private

Definition at line 71 of file HcalRecHitsValidation.h.

Referenced by bookHistograms().