# 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]


Exemplo n.º 2
0
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,
Exemplo n.º 3
0
                                             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