Skip to content

Commit

Permalink
Merge pull request #34609 from bsunanda/Run3-hcx304
Browse files Browse the repository at this point in the history
Run3-hcx304 Update the scripts for the combined ECAL+HCAL TB simulation
  • Loading branch information
cmsbuild committed Jul 26, 2021
2 parents 3ef933f + 0a9b350 commit 425c7a4
Show file tree
Hide file tree
Showing 27 changed files with 140 additions and 130 deletions.
3 changes: 2 additions & 1 deletion Geometry/HcalTestBeamData/python/TB2004GeometryXML_cfi.py
Expand Up @@ -14,7 +14,8 @@
'Geometry/HcalTestBeamData/data/TBHcal04SimNumbering.xml',
'Geometry/HcalTestBeamData/data/TBHcal04Util.xml',
'Geometry/HcalTestBeamData/data/TBHcal04XtalProdCuts.xml',
'Geometry/HcalTestBeamData/data/TBHcal04ProdCuts.xml'),
'Geometry/HcalTestBeamData/data/TBHcal04ProdCuts.xml',
'Geometry/HcalCommonData/data/hcalRecNumbering.xml'),
rootNodeName = cms.string('TBHcal:TBHCal')
)

Expand Down
4 changes: 3 additions & 1 deletion Geometry/HcalTestBeamData/python/TB2004HFGeometryXML_cfi.py
Expand Up @@ -6,7 +6,9 @@
'Geometry/HcalTestBeamData/data/TBHcal04HF.xml',
'Geometry/HcalTestBeamData/data/TBHcal04HFBeamLine.xml',
'Geometry/HcalTestBeamData/data/TBHcal04HFWedge.xml',
'Geometry/HcalTestBeamData/data/TBHcal04HFSens.xml'),
'Geometry/HcalTestBeamData/data/TBHcal04HFSens.xml',
'Geometry/HcalTestBeamData/data/TBHcal04SimNumbering.xml',
'Geometry/HcalCommonData/data/hcalRecNumbering.xml'),
rootNodeName = cms.string('TBHcal04HF:TBHCal')
)

Expand Down
Expand Up @@ -19,7 +19,8 @@
'Geometry/HcalTestBeamData/data/TBHcal06ebsens.xml',
'Geometry/HcalTestBeamData/data/TBHcal06ProdCuts.xml',
'Geometry/EcalSimData/data/EBProdCuts.xml',
'Geometry/HcalTestBeamData/data/TBHcal06Util.xml'),
'Geometry/HcalTestBeamData/data/TBHcal06Util.xml',
'Geometry/HcalCommonData/data/hcalRecNumbering.xml'),
rootNodeName = cms.string('TBHcal:TBHCal')
)

Expand Down
3 changes: 2 additions & 1 deletion Geometry/HcalTestBeamData/python/TB2006GeometryXML_cfi.py
Expand Up @@ -16,7 +16,8 @@
'Geometry/EcalSimData/data/ebsens.xml',
'Geometry/HcalTestBeamData/data/TBHcal06ProdCuts.xml',
'Geometry/EcalSimData/data/EBProdCuts.xml',
'Geometry/HcalTestBeamData/data/TBHcal06Util.xml'),
'Geometry/HcalTestBeamData/data/TBHcal06Util.xml',
'Geometry/HcalCommonData/data/hcalRecNumbering.xml'),
rootNodeName = cms.string('TBHcal:TBHCal')
)

Expand Down
3 changes: 2 additions & 1 deletion Geometry/HcalTestBeamData/python/TB2007GeometryXML_cfi.py
Expand Up @@ -22,7 +22,8 @@
'Geometry/HcalTestBeamData/data/TBHcal07eeSens.xml',
'Geometry/HcalTestBeamData/data/TBHcal07esSens.xml',
'Geometry/HcalTestBeamData/data/TBHcal06ProdCuts.xml',
'Geometry/HcalTestBeamData/data/TBHcal06Util.xml'),
'Geometry/HcalTestBeamData/data/TBHcal06Util.xml',
'Geometry/HcalCommonData/data/hcalRecNumbering.xml'),
rootNodeName = cms.string('TBHcal:TBHCal')
)

Expand Down
Expand Up @@ -12,7 +12,8 @@
'Geometry/HcalTestBeamData/data/TBHcal07Sens.xml',
'Geometry/HcalTestBeamData/data/TBHcal06SimNumbering.xml',
'Geometry/HcalTestBeamData/data/TBHcal06ProdCuts.xml',
'Geometry/HcalTestBeamData/data/TBHcal06Util.xml'),
'Geometry/HcalTestBeamData/data/TBHcal06Util.xml',
'Geometry/HcalCommonData/data/hcalRecNumbering.xml'),
rootNodeName = cms.string('TBHcal:TBHCal')
)

Expand Down
Expand Up @@ -2,6 +2,7 @@

from Geometry.HcalCommonData.hcalParameters_cfi import *
from Geometry.HcalCommonData.hcalDDDSimConstants_cfi import *
from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import *
from Geometry.HcalCommonData.caloSimulationParameters_cff import *
from Geometry.HcalTestBeamData.hcalTB02Parameters_cff import *
from Geometry.HcalTestBeamData.hcalTB06Parameters_cff import *
7 changes: 3 additions & 4 deletions Geometry/HcalTestBeamData/test/python/run2004_cfg.py
Expand Up @@ -110,6 +110,7 @@
process.g4SimHits.ECalSD.BirkC1 = 0.033
process.g4SimHits.ECalSD.BirkC2 = 0.0
process.g4SimHits.ECalSD.SlopeLightYield = 0.05
process.g4SimHits.ECalSD.Detectors = 1
process.g4SimHits.HCalSD.UseBirkLaw = True
process.g4SimHits.HCalSD.BirkC1 = 0.0052
process.g4SimHits.HCalSD.BirkC2 = 0.142
Expand All @@ -121,11 +122,9 @@
process.g4SimHits.HCalSD.UseHF = False
process.g4SimHits.HCalSD.ForTBHCAL = True
process.g4SimHits.HCalSD.ForTBH2 = True
process.g4SimHits.OnlySDs = ['CaloTrkProcessing',
'EcalTBH4BeamDetector',
'HcalTB02SensitiveDetector',
'HcalTB06BeamDetector',
process.g4SimHits.OnlySDs = ['HcalTB06BeamDetector',
'EcalSensitiveDetector',
'CaloTrkProcessing',
'HcalSensitiveDetector']
process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
HcalTB04Analysis = cms.PSet(
Expand Down
165 changes: 77 additions & 88 deletions Geometry/HcalTestBeamData/test/python/runOverlap_cfg.py
@@ -1,52 +1,37 @@
import FWCore.ParameterSet.Config as cms
from Configuration.Eras.Modifier_h2tb_cff import h2tb

process = cms.Process("PROD")
process.load("SimGeneral.HepPDTESSource.pdt_cfi")
process = cms.Process("PROD", h2tb)

process.load('FWCore.MessageService.MessageLogger_cfi')
process.load("SimGeneral.HepPDTESSource.pdt_cfi")
process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff")
process.load("Geometry.HcalTestBeamData.hcalDDDSimConstants_cff")
process.load("Geometry.HcalTestBeamData.TB2007TestGeometryXML_cfi")

process.load('GeneratorInterface.Core.generatorSmeared_cfi')
process.load("Configuration.EventContent.EventContent_cff")
process.load("SimG4Core.Application.g4SimHits_cfi")

process.MessageLogger = cms.Service("MessageLogger",
cerr = cms.untracked.PSet(
enable = cms.untracked.bool(False)
),
cout = cms.untracked.PSet(
G4cerr = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
G4cout = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
HCalGeom = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
default = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
enable = cms.untracked.bool(True),
threshold = cms.untracked.string('DEBUG')
),
debugModules = cms.untracked.vstring('*')
)
process.MessageLogger.cerr.FwkReport.reportEvery = 5
if hasattr(process,'MessageLogger'):
process.MessageLogger.HCalGeom=dict()
process.MessageLogger.EcalGeom=dict()
process.MessageLogger.VertexGenerator=dict()

process.Timing = cms.Service("Timing")

process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService",
moduleSeeds = cms.PSet(
generator = cms.untracked.uint32(456789),
g4SimHits = cms.untracked.uint32(9876),
VtxSmeared = cms.untracked.uint32(12345)
),
sourceSeed = cms.untracked.uint32(98765)
)
process.load("IOMC.RandomEngine.IOMC_cff")
process.RandomNumberGeneratorService.generator.initialSeed = 456789
process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876
process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789

beamPosition = -800.0
process.common_beam_direction_parameters = cms.PSet(
MaxEta = cms.double(0.5655),
MinEta = cms.double(0.5655),
MaxPhi = cms.double(-0.1309),
MinPhi = cms.double(-0.1309),
BeamPosition = cms.double(-800.0)
BeamPosition = cms.double(beamPosition)
)

process.source = cms.Source("EmptySource")
Expand All @@ -63,66 +48,70 @@
firstRun = cms.untracked.uint32(1)
)

from IOMC.EventVertexGenerators.VtxSmearedParameters_cfi import *
process.VtxSmeared = cms.EDProducer("BeamProfileVtxGenerator",
process.common_beam_direction_parameters,
VtxSmearedCommon,
BeamMeanX = cms.double(0.0),
BeamMeanY = cms.double(0.0),
BeamSigmaX = cms.double(0.0001),
BeamSigmaY = cms.double(0.0001),
Psi = cms.double(999.9),
GaussianProfile = cms.bool(False),
BinX = cms.int32(50),
BinY = cms.int32(50),
File = cms.string('beam.profile'),
UseFile = cms.bool(False),
TimeOffset = cms.double(0.)
)

process.maxEvents = cms.untracked.PSet(
input = cms.untracked.int32(1)
)
process.common_heavy_suppression1 = cms.PSet(
NeutronThreshold = cms.double(30.0),
ProtonThreshold = cms.double(30.0),
IonThreshold = cms.double(30.0)
)
process.common_maximum_timex = cms.PSet(
MaxTrackTime = cms.double(500.0),
MaxTimeNames = cms.vstring(),
MaxTrackTimes = cms.vdouble()
)
process.p1 = cms.Path(process.generator*process.g4SimHits)

process.p1 = cms.Path(process.generator*process.VtxSmeared*process.generatorSmeared*process.g4SimHits)

process.g4SimHits.NonBeamEvent = True
process.g4SimHits.UseMagneticField = False
process.g4SimHits.Physics.type = 'SimG4Core/Physics/QGSP_FTFP_BERT_EML'
process.g4SimHits.Physics.Region = 'HcalRegion'
process.g4SimHits.Physics.DefaultCutValue = 1.
process.g4SimHits.Generator.HepMCProductLabel = 'source'
process.g4SimHits.StackingAction = cms.PSet(
process.common_heavy_suppression1,
process.common_maximum_timex,
TrackNeutrino = cms.bool(False),
KillHeavy = cms.bool(False),
SaveFirstLevelSecondary = cms.untracked.bool(False),
SavePrimaryDecayProductsAndConversionsInTracker = cms.untracked.bool(True),
SavePrimaryDecayProductsAndConversionsInCalo = cms.untracked.bool(False),
SavePrimaryDecayProductsAndConversionsInMuon = cms.untracked.bool(False)
)
process.g4SimHits.SteppingAction = cms.PSet(
process.common_maximum_timex,
KillBeamPipe = cms.bool(True),
CriticalEnergyForVacuum = cms.double(2.0),
CriticalDensity = cms.double(1e-15),
EkinNames = cms.vstring(),
EkinThresholds = cms.vdouble(),
EkinParticles = cms.vstring(),
Verbosity = cms.untracked.int32(0)
)
process.g4SimHits.CaloSD = cms.PSet(
process.common_beam_direction_parameters,
process.common_heavy_suppression1,
SuppressHeavy = cms.bool(False),
DetailedTiming = cms.untracked.bool(False),
Verbosity = cms.untracked.int32(0),
CheckHits = cms.untracked.int32(25),
CorrectTOFBeam = cms.bool(False),
TmaxHit = cms.double(1000.0),
HCNames = cms.vstring(),
EminHits = cms.vdouble(),
TmaxHits = cms.vdouble(),
UseMap = cms.untracked.bool(True),
EminTrack = cms.double(1.0)
)

process.g4SimHits.StackingAction.KillGamma = False
process.g4SimHits.CaloSD.BeamPosition = beamPosition
process.g4SimHits.ECalSD.UseBirkLaw = True
process.g4SimHits.ECalSD.BirkL3Parametrization = True
process.g4SimHits.ECalSD.BirkC1 = 0.033
process.g4SimHits.ECalSD.BirkC2 = 0.0
process.g4SimHits.ECalSD.SlopeLightYield = 0.05
process.g4SimHits.HCalSD.UseBirkLaw = True
process.g4SimHits.HCalSD.BirkC1 = 0.0052
process.g4SimHits.HCalSD.BirkC2 = 0.142
process.g4SimHits.HCalSD.BirkC3 = 1.75
process.g4SimHits.HCalSD.UseLayerWt = False
process.g4SimHits.HCalSD.WtFile = ' '
process.g4SimHits.HCalSD.UseShowerLibrary = False
process.g4SimHits.HCalSD.TestNumberingScheme = True
process.g4SimHits.HCalSD.UseHF = False
process.g4SimHits.HCalSD.UseHF = False

process.g4SimHits.HCalSD.ForTBHCAL = True
process.g4SimHits.HCalSD.ForTBH2 = True
process.g4SimHits.OnlySDs = ['CaloTrkProcessing',
'HcalTB06BeamDetector',
'EcalSensitiveDetector',
'HcalSensitiveDetector']
process.g4SimHits.CaloTrkProcessing.TestBeam = True
process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
Resolution = cms.untracked.int32(1000),
type = cms.string('CheckOverlap'),
NodeNames = cms.untracked.vstring('TBHCal')
))

# Geant4 geometry check
process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("hctb07")
process.g4SimHits.G4CheckOverlap.OverlapFlag = cms.bool(True)
process.g4SimHits.G4CheckOverlap.Tolerance = cms.double(0.1)
process.g4SimHits.G4CheckOverlap.Resolution = cms.int32(10000)
process.g4SimHits.G4CheckOverlap.Depth = cms.int32(-1)
process.g4SimHits.G4CheckOverlap.RegionFlag = cms.bool(False)
process.g4SimHits.G4CheckOverlap.NodeNames = cms.vstring('TBHCal')
process.g4SimHits.G4CheckOverlap.gdmlFlag = cms.bool(False)
process.g4SimHits.G4CheckOverlap.PVname = ''
process.g4SimHits.G4CheckOverlap.LVname = ''
process.g4SimHits.FileNameField = ''
process.g4SimHits.FileNameGDML = ''
process.g4SimHits.FileNameRegions = ''
4 changes: 4 additions & 0 deletions SimG4CMS/HcalTestBeam/plugins/HcalTB02Analysis.cc
Expand Up @@ -52,6 +52,8 @@
#include "CLHEP/Units/GlobalPhysicalConstants.h"
#include "Randomize.hh"

//#define EDM_ML_DEBUG

namespace CLHEP {
class HepRandomEngine;
}
Expand Down Expand Up @@ -129,7 +131,9 @@ void HcalTB02Analysis::produce(edm::Event& e, const edm::EventSetup&) {
}

void HcalTB02Analysis::update(const BeginOfEvent* evt) {
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HcalTBSim") << "HcalTB02Analysis: =====> Begin of event = " << (*evt)()->GetEventID();
#endif
clear();
}

Expand Down
13 changes: 11 additions & 2 deletions SimG4CMS/HcalTestBeam/plugins/HcalTB02HcalNumberingScheme.cc
Expand Up @@ -17,7 +17,7 @@
#include "FWCore/MessageLogger/interface/MessageLogger.h"

#include "G4SystemOfUnits.hh"

//#define EDM_ML_DEBUG
//
// constructors and destructor
//
Expand All @@ -28,7 +28,9 @@ HcalTB02HcalNumberingScheme::HcalTB02HcalNumberingScheme()
}

HcalTB02HcalNumberingScheme::~HcalTB02HcalNumberingScheme() {
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HcalTBSim") << "Deleting HcalTB02HcalNumberingScheme";
#endif
}

//
Expand Down Expand Up @@ -64,10 +66,11 @@ int HcalTB02HcalNumberingScheme::getUnitID(const G4Step* aStep) const {

G4VPhysicalVolume* thePV = preStepPoint->GetPhysicalVolume();
int ilayer = ((thePV->GetCopyNo()) / 10) % 100;
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HcalTBSim") << "HcalTB02HcalNumberingScheme:: Layer " << thePV->GetName()
<< " found at phi = " << phi << " eta = " << eta << " lay = " << thePV->GetCopyNo()
<< " " << ilayer;

#endif
scintID = phiScale * phi + etaScale * eta + ilayer;
if (hy < 0.)
scintID = -scintID;
Expand All @@ -81,7 +84,9 @@ int HcalTB02HcalNumberingScheme::getlayerID(int sID) const {
if ((layerID != 17) && (layerID != 18))
layerID = sID - int(float(sID) / float(etaScale)) * etaScale;

#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HcalTBSim") << "HcalTB02HcalNumberingScheme:: scintID " << sID << " layer = " << layerID;
#endif
return layerID;
}

Expand All @@ -91,7 +96,9 @@ int HcalTB02HcalNumberingScheme::getphiID(int sID) const {
IDsign = -1;
sID = abs(sID);
int phiID = int(float(sID) / float(phiScale));
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HcalTBSim") << "HcalTB02HcalNumberingScheme:: scintID " << sID << " phi = " << phiID;
#endif
if (IDsign > 0) {
phiID += 4;
} else {
Expand All @@ -105,6 +112,8 @@ int HcalTB02HcalNumberingScheme::getetaID(int sID) const {
int aux = sID - int(float(sID) / float(phiScale)) * phiScale;
int etaID = int(float(aux) / float(etaScale));

#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HcalTBSim") << "HcalTB02HcalNumberingScheme:: scintID " << sID << " eta = " << etaID;
#endif
return etaID;
}

0 comments on commit 425c7a4

Please sign in to comment.