CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
SimG4HcalValidation Class Reference
Inheritance diagram for SimG4HcalValidation:
SimProducer Observer< const BeginOfRun *> Observer< const BeginOfEvent *> Observer< const EndOfEvent *> Observer< const G4Step *> SimWatcher

Public Member Functions

void beginRun (edm::EventSetup const &) override
 
const SimG4HcalValidationoperator= (const SimG4HcalValidation &)=delete
 
void produce (edm::Event &, const edm::EventSetup &) override
 
void registerConsumes (edm::ConsumesCollector) override
 
 SimG4HcalValidation (const edm::ParameterSet &p)
 
 SimG4HcalValidation (const SimG4HcalValidation &)=delete
 
 ~SimG4HcalValidation () override
 
- Public Member Functions inherited from SimProducer
const SimProduceroperator= (const SimProducer &)=delete
 
void registerProducts (edm::ProducesCollector producesCollector)
 
 SimProducer ()
 
 SimProducer (const SimProducer &)=delete
 
- Public Member Functions inherited from SimWatcher
bool isMT () const
 
const SimWatcheroperator= (const SimWatcher &)=delete
 
 SimWatcher ()
 
 SimWatcher (const SimWatcher &)=delete
 
virtual ~SimWatcher ()
 
- 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 clear ()
 
void collectEnergyRdir (const double, const double)
 
void fetchHits (PHcalValidInfoLayer &)
 
void fill (const EndOfEvent *ev)
 
double getHcalScale (std::string, int) const
 
void init ()
 
void jetAnalysis (PHcalValidInfoJets &)
 
void layerAnalysis (PHcalValidInfoLayer &)
 
void nxNAnalysis (PHcalValidInfoNxN &)
 
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 G4Step *step) 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...
 

Private Attributes

bool applySampling
 
double coneSize
 
unsigned int count
 
edm::ESGetToken< HcalDDDSimConstants, HcalSimNumberingRecordddconsToken_
 
std::vector< double > dEta
 
std::vector< double > dPhi
 
double edepd [5]
 
double edepEB
 
double edepEE
 
double edepHB
 
double edepHE
 
double edepHO
 
double edepl [20]
 
double een
 
double ehitThreshold
 
double enEcal
 
double enHcal
 
float eta0
 
bool hcalOnly
 
double hen
 
double hhitThreshold
 
std::vector< CaloHithitcache
 
double hoen
 
int infolevel
 
std::unique_ptr< SimG4HcalHitJetFinderjetf
 
float jetThreshold
 
std::string labelJets
 
std::string labelLayer
 
std::string labelNxN
 
std::vector< std::string > names
 
std::unique_ptr< HcalNumberingFromDDDnumberingFromDDD
 
std::unique_ptr< HcalTestNumberingSchemeorg
 
float phi0
 
std::vector< float > scaleHB
 
std::vector< float > scaleHE
 
std::vector< float > scaleHF
 
float timeLowlim
 
float timeUplim
 
double vhitec
 
double vhithc
 

Additional Inherited Members

- Protected Member Functions inherited from SimProducer
template<class T >
void produces ()
 
template<class T >
void produces (const std::string &instanceName)
 
- Protected Member Functions inherited from SimWatcher
void setMT (bool val)
 

Detailed Description

Definition at line 53 of file SimG4HcalValidation.cc.

Constructor & Destructor Documentation

◆ SimG4HcalValidation() [1/2]

SimG4HcalValidation::SimG4HcalValidation ( const edm::ParameterSet p)

Definition at line 127 of file SimG4HcalValidation.cc.

References HLT_2024v14_cff::coneSize, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), init, METSignificanceParams_cfi::jetThreshold, names, AlCaHLTBitMon_ParallelJobs::p, and AlCaHLTBitMon_QueryRunRegistry::string.

127  {
128  edm::ParameterSet m_Anal = p.getParameter<edm::ParameterSet>("SimG4HcalValidation");
129  infolevel = m_Anal.getParameter<int>("InfoLevel");
130  hcalOnly = m_Anal.getParameter<bool>("HcalClusterOnly");
131  applySampling = m_Anal.getParameter<bool>("HcalSampling");
132  coneSize = m_Anal.getParameter<double>("ConeSize");
133  ehitThreshold = m_Anal.getParameter<double>("EcalHitThreshold");
134  hhitThreshold = m_Anal.getParameter<double>("HcalHitThreshold");
135  timeLowlim = m_Anal.getParameter<double>("TimeLowLimit");
136  timeUplim = m_Anal.getParameter<double>("TimeUpLimit");
137  jetThreshold = m_Anal.getParameter<double>("JetThreshold");
138  eta0 = m_Anal.getParameter<double>("Eta0");
139  phi0 = m_Anal.getParameter<double>("Phi0");
140  names = m_Anal.getParameter<std::vector<std::string>>("Names");
141  labelLayer = m_Anal.getUntrackedParameter<std::string>("LabelLayerInfo", "HcalInfoLayer");
142  labelNxN = m_Anal.getUntrackedParameter<std::string>("LabelNxNInfo", "HcalInfoNxN");
143  labelJets = m_Anal.getUntrackedParameter<std::string>("LabelJetsInfo", "HcalInfoJets");
144 
145  produces<PHcalValidInfoLayer>(labelLayer);
146  if (infolevel > 0)
147  produces<PHcalValidInfoNxN>(labelNxN);
148  if (infolevel > 1)
149  produces<PHcalValidInfoJets>(labelJets);
150 
151  edm::LogVerbatim("ValidHcal") << "HcalTestAnalysis:: Initialized as observer of begin/end events and "
152  << "of G4step with Parameter values: \n\tInfoLevel = " << infolevel
153  << "\n\thcalOnly = " << hcalOnly << "\n\tapplySampling = " << applySampling
154  << "\n\tconeSize = " << coneSize << "\n\tehitThreshold = " << ehitThreshold
155  << "\n\thhitThreshold = " << hhitThreshold << "\n\tttimeLowlim = " << timeLowlim
156  << "\n\tttimeUplim = " << timeUplim << "\n\teta0 = " << eta0
157  << "\n\tphi0 = " << phi0 << "\nLabels (Layer): " << labelLayer
158  << " (NxN): " << labelNxN << " (Jets): " << labelJets;
159 
160  init();
161 }
Log< level::Info, true > LogVerbatim
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::vector< std::string > names
T getUntrackedParameter(std::string const &, T const &) const

◆ SimG4HcalValidation() [2/2]

SimG4HcalValidation::SimG4HcalValidation ( const SimG4HcalValidation )
delete

◆ ~SimG4HcalValidation()

SimG4HcalValidation::~SimG4HcalValidation ( )
override

Definition at line 163 of file SimG4HcalValidation.cc.

References submitPVResolutionJobs::count.

163  {
164  edm::LogVerbatim("ValidHcal") << "\n --------> Total number of selected entries"
165  << " : " << count;
166 }
Log< level::Info, true > LogVerbatim

Member Function Documentation

◆ beginRun()

void SimG4HcalValidation::beginRun ( edm::EventSetup const &  es)
overridevirtual

Reimplemented from SimWatcher.

Definition at line 224 of file SimG4HcalValidation.cc.

References edm::EventSetup::getData().

224  {
225  // Numbering From DDD
226  const HcalDDDSimConstants *hcons = &es.getData(ddconsToken_);
227  edm::LogVerbatim("ValidHcal") << "HcalTestAnalysis:: Initialise HcalNumberingFromDDD";
228  numberingFromDDD = std::make_unique<HcalNumberingFromDDD>(hcons);
229 
230  // Numbering scheme
231  org = std::make_unique<HcalTestNumberingScheme>(false);
232 }
Log< level::Info, true > LogVerbatim
std::unique_ptr< HcalNumberingFromDDD > numberingFromDDD
edm::ESGetToken< HcalDDDSimConstants, HcalSimNumberingRecord > ddconsToken_
std::unique_ptr< HcalTestNumberingScheme > org

◆ clear()

void SimG4HcalValidation::clear ( void  )
private

Definition at line 754 of file SimG4HcalValidation.cc.

754 { hitcache.erase(hitcache.begin(), hitcache.end()); }
std::vector< CaloHit > hitcache

◆ collectEnergyRdir()

void SimG4HcalValidation::collectEnergyRdir ( const double  eta0,
const double  phi0 
)
private

Definition at line 757 of file SimG4HcalValidation.cc.

References HLT_2024v14_cff::coneSize, MillePedeFileConverter_cfg::e, PVValHelper::eta, HcalBarrel, and hfClusterShapes_cfi::hits.

757  {
758  std::vector<CaloHit> *hits = &hitcache;
759  std::vector<CaloHit>::iterator hit_itr;
760 
761  double sume = 0., sumh = 0., sumho = 0.;
762 
763  for (hit_itr = hits->begin(); hit_itr < hits->end(); hit_itr++) {
764  double e = hit_itr->e();
765  double eta = hit_itr->eta();
766  double phi = hit_itr->phi();
767 
768  int type = hit_itr->det();
769 
770  double r = jetf->rDist(eta0, phi0, eta, phi);
771  if (r < coneSize) {
772  if (type == 10 || type == 11 || type == 12) {
773  sume += e;
774  } else {
775  sumh += e;
776  if (type == static_cast<int>(HcalBarrel) && hit_itr->layer() > 17)
777  sumho += e;
778  }
779  }
780  }
781 
782  een = sume;
783  hen = sumh;
784  hoen = sumho;
785 }
std::vector< CaloHit > hitcache
std::unique_ptr< SimG4HcalHitJetFinder > jetf

◆ fetchHits()

void SimG4HcalValidation::fetchHits ( PHcalValidInfoLayer product)
private

Definition at line 690 of file SimG4HcalValidation.cc.

References TauDecayModes::dec, PVValHelper::eta, PHcalValidInfoLayer::fillHits(), watchdog::group, mps_fire::i, hcalRecHitTable_cff::ieta, hcalRecHitTable_cff::iphi, relval_steps::k2, LogDebug, nHits, jetUpdater_cfi::sort, submitPVValidationJobs::t, HcalTestNumbering::unpackHcalIndex(), and ecaldqm::zside().

690  {
691  LogDebug("ValidHcal") << "Enter SimG4HcalValidation::fetchHits with " << hitcache.size() << " hits";
692  int nHit = hitcache.size();
693  int hit = 0;
694  int i;
695  std::vector<CaloHit>::iterator itr;
696  std::vector<CaloHit *> lhits(nHit);
697  for (i = 0, itr = hitcache.begin(); itr != hitcache.end(); i++, itr++) {
698  uint32_t unitID = itr->id();
699  int subdet, zside, group, ieta, iphi, lay;
700  HcalTestNumbering::unpackHcalIndex(unitID, subdet, zside, group, ieta, iphi, lay);
701  subdet = itr->det();
702  lay = itr->layer();
703  group = (subdet & 15) << 20;
704  group += ((lay - 1) & 31) << 15;
705  group += (zside & 1) << 14;
706  group += (ieta & 127) << 7;
707  group += (iphi & 127);
708  itr->setId(group);
709  lhits[i] = &hitcache[i];
710  LogDebug("ValidHcal") << "SimG4HcalValidation::fetchHits:Original " << i << " " << hitcache[i] << "\n"
711  << "SimG4HcalValidation::fetchHits:Copied " << i << " " << *lhits[i];
712  }
713  sort(lhits.begin(), lhits.end(), CaloHitIdMore());
714  std::vector<CaloHit *>::iterator k1, k2;
715  for (i = 0, k1 = lhits.begin(); k1 != lhits.end(); i++, k1++)
716  LogDebug("ValidHcal") << "SimG4HcalValidation::fetchHits:Sorted " << i << " " << **k1;
717  int nHits = 0;
718  for (i = 0, k1 = lhits.begin(); k1 != lhits.end(); i++, k1++) {
719  double ehit = (**k1).e();
720  double t = (**k1).t();
721  uint32_t unitID = (**k1).id();
722  int jump = 0;
723  LogDebug("ValidHcal") << "SimG4HcalValidation::fetchHits:Start " << i << " U/T/E"
724  << " 0x" << std::hex << unitID << std::dec << " " << t << " " << ehit;
725  for (k2 = k1 + 1; k2 != lhits.end() && (t - (**k2).t()) < 1 && (t - (**k2).t()) > -1 && unitID == (**k2).id();
726  k2++) {
727  ehit += (**k2).e();
728  LogDebug("ValidHcal") << "\t + " << (**k2).e();
729  jump++;
730  }
731  LogDebug("ValidHcal") << "\t = " << ehit << " in " << jump;
732 
733  double eta = (*k1)->eta();
734  double phi = (*k1)->phi();
735  int lay = ((unitID >> 15) & 31) + 1;
736  int subdet = (unitID >> 20) & 15;
737 
738  // All hits in cache
739  product.fillHits(nHits, lay, subdet, eta, phi, ehit, t);
740  nHits++;
741 
742  LogDebug("ValidHcal") << "SimG4HcalValidation::fetchHits:Hit " << nHits << " " << i << " ID 0x" << std::hex
743  << unitID << " det " << std::dec << subdet << " " << lay << " " << ((unitID >> 14) & 1)
744  << " " << ((unitID >> 7) & 127) << " " << ((unitID) & 127) << " Time " << t << " E " << ehit;
745 
746  i += jump;
747  k1 += jump;
748  }
749 
750  LogDebug("ValidHcal") << "SimG4HcalValidation::fetchHits called with " << nHit << " hits"
751  << " and writes out " << nHits << '(' << hit << ") hits";
752 }
std::vector< CaloHit > hitcache
int zside(DetId const &)
void fillHits(int Nhits, int lay, int unitID, double eta, double phi, double ehit, double t)
static void unpackHcalIndex(const uint32_t &idx, int &det, int &z, int &depth, int &eta, int &phi, int &lay)
TupleMultiplicity< TrackerTraits > const *__restrict__ uint32_t nHits
#define LogDebug(id)

◆ fill()

void SimG4HcalValidation::fill ( const EndOfEvent ev)
private

Definition at line 345 of file SimG4HcalValidation.cc.

References angle_units::operators::convertRadToDeg(), TauDecayModes::dec, hcalRecHitTable_cff::depth, MillePedeFileConverter_cfg::e, PVValHelper::eta, CaloG4Hit::getDepth(), CaloG4Hit::getEnergyDeposit(), CaloG4Hit::getPosition(), CaloG4Hit::getTimeSlice(), CaloG4Hit::getUnitID(), HcalEndcap, HcalForward, hcalRecHitTable_cff::ieta, createfilelist::int, hcalRecHitTable_cff::iphi, dqmiolumiharvest::j, CrabHelper::log, LogDebug, names, TrackingDataMCValidation_Standalone_cff::nhits, AlCaHLTBitMon_QueryRunRegistry::string, funct::tan(), tauSpinnerTable_cfi::theta, hcalRecHitTable_cff::time, and ecaldqm::zside().

345  {
346  LogDebug("ValidHcal") << "SimG4HcalValidation:Fill event " << (*evt)()->GetEventID();
347 
348  // access to the G4 hit collections
349  G4HCofThisEvent *allHC = (*evt)()->GetHCofThisEvent();
350 
351  int nhc = 0, j = 0;
352 
353  // Hcal
354  int HCHCid = G4SDManager::GetSDMpointer()->GetCollectionID(names[0]);
355  CaloG4HitCollection *theHCHC = (CaloG4HitCollection *)allHC->GetHC(HCHCid);
356  LogDebug("ValidHcal") << "SimG4HcalValidation :: Hit Collection for " << names[0] << " of ID " << HCHCid
357  << " is obtained at " << theHCHC;
358  if (HCHCid >= 0 && theHCHC != nullptr) {
359  int nhits = theHCHC->entries();
360  for (j = 0; j < nhits; j++) {
361  CaloG4Hit *aHit = (*theHCHC)[j];
362 
363  double e = aHit->getEnergyDeposit() / GeV;
364  double time = aHit->getTimeSlice();
365 
366  math::XYZPoint pos = aHit->getPosition();
367  double theta = pos.theta();
368  double eta = -log(tan(theta * 0.5));
369  double phi = pos.phi();
370 
371  uint32_t unitID = aHit->getUnitID();
372  int subdet, zside, layer, etaIndex, phiIndex, lay;
373  org->unpackHcalIndex(unitID, subdet, zside, layer, etaIndex, phiIndex, lay);
374 
375  // some logic to separate HO ...
376  layer--;
377  std::string det = "HB";
378  if (subdet == static_cast<int>(HcalForward)) {
379  det = "HF";
380  uint16_t depth = aHit->getDepth();
381  if (depth != 0) {
382  layer += 2;
383  lay += 2;
384  }
385  if (layer == 1)
386  vhithc += e;
387  else if (layer == 0)
388  vhitec += e;
389  else
390  edm::LogVerbatim("ValidHcal") << "SimG4HcalValidation::HitPMT " << subdet << " " << (2 * zside - 1) * etaIndex
391  << " " << phiIndex << " " << layer + 1 << " R " << pos.rho() << " Phi "
392  << convertRadToDeg(phi) << " Edep " << e << " Time " << time;
393  } else if (subdet == static_cast<int>(HcalEndcap)) {
394  if (etaIndex <= 20) {
395  det = "HES";
396  } else {
397  det = "HED";
398  }
399  }
400  LogDebug("ValidHcal") << "SimG4HcalValidation::debugFill Hcal " << det << " layer " << std::setw(2) << layer
401  << " lay " << std::setw(2) << lay << " time " << std::setw(6) << time << " theta "
402  << std::setw(8) << theta << " eta " << std::setw(8) << eta << " phi " << std::setw(8) << phi
403  << " e " << std::setw(8) << e << " ID 0x" << std::hex << unitID << " ID dec " << std::dec
404  << (int)unitID;
405 
406  // if desired, apply sampling factors in HCAL !!!
407  if (applySampling)
408  e *= getHcalScale(det, layer);
409 
410  // filter on time & energy
411  if (time >= timeLowlim && time <= timeUplim && e > hhitThreshold) {
412  enHcal += e;
413  CaloHit ahit(subdet, lay, e, eta, phi, time, unitID);
414  hitcache.push_back(ahit); // fill cache
415  ++nhc;
416  }
417  }
418  }
419  LogDebug("ValidHcal") << "SimG4HcalValidation:: HCAL hits : " << nhc;
420 
421  if (!hcalOnly) { //-------------------------- ECAL hits --------------------
422  int ndets = names.size();
423  if (ndets > 3)
424  ndets = 3;
425  for (int idty = 1; idty < ndets; idty++) {
426  std::string det = "EB";
427  if (idty == 2)
428  det = "EE";
429  else if (idty > 2)
430  det = "ES";
431 
432  int nec = 0;
433  int ECHCid = G4SDManager::GetSDMpointer()->GetCollectionID(names[idty]);
434  CaloG4HitCollection *theECHC = (CaloG4HitCollection *)allHC->GetHC(ECHCid);
435  LogDebug("ValidHcal") << "SimG4HcalValidation:: Hit Collection for " << names[idty] << " of ID " << ECHCid
436  << " is obtained at " << theECHC;
437  int theechc_entries = theECHC->entries();
438  if (ECHCid >= 0 && theECHC != nullptr) {
439  for (j = 0; j < theechc_entries; j++) {
440  CaloG4Hit *aHit = (*theECHC)[j];
441 
442  double e = aHit->getEnergyDeposit() / GeV;
443  double time = aHit->getTimeSlice();
444 
445  math::XYZPoint pos = aHit->getPosition();
446  double theta = pos.theta();
447  double eta = -log(tan(theta / 2.));
448  double phi = pos.phi();
450  uint32_t unitID = org->getUnitID(id);
451  int subdet, zside, layer, ieta, iphi, lay;
452  org->unpackHcalIndex(unitID, subdet, zside, layer, ieta, iphi, lay);
453  subdet = idty + 9;
454  layer = 0;
455  unitID = org->packHcalIndex(subdet, zside, layer, ieta, iphi, lay);
456 
457  // filter on time & energy
458  if (time >= timeLowlim && time <= timeUplim && e > ehitThreshold) {
459  enEcal += e;
460  CaloHit ahit(subdet, lay, e, eta, phi, time, unitID);
461  hitcache.push_back(ahit); // fill cache
462  ++nec;
463  }
464 
465  LogDebug("ValidHcal") << "SimG4HcalValidation::debugFill Ecal " << det << " layer " << std::setw(2) << layer
466  << " lay " << std::setw(2) << lay << " time " << std::setw(6) << time << " theta "
467  << std::setw(8) << theta << " eta " << std::setw(8) << eta << " phi " << std::setw(8)
468  << phi << " e " << std::setw(8) << e << " ID 0x" << std::hex << unitID << " ID dec "
469  << std::dec << (int)unitID;
470  }
471  }
472 
473  LogDebug("ValidHcal") << "SimG4HcalValidation:: " << det << " hits : " << nec;
474  }
475  } // end of if(!hcalOnly)
476 }
Log< level::Info, true > LogVerbatim
double getHcalScale(std::string, int) const
std::unique_ptr< HcalNumberingFromDDD > numberingFromDDD
std::vector< std::string > names
constexpr NumType convertRadToDeg(NumType radians)
Definition: angle_units.h:21
std::vector< CaloHit > hitcache
uint16_t getDepth() const
Definition: CaloG4Hit.h:69
int zside(DetId const &)
math::XYZPoint getPosition() const
Definition: CaloG4Hit.h:52
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
double getEnergyDeposit() const
Definition: CaloG4Hit.h:79
uint32_t getUnitID() const
Definition: CaloG4Hit.h:66
std::unique_ptr< HcalTestNumberingScheme > org
G4THitsCollection< CaloG4Hit > CaloG4HitCollection
double getTimeSlice() const
Definition: CaloG4Hit.h:67
#define LogDebug(id)

◆ getHcalScale()

double SimG4HcalValidation::getHcalScale ( std::string  det,
int  layer 
) const
private

Definition at line 788 of file SimG4HcalValidation.cc.

References createJobs::tmp.

788  {
789  double tmp = 0.;
790 
791  if (det == "HB") {
792  tmp = scaleHB[layer];
793  } else if (det == "HES" || det == "HED") {
794  tmp = scaleHE[layer];
795  } else if (det == "HF") {
796  tmp = scaleHF[layer];
797  }
798 
799  return tmp;
800 }
std::vector< float > scaleHF
std::vector< float > scaleHB
std::vector< float > scaleHE
tmp
align.sh
Definition: createJobs.py:716

◆ init()

void SimG4HcalValidation::init ( void  )
private

Definition at line 192 of file SimG4HcalValidation.cc.

References HLT_2024v14_cff::coneSize, submitPVResolutionJobs::count, HLT_2024v14_cff::dEta, and mps_fire::i.

192  {
193  float sHB[4] = {117., 117., 178., 217.};
194  float sHE[3] = {178., 178., 178.};
195  float sHF[3] = {2.84, 2.09, 0.}; //
196 
197  float deta[4] = {0.0435, 0.1305, 0.2175, 0.3045};
198  float dphi[4] = {0.0436, 0.1309, 0.2182, 0.3054};
199 
200  int i = 0;
201  for (i = 0; i < 4; i++) {
202  scaleHB.push_back(sHB[i]);
203  }
204  for (i = 0; i < 3; i++) {
205  scaleHE.push_back(sHE[i]);
206  }
207  for (i = 0; i < 3; i++) {
208  scaleHF.push_back(sHF[i]);
209  }
210 
211  // window steps;
212  for (i = 0; i < 4; i++) {
213  dEta.push_back(deta[i]);
214  dPhi.push_back(dphi[i]);
215  }
216 
217  // jetfinder conse size setting
218  jetf = std::make_unique<SimG4HcalHitJetFinder>(coneSize);
219 
220  // counter
221  count = 0;
222 }
std::vector< float > scaleHF
std::vector< double > dEta
std::vector< double > dPhi
std::vector< float > scaleHB
std::unique_ptr< SimG4HcalHitJetFinder > jetf
std::vector< float > scaleHE

◆ jetAnalysis()

void SimG4HcalValidation::jetAnalysis ( PHcalValidInfoJets product)
private

Definition at line 568 of file SimG4HcalValidation.cc.

References funct::cos(), MillePedeFileConverter_cfg::e, PHcalValidInfoJets::fillDiJets(), PHcalValidInfoJets::fillEcollectJet(), PHcalValidInfoJets::fillEtaPhiProfileJet(), PHcalValidInfoJets::fillJets(), PHcalValidInfoJets::fillTProfileJet(), HcalBarrel, HcalEndcap, HcalForward, Hcal_Conditions_forGlobalTag_cff::he, hfClusterShapes_cfi::hits, electrons_cff::hoe, mps_fire::i, METSignificanceParams_cfi::jetThreshold, LogDebug, mps_fire::result, funct::sin(), jetUpdater_cfi::sort, mathSSE::sqrt(), suppress, and submitPVValidationJobs::t.

568  {
569  std::vector<CaloHit> *hhit = &hitcache;
570 
571  jetf->setInput(hhit);
572 
573  // zeroing cluster list, perfom clustering, fill cluster list & return pntr
574  std::vector<SimG4HcalHitCluster> *result = jetf->getClusters(hcalOnly);
575 
576  std::vector<SimG4HcalHitCluster>::iterator clus_itr;
577 
578  LogDebug("ValidHcal") << "\n ---------- Final list of " << (*result).size() << " clusters ---------------";
579  for (clus_itr = result->begin(); clus_itr < result->end(); clus_itr++)
580  LogDebug("ValidHcal") << (*clus_itr);
581 
582  std::vector<double> enevec, etavec, phivec;
583 
584  if (!(*result).empty()) {
585  sort((*result).begin(), (*result).end());
586 
587  clus_itr = result->begin(); // first cluster only
588  double etac = clus_itr->eta();
589  double phic = clus_itr->phi();
590 
591  double ecal_collect = 0.; // collect Ecal energy in the cone
592  if (!hcalOnly) {
593  [[clang::suppress]] ecal_collect = clus_itr->collectEcalEnergyR();
594  } else {
595  collectEnergyRdir(etac, phic);
596  [[clang::suppress]] ecal_collect = een;
597  }
598  LogDebug("ValidHcal") << " JetAnalysis ===> ecal_collect = " << ecal_collect;
599 
600  // eta-phi deviation of the cluster from nominal (eta0, phi0) values
601  double dist = jetf->rDist(eta0, phi0, etac, phic);
602  LogDebug("ValidHcal") << " JetAnalysis ===> eta phi deviation = " << dist;
603  product.fillEtaPhiProfileJet(eta0, phi0, etac, phic, dist);
604 
605  LogDebug("ValidHcal") << " JetAnalysis ===> after fillEtaPhiProfileJet";
606 
607  std::vector<CaloHit> *hits = clus_itr->getHits();
608  std::vector<CaloHit>::iterator hit_itr;
609 
610  double ee = 0., he = 0., hoe = 0., etot = 0.;
611 
612  // cycle over all hits in the FIRST cluster
613  for (hit_itr = hits->begin(); hit_itr < hits->end(); hit_itr++) {
614  double e = hit_itr->e();
615  double t = hit_itr->t();
616  double r = jetf->rDist(&(*clus_itr), &(*hit_itr));
617 
618  // energy collection
619  etot += e;
620  if (hit_itr->det() == 10 || hit_itr->det() == 11 || hit_itr->det() == 12)
621  ee += e;
622  if (hit_itr->det() == static_cast<int>(HcalBarrel) || hit_itr->det() == static_cast<int>(HcalEndcap) ||
623  hit_itr->det() == static_cast<int>(HcalForward)) {
624  he += e;
625  if (hit_itr->det() == static_cast<int>(HcalBarrel) && hit_itr->layer() > 17)
626  hoe += e;
627  }
628 
629  if (hit_itr->det() == static_cast<int>(HcalBarrel) || hit_itr->det() == static_cast<int>(HcalEndcap) ||
630  hit_itr->det() == static_cast<int>(HcalForward)) {
631  product.fillTProfileJet(he, r, t);
632  }
633  }
634 
635  product.fillEcollectJet(ee, he, hoe, etot);
636 
637  LogDebug("ValidHcal") << " JetAnalysis ===> after fillEcollectJet: "
638  << "ee/he/hoe/etot " << ee << "/" << he << "/" << hoe << "/" << etot;
639 
640  // Loop over clusters
641  for (clus_itr = result->begin(); clus_itr < result->end(); clus_itr++) {
642  if (clus_itr->e() > jetThreshold) {
643  enevec.push_back(clus_itr->e());
644  etavec.push_back(clus_itr->eta());
645  phivec.push_back(clus_itr->phi());
646  }
647  }
648  product.fillJets(enevec, etavec, phivec);
649 
650  LogDebug("ValidHcal") << " JetAnalysis ===> after fillJets\n"
651  << " JetAnalysis ===> (*result).size() " << (*result).size();
652 
653  // Di-jet mass
654  if (etavec.size() > 1) {
655  if (etavec[0] > -2.5 && etavec[0] < 2.5 && etavec[1] > -2.5 && etavec[1] < 2.5) {
656  LogDebug("ValidHcal") << " JetAnalysis ===> Di-jet mass enter\n"
657  << " JetAnalysis ===> Di-jet vectors ";
658  for (unsigned int i = 0; i < enevec.size(); i++)
659  LogDebug("ValidHcal") << " e, eta, phi = " << enevec[i] << " " << etavec[i] << " " << phivec[i];
660 
661  double et0 = enevec[0] / cosh(etavec[0]);
662  double px0 = et0 * cos(phivec[0]);
663  double py0 = et0 * sin(phivec[0]);
664  double pz0 = et0 * sinh(etavec[0]);
665  double et1 = enevec[1] / cosh(etavec[1]);
666  double px1 = et1 * cos(phivec[1]);
667  double py1 = et1 * sin(phivec[1]);
668  double pz1 = et1 * sinh(etavec[1]);
669 
670  double dijetmass2 = (enevec[0] + enevec[1]) * (enevec[0] + enevec[1]) - (px1 + px0) * (px1 + px0) -
671  (py1 + py0) * (py1 + py0) - (pz1 + pz0) * (pz1 + pz0);
672 
673  LogDebug("ValidHcal") << " JetAnalysis ===> Di-jet massSQ " << dijetmass2;
674 
675  double dijetmass;
676  if (dijetmass2 >= 0.)
677  dijetmass = sqrt(dijetmass2);
678  else
679  dijetmass = -sqrt(-1. * dijetmass2);
680 
681  product.fillDiJets(dijetmass);
682 
683  LogDebug("ValidHcal") << " JetAnalysis ===> after fillDiJets";
684  }
685  }
686  }
687 }
void fillJets(const std::vector< double > &enj, const std::vector< double > &etaj, const std::vector< double > &phij)
void fillTProfileJet(double e, double r, double t)
void fillEcollectJet(double ee, double he, double hoe, double etot)
void collectEnergyRdir(const double, const double)
void fillEtaPhiProfileJet(double eta0, double phi0, double eta, double phi, double dist)
std::vector< CaloHit > hitcache
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
void fillDiJets(double mass)
T sqrt(T t)
Definition: SSEVec.h:23
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
std::unique_ptr< SimG4HcalHitJetFinder > jetf
#define LogDebug(id)

◆ layerAnalysis()

void SimG4HcalValidation::layerAnalysis ( PHcalValidInfoLayer product)
private

Definition at line 478 of file SimG4HcalValidation.cc.

References PHcalValidInfoLayer::fillHF(), PHcalValidInfoLayer::fillLayers(), mps_fire::i, and LogDebug.

478  {
479  int i = 0;
480  LogDebug("ValidHcal") << "\n ===>>> SimG4HcalValidation: Energy deposit "
481  << "in MeV\n at EB : " << std::setw(6) << edepEB / MeV << "\n at EE : " << std::setw(6)
482  << edepEE / MeV << "\n at HB : " << std::setw(6) << edepHB / MeV
483  << "\n at HE : " << std::setw(6) << edepHE / MeV << "\n at HO : " << std::setw(6)
484  << edepHO / MeV << "\n ---- SimG4HcalValidation: Energy deposit in";
485  for (i = 0; i < 5; i++)
486  LogDebug("ValidHcal") << " Depth " << std::setw(2) << i << " E " << std::setw(8) << edepd[i] / MeV << " MeV";
487  LogDebug("ValidHcal") << " ---- SimG4HcalValidation: Energy deposit in"
488  << "layers";
489  for (i = 0; i < 20; i++)
490  LogDebug("ValidHcal") << " Layer " << std::setw(2) << i << " E " << std::setw(8) << edepl[i] / MeV << " MeV";
491 
493 
494  // Hits in HF
495  product.fillHF(vhitec, vhithc, enEcal, enHcal);
496  LogDebug("ValidHcal") << "SimG4HcalValidation::HF hits " << vhitec << " in EC and " << vhithc << " in HC\n"
497  << " HB/HE " << enEcal << " in EC and " << enHcal << " in HC";
498 
499  // Another HCAL hist to porcess and store separately (a bit more complicated)
500  fetchHits(product);
501 
502  LogDebug("ValidHcal") << " layerAnalysis ===> after fetchHits";
503 }
void fillLayers(double el[], double ed[], double ho, double hbhe, double ebee)
void fetchHits(PHcalValidInfoLayer &)
void fillHF(double fibl, double fibs, double enec, double enhc)
#define LogDebug(id)

◆ nxNAnalysis()

void SimG4HcalValidation::nxNAnalysis ( PHcalValidInfoNxN product)
private

Definition at line 506 of file SimG4HcalValidation.cc.

References HLT_2024v14_cff::dEta, MillePedeFileConverter_cfg::e, PVValHelper::eta, PHcalValidInfoNxN::fillEcollectNxN(), PHcalValidInfoNxN::fillHvsE(), PHcalValidInfoNxN::fillTProfileNxN(), HcalBarrel, HcalEndcap, HcalForward, Hcal_Conditions_forGlobalTag_cff::he, hfClusterShapes_cfi::hits, electrons_cff::hoe, mps_fire::i, LogDebug, WZElectronSkims53X_cff::max, and submitPVValidationJobs::t.

506  {
507  std::vector<CaloHit> *hits = &hitcache;
508  std::vector<CaloHit>::iterator hit_itr;
509 
510  LogDebug("ValidHcal") << "SimG4HcalValidation::NxNAnalysis : entrance ";
511 
512  collectEnergyRdir(eta0, phi0); // HCAL and ECAL energy in SimHitCache
513  // around (eta0,phi0)
514 
515  LogDebug("ValidHcal") << " NxNAnalysis : coolectEnergyRdir - Ecal " << een << " Hcal " << hen;
516 
517  double etot = 0.; // total e deposited in "cluster"
518  double ee = 0.; // ECAL e deposited in "cluster"
519  double he = 0.; // HCAL e deposited in "cluster"
520  double hoe = 0.; // HO e deposited in "cluster"
521 
522  int max = dEta.size(); // 4
523 
524  for (hit_itr = hits->begin(); hit_itr < hits->end(); hit_itr++) {
525  double e = hit_itr->e();
526  double t = hit_itr->t();
527  double eta = hit_itr->eta();
528  double phi = hit_itr->phi();
529  int type = hit_itr->det();
530  int layer = hit_itr->layer();
531 
532  // NxN calulation
533 
534  if (fabs(eta0 - eta) <= dEta[max - 1] && fabs(phi0 - phi) <= dPhi[max - 1]) {
535  etot += e;
536  if (type == 10 || type == 11 || type == 12)
537  ee += e;
538  if (type == static_cast<int>(HcalBarrel) || type == static_cast<int>(HcalEndcap) ||
539  type == static_cast<int>(HcalForward)) {
540  he += e;
541  if (type == static_cast<int>(HcalBarrel) && layer > 17)
542  hoe += e;
543 
544  // which concrete i-th square ?
545  for (int i = 0; i < max; i++) {
546  if ((eta0 - eta) <= dEta[i] && (eta0 - eta) >= -dEta[i] && (phi0 - phi) <= dPhi[i] &&
547  (phi0 - phi) >= -dPhi[i]) {
548  LogDebug("ValidHcal") << "SimG4HcalValidation:: nxNAnalysis eta0,"
549  << " phi0 = " << eta0 << " " << phi0 << " type, layer = " << type << "," << layer
550  << " eta, phi = " << eta << " " << phi;
551 
552  product.fillTProfileNxN(e, i, t);
553  break;
554  }
555  }
556  // here comes break ...
557  }
558  }
559  }
560 
561  product.fillEcollectNxN(ee, he, hoe, etot);
562  product.fillHvsE(een, hen, hoen, een + hen);
563 
564  LogDebug("ValidHcal") << " nxNAnalysis ===> after fillHvsE";
565 }
void fillHvsE(double ee, double he, double hoe, double etot)
void collectEnergyRdir(const double, const double)
std::vector< CaloHit > hitcache
std::vector< double > dEta
std::vector< double > dPhi
void fillEcollectNxN(double een, double hen, double hoen, double etotn)
void fillTProfileNxN(double e, int i, double t)
#define LogDebug(id)

◆ operator=()

const SimG4HcalValidation& SimG4HcalValidation::operator= ( const SimG4HcalValidation )
delete

◆ produce()

void SimG4HcalValidation::produce ( edm::Event e,
const edm::EventSetup  
)
overridevirtual

Implements SimProducer.

Definition at line 173 of file SimG4HcalValidation.cc.

References MillePedeFileConverter_cfg::e, jetAnalyzer_cfi::jetAnalysis, and eostools::move().

173  {
174  std::unique_ptr<PHcalValidInfoLayer> productLayer(new PHcalValidInfoLayer);
175  layerAnalysis(*productLayer);
176  e.put(std::move(productLayer), labelLayer);
177 
178  if (infolevel > 0) {
179  std::unique_ptr<PHcalValidInfoNxN> productNxN(new PHcalValidInfoNxN);
180  nxNAnalysis(*productNxN);
181  e.put(std::move(productNxN), labelNxN);
182  }
183 
184  if (infolevel > 1) {
185  std::unique_ptr<PHcalValidInfoJets> productJets(new PHcalValidInfoJets);
186  jetAnalysis(*productJets);
187  e.put(std::move(productJets), labelJets);
188  }
189 }
void jetAnalysis(PHcalValidInfoJets &)
void nxNAnalysis(PHcalValidInfoNxN &)
void layerAnalysis(PHcalValidInfoLayer &)
def move(src, dest)
Definition: eostools.py:511

◆ registerConsumes()

void SimG4HcalValidation::registerConsumes ( edm::ConsumesCollector  cc)
overridevirtual

Reimplemented from SimWatcher.

Definition at line 168 of file SimG4HcalValidation.cc.

References edm::BeginRun, and gpuPixelDoublets::cc.

168  {
170  edm::LogVerbatim("ValidHcal") << "SimG4HcalValidation::Initialize ESGetToken for HcalDDDSimConstants";
171 }
Log< level::Info, true > LogVerbatim
uint32_t cc[maxCellsPerHit]
Definition: gpuFishbone.h:49
edm::ESGetToken< HcalDDDSimConstants, HcalSimNumberingRecord > ddconsToken_

◆ update() [1/4]

void SimG4HcalValidation::update ( const BeginOfRun )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfRun *>.

Definition at line 234 of file SimG4HcalValidation.cc.

References names, HCalSD::setNumberingScheme(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), and MatrixUtil.Steps::overwrite().

234  {
235  int irun = (*run)()->GetRunID();
236 
237  edm::LogVerbatim("ValidHcal") << " =====> Begin of Run = " << irun;
238 
239  std::string sdname = names[0];
240  G4SDManager *sd = G4SDManager::GetSDMpointerIfExist();
241  if (sd != nullptr) {
242  G4VSensitiveDetector *aSD = sd->FindSensitiveDetector(sdname);
243  if (aSD == nullptr) {
244  edm::LogWarning("ValidHcal") << "SimG4HcalValidation::beginOfRun: No SD"
245  << " with name " << sdname << " in this "
246  << "Setup";
247  } else {
248  HCalSD *theCaloSD = dynamic_cast<HCalSD *>(aSD);
249  edm::LogVerbatim("ValidHcal") << "SimG4HcalValidation::beginOfRun: Finds SD with name " << theCaloSD->GetName()
250  << " in this Setup";
251  if (org.get()) {
252  theCaloSD->setNumberingScheme(org.get());
253  edm::LogVerbatim("ValidHcal") << "SimG4HcalValidation::beginOfRun: set a new numbering scheme";
254  }
255  }
256  } else {
257  edm::LogWarning("ValidHcal") << "SimG4HcalValidation::beginOfRun: Could "
258  << "not get SD Manager!";
259  }
260 }
Log< level::Info, true > LogVerbatim
std::vector< std::string > names
void setNumberingScheme(HcalNumberingScheme *)
Definition: HCalSD.cc:564
Definition: HCalSD.h:38
std::unique_ptr< HcalTestNumberingScheme > org
Log< level::Warning, false > LogWarning

◆ update() [2/4]

void SimG4HcalValidation::update ( const BeginOfEvent )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfEvent *>.

Definition at line 263 of file SimG4HcalValidation.cc.

References l1ct::clear(), mps_fire::i, and LogDebug.

Referenced by MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), and MatrixUtil.Steps::overwrite().

263  {
264  int i = 0;
265  edepEB = edepEE = edepHB = edepHE = edepHO = 0.;
266  for (i = 0; i < 5; i++)
267  edepd[i] = 0.;
268  for (i = 0; i < 20; i++)
269  edepl[i] = 0.;
270  vhitec = vhithc = enEcal = enHcal = 0;
271  // Cache reset
272  clear();
273 
274  LogDebug("ValidHcal") << "SimG4HcalValidation: =====> Begin of event = " << (*evt)()->GetEventID();
275 }
#define LogDebug(id)

◆ update() [3/4]

void SimG4HcalValidation::update ( const G4Step *  )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const G4Step *>.

Definition at line 278 of file SimG4HcalValidation.cc.

References hcalRecHitTable_cff::depth, LogDebug, and mergeVDriftHistosByStation::name.

Referenced by MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), and MatrixUtil.Steps::overwrite().

278  {
279  if (aStep != nullptr) {
280  G4VPhysicalVolume *curPV = aStep->GetPreStepPoint()->GetPhysicalVolume();
281  G4String name = curPV->GetName();
282  name.assign(name, 0, 3);
283  double edeposit = aStep->GetTotalEnergyDeposit();
284  int layer = -1, depth = -1;
285  if (name == "EBR") {
286  depth = 0;
287  edepEB += edeposit;
288  } else if (name == "EFR") {
289  depth = 0;
290  edepEE += edeposit;
291  } else if (name == "HBS") {
292  layer = (curPV->GetCopyNo() / 10) % 100;
293  depth = (curPV->GetCopyNo()) % 10 + 1;
294  if (depth > 0 && depth < 4 && layer >= 0 && layer < 17) {
295  edepHB += edeposit;
296  } else {
297  edm::LogWarning("ValidHcal") << "SimG4HcalValidation:Error " << curPV->GetName() << curPV->GetCopyNo();
298  depth = -1;
299  layer = -1;
300  }
301  } else if (name == "HES") {
302  layer = (curPV->GetCopyNo() / 10) % 100;
303  depth = (curPV->GetCopyNo()) % 10 + 1;
304  if (depth > 0 && depth < 3 && layer >= 0 && layer < 19) {
305  edepHE += edeposit;
306  } else {
307  edm::LogWarning("ValidHcal") << "SimG4HcalValidation:Error " << curPV->GetName() << curPV->GetCopyNo();
308  depth = -1;
309  layer = -1;
310  }
311  } else if (name == "HTS") {
312  layer = (curPV->GetCopyNo() / 10) % 100;
313  depth = (curPV->GetCopyNo()) % 10 + 1;
314  if (depth > 3 && depth < 5 && layer >= 17 && layer < 20) {
315  edepHO += edeposit;
316  } else {
317  edm::LogWarning("ValidHcal") << "SimG4HcalValidation:Error " << curPV->GetName() << curPV->GetCopyNo();
318  depth = -1;
319  layer = -1;
320  }
321  }
322  if (depth >= 0 && depth < 5)
323  edepd[depth] += edeposit;
324  if (layer >= 0 && layer < 20)
325  edepl[layer] += edeposit;
326 
327  if (layer >= 0 && layer < 20) {
328  LogDebug("ValidHcal") << "SimG4HcalValidation:: G4Step: " << name << " Layer " << std::setw(3) << layer
329  << " Depth " << std::setw(2) << depth << " Edep " << std::setw(6) << edeposit / MeV
330  << " MeV";
331  }
332  }
333 }
Log< level::Warning, false > LogWarning
#define LogDebug(id)

◆ update() [4/4]

void SimG4HcalValidation::update ( const EndOfEvent )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const EndOfEvent *>.

Definition at line 336 of file SimG4HcalValidation.cc.

References submitPVResolutionJobs::count, EcalPhiSymFlatTableProducers_cfi::fill, and LogDebug.

Referenced by MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), and MatrixUtil.Steps::overwrite().

336  {
337  count++;
338 
339  // Fill hits cache for jetfinding etc.
340  fill(evt);
341  LogDebug("ValidHcal") << "SimG4HcalValidation:: --- after Fill ";
342 }
void fill(const EndOfEvent *ev)
#define LogDebug(id)

Member Data Documentation

◆ applySampling

bool SimG4HcalValidation::applySampling
private

Definition at line 111 of file SimG4HcalValidation.cc.

◆ coneSize

double SimG4HcalValidation::coneSize
private

Definition at line 109 of file SimG4HcalValidation.cc.

◆ count

unsigned int SimG4HcalValidation::count
private

Definition at line 120 of file SimG4HcalValidation.cc.

◆ ddconsToken_

edm::ESGetToken<HcalDDDSimConstants, HcalSimNumberingRecord> SimG4HcalValidation::ddconsToken_
private

Definition at line 88 of file SimG4HcalValidation.cc.

◆ dEta

std::vector<double> SimG4HcalValidation::dEta
private

Definition at line 116 of file SimG4HcalValidation.cc.

◆ dPhi

std::vector<double> SimG4HcalValidation::dPhi
private

Definition at line 117 of file SimG4HcalValidation.cc.

◆ edepd

double SimG4HcalValidation::edepd[5]
private

Definition at line 122 of file SimG4HcalValidation.cc.

◆ edepEB

double SimG4HcalValidation::edepEB
private

Definition at line 121 of file SimG4HcalValidation.cc.

◆ edepEE

double SimG4HcalValidation::edepEE
private

Definition at line 121 of file SimG4HcalValidation.cc.

◆ edepHB

double SimG4HcalValidation::edepHB
private

Definition at line 121 of file SimG4HcalValidation.cc.

◆ edepHE

double SimG4HcalValidation::edepHE
private

Definition at line 121 of file SimG4HcalValidation.cc.

◆ edepHO

double SimG4HcalValidation::edepHO
private

Definition at line 121 of file SimG4HcalValidation.cc.

◆ edepl

double SimG4HcalValidation::edepl[20]
private

Definition at line 122 of file SimG4HcalValidation.cc.

◆ een

double SimG4HcalValidation::een
private

Definition at line 123 of file SimG4HcalValidation.cc.

◆ ehitThreshold

double SimG4HcalValidation::ehitThreshold
private

Definition at line 109 of file SimG4HcalValidation.cc.

◆ enEcal

double SimG4HcalValidation::enEcal
private

Definition at line 124 of file SimG4HcalValidation.cc.

◆ enHcal

double SimG4HcalValidation::enHcal
private

Definition at line 124 of file SimG4HcalValidation.cc.

◆ eta0

float SimG4HcalValidation::eta0
private

Definition at line 110 of file SimG4HcalValidation.cc.

◆ hcalOnly

bool SimG4HcalValidation::hcalOnly
private

Definition at line 111 of file SimG4HcalValidation.cc.

◆ hen

double SimG4HcalValidation::hen
private

Definition at line 123 of file SimG4HcalValidation.cc.

◆ hhitThreshold

double SimG4HcalValidation::hhitThreshold
private

Definition at line 109 of file SimG4HcalValidation.cc.

◆ hitcache

std::vector<CaloHit> SimG4HcalValidation::hitcache
private

Definition at line 100 of file SimG4HcalValidation.cc.

◆ hoen

double SimG4HcalValidation::hoen
private

Definition at line 123 of file SimG4HcalValidation.cc.

◆ infolevel

int SimG4HcalValidation::infolevel
private

Definition at line 112 of file SimG4HcalValidation.cc.

◆ jetf

std::unique_ptr<SimG4HcalHitJetFinder> SimG4HcalValidation::jetf
private

Definition at line 91 of file SimG4HcalValidation.cc.

◆ jetThreshold

float SimG4HcalValidation::jetThreshold
private

Definition at line 110 of file SimG4HcalValidation.cc.

◆ labelJets

std::string SimG4HcalValidation::labelJets
private

Definition at line 113 of file SimG4HcalValidation.cc.

◆ labelLayer

std::string SimG4HcalValidation::labelLayer
private

Definition at line 113 of file SimG4HcalValidation.cc.

◆ labelNxN

std::string SimG4HcalValidation::labelNxN
private

Definition at line 113 of file SimG4HcalValidation.cc.

◆ names

std::vector<std::string> SimG4HcalValidation::names
private

Definition at line 108 of file SimG4HcalValidation.cc.

◆ numberingFromDDD

std::unique_ptr<HcalNumberingFromDDD> SimG4HcalValidation::numberingFromDDD
private

Definition at line 94 of file SimG4HcalValidation.cc.

◆ org

std::unique_ptr<HcalTestNumberingScheme> SimG4HcalValidation::org
private

Definition at line 97 of file SimG4HcalValidation.cc.

◆ phi0

float SimG4HcalValidation::phi0
private

Definition at line 110 of file SimG4HcalValidation.cc.

◆ scaleHB

std::vector<float> SimG4HcalValidation::scaleHB
private

Definition at line 103 of file SimG4HcalValidation.cc.

◆ scaleHE

std::vector<float> SimG4HcalValidation::scaleHE
private

Definition at line 104 of file SimG4HcalValidation.cc.

◆ scaleHF

std::vector<float> SimG4HcalValidation::scaleHF
private

Definition at line 105 of file SimG4HcalValidation.cc.

◆ timeLowlim

float SimG4HcalValidation::timeLowlim
private

Definition at line 110 of file SimG4HcalValidation.cc.

◆ timeUplim

float SimG4HcalValidation::timeUplim
private

Definition at line 110 of file SimG4HcalValidation.cc.

◆ vhitec

double SimG4HcalValidation::vhitec
private

Definition at line 124 of file SimG4HcalValidation.cc.

◆ vhithc

double SimG4HcalValidation::vhithc
private

Definition at line 124 of file SimG4HcalValidation.cc.