示例#1
0
## Geant4 service
# Configures the Geant simulation: geometry, physics list and user actions
geantservice = SimG4Svc("SimG4Svc", detector='SimG4DD4hepDetector', physicslist="SimG4FtfpBert",
                        actions="SimG4FullSimActions")

from Configurables import SimG4Alg, SimG4SaveTrackerHits, SimG4SaveCalHits, SimG4PrimariesFromEdmTool
## Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
# first, create a tool that saves the tracker hits
# Name of that tool in GAUDI is "XX/YY" where XX is the tool class name ("SimG4SaveTrackerHits")
# and YY is the given name ("saveTrackerHits")
savetrackertool = SimG4SaveTrackerHits("saveTrackerHits", readoutNames = ["TrackerBarrelReadout", "TrackerEndcapReadout"])
savetrackertool.positionedTrackHits.Path = "positionedHits"
savetrackertool.trackHits.Path = "hits"
# and a tool that saves the calorimeter hits with a name "SimG4SaveCalHits/saveCalHits"
saveecaltool = SimG4SaveCalHits("saveECalBarrelHits", readoutNames = ["ECalBarrelEta"])
saveecaltool.positionedCaloHits.Path = "ECalBarrelPositionedHits"
saveecaltool.caloHits.Path = "ECalBarrelHits"
saveendcaptool = SimG4SaveCalHits("saveECalEndcapHits", readoutNames = ["EMECPhiEta"])
saveendcaptool.positionedCaloHits.Path = "ECalEndcapPositionedHits"
saveendcaptool.caloHits.Path = "ECalEndcapHits"
savefwdtool = SimG4SaveCalHits("saveECalFwdHits", readoutNames = ["EMFwdPhiEta"])
savefwdtool.positionedCaloHits.Path = "ECalFwdPositionedHits"
savefwdtool.caloHits.Path = "ECalFwdHits"
savehcaltool = SimG4SaveCalHits("saveHCalHits", readoutNames = ["BarHCal_Readout"])
savehcaltool.positionedCaloHits.Path = "HCalPositionedHits"
savehcaltool.caloHits.Path = "HCalHits"
# next, create the G4 algorithm, giving the list of names of tools ("XX/YY")
particle_converter = SimG4PrimariesFromEdmTool("EdmConverter")
particle_converter.genParticles.Path = "allGenParticles"
geantsim = SimG4Alg("SimG4Alg",
# Geant4 service
# Configures the Geant simulation: geometry, physics list and user actions
from Configurables import SimG4Svc

geantservice = SimG4Svc("SimG4Svc",
                        detector='SimG4DD4hepDetector',
                        physicslist="SimG4FtfpBert",
                        actions="SimG4FullSimActions")
geantservice.g4PostInitCommands += ["/run/setCut 0.1 mm"]

# Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
# and a tool that saves the calorimeter hits
from Configurables import SimG4Alg, SimG4SaveCalHits, SimG4SingleParticleGeneratorTool

saveecaltool = SimG4SaveCalHits("saveECalBarrelHits",
                                readoutNames=["ECalBarrelEta"])
saveecaltool.positionedCaloHits.Path = "ECalBarrelPositionedHits"
saveecaltool.caloHits.Path = "ECalBarrelHits"
from Configurables import SimG4SingleParticleGeneratorTool

pgun = SimG4SingleParticleGeneratorTool("SimG4SingleParticleGeneratorTool",
                                        saveEdm=True,
                                        particleName="e-",
                                        energyMin=50000,
                                        energyMax=50000,
                                        etaMin=0,
                                        etaMax=0,
                                        OutputLevel=DEBUG)
# next, create the G4 algorithm, giving the list of names of tools ("XX/YY")
geantsim = SimG4Alg("SimG4Alg",
                    outputs=["SimG4SaveCalHits/saveECalBarrelHits"],
from fcc_sim_config import *


calo_readouts = {
                  "EcalBarrel": ["ECalBarrelEta"],
                  #"HcalBarrel": ["HCalBarrelReadout"],
                  #"MiscCalo":   [
                  #                "ECalBarrelPhiEta",
                  #                "EMECPhiEta",
                  #                "EMFwdPhiEta",
                  #                "HCalExtBarrelReadout",
                  #                "HECPhiEta",
                  #                "HFwdPhiEta",
                  #                "Muons_Readout",
                  #              ]
                  }



from Configurables import SimG4SaveCalHits
for calo_name in calo_readouts:
  savecaltool = SimG4SaveCalHits(calo_name)
  savecaltool.readoutNames = calo_readouts[calo_name]
  savecaltool.positionedCaloHits.Path = calo_name + "PositionedHits"
  savecaltool.caloHits.Path = calo_name + "Hits"
  geant_output_tool_list += [savecaltool]


geantsim.outputs = geant_output_tool_list
    ],
    OutputLevel=INFO)

# Geant4 service
# Configures the Geant simulation: geometry, physics list and user actions
from Configurables import SimG4Svc
geantservice = SimG4Svc("SimG4Svc",
                        detector='SimG4DD4hepDetector',
                        physicslist="SimG4TestPhysicsList",
                        actions="SimG4FullSimActions")

# Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
# and a tool that saves the calorimeter hits
from Configurables import SimG4Alg, SimG4SaveCalHits
savetool = SimG4SaveCalHits("saveHits", readoutNames=["ECalHitsEta"])
savetool.positionedCaloHits.Path = "PositionedHits"
savetool.caloHits.Path = "Hits"

geantsim = SimG4Alg("SimG4Alg",
                    outputs=["SimG4SaveCalHits/saveHits"],
                    OutputLevel=DEBUG)

from Configurables import CreateVolumeCaloPositions
positions = CreateVolumeCaloPositions("positions", OutputLevel=VERBOSE)
positions.hits.Path = "Hits"
positions.positionedHits.Path = "Positions"

# PODIO algorithm
from Configurables import PodioOutput
out = PodioOutput("out", OutputLevel=DEBUG)
# Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
# and a tool that saves the calorimeter hits

# Detector readouts
# ECAL
ecalBarrelReadoutName = "ECalBarrelEta"
ecalBarrelReadoutNamePhiEta = "ECalBarrelPhiEta"
# HCAL
hcalReadoutName = "HCalBarrelReadout"
extHcalReadoutName = "HCalExtBarrelReadout"

# Configure saving of calorimeter hits
from Configurables import SimG4SaveCalHits
saveecalbarreltool = SimG4SaveCalHits("saveECalBarrelHits", readoutNames = [ecalBarrelReadoutName])
saveecalbarreltool.CaloHits.Path = "ECalBarrelHits"

savehcaltool = SimG4SaveCalHits("saveHCalBarrelHits",readoutNames = [hcalReadoutName])
savehcaltool.CaloHits.Path = "HCalBarrelHits"

# next, create the G4 algorithm, giving the list of names of tools ("XX/YY")
from Configurables import SimG4PrimariesFromEdmTool
particle_converter = SimG4PrimariesFromEdmTool("EdmConverter")
particle_converter.GenParticles.Path = "GenParticles"

from Configurables import SimG4Alg
geantsim = SimG4Alg("SimG4Alg",
                       outputs= ["SimG4SaveCalHits/saveECalBarrelHits",
                                 "SimG4SaveCalHits/saveHCalBarrelHits",
                       ],
示例#6
0
hepmc_converter.hepmc.Path="hepmc"
hepmc_converter.genparticles.Path="allGenParticles"
hepmc_converter.genvertices.Path="allGenVertices"

dumper = HepMCDumper("Dumper")
dumper.hepmc.Path="hepmc"

from Configurables import GeoSvc
geoservice = GeoSvc("GeoSvc", detectors=['file:Test/TestGeometry/data/TestBoxCaloSD_3readouts.xml'], OutputLevel = INFO)

from Configurables import SimG4Svc
geantservice = SimG4Svc("SimG4Svc", physicslist='SimG4TestPhysicsList')

from Configurables import SimG4Alg, SimG4SaveCalHits, InspectHitsCollectionsTool
inspecttool = InspectHitsCollectionsTool("inspect", readoutNames=["ECalHits"], OutputLevel = DEBUG)
savecaltool = SimG4SaveCalHits("saveECalHits", readoutNames = ["ECalHits"], OutputLevel = DEBUG)
savecaltool.positionedCaloHits.Path = "positionedCaloHits"
savecaltool.caloHits.Path = "caloHits"
geantsim = SimG4Alg("SimG4Alg", outputs= ["SimG4SaveCalHits/saveECalHits","InspectHitsCollectionsTool/inspect"])

from Configurables import RedoSegmentation
resegment = RedoSegmentation("ReSegmentation",
                             # old bitfield (readout)
                             oldReadoutName = "ECalHits",
                             # specify which fields are going to be deleted
                             oldSegmentationIds = ["x","y","z"],
                             # new bitfield (readout), with new segmentation
                             newReadoutName="ECalHitsReverseOrder",
                             OutputLevel = DEBUG)
# clusters are needed, with deposit position and cellID in bits
resegment.inhits.Path = "positionedCaloHits"
示例#7
0
                        detector='SimG4DD4hepDetector',
                        physicslist="SimG4FtfpBert",
                        actions="SimG4FullSimActions",
                        magneticField=field)
# range cut
geantservice.g4PostInitCommands += ["/run/setCut 0.1 mm"]

from Configurables import SimG4Alg, SimG4SaveCalHits, SimG4SingleParticleGeneratorTool, SimG4SaveTrackerHits

savetrackertool = SimG4SaveTrackerHits(
    "saveTrackerHits",
    readoutNames=["TrackerBarrelReadout", "TrackerEndcapReadout"])
savetrackertool.positionedTrackHits.Path = "TrackerPositionedHits"
savetrackertool.trackHits.Path = "TrackerHits"
savetrackertool.digiTrackHits.Path = "TrackerDigiPostPoint"
saveecaltool = SimG4SaveCalHits("saveECalBarrelHits",
                                readoutNames=[ecalBarrelReadoutName])
saveecaltool.positionedCaloHits.Path = "ECalBarrelPositionedHits"
saveecaltool.caloHits.Path = "ECalBarrelHits"
savehcaltool = SimG4SaveCalHits("saveHCalBarrelHits",
                                readoutNames=[hcalBarrelReadoutName])
savehcaltool.positionedCaloHits.Path = "HCalBarrelPositionedHits"
savehcaltool.caloHits.Path = "HCalBarrelHits"
outputHitsTools = [
    "SimG4SaveCalHits/saveECalBarrelHits",
    "SimG4SaveCalHits/saveHCalBarrelHits"
]
saveexthcaltool = SimG4SaveCalHits("saveHCalExtBarrelHits",
                                   readoutNames=[hcalExtBarrelReadoutName])
saveexthcaltool.positionedCaloHits.Path = "HCalExtBarrelPositionedHits"
saveexthcaltool.caloHits.Path = "HCalExtBarrelHits"
savecalendcaptool = SimG4SaveCalHits("saveECalEndcapHits",
示例#8
0
    "GeoSvc",
    detectors=[
        'file:Detector/DetFCChhBaseline1/compact/FCChh_DectEmptyMaster.xml',
        'file:Detector/DetFCChhECalInclined/compact/FCChh_ECalBarrel_withCryostat.xml',
        'file:Detector/DetFCChhCalDiscs/compact/Endcaps_coneCryo.xml'
    ],
    OutputLevel=INFO)

from Configurables import SimG4Svc
geantservice = SimG4Svc("SimG4Svc",
                        detector='SimG4DD4hepDetector',
                        physicslist="SimG4FtfpBert",
                        actions="SimG4FullSimActions")
geantservice.g4PostInitCommands += ["/run/setCut 0.1 mm"]
from Configurables import SimG4Alg, SimG4SaveCalHits, SimG4SingleParticleGeneratorTool
saveecaltool = SimG4SaveCalHits("saveECalBarrelHits",
                                readoutNames=["ECalBarrelEta"])
saveecaltool.positionedCaloHits.Path = "ECalBarrelPositionedHits"
saveecaltool.caloHits.Path = "ECalBarrelHits"
savecalendcaptool = SimG4SaveCalHits("saveECalEndcapHits",
                                     readoutNames=["EMECPhiEta"])
savecalendcaptool.positionedCaloHits.Path = "ECalEndcapPositionedHits"
savecalendcaptool.caloHits.Path = "ECalEndcapHits"
from Configurables import SimG4SingleParticleGeneratorTool
pgun = SimG4SingleParticleGeneratorTool("SimG4SingleParticleGeneratorTool",
                                        saveEdm=True,
                                        particleName="e-",
                                        energyMin=50000,
                                        energyMax=50000,
                                        etaMin=2.,
                                        etaMax=2.)
geantsim = SimG4Alg("SimG4Alg",
                        magneticField=field)

geantservice.g4PostInitCommands += ["/tracking/storeTrajectory 1"]

# Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
from Configurables import SimG4Alg, SimG4SaveTrackerHits, SimG4SaveTrajectory, SimG4GeantinosFromEdmTool
# first, create a tool that saves the tracker hits
# Name of that tool in GAUDI is "XX/YY" where XX is the tool class name ("SimG4SaveTrackerHits")
# and YY is the given name ("saveTrackerHits")
savetrajectorytool = SimG4SaveTrajectory("saveTrajectory")
savetrajectorytool.trajectory.Path = "trajectory"
savetrajectorytool.trajectoryPoints.Path = "trajectoryPoints"

from Configurables import SimG4SaveCalHits
savehcaltool = SimG4SaveCalHits(
    "saveHCalHits", readoutNames=["HCalBarrelDetailedWedgeReadout"])
savehcaltool.positionedCaloHits.Path = "HCalBarrelPositionedHits"
savehcaltool.caloHits.Path = "HCalBarrelHits"

# next, create the G4 algorithm, giving the list of names of tools ("XX/YY")
g4pconverter = SimG4GeantinosFromEdmTool()

geantsim = SimG4Alg("SimG4Alg",
                    outputs=[savehcaltool, savetrajectorytool],
                    eventProvider=g4pconverter)

## ouput
from Configurables import PodioOutput
out = PodioOutput("out", OutputLevel=INFO)
out.outputCommands = ["keep *"]
out.filename = 'output_hcaldetailedwedge_geantscan.root'
else:
    field = SimG4ConstantMagneticFieldTool("SimG4ConstantMagneticFieldTool",
                                           FieldOn=False)

#Setting random seeds for Geant4 simulations
#geantservice.g4PreInitCommands  += ["/random/setSeeds "+str(x)+" 0"] #where x is the number you want

#range cut
geantservice.g4PreInitCommands += ["/run/setCut 0.1 mm"]

# Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
# and a tool that saves the calorimeter hits
from Configurables import SimG4Alg, SimG4SaveCalHits, InspectHitsCollectionsTool

savehcaltool = SimG4SaveCalHits("saveHCalHits",
                                readoutNames=["HCalBarrelReadout"])
savehcaltool.positionedCaloHits.Path = "HCalPositionedHits"
savehcaltool.caloHits.Path = "HCalHits"
# Change INFO to DEBUG for printout of each deposit
saveexthcaltool = SimG4SaveCalHits("saveExtHCalHits",
                                   readoutNames=["HCalExtBarrelReadout"])
saveexthcaltool.positionedCaloHits.Path = "ExtHCalPositionedHits"
saveexthcaltool.caloHits.Path = "ExtHCalHits"

# next, create the G4 algorithm, giving the list of names of tools ("XX/YY")
from Configurables import SimG4SingleParticleGeneratorTool

pgun = SimG4SingleParticleGeneratorTool("SimG4SingleParticleGeneratorTool",
                                        saveEdm=True,
                                        particleName="e-",
                                        energyMin=energy,
示例#11
0
# Parses the given xml file
geoservice = GeoSvc(
    "GeoSvc",
    detectors=[
        'file:Detector/DetFCChhBaseline1/compact/FCChh_DectEmptyMaster.xml',
        'file:Detector/DetFCChhECalSimple/compact/FCChh_ECalBarrel_Mockup.xml'
    ],
    OutputLevel=DEBUG)

from Configurables import SimG4Alg, SimG4SaveCalHits, SimG4PrimariesFromEdmTool
## Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
# first, create a tool that saves the calorimeter hits (of type "ecal")
# Name of that tool in GAUDI is "XX/YY" where XX is the tool class name ("SimG4SaveTrackerHits")
# and YY is the given name ("saveTrackerHits")
saveecaltool = SimG4SaveCalHits("saveECalHits",
                                readoutNames=["BarECal_Readout"])
saveecaltool.DataOutputs.caloClusters.Path = "caloClusters"
saveecaltool.DataOutputs.caloHits.Path = "caloHits"
# next, create the G4 algorithm, giving the list of names of tools ("XX/YY")
particle_converter = SimG4PrimariesFromEdmTool("EdmConverter")
particle_converter.DataInputs.genParticles.Path = "allGenParticles"
geantsim = SimG4Alg("SimG4Alg",
                    outputs=["SimG4SaveCalHits/saveECalHits"],
                    eventProvider=particle_converter)

from Configurables import PodioOutput
out = PodioOutput("out", OutputLevel=DEBUG)
out.outputCommands = ["keep *"]

from Configurables import ApplicationMgr
ApplicationMgr(
示例#12
0
hepmc_converter.hepmc.Path="hepmc"
hepmc_converter.genparticles.Path="allGenParticles"
hepmc_converter.genvertices.Path="allGenVertices"

from Configurables import GeoSvc
geoservice = GeoSvc("GeoSvc")
geoservice.detectors = ['file:Test/TestGeometry/data/TestBoxCaloSD_segmentation.xml']

from Configurables import SimG4Svc
geantservice = SimG4Svc("SimG4Svc")
geantservice.detector='SimG4DD4hepDetector'
geantservice.physicslist='SimG4TestPhysicsList'
geantservice.actions='SimG4FullSimActions'

from Configurables import SimG4SaveCalHits
savecaltool = SimG4SaveCalHits("saveECalHits")
savecaltool.readoutNames = ["ECalHits"]
savecaltool.positionedCaloHits.Path = "positionedCaloHits"
savecaltool.caloHits.Path = "caloHits"
from Configurables import SimG4Alg
geantsim = SimG4Alg("SimG4Alg")
geantsim.outputs = [
                    "SimG4SaveCalHits/saveECalHits",
                    "InspectHitsCollectionsTool",
                    ]

from Configurables import TestNeighbours
neighbours = TestNeighbours("dbgNeighb")
neighbours.readout = 'ECalHits'
neighbours.inhits.Path = "caloHits"
# Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
# and a tool that saves the calorimeter hits

# Detector readouts
# ECAL
ecalBarrelReadoutName = "ECalBarrelEta"
ecalBarrelReadoutNamePhiEta = "ECalBarrelPhiEta"
# HCAL
hcalReadoutName = "HCalBarrelReadout"
extHcalReadoutName = "HCalExtBarrelReadout"

from Configurables import SimG4Alg
from Configurables import SimG4SaveCalHits
saveECalBarrelTool = SimG4SaveCalHits("saveECalBarrelHits")
saveECalBarrelTool.readoutNames = ["ECalBarrelEta"]
saveECalBarrelTool.CaloHits.Path = "ECalBarrelPositionedHits"
SimG4Alg("SimG4Alg").outputs += [saveECalBarrelTool]


from Configurables import SimG4SaveCalHits
saveHCalTool = SimG4SaveCalHits("saveHCalBarrelHits")
saveHCalTool.readoutNames = ["HCalBarrelReadout"]
saveHCalTool.CaloHits.Path = "HCalBarrelPositionedHits"
SimG4Alg("SimG4Alg").outputs += [saveHCalTool]

# next, create the G4 algorithm, giving the list of names of tools ("XX/YY")
from Configurables import SimG4PrimariesFromEdmTool
particle_converter = SimG4PrimariesFromEdmTool("EdmConverter")
particle_converter.GenParticles.Path = "GenParticles"
示例#14
0
## Geant4 service
# Configures the Geant simulation: geometry, physics list and user actions
geantservice = SimG4Svc("SimG4Svc", detector='SimG4DD4hepDetector', physicslist="SimG4FtfpBert",
                        actions="SimG4FullSimActions")

from Configurables import SimG4Alg, SimG4SaveTrackerHits, SimG4SaveCalHits, SimG4PrimariesFromEdmTool
## Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
# first, create a tool that saves the tracker hits
# Name of that tool in GAUDI is "XX/YY" where XX is the tool class name ("SimG4SaveTrackerHits")
# and YY is the given name ("saveTrackerHits")
savetrackertool = SimG4SaveTrackerHits("saveTrackerHits", readoutNames = ["TrackerBarrelReadout", "TrackerEndcapReadout"])
savetrackertool.DataOutputs.positionedTrackHits.Path = "positionedHits"
savetrackertool.DataOutputs.trackHits.Path = "hits"
# and a tool that saves the calorimeter hits with a name "SimG4SaveCalHits/saveCalHits"
savehcaltool = SimG4SaveCalHits("saveCalHits", readoutNames = ["ECalHitsPhiEta","BarHCal_Readout"])
savehcaltool.DataOutputs.positionedCaloHits.Path = "positionedCaloHits"

savehcaltool.DataOutputs.caloHits.Path = "caloHits"
# next, create the G4 algorithm, giving the list of names of tools ("XX/YY")
particle_converter = SimG4PrimariesFromEdmTool("EdmConverter")
particle_converter.DataInputs.genParticles.Path = "allGenParticles"
geantsim = SimG4Alg("SimG4Alg",
                    outputs = ["SimG4SaveTrackerHits/saveTrackerHits", "SimG4SaveCalHits/saveCalHits"],
                    eventProvider=particle_converter)

from Configurables import PodioOutput
out = PodioOutput("out",
                   OutputLevel=DEBUG)
out.outputCommands = ["keep *"]
ecalFwdReadoutName = "EMFwdPhiEta"
# HCAL readouts
hcalReadoutName = "HCalBarrelReadout"
extHcalReadoutName = "HCalExtBarrelReadout"
hcalEndcapReadoutName = "HECPhiEta"
hcalFwdReadoutName = "HFwdPhiEta"
# layers to be merged in endcaps & forward calo
ecalEndcapNumberOfLayersToMerge = [26] * 5 + [27]
ecalFwdNumberOfLayersToMerge = [7] * 5 + [8]
hcalEndcapNumberOfLayersToMerge = [13] + [14] * 5
hcalFwdNumberOfLayersToMerge = [8] + [9] * 5
identifierName = "layer"
volumeName = "layer"

from Configurables import SimG4Alg, SimG4SaveCalHits
saveecalbarreltool = SimG4SaveCalHits("saveECalBarrelHits",
                                      readoutNames=[ecalBarrelReadoutName])
saveecalbarreltool.positionedCaloHits.Path = "ECalBarrelPositionedHits"
saveecalbarreltool.caloHits.Path = "ECalBarrelHits"
saveecalendcaptool = SimG4SaveCalHits("saveECalEndcapHits",
                                      readoutNames=[ecalEndcapReadoutName])
saveecalendcaptool.positionedCaloHits.Path = "ECalEndcapPositionedHits"
saveecalendcaptool.caloHits.Path = "ECalEndcapHits"
saveecalfwdtool = SimG4SaveCalHits("saveECalFwdHits",
                                   readoutNames=[ecalFwdReadoutName])
saveecalfwdtool.positionedCaloHits.Path = "ECalFwdPositionedHits"
saveecalfwdtool.caloHits.Path = "ECalFwdHits"
savehcaltool = SimG4SaveCalHits("saveHCalHits", readoutNames=[hcalReadoutName])
savehcaltool.positionedCaloHits.Path = "HCalPositionedHits"
savehcaltool.caloHits.Path = "HCalHits"
saveexthcaltool = SimG4SaveCalHits("saveExtHCalHits",
                                   readoutNames=[extHcalReadoutName])
hepmc_dump = HepMCDumper("hepmc")
hepmc_dump.hepmc.Path="hepmc"

from Configurables import GeoSvc
geoservice = GeoSvc("GeoSvc", detectors=['file:compact/Box_dd4hepStopParticleSD.xml'], OutputLevel = DEBUG)

from Configurables import SimG4Svc
geantservice = SimG4Svc("SimG4Svc",
                        detector='SimG4DD4hepDetector',
                        physicslist="SimG4FtfpBert",
                        actions="SimG4FullSimActions")

from Configurables import SimG4Alg, SimG4SaveCalHits, SimG4PrimariesFromEdmTool, InspectHitsCollectionsTool
inspecttool = InspectHitsCollectionsTool("inspect", readoutNames=["Hits"], OutputLevel = DEBUG)

saveParticletool = SimG4SaveCalHits("saveParticles", readoutNames = ["Hits"])
saveParticletool.positionedCaloHits.Path = "positionedCaloHits"
saveParticletool.caloHits.Path = "caloHits"

particle_converter = SimG4PrimariesFromEdmTool("EdmConverter")
particle_converter.genParticles.Path = "allGenParticles"
geantsim = SimG4Alg("SimG4Alg",
                    outputs=["SimG4SaveCalHits/saveParticles",
                             "InspectHitsCollectionsTool/inspect"],
                    eventProvider=particle_converter)

from Configurables import FCCDataSvc, PodioOutput
podiosvc = FCCDataSvc("EventDataSvc")
out = PodioOutput("out", OutputLevel=DEBUG, filename="out_dd4hepStopParticleSD.root")
out.outputCommands = ["keep *"]
示例#17
0
    detectors=[
        'file:Detector/DetFCChhBaseline1/compact/FCChh_DectEmptyMaster.xml',
        'file:Detector/DetFCChhCalDiscs/compact/Endcaps_coneCryo.xml'
    ],
    OutputLevel=INFO)

# Geant4 service
# Configures the Geant simulation: geometry, physics list and user actions
from Configurables import SimG4Svc
geantservice = SimG4Svc("SimG4Svc")

# Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
# and a tool that saves the calorimeter hits
from Configurables import SimG4Alg, SimG4SaveCalHits
savecaltool = SimG4SaveCalHits("saveECalHits", readoutNames=["EMECPhiEta"])
savecaltool.positionedCaloHits.Path = "positionedCaloHits"
savecaltool.caloHits.Path = "caloHits"
from Configurables import SimG4SingleParticleGeneratorTool
pgun = SimG4SingleParticleGeneratorTool("SimG4SingleParticleGeneratorTool",
                                        saveEdm=True,
                                        particleName="e-",
                                        energyMin=50000,
                                        energyMax=50000,
                                        etaMin=2,
                                        etaMax=2)
geantsim = SimG4Alg("SimG4Alg",
                    outputs=["SimG4SaveCalHits/saveECalHits"],
                    eventProvider=pgun)

from Configurables import CreateVolumeCaloPositions
SimG4Alg("SimG4Alg").outputs += [savetrackertool_ITE]

from Configurables import SimG4SaveTrackerHits
savetrackertool_OTB = SimG4SaveTrackerHits("saveTrackerHits_OT_Barrel")
savetrackertool_OTB.readoutNames = ["OuterTrackerBarrelCollection"]
savetrackertool_OTB.SimTrackHits.Path = "hits_OT_barrel"
SimG4Alg("SimG4Alg").outputs += [savetrackertool_OTB]

from Configurables import SimG4SaveTrackerHits
savetrackertool_OTE = SimG4SaveTrackerHits("saveTrackerHits_OT_Endcap")
savetrackertool_OTE.readoutNames = ["OuterTrackerEndcapCollection"]
savetrackertool_OTE.SimTrackHits.Path = "hits_OT_endcap"
SimG4Alg("SimG4Alg").outputs += [savetrackertool_OTE]

from Configurables import SimG4SaveTrackerHits
savelumicaltool = SimG4SaveCalHits("saveLumicalHits")
savelumicaltool.readoutNames = ["LumiCalCollection"]
savelumicaltool.CaloHits.Path = "hits_Lumical"
SimG4Alg("SimG4Alg").outputs += [savelumicaltool]

from Configurables import SimG4SaveCalHits
saveEcalBarreltool = SimG4SaveCalHits("saveEcalBarrelHits")
saveEcalBarreltool.readoutNames = ["ECalBarrelCollection"]
saveEcalBarreltool.CaloHits.Path = "hits_EcalBarrel"
SimG4Alg("SimG4Alg").outputs += [saveEcalBarreltool]

from Configurables import SimG4SaveCalHits
saveEcalEndcaptool = SimG4SaveCalHits("saveEcalEndcapHits")
saveEcalEndcaptool.readoutNames = ["ECalEndcapCollection"]
saveEcalEndcaptool.CaloHits.Path = "hits_EcalEndcap"
SimG4Alg("SimG4Alg").outputs += [saveEcalEndcaptool]
示例#19
0
# common HCAL specific information
# readout name
hcalReadoutName = "BarHCal_Readout"
# new readout name
newHcalReadoutName = hcalReadoutName + "_phieta"
# readout name
extHcalReadoutName = "ExtBarHCal_Readout"
# new readout name
newExtHcalReadoutName = extHcalReadoutName + "_phieta"

# Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
# and a tool that saves the calorimeter hits
from Configurables import SimG4Alg, SimG4SaveCalHits, InspectHitsCollectionsTool
saveecaltool = SimG4SaveCalHits("saveECalBarrelHits",
                                readoutNames=[ecalReadoutName],
                                positionedCaloHits="ECalBarrelPositionedHits",
                                caloHits="ECalBarrelHits")
savehcaltool = SimG4SaveCalHits("saveHCalHits",
                                readoutNames=[hcalReadoutName],
                                positionedCaloHits="HCalPositionedHits",
                                caloHits="HCalHits")
saveexthcaltool = SimG4SaveCalHits("saveExtHCalHits",
                                   readoutNames=[extHcalReadoutName],
                                   positionedCaloHits="ExtHCalPositionedHits",
                                   caloHits="ExtHCalHits")

# next, create the G4 algorithm, giving the list of names of tools ("XX/YY")
from Configurables import SimG4SingleParticleGeneratorTool
pgun = SimG4SingleParticleGeneratorTool("SimG4SingleParticleGeneratorTool",
                                        saveEdm=True,
                                        particleName=particleType,
示例#20
0
gflash = SimG4GflashHomoCalo("gflash", material="G4_PbWO4")
regiontoolcalo = SimG4FastSimCalorimeterRegion("modelCalo",
                                               volumeNames=["BarrelECal"],
                                               parametrisation=gflash)
## create overlay on top of FTFP_BERT physics list, attaching fast sim/parametrization process
physicslisttool = SimG4FastSimPhysicsList("Physics",
                                          fullphysics="SimG4FtfpBert")
## attach those tools to the G4 service
geantservice = SimG4Svc("SimG4Svc",
                        physicslist=physicslisttool,
                        regions=["SimG4FastSimCalorimeterRegion/modelCalo"])

# Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
from Configurables import SimG4Alg, SimG4SaveCalHits, SimG4PrimariesFromEdmTool
savecaltool = SimG4SaveCalHits("saveCalHits", readoutNames=["ECalHits"])
savecaltool.DataOutputs.positionedCaloHits.Path = "positionedCaloHits"
savecaltool.DataOutputs.caloHits.Path = "caloHits"
# next, create the G4 algorithm, giving the list of names of tools ("XX/YY")
particle_converter = SimG4PrimariesFromEdmTool("EdmConverter")
particle_converter.DataInputs.genParticles.Path = "allGenParticles"
geantsim = SimG4Alg("SimG4Alg",
                    outputs=["SimG4SaveCalHits/saveCalHits"],
                    eventProvider=particle_converter)

from Configurables import PodioOutput
## PODIO algorithm
out = PodioOutput("out", filename="out_fast_calo_100GeV_fullpi.root")
out.outputCommands = ["keep *"]

# ApplicationMgr
示例#21
0
savetrackertool_ITE = SimG4SaveTrackerHits("saveTrackerHits_IT_Endcap", readoutNames = ["InnerTrackerEndcapCollection"])
savetrackertool_ITE.positionedTrackHits.Path = "positionedHits_IT_endcap"
savetrackertool_ITE.trackHits.Path = "hits_IT_endcap"
savetrackertool_ITE.digiTrackHits.Path = "digiHits_IT_endcap"

savetrackertool_OTB = SimG4SaveTrackerHits("saveTrackerHits_OT_Barrel", readoutNames = ["OuterTrackerBarrelCollection"])
savetrackertool_OTB.positionedTrackHits.Path = "positionedHits_OT_barrel"
savetrackertool_OTB.trackHits.Path = "hits_OT_barrel"
savetrackertool_OTB.digiTrackHits.Path = "digiHits_OT_barrel"

savetrackertool_OTE = SimG4SaveTrackerHits("saveTrackerHits_OT_Endcap", readoutNames = ["OuterTrackerEndcapCollection"])
savetrackertool_OTE.positionedTrackHits.Path = "positionedHits_OT_endcap"
savetrackertool_OTE.trackHits.Path = "hits_OT_endcap"
savetrackertool_OTE.digiTrackHits.Path = "digiHits_OT_endcap"

savelumicaltool = SimG4SaveCalHits("saveLumicalHits", readoutNames = ["LumiCalCollection"])
savelumicaltool.positionedCaloHits.Path = "positionedHits_Lumical"
savelumicaltool.caloHits.Path = "hits_Lumical"

saveEcalBarreltool = SimG4SaveCalHits("saveEcalBarrelHits", readoutNames = ["ECalBarrelCollection"])
saveEcalBarreltool.positionedCaloHits.Path = "positionedHits_EcalBarrel"
saveEcalBarreltool.caloHits.Path = "hits_EcalBarrel"

saveEcalEndcaptool = SimG4SaveCalHits("saveEcalEndcapHits", readoutNames = ["ECalEndcapCollection"])
saveEcalEndcaptool.positionedCaloHits.Path = "positionedHits_EcalEndcap"
saveEcalEndcaptool.caloHits.Path = "hits_EcalEndcap"

saveHcalBarreltool = SimG4SaveCalHits("saveHcalBarrelHits", readoutNames = ["HCalBarrelCollection"])
saveHcalBarreltool.positionedCaloHits.Path = "positionedHits_HcalBarrel"
saveHcalBarreltool.caloHits.Path = "hits_HcalBarrel"
示例#22
0
                                           IntegratorStepper="ClassicalRK4")
else:
    field = SimG4ConstantMagneticFieldTool("SimG4ConstantMagneticFieldTool",
                                           FieldOn=False)

#Setting random seeds for Geant4 simulations
#geantservice.g4PreInitCommands  += ["/random/setSeeds "+str(x)+" 0"] #where x is the number you want

#range cut
geantservice.g4PreInitCommands += ["/run/setCut 0.1 mm"]

# Geant4 algorithm
# Translates EDM to G4Event, passes the event to G4, writes out outputs via tools
# and a tool that saves the calorimeter hits
from Configurables import SimG4Alg, SimG4SaveCalHits, InspectHitsCollectionsTool
savehcaltool = SimG4SaveCalHits("saveHCalHits",
                                readoutNames=["BarHCal_Readout"])
savehcaltool.positionedCaloHits.Path = "HCalPositionedHits"
savehcaltool.caloHits.Path = "HCalHits"
# Change INFO to DEBUG for printout of each deposit

# next, create the G4 algorithm, giving the list of names of tools ("XX/YY")
from Configurables import SimG4SingleParticleGeneratorTool
pgun = SimG4SingleParticleGeneratorTool("SimG4SingleParticleGeneratorTool",
                                        saveEdm=True,
                                        particleName="e-",
                                        energyMin=energy,
                                        energyMax=energy,
                                        etaMin=-0.36,
                                        etaMax=0.36,
                                        OutputLevel=DEBUG)
示例#23
0
    os.path.join(path_to_detectors,
                 'Detector/DetFCChhBaseline1/compact/FCChh_DectMaster.xml'),
]
geoservice.OutputLevel = INFO
ApplicationMgr().ExtSvc += [geoservice]

# Set up SaveTools that write

from Configurables import SimG4SaveTrackerHits
savetrackertool = SimG4SaveTrackerHits("saveTrackerHits")
savetrackertool.readoutNames = ["TrackerBarrelReadout", "TrackerEndcapReadout"]
from Configurables import SimG4Alg
SimG4Alg("SimG4Alg").outputs += [savetrackertool]

from Configurables import SimG4SaveCalHits
saveecaltool = SimG4SaveCalHits("saveECalBarrelHits")
saveecaltool.readoutNames = ["ECalBarrelEta"]
saveecaltool.CaloHits.Path = "ECalBarrelHits"
SimG4Alg("SimG4Alg").outputs += [saveecaltool]

from Configurables import SimG4SaveCalHits
saveendcaptool = SimG4SaveCalHits("saveECalEndcapHits")
saveendcaptool.readoutNames = ["EMECPhiEta"]
saveendcaptool.CaloHits.Path = "ECalEndcapHits"
SimG4Alg("SimG4Alg").outputs += [saveendcaptool]

from Configurables import SimG4SaveCalHits
savefwdtool = SimG4SaveCalHits("saveECalFwdHits")
savefwdtool.readoutNames = ["EMFwdPhiEta"]
savefwdtool.CaloHits.Path = "ECalFwdHits"
SimG4Alg("SimG4Alg").outputs += [savefwdtool]