CMS 3D CMS Logo

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

#include <HcalTestAnalysis.h>

Inheritance diagram for HcalTestAnalysis:
SimWatcher Observer< const BeginOfJob * > Observer< const BeginOfRun * > Observer< const BeginOfEvent * > Observer< const EndOfEvent * > Observer< const G4Step * >

Public Member Functions

 HcalTestAnalysis (const edm::ParameterSet &p)
 
 ~HcalTestAnalysis () override
 
- Public Member Functions inherited from SimWatcher
 SimWatcher ()
 
virtual ~SimWatcher ()
 
- Public Member Functions inherited from Observer< const BeginOfJob * >
 Observer ()
 
void slotForUpdate (const BeginOfJob * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const BeginOfRun * >
 Observer ()
 
void slotForUpdate (const BeginOfRun * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const BeginOfEvent * >
 Observer ()
 
void slotForUpdate (const BeginOfEvent * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const EndOfEvent * >
 Observer ()
 
void slotForUpdate (const EndOfEvent * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const G4Step * >
 Observer ()
 
void slotForUpdate (const G4Step * iT)
 
virtual ~Observer ()
 

Private Member Functions

void fill (const EndOfEvent *ev)
 
void layerAnalysis ()
 
std::vector< int > layerGrouping (int)
 
void qieAnalysis (CLHEP::HepRandomEngine *)
 
double timeOfFlight (int det, int layer, double eta)
 
std::vector< int > towersToAdd (int centre, int nadd)
 
void update (const BeginOfJob *run) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const BeginOfRun *run) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const BeginOfEvent *evt) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const EndOfEvent *evt) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const G4Step *step) override
 This routine will be called when the appropriate signal arrives. More...
 

Private Attributes

int addTower_
 
std::vector< CaloHitcaloHitCache_
 
int centralTower_
 
unsigned int count_
 
double edepEB_
 
double edepEE_
 
double edepHB_
 
double edepHE_
 
double edepHO_
 
double edepl_ [20]
 
double eta0_
 
std::string fileName_
 
std::vector< int > group_
 
const HcalDDDSimConstantshcons_
 
double mudist_ [20]
 
std::unique_ptr< HcalQiemyqie_
 
std::vector< std::string > names_
 
int nGroup_
 
int nTower_
 
std::unique_ptr< HcalNumberingFromDDDnumberingFromDDD_
 
HcalTestNumberingSchemeorg_
 
double phi0_
 
std::vector< int > tower_
 
HcalTestHistoClasstuples_
 
std::unique_ptr< HcalTestHistoManagertuplesManager_
 

Additional Inherited Members

Detailed Description

Definition at line 34 of file HcalTestAnalysis.h.

Constructor & Destructor Documentation

HcalTestAnalysis::HcalTestAnalysis ( const edm::ParameterSet p)

Definition at line 32 of file HcalTestAnalysis.cc.

References addTower_, centralTower_, count_, eta0_, fileName_, edm::ParameterSet::getParameter(), group_, mps_fire::i, layerGrouping(), myqie_, names_, nGroup_, nTower_, numberingFromDDD_, phi0_, AlCaHLTBitMon_QueryRunRegistry::string, tower_, towersToAdd(), and tuplesManager_.

33  : addTower_(3), tuples_(nullptr), hcons_(nullptr), org_(nullptr) {
34  edm::ParameterSet m_Anal = p.getParameter<edm::ParameterSet>("HcalTestAnalysis");
35  eta0_ = m_Anal.getParameter<double>("Eta0");
36  phi0_ = m_Anal.getParameter<double>("Phi0");
37  int laygroup = m_Anal.getParameter<int>("LayerGrouping");
38  centralTower_ = m_Anal.getParameter<int>("CentralTower");
39  names_ = m_Anal.getParameter<std::vector<std::string> >("Names");
40  fileName_ = m_Anal.getParameter<std::string>("FileName");
41 
42  tuplesManager_.reset(nullptr);
43  numberingFromDDD_.reset(nullptr);
44  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: Initialised as observer of begin/end events"
45  << " and of G4step";
46 
47  count_ = 0;
48  group_ = layerGrouping(laygroup);
49  nGroup_ = 0;
50  for (unsigned int i = 0; i < group_.size(); i++)
51  if (group_[i] > nGroup_)
52  nGroup_ = group_[i];
53  tower_ = towersToAdd(centralTower_, addTower_);
54  nTower_ = tower_.size() / 2;
55 
56  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: initialised for " << nGroup_ << " Longitudinal groups and "
57  << nTower_ << " towers";
58 
59  // qie
60  myqie_.reset(new HcalQie(p));
61 }
T getParameter(std::string const &) const
HcalTestNumberingScheme * org_
std::vector< int > layerGrouping(int)
std::unique_ptr< HcalNumberingFromDDD > numberingFromDDD_
std::vector< std::string > names_
HcalTestHistoClass * tuples_
std::vector< int > towersToAdd(int centre, int nadd)
std::vector< int > tower_
const HcalDDDSimConstants * hcons_
unsigned int count_
std::unique_ptr< HcalQie > myqie_
std::string fileName_
std::vector< int > group_
std::unique_ptr< HcalTestHistoManager > tuplesManager_
HcalTestAnalysis::~HcalTestAnalysis ( )
override

Definition at line 63 of file HcalTestAnalysis.cc.

References count_, org_, and tuples_.

63  {
64  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis: --------> Total number of selected entries : " << count_;
65  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis: Pointers:: HistoClass " << tuples_ << ", Numbering Scheme " << org_;
66 }
HcalTestNumberingScheme * org_
HcalTestHistoClass * tuples_
unsigned int count_

Member Function Documentation

void HcalTestAnalysis::fill ( const EndOfEvent ev)
private

Definition at line 315 of file HcalTestAnalysis.cc.

References caloHitCache_, MillePedeFileConverter_cfg::e, PVValHelper::eta, CaloG4Hit::getEnergyDeposit(), CaloG4Hit::getPosition(), CaloG4Hit::getTimeSlice(), HcalTestNumberingScheme::getUnitID(), CaloG4Hit::getUnitID(), GeV, HcalEndcap, HcalForward, cmsBatch::log, names_, numberingFromDDD_, org_, HcalTestNumberingScheme::packHcalIndex(), phi, AlCaHLTBitMon_QueryRunRegistry::string, funct::tan(), theta(), protons_cff::time, timeOfFlight(), HcalTestNumberingScheme::unpackHcalIndex(), and ecaldqm::zside().

Referenced by update().

315  {
316  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis: Fill event " << (*evt)()->GetEventID();
317 
318  // access to the G4 hit collections
319  G4HCofThisEvent* allHC = (*evt)()->GetHCofThisEvent();
320 
321  int nhc = 0, neb = 0, nef = 0, j = 0;
322  caloHitCache_.erase(caloHitCache_.begin(), caloHitCache_.end());
323 
324  // Hcal
325  int HCHCid = G4SDManager::GetSDMpointer()->GetCollectionID(names_[0]);
326  CaloG4HitCollection* theHCHC = (CaloG4HitCollection*)allHC->GetHC(HCHCid);
327  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis :: Hit Collection for " << names_[0] << " of ID " << HCHCid
328  << " is obtained at " << theHCHC;
329  if (HCHCid >= 0 && theHCHC != nullptr) {
330  for (j = 0; j < theHCHC->entries(); j++) {
331  CaloG4Hit* aHit = (*theHCHC)[j];
332 
333  double e = aHit->getEnergyDeposit() / GeV;
334  double time = aHit->getTimeSlice();
335 
336  math::XYZPoint pos = aHit->getPosition();
337  double theta = pos.theta();
338  double eta = -log(tan(theta * 0.5));
339  double phi = pos.phi();
340 
341  uint32_t unitID = aHit->getUnitID();
342  int subdet, zside, layer, etaIndex, phiIndex, lay;
343  org_->unpackHcalIndex(unitID, subdet, zside, layer, etaIndex, phiIndex, lay);
344  double jitter = time - timeOfFlight(subdet, lay, eta);
345  if (jitter < 0)
346  jitter = 0;
347  CaloHit hit(subdet, lay, e, eta, phi, jitter, unitID);
348  caloHitCache_.push_back(hit);
349  nhc++;
350 
351  std::string det = "HB";
352  if (subdet == static_cast<int>(HcalForward)) {
353  det = "HF";
354  } else if (subdet == static_cast<int>(HcalEndcap)) {
355  if (etaIndex <= 20) {
356  det = "HES";
357  } else {
358  det = "HED";
359  }
360  }
361 
362  edm::LogVerbatim("HcalSim") << "HcalTest: " << det << " layer " << std::setw(2) << layer << " time "
363  << std::setw(6) << time << " theta " << std::setw(8) << theta << " eta "
364  << std::setw(8) << eta << " phi " << std::setw(8) << phi << " e " << std::setw(8)
365  << e;
366  }
367  }
368  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis::HCAL hits : " << nhc;
369 
370  // EB
371  int EBHCid = G4SDManager::GetSDMpointer()->GetCollectionID(names_[1]);
372  CaloG4HitCollection* theEBHC = (CaloG4HitCollection*)allHC->GetHC(EBHCid);
373  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis :: Hit Collection for " << names_[1] << " of ID " << EBHCid
374  << " is obtained at " << theEBHC;
375  if (EBHCid >= 0 && theEBHC != nullptr) {
376  for (j = 0; j < theEBHC->entries(); j++) {
377  CaloG4Hit* aHit = (*theEBHC)[j];
378 
379  double e = aHit->getEnergyDeposit() / GeV;
380  double time = aHit->getTimeSlice();
381  std::string det = "EB";
382 
383  math::XYZPoint pos = aHit->getPosition();
384  double theta = pos.theta();
385  double eta = -log(tan(theta / 2.));
386  double phi = pos.phi();
387 
388  HcalNumberingFromDDD::HcalID id = numberingFromDDD_->unitID(eta, phi, 1, 1);
389  uint32_t unitID = org_->getUnitID(id);
390  int subdet, zside, layer, ieta, iphi, lay;
391  org_->unpackHcalIndex(unitID, subdet, zside, layer, ieta, iphi, lay);
392  subdet = 10;
393  layer = 0;
394  unitID = org_->packHcalIndex(subdet, zside, layer, ieta, iphi, lay);
395  CaloHit hit(subdet, lay, e, eta, phi, time, unitID);
396  caloHitCache_.push_back(hit);
397  neb++;
398  edm::LogVerbatim("HcalSim") << "HcalTest: " << det << " layer " << std::setw(2) << layer << " time "
399  << std::setw(6) << time << " theta " << std::setw(8) << theta << " eta "
400  << std::setw(8) << eta << " phi " << std::setw(8) << phi << " e " << std::setw(8)
401  << e;
402  }
403  }
404  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis::EB hits : " << neb;
405 
406  // EE
407  int EEHCid = G4SDManager::GetSDMpointer()->GetCollectionID(names_[2]);
408  CaloG4HitCollection* theEEHC = (CaloG4HitCollection*)allHC->GetHC(EEHCid);
409  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis :: Hit Collection for " << names_[2] << " of ID " << EEHCid
410  << " is obtained at " << theEEHC;
411  if (EEHCid >= 0 && theEEHC != nullptr) {
412  for (j = 0; j < theEEHC->entries(); j++) {
413  CaloG4Hit* aHit = (*theEEHC)[j];
414 
415  double e = aHit->getEnergyDeposit() / GeV;
416  double time = aHit->getTimeSlice();
417  std::string det = "EE";
418 
419  math::XYZPoint pos = aHit->getPosition();
420  double theta = pos.theta();
421  double eta = -log(tan(theta / 2.));
422  double phi = pos.phi();
423 
424  HcalNumberingFromDDD::HcalID id = numberingFromDDD_->unitID(eta, phi, 1, 1);
425  uint32_t unitID = org_->getUnitID(id);
426  int subdet, zside, layer, ieta, iphi, lay;
427  org_->unpackHcalIndex(unitID, subdet, zside, layer, ieta, iphi, lay);
428  subdet = 11;
429  layer = 0;
430  unitID = org_->packHcalIndex(subdet, zside, layer, ieta, iphi, lay);
431  CaloHit hit(subdet, lay, e, eta, phi, time, unitID);
432  caloHitCache_.push_back(hit);
433  nef++;
434  edm::LogVerbatim("HcalSim") << "HcalTest: " << det << " layer " << std::setw(2) << layer << " time "
435  << std::setw(6) << time << " theta " << std::setw(8) << theta << " eta "
436  << std::setw(8) << eta << " phi " << std::setw(8) << phi << " e " << std::setw(8)
437  << e;
438  }
439  }
440  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis::EE hits : " << nef;
441 }
HcalTestNumberingScheme * org_
math::XYZPoint getPosition() const
Definition: CaloG4Hit.h:52
const double GeV
Definition: MathUtil.h:16
std::unique_ptr< HcalNumberingFromDDD > numberingFromDDD_
Geom::Theta< T > theta() const
std::vector< std::string > names_
int zside(DetId const &)
double timeOfFlight(int det, int layer, double eta)
static uint32_t packHcalIndex(int det, int z, int depth, int eta, int phi, int lay)
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
std::vector< CaloHit > caloHitCache_
G4THitsCollection< CaloG4Hit > CaloG4HitCollection
static void unpackHcalIndex(const uint32_t &idx, int &det, int &z, int &depth, int &eta, int &phi, int &lay)
double getTimeSlice() const
Definition: CaloG4Hit.h:66
uint32_t getUnitID() const
Definition: CaloG4Hit.h:65
double getEnergyDeposit() const
Definition: CaloG4Hit.h:77
uint32_t getUnitID(const HcalNumberingFromDDD::HcalID &id) override
void HcalTestAnalysis::layerAnalysis ( )
private

Definition at line 566 of file HcalTestAnalysis.cc.

References edepEB_, edepEE_, edepHB_, edepHE_, edepHO_, edepl_, HcalTestHistoClass::fillLayers(), mps_fire::i, MeV, mudist_, and tuples_.

Referenced by update().

566  {
567  int i = 0;
568  edm::LogVerbatim("HcalSim") << "\n ===>>> HcalTestAnalysis: Energy deposit "
569  << "\n at EB : " << std::setw(6) << edepEB_ / MeV << "\n at EE : " << std::setw(6)
570  << edepEE_ / MeV << "\n at HB : " << std::setw(6) << edepHB_ / MeV
571  << "\n at HE : " << std::setw(6) << edepHE_ / MeV << "\n at HO : " << std::setw(6)
572  << edepHO_ / MeV << "\n ---- HcalTestAnalysis: Energy deposit in Layers";
573  for (i = 0; i < 20; i++)
574  edm::LogVerbatim("HcalSim") << " Layer " << std::setw(2) << i << " E " << std::setw(8) << edepl_[i] / MeV << " MeV";
575 
577 }
void fillLayers(double el[], double ho, double hbhe, double muxy[])
HcalTestHistoClass * tuples_
const double MeV
std::vector< int > HcalTestAnalysis::layerGrouping ( int  group)
private

Definition at line 68 of file HcalTestAnalysis.cc.

References mps_fire::i, and groupFilesInBlocks::temp.

Referenced by HcalTestAnalysis().

68  {
69  std::vector<int> temp(19);
70  if (group <= 1) {
71  int grp[19] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2};
72  for (int i = 0; i < 19; i++)
73  temp[i] = grp[i];
74  } else if (group == 2) {
75  int grp[19] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
76  for (int i = 0; i < 19; i++)
77  temp[i] = grp[i];
78  } else if (group == 3) {
79  int grp[19] = {1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7};
80  for (int i = 0; i < 19; i++)
81  temp[i] = grp[i];
82  } else if (group == 4) {
83  int grp[19] = {1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7};
84  for (int i = 0; i < 19; i++)
85  temp[i] = grp[i];
86  } else {
87  int grp[19] = {1, 1, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7};
88  for (int i = 0; i < 19; i++)
89  temp[i] = grp[i];
90  }
91 
92  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: Layer Grouping ";
93  for (int i = 0; i < 19; i++)
94  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis: Group[" << i << "] = " << temp[i];
95  return temp;
96 }
void HcalTestAnalysis::qieAnalysis ( CLHEP::HepRandomEngine *  engine)
private

Definition at line 444 of file HcalTestAnalysis.cc.

References addTower_, caloHitCache_, hippyaddtobaddatafiles::cd(), centralTower_, CaloHit::det(), CaloHit::e(), eta0_, HcalTestHistoClass::fillHits(), HcalTestHistoClass::fillQie(), HcalTestNumberingScheme::getUnitID(), edmIntegrityCheck::group, group_, HcalBarrel, HcalEndcap, hfClusterShapes_cfi::hits, mps_fire::i, CaloHit::id(), training_settings::idx, CaloHit::layer(), myqie_, nGroup_, nt, nTower_, numberingFromDDD_, org_, phi0_, AlCaHLTBitMon_QueryRunRegistry::string, tower_, tuples_, HcalTestNumberingScheme::unpackHcalIndex(), and ecaldqm::zside().

Referenced by update().

444  {
445  //Fill tuple with hit information
446  int hittot = caloHitCache_.size();
448 
449  //Get the index of the central tower
451  uint32_t unitID = org_->getUnitID(id);
452  int subdet, zside, layer, ieta, iphi, lay;
453  org_->unpackHcalIndex(unitID, subdet, zside, layer, ieta, iphi, lay);
454  int laymax = 0;
455  std::string det = "Unknown";
456  if (subdet == static_cast<int>(HcalBarrel)) {
457  laymax = 4;
458  det = "HB";
459  } else if (subdet == static_cast<int>(HcalEndcap)) {
460  laymax = 2;
461  det = "HES";
462  }
463  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis::Qie: " << det << " Eta " << ieta << " Phi " << iphi << " Laymax "
464  << laymax << " Hits " << hittot;
465 
466  if (laymax > 0 && hittot > 0) {
467  std::vector<CaloHit> hits(hittot);
468  std::vector<double> eqielay(80, 0.0), esimlay(80, 0.0), esimtot(4, 0.0);
469  std::vector<double> eqietow(200, 0.0), esimtow(200, 0.0), eqietot(4, 0.0);
470  int etac = (centralTower_ / 100) % 100;
471  int phic = (centralTower_ % 100);
472 
473  for (int layr = 0; layr < nGroup_; layr++) {
474  /*
475  int layx, layy=20;
476  for (int i=0; i<20; i++)
477  if (group_[i] == layr+1 && i < layy) layy = i+1;
478  if (subdet == static_cast<int>(HcalBarrel)) {
479  if (layy < 2) layx = 0;
480  else if (layy < 17) layx = 1;
481  else if (layy == 17) layx = 2;
482  else layx = 3;
483  } else {
484  if (layy < 2) layx = 0;
485  else layx = 1;
486  }
487  */
488  for (int it = 0; it < nTower_; it++) {
489  int nhit = 0;
490  double esim = 0;
491  for (int k1 = 0; k1 < hittot; k1++) {
492  CaloHit hit = caloHitCache_[k1];
493  int subdetc = hit.det();
494  int layer = hit.layer();
495  int group = 0;
496  if (layer > 0 && layer < 20)
497  group = group_[layer];
498  if (subdetc == subdet && group == layr + 1) {
499  int zsidec, ietac, iphic, idx;
500  unitID = hit.id();
501  org_->unpackHcalIndex(unitID, subdetc, zsidec, layer, ietac, iphic, lay);
502  if (etac > 0 && phic > 0) {
503  idx = ietac * 100 + iphic;
504  } else if (etac > 0) {
505  idx = ietac * 100;
506  } else if (phic > 0) {
507  idx = iphic;
508  } else {
509  idx = 0;
510  }
511  if (zsidec == zside && idx == tower_[it]) {
512  hits[nhit] = hit;
513  edm::LogVerbatim("HcalSim") << "HcalTest: Hit " << nhit << " " << hit;
514  nhit++;
515  esim += hit.e();
516  }
517  }
518  }
519 
520  std::vector<int> cd = myqie_->getCode(nhit, hits, engine);
521  double eqie = myqie_->getEnergy(cd);
522 
523  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis::Qie: Energy in layer " << layr << " Sim " << esim
524  << " After QIE " << eqie;
525  for (int i = 0; i < 4; i++) {
526  if (tower_[nTower_ + it] <= i) {
527  esimtot[i] += esim;
528  eqietot[i] += eqie;
529  esimlay[20 * i + layr] += esim;
530  eqielay[20 * i + layr] += eqie;
531  esimtow[50 * i + it] += esim;
532  eqietow[50 * i + it] += eqie;
533  }
534  }
535  }
536  }
537  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis::Qie: Total energy " << esimtot[3] << " (SimHit) " << eqietot[3]
538  << " (After QIE)";
539 
540  std::vector<double> latphi(10);
541  int nt = 2 * addTower_ + 1;
542  for (int it = 0; it < nt; it++)
543  latphi[it] = it - addTower_;
544  for (int i = 0; i < 4; i++) {
545  double scals = 1, scalq = 1;
546  std::vector<double> latfs(10, 0.), latfq(10, 0.), longs(20), longq(20);
547  if (esimtot[i] > 0)
548  scals = 1. / esimtot[i];
549  if (eqietot[i] > 0)
550  scalq = 1. / eqietot[i];
551  for (int it = 0; it < nTower_; it++) {
552  int phib = it % nt;
553  latfs[phib] += scals * esimtow[50 * i + it];
554  latfq[phib] += scalq * eqietow[50 * i + it];
555  }
556  for (int layr = 0; layr <= nGroup_; layr++) {
557  longs[layr] = scals * esimlay[20 * i + layr];
558  longq[layr] = scalq * eqielay[20 * i + layr];
559  }
560  tuples_->fillQie(i, esimtot[i], eqietot[i], nGroup_, longs, longq, nt, latphi, latfs, latfq);
561  }
562  }
563 }
void fillQie(int id, double esimtot, double eqietot, int nGroup, const std::vector< double > &longs, const std::vector< double > &longq, int nTower, const std::vector< double > &latphi, const std::vector< double > &latfs, const std::vector< double > &latfq)
HcalTestNumberingScheme * org_
int det() const
Definition: CaloHit.h:19
std::unique_ptr< HcalNumberingFromDDD > numberingFromDDD_
void fillHits(std::vector< CaloHit > &)
int zside(DetId const &)
HcalTestHistoClass * tuples_
uint32_t id() const
Definition: CaloHit.h:25
std::vector< int > tower_
std::unique_ptr< HcalQie > myqie_
int layer() const
Definition: CaloHit.h:20
int nt
Definition: AMPTWrapper.h:32
double e() const
Definition: CaloHit.h:21
std::vector< CaloHit > caloHitCache_
static void unpackHcalIndex(const uint32_t &idx, int &det, int &z, int &depth, int &eta, int &phi, int &lay)
std::vector< int > group_
uint32_t getUnitID(const HcalNumberingFromDDD::HcalID &id) override
double HcalTestAnalysis::timeOfFlight ( int  det,
int  layer,
double  eta 
)
private

Definition at line 580 of file HcalTestAnalysis.cc.

References funct::cos(), JetChargeProducer_cfi::exp, HcalBarrel, funct::sin(), theta(), and tmp.

Referenced by fill().

580  {
581  double theta = 2.0 * atan(exp(-eta));
582  double dist = 0.;
583  if (det == static_cast<int>(HcalBarrel)) {
584  const double rLay[19] = {1836.0,
585  1902.0,
586  1962.0,
587  2022.0,
588  2082.0,
589  2142.0,
590  2202.0,
591  2262.0,
592  2322.0,
593  2382.0,
594  2448.0,
595  2514.0,
596  2580.0,
597  2646.0,
598  2712.0,
599  2776.0,
600  2862.5,
601  3847.0,
602  4052.0};
603  if (layer > 0 && layer < 20)
604  dist += rLay[layer - 1] * mm / sin(theta);
605  } else {
606  const double zLay[19] = {4034.0,
607  4032.0,
608  4123.0,
609  4210.0,
610  4297.0,
611  4384.0,
612  4471.0,
613  4558.0,
614  4645.0,
615  4732.0,
616  4819.0,
617  4906.0,
618  4993.0,
619  5080.0,
620  5167.0,
621  5254.0,
622  5341.0,
623  5428.0,
624  5515.0};
625  if (layer > 0 && layer < 20)
626  dist += zLay[layer - 1] * mm / cos(theta);
627  }
628  double tmp = dist / c_light / ns;
629  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis::timeOfFlight " << tmp << " for det/lay " << det << " " << layer
630  << " eta/theta " << eta << " " << theta / deg << " dist " << dist;
631  return tmp;
632 }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Theta< T > theta() const
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
std::vector< int > HcalTestAnalysis::towersToAdd ( int  centre,
int  nadd 
)
private

Definition at line 98 of file HcalTestAnalysis.cc.

References funct::abs(), PVValHelper::eta, mps_fire::i, SiStripPI::max, phi, phimax, phimin, and groupFilesInBlocks::temp.

Referenced by HcalTestAnalysis().

98  {
99  int etac = (centre / 100) % 100;
100  int phic = (centre % 100);
101  int etamin, etamax, phimin, phimax;
102  if (etac > 0) {
103  etamin = etac - nadd;
104  etamax = etac + nadd;
105  } else {
106  etamin = etac;
107  etamax = etac;
108  }
109  if (phic > 0) {
110  phimin = phic - nadd;
111  phimax = phic + nadd;
112  } else {
113  phimin = phic;
114  phimax = phic;
115  }
116 
117  int nbuf, kount = 0;
118  nbuf = (etamax - etamin + 1) * (phimax - phimin + 1);
119  std::vector<int> temp(2 * nbuf);
120  for (int eta = etamin; eta <= etamax; eta++) {
121  for (int phi = phimin; phi <= phimax; phi++) {
122  temp[kount] = (eta * 100 + phi);
123  temp[kount + nbuf] = std::max(abs(eta - etac), abs(phi - phic));
124  kount++;
125  }
126  }
127 
128  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: Towers to be considered for Central " << centre << " and " << nadd
129  << " on either side";
130  for (int i = 0; i < nbuf; i++)
131  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis: Tower[" << std::setw(3) << i << "] " << temp[i] << " "
132  << temp[nbuf + i];
133  return temp;
134 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void HcalTestAnalysis::update ( const BeginOfJob )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfJob * >.

Definition at line 138 of file HcalTestAnalysis.cc.

References fileName_, hcons_, names_, numberingFromDDD_, org_, edm::ESHandle< T >::product(), and tuplesManager_.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

138  {
139  // Numbering From DDD
141  (*job)()->get<HcalSimNumberingRecord>().get(hdc);
142  hcons_ = hdc.product();
143  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: Initialise HcalNumberingFromDDD for " << names_[0];
145 
146  // Ntuples
148 
149  // Numbering scheme
150  org_ = new HcalTestNumberingScheme(false);
151 }
HcalTestNumberingScheme * org_
std::unique_ptr< HcalNumberingFromDDD > numberingFromDDD_
std::vector< std::string > names_
const HcalDDDSimConstants * hcons_
std::string fileName_
T const * product() const
Definition: ESHandle.h:86
std::unique_ptr< HcalTestHistoManager > tuplesManager_
void HcalTestAnalysis::update ( const BeginOfRun )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfRun * >.

Definition at line 154 of file HcalTestAnalysis.cc.

References HcalDDDSimConstants::cell(), centralTower_, HcalCellType::HcalCell::eta, PVValHelper::eta, eta0_, HcalBarrel, HcalEndcap, HcalForward, hcons_, heppy_loop::loop, names_, HcalCellType::HcalCell::ok, org_, phi, HcalCellType::HcalCell::phi, phi0_, sd, HCalSD::setNumberingScheme(), AlCaHLTBitMon_QueryRunRegistry::string, and tmp.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

154  {
155  int irun = (*run)()->GetRunID();
156  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: Begin of Run = " << irun;
157 
158  bool loop = true, eta = true, phi = true;
159  int etac = (centralTower_ / 100) % 100;
160  if (etac == 0) {
161  etac = 1;
162  eta = false;
163  }
164  int phic = (centralTower_ % 100);
165  if (phic == 0) {
166  phic = 1;
167  phi = false;
168  }
169  int idet = static_cast<int>(HcalBarrel);
170  while (loop) {
171  HcalCellType::HcalCell tmp = hcons_->cell(idet, 1, 1, etac, phic);
172  if (tmp.ok) {
173  if (eta)
174  eta0_ = tmp.eta;
175  if (phi)
176  phi0_ = tmp.phi;
177  loop = false;
178  } else if (idet == static_cast<int>(HcalBarrel)) {
179  idet = static_cast<int>(HcalEndcap);
180  } else if (idet == static_cast<int>(HcalEndcap)) {
181  idet = static_cast<int>(HcalForward);
182  } else {
183  loop = false;
184  }
185  }
186 
187  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: Central Tower " << centralTower_
188  << " corresponds to eta0 = " << eta0_ << " phi0 = " << phi0_;
189 
190  std::string sdname = names_[0];
191  G4SDManager* sd = G4SDManager::GetSDMpointerIfExist();
192  if (sd != nullptr) {
193  G4VSensitiveDetector* aSD = sd->FindSensitiveDetector(sdname);
194  if (aSD == nullptr) {
195  edm::LogWarning("HcalSim") << "HcalTestAnalysis::beginOfRun: No SD with "
196  << "name " << sdname << " in this Setup";
197  } else {
198  HCalSD* theCaloSD = dynamic_cast<HCalSD*>(aSD);
199  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis::beginOfRun: Finds SD with name " << theCaloSD->GetName()
200  << " in this Setup";
201  if (org_) {
202  theCaloSD->setNumberingScheme(org_);
203  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis::beginOfRun: set a new numbering scheme";
204  }
205  }
206  } else {
207  edm::LogWarning("HcalSim") << "HcalTestAnalysis::beginOfRun: Could not get"
208  << " SD Manager!";
209  }
210 }
HcalTestNumberingScheme * org_
std::vector< std::string > names_
HcalCellType::HcalCell cell(const int &det, const int &zside, const int &depth, const int &etaR, const int &iphi) const
void setNumberingScheme(HcalNumberingScheme *)
Definition: HCalSD.cc:532
Definition: HCalSD.h:37
const HcalDDDSimConstants * hcons_
double sd
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
void HcalTestAnalysis::update ( const BeginOfEvent )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfEvent * >.

Definition at line 213 of file HcalTestAnalysis.cc.

References edepEB_, edepEE_, edepHB_, edepHE_, edepHO_, edepl_, mps_fire::i, mudist_, HcalTestHistoClass::setCounters(), and tuples_.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

213  {
214  // create tuple object
215  tuples_ = new HcalTestHistoClass();
216  // Reset counters
217  tuples_->setCounters();
218 
219  int i = 0;
220  edepEB_ = edepEE_ = edepHB_ = edepHE_ = edepHO_ = 0.;
221  for (i = 0; i < 20; i++)
222  edepl_[i] = 0.;
223  for (i = 0; i < 20; i++)
224  mudist_[i] = -1.;
225 
226  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis: Begin of event = " << (*evt)()->GetEventID();
227 }
HcalTestHistoClass * tuples_
void HcalTestAnalysis::update ( const EndOfEvent )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const EndOfEvent * >.

Definition at line 293 of file HcalTestAnalysis.cc.

References count_, fill(), layerAnalysis(), qieAnalysis(), tuples_, and tuplesManager_.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

293  {
294  ++count_;
295  // Fill event input
296  fill(evt);
297  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: --- after Fill";
298 
299  // Qie analysis
300  CLHEP::HepRandomEngine* engine = G4Random::getTheEngine();
301  qieAnalysis(engine);
302  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: --- after QieAnalysis";
303 
304  // Layers tuples filling
305  layerAnalysis();
306  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: --- after LayerAnalysis";
307 
308  // Writing the data to the Tree
309  tuplesManager_.get()->fillTree(tuples_); // (no need to delete it...)
310  tuples_ = nullptr; // but avoid to reuse it...
311  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: --- after fillTree";
312 }
HcalTestHistoClass * tuples_
void fill(const EndOfEvent *ev)
unsigned int count_
void qieAnalysis(CLHEP::HepRandomEngine *)
std::unique_ptr< HcalTestHistoManager > tuplesManager_
void HcalTestAnalysis::update ( const G4Step *  )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const G4Step * >.

Definition at line 230 of file HcalTestAnalysis.cc.

References edepEB_, edepEE_, edepHB_, edepHE_, edepHO_, edepl_, PVValHelper::eta, eta0_, cmsBatch::log, MeV, mudist_, dataset::name, phi, phi0_, mathSSE::sqrt(), funct::tan(), and theta().

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

230  {
231  if (aStep != nullptr) {
232  G4VPhysicalVolume* curPV = aStep->GetPreStepPoint()->GetPhysicalVolume();
233  G4String name = curPV->GetName();
234  name.assign(name, 0, 3);
235  double edeposit = aStep->GetTotalEnergyDeposit();
236  int layer = -1;
237  if (name == "EBR") {
238  edepEB_ += edeposit;
239  } else if (name == "EFR") {
240  edepEE_ += edeposit;
241  } else if (name == "HBS") {
242  layer = (curPV->GetCopyNo() / 10) % 100;
243  if (layer >= 0 && layer < 17) {
244  edepHB_ += edeposit;
245  } else {
246  edm::LogWarning("HcalSim") << "HcalTestAnalysis::Error in HB " << curPV->GetName() << curPV->GetCopyNo();
247  layer = -1;
248  }
249  } else if (name == "HES") {
250  layer = (curPV->GetCopyNo() / 10) % 100;
251  if (layer >= 0 && layer < 19) {
252  edepHE_ += edeposit;
253  } else {
254  edm::LogWarning("HcalSim") << "HcalTestAnalysis::Error in HE " << curPV->GetName() << curPV->GetCopyNo();
255  layer = -1;
256  }
257  } else if (name == "HTS") {
258  layer = (curPV->GetCopyNo() / 10) % 100;
259  if (layer >= 17 && layer < 20) {
260  edepHO_ += edeposit;
261  } else {
262  edm::LogWarning("HcalSim") << "HcalTestAnalysis::Error in HO " << curPV->GetName() << curPV->GetCopyNo();
263  layer = -1;
264  }
265  }
266  if (layer >= 0 && layer < 20) {
267  edepl_[layer] += edeposit;
268 
269  // Calculate the distance if it is a muon
270  G4String part = aStep->GetTrack()->GetDefinition()->GetParticleName();
271  if ((part == "mu-" || part == "mu+") && mudist_[layer] < 0) {
272  math::XYZPoint pos(aStep->GetPreStepPoint()->GetPosition().x(),
273  aStep->GetPreStepPoint()->GetPosition().y(),
274  aStep->GetPreStepPoint()->GetPosition().z());
275  double theta = pos.theta();
276  double eta = -log(tan(theta * 0.5));
277  double phi = pos.phi();
278  double dist = sqrt((eta - eta0_) * (eta - eta0_) + (phi - phi0_) * (phi - phi0_));
279  mudist_[layer] = dist * std::sqrt(pos.perp2());
280  }
281  }
282 
283  if (layer >= 0 && layer < 20) {
284  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: G4Step: " << name << " Layer " << std::setw(3) << layer
285  << " Edep " << std::setw(6) << edeposit / MeV << " MeV";
286  }
287  } else {
288  edm::LogVerbatim("HcalSim") << "HcalTestAnalysis:: G4Step: Null Step";
289  }
290 }
Geom::Theta< T > theta() const
const double MeV
T sqrt(T t)
Definition: SSEVec.h:18
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
part
Definition: HCALResponse.h:20

Member Data Documentation

int HcalTestAnalysis::addTower_
private

Definition at line 66 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), and qieAnalysis().

std::vector<CaloHit> HcalTestAnalysis::caloHitCache_
private

Definition at line 78 of file HcalTestAnalysis.h.

Referenced by fill(), and qieAnalysis().

int HcalTestAnalysis::centralTower_
private

Definition at line 85 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), qieAnalysis(), and update().

unsigned int HcalTestAnalysis::count_
private

Definition at line 88 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), update(), and ~HcalTestAnalysis().

double HcalTestAnalysis::edepEB_
private

Definition at line 89 of file HcalTestAnalysis.h.

Referenced by layerAnalysis(), and update().

double HcalTestAnalysis::edepEE_
private

Definition at line 89 of file HcalTestAnalysis.h.

Referenced by layerAnalysis(), and update().

double HcalTestAnalysis::edepHB_
private

Definition at line 89 of file HcalTestAnalysis.h.

Referenced by layerAnalysis(), and update().

double HcalTestAnalysis::edepHE_
private

Definition at line 89 of file HcalTestAnalysis.h.

Referenced by layerAnalysis(), and update().

double HcalTestAnalysis::edepHO_
private

Definition at line 90 of file HcalTestAnalysis.h.

Referenced by layerAnalysis(), and update().

double HcalTestAnalysis::edepl_[20]
private

Definition at line 90 of file HcalTestAnalysis.h.

Referenced by layerAnalysis(), and update().

double HcalTestAnalysis::eta0_
private

Definition at line 84 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), qieAnalysis(), and update().

std::string HcalTestAnalysis::fileName_
private

Definition at line 62 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), and update().

std::vector<int> HcalTestAnalysis::group_
private

Definition at line 79 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), and qieAnalysis().

const HcalDDDSimConstants* HcalTestAnalysis::hcons_
private

Definition at line 74 of file HcalTestAnalysis.h.

Referenced by update().

double HcalTestAnalysis::mudist_[20]
private

Definition at line 91 of file HcalTestAnalysis.h.

Referenced by layerAnalysis(), and update().

std::unique_ptr<HcalQie> HcalTestAnalysis::myqie_
private

Definition at line 65 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), and qieAnalysis().

std::vector<std::string> HcalTestAnalysis::names_
private

Definition at line 83 of file HcalTestAnalysis.h.

Referenced by fill(), HcalTestAnalysis(), and update().

int HcalTestAnalysis::nGroup_
private

Definition at line 80 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), and qieAnalysis().

int HcalTestAnalysis::nTower_
private

Definition at line 80 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), and qieAnalysis().

std::unique_ptr<HcalNumberingFromDDD> HcalTestAnalysis::numberingFromDDD_
private

Definition at line 73 of file HcalTestAnalysis.h.

Referenced by fill(), HcalTestAnalysis(), qieAnalysis(), and update().

HcalTestNumberingScheme* HcalTestAnalysis::org_
private

Definition at line 75 of file HcalTestAnalysis.h.

Referenced by fill(), qieAnalysis(), update(), and ~HcalTestAnalysis().

double HcalTestAnalysis::phi0_
private

Definition at line 84 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), qieAnalysis(), and update().

std::vector<int> HcalTestAnalysis::tower_
private

Definition at line 79 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), and qieAnalysis().

HcalTestHistoClass* HcalTestAnalysis::tuples_
private

Definition at line 70 of file HcalTestAnalysis.h.

Referenced by layerAnalysis(), qieAnalysis(), update(), and ~HcalTestAnalysis().

std::unique_ptr<HcalTestHistoManager> HcalTestAnalysis::tuplesManager_
private

Definition at line 69 of file HcalTestAnalysis.h.

Referenced by HcalTestAnalysis(), and update().