From 6bb255ffc021e50d511b74948ee33e0b3f96e2dc Mon Sep 17 00:00:00 2001 From: Sunanda Date: Tue, 3 Aug 2021 04:18:28 +0200 Subject: [PATCH] Bug fix to get back the same hit energy distribution for HCAL --- SimG4CMS/Calo/src/HCalSD.cc | 8 ++++++-- SimG4CMS/Calo/test/python/minbias_cfg.py | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/SimG4CMS/Calo/src/HCalSD.cc b/SimG4CMS/Calo/src/HCalSD.cc index b28982af25300..23029214eaca5 100644 --- a/SimG4CMS/Calo/src/HCalSD.cc +++ b/SimG4CMS/Calo/src/HCalSD.cc @@ -137,6 +137,8 @@ HCalSD::HCalSD(const std::string& name, if (forTBHC) { useHF = false; matNames.emplace_back("Scintillator"); + } else { + matNames = hcalSimConstants_->hcalsimpar()->hcalMaterialNames_; } HcalNumberingScheme* scheme; @@ -508,11 +510,13 @@ double HCalSD::getEnergyDeposit(const G4Step* aStep) { } } } + double wt0(1.0); if (useBirk) { const G4Material* mat = aStep->GetPreStepPoint()->GetMaterial(); if (isItScintillator(mat)) - weight_ *= getAttenuation(aStep, birk1, birk2, birk3); + wt0 = getAttenuation(aStep, birk1, birk2, birk3); } + weight_ *= wt0; double wt1 = getResponseWt(theTrack); double wt2 = theTrack->GetWeight(); double edep = weight_ * wt1 * destep; @@ -521,7 +525,7 @@ double HCalSD::getEnergyDeposit(const G4Step* aStep) { } #ifdef EDM_ML_DEBUG edm::LogVerbatim("HcalSim") << "HCalSD: edep= " << edep << " Det: " << det + 2 << " depth= " << depth_ - << " weight= " << weight_ << " wt1= " << wt1 << " wt2= " << wt2; + << " weight= " << weight_ << " wt0= " << wt0 << " wt1= " << wt1 << " wt2= " << wt2; #endif return edep; } diff --git a/SimG4CMS/Calo/test/python/minbias_cfg.py b/SimG4CMS/Calo/test/python/minbias_cfg.py index 92925e92ac0eb..3286ea6801129 100644 --- a/SimG4CMS/Calo/test/python/minbias_cfg.py +++ b/SimG4CMS/Calo/test/python/minbias_cfg.py @@ -13,6 +13,7 @@ process.load('Configuration.StandardSequences.Generator_cff') process.load('Configuration.StandardSequences.SimIdeal_cff') process.load("SimG4CMS.Calo.CaloSimHitStudy_cfi") +process.load("SimG4CMS.Calo.hcalSimHitDump_cfi") process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.autoCond import autoCond @@ -21,6 +22,7 @@ if 'MessageLogger' in process.__dict__: process.MessageLogger.G4cerr=dict() process.MessageLogger.HitStudy=dict() + process.MessageLogger.HcalSim=dict() process.source = cms.Source("EmptySource") @@ -55,13 +57,14 @@ process.generation_step = cms.Path(process.pgen) process.simulation_step = cms.Path(process.psim) -process.analysis_step = cms.Path(process.CaloSimHitStudy) +process.analysis_step = cms.Path(process.CaloSimHitStudy+process.hcalSimHitDump) process.out_step = cms.EndPath(process.output) process.generator.pythiaHepMCVerbosity = False process.generator.pythiaPylistVerbosity = 0 process.g4SimHits.Physics.type = 'SimG4Core/Physics/FTFP_BERT_EMM' process.CaloSimHitStudy.TestNumbering = True +process.hcalSimHitDump.MaxEvent = 5 # process.g4SimHits.ECalSD.IgnoreTrackID = True # process.g4SimHits.HCalSD.IgnoreTrackID = True