#!/usr/bin/env python import os import sys # sys.exit(0) from Gaudi.Configuration import * ############################################################################## # Random Number Svc ############################################################################## from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_ seed = [42] # rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4 rndmengine.SetSingleton = True rndmengine.Seeds = seed rndmgensvc = RndmGenSvc("RndmGenSvc") rndmgensvc.Engine = rndmengine.name() ############################################################################## # Event Data Svc ############################################################################## from Configurables import k4DataSvc dsvc = k4DataSvc("EventDataSvc") ############################################################################## # Geometry Svc ############################################################################## # geometry_option = "CepC_v4-onlyTracker.xml" geometry_option = "CepC_v4.xml" if not os.getenv("DETCEPCV4ROOT"): print("Can't find the geometry. Please setup envvar DETCEPCV4ROOT." ) sys.exit(-1) geometry_path = os.path.join(os.getenv("DETCEPCV4ROOT"), "compact", geometry_option) if not os.path.exists(geometry_path): print("Can't find the compact geometry file: %s"%geometry_path) sys.exit(-1) from Configurables import GeomSvc geosvc = GeomSvc("GeomSvc") geosvc.compact = geometry_path from Configurables import TimeProjectionChamberSensDetTool tpc_sensdettool = TimeProjectionChamberSensDetTool("TimeProjectionChamberSensDetTool") tpc_sensdettool.TypeOption = 1 ############################################################################## # Physics Generator ############################################################################## from Configurables import GenAlgo from Configurables import GtGunTool from Configurables import StdHepRdr from Configurables import SLCIORdr from Configurables import HepMCRdr from Configurables import GenPrinter from Configurables import GtBeamBackgroundTool bg = GtBeamBackgroundTool("GtBeamBackgroundTool") bg.InputFileMap={"default":"Test/0/ToCEPCSW.out"} bg.InputBeamEnergyMap={"default":120.}#GeV bg.RotationAlongYMap={"default":16.5e-3} # radian #gun.Particles = ["pi+"] #gun.EnergyMins = [100.] # GeV #gun.EnergyMaxs = [100.] # GeV #gun.ThetaMins = [0] # rad; 45deg #gun.ThetaMaxs = [180.] # rad; 45deg #gun.PhiMins = [0] # rad; 0deg #gun.PhiMaxs = [360.] # rad; 360deg # stdheprdr = StdHepRdr("StdHepRdr") # stdheprdr.Input = "/cefs/data/stdhep/CEPC250/2fermions/E250.Pbhabha.e0.p0.whizard195/bhabha.e0.p0.00001.stdhep" # lciordr = SLCIORdr("SLCIORdr") # lciordr.Input = "/cefs/data/stdhep/lcio250/signal/Higgs/E250.Pbbh.whizard195/E250.Pbbh_X.e0.p0.whizard195/Pbbh_X.e0.p0.00001.slcio" # hepmcrdr = HepMCRdr("HepMCRdr") # hepmcrdr.Input = "example_UsingIterators.txt" genprinter = GenPrinter("GenPrinter") genalg = GenAlgo("GenAlgo") genalg.GenTools = ["GtBeamBackgroundTool"] # genalg.GenTools = ["StdHepRdr"] # genalg.GenTools = ["StdHepRdr", "GenPrinter"] # genalg.GenTools = ["SLCIORdr", "GenPrinter"] # genalg.GenTools = ["HepMCRdr", "GenPrinter"] ############################################################################## # Detector Simulation ############################################################################## from Configurables import DetSimSvc detsimsvc = DetSimSvc("DetSimSvc") # from Configurables import ExampleAnaElemTool # example_anatool = ExampleAnaElemTool("ExampleAnaElemTool") from Configurables import DetSimAlg detsimalg = DetSimAlg("DetSimAlg") detsimalg.RandomSeeds = seed # detsimalg.VisMacs = ["vis.mac"] detsimalg.RunCmds = [ # "/tracking/verbose 1", ] detsimalg.AnaElems = [ # example_anatool.name() # "ExampleAnaElemTool" "Edm4hepWriterAnaElemTool" ] detsimalg.RootDetElem = "WorldDetElemTool" from Configurables import AnExampleDetElemTool example_dettool = AnExampleDetElemTool("AnExampleDetElemTool") ############################################################################## # POD I/O ############################################################################## from Configurables import PodioOutput out = PodioOutput("outputalg") out.filename = "Test/0/test-detsim10.root" out.outputCommands = ["keep *"] ############################################################################## # ApplicationMgr ############################################################################## from Configurables import ApplicationMgr ApplicationMgr( TopAlg = [genalg, detsimalg, out], EvtSel = 'NONE', EvtMax = 3000, ExtSvc = [rndmengine, rndmgensvc, dsvc, geosvc], )