From 45907a9e20a7500bcde28d92f6e3ea1bcd3c3387 Mon Sep 17 00:00:00 2001 From: John Derek Chapman <chapman@hep.phy.cam.ac.uk> Date: Tue, 21 Jul 2015 16:57:18 +0200 Subject: [PATCH] share/g4/preInclude.ParticleID.py (particleid_setupcalos): protection for releases where PyTileSimUtils has been removed. ATLASSIM-2070. Tagging: SimulationJobOptions-00-06-09-08 (SimulationJobOptions-00-06-09-08) * Tagging: SimulationJobOptions-00-06-09-08 * share/g4/preInclude.ParticleID.py (particleid_setupcalos): protection for releases where PyTileSimUtils has been removed. ATLASSIM-2070 2015-07-08 Edoardo Farina <edoardo.maria.farina@cern.ch> * Tagging: SimulationJobOptions-00-06-09-07 * Migration of the following job options to use TrackRecordGenerator: * share/cosmics/preInclude.TRsmear10.py * share/susy/preInclude.ReadStoppedParticles.py * share/cavern/preInclude.G4ReadCavern.py 2015-07-07 John Chapman <John.Chapman@cern.ch> * Tagging: SimulationJobOptions-00-06-09-06 * share/g4/preInclude.ParticleID.py - set ParticleID simFlag if available. ATLASSIM-2070 ... (Long ChangeLog diff - truncated) --- .../share/cavern/preInclude.G4ReadCavern.py | 13 +++-- .../share/cosmics/preInclude.TRsmear10.py | 4 +- .../share/g4/preInclude.ParticleID.py | 12 +++-- .../share/specialConfig/preInclude.AMSB.py | 49 +++++++++---------- .../susy/preInclude.ReadStoppedParticles.py | 17 +++---- 5 files changed, 46 insertions(+), 49 deletions(-) diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern.py index 2754a7fbc8e..d6140fd9f20 100644 --- a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern.py +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern.py @@ -13,11 +13,10 @@ ServiceMgr += PartPropSvc() from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() -from CosmicGenerator.CosmicGeneratorConf import CosmicGenerator -topSequence += CosmicGenerator() -topSequence.CosmicGenerator.TRSmearing = -1 #in millimeters, e.g. 10 -topSequence.CosmicGenerator.TRPSmearing = -1 #in radians, e.g. 0.01 -topSequence.CosmicGenerator.TRCollection = "NeutronBG" -topSequence.CosmicGenerator.ReadTR = True -topSequence.CosmicGenerator.AtRndmGenSvc = simFlags.RandomSvc.get_Value() +from TrackRecordGenerator.TrackRecordGeneratorConf import TrackRecordGenerator +topSequence += TrackRecordGenerator() +topSequence.TrackRecordGenerator.TRSmearing = -1 #in millimeters, e.g. 10 +topSequence.TrackRecordGenerator.TRPSmearing = -1 #in radians, e.g. 0.01 +topSequence.TrackRecordGenerator.TRCollection = "NeutronBG" +topSequence.TrackRecordGenerator.AtRndmGenSvc = simFlags.RandomSvc.get_Value() simFlags.RandomSeedList.addSeed( "COSMICS", 2040160768, 80 ) diff --git a/Simulation/SimulationJobOptions/share/cosmics/preInclude.TRsmear10.py b/Simulation/SimulationJobOptions/share/cosmics/preInclude.TRsmear10.py index ef8a332b2b1..2f63d48163b 100644 --- a/Simulation/SimulationJobOptions/share/cosmics/preInclude.TRsmear10.py +++ b/Simulation/SimulationJobOptions/share/cosmics/preInclude.TRsmear10.py @@ -10,8 +10,8 @@ # ######################################################### -from CosmicGenerator.CosmicGeneratorConf import CosmicGenerator -cg = CosmicGenerator() +from TrackRecordGenerator.TrackRecordGeneratorConf import TrackRecordGenerator +cg = TrackRecordGenerator() cg.TRSmearing = 10 #in millimeters cg.TRPSmearing = 0.001 #in radians diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.ParticleID.py b/Simulation/SimulationJobOptions/share/g4/preInclude.ParticleID.py index 75837e9048f..b773abd475f 100644 --- a/Simulation/SimulationJobOptions/share/g4/preInclude.ParticleID.py +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.ParticleID.py @@ -13,11 +13,13 @@ def particleid_setupcalos(): plar = AtlasG4Eng.G4Eng.Dict_DetConfig.get('PyLArG4RunControl') plar.LArG4GlobalOptions.SetDoCalibHitParticleID(True) plar.LArG4GlobalOptions.printMe() - #atlasG4log.info("ParticleID Setting new TileG4SimOptions") - ptile = AtlasG4Eng.G4Eng.Dict_DetConfig.get('PyTileSimUtils') - ptile.TileG4SimOptions.SetDoCalibHitParticleID(True) - ptile.TileG4SimOptions.printMe() + from G4AtlasApps.SimFlags import simFlags + if not hasattr(simFlags, "ParticleID"): + #atlasG4log.info("ParticleID Setting new TileG4SimOptions") + ptile = AtlasG4Eng.G4Eng.Dict_DetConfig.get('PyTileSimUtils') + ptile.TileG4SimOptions.SetDoCalibHitParticleID(True) + ptile.TileG4SimOptions.printMe() from G4AtlasApps.SimFlags import simFlags simFlags.InitFunctions.add_function("preInitDetFacility", particleid_setupcalos) - +if hasattr(simFlags, "ParticleID"): simFlags.ParticleID=True diff --git a/Simulation/SimulationJobOptions/share/specialConfig/preInclude.AMSB.py b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.AMSB.py index c51574f3202..5e9a0769c8f 100644 --- a/Simulation/SimulationJobOptions/share/specialConfig/preInclude.AMSB.py +++ b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.AMSB.py @@ -1,10 +1,5 @@ -################################################################# -# preInclude.AMSB.py - Chiara Debenedetti, 3 Jun 2011 # -################################################################# - - def get_and_fix_PDGTABLE(replace): - import os, shutil + import os, shutil, re # Download generic PDGTABLE (overwrite existing one if it exists) os.system('get_files -remove -data PDGTABLE.MeV') @@ -13,28 +8,27 @@ def get_and_fix_PDGTABLE(replace): # an example line to illustrate the fixed format, see PDGTABLE.MeV for more details # M 1000022 0.E+00 +0.0E+00 -0.0E+00 ~chi(0,1) 0 + lines = open('PDGTABLE.MeV.org').readlines() + for pdgid,mass,name,charge in replace: + if not re.search(r'[MW]\s+'+str(pdgid)+'\s+\S+', ''.join(lines)): + lines.append('M' + str(pdgid).rjust(8) +''.ljust(26) + + ('%11.5E' % mass).ljust(15) + + '+0.0E+00'.ljust(9) + '-0.0E+00'.ljust(9) + + name.strip() + ''.ljust(6) + charge.strip() + '\n') + lines.append('W' + str(pdgid).rjust(8) +''.ljust(26) + + '0.E+00'.ljust(15) + '+0.0E+00'.ljust(9) + '-0.0E+00'.ljust(9) + + name.strip() + ''.ljust(6) + charge.strip() + '\n') + else: + for i in xrange(len(lines)): + if re.search(r'M\s+'+str(pdgid)+'\s+\S+', lines[i]): + l = lines[i] + lines[i] = l[0:35] + ('%11.5E' % mass).ljust(14) + l[49:] + update = open('PDGTABLE.MeV', 'w') - for l in open('PDGTABLE.MeV.org'): - - for r in replace: - if l.find(r[1]) > -1: - ll = l.split() - - if ll[0] == r[0] and ll[1] == r[1]: - l = l[0:35] + ('%11.5E' % r[2]).strip().ljust(14) + l[49:] - continue - - update.write(l) + update.write(''.join(lines)) update.close() -def load_files_for_AMSB_scenario(simdict): - C1Mass = eval(simdict["AMSBC1Mass"]) - N1Mass = eval(simdict["AMSBN1Mass"]) - # patching PDGTABLE - get_and_fix_PDGTABLE([('M', '1000022', N1Mass), ('M', '1000024', C1Mass)]) - - doG4SimConfig = True from AthenaCommon.AthenaCommonFlags import athenaCommonFlags import PyUtils.AthFile as af @@ -52,14 +46,17 @@ except: from G4AtlasApps import AtlasG4Eng simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration -load_files_for_AMSB_scenario(simdict) +C1Mass = eval(simdict["AMSBC1Mass"]) +N1Mass = eval(simdict["AMSBN1Mass"]) +# patching PDGTABLE +get_and_fix_PDGTABLE([(1000022, N1Mass, '~chi(0,1)', '0'), (1000024, C1Mass, '~chi(+,1)', '+')]) if doG4SimConfig: from G4AtlasApps.SimFlags import simFlags def amsb_processlist(): from G4AtlasApps import AtlasG4Eng AtlasG4Eng.G4Eng.gbl.G4Commands().process.list() - + simFlags.InitFunctions.add_function("postInit", amsb_processlist) def amsb_setparams(): diff --git a/Simulation/SimulationJobOptions/share/susy/preInclude.ReadStoppedParticles.py b/Simulation/SimulationJobOptions/share/susy/preInclude.ReadStoppedParticles.py index b86a0624b22..656de604363 100644 --- a/Simulation/SimulationJobOptions/share/susy/preInclude.ReadStoppedParticles.py +++ b/Simulation/SimulationJobOptions/share/susy/preInclude.ReadStoppedParticles.py @@ -28,16 +28,15 @@ def readStoppedParticles(): simFlags.RandomSeedList.addSeed( "COSMICS", 2040160768, 443921183 ) from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() - if not hasattr(topSequence, 'CosmicGenerator'): - from CosmicGenerator.CosmicGeneratorConf import CosmicGenerator - topSequence += CosmicGenerator() + if not hasattr(topSequence, 'TrackRecordGenerator'): + from TrackRecordGenerator.TrackRecordGeneratorConf import TrackRecordGenerator + topSequence += TrackRecordGenerator() - topSequence.CosmicGenerator.TRSmearing = -1 #in millimeters, e.g. 10 - topSequence.CosmicGenerator.TRPSmearing = -1 #in radians, e.g. 0.01 - topSequence.CosmicGenerator.TRCollection = "StoppingPositions" - topSequence.CosmicGenerator.ReadTR = True - topSequence.CosmicGenerator.StopParticles = True - topSequence.CosmicGenerator.AtRndmGenSvc = simFlags.RandomSvc.get_Value() + topSequence.TrackRecordGenerator.TRSmearing = -1 #in millimeters, e.g. 10 + topSequence.TrackRecordGenerator.TRPSmearing = -1 #in radians, e.g. 0.01 + topSequence.TrackRecordGenerator.TRCollection = "StoppingPositions" + topSequence.TrackRecordGenerator.StopParticles = True + topSequence.TrackRecordGenerator.AtRndmGenSvc = simFlags.RandomSvc.get_Value() simFlags.InitFunctions.add_function("preInit", readStoppedParticles) -- GitLab