# Geant4 service # Configures the Geant simulation: geometry, physics list and user actions from Configurables import SimG4Svc # giving the names of tools will initialize the tools of that type geantservice = SimG4Svc("SimG4Svc") geantservice.detector = "SimG4DD4hepDetector" geantservice.physicslist = "SimG4FtfpBert" geantservice.actions = "SimG4FullSimActions" ApplicationMgr().ExtSvc += [geantservice] # Geant4 algorithm # save tools are set up alongside the geoservice from Configurables import SimG4Alg geantsim = SimG4Alg("SimG4Alg") from Configurables import SimG4SaveTrackerHits from Configurables import SimG4PrimariesFromEdmTool geantsim.eventProvider = SimG4PrimariesFromEdmTool("EdmConverter") geantsim.eventProvider.GenParticles.Path = "GenParticles" ApplicationMgr().TopAlg += [geantsim] # PODIO algorithm from Configurables import PodioOutput out = PodioOutput("out") out.filename = "out_geant_fullsim_fccee_cld_hepevt.root" out.OutputLevel = DEBUG out.outputCommands = ["keep *"] ApplicationMgr().TopAlg += [out]
from Configurables import SimG4Svc geantservice = SimG4Svc( "SimG4Svc", detector='SimG4DD4hepDetector', physicslist="SimG4FtfpBert", actions="SimG4FullSimActions", ) from Configurables import SimG4Alg, SimG4SaveTrackerHits, SimG4PrimariesFromEdmTool savetrackertool = SimG4SaveTrackerHits( "SimG4SaveTrackerHits", readoutNames=["TrackerBarrelReadout", "TrackerEndcapReadout"]) savetrackertool.DataOutputs.positionedTrackHits.Path = "positionedHits" savetrackertool.DataOutputs.trackHits.Path = "hits" particle_converter = SimG4PrimariesFromEdmTool("EdmConverter") particle_converter.DataInputs.genParticles.Path = "allGenParticles" geantsim = SimG4Alg("SimG4Alg", outputs=["SimG4SaveTrackerHits/SimG4SaveTrackerHits"], eventProvider=particle_converter) from Configurables import PodioOutput out = PodioOutput("out", filename="out_full_moreEvents.root", OutputLevel=DEBUG) out.outputCommands = ["keep *"] ApplicationMgr( TopAlg=[reader, hepmc_converter, geantsim, out], EvtSel='NONE', EvtMax=10,
fullphysics="SimG4FtfpBert") physicslistTool = SimG4FastSimPhysicsList("Physics", fullphysics=opticalPhysicsTool) from Configurables import SimG4DRcaloActions actionTool = SimG4DRcaloActions("SimG4DRcaloActions") # Name of the tool in GAUDI is "XX/YY" where XX is the tool class name and YY is the given name geantservice = SimG4Svc("SimG4Svc", physicslist=physicslistTool, regions=["SimG4FastSimOpFiberRegion/fastfiber"], actions=actionTool) from Configurables import SimG4Alg, SimG4PrimariesFromEdmTool # next, create the G4 algorithm, giving the list of names of tools ("XX/YY") edmConverter = SimG4PrimariesFromEdmTool("EdmConverter") from Configurables import SimG4SaveDRcaloHits, SimG4SaveDRcaloMCTruth saveDRcaloTool = SimG4SaveDRcaloHits("saveDRcaloTool", readoutNames=["DRcaloSiPMreadout"]) saveMCTruthTool = SimG4SaveDRcaloMCTruth( "saveMCTruthTool") # need SimG4DRcaloActions geantsim = SimG4Alg("SimG4Alg", outputs=[ "SimG4SaveDRcaloHits/saveDRcaloTool", "SimG4SaveDRcaloMCTruth/saveMCTruthTool" ], eventProvider=edmConverter) from Configurables import PodioOutput