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 49 of file SimG4HcalValidation.cc.

Constructor & Destructor Documentation

◆ SimG4HcalValidation() [1/2]

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

Definition at line 123 of file SimG4HcalValidation.cc.

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

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

References submitPVResolutionJobs::count.

159  {
160  edm::LogVerbatim("ValidHcal") << "\n --------> Total number of selected entries"
161  << " : " << count;
162 }
Log< level::Info, true > LogVerbatim

Member Function Documentation

◆ beginRun()

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

Reimplemented from SimWatcher.

Definition at line 220 of file SimG4HcalValidation.cc.

References edm::EventSetup::getData().

220  {
221  // Numbering From DDD
222  const HcalDDDSimConstants *hcons = &es.getData(ddconsToken_);
223  edm::LogVerbatim("ValidHcal") << "HcalTestAnalysis:: Initialise HcalNumberingFromDDD";
224  numberingFromDDD = std::make_unique<HcalNumberingFromDDD>(hcons);
225 
226  // Numbering scheme
227  org = std::make_unique<HcalTestNumberingScheme>(false);
228 }
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_2022v14_cff::coneSize, MillePedeFileConverter_cfg::e, PVValHelper::eta, HcalBarrel, hfClusterShapes_cfi::hits, and alignCSCRings::r.

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 687 of file SimG4HcalValidation.cc.

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

687  {
688  LogDebug("ValidHcal") << "Enter SimG4HcalValidation::fetchHits with " << hitcache.size() << " hits";
689  int nHit = hitcache.size();
690  int hit = 0;
691  int i;
692  std::vector<CaloHit>::iterator itr;
693  std::vector<CaloHit *> lhits(nHit);
694  for (i = 0, itr = hitcache.begin(); itr != hitcache.end(); i++, itr++) {
695  uint32_t unitID = itr->id();
696  int subdet, zside, group, ieta, iphi, lay;
697  HcalTestNumbering::unpackHcalIndex(unitID, subdet, zside, group, ieta, iphi, lay);
698  subdet = itr->det();
699  lay = itr->layer();
700  group = (subdet & 15) << 20;
701  group += ((lay - 1) & 31) << 15;
702  group += (zside & 1) << 14;
703  group += (ieta & 127) << 7;
704  group += (iphi & 127);
705  itr->setId(group);
706  lhits[i] = &hitcache[i];
707  LogDebug("ValidHcal") << "SimG4HcalValidation::fetchHits:Original " << i << " " << hitcache[i] << "\n"
708  << "SimG4HcalValidation::fetchHits:Copied " << i << " " << *lhits[i];
709  }
710  sort(lhits.begin(), lhits.end(), CaloHitIdMore());
711  std::vector<CaloHit *>::iterator k1, k2;
712  for (i = 0, k1 = lhits.begin(); k1 != lhits.end(); i++, k1++)
713  LogDebug("ValidHcal") << "SimG4HcalValidation::fetchHits:Sorted " << i << " " << **k1;
714  int nHits = 0;
715  for (i = 0, k1 = lhits.begin(); k1 != lhits.end(); i++, k1++) {
716  double ehit = (**k1).e();
717  double t = (**k1).t();
718  uint32_t unitID = (**k1).id();
719  int jump = 0;
720  LogDebug("ValidHcal") << "SimG4HcalValidation::fetchHits:Start " << i << " U/T/E"
721  << " 0x" << std::hex << unitID << std::dec << " " << t << " " << ehit;
722  for (k2 = k1 + 1; k2 != lhits.end() && (t - (**k2).t()) < 1 && (t - (**k2).t()) > -1 && unitID == (**k2).id();
723  k2++) {
724  ehit += (**k2).e();
725  LogDebug("ValidHcal") << "\t + " << (**k2).e();
726  jump++;
727  }
728  LogDebug("ValidHcal") << "\t = " << ehit << " in " << jump;
729 
730  double eta = (*k1)->eta();
731  double phi = (*k1)->phi();
732  int lay = ((unitID >> 15) & 31) + 1;
733  int subdet = (unitID >> 20) & 15;
734  int zside = (unitID >> 14) & 1;
735  int ieta = (unitID >> 7) & 127;
736  int iphi = (unitID)&127;
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 << " " << zside << " " << ieta
744  << " " << iphi << " 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)
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell const int32_t nHits
#define LogDebug(id)

◆ fill()

void SimG4HcalValidation::fill ( const EndOfEvent ev)
private

Definition at line 342 of file SimG4HcalValidation.cc.

References angle_units::operators::convertRadToDeg(), TauDecayModes::dec, LEDCalibrationChannels::depth, MillePedeFileConverter_cfg::e, PVValHelper::eta, CaloG4Hit::getDepth(), CaloG4Hit::getEnergyDeposit(), CaloG4Hit::getPosition(), CaloG4Hit::getTimeSlice(), CaloG4Hit::getUnitID(), HcalEndcap, HcalForward, LEDCalibrationChannels::ieta, createfilelist::int, LEDCalibrationChannels::iphi, dqmiolumiharvest::j, phase1PixelTopology::layer, dqm-mbProfile::log, LogDebug, names, nhits, AlCaHLTBitMon_QueryRunRegistry::string, funct::tan(), theta(), protons_cff::time, and ecaldqm::zside().

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

◆ getHcalScale()

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

Definition at line 788 of file SimG4HcalValidation.cc.

References phase1PixelTopology::layer, and 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
constexpr std::array< uint8_t, layerIndexSize > layer
std::vector< float > scaleHB
std::vector< float > scaleHE
tmp
align.sh
Definition: createJobs.py:716

◆ init()

void SimG4HcalValidation::init ( void  )
private

Definition at line 188 of file SimG4HcalValidation.cc.

References HLT_2022v14_cff::coneSize, submitPVResolutionJobs::count, HLT_2022v14_cff::dEta, HLT_2022v14_cff::dPhi, and mps_fire::i.

188  {
189  float sHB[4] = {117., 117., 178., 217.};
190  float sHE[3] = {178., 178., 178.};
191  float sHF[3] = {2.84, 2.09, 0.}; //
192 
193  float deta[4] = {0.0435, 0.1305, 0.2175, 0.3045};
194  float dphi[4] = {0.0436, 0.1309, 0.2182, 0.3054};
195 
196  int i = 0;
197  for (i = 0; i < 4; i++) {
198  scaleHB.push_back(sHB[i]);
199  }
200  for (i = 0; i < 3; i++) {
201  scaleHE.push_back(sHE[i]);
202  }
203  for (i = 0; i < 3; i++) {
204  scaleHF.push_back(sHF[i]);
205  }
206 
207  // window steps;
208  for (i = 0; i < 4; i++) {
209  dEta.push_back(deta[i]);
210  dPhi.push_back(dphi[i]);
211  }
212 
213  // jetfinder conse size setting
214  jetf = std::make_unique<SimG4HcalHitJetFinder>(coneSize);
215 
216  // counter
217  count = 0;
218 }
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 565 of file SimG4HcalValidation.cc.

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

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

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

475  {
476  int i = 0;
477  LogDebug("ValidHcal") << "\n ===>>> SimG4HcalValidation: Energy deposit "
478  << "in MeV\n at EB : " << std::setw(6) << edepEB / MeV << "\n at EE : " << std::setw(6)
479  << edepEE / MeV << "\n at HB : " << std::setw(6) << edepHB / MeV
480  << "\n at HE : " << std::setw(6) << edepHE / MeV << "\n at HO : " << std::setw(6)
481  << edepHO / MeV << "\n ---- SimG4HcalValidation: Energy deposit in";
482  for (i = 0; i < 5; i++)
483  LogDebug("ValidHcal") << " Depth " << std::setw(2) << i << " E " << std::setw(8) << edepd[i] / MeV << " MeV";
484  LogDebug("ValidHcal") << " ---- SimG4HcalValidation: Energy deposit in"
485  << "layers";
486  for (i = 0; i < 20; i++)
487  LogDebug("ValidHcal") << " Layer " << std::setw(2) << i << " E " << std::setw(8) << edepl[i] / MeV << " MeV";
488 
490 
491  // Hits in HF
492  product.fillHF(vhitec, vhithc, enEcal, enHcal);
493  LogDebug("ValidHcal") << "SimG4HcalValidation::HF hits " << vhitec << " in EC and " << vhithc << " in HC\n"
494  << " HB/HE " << enEcal << " in EC and " << enHcal << " in HC";
495 
496  // Another HCAL hist to porcess and store separately (a bit more complicated)
497  fetchHits(product);
498 
499  LogDebug("ValidHcal") << " layerAnalysis ===> after fetchHits";
500 }
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 503 of file SimG4HcalValidation.cc.

References HLT_2022v14_cff::dEta, HLT_2022v14_cff::dPhi, MillePedeFileConverter_cfg::e, PVValHelper::eta, PHcalValidInfoNxN::fillEcollectNxN(), PHcalValidInfoNxN::fillHvsE(), PHcalValidInfoNxN::fillTProfileNxN(), HcalBarrel, HcalEndcap, HcalForward, hcalSimParameters_cfi::he, hfClusterShapes_cfi::hits, electrons_cff::hoe, mps_fire::i, phase1PixelTopology::layer, LogDebug, SiStripPI::max, and submitPVValidationJobs::t.

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

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

169  {
170  std::unique_ptr<PHcalValidInfoLayer> productLayer(new PHcalValidInfoLayer);
171  layerAnalysis(*productLayer);
172  e.put(std::move(productLayer), labelLayer);
173 
174  if (infolevel > 0) {
175  std::unique_ptr<PHcalValidInfoNxN> productNxN(new PHcalValidInfoNxN);
176  nxNAnalysis(*productNxN);
177  e.put(std::move(productNxN), labelNxN);
178  }
179 
180  if (infolevel > 1) {
181  std::unique_ptr<PHcalValidInfoJets> productJets(new PHcalValidInfoJets);
182  jetAnalysis(*productJets);
183  e.put(std::move(productJets), labelJets);
184  }
185 }
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 164 of file SimG4HcalValidation.cc.

References edm::BeginRun, and edm::ConsumesCollector::esConsumes().

164  {
166  edm::LogVerbatim("ValidHcal") << "SimG4HcalValidation::Initialize ESGetToken for HcalDDDSimConstants";
167 }
Log< level::Info, true > LogVerbatim
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 230 of file SimG4HcalValidation.cc.

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

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

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

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

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

259  {
260  int i = 0;
261  edepEB = edepEE = edepHB = edepHE = edepHO = 0.;
262  for (i = 0; i < 5; i++)
263  edepd[i] = 0.;
264  for (i = 0; i < 20; i++)
265  edepl[i] = 0.;
266  vhitec = vhithc = enEcal = enHcal = 0;
267  // Cache reset
268  clear();
269 
270  int iev = (*evt)()->GetEventID();
271  LogDebug("ValidHcal") << "SimG4HcalValidation: =====> Begin of event = " << iev;
272 }
HitContainer const *__restrict__ TkSoA const *__restrict__ Quality const *__restrict__ CAHitNtupletGeneratorKernelsGPU::HitToTuple const *__restrict__ int32_t int32_t int iev
#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 275 of file SimG4HcalValidation.cc.

References LEDCalibrationChannels::depth, phase1PixelTopology::layer, LogDebug, and Skims_PA_cff::name.

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

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

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

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

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

Member Data Documentation

◆ applySampling

bool SimG4HcalValidation::applySampling
private

Definition at line 107 of file SimG4HcalValidation.cc.

◆ coneSize

double SimG4HcalValidation::coneSize
private

Definition at line 105 of file SimG4HcalValidation.cc.

◆ count

unsigned int SimG4HcalValidation::count
private

Definition at line 116 of file SimG4HcalValidation.cc.

◆ ddconsToken_

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

Definition at line 84 of file SimG4HcalValidation.cc.

◆ dEta

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

Definition at line 112 of file SimG4HcalValidation.cc.

◆ dPhi

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

Definition at line 113 of file SimG4HcalValidation.cc.

◆ edepd

double SimG4HcalValidation::edepd[5]
private

Definition at line 118 of file SimG4HcalValidation.cc.

◆ edepEB

double SimG4HcalValidation::edepEB
private

Definition at line 117 of file SimG4HcalValidation.cc.

◆ edepEE

double SimG4HcalValidation::edepEE
private

Definition at line 117 of file SimG4HcalValidation.cc.

◆ edepHB

double SimG4HcalValidation::edepHB
private

Definition at line 117 of file SimG4HcalValidation.cc.

◆ edepHE

double SimG4HcalValidation::edepHE
private

Definition at line 117 of file SimG4HcalValidation.cc.

◆ edepHO

double SimG4HcalValidation::edepHO
private

Definition at line 117 of file SimG4HcalValidation.cc.

◆ edepl

double SimG4HcalValidation::edepl[20]
private

Definition at line 118 of file SimG4HcalValidation.cc.

◆ een

double SimG4HcalValidation::een
private

Definition at line 119 of file SimG4HcalValidation.cc.

◆ ehitThreshold

double SimG4HcalValidation::ehitThreshold
private

Definition at line 105 of file SimG4HcalValidation.cc.

◆ enEcal

double SimG4HcalValidation::enEcal
private

Definition at line 120 of file SimG4HcalValidation.cc.

◆ enHcal

double SimG4HcalValidation::enHcal
private

Definition at line 120 of file SimG4HcalValidation.cc.

◆ eta0

float SimG4HcalValidation::eta0
private

Definition at line 106 of file SimG4HcalValidation.cc.

◆ hcalOnly

bool SimG4HcalValidation::hcalOnly
private

Definition at line 107 of file SimG4HcalValidation.cc.

◆ hen

double SimG4HcalValidation::hen
private

Definition at line 119 of file SimG4HcalValidation.cc.

◆ hhitThreshold

double SimG4HcalValidation::hhitThreshold
private

Definition at line 105 of file SimG4HcalValidation.cc.

◆ hitcache

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

Definition at line 96 of file SimG4HcalValidation.cc.

◆ hoen

double SimG4HcalValidation::hoen
private

Definition at line 119 of file SimG4HcalValidation.cc.

◆ infolevel

int SimG4HcalValidation::infolevel
private

Definition at line 108 of file SimG4HcalValidation.cc.

◆ jetf

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

Definition at line 87 of file SimG4HcalValidation.cc.

◆ jetThreshold

float SimG4HcalValidation::jetThreshold
private

Definition at line 106 of file SimG4HcalValidation.cc.

◆ labelJets

std::string SimG4HcalValidation::labelJets
private

Definition at line 109 of file SimG4HcalValidation.cc.

◆ labelLayer

std::string SimG4HcalValidation::labelLayer
private

Definition at line 109 of file SimG4HcalValidation.cc.

◆ labelNxN

std::string SimG4HcalValidation::labelNxN
private

Definition at line 109 of file SimG4HcalValidation.cc.

◆ names

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

Definition at line 104 of file SimG4HcalValidation.cc.

◆ numberingFromDDD

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

Definition at line 90 of file SimG4HcalValidation.cc.

◆ org

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

Definition at line 93 of file SimG4HcalValidation.cc.

◆ phi0

float SimG4HcalValidation::phi0
private

Definition at line 106 of file SimG4HcalValidation.cc.

◆ scaleHB

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

Definition at line 99 of file SimG4HcalValidation.cc.

◆ scaleHE

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

Definition at line 100 of file SimG4HcalValidation.cc.

◆ scaleHF

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

Definition at line 101 of file SimG4HcalValidation.cc.

◆ timeLowlim

float SimG4HcalValidation::timeLowlim
private

Definition at line 106 of file SimG4HcalValidation.cc.

◆ timeUplim

float SimG4HcalValidation::timeUplim
private

Definition at line 106 of file SimG4HcalValidation.cc.

◆ vhitec

double SimG4HcalValidation::vhitec
private

Definition at line 120 of file SimG4HcalValidation.cc.

◆ vhithc

double SimG4HcalValidation::vhithc
private

Definition at line 120 of file SimG4HcalValidation.cc.