diff --git a/Simulation/SimulationJobOptions/cmt/requirements b/Simulation/SimulationJobOptions/cmt/requirements new file mode 100644 index 0000000000000000000000000000000000000000..b7e0c05d3a9fe9ff928dad773267fe74fd1fa795 --- /dev/null +++ b/Simulation/SimulationJobOptions/cmt/requirements @@ -0,0 +1,8 @@ +package SimulationJobOptions + +author John Chapman + +use AtlasPolicy AtlasPolicy-* + +public +apply_pattern declare_joboptions files="*.py atlfast2/*.py heavyIons/*.py cosmics/*.py digitization/*.py subdetectors/*.py g4/*.py cavern/*.py pileup/*.py susy/*.py specialConfig/*.py" diff --git a/Simulation/SimulationJobOptions/share/atlfast2/preInclude.FastIDKiller.py b/Simulation/SimulationJobOptions/share/atlfast2/preInclude.FastIDKiller.py new file mode 100644 index 0000000000000000000000000000000000000000..9ffe85a269b4f673cf0ff38bb65681a655c3a676 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/atlfast2/preInclude.FastIDKiller.py @@ -0,0 +1,20 @@ +######################################################### +# +# SimulationJobOptions/postInitOptions.FastIDKiller.py +# Michael Duehrssen +# +# jobOption to call the FastIDKiller while running +# a G4 simulation of the ATLAS detector. +# The FastIDKiller will kill all particles leaving the +# inner detector except all muons or an e/gamma with an +# energy above a certain threshold. +######################################################### + +def fastidkiller_setup(): + ## Add the FastIDKiller to the UserActions + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myAction = PyG4Atlas.UserAction('G4UserActions', 'FastIDKiller', ['BeginOfRun','EndOfRun','BeginOfEvent','EndOfEvent','Step']) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myAction) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", fastidkiller_setup) diff --git a/Simulation/SimulationJobOptions/share/atlfast2/preInclude.FastMBKiller.py b/Simulation/SimulationJobOptions/share/atlfast2/preInclude.FastMBKiller.py new file mode 100644 index 0000000000000000000000000000000000000000..edba0cc800ef2a492b81787a73a64eb4989854ac --- /dev/null +++ b/Simulation/SimulationJobOptions/share/atlfast2/preInclude.FastMBKiller.py @@ -0,0 +1,16 @@ +######################################################### +# +# SimulationJobOptions/postOptions.FastMBKiller.py +# Zach Marshall +# +# Requested for the Atlfast-II and MinBias groups +######################################################### + +def fastmbkiller_setup(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myAction = PyG4Atlas.UserAction('G4UserActions','FastIDKiller', ['BeginOfRun','EndOfRun','BeginOfEvent','EndOfEvent','Step']) + myAction.set_Properties( {"Z":"3600" , "R":"1400"} ) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myAction) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", fastmbkiller_setup) diff --git a/Simulation/SimulationJobOptions/share/atlfast2/preInclude.MC12_AtlfastII_Hits.py b/Simulation/SimulationJobOptions/share/atlfast2/preInclude.MC12_AtlfastII_Hits.py new file mode 100644 index 0000000000000000000000000000000000000000..caef9fea53a1f8a0fbb7305fd6d89b909e06b860 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/atlfast2/preInclude.MC12_AtlfastII_Hits.py @@ -0,0 +1,4 @@ +include("SimulationJobOptions/preInclude.FastIDKiller.py") +from G4AtlasApps.SimFlags import simFlags +if hasattr(simFlags, 'SimulationFlavour'): + simFlags.SimulationFlavour = "AtlfastII" diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.Cavern.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.Cavern.py new file mode 100644 index 0000000000000000000000000000000000000000..aa000cfe7028be9ef93c254b2478cf06aaa52b45 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.Cavern.py @@ -0,0 +1,26 @@ +######################################################### +# +# SimulationJobOptions/Cavern.py +# Andrea Dell'Acqua +# +# Setting special range cuts in G4 for use with cavern +# background production. +######################################################### + +from G4AtlasApps.SimFlags import simFlags +simFlags.CalibrationRun.set_Off() +simFlags.CavernCuts = True +simFlags.LArParameterization = 0 + +## Callback for init at level 1 +def cavern_setup(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myMuon = AtlasG4Eng.G4Eng.Dict_DetFacility.get("Muon:Muon") + myMuon_Region = PyG4Atlas.PhysicsReg("MuonSys") + myMuon_Region.add_Volumes("Muon::MuonSys") + myMuon_Region.add_Cuts("gamma", 0.1) + myMuon_Region.add_Cuts("e-", 0.1) + myMuon_Region.add_Cuts("e+", 0.1) + myMuon.add_PhysicsReg(myMuon_Region) + +simFlags.InitFunctions.add_function("preInitPhysicsRegion", cavern_setup) diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.CavernCuts.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.CavernCuts.py new file mode 100644 index 0000000000000000000000000000000000000000..4f18fb14a1a2668579c00fb62af502c226cf6a27 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.CavernCuts.py @@ -0,0 +1,2 @@ +from G4AtlasApps.SimFlags import simFlags +simFlags.CavernCuts = True diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern.py new file mode 100644 index 0000000000000000000000000000000000000000..2754a7fbc8e83b10f6744dbbcba8f89a80d1a0a8 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern.py @@ -0,0 +1,23 @@ +include.block('SimulationJobOptions/preInclude.G4ReadCavern.py') +## Configuration to read neutron background track records + +from G4AtlasApps.SimFlags import simFlags +simFlags.NeutronTimeCut = int(2**31 - 1) #probably not required. +simFlags.NeutronTimeCut.set_Off() +simFlags.CavernBG = "Read" + +import G4AtlasApps.AtlasCosmicTrackRecordJob +from AthenaCommon.AppMgr import ServiceMgr +from PartPropSvc.PartPropSvcConf import PartPropSvc +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() +simFlags.RandomSeedList.addSeed( "COSMICS", 2040160768, 80 ) diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern150.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern150.py new file mode 100644 index 0000000000000000000000000000000000000000..34598dea8ea5c4cac8aeb0433d2401fc309662bd --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern150.py @@ -0,0 +1,10 @@ +# Modify the hit wrapping action to wrap on 150 ns + +def cbwrapper_setup(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myAction = PyG4Atlas.UserAction('G4UserActions', 'HitWrapper', ['EndOfEvent']) + myAction.set_Properties( {"WrapTime" : "150"} ) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myAction) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("postInit", cbwrapper_setup) diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern1600.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern1600.py new file mode 100644 index 0000000000000000000000000000000000000000..852e35e4c371b5e3abaed9fc7d724509d4ed6777 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern1600.py @@ -0,0 +1,10 @@ +# Modify the hit wrapping action to wrap on 1600 ns + +def cbwrapper_setup(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myAction = PyG4Atlas.UserAction('G4UserActions', 'HitWrapper', ['EndOfEvent']) + myAction.set_Properties( {"WrapTime" : "1600"} ) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myAction) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("postInit", cbwrapper_setup) diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern50.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern50.py new file mode 100644 index 0000000000000000000000000000000000000000..9452606770af24852b6d959f755192c41f689de3 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern50.py @@ -0,0 +1,10 @@ +# Modify the hit wrapping action to wrap on 50 ns + +def cbwrapper_setup(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myAction = PyG4Atlas.UserAction('G4UserActions', 'HitWrapper', ['EndOfEvent']) + myAction.set_Properties( {"WrapTime" : "50"} ) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myAction) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("postInit", cbwrapper_setup) diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern75.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern75.py new file mode 100644 index 0000000000000000000000000000000000000000..b267151cb3fb8ad71e98554125e60f93a63136c1 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern75.py @@ -0,0 +1,10 @@ +# Modify the hit wrapping action to wrap on 75 ns + +def cbwrapper_setup(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myAction = PyG4Atlas.UserAction('G4UserActions', 'HitWrapper', ['EndOfEvent']) + myAction.set_Properties( {"WrapTime" : "75"} ) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myAction) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("postInit", cbwrapper_setup) diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern900.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern900.py new file mode 100644 index 0000000000000000000000000000000000000000..1f00f34d9f211595e30a12c582a3fc795503912b --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4ReadCavern900.py @@ -0,0 +1,10 @@ +# Modify the hit wrapping action to wrap on 50 ns + +def cbwrapper_setup(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myAction = PyG4Atlas.UserAction('G4UserActions', 'HitWrapper', ['EndOfEvent']) + myAction.set_Properties( {"WrapTime" : "900"} ) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myAction) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("postInit", cbwrapper_setup) diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4SignalCavern.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4SignalCavern.py new file mode 100644 index 0000000000000000000000000000000000000000..3cf2f5dee1640a6abad38bf2fc4a9fbbfb2eba09 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4SignalCavern.py @@ -0,0 +1,4 @@ +# Set some sim flags to take care of Neutron BG +from G4AtlasApps.SimFlags import simFlags +simFlags.CavernBG = 'Signal' + diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4SignalWorld.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4SignalWorld.py new file mode 100644 index 0000000000000000000000000000000000000000..a5e69d198d6dfe168bde6e48369e16d057ff4015 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4SignalWorld.py @@ -0,0 +1,4 @@ +# Set some sim flags to take care of Neutron BG +from G4AtlasApps.SimFlags import simFlags +simFlags.CavernBG = 'SignalWorld' + diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4WriteCavern.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4WriteCavern.py new file mode 100644 index 0000000000000000000000000000000000000000..3c80c607b2565cac1baa7fdbd9938b76bce2a454 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4WriteCavern.py @@ -0,0 +1,16 @@ +include.block('SimulationJobOptions/preInclude.G4WriteCavern.py') +## Set some sim flags to take care of Neutron BG +from G4AtlasApps.SimFlags import simFlags +simFlags.CalibrationRun.set_Off() # Turn off calibration hits (just a waste) +simFlags.NeutronTimeCut = int(2**31 - 1) #probably not required. +simFlags.NeutronTimeCut.set_Off() +simFlags.CavernBG = 'Write' +if 'runArgs' in dir(): + if hasattr(runArgs,'outputEVNT_CAVERNTRFile'): + simFlags.WriteTR = runArgs.outputEVNT_CAVERNTRFile + elif hasattr(runArgs,'outputTrackRecordFile'): + simFlags.WriteTR = runArgs.outputTrackRecordFile + elif hasattr(runArgs,'outputEvgenFile'): + simFlags.WriteTR = runArgs.outputEvgenFile +else: + simFlags.WriteTR = 'NeutronBG.pool.root' diff --git a/Simulation/SimulationJobOptions/share/cavern/preInclude.G4WriteWorld.py b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4WriteWorld.py new file mode 100644 index 0000000000000000000000000000000000000000..fe19e36599af2f9d3412e6c026bf2fdc8b68e5d6 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cavern/preInclude.G4WriteWorld.py @@ -0,0 +1,15 @@ +include.block('SimulationJobOptions/preInclude.G4WriteWorld.py') +## Set some sim flags to take care of Neutron BG +from G4AtlasApps.SimFlags import simFlags +simFlags.NeutronTimeCut = int(2**31 - 1) #probably not required. +simFlags.NeutronTimeCut.set_Off() +simFlags.CavernBG = 'WriteWorld' +if 'runArgs' in dir(): + if hasattr(runArgs,'outputEVNT_CAVERNTRFile'): + simFlags.WriteTR = runArgs.outputEVNT_CAVERNTRFile + elif hasattr(runArgs,'outputTrackRecordFile'): + simFlags.WriteTR = runArgs.outputTrackRecordFile + elif hasattr(runArgs,'outputEvgenFile'): + simFlags.WriteTR = runArgs.outputEvgenFile +else: + simFlags.WriteTR = 'NeutronBG.pool.root' diff --git a/Simulation/SimulationJobOptions/share/cosmics/preInclude.Cosmics.py b/Simulation/SimulationJobOptions/share/cosmics/preInclude.Cosmics.py new file mode 100644 index 0000000000000000000000000000000000000000..02b1748713347ceea205a04efd8392b1b22cfc4e --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cosmics/preInclude.Cosmics.py @@ -0,0 +1,87 @@ +include.block('SimulationJobOptions/preInclude.Cosmics.py') +########################################################## +## +## SimulationJobOptions/preInclude.Cosmics.py +## Zach Marshall +## +## Set up the environment for cosmics simulation +########################################################## + +## Use beamType job property to indicate this is a cosmics job +from AthenaCommon.BeamFlags import jobproperties +if jobproperties.Beam.beamType.get_Value() != 'cosmics': + jobproperties.Beam.beamType = "cosmics" +print "Cosmics-specific configuration of Simulation and Digitization requested" + +## Switch off EventFilter +from G4AtlasApps.SimFlags import simFlags +simFlags.EventFilter.set_Off() + +## Now make the cosmics setup via callback functions + +def cosmics_setup_filters(): + ## Define volumes + atlasG4log.info("Setting up filter parameters") + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + MenuRecordEnvelopes = AtlasG4Eng.G4Eng.menu_RecordEnvelope() + trt = PyG4Atlas.RecEnvelope('TRTBarrelEntryLayer', 'TRT::BarrelOuterSupport', 6) + trteca = PyG4Atlas.RecEnvelope('TRTECAEntryLayer', 'TRT::WheelA', 6) + trtecb = PyG4Atlas.RecEnvelope('TRTECBEntryLayer', 'TRT::WheelB', 6) + sct = PyG4Atlas.RecEnvelope('SCTBarrelEntryLayer', 'SCT::ThShieldOuterCly', 6) # could be ThShieldInnerCly or Cyl.. + pixel = PyG4Atlas.RecEnvelope('PixelEntryLayer', 'Pixel::Pixel', 4) + + ## First filter volume + if not simFlags.CosmicFilterVolumeName.statusOn: + atlasG4log.warning("CosmicFilterVolumeName not set. Using default = %s" % simFlags.CosmicFilterVolumeName.get_Value()) + simFlags.CosmicFilterVolumeName.set_On() + + if simFlags.CosmicFilterVolumeName == "TRT_Barrel": + atlasG4log.info('Setting recenv for TRT_Barrel') + MenuRecordEnvelopes.add_RecEnvelope(trt) + elif simFlags.CosmicFilterVolumeName == "TRT_EC": + atlasG4log.info('Setting recenv for TRT_Endcaps') + MenuRecordEnvelopes.add_RecEnvelope(trteca) + MenuRecordEnvelopes.add_RecEnvelope(trtecb) + elif simFlags.CosmicFilterVolumeName == "SCT_Barrel": + atlasG4log.info('Setting recenv for SCT_Barrel') + MenuRecordEnvelopes.add_RecEnvelope(sct) + elif simFlags.CosmicFilterVolumeName == "Pixel": + atlasG4log.info('Setting recenv for Pixel') + MenuRecordEnvelopes.add_RecEnvelope(pixel) + + ## If second volume requested + if simFlags.CosmicFilterVolumeName2.statusOn: + if simFlags.CosmicFilterVolumeName2 == "TRT_Barrel": + atlasG4log.info('Setting recenv2 for TRT_Barrel') + MenuRecordEnvelopes.add_RecEnvelope(trt) + elif simFlags.CosmicFilterVolumeName2 == "TRT_EC": + atlasG4log.info('Setting recenv2 for TRT_Endcaps') + MenuRecordEnvelopes.add_RecEnvelope(trteca) + MenuRecordEnvelopes.add_RecEnvelope(trtecb) + elif simFlags.CosmicFilterVolumeName2 == "SCT_Barrel": + atlasG4log.info('Setting recenv2 for SCT_Barrel') + MenuRecordEnvelopes.add_RecEnvelope(sct) + elif simFlags.CosmicFilterVolumeName2 == "Pixel": + atlasG4log.info('Setting recenv2 for Pixel') + MenuRecordEnvelopes.add_RecEnvelope(pixel) + + # TODO: Does this work in a callback? + if not simFlags.ISFRun: + include("G4CosmicFilter/G4CosmicFilter.py") + + +def cosmics_modify_truth_strategies(): + ## Modifying truth strategies as requested by e/gamma group + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.listStrategies() + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Bremsstrahlung', 'CALO::CALO', 2) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Conversion', 'CALO::CALO', 2) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Decay', 'CALO::CALO', 2) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Ionization', 'CALO::CALO', 2) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('HadronicInteraction', 'CALO::CALO',2) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Compton', 'CALO::CALO', 2) + + +## Register the callbacks (at two different levels) +simFlags.InitFunctions.add_function("preInitG4", cosmics_setup_filters) +simFlags.InitFunctions.add_function("postInit", cosmics_modify_truth_strategies) diff --git a/Simulation/SimulationJobOptions/share/cosmics/preInclude.MuonFilter.py b/Simulation/SimulationJobOptions/share/cosmics/preInclude.MuonFilter.py new file mode 100644 index 0000000000000000000000000000000000000000..c235bb926f24aa3bb651633f88d16e5d4358b971 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cosmics/preInclude.MuonFilter.py @@ -0,0 +1,21 @@ +######################################################### +## +## Filter cosmics events on muons leaving the calorimeter +## +## TODO: Move to the "cosmics" folder? +## +######################################################### + +atlasG4log.info("Adding a filter on muons leaving the calorimeter") + +from G4AtlasApps.SimFlags import simFlags +simFlags.CosmicFilterVolumeName = "Calo" +simFlags.CosmicFilterID = "13" +simFlags.CosmicFilterPTmin = "6000" # in MeV +simFlags.CosmicFilterPTmax = "50000" # in MeV + +def cosmics_muonfilter(): + from G4AtlasApps import AtlasG4Eng + include('G4CosmicFilter/G4CosmicFilter.py') + +simFlags.InitFunctions.add_function("preInitG4", cosmics_muonfilter) diff --git a/Simulation/SimulationJobOptions/share/cosmics/preInclude.TRsmear10.py b/Simulation/SimulationJobOptions/share/cosmics/preInclude.TRsmear10.py new file mode 100644 index 0000000000000000000000000000000000000000..ef8a332b2b125140a780ccb45fb5e955cf854dda --- /dev/null +++ b/Simulation/SimulationJobOptions/share/cosmics/preInclude.TRsmear10.py @@ -0,0 +1,17 @@ +######################################################### +# +# SimulationJobOptions/preInclude.TRsmear10.py +# Zach Marshall +# +# Smear the track records input into cosmic sim by 10mm +# and 1 mrad +# +# Inserted into the alg seq by preInclude.Cosmics.py +# +######################################################### + +from CosmicGenerator.CosmicGeneratorConf import CosmicGenerator +cg = CosmicGenerator() +cg.TRSmearing = 10 #in millimeters +cg.TRPSmearing = 0.001 #in radians + diff --git a/Simulation/SimulationJobOptions/share/digitization/OverrideRunLBLumiDigitConfig.py b/Simulation/SimulationJobOptions/share/digitization/OverrideRunLBLumiDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..446acac09088600b202b8e8dce45eb2fbe67023a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/OverrideRunLBLumiDigitConfig.py @@ -0,0 +1,26 @@ +#Run-dependent digi job configuration file. +#SimulationJobOptions/ConfigLumi_preOptions.py +from Digitization.RunDependentMCTaskIterator import getRunLumiInfoFragment +from Digitization.DigitizationFlags import digitizationFlags +digilog = logging.getLogger('Digi_trf') +digilog.info('doing RunLumiOverride configuration from file.') +JobMaker=[ +#<!-- these lines are hidden from parser. Test example runs with different muon DCS + {'run':158116, 'lb':115, 'starttstamp':1277574167, 'dt':104.895, 'evts':7, 'mu':1.559, 'force_new':False}, + {'run':158392, 'lb':217, 'starttstamp':1277946999, 'dt':120.818, 'evts':6, 'mu':1.243, 'force_new':False}, +#--> end hiding +] + +if 'runArgs' in dir(): + if hasattr(runArgs,"jobNumber") and hasattr(runArgs,"maxEvents"): + trfJobNumber = runArgs.jobNumber + trfMaxEvents = runArgs.maxEvents + else: digilog.error('Tried to include RunLumiOverride configuration without knowing this runArgs.jobNumber or runArgs.maxEvents!') +else: + #this is a test job not a trf job + trfJobNumber=0 + trfMaxEvents=10 + + +digitizationFlags.RunAndLumiOverrideList=getRunLumiInfoFragment(jobnumber=trfJobNumber, task=JobMaker, maxEvents=trfMaxEvents) +del JobMaker diff --git a/Simulation/SimulationJobOptions/share/digitization/postInclude.FullTruth.py b/Simulation/SimulationJobOptions/share/digitization/postInclude.FullTruth.py new file mode 100644 index 0000000000000000000000000000000000000000..db95b820a9d7c47a16167ee31a80967b77014df6 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/postInclude.FullTruth.py @@ -0,0 +1,8 @@ +## +## postInclude.FullTruth.py +## + +from AthenaCommon.CfgGetter import getPublicTool +getPublicTool("MergeMcEventCollTool").DoSlimming = False + +##EOF diff --git a/Simulation/SimulationJobOptions/share/digitization/postInclude.ReadFromEvgen.py b/Simulation/SimulationJobOptions/share/digitization/postInclude.ReadFromEvgen.py new file mode 100644 index 0000000000000000000000000000000000000000..c28b867c1565d5b0e1a1c8760b02d4fece48ee54 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/postInclude.ReadFromEvgen.py @@ -0,0 +1,62 @@ +PileUpEventLoopMgr = Service( "PileUpEventLoopMgr" ) + +pupStream = "PileUpCollXingStream" +from PileUpComps.PileUpCompsConf import BkgStreamsCache +from Digitization import PileUpEventType +from EventSelectorAthenaPool.EventSelectorAthenaPoolConf import EventSelectorAthenaPool + +from Digitization.DigitizationFlags import digitizationFlags +PileUpEventLoopMgr.OrigSelector="EventSelector" +minBiasCache = BkgStreamsCache("MinBiasCache") +if hasattr(digitizationFlags, 'numberOfNDMinBias'): + minBiasCache.CollPerXing=digitizationFlags.numberOfNDMinBias() +elif hasattr(digitizationFlags, 'numberOfLowPtMinBias'): + minBiasCache.CollPerXing=digitizationFlags.numberOfLowPtMinBias() +else: + raise AttributeError("These job options require digitization jobproperties not present in this release! This job will crash.") +minBiasCache.RndmGenSvc=digitizationFlags.rndmSvc() +minBiasCache.RndmStreamName=pupStream +minBiasCache.PileUpEventType=PileUpEventType.MinimumBias +minBiasCache.ReadDownscaleFactor=10 # read one new event every event + +from EventSelectorAthenaPool.EventSelectorAthenaPoolConf import EventSelectorAthenaPool +minBiasEvtSel = EventSelectorAthenaPool("minBiasEventSelector") +if hasattr(digitizationFlags, 'NDMinBiasInputCols'): + minBiasEvtSel.InputCollections = digitizationFlags.NDMinBiasInputCols() +elif hasattr(digitizationFlags, 'LowPtMinBiasInputCols'): + minBiasEvtSel.InputCollections = digitizationFlags.LowPtMinBiasInputCols() +else: + raise AttributeError("These job options require digitization jobproperties not present in this release! This job will crash.") +minBiasEvtSel.KeepInputFilesOpen = kfOpen +minBiasEvtSel.ProcessMetadata = False +ServiceMgr += minBiasEvtSel +minBiasCache.EventSelector = 'minBiasEventSelector' +PileUpEventLoopMgr.bkgCaches += [ minBiasCache ] + +MergeMcEventCollection = Algorithm( "MergeMcEventCollection" ) +if hasattr(MergeMcEventCollection, 'MergeMcEventCollTool'): + MergeMcEventCollection.MergeMcEventCollTool.TruthCollKey = "GEN_EVENT" +else: + MergeMcEventCollection.TruthCollKey = "GEN_EVENT" + +try: + itemlist = StreamRDO_FH.ItemList +except: + itemlist = StreamRDO.MetaDataItemList + +if itemlist.count( "IOVMetaDataContainer#*" ): + print 'ZLM found it!' + itemlist[ itemlist.index( "IOVMetaDataContainer#*" ) ] = "IOVMetaDataContainer#_TagInfo" +else: + itemlist += [ "IOVMetaDataContainer#_TagInfo" ] + +print 'ZLM container thingy:',itemlist + +itemlist += [ "IOVMetaDataContainer#_Digitization_Parameters" ] + +try: + print StreamRDO_FH.ItemList +except: + print StreamRDO.MetaDataItemList + + diff --git a/Simulation/SimulationJobOptions/share/digitization/postInclude.RelaxLArDigitThinnerCutsToZero.py b/Simulation/SimulationJobOptions/share/digitization/postInclude.RelaxLArDigitThinnerCutsToZero.py new file mode 100644 index 0000000000000000000000000000000000000000..c5fe68d34a33335b017bea79a3944498983a8486 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/postInclude.RelaxLArDigitThinnerCutsToZero.py @@ -0,0 +1,19 @@ +######################################################### +# +# SimulationJobOptions/postOptions.RelaxLArDigitThinnerCutsToZero.py +# Guillaume Unal +# +# Switches off LArDigitThinner cuts. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +from AthenaCommon.AlgSequence import AlgSequence +job = AlgSequence() +if hasattr(job,'LArDigitThinner'): + job.LArDigitThinner.EnergyCuts_Barrel = [ 0, 0, 0, 0 ] + job.LArDigitThinner.EnergyCuts_EndCap = [ 0, 0, 0, 0 ] + job.LArDigitThinner.EnergyCuts_HEC = 0 + job.LArDigitThinner.EnergyCuts_FCAL = 0 diff --git a/Simulation/SimulationJobOptions/share/digitization/preInclude.AllNoiseOffDigitConfig.py b/Simulation/SimulationJobOptions/share/digitization/preInclude.AllNoiseOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..5c0c6a833db76414e31bb1cb7ccd077428a11663 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/preInclude.AllNoiseOffDigitConfig.py @@ -0,0 +1,13 @@ +############################################################################## +# +# SimulationJobOptions/preInclude.AllNoiseOffDigitConfig.py +# For use with Sim_trf.py and Digi_trf.py +# This runs digitization without noise in all subdetectors. +# (equivalent to the Digi_try.py command line option doAllNoise=False) +# +############################################################################# + +from Digitization.DigitizationFlags import digitizationFlags +digitizationFlags.doInDetNoise = False +digitizationFlags.doCaloNoise = False +digitizationFlags.doMuonNoise = False diff --git a/Simulation/SimulationJobOptions/share/digitization/preInclude.CaloNoiseOffDigitConfig.py b/Simulation/SimulationJobOptions/share/digitization/preInclude.CaloNoiseOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..ac51b23cab38e70f407fae31b948cfa5bbcf7d4c --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/preInclude.CaloNoiseOffDigitConfig.py @@ -0,0 +1,11 @@ +############################################################################## +# +# SimulationJobOptions/preInclude.CaloNoiseOffDigitConfig.py +# For use with Sim_trf.py and Digi_trf.py +# This runs digitization without noise in the LAr and Tile subdetectors. +# Requested for use with FastCaloSim. +# +############################################################################# + +from Digitization.DigitizationFlags import digitizationFlags +digitizationFlags.doCaloNoise = False diff --git a/Simulation/SimulationJobOptions/share/digitization/preInclude.FastPixelDigi.py b/Simulation/SimulationJobOptions/share/digitization/preInclude.FastPixelDigi.py new file mode 100644 index 0000000000000000000000000000000000000000..ae2d51f073f5814b75725ee6a40023a15a67eaba --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/preInclude.FastPixelDigi.py @@ -0,0 +1,8 @@ +## +## preInclude.FastPixelDigi.py +## + +from Digitization.DigitizationFlags import digitizationFlags +digitizationFlags.experimentalDigi += ['doFastPixelDigi'] + +##EOF diff --git a/Simulation/SimulationJobOptions/share/digitization/preInclude.FastSCT_Digi.py b/Simulation/SimulationJobOptions/share/digitization/preInclude.FastSCT_Digi.py new file mode 100644 index 0000000000000000000000000000000000000000..525284e9f23bdc216f571d9cab3e093bc11925df --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/preInclude.FastSCT_Digi.py @@ -0,0 +1,8 @@ +## +## preInclude.FastSCT_Digi.py +## + +from Digitization.DigitizationFlags import digitizationFlags +digitizationFlags.experimentalDigi += ['doFastSCT_Digi'] + +##EOF diff --git a/Simulation/SimulationJobOptions/share/digitization/preInclude.FastTRT_Digi.py b/Simulation/SimulationJobOptions/share/digitization/preInclude.FastTRT_Digi.py new file mode 100644 index 0000000000000000000000000000000000000000..8a8d5ff75f90a83bffde5e678dba6d2ea9163033 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/preInclude.FastTRT_Digi.py @@ -0,0 +1,8 @@ +## +## preInclude.FastTRT_Digi.py +## + +from Digitization.DigitizationFlags import digitizationFlags +digitizationFlags.experimentalDigi += ['doFastTRT_Digi'] + +##EOF diff --git a/Simulation/SimulationJobOptions/share/digitization/preInclude.SplitDigi.py b/Simulation/SimulationJobOptions/share/digitization/preInclude.SplitDigi.py new file mode 100644 index 0000000000000000000000000000000000000000..6a1e3c71c0a4529c69ffedbc75d163c0a014cce4 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/preInclude.SplitDigi.py @@ -0,0 +1,8 @@ +## +## preInclude.SplitDigi.py +## + +from Digitization.DigitizationFlags import digitizationFlags +digitizationFlags.experimentalDigi += ['doSplitDigi'] + +##EOF diff --git a/Simulation/SimulationJobOptions/share/digitization/preInclude.TestRT_Relation_DB_DigiTool.py b/Simulation/SimulationJobOptions/share/digitization/preInclude.TestRT_Relation_DB_DigiTool.py new file mode 100644 index 0000000000000000000000000000000000000000..7486eaafb67333373943b0cdb010907657cbb15e --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/preInclude.TestRT_Relation_DB_DigiTool.py @@ -0,0 +1,10 @@ +###################################### +# +# Requested by Dinos Bachas +# Purpose: switches on the new +# RT_Relation_DB_DigiTool in the +# MDT Digitization code replacing the +# current MDT_Response_DigiTool. +# +###################################### +MDT_DIGI_DEBUG=1 diff --git a/Simulation/SimulationJobOptions/share/digitization/preInclude.noDigiMetaDataChecks.py b/Simulation/SimulationJobOptions/share/digitization/preInclude.noDigiMetaDataChecks.py new file mode 100644 index 0000000000000000000000000000000000000000..054346b93b0603949b9ce25e8b067f14b0e1e90e --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/preInclude.noDigiMetaDataChecks.py @@ -0,0 +1,5 @@ +# +# This is for experts only - caution advised. +# +from Digitization.DigitizationFlags import digitizationFlags +digitizationFlags.overrideMetadata=['ALL'] diff --git a/Simulation/SimulationJobOptions/share/digitization/preInclude.noLArDigitThinnerConfig.py b/Simulation/SimulationJobOptions/share/digitization/preInclude.noLArDigitThinnerConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..abd0264700669201546c506bfdc02bca54033bac --- /dev/null +++ b/Simulation/SimulationJobOptions/share/digitization/preInclude.noLArDigitThinnerConfig.py @@ -0,0 +1,6 @@ +# +# SimulationJobOptions/preInclude.noLArDigitThinnerConfig.py +# +# +from LArROD.LArDigits import DefaultLArDigitThinner +LArDigitThinner = DefaultLArDigitThinner('LArDigitThinner', addToAlgSeq = False) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.50MeVTruth.py b/Simulation/SimulationJobOptions/share/g4/preInclude.50MeVTruth.py new file mode 100644 index 0000000000000000000000000000000000000000..cd93783b8597902297f3ec3a4fb4a8a8f8bb363a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.50MeVTruth.py @@ -0,0 +1,26 @@ +######################################################### +# +# SimulationJobOptions/postOptions.50MeVTruth.py +# Zach Marshall +# +# 50 MeV truth cuts +# +######################################################### + +def reset_truthstrategies_50(): + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("BremsPrimaryMinEnergy", 50) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("BremsSecondaryMinEnergy", 50) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("ComptonPrimaryMinEnergy", 50) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("ComptonSecondaryMinEnergy", 50) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("ConversionPrimaryMinEnergy", 50) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("ConversionSecondaryMinEnergy", 50) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("DecayPrimaryMinEnergy", 50) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("DecaySecondaryMinEnergy", 50) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("IonizationPrimaryMinEnergy", 50) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("IonizationSecondaryMinEnergy", 50) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("HadronicPrimaryMinEnergy", 50) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("HadronicSecondaryMinEnergy", 50) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitMCTruth", reset_truthstrategies_50) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.AbortedEventsFlaggedNotDropped.py b/Simulation/SimulationJobOptions/share/g4/preInclude.AbortedEventsFlaggedNotDropped.py new file mode 100644 index 0000000000000000000000000000000000000000..8e4b99ce75e04a843b8aa3cf14486fae1eee880c --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.AbortedEventsFlaggedNotDropped.py @@ -0,0 +1,12 @@ +# SimulationJobOptions/preInclude.AbortedEventsFlaggedNotDropped.py +# +#Use-case: Overlay input simulation +# +# Effect: When FlagAbortedEvents is True and KillAbortedEvents is +# False, when an event is aborted the EventInfo is altered to have an +# Error state, rather than dropping the event from the output +# file completely. + +from G4AtlasApps.SimFlags import simFlags +simFlags.FlagAbortedEvents = True +simFlags.KillAbortedEvents = False diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.BeamPipe100.py b/Simulation/SimulationJobOptions/share/g4/preInclude.BeamPipe100.py new file mode 100644 index 0000000000000000000000000000000000000000..d647ca02b350bbf5b1bf4f5c3d5b50cec1998790 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.BeamPipe100.py @@ -0,0 +1,13 @@ +######################################################### +# +# SimulationJobOptions/preInclude.BeamPipe100.py +# Zach Marshall +# +# Range cuts for e+,e-,gamma in beamipe +# +######################################################### + +from G4AtlasApps.SimFlags import simFlags +simFlags.BeamPipeCut = 100. +if hasattr(simFlags, 'BeamPipeSimMode' ): + simFlags.BeamPipeSimMode = "EGammaRangeCuts" diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.BeamPipeKill.py b/Simulation/SimulationJobOptions/share/g4/preInclude.BeamPipeKill.py new file mode 100644 index 0000000000000000000000000000000000000000..479b51946b35bdead7bf8798344ff1e3e18e8d86 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.BeamPipeKill.py @@ -0,0 +1,13 @@ +######################################################### +# +# SimulationJobOptions/preInclude.BeamPipeKill.py +# Zach Marshall +# +# "Fast simulation" killing particles in forward beampipe +# +######################################################### + +from G4AtlasApps.SimFlags import simFlags +simFlags.BeamPipeCut = 0. +if hasattr(simFlags, 'BeamPipeSimMode' ): + simFlags.BeamPipeSimMode = "FastSim" diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.BeamPipeP100.py b/Simulation/SimulationJobOptions/share/g4/preInclude.BeamPipeP100.py new file mode 100644 index 0000000000000000000000000000000000000000..750017045e3ac13071a62a9f3849407007f506b2 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.BeamPipeP100.py @@ -0,0 +1,15 @@ +######################################################### +# +# SimulationJobOptions/preInclude.BeamPipeBP100.py +# Zach Marshall +# +# Adding 100 mm range cuts for e+,e-,gamma,p in beampipe +# +######################################################### + +from G4AtlasApps.SimFlags import simFlags +simFlags.BeamPipeCut = -100. +if hasattr(simFlags, 'BeamPipeSimMode' ): + simFlags.BeamPipeSimMode = "EGammaPRangeCuts" + simFlags.BeamPipeCut = 100. + diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.CalHits.py b/Simulation/SimulationJobOptions/share/g4/preInclude.CalHits.py new file mode 100644 index 0000000000000000000000000000000000000000..27941cd69c9c4a801be5bc6af5f4804237c19e86 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.CalHits.py @@ -0,0 +1,8 @@ +################################################ +## Setup jobOptions CalHits.py +## +## Turns on calibration hits for LAr and Tile +################################################ + +from G4AtlasApps.SimFlags import simFlags +simFlags.CalibrationRun = 'LAr+Tile' diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.CaloDecays.py b/Simulation/SimulationJobOptions/share/g4/preInclude.CaloDecays.py new file mode 100644 index 0000000000000000000000000000000000000000..9d3fb685fe8e39ad4322c66119fea0bded41e30b --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.CaloDecays.py @@ -0,0 +1,16 @@ +############################################################################### +# +# Fragment to add calorimeter decays to the truth tree +# +# Implemented for the B-physics folks who want to estimate fakes well +# +############################################################################### + +def add_calo_decay_truth_strategies(): + ## Modifying truth strategies as requested by e/gamma group + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.listStrategies() + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Decay', 'CALO::CALO', 1) + +## Register the callback +simFlags.InitFunctions.add_function("postInit", add_calo_decay_truth_strategies) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.CaloDecaysAndHadInt.py b/Simulation/SimulationJobOptions/share/g4/preInclude.CaloDecaysAndHadInt.py new file mode 100644 index 0000000000000000000000000000000000000000..1dffdc28e79344bb58301a72d914f5bad9b7a399 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.CaloDecaysAndHadInt.py @@ -0,0 +1,18 @@ +############################################################################### +# +# Fragment to add calorimeter decays and hadronic interactions to the truth tree +# +# Implemented for the B-physics folks who want to estimate fakes well +# Results in a pretty major blow-up of hit file size - use with care! +# +############################################################################### + +def add_calo_decay_truth_strategies(): + ## Modifying truth strategies as requested by e/gamma group + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.listStrategies() + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Decay', 'CALO::CALO', 1) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('HadronicInteraction', 'CALO::CALO',1) + +## Register the callback +simFlags.InitFunctions.add_function("postInit", add_calo_decay_truth_strategies) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.EMEC_RangeCut200.py b/Simulation/SimulationJobOptions/share/g4/preInclude.EMEC_RangeCut200.py new file mode 100644 index 0000000000000000000000000000000000000000..ade91f754c00be0b90b8cae9b89bb5971b653c11 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.EMEC_RangeCut200.py @@ -0,0 +1,25 @@ +######################################################### +# +# Sets EMEC range cut to 0.2 mm (default 0.1 mm) +# +######################################################### + +def set_emec_rangecuts(): + from G4AtlasApps import AtlasG4Eng + print 'Changing EMEC range cuts' + if not 'LArMgr:LArMgr' in AtlasG4Eng.G4Eng.Dict_DetFacility: + print 'set_emec_rangecuts ERROR : LArMgr:LArMgr Det Facility not found!!' + return + theFac = AtlasG4Eng.G4Eng.Dict_DetFacility['LArMgr:LArMgr'] + if not 'EMEC' in theFac.Dict_Regions: + print 'set_emec_rangecuts ERROR : EMEC Region not found!!' + return + emec = theFac.Dict_Regions['EMEC'] + + emec.Dict_Cuts['e-'] = 0.2 + emec.Dict_Cuts['e+'] = 0.2 + emec.Dict_Cuts['gamma'] = 0.2 + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitPhysicsRegions", set_emec_rangecuts) + diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.FCAL_RangeCut060.py b/Simulation/SimulationJobOptions/share/g4/preInclude.FCAL_RangeCut060.py new file mode 100644 index 0000000000000000000000000000000000000000..508ccab47a100f7273c49d318f3c28cb080c2966 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.FCAL_RangeCut060.py @@ -0,0 +1,25 @@ +######################################################### +# +# Sets FCAL range cut to 0.06 mm (default 0.03 mm) +# +######################################################### + +def set_fcal_rangecuts(): + from G4AtlasApps import AtlasG4Eng + print 'Changing FCAL range cuts' + if not 'LArMgr:LArMgr' in AtlasG4Eng.G4Eng.Dict_DetFacility: + print 'set_fcal_rangecuts ERROR : LArMgr:LArMgr Det Facility not found!!' + return + theFac = AtlasG4Eng.G4Eng.Dict_DetFacility['LArMgr:LArMgr'] + if not 'FCAL' in theFac.Dict_Regions: + print 'set_fcal_rangecuts ERROR : FCAL Region not found!!' + return + fcal = theFac.Dict_Regions['FCAL'] + + fcal.Dict_Cuts['e-'] = 0.06 + fcal.Dict_Cuts['e+'] = 0.06 + fcal.Dict_Cuts['gamma'] = 0.06 + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitPhysicsRegions", set_fcal_rangecuts) + diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.FCAL_RangeCut100.py b/Simulation/SimulationJobOptions/share/g4/preInclude.FCAL_RangeCut100.py new file mode 100644 index 0000000000000000000000000000000000000000..035b1ca9e1f9980ad94262747d51925cd2dbb529 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.FCAL_RangeCut100.py @@ -0,0 +1,25 @@ +######################################################### +# +# Sets FCAL range cut to 0.1 mm (default 0.03 mm) +# +######################################################### + +def set_fcal_rangecuts(): + from G4AtlasApps import AtlasG4Eng + print 'Changing FCAL range cuts' + if not 'LArMgr:LArMgr' in AtlasG4Eng.G4Eng.Dict_DetFacility: + print 'set_fcal_rangecuts ERROR : LArMgr:LArMgr Det Facility not found!!' + return + theFac = AtlasG4Eng.G4Eng.Dict_DetFacility['LArMgr:LArMgr'] + if not 'FCAL' in theFac.Dict_Regions: + print 'set_fcal_rangecuts ERROR : FCAL Region not found!!' + return + fcal = theFac.Dict_Regions['FCAL'] + + fcal.Dict_Cuts['e-'] = 0.1 + fcal.Dict_Cuts['e+'] = 0.1 + fcal.Dict_Cuts['gamma'] = 0.1 + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitPhysicsRegions", set_fcal_rangecuts) + diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.FCAL_RangeCut200.py b/Simulation/SimulationJobOptions/share/g4/preInclude.FCAL_RangeCut200.py new file mode 100644 index 0000000000000000000000000000000000000000..ac1e3630ee2908d593f24ba576f9fa69c6cda649 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.FCAL_RangeCut200.py @@ -0,0 +1,25 @@ +######################################################### +# +# Sets FCAL range cut to 0.2 mm (default 0.03 mm) +# +######################################################### + +def set_fcal_rangecuts(): + from G4AtlasApps import AtlasG4Eng + print 'Changing FCAL range cuts' + if not 'LArMgr:LArMgr' in AtlasG4Eng.G4Eng.Dict_DetFacility: + print 'set_fcal_rangecuts ERROR : LArMgr:LArMgr Det Facility not found!!' + return + theFac = AtlasG4Eng.G4Eng.Dict_DetFacility['LArMgr:LArMgr'] + if not 'FCAL' in theFac.Dict_Regions: + print 'set_fcal_rangecuts ERROR : FCAL Region not found!!' + return + fcal = theFac.Dict_Regions['FCAL'] + + fcal.Dict_Cuts['e-'] = 0.2 + fcal.Dict_Cuts['e+'] = 0.2 + fcal.Dict_Cuts['gamma'] = 0.2 + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitPhysicsRegions", set_fcal_rangecuts) + diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.FrozenShowers.py b/Simulation/SimulationJobOptions/share/g4/preInclude.FrozenShowers.py new file mode 100644 index 0000000000000000000000000000000000000000..cb1bd2cd958368dcf6a8481c5cefab2222bfac37 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.FrozenShowers.py @@ -0,0 +1,9 @@ +###################################################### +## +## Turn on GFlash shower parametrization in the LAr +## +###################################################### + +from G4AtlasApps.SimFlags import simFlags +simFlags.LArParameterization = 1 +simFlags.CalibrationRun.set_Off() diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.FrozenShowersFCalOnly.py b/Simulation/SimulationJobOptions/share/g4/preInclude.FrozenShowersFCalOnly.py new file mode 100644 index 0000000000000000000000000000000000000000..1f8ff32e0c110a9ca3c8fe5ff2d0a1b0ac2fa1a9 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.FrozenShowersFCalOnly.py @@ -0,0 +1,8 @@ +#============================================================== +# SimulationJobOptions/preInclude.FrozenShowersFCalOnly.py +# - Turns on GFlash shower parametrization for FCAL +#============================================================== + +from G4AtlasApps.SimFlags import simFlags +simFlags.LArParameterization=3 +simFlags.CalibrationRun.set_Off() diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.FrozenShowersValidation.py b/Simulation/SimulationJobOptions/share/g4/preInclude.FrozenShowersValidation.py new file mode 100644 index 0000000000000000000000000000000000000000..37f4eaae4280baffc8b71ab30670bb1ae292a428 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.FrozenShowersValidation.py @@ -0,0 +1,8 @@ +#============================================================== +# Setup jobOptions ShowerParam.py +# - Turns on GFlash shower parametrization +#============================================================== + +from G4AtlasApps.SimFlags import simFlags +simFlags.LArParameterization = 2 +simFlags.CalibrationRun.set_Off() diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.HaloSim.py b/Simulation/SimulationJobOptions/share/g4/preInclude.HaloSim.py new file mode 100644 index 0000000000000000000000000000000000000000..b34af537cbb7f1907a6eb1498fc1ebdb311c8af4 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.HaloSim.py @@ -0,0 +1,27 @@ +################################################ +## +## SimulationJobOptions/preInclude.HaloSim.py +## +## Original Author: Borut Kersevan +## Adapted for MC11 and MC12: John Chapman +## Fragment to increase world volume dimensions. +## Needed by beam halo simulation. +################################################ + +from G4AtlasApps.SimFlags import simFlags +simFlags.WorldZRange.set_Value(26050) +simFlags.WorldRRange.set_Value(16000) +## No vertex position smearing or filtering on pseudorapidity. Only +## check if G4PrimaryVertex objects are within the ATLAS volume. +simFlags.EventFilter.switchAllFiltersOff() +simFlags.EventFilter.switchFilterOn('VertexRangeChecker') +simFlags.VertexFromCondDB.set_Off() +simFlags.VertexTimeOffset.set_Off() + +# Hit filter setup function for callback +def hitFilterSetup(): + atlasG4log.info("Setting up filter parameters") + include("G4HitFilter/G4HitFilter.py") + +# Register the callback +simFlags.InitFunctions.add_function("preInitG4", hitFilterSetup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.MC12_FrozenShowersFCalOnly.py b/Simulation/SimulationJobOptions/share/g4/preInclude.MC12_FrozenShowersFCalOnly.py new file mode 100644 index 0000000000000000000000000000000000000000..12b698945d11f5eb11b13f8935e82b29da0b9de4 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.MC12_FrozenShowersFCalOnly.py @@ -0,0 +1,5 @@ +include("SimulationJobOptions/preInclude.FrozenShowersFCalOnly.py") +include("SimulationJobOptions/preInclude.BeamPipeKill.py") +from G4AtlasApps.SimFlags import simFlags +if hasattr(simFlags, 'SimulationFlavour'): + simFlags.SimulationFlavour = "FullSimulation+FCalFrozenShowers" diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.NeutronCut400.py b/Simulation/SimulationJobOptions/share/g4/preInclude.NeutronCut400.py new file mode 100644 index 0000000000000000000000000000000000000000..03a477f2712c8b8bbda0cc1246c6614ea6c873f5 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.NeutronCut400.py @@ -0,0 +1,8 @@ +###################################################### +## +## Relax neutron time cut to 400 ns +## +###################################################### + +from G4AtlasApps.SimFlags import simFlags +simFlags.NeutronTimeCut=400. diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.ParticleID.py b/Simulation/SimulationJobOptions/share/g4/preInclude.ParticleID.py new file mode 100644 index 0000000000000000000000000000000000000000..75837e9048f5074096f438e54a5662efab60d311 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.ParticleID.py @@ -0,0 +1,23 @@ +######################################################### +# +# SimulationJobOptions/postOptions.ParticleID.py +# guennadi.pospelov@cern.ch +# +# Mods to have primary particle barcode signature on +# calorimeter calibration hits. +######################################################### + +def particleid_setupcalos(): + from G4AtlasApps import AtlasG4Eng + #atlasG4log.info("ParticleID Setting new LArG4GlobalOptions") + 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 +simFlags.InitFunctions.add_function("preInitDetFacility", particleid_setupcalos) + diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PhotonNuclOff.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PhotonNuclOff.py new file mode 100644 index 0000000000000000000000000000000000000000..fa39682b09308bd2a5bef9258d2d372a546b703c --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PhotonNuclOff.py @@ -0,0 +1,13 @@ +######################################################### +# +# Turn off photon nuclear interactions in Geant4 +# +######################################################### + +atlasG4log.info("Turning off photon inelastic interactions") +def disable_photonuclear(): + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng.gbl.G4Commands().process.inactivate('PhotonInelastic', 'gamma') + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("postInit", disable_photonuclear) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer.py new file mode 100644 index 0000000000000000000000000000000000000000..869d0a8619645d42058acd13e2878a2c85bf38ee --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer.py @@ -0,0 +1,39 @@ +######################################################### +# +# SimulationJobOptions/postOptions.PionDecayer.py +# Trygve Buanes +# +######################################################### + +def piondecayer_setup(): + from G4AtlasApps import AtlasG4Eng + from G4AtlasApps.SimFlags import simFlags + + AtlasG4Eng.G4Eng.load_Dict("PionDecayerDict") + pionDecayer = AtlasG4Eng.G4Eng.gbl.PionDecayer("PionDecayer") + pionDecayer.switchOn() + + if simFlags.PionIndex == '017981': + pionDecayer.UseCustomDecayMode() + pionDecayer.SetMother(531) + pionDecayer.AddDecayProduct(-321) + pionDecayer.AddDecayProduct(211) + elif simFlags.PionIndex == '019250': + pionDecayer.UseCustomDecayMode() + pionDecayer.SetMother(531) + pionDecayer.AddDecayProduct(-321) + pionDecayer.AddDecayProduct(-13) + pionDecayer.AddDecayProduct(14) + elif simFlags.PionIndex == '019251': + pionDecayer.UseCustomDecayMode() + pionDecayer.SetMother(531) + pionDecayer.AddDecayProduct(-321) + pionDecayer.AddDecayProduct(-13) + pionDecayer.AddDecayProduct(14) + elif simFlags.PionIndex == 'MinBias': + pionDecayer.SetPtmuon(2*GeV) + elif simFlags.PionIndex == 'MinBias35': + pionDecayer.SetPtmuon(3.5*GeV) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitPhysics", piondecayer_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer017981.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer017981.py new file mode 100644 index 0000000000000000000000000000000000000000..2f36b431c3c29fb439bd1de91c07c9bb14023ca2 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer017981.py @@ -0,0 +1,2 @@ +from G4AtlasApps.SimFlags import simFlags +simFlags.PionIndex = "017981" diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer019250.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer019250.py new file mode 100644 index 0000000000000000000000000000000000000000..237a0c04a577a1ce8146df82caca8fa6497f4c5a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer019250.py @@ -0,0 +1,2 @@ +from G4AtlasApps.SimFlags import simFlags +simFlags.PionIndex = "019250" diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer019251.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer019251.py new file mode 100644 index 0000000000000000000000000000000000000000..5c4014b78439fd69ba95df3178fea5bd431042d5 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayer019251.py @@ -0,0 +1,2 @@ +from G4AtlasApps.SimFlags import simFlags +simFlags.PionIndex = "019251" diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayerMinBias.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayerMinBias.py new file mode 100644 index 0000000000000000000000000000000000000000..ae14b7a9cdfe0d92f7f836ee8a4bbdc6dd6194a7 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayerMinBias.py @@ -0,0 +1,2 @@ +from G4AtlasApps.SimFlags import simFlags +simFlags.PionIndex = "MinBias" diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayerMinBias35.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayerMinBias35.py new file mode 100644 index 0000000000000000000000000000000000000000..151697378e473f6a3e87e9ac16b1f00e9b523dca --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PionDecayerMinBias35.py @@ -0,0 +1,2 @@ +from G4AtlasApps.SimFlags import simFlags +simFlags.PionIndex = "MinBias35" diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts10.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts10.py new file mode 100644 index 0000000000000000000000000000000000000000..5e2d4a7dbb743da9c5e6dff03e45b697a02f7cc1 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts10.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postInitOptions.PixelCuts10.py +# Zach Marshall +# +# For a special production to evaluate the effect of low +# energy secondaries on Pixel Clustering. +# +######################################################### + +atlasG4log.info("G4 PIX Config: Setting PIX cut") + +def pixcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and silicon region + pix = AtlasG4Eng.G4Eng.Dict_DetFacility['PIX:PIX'] + pixr = pix.Dict_Regions['PIX'] + ## Stuff everything into the 'sensitive region' + pixr.add_Volumes('PIX::PIX') + ## Set cut for the new region + pixr.Dict_Cuts = {'e-' : 0.010, 'gamma' : 0.010, 'e+' : 0.010} + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", pixcuts_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts100.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts100.py new file mode 100644 index 0000000000000000000000000000000000000000..cfdf491abb6618ba6a3f0db723670c90e776147c --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts100.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postInitOptions.PixelCuts100.py +# Zach Marshall +# +# For a special production to evaluate the effect of low +# energy secondaries on Pixel Clustering. +# +######################################################### + +atlasG4log.info("G4 PIX Config: Setting PIX cut") + +def pixcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and silicon region + pix = AtlasG4Eng.G4Eng.Dict_DetFacility['PIX:PIX'] + pixr = pix.Dict_Regions['PIX'] + ## Stuff everything into the 'sensitive region' + pixr.add_Volumes('PIX::PIX') + ## Set cut for the new region + pixr.Dict_Cuts = {'e-' : 0.100, 'gamma' : 0.100, 'e+' : 0.100} + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", pixcuts_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts20.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts20.py new file mode 100644 index 0000000000000000000000000000000000000000..dd9aaa1932a5069280d146c451a0ee2802ab7b29 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts20.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postInitOptions.PixelCuts20.py +# Zach Marshall +# +# For a special production to evaluate the effect of low +# energy secondaries on Pixel Clustering. +# +######################################################### + +atlasG4log.info("G4 PIX Config: Setting PIX cut") + +def pixcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and silicon region + pix = AtlasG4Eng.G4Eng.Dict_DetFacility['PIX:PIX'] + pixr = pix.Dict_Regions['PIX'] + ## Stuff everything into the 'sensitive region' + pixr.add_Volumes('PIX::PIX') + ## Set cut for the new region + pixr.Dict_Cuts = {'e-' : 0.020, 'gamma' : 0.020, 'e+' : 0.020} + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", pixcuts_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts5.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts5.py new file mode 100644 index 0000000000000000000000000000000000000000..5f6e99e7a9c0e8eb28363122971965478d38a36b --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts5.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postInitOptions.PixelCuts5.py +# Zach Marshall +# +# For a special production to evaluate the effect of low +# energy secondaries on Pixel Clustering. +# +######################################################### + +atlasG4log.info("G4 PIX Config: Setting PIX cut") + +def pixcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and silicon region + pix = AtlasG4Eng.G4Eng.Dict_DetFacility['PIX:PIX'] + pixr = pix.Dict_Regions['PIX'] + ## Stuff everything into the 'sensitive region' + pixr.add_Volumes('PIX::PIX') + ## Set cut for the new region + pixr.Dict_Cuts = {'e-' : 0.005, 'gamma' : 0.005, 'e+' : 0.005} + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", pixcuts_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts50.py b/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts50.py new file mode 100644 index 0000000000000000000000000000000000000000..86a34926e40838734b91a4a3e5861a19328cda34 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.PixelCuts50.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postInitOptions.PixelCuts50.py +# Zach Marshall +# +# For a special production to evaluate the effect of low +# energy secondaries on Pixel Clustering. +# +######################################################### + +atlasG4log.info("G4 PIX Config: Setting PIX cut") + +def pixcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and silicon region + pix = AtlasG4Eng.G4Eng.Dict_DetFacility['PIX:PIX'] + pixr = pix.Dict_Regions['PIX'] + ## Stuff everything into the 'sensitive region' + pixr.add_Volumes('PIX::PIX') + ## Set cut for the new region + pixr.Dict_Cuts = {'e-' : 0.050, 'gamma' : 0.050, 'e+' : 0.050} + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", pixcuts_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts10.py b/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts10.py new file mode 100644 index 0000000000000000000000000000000000000000..785e9b6f33f5861af9a52d2fc94a245f5e4a6c06 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts10.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postInitOptions.SCTCuts10.py +# Pat Ward - adapted from postInitOptions.PixelCuts10.py by Zach Marshall +# +# For a special production to evaluate the effect of low +# energy secondaries on SCT Clustering. +# +######################################################### + +atlasG4log.info("G4 SCT Config: Setting SCT cut") + +def sctcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and silicon region + sct = AtlasG4Eng.G4Eng.Dict_DetFacility['SCT:SCT'] + sctr = sct.Dict_Regions['SCT'] + ## Stuff everything into the 'sensitive region' + sctr.add_Volumes('SCT::SCT') + ## Set cut for the new region + sctr.Dict_Cuts = {'e-' : 0.010, 'gamma' : 0.010, 'e+' : 0.010} + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", sctcuts_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts100.py b/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts100.py new file mode 100644 index 0000000000000000000000000000000000000000..7b5ed6342df1648d1915d2a373728f7f6f597802 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts100.py @@ -0,0 +1,27 @@ +######################################################### +# +# SimulationJobOptions/postInitOptions.SCTCuts100.py +# Pat Ward - adapted from postInitOptions.PixelCuts100.py by Zach Marshall +# +# For a special production to evaluate the effect of low +# energy secondaries on SCT Clustering. +# +# This job option should be added via the postInitInclude +# command line argument. +# +######################################################### + +atlasG4log.info("G4 SCT Config: Setting SCT cut") + +def sctcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and silicon region + sct = AtlasG4Eng.G4Eng.Dict_DetFacility['SCT:SCT'] + sctr = sct.Dict_Regions['SCT'] + ## Stuff everything into the 'sensitive region' + sctr.add_Volumes('SCT::SCT') + ## Set cut for the new region + sctr.Dict_Cuts = {'e-' : 0.100, 'gamma' : 0.100, 'e+' : 0.100} + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", sctcuts_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts20.py b/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts20.py new file mode 100644 index 0000000000000000000000000000000000000000..b1e30072d8e229b7e7bbfb2e1fd39f801f1ad239 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts20.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postInitOptions.SCTCuts20.py +# Pat Ward - adapted from postInitOptions.PixelCuts20.py by Zach Marshall +# +# For a special production to evaluate the effect of low +# energy secondaries on SCT Clustering. +# +######################################################### + +atlasG4log.info("G4 SCT Config: Setting SCT cut") + +def sctcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and silicon region + sct = AtlasG4Eng.G4Eng.Dict_DetFacility['SCT:SCT'] + sctr = sct.Dict_Regions['SCT'] + ## Stuff everything into the 'sensitive region' + sctr.add_Volumes('SCT::SCT') + ## Set cut for the new region + sctr.Dict_Cuts = {'e-' : 0.020, 'gamma' : 0.020, 'e+' : 0.020} + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", sctcuts_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts5.py b/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts5.py new file mode 100644 index 0000000000000000000000000000000000000000..068f1a023371cc2939ef8ad13e5cfabe13723ef5 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts5.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postInitOptions.SCTCuts5.py +# Pat Ward - adapted from postInitOptions.PixelCuts5.py by Zach Marshall +# +# For a special production to evaluate the effect of low +# energy secondaries on SCT Clustering. +# +######################################################### + +from G4AtlasApps import PyG4Atlas, AtlasG4Eng +atlasG4log.info("G4 SCT Config: Setting SCT cut") + +def sctcuts_setup(): + ## Get both the main region and silicon region + sct = AtlasG4Eng.G4Eng.Dict_DetFacility['SCT:SCT'] + sctr = sct.Dict_Regions['SCT'] + ## Stuff everything into the 'sensitive region' + sctr.add_Volumes('SCT::SCT') + ## Set cut for the new region + sctr.Dict_Cuts = {'e-' : 0.005, 'gamma' : 0.005, 'e+' : 0.005} + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", sctcuts_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts50.py b/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts50.py new file mode 100644 index 0000000000000000000000000000000000000000..833d96bc855fd8264b8ce0ae80e7045c002d66be --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.SCTCuts50.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postInitOptions.SCTCuts50.py +# Pat Ward - adapted from postInitOptions.PixelCuts50.py by Zach Marshall +# +# For a special production to evaluate the effect of low +# energy secondaries on SCT Clustering. +# +######################################################### + +from G4AtlasApps import PyG4Atlas, AtlasG4Eng +atlasG4log.info("G4 SCT Config: Setting SCT cut") + +def sctcuts_setup(): + ## Get both the main region and silicon region + sct = AtlasG4Eng.G4Eng.Dict_DetFacility['SCT:SCT'] + sctr = sct.Dict_Regions['SCT'] + ## Stuff everything into the 'sensitive region' + sctr.add_Volumes('SCT::SCT') + ## Set cut for the new region + sctr.Dict_Cuts = {'e-' : 0.050, 'gamma' : 0.050, 'e+' : 0.050} + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", sctcuts_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.ScoringVolumeKiller.py b/Simulation/SimulationJobOptions/share/g4/preInclude.ScoringVolumeKiller.py new file mode 100644 index 0000000000000000000000000000000000000000..5bb35f79d46cceeace0cd798aa009a021a680ae2 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.ScoringVolumeKiller.py @@ -0,0 +1,31 @@ +############################################################# +# +# postOptions.ScoringVolume.py : calls ScoringVolumeKiller +# while running a G4 simulation of the ATLAS detector. +# The ScoringVolumeKiller will kill all particles leaving +# the scoring volumes surrounding the muon stations. +# +# Dennis Wright (SLAC) +# 25 May 2010 +############################################################# + + +def scoringvolumekiller_setup(): + from G4AtlasApps import AtlasG4Eng, PyG4Atlas + myMuon = AtlasG4Eng.G4Eng.Dict_DetFacility.get("Muon:Muon") + myMuon_Region = PyG4Atlas.PhysicsReg('MuonSys') + myMuon_Region.add_Volumes('Muon::MuonSys') + myMuon_Region.add_Cuts('gamma', 0.1) + myMuon_Region.add_Cuts('e-', 0.1) + myMuon_Region.add_Cuts('e+', 0.1) + myMuon.add_PhysicsReg(myMuon_Region) + + ## Enable the user actions + myAction = PyG4Atlas.UserAction('G4UserActions', 'ScoringVolumeTrackKiller', ['BeginOfEvent', 'EndOfEvent', 'Step']) + #myAction = PyG4Atlas.UserAction('CBG_G4Base', 'ScoringVolumeTrackKiller', ['BeginOfEvent', 'EndOfEvent', 'Step']) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myAction) + +from G4AtlasApps.SimFlags import simFlags +simFlags.NeutronTimeCut = int(2**31 - 1) #probably not required. +simFlags.NeutronTimeCut.set_Off() +simFlags.InitFunctions.add_function("postInit", scoringvolumekiller_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.SingleElectronGenerator.py b/Simulation/SimulationJobOptions/share/g4/preInclude.SingleElectronGenerator.py new file mode 100644 index 0000000000000000000000000000000000000000..c6102399f1a8b321a7ee1b767e156b469599f65d --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.SingleElectronGenerator.py @@ -0,0 +1,20 @@ +print 'SINGLE PARTICLE GENERATOR' + +## Run ParticleGun +import AthenaCommon.AtlasUnixGeneratorJob + +from AthenaCommon.AlgSequence import AlgSequence +topSeq = AlgSequence() + +import ParticleGun as PG +from G4AtlasApps.SimFlags import simFlags +pg = PG.ParticleGun(randomSvcName=simFlags.RandomSvc.get_Value(), randomStream="SINGLE") +pg.sampler.pid = PG.CyclicSeqSampler([-11,11]) +pg.sampler.mom = PG.PtEtaMPhiSampler(pt=10000, eta=[-3,3]) +topSeq += pg + +try: + from GeneratorModules.GeneratorModulesConf import CopyEventWeight + topSeq += CopyEventWeight(TruthCollKey="GEN_EVENT") +except: + include("G4AtlasApps/fragment.SimCopyWeights.py") diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.SingleMuonGenerator.py b/Simulation/SimulationJobOptions/share/g4/preInclude.SingleMuonGenerator.py new file mode 100644 index 0000000000000000000000000000000000000000..3a3774d39a03c5dc11e819ad1bfa8d9ac5c96e0f --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.SingleMuonGenerator.py @@ -0,0 +1,20 @@ +print 'SINGLE PARTICLE GENERATOR' + +## Run ParticleGun +import AthenaCommon.AtlasUnixGeneratorJob + +from AthenaCommon.AlgSequence import AlgSequence +topSeq = AlgSequence() + +import ParticleGun as PG +from G4AtlasApps.SimFlags import simFlags +pg = PG.ParticleGun(randomSvcName=simFlags.RandomSvc.get_Value(), randomStream="SINGLE") +pg.sampler.pid = PG.CyclicSeqSampler([-13,13]) +pg.sampler.mom = PG.PtEtaMPhiSampler(pt=50000, eta=[-4,4]) +topSeq += pg + +try: + from GeneratorModules.GeneratorModulesConf import CopyEventWeight + topSeq += CopyEventWeight(TruthCollKey="GEN_EVENT") +except: + include("G4AtlasApps/fragment.SimCopyWeights.py") diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.SingleParticleGenerator.py b/Simulation/SimulationJobOptions/share/g4/preInclude.SingleParticleGenerator.py new file mode 100644 index 0000000000000000000000000000000000000000..39da215436a4f8cef790d600a72c186fb0521a28 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.SingleParticleGenerator.py @@ -0,0 +1,20 @@ +print 'SINGLE PARTICLE GENERATOR' + +## Run ParticleGun +import AthenaCommon.AtlasUnixGeneratorJob + +from AthenaCommon.AlgSequence import AlgSequence +topSeq = AlgSequence() + +import ParticleGun as PG +from G4AtlasApps.SimFlags import simFlags +pg = PG.ParticleGun(randomSvcName=simFlags.RandomSvc.get_Value(), randomStream="SINGLE") +pg.sampler.pid = 13 +pg.sampler.mom = PG.EEtaMPhiSampler(energy=10000, eta=[-1,1]) +topSeq += pg + +try: + from GeneratorModules.GeneratorModulesConf import CopyEventWeight + topSeq += CopyEventWeight(TruthCollKey="GEN_EVENT") +except: + include("G4AtlasApps/fragment.SimCopyWeights.py") diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.SinglePionGenerator.py b/Simulation/SimulationJobOptions/share/g4/preInclude.SinglePionGenerator.py new file mode 100644 index 0000000000000000000000000000000000000000..5ed143fc677f2dea0675fd906366c3b4fb042751 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.SinglePionGenerator.py @@ -0,0 +1,20 @@ +print 'SINGLE PARTICLE GENERATOR' + +## Run ParticleGun +import AthenaCommon.AtlasUnixGeneratorJob + +from AthenaCommon.AlgSequence import AlgSequence +topSeq = AlgSequence() + +import ParticleGun as PG +from G4AtlasApps.SimFlags import simFlags +pg = PG.ParticleGun(randomSvcName=simFlags.RandomSvc.get_Value(), randomStream="SINGLE") +pg.sampler.pid = PG.CyclicSeqSampler([-211,211]) +pg.sampler.mom = PG.PtEtaMPhiSampler(pt=50000, eta=[-4,4]) +topSeq += pg + +try: + from GeneratorModules.GeneratorModulesConf import CopyEventWeight + topSeq += CopyEventWeight(TruthCollKey="GEN_EVENT") +except: + include("G4AtlasApps/fragment.SimCopyWeights.py") diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.StepperClassicalRK4.py b/Simulation/SimulationJobOptions/share/g4/preInclude.StepperClassicalRK4.py new file mode 100644 index 0000000000000000000000000000000000000000..925a1f350d13536635151dcd1bc93685064669e1 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.StepperClassicalRK4.py @@ -0,0 +1,15 @@ +######################################################### +## +## Change the G4 magnetic field stepper to G4ClassicalRK4 +## This stepper is ~15% slower than the G4AtlasRK4 and +## G4NystromRK4 steppers, but is usable with a generic +## equation of motion, including that for monopoles. +## +######################################################### + +def setup_stepper_classicalrk4(): + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng._ctrl.fldMenu.UseStepper('ClassicalRK4') + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("postInit", setup_stepper_classicalrk4) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.StepperNystromRK4.py b/Simulation/SimulationJobOptions/share/g4/preInclude.StepperNystromRK4.py new file mode 100644 index 0000000000000000000000000000000000000000..b81b40eae99f4743308d36445abae9719fe4e6ff --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.StepperNystromRK4.py @@ -0,0 +1,15 @@ +######################################################### +## +## Change the G4 magnetic field stepper to G4NystromRK4 +## This stepper is a G4-rewrite of G4AtlasRK4 and is +## NOT usable with a generic equation of motion, +## including that for monopoles. +## +######################################################### + +def setup_stepper_nystromrk4(): + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng._ctrl.fldMenu.UseStepper('NystromRK4') + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("postInit", setup_stepper_nystromrk4) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts10.py b/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts10.py new file mode 100644 index 0000000000000000000000000000000000000000..08fa6fe43ecc072e3b14d326e99bf2a544b396ae --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts10.py @@ -0,0 +1,22 @@ +######################################################### +# +# SimulationJobOptions/preInclude.TRTCuts1.0.py +# +# For a special production to evaluate the effect of low +# energy deltas on TRT threshold tuning. +# +######################################################### + +atlasG4log.info("G4 TRT Config: Setting TRT cut") + +def trtcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and gas region + trt = AtlasG4Eng.G4Eng.Dict_DetFacility['TRT:TRT'] + trtr = trt.Dict_Regions['TRT'] + ## Set cut for the old region + trtr.Dict_Cuts['e-'] = 10. + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitDetFacility", trtcuts_setup) + diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts100.py b/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts100.py new file mode 100644 index 0000000000000000000000000000000000000000..f37e71ff99fe0d171573236d667676c9b16ea346 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts100.py @@ -0,0 +1,22 @@ +######################################################### +# +# SimulationJobOptions/preInclude.TRTCuts10.py +# +# For a special production to evaluate the effect of low +# energy deltas on TRT threshold tuning. +# +######################################################### + +atlasG4log.info("G4 TRT Config: Setting TRT cut") + +def trtcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and gas region + trt = AtlasG4Eng.G4Eng.Dict_DetFacility['TRT:TRT'] + trtr = trt.Dict_Regions['TRT'] + ## Set cut for the old region + trtr.Dict_Cuts['e-'] = 100. + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitDetFacility", trtcuts_setup) + diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts5.py b/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts5.py new file mode 100644 index 0000000000000000000000000000000000000000..0ff6f1b11cde1eb6e214b81e1cf2e0501c32d092 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts5.py @@ -0,0 +1,21 @@ +######################################################### +# +# SimulationJobOptions/preInclude.TRTCuts0.5.py +# +# For a special production to evaluate the effect of low +# energy deltas on TRT threshold tuning. +# +######################################################### + +atlasG4log.info("G4 TRT Config: Setting TRT cut") + +def trtcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and gas region + trt = AtlasG4Eng.G4Eng.Dict_DetFacility['TRT:TRT'] + trtr = trt.Dict_Regions['TRT'] + ## Set cut for the old region + trtr.Dict_Cuts['e-'] = 5. + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitDetFacility", trtcuts_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts50.py b/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts50.py new file mode 100644 index 0000000000000000000000000000000000000000..e3395c7fbf74d9f4394266fee1b43150c34f7dac --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts50.py @@ -0,0 +1,22 @@ +######################################################### +# +# SimulationJobOptions/preInclude.TRTCuts5.0.py +# +# For a special production to evaluate the effect of low +# energy deltas on TRT threshold tuning. +# +######################################################### + +atlasG4log.info("G4 TRT Config: Setting TRT cut") + +def trtcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and gas region + trt = AtlasG4Eng.G4Eng.Dict_DetFacility['TRT:TRT'] + trtr = trt.Dict_Regions['TRT'] + ## Set cut for the old region + trtr.Dict_Cuts['e-'] = 50. + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitDetFacility", trtcuts_setup) + diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts500.py b/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts500.py new file mode 100644 index 0000000000000000000000000000000000000000..2a571f6a6bfe0e6ce7fc8b708f10b4907f95a65d --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.TRTCuts500.py @@ -0,0 +1,22 @@ +######################################################### +# +# SimulationJobOptions/preInclude.TRTCuts50.py +# +# For a special production to evaluate the effect of low +# energy deltas on TRT threshold tuning. +# +######################################################### + +atlasG4log.info("G4 TRT Config: Setting TRT cut") + +def trtcuts_setup(): + from G4AtlasApps import AtlasG4Eng + ## Get both the main region and gas region + trt = AtlasG4Eng.G4Eng.Dict_DetFacility['TRT:TRT'] + trtr = trt.Dict_Regions['TRT'] + ## Set cut for the old region + trtr.Dict_Cuts['e-'] = 500. + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitDetFacility", trtcuts_setup) + diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseBeamEffectTransformation.py b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseBeamEffectTransformation.py new file mode 100644 index 0000000000000000000000000000000000000000..d89ea85d769710174be09230f0327f71e6362380 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseBeamEffectTransformation.py @@ -0,0 +1,14 @@ +###################################################################### +## SimulationJobOptions/preInclude.VerboseBeamEffectTransformation.py +## +## Use verbose output for the BeamEffectTransformation. (Can be easily adapted +## for use with the other EventFilters if required.) +###################################################################### + +def verbose_beameffecttransformation(): + print "verbose BeamEffectTransformation" + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng.menu_EventFilter().getFilter('BeamEffectTransformation').SetVerboseLevel(99) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", verbose_beameffecttransformation) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseProcess.py b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseProcess.py new file mode 100644 index 0000000000000000000000000000000000000000..0ae1fb4ff55b2a06783b8d1c6b86a9c1619d68d7 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseProcess.py @@ -0,0 +1,9 @@ +# Use verbose output for all G4 process. +# Only works in dbg builds. + +def use_verbose_process(): + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng.gbl.G4Commands().process.verbose(10) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitPhysics", use_verbose_process) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseSelector.py b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseSelector.py new file mode 100644 index 0000000000000000000000000000000000000000..68de0b56239eaa8f319abc1cf97bb6be9d2d7654 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseSelector.py @@ -0,0 +1,14 @@ +# Include the verbose selector based on track ID +# Very handy for debugging crashes on the grid when you know what track caused the crash +# Most powerful in conjunction with the verbose selector area + +def verboseSelectorArea_setup(): + print 'Firing up the verbose selector' + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myAction = PyG4Atlas.UserAction('G4UserActions', 'VerboseSelector', ['BeginOfEvent','EndOfEvent','BeginOfRun','EndOfRun','Step']) + #myAction.set_Properties( {"Xmin" : "-25000" , "Xmax":"25000" , "Ymin":"-25000","Ymax":"25000","Zmin":"-30000","Zmax":"30000","targetEvent":"11","verboseLevel":"1"} ) + myAction.set_Properties( {"targetTrack":"1","targetBarcode":"1","targetEvent":"11","verboseLevel":"1"} ) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myAction) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", verboseSelectorArea_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseSelectorArea.py b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseSelectorArea.py new file mode 100644 index 0000000000000000000000000000000000000000..aa397a8000681d01099aaf1c4fff41eaa8c8fb4a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseSelectorArea.py @@ -0,0 +1,19 @@ +# Fragment for setting up the verbose selector based on area. +# Can be used to enable G4 verbose output for a specific event, and for a specific region of the detector if desired. +# This is VERY handy for looking into problems in G4. +# Verbose level is transmitted to several G4 classes to increase their verbosity. +# Note that the event number is the number of events into the G4 run, rather than the ATLAS event number. + +def verboseSelectorArea_setup(): + print 'Firing up the verbose selector' + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myAction = PyG4Atlas.UserAction('G4UserActions', 'VerboseSelectorArea', ['BeginOfEvent','EndOfEvent','BeginOfRun','EndOfRun','Step']) + myAction.set_Properties( {"Xmin" : "-25000", "Xmax" : "25000", + "Ymin" : "-25000", "Ymax" : "25000", + "Zmin" : "-30000", "Zmax" : "30000", + "targetEvent" : "10", + "verboseLevel" : "1"} ) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myAction) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", verboseSelectorArea_setup) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseTracking.py b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseTracking.py new file mode 100644 index 0000000000000000000000000000000000000000..faeeaf8fa86e315fea8a5953ac8c7a373af5ea93 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseTracking.py @@ -0,0 +1,7 @@ +# Use verbose tracking for all G4 tracks. Very noisy and unrefined: you +# may find the VerboseSelector or VerboseSelectorArea preIncludes to be +# more appropriate, but this one gives you all the output you can eat. + +from G4AtlasApps.SimFlags import simFlags +from G4AtlasApps import callbacks +simFlags.InitFunctions.add_function("postInit", callbacks.use_verbose_tracking) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseVertexPositioner.py b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseVertexPositioner.py new file mode 100644 index 0000000000000000000000000000000000000000..1b97aa8d8c6843d52e42a33052321d6d771cad96 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseVertexPositioner.py @@ -0,0 +1,14 @@ +###################################################################### +## SimulationJobOptions/preInclude.VerboseVertexPositioner.py +## +## Use verbose output for the VertexPositioner. (Can be easily adapted +## for use with the other EventFilters if required.) +###################################################################### + +def verbose_vertexpositioner(): + print "verbose VertexPositioner" + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng.menu_EventFilter().getFilter('VertexPositioner').SetVerboseLevel(99) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", verbose_vertexpositioner) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseVertexRangeChecker.py b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseVertexRangeChecker.py new file mode 100644 index 0000000000000000000000000000000000000000..271e2a7ecaa7e02c3ccf7eeb42f790dd751b3eae --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.VerboseVertexRangeChecker.py @@ -0,0 +1,7 @@ +def verbose_vertexrangechecker(): + print "verbose Vertexrangechecker" + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng.menu_EventFilter().getFilter('VertexRangeChecker').SetVerboseLevel(99) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitG4", verbose_vertexrangechecker) diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.VertexPosOff.py b/Simulation/SimulationJobOptions/share/g4/preInclude.VertexPosOff.py new file mode 100644 index 0000000000000000000000000000000000000000..cdb74a6e0419aa2d3ba462aec6e941a91765d926 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.VertexPosOff.py @@ -0,0 +1,12 @@ +################################################ +## +## Job config to turn off vertex positioners +## +## Author: Andrea di Simone +## +################################################ + +from G4AtlasApps.SimFlags import simFlags +if simFlags.EventFilter.statusOn: + simFlags.EventFilter.switchFilterOff('VertexPositioner') +simFlags.VertexFromCondDB = False # required for consistency diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.VertexTO.py b/Simulation/SimulationJobOptions/share/g4/preInclude.VertexTO.py new file mode 100644 index 0000000000000000000000000000000000000000..90468dcd980f7946e2923bafa0ba5f862b86502e --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.VertexTO.py @@ -0,0 +1,2 @@ +from G4AtlasApps.SimFlags import simFlags +simFlags.VertexTimeOffset = True diff --git a/Simulation/SimulationJobOptions/share/heavyIons/postInclude.HijingPars.py b/Simulation/SimulationJobOptions/share/heavyIons/postInclude.HijingPars.py new file mode 100644 index 0000000000000000000000000000000000000000..face2eefe6e3265b2ca956d28f5c2afa24ef577e --- /dev/null +++ b/Simulation/SimulationJobOptions/share/heavyIons/postInclude.HijingPars.py @@ -0,0 +1,49 @@ +######################################################### +# +# SimulationJobOptions/postOptions.HijingPars.py +# Andrzej Olszewski +# +# Mods for Hijing event parameters. +# +# This job option should be added via the postInclude +# command line argument. I.e. before theApp.initialize() +# is called. +# +######################################################### +from AthenaCommon.AlgSequence import AlgSequence +topSequence = AlgSequence() + +from AthenaCommon.DetFlags import DetFlags +if DetFlags.pileup.any_on(): + from MCTruthSimAlgs.MCTruthSimAlgsConf import MergeHijingPars + mergeHijingPars = MergeHijingPars() + index = 0 + for alg in topSequence: + index += 1 #count position + if 'MergeMcEventCollection' == alg.name(): + topSequence.insert(index, mergeHijingPars) +else: + try: + from TruthIO.TruthIOConf import PrintHijingPars + except: + from TruthExamples.TruthExamplesConf import PrintHijingPars + topSequence += PrintHijingPars() + +## configure Athena for POOL persistency +if hasattr(topSequence, 'StreamHITS'): + outStream = topSequence.StreamHITS +elif hasattr(topSequence, 'StreamRDO'): + outStream = topSequence.StreamRDO +else: + ## temporary back-compatibility + outStreams = AlgSequence( "Streams" ) + if hasattr(outStreams, 'StreamHITS'): + outStream = outStreams.StreamHITS + elif hasattr(outStreams, 'StreamRDO'): + outStream = outStreams.StreamRDO + else: + #We should avoid creating the AthenaPoolOutputStream + #outside the core Sim/Digi python code + raise AttributeError("AthenaPoolOutputStream not found") + +outStream.ItemList += [ "HijingEventParams#Hijing_event_params" ] diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..e10cdf3088153eab70c69ea7450452d722159e83 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py @@ -0,0 +1,28 @@ +######################################################### +# +# SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py +# John Chapman +# +# Increase the cache refresh rate to 100% for minbias and +# cavern background samples. +# +# This job option should be added via the postInclude +# command line argument. +# +# FIXME: Rename to a more descriptive name. +# +######################################################### + +from Digitization.DigitizationFlags import digitizationFlags +from AthenaCommon.AppMgr import ServiceMgr +if hasattr(ServiceMgr, 'PileUpEventLoopMgr'): + if hasattr(digitizationFlags, 'doMinimumBias'): + if digitizationFlags.doMinimumBias: + ServiceMgr.PileUpEventLoopMgr.bkgCaches["MinBiasCache"].ReadDownscaleFactor = 1 #default 150 + else: + raise AttributeError("digitizationFlags has no doMinimumBias property! This postInclude file is only for use with 16.6.X releases!") + if digitizationFlags.doCavern(): + ServiceMgr.PileUpEventLoopMgr.bkgCaches["CavernCache"].ReadDownscaleFactor = 1 #default 150 +else: + raise AttributeError("This fragment should only be used in pile-up jobs!") + diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.Calo_InTimeOnlyPileUp.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.Calo_InTimeOnlyPileUp.py new file mode 100644 index 0000000000000000000000000000000000000000..bb5bdf0524dd691b9d0fb88c24efec5bd98f4c59 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.Calo_InTimeOnlyPileUp.py @@ -0,0 +1,43 @@ +######################################################### +# +# SimulationJobOptions/postOptions.Calo_InTimeOnlyPileUp.py +# John Chapman +# +# Only do pile-up in BC0 for the LAr and Tile sub-detectors. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +if DetFlags.digitize.LAr_on(): + if DetFlags.pileup.LAr_on(): + #changing the range of the LAr EM + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + laremxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['LArRangeEM'] + laremxingFolder.FirstXing = 0 + laremxingFolder.LastXing = 0 + + #changing the range of the LAr HEC + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + larhecxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['LArRangeHEC'] + larhecxingFolder.FirstXing = 0 + larhecxingFolder.LastXing = 0 + + #changing the range of the LAr FCAL + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + larfcalxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['LArRangeFCAL'] + larfcalxingFolder.FirstXing = 0 + larfcalxingFolder.LastXing = 0 + +if DetFlags.digitize.Tile_on(): + if DetFlags.pileup.Tile_on(): + #changing the range of the Tile + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + tilexingFolder = ServiceMgr.PileUpMergeSvc.Intervals['TileRange'] + tilexingFolder.FirstXing = 0 + tilexingFolder.LastXing = 0 diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.CavernBackgroundPostBeamDump.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.CavernBackgroundPostBeamDump.py new file mode 100644 index 0000000000000000000000000000000000000000..2cd1e452c9c7b76c34a91def9eb81fde03646e41 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.CavernBackgroundPostBeamDump.py @@ -0,0 +1,60 @@ +######################################################### +# +# SimulationJobOptions/postInclude.CavernBackgroundPostBeamDump.py +# Valeria Bartsch +# John Chapman +# +# Allow the central bunch crossing to be fixed at an empty +# BCID. +# +# Increase the time-window for pile-up to [-800,+800]ns for +# all MuonSpectrometer sub-detectors. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +from AthenaCommon.AppMgr import ServiceMgr +if hasattr(ServiceMgr, 'FixedArrayBM'): + ServiceMgr.FixedArrayBM.AllowEmptyT0BunchCrossing = True +else: + raise AttributeError("This fragment should only be used in jobs using FixeArrayBM!") + +if DetFlags.digitize.CSC_on(): + if DetFlags.pileup.CSC_on(): + #changing the range of the CSC + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + cscxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['CscRange'] + cscxingFolder.FirstXing = -800 + cscxingFolder.LastXing = 800 + +if DetFlags.digitize.MDT_on(): + if DetFlags.pileup.MDT_on(): + #changing the range of the MDT + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + MDTxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['MdtRange'] + MDTxingFolder.FirstXing = -800 + MDTxingFolder.LastXing = 800 + +if DetFlags.digitize.RPC_on(): + if DetFlags.pileup.RPC_on(): + #changing the range of the RPC + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + rpcxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['RpcRange'] + rpcxingFolder.FirstXing = -800 + rpcxingFolder.LastXing = 800 + +if DetFlags.digitize.TGC_on(): + if DetFlags.pileup.TGC_on(): + #changing the range of the TGC + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + tgcxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['TgcRange'] + tgcxingFolder.FirstXing = -800 + tgcxingFolder.LastXing = 800 + +#svcMgr.MessageSvc.OutputLevel=VERBOSE diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.DDMinbiasPileUpOnDDMinbiasSignal.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.DDMinbiasPileUpOnDDMinbiasSignal.py new file mode 100644 index 0000000000000000000000000000000000000000..ec84884f92c8272ba0e782fdb0a1d7d19af9f3f5 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.DDMinbiasPileUpOnDDMinbiasSignal.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postOptions.DDMinbiasPileUpOnDDMinbiasSignal.py +# John Chapman +# +# Correct the amount of DD minbias pile-up in BC0 to account for +# the fact that there is already a minbias event (the +# signal event) in that bunch crossing. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +from Digitization.DigitizationFlags import digitizationFlags +if hasattr(digitizationFlags, 'doDDMinimumBias'): + from AthenaCommon.AppMgr import ServiceMgr + if hasattr(ServiceMgr, 'PileUpEventLoopMgr'): + if digitizationFlags.doDDMinimumBias: + ServiceMgr.PileUpEventLoopMgr.bkgCaches["DDMinBiasCache"].SubtractBC0 = 1 + else: + raise AttributeError("This fragment should only be used in pile-up jobs!") +else: + raise AttributeError("digitizationFlags has no doDDMinimumBias property! This postInclude file is only for use with 16.6.X releases!") diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.HighPtMinbiasPileUpOnHighPtMinbiasSignal.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.HighPtMinbiasPileUpOnHighPtMinbiasSignal.py new file mode 100644 index 0000000000000000000000000000000000000000..e1a808203b7c3f50cb089f53651d46ff5b9152a9 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.HighPtMinbiasPileUpOnHighPtMinbiasSignal.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postOptions.DDMinbiasPileUpOnDDMinbiasSignal.py +# John Chapman +# +# Correct the amount of DD minbias pile-up in BC0 to account for +# the fact that there is already a minbias event (the +# signal event) in that bunch crossing. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +from Digitization.DigitizationFlags import digitizationFlagsh +if hasattr(digitizationFlags, 'doHighPtMinBias'): + from AthenaCommon.AppMgr import ServiceMgr + if hasattr(ServiceMgr, 'PileUpEventLoopMgr'): + if digitizationFlags.doHighPtMinBias: + ServiceMgr.PileUpEventLoopMgr.bkgCaches["HighPtMinBiasCache"].SubtractBC0 = 1 + else: + raise AttributeError("This fragment should only be used in pile-up jobs!") +else: + raise AttributeError("digitizationFlags has no doHighPtMinBias property! This postInclude file is only for use with 17.X.Y or later releases!") diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.InDet_InTimeOnlyPileUp.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.InDet_InTimeOnlyPileUp.py new file mode 100644 index 0000000000000000000000000000000000000000..d85c183e6b4790fcaf5351289eae04281e5d150d --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.InDet_InTimeOnlyPileUp.py @@ -0,0 +1,62 @@ +######################################################### +# +# SimulationJobOptions/postOptions.InDet_InTimeOnlyPileUp.py +# John Chapman +# +# Only do pile-up in BC0 for the BCM, Pixel, SCT and TRT +# sub-detectors. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### +from Digitization.DigitizationFlags import digitizationFlags +from AthenaCommon.CfgGetter import getPublicTool + +if DetFlags.digitize.BCM_on(): + if DetFlags.pileup.BCM_on(): + if digitizationFlags.doXingByXingPileUp(): + bcm = getPublicTool("BCM_DigitizationTool") + else: + #changing the range of the BCM + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + bcm = ServiceMgr.PileUpMergeSvc.Intervals['BCM_Range'] + bcm.FirstXing = 0 + bcm.LastXing = 0 + +if DetFlags.digitize.pixel_on(): + if DetFlags.pileup.pixel_on(): + if digitizationFlags.doXingByXingPileUp(): + pixel = getPublicTool("PixelDigitizationTool") + else: + #changing the range of the Pixels + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + pixel = ServiceMgr.PileUpMergeSvc.Intervals['PixelRange'] + pixel.FirstXing = 0 + pixel.LastXing = 0 + +if DetFlags.digitize.SCT_on(): + if DetFlags.pileup.SCT_on(): + if digitizationFlags.doXingByXingPileUp(): + sct = getPublicTool("SCT_DigitizationTool") + else: + #changing the range of the SCT + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + sct = ServiceMgr.PileUpMergeSvc.Intervals['SiliconRange'] + sct.FirstXing = 0 + sct.LastXing = 0 + +if DetFlags.digitize.TRT_on(): + if DetFlags.pileup.TRT_on(): + if digitizationFlags.doXingByXingPileUp(): + trt = getPublicTool("TRTDigitizationTool") + else: + #changing the range of the TRT + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + trt = ServiceMgr.PileUpMergeSvc.Intervals['TRTRange'] + trt.FirstXing = 0 + trt.LastXing = 0 diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.LowPtMinbiasPileUpOnLowPtMinbiasSignal.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.LowPtMinbiasPileUpOnLowPtMinbiasSignal.py new file mode 100644 index 0000000000000000000000000000000000000000..73ed726393bd428655d752bd897c6ca4d4766af7 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.LowPtMinbiasPileUpOnLowPtMinbiasSignal.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postOptions.DDMinbiasPileUpOnDDMinbiasSignal.py +# John Chapman +# +# Correct the amount of DD minbias pile-up in BC0 to account for +# the fact that there is already a minbias event (the +# signal event) in that bunch crossing. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +from Digitization.DigitizationFlags import digitizationFlags +if hasattr(digitizationFlags, 'doLowPtMinBias'): + from AthenaCommon.AppMgr import ServiceMgr + if hasattr(ServiceMgr, 'PileUpEventLoopMgr'): + if digitizationFlags.doLowPtMinBias: + ServiceMgr.PileUpEventLoopMgr.bkgCaches["LowPtMinBiasCache"].SubtractBC0 = 1 + else: + raise AttributeError("This fragment should only be used in pile-up jobs!") +else: + raise AttributeError("digitizationFlags has no doLowPtMinBias property! This postInclude file is only for use with 17.X.Y or later releases!") diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.MinbiasPileUpOnMinbiasSignal.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.MinbiasPileUpOnMinbiasSignal.py new file mode 100644 index 0000000000000000000000000000000000000000..55688f6c073121c1f298aad2a266e83f5f1ad2dd --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.MinbiasPileUpOnMinbiasSignal.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postOptions.MinbiasPileUpOnMinbiasSignal.py +# John Chapman +# +# Correct the amount of mixed minbias pile-up in BC0 to account +# for the fact that there is already a minbias event (the +# signal event) in that bunch crossing. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +from Digitization.DigitizationFlags import digitizationFlags +if hasattr(digitizationFlags, 'doMinimumBias'): + from AthenaCommon.AppMgr import ServiceMgr + if hasattr(ServiceMgr, 'PileUpEventLoopMgr'): + if digitizationFlags.doMinimumBias: + ServiceMgr.PileUpEventLoopMgr.bkgCaches["MinBiasCache"].SubtractBC0 = 1 + else: + raise AttributeError("This fragment should only be used in pile-up jobs!") +else: + raise AttributeError("digitizationFlags has no doMinimumBias property! This postInclude file is only for use with 16.6.X releases!") diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.Muon_InTimeOnlyPileUp.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.Muon_InTimeOnlyPileUp.py new file mode 100644 index 0000000000000000000000000000000000000000..71b7737d62911a0ac0161772ebdfa8b0c66ecf57 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.Muon_InTimeOnlyPileUp.py @@ -0,0 +1,48 @@ +######################################################### +# +# SimulationJobOptions/postOptions.InDet_InTimeOnlyPileUp.py +# John Chapman +# +# Only do pile-up in BC0 for the CSC, MDT, RPC and TGC +# sub-detectors. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +if DetFlags.digitize.CSC_on(): + if DetFlags.pileup.CSC_on(): + #changing the range of the CSC + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + cscxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['CscRange'] + cscxingFolder.FirstXing = 0 + cscxingFolder.LastXing = 0 + +if DetFlags.digitize.MDT_on(): + if DetFlags.pileup.MDT_on(): + #changing the range of the MDT + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + MDTxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['MdtRange'] + MDTxingFolder.FirstXing = 0 + MDTxingFolder.LastXing = 0 + +if DetFlags.digitize.RPC_on(): + if DetFlags.pileup.RPC_on(): + #changing the range of the RPC + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + rpcxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['RpcRange'] + rpcxingFolder.FirstXing = 0 + rpcxingFolder.LastXing = 0 + +if DetFlags.digitize.TGC_on(): + if DetFlags.pileup.TGC_on(): + #changing the range of the TGC + from AthenaCommon.AppMgr import ServiceMgr + from PileUpComps.PileUpCompsConf import PileUpXingFolder + tgcxingFolder = ServiceMgr.PileUpMergeSvc.Intervals['TgcRange'] + tgcxingFolder.FirstXing = 0 + tgcxingFolder.LastXing = 0 diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.NDMinbiasPileUpOnNDMinbiasSignal.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.NDMinbiasPileUpOnNDMinbiasSignal.py new file mode 100644 index 0000000000000000000000000000000000000000..af55b02120052f4156170e92f148727eea4d326a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.NDMinbiasPileUpOnNDMinbiasSignal.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postOptions.NDMinbiasPileUpOnNDMinbiasSignal.py +# John Chapman +# +# Correct the amount of ND minbias pile-up in BC0 to account for +# the fact that there is already a minbias event (the +# signal event) in that bunch crossing. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +from Digitization.DigitizationFlags import digitizationFlags +if hasattr(digitizationFlags, 'doNDMinimumBias'): + from AthenaCommon.AppMgr import ServiceMgr + if hasattr(ServiceMgr, 'PileUpEventLoopMgr'): + if digitizationFlags.doNDMinimumBias: + ServiceMgr.PileUpEventLoopMgr.bkgCaches["NDMinBiasCache"].SubtractBC0 = 1 + else: + raise AttributeError("This fragment should only be used in pile-up jobs!") +else: + raise AttributeError("digitizationFlags has no doNDMinimumBias property! This postInclude file is only for use with 16.6.X releases!") diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.PileUpTruth_BC0_OnlyConfig.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.PileUpTruth_BC0_OnlyConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..b290fca8ccb1deb75e53d09c6b14ee2dd9dbec41 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.PileUpTruth_BC0_OnlyConfig.py @@ -0,0 +1,19 @@ +######################################################### +# +# SimulationJobOptions/postOptions.PileUpTruth_BC0_OnlyConfig.py +# +# John Chapman +# +# Only keep truth information for BC0 (for non-truth-filtered +# background samples only). +# +# This job option should be added via the postInclude command line +# argument. +# +######################################################### + +from AthenaCommon.CfgGetter import getPublicTool +mergemceventcoll = getPublicTool("MergeMcEventCollTool") +mergemceventcoll.SaveOutOfTimeMinBias = False +mergemceventcoll.LowTimeToKeep = 0.0 +mergemceventcoll.HighTimeToKeep = 25.0 diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.PileUpTruth_BC0_PT.GT.5GeV_OnlyConfig.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.PileUpTruth_BC0_PT.GT.5GeV_OnlyConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..d7b9cb3a91068623b8530aadff2e3dbd98824ac0 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.PileUpTruth_BC0_PT.GT.5GeV_OnlyConfig.py @@ -0,0 +1,19 @@ +######################################################### +# +# SimulationJobOptions/postOptions.PileUpTruth_BC0_PT.GT.5GeV_OnlyConfig.py +# John Chapman +# +# Only keep truth information in BC0 and with PT>5GeV (for +# non-truth-filtered background samples only). +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +from AthenaCommon.CfgGetter import getPublicTool +mergemceventcoll = getPublicTool("MergeMcEventCollTool") +mergemceventcoll.SaveOutOfTimeMinBias = False +mergemceventcoll.LowTimeToKeep = 0.0 +mergemceventcoll.HighTimeToKeep = 25.0 +mergemceventcoll.ptMin = 5000.0 diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.PileUp_MinBias_Requested20100428_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.PileUp_MinBias_Requested20100428_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..5f2e822cb6b3eb068f8e4e2362a230b62b92beb4 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.PileUp_MinBias_Requested20100428_DigitConfig.py @@ -0,0 +1,22 @@ +######################################################### +# +# SimulationJobOptions/postOptions.PileUp_Minbias_Requested20100428_DigitConfig.py +# John Chapman +# +# Increase the cache refresh rate to 100% for minbias and +# cavern background samples. +# Correct the amount of minbias pile-up in BC0 to account for +# the fact that there is already a minbias event (the +# signal event) in that bunch crossing. +# +# This job option should be added via the postInclude +# command line argument. +# +# FIXME: DEPRECATED Use +# postInclude=SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py,SimulationJobOptions/postOptions.MinbiasPileUpOnMinbiasSignal.py +# instead DELETE THIS FILE +# +######################################################### + +include("SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py") +include("SimulationJobOptions/postOptions.MinbiasPileUpOnMinbiasSignal.py") diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.SDMinbiasPileUpOnSDMinbiasSignal.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.SDMinbiasPileUpOnSDMinbiasSignal.py new file mode 100644 index 0000000000000000000000000000000000000000..ea2c82bb9be31b66eecf7df3cf9063d8591511ae --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.SDMinbiasPileUpOnSDMinbiasSignal.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postOptions.SDMinbiasPileUpOnSDMinbiasSignal.py +# John Chapman +# +# Correct the amount of SD minbias pile-up in BC0 to account for +# the fact that there is already a minbias event (the +# signal event) in that bunch crossing. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +from Digitization.DigitizationFlags import digitizationFlags +if hasattr(digitizationFlags, 'doSDMinimumBias'): + from AthenaCommon.AppMgr import ServiceMgr + if hasattr(ServiceMgr, 'PileUpEventLoopMgr'): + if digitizationFlags.doSDMinimumBias: + ServiceMgr.PileUpEventLoopMgr.bkgCaches["SDMinBiasCache"].SubtractBC0 = 1 + else: + raise AttributeError("This fragment should only be used in pile-up jobs!") +else: + raise AttributeError("digitizationFlags has no doSDMinimumBias property! This postInclude file is only for use with 16.6.X releases!") diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.Save7GeVpTPileUpTruthJets.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.Save7GeVpTPileUpTruthJets.py new file mode 100644 index 0000000000000000000000000000000000000000..34d1d837e91d74fa5c462e542cd07c4813a566bc --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.Save7GeVpTPileUpTruthJets.py @@ -0,0 +1,18 @@ +######################################################### +# +# SimulationJobOptions/postInclude.Save7GeVpTPileUpTruthJets.py +# John Chapman +# +# Reconfigure MergeTruthJetsTool to save Truth Jets with pT > 7 GeV +# both in-time and out-of-time. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### +from AthenaCommon.CfgGetter import getPublicTool +mergetruthjetstool = getPublicTool("MergeTruthJetsTool") +from AthenaCommon.SystemOfUnits import GeV +mergetruthjetstool.InTimePtCut = 7.0 * GeV +mergetruthjetstool.OutOfTimePtCut = 7.0 * GeV + diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.Truth.pTmin100MeV.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.Truth.pTmin100MeV.py new file mode 100644 index 0000000000000000000000000000000000000000..cd992a35986c61e7aa3aaab1ecf118e1afa78e75 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.Truth.pTmin100MeV.py @@ -0,0 +1,20 @@ +######################################################### +# +# SimulationJobOptions/postOptions.Truth.pTmin100MeV.py +# John Chapman +# +# For very low luminosities keep truth information for +# particles with pT>100MeV rather than pT>400MeV. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + + +from Digitization.DigitizationFlags import digitizationFlags +from AthenaCommon.AlgSequence import AlgSequence +job = AlgSequence() + +from AthenaCommon.CfgGetter import getPublicTool +getPublicTool("MergeMcEventCollTool").ptMin = 100.0 #400.0 MeV diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.VeryLowLumiMinbiasOnMinbiasDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.VeryLowLumiMinbiasOnMinbiasDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..41dae3d3fef50f295627caa1e6da205ad010ba03 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.VeryLowLumiMinbiasOnMinbiasDigitConfig.py @@ -0,0 +1,19 @@ +######################################################### +# +# SimulationJobOptions/postOptions.VeryLowLumiMinbiasPileUpOnMinbiasSignal.py +# John Chapman +# +# Correct the amount of minbias pile-up in BC0 to account for +# the fact that there is already a minbias event (the +# signal event) in that bunch crossing. +# +# This job option should be added via the postInclude +# command line argument. +# +# FIXME: DEPRECATED Use +# postInclude=SimulationJobOptions/postOptions.MinbiasPileUpOnMinbiasSignal.py,SimulationJobOptions/postOptions.Truth.pTmin100MeV.py +# +######################################################### + +include("SimulationJobOptions/postOptions.MinbiasPileUpOnMinbiasSignal.py") +include("SimulationJobOptions/postOptions.Truth.pTmin100MeV.py") diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..710f2ec7b1a45927ac3c5aa9b435e774997a441e --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py @@ -0,0 +1,24 @@ +######################################################### +# +# SimulationJobOptions/postOptions.VeryLowLumiMinbiasPileUpOnMinbias_900ns_DigitConfig.py +# John Chapman +# +# Correct the amount of minbias pile-up in BC0 to account for +# the fact that there is already a minbias event (the +# signal event) in that bunch crossing. +# For very low luminosities keep truth information for +# particles with pT>100MeV rather than pT>400MeV. +# Increase the cache refresh rate to 100% for minbias and +# cavern background samples. +# +# This job option should be added via the postInclude +# command line argument. +# +# FIXME: DEPRECATED Use +# postInclude=SimulationJobOptions/postOptions.MinbiasPileUpOnMinbiasSignal.py,SimulationJobOptions/postOptions.Truth.pTmin100MeV.py,SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py +# +######################################################### + +include("SimulationJobOptions/postOptions.MinbiasPileUpOnMinbiasSignal.py") +include("SimulationJobOptions/postOptions.Truth.pTmin100MeV.py") +include("SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py") diff --git a/Simulation/SimulationJobOptions/share/pileup/postInclude.VeryLowLumi_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/postInclude.VeryLowLumi_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..8371f933c6cfc9e9b99e8d07ba7b59bae5dc597a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/postInclude.VeryLowLumi_900ns_DigitConfig.py @@ -0,0 +1,21 @@ +######################################################### +# +# SimulationJobOptions/postOptions.VeryLowLumi_900ns_DigitConfig.py +# John Chapman +# +# Correct the amount of minbias pile-up in BC0 to account for +# the fact that there is already a minbias event (the +# signal event) in that bunch crossing. +# Increase the cache refresh rate to 100% for minbias and +# cavern background samples. +# +# This job option should be added via the postInclude +# command line argument. +# +# FIXME: DEPRECATED Use +# postInclude=SimulationJobOptions/postOptions.Truth.pTmin100MeV.py,SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py +# +######################################################### + +include("SimulationJobOptions/postOptions.Truth.pTmin100MeV.py") +include("SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py") diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigA.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigA.py new file mode 100644 index 0000000000000000000000000000000000000000..fc68e732ce733cbc8cfb650c37d8ee33035ca692 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigA.py @@ -0,0 +1,21 @@ +################################################################ +## This configuration is one of those used for the validation of +## the bunch structure code (August 2010). It is the base-line +## configuration with no bunch structure and a flat 25ns spacing +## between filled bunch crossings. +################################################################ + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 5.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigB.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigB.py new file mode 100644 index 0000000000000000000000000000000000000000..38633b76cc34d9384801731e5071aaff4b0cc1fb --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigB.py @@ -0,0 +1,25 @@ +#################################################################################### +## This configuration is one of those used for the validation of the bunch structure +## code. It uses a bunch pattern with just a single filled bunch and should produce +## a flat 25ns spacing between filled bunch crossings. +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 5.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [1.0] +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 25 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigC.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigC.py new file mode 100644 index 0000000000000000000000000000000000000000..b7b2f9f359f30b633cd806fc3dc4cceed5370bae --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigC.py @@ -0,0 +1,21 @@ +################################################################ +## This configuration is one of those used for the validation of +## the bunch structure code (August 2010). It is the base-line +## configuration with no bunch structure and a flat 50ns spacing +## between filled bunch crossings. +################################################################ + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 50 +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 5.0 +digitizationFlags.initialBunchCrossing = -16 +digitizationFlags.finalBunchCrossing = 16 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigD.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigD.py new file mode 100644 index 0000000000000000000000000000000000000000..732c7f329b2e062e176f1735b185fc6f04a974e5 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigD.py @@ -0,0 +1,26 @@ +#################################################################################### +## This configuration is one of those used for the validation of the bunch structure +## code. It uses a bunch pattern with a single filled bunch crossing and a single +## empty bunch crossing and should produce a flat 50ns spacing between filled +## bunch crossings. Cavern Background is subject to the bunch pattern. +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 5.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [1.0,0.0] +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 50 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigE.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigE.py new file mode 100644 index 0000000000000000000000000000000000000000..5737e58c5af36d0620be64af0a3fd4179dba39ba --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigE.py @@ -0,0 +1,25 @@ +#################################################################################### +## This configuration is one of those used for the validation of the bunch structure +## code. It uses a bunch pattern with just a single filled bunch and should produce +## a flat 25ns spacing between filled bunch crossings. Cavern Background is +## independent the bunch pattern. +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 5.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [1.0] + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 25 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigF.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigF.py new file mode 100644 index 0000000000000000000000000000000000000000..213b84f981713d114fc187301501944205c000f7 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigF.py @@ -0,0 +1,25 @@ +#################################################################################### +## This configuration is one of those used for the validation of the bunch structure +## code. It uses a bunch pattern with a single filled bunch crossing and a single +## empty bunch crossing and should produce a flat 50ns spacing between filled +## bunch crossings. Cavern Background is independent the bunch pattern. +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 5.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [1.0,0.0] + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 50 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigG.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigG.py new file mode 100644 index 0000000000000000000000000000000000000000..126acf1a39b045627c2f23022d16f5fc42014737 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigG.py @@ -0,0 +1,29 @@ +#################################################################################### +## This configuration is one of those used for the validation of the bunch structure +## code. It uses a bunch pattern with four filled bunch crossings, followed by 32 +## empty bunch crossings. Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time will vary significantly +## from event to event. Cavern Background is independent the bunch pattern. +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 5.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 25 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigH.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigH.py new file mode 100644 index 0000000000000000000000000000000000000000..af2405f97e6baa64b3e16bda53d2c34fae1dac32 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigH.py @@ -0,0 +1,29 @@ +#################################################################################### +## This configuration is one of those used for the validation of the bunch structure +## code. It uses a bunch pattern with four filled bunch crossings, followed by 32 +## empty bunch crossings. The central bunch crossing is fixed to be the first bunch +## crossing in the pattern. Cavern Background is independent the bunch pattern. +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 5.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] +digitizationFlags.FixedT0BunchCrossing = 0 + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 25 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigI.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigI.py new file mode 100644 index 0000000000000000000000000000000000000000..1daa31ddffbe95d873b42cc0ecbe599975a6eaad --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.BunchStructureValidationConfigI.py @@ -0,0 +1,29 @@ +#################################################################################### +## This configuration is one of those used for the validation of the bunch structure +## code. It uses a bunch pattern with four filled bunch crossings, followed by 32 +## empty bunch crossings. The central bunch crossing is fixed to be the fourth bunch +## crossing in the pattern. Cavern Background is independent the bunch pattern. +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 5.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] +digitizationFlags.FixedT0BunchCrossing = 3 + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 25 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.CavernBackgroundPostBeamDump.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.CavernBackgroundPostBeamDump.py new file mode 100644 index 0000000000000000000000000000000000000000..21fdad2efe1d5f868fbfd325732f90071f4e8075 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.CavernBackgroundPostBeamDump.py @@ -0,0 +1,264 @@ +######################################################### +# +# SimulationJobOptions/preInclude.CavernBackgroundPostBeamDump.py +# Valeria Bartsch +# John Chapman +# +# Create an empty BeamIntensity pattern appart from the first +# entry. Then set the central bunch crossing to be fixed at the 32nd +# bunch in the pattern, this should mean that all pile-up comes from a +# bunch crossing 800ns before the trigger time. This can be used to +# look at the fall off of cavern background after the beam has been +# dumped. +# +# Use the run-dependent MC code so simulate a fall off in cavern +# background intensity overtime. Crucial to this is hacking the +# numberOfCollisions to be locked. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### +from Digitization.DigitizationFlags import digitizationFlags +digitizationFlags.numberOfCollisions.set_Value_and_Lock(1.0) + +# central bunch crossing is 32 +digitizationFlags.FixedT0BunchCrossing = 32 + +## Cavern Background is *dependent* on the bunch pattern. + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 50 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +# digitizationFlags.numberOfCollisions = 2.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +#digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +#digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +digitizationFlags.BeamIntensityPattern = [ + 1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0] + +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +#jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. + +#################### +## File outfile: autogenerated configuration file from command +##./RunDepTaskMaker.py --outfile=outfile runlist.xml +## Created on Mon Aug 1 11:32:17 2011 +#################### +#Run-dependent digi job configuration file. +#SimuJobTransforms/ConfigLumi_preOptions.py + +#We need to be able to adjust for different dataset sizes. +if not 'ScaleTaskLength' in dir(): ScaleTaskLength = 1 +_evts = lambda x: int(ScaleTaskLength * x) + +from Digitization.RunDependentMCTaskIterator import getRunLumiInfoFragment +digilog = logging.getLogger('Digi_trf') +digilog.info('doing RunLumiOverride configuration from file.') +JobMaker=[ +{'run':186049, 'lb':1, 'starttstamp':1311249272, 'dt':1.029, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':2, 'starttstamp':1311249273, 'dt':1.029, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':3, 'starttstamp':1311249274, 'dt':1.029, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':4, 'starttstamp':1311249275, 'dt':1.029, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':5, 'starttstamp':1311249276, 'dt':1.029, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':6, 'starttstamp':1311249277, 'dt':1.029, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':7, 'starttstamp':1311249278, 'dt':1.029, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':8, 'starttstamp':1311249279, 'dt':1.029, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':9, 'starttstamp':1311249280, 'dt':1.029, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':10, 'starttstamp':1311249281, 'dt':1.029, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':11, 'starttstamp':1311249282, 'dt':6.107, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':12, 'starttstamp':1311249288, 'dt':6.107, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':13, 'starttstamp':1311249294, 'dt':6.107, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':14, 'starttstamp':1311249300, 'dt':6.107, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':15, 'starttstamp':1311249306, 'dt':6.107, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':16, 'starttstamp':1311249313, 'dt':6.107, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':17, 'starttstamp':1311249319, 'dt':6.107, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':18, 'starttstamp':1311249325, 'dt':6.107, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':19, 'starttstamp':1311249331, 'dt':6.107, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':20, 'starttstamp':1311249337, 'dt':6.107, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':21, 'starttstamp':1311249343, 'dt':6.092, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':22, 'starttstamp':1311249349, 'dt':6.092, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':23, 'starttstamp':1311249355, 'dt':6.092, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':24, 'starttstamp':1311249361, 'dt':6.092, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':25, 'starttstamp':1311249367, 'dt':6.092, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':26, 'starttstamp':1311249373, 'dt':6.092, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':27, 'starttstamp':1311249380, 'dt':6.092, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':28, 'starttstamp':1311249386, 'dt':6.092, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':29, 'starttstamp':1311249392, 'dt':6.092, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':30, 'starttstamp':1311249398, 'dt':6.092, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':31, 'starttstamp':1311249404, 'dt':6.096, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':32, 'starttstamp':1311249410, 'dt':6.096, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':33, 'starttstamp':1311249416, 'dt':6.096, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':34, 'starttstamp':1311249422, 'dt':6.096, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':35, 'starttstamp':1311249428, 'dt':6.096, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':36, 'starttstamp':1311249434, 'dt':6.096, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':37, 'starttstamp':1311249441, 'dt':6.096, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':38, 'starttstamp':1311249447, 'dt':6.096, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':39, 'starttstamp':1311249453, 'dt':6.096, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':40, 'starttstamp':1311249459, 'dt':6.096, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':41, 'starttstamp':1311249465, 'dt':6.079, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':42, 'starttstamp':1311249471, 'dt':6.079, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':43, 'starttstamp':1311249477, 'dt':6.079, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':44, 'starttstamp':1311249483, 'dt':6.079, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':45, 'starttstamp':1311249489, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':46, 'starttstamp':1311249495, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':47, 'starttstamp':1311249501, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':48, 'starttstamp':1311249508, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':49, 'starttstamp':1311249514, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':50, 'starttstamp':1311249520, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':51, 'starttstamp':1311249526, 'dt':6.018, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':52, 'starttstamp':1311249532, 'dt':6.018, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':53, 'starttstamp':1311249538, 'dt':6.018, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':54, 'starttstamp':1311249544, 'dt':6.018, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':55, 'starttstamp':1311249550, 'dt':6.018, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':56, 'starttstamp':1311249556, 'dt':6.018, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':57, 'starttstamp':1311249562, 'dt':6.018, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':58, 'starttstamp':1311249568, 'dt':6.018, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':59, 'starttstamp':1311249574, 'dt':6.018, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':60, 'starttstamp':1311249580, 'dt':6.018, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':61, 'starttstamp':1311249586, 'dt':6.102, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':62, 'starttstamp':1311249592, 'dt':6.102, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':63, 'starttstamp':1311249598, 'dt':6.102, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':64, 'starttstamp':1311249604, 'dt':6.102, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':65, 'starttstamp':1311249610, 'dt':6.102, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':66, 'starttstamp':1311249617, 'dt':6.102, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':67, 'starttstamp':1311249623, 'dt':6.102, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':68, 'starttstamp':1311249629, 'dt':6.102, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':69, 'starttstamp':1311249635, 'dt':6.102, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':70, 'starttstamp':1311249641, 'dt':6.102, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':71, 'starttstamp':1311249647, 'dt':4.956, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':72, 'starttstamp':1311249652, 'dt':4.956, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':73, 'starttstamp':1311249657, 'dt':4.956, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':74, 'starttstamp':1311249662, 'dt':4.956, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':75, 'starttstamp':1311249667, 'dt':4.956, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':76, 'starttstamp':1311249672, 'dt':4.956, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':77, 'starttstamp':1311249677, 'dt':4.956, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':78, 'starttstamp':1311249682, 'dt':4.956, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':79, 'starttstamp':1311249687, 'dt':4.956, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':80, 'starttstamp':1311249692, 'dt':4.956, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':81, 'starttstamp':1311249697, 'dt':6.061, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':82, 'starttstamp':1311249703, 'dt':6.061, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':83, 'starttstamp':1311249709, 'dt':6.061, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':84, 'starttstamp':1311249715, 'dt':6.061, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':85, 'starttstamp':1311249721, 'dt':6.061, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':86, 'starttstamp':1311249727, 'dt':6.061, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':87, 'starttstamp':1311249733, 'dt':6.061, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':88, 'starttstamp':1311249739, 'dt':6.061, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':89, 'starttstamp':1311249745, 'dt':6.061, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':90, 'starttstamp':1311249752, 'dt':6.061, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':91, 'starttstamp':1311249757, 'dt':6.095, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':92, 'starttstamp':1311249763, 'dt':6.095, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':93, 'starttstamp':1311249769, 'dt':6.095, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':94, 'starttstamp':1311249775, 'dt':6.095, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':95, 'starttstamp':1311249781, 'dt':6.095, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':96, 'starttstamp':1311249787, 'dt':6.095, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':97, 'starttstamp':1311249794, 'dt':6.095, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':98, 'starttstamp':1311249800, 'dt':6.095, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':99, 'starttstamp':1311249806, 'dt':6.095, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':100, 'starttstamp':1311249812, 'dt':6.095, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':101, 'starttstamp':1311249818, 'dt':6.101, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':102, 'starttstamp':1311249824, 'dt':6.101, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':103, 'starttstamp':1311249830, 'dt':6.101, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':104, 'starttstamp':1311249836, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':105, 'starttstamp':1311249842, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':106, 'starttstamp':1311249849, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':107, 'starttstamp':1311249855, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':108, 'starttstamp':1311249861, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':109, 'starttstamp':1311249867, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':110, 'starttstamp':1311249873, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':111, 'starttstamp':1311249879, 'dt':4.617, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':112, 'starttstamp':1311249884, 'dt':4.617, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':113, 'starttstamp':1311249888, 'dt':4.617, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':114, 'starttstamp':1311249893, 'dt':4.617, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':115, 'starttstamp':1311249897, 'dt':4.617, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':116, 'starttstamp':1311249902, 'dt':4.617, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':117, 'starttstamp':1311249907, 'dt':4.617, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':118, 'starttstamp':1311249911, 'dt':4.617, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':119, 'starttstamp':1311249916, 'dt':4.617, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':120, 'starttstamp':1311249921, 'dt':4.617, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':121, 'starttstamp':1311249925, 'dt':6.079, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':122, 'starttstamp':1311249931, 'dt':6.079, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':123, 'starttstamp':1311249937, 'dt':6.079, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':124, 'starttstamp':1311249943, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':125, 'starttstamp':1311249949, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':126, 'starttstamp':1311249955, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':127, 'starttstamp':1311249961, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':128, 'starttstamp':1311249968, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':129, 'starttstamp':1311249974, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':130, 'starttstamp':1311249980, 'dt':6.079, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':131, 'starttstamp':1311249986, 'dt':6.090, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':132, 'starttstamp':1311249992, 'dt':6.090, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':133, 'starttstamp':1311249998, 'dt':6.090, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':134, 'starttstamp':1311250004, 'dt':6.090, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':135, 'starttstamp':1311250010, 'dt':6.090, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':136, 'starttstamp':1311250016, 'dt':6.090, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':137, 'starttstamp':1311250023, 'dt':6.090, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':138, 'starttstamp':1311250029, 'dt':6.090, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':139, 'starttstamp':1311250035, 'dt':6.090, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':140, 'starttstamp':1311250041, 'dt':6.090, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':141, 'starttstamp':1311250047, 'dt':6.109, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':142, 'starttstamp':1311250053, 'dt':6.109, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':143, 'starttstamp':1311250059, 'dt':6.109, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':144, 'starttstamp':1311250065, 'dt':6.109, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':145, 'starttstamp':1311250071, 'dt':6.109, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':146, 'starttstamp':1311250078, 'dt':6.109, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':147, 'starttstamp':1311250084, 'dt':6.109, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':148, 'starttstamp':1311250090, 'dt':6.109, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':149, 'starttstamp':1311250096, 'dt':6.109, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':150, 'starttstamp':1311250102, 'dt':6.109, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':151, 'starttstamp':1311250108, 'dt':6.092, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':152, 'starttstamp':1311250114, 'dt':6.092, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':153, 'starttstamp':1311250120, 'dt':6.092, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':154, 'starttstamp':1311250126, 'dt':6.092, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':155, 'starttstamp':1311250132, 'dt':6.092, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':156, 'starttstamp':1311250138, 'dt':6.092, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':157, 'starttstamp':1311250145, 'dt':6.092, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':158, 'starttstamp':1311250151, 'dt':6.092, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':159, 'starttstamp':1311250157, 'dt':6.092, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':160, 'starttstamp':1311250163, 'dt':6.092, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':161, 'starttstamp':1311250169, 'dt':6.108, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':162, 'starttstamp':1311250175, 'dt':6.108, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':163, 'starttstamp':1311250181, 'dt':6.108, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':164, 'starttstamp':1311250187, 'dt':6.108, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':165, 'starttstamp':1311250193, 'dt':6.108, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':166, 'starttstamp':1311250200, 'dt':6.108, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':167, 'starttstamp':1311250206, 'dt':6.108, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':168, 'starttstamp':1311250212, 'dt':6.108, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':169, 'starttstamp':1311250218, 'dt':6.108, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':170, 'starttstamp':1311250224, 'dt':6.108, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':171, 'starttstamp':1311250230, 'dt':6.101, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':172, 'starttstamp':1311250236, 'dt':6.101, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':173, 'starttstamp':1311250242, 'dt':6.101, 'evts':_evts(10), 'mu':3, 'force_new':False}, +{'run':186049, 'lb':174, 'starttstamp':1311250248, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':175, 'starttstamp':1311250254, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':176, 'starttstamp':1311250261, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':177, 'starttstamp':1311250267, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':178, 'starttstamp':1311250273, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':179, 'starttstamp':1311250279, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False}, +{'run':186049, 'lb':180, 'starttstamp':1311250285, 'dt':6.101, 'evts':_evts(10), 'mu':2, 'force_new':False} +#--> end hiding +] +if 'runArgs' in dir(): + if hasattr(runArgs,"jobNumber") and hasattr(runArgs,"maxEvents"): + trfJobNumber = runArgs.jobNumber + trfMaxEvents = runArgs.maxEvents + else: digilog.error('Tried to include RunLumiOverride configuration without knowing this runArgs.jobNumber or runArgs.maxEvents!') +else: + #this is a test job not a trf job + trfJobNumber=0 + trfMaxEvents=10 + + +digitizationFlags.RunAndLumiOverrideList=getRunLumiInfoFragment(jobnumber=trfJobNumber, task=JobMaker, maxEvents=trfMaxEvents) +del JobMaker + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001.2DigitConfig_50ns.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001.2DigitConfig_50ns.py new file mode 100644 index 0000000000000000000000000000000000000000..039084e65e22d8b66fff160b944ce10b9d8ba9bd --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001.2DigitConfig_50ns.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 50 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 0.3 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 0.3 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0003 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 0.3 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -16 +digitizationFlags.finalBunchCrossing = 16 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001.2_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001.2_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..d619a28c96694787a821d0a12a7c8886ac2b4b58 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001.2_900ns_DigitConfig.py @@ -0,0 +1,24 @@ +########################################## +# Comments +# Requested 6th May 2010 +# Intended to simulate beam conditions in early 2010. +# For use with non-minbias signal samples. +# It is intended that these job options be used with Cavern Background samples with SF=1 +########################################## + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 0.3 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 0.3 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0003 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 0.3 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude="SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py" + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001.2_900ns_MinBias_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001.2_900ns_MinBias_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..1cf260bef345cb80a0a2a8db4b7ba801d9ddbbbe --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001.2_900ns_MinBias_DigitConfig.py @@ -0,0 +1,24 @@ +########################################## +# Comments +# Requested 6th May 2010 +# Intended to simulate beam conditions in early 2010. +# For use only with minbias signal samples. +# It is intended that these job options be used with Cavern Background samples with SF=1 +########################################## + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 0.3 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 0.3 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0003 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 0.3 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude=SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py,SimulationJobOptions/postOptions.MinbiasPileUpOnMinbiasSignal.py + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001DigitConfig_450ns.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001DigitConfig_450ns.py new file mode 100644 index 0000000000000000000000000000000000000000..559a0de9c24c93d338a824b04d28bc3871c75910 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi001DigitConfig_450ns.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 450 +digitizationFlags.numberOfCavern = 4 +digitizationFlags.numberOfCollisions = 4.1 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 4.1 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0041 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 4.1 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -2 +digitizationFlags.finalBunchCrossing = 2 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi002.67DigitConfig_50ns.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi002.67DigitConfig_50ns.py new file mode 100644 index 0000000000000000000000000000000000000000..74838d4c8f855ade776ca580314f986b8ff42886 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi002.67DigitConfig_50ns.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 50 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 1.2 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 1.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0012 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 1.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -16 +digitizationFlags.finalBunchCrossing = 16 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi002.67_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi002.67_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..54fbc5b605f292329fe1c7fa9f73f529c3f8a18a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi002.67_900ns_DigitConfig.py @@ -0,0 +1,24 @@ +######################################### +# Comments +# Requested 6th May 2010 +# Intended to simulate beam conditions in early 2010. +# For use with non-minbias signal samples. +# It is intended that these job options be used with Cavern Background samples with SF=1 +########################################## + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 1.2 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 1.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0012 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 1.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude="SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py" + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi002.67_900ns_MinBias_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi002.67_900ns_MinBias_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..c7fc91e49b1fe72d5b3a1b7039766e8b2e2c12ea --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi002.67_900ns_MinBias_DigitConfig.py @@ -0,0 +1,25 @@ +######################################### +# Comments +# Requested 6th May 2010 +# Intended to simulate beam conditions in early 2010. +# For use only with minbias signal samples. +# It is intended that these job options be used with Cavern Background samples with SF=1 +########################################## + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 1.2 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 1.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0012 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 1.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude=SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py,SimulationJobOptions/postOptions.MinbiasPileUpOnMinbiasSignal.py + + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi005DigitConfig_75ns.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi005DigitConfig_75ns.py new file mode 100644 index 0000000000000000000000000000000000000000..63f75c99ac38bbab355b500bd61f7fe7a1029d0b --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi005DigitConfig_75ns.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 75 +digitizationFlags.numberOfCavern = 3 +digitizationFlags.numberOfCollisions = 3.45 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 3.45 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.00345 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 3.45 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -11 +digitizationFlags.finalBunchCrossing = 11 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi010DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi010DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..b512e324d8d73e85b0c4561af2a391724ad0ad29 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi010DigitConfig.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 +digitizationFlags.numberOfCavern = 2 +digitizationFlags.numberOfCollisions = 2.3 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.3 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0023 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.3 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi010DigitConfig_50ns.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi010DigitConfig_50ns.py new file mode 100644 index 0000000000000000000000000000000000000000..a1a9ccb8899bf55ab9054724cb1a326f9c4c50dd --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi010DigitConfig_50ns.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 50 +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 4.6 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 4.6 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0046 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 4.6 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -16 +digitizationFlags.finalBunchCrossing = 16 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi010DigitConfig_75ns.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi010DigitConfig_75ns.py new file mode 100644 index 0000000000000000000000000000000000000000..f8a49de79d59e6f5ca3245f6605532f9c11f3e60 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi010DigitConfig_75ns.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 75 +digitizationFlags.numberOfCavern = 7 +digitizationFlags.numberOfCollisions = 6.9 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 6.9 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0069 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 6.9 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -11 +digitizationFlags.finalBunchCrossing = 11 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi020DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi020DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..d361b0dc2b58e2e616d5969bece1d6e20198678c --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi020DigitConfig.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 4.6 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 4.6 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0046 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 4.6 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..e2b4ca38d94054baf15347e635e602de4b2fcf4f --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100DigitConfig.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 +digitizationFlags.numberOfCavern = 23 +digitizationFlags.numberOfCollisions = 23.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 23.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.023 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 23.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100_BC0only_Upgrade1_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100_BC0only_Upgrade1_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..a0fa963eb3791f321ce4c95209d3e91e7afd3705 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100_BC0only_Upgrade1_DigitConfig.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 +digitizationFlags.numberOfCavern = 23 +digitizationFlags.numberOfCollisions = 23.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 23.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.023 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 23.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100_Upgrade1_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100_Upgrade1_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..164c4423fa70a55234f0a2d9dfbcac838a973716 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100_Upgrade1_DigitConfig.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 +digitizationFlags.numberOfCavern = 23 +digitizationFlags.numberOfCollisions = 23.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 23.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.023 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 23.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 4 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100_Upgrade2_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100_Upgrade2_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..0c2000ef63f83c7ec5fe5454b7f24eeaaa96681f --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi100_Upgrade2_DigitConfig.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 +digitizationFlags.numberOfCavern = 23 +digitizationFlags.numberOfCollisions = 23.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 23.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.023 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 23.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.0115 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.0115 +digitizationFlags.initialBunchCrossing = -4 +digitizationFlags.finalBunchCrossing = 4 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi200_Upgrade1_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi200_Upgrade1_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..477a849b2dfa3ea2a211909e99f7668892423b23 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.Lumi200_Upgrade1_DigitConfig.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 +digitizationFlags.numberOfCavern = 46 +digitizationFlags.numberOfCollisions = 46.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 46.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.046 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 46.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.023 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.023 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 4 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.LumiTestDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.LumiTestDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..6bc4d9c77b35d2320d81496209d541bc6a52444d --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.LumiTestDigitConfig.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 4.6 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 4.6 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0046 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 4.6 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.023 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.023 +digitizationFlags.initialBunchCrossing = -10 +digitizationFlags.finalBunchCrossing = 10 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.LumiTestDigitConfig_75ns.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.LumiTestDigitConfig_75ns.py new file mode 100644 index 0000000000000000000000000000000000000000..52b9f1f4baf6abc93067220bbb7a94b501b946f1 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.LumiTestDigitConfig_75ns.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 75 +digitizationFlags.numberOfCavern = 5 +digitizationFlags.numberOfCollisions = 4.6 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 4.6 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0046 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 4.6 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.023 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.023 +digitizationFlags.initialBunchCrossing = -10 +digitizationFlags.finalBunchCrossing = 10 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config1_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config1_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..9d853204d8b3771a76d82c01f36971eb8be2d20f --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config1_DigitConfig.py @@ -0,0 +1,53 @@ +#################################################################################### +## Trains of 24 filled bunch crossings with intra train spacings of 150ns expcept +## for a gap of 300ns between the 12th and 13th filled bunch crossings in the train. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time will vary significantly +## from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 25ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 1.5 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 1.5 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [ + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 1 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 2 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 3 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 4 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 5 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 6 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 7 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 8 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 9 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 10 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 11 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 12 (300ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 13 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 14 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 15 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 16 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 17 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 18 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 19 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 20 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 21 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 22 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 23 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 24 (900ns gap i.e. beyond atlas exposure time) + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config2_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config2_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..1d4f8a4096179695edd52e3e473b21620d64a699 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config2_DigitConfig.py @@ -0,0 +1,65 @@ +#################################################################################### +## Trains of 36 filled bunch crossings with intra train spacings of 150ns expcept +## for a gap of 300ns between the 12th and 13th and the 24th and 25th filled bunch +## crossings in the train. Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time will vary significantly +## from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 25ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 1.5 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 1.5 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [ + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 1 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 2 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 3 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 4 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 5 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 6 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 7 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 8 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 9 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 10 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 11 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 12 (300ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 13 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 14 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 15 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 16 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 17 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 18 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 19 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 20 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 21 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 22 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 23 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 24 (300ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 25 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 26 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 27 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 28 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 29 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 30 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 31 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 32 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 33 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 34 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 35 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (900ns gap i.e. beyond atlas exposure time) + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config3_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config3_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..f24bbf86a186e347ffcc0dc968e869166dc01d81 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config3_DigitConfig.py @@ -0,0 +1,36 @@ +#################################################################################### +## Trains of 8 filled bunch crossings with intra train spacings of 150ns. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time will vary significantly +## from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 25ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 1.5 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [ + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 1 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 2 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 3 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 4 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 5 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 6 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 7 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 8 (900ns gap i.e. beyond atlas exposure time) + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config4_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config4_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..d515dba938723ce5dc185f1eac68d82d8930cf6f --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config4_DigitConfig.py @@ -0,0 +1,38 @@ +#################################################################################### +## For comparison with PileUpBunchTrains2010Config3_DigitConfig.py +## Trains of 8 filled bunch crossings with intra train spacings of 150ns. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time will vary significantly +## from event to event. +## Cavern Background is *dependent* on the bunch pattern. (Compatible with 150ns Cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 1.5 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [ + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 1 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 2 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 3 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 4 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 5 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 6 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 7 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 8 (900ns gap i.e. beyond atlas exposure time) + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config5_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config5_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..d8d4735f02de8d764ca16cd958ab5fac0f595671 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config5_DigitConfig.py @@ -0,0 +1,36 @@ +#################################################################################### +## Trains of 8 filled bunch crossings with intra train spacings of 150ns. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time will vary significantly +## from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 25ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [ + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 1 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 2 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 3 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 4 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 5 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 6 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 7 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 8 (900ns gap i.e. beyond atlas exposure time) + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config6_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config6_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..070074338be54bbffdb43df8e853823c9f427d5a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config6_DigitConfig.py @@ -0,0 +1,38 @@ +#################################################################################### +## For comparison with PileUpBunchTrains2010Config5_DigitConfig.py +## Trains of 8 filled bunch crossings with intra train spacings of 150ns. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time will vary significantly +## from event to event. +## Cavern Background is *dependent* on the bunch pattern. (Compatible with 150ns Cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [ + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 1 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 2 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 3 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 4 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 5 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 6 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 7 (150ns gap) + 1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 8 (900ns gap i.e. beyond atlas exposure time) + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config7_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config7_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..1a68ecc20f953f9fe887dc5fcf0515532243ce04 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config7_DigitConfig.py @@ -0,0 +1,50 @@ +#################################################################################### +## Double-train: A train of 8 filled bunch crossings with intra train spacings of +## 150ns, followed by a 225ns gap then a second train of 8 filled bunch crossings +## with intra train spacings of 150ns. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time will vary significantly +## from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 25ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0, +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 1 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 2 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 3 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 4 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 5 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 6 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 7 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 8 (225ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 9 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 10 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 11 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 12 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 13 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 14 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 15 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 16 (975ns gap) +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0]# this gap is long enough to prevent unwanted wrap-around effects + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config8_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config8_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..53dfed1a3f17cfab8d3c444bf48704e263b97331 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010Config8_DigitConfig.py @@ -0,0 +1,52 @@ +#################################################################################### +## For comparison with PileUpBunchTrains2010Config7_DigitConfig.py +## Double-train: A train of 8 filled bunch crossings with intra train spacings of +## 150ns, followed by a 225ns gap then a second train of 8 filled bunch crossings +## with intra train spacings of 150ns. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time will vary significantly +## from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 150ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0, +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 1 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 2 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 3 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 4 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 5 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 6 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 7 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 8 (225ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 9 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 10 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 11 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 12 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 13 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 14 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 15 (150ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 16 (975ns gap) +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0]# this gap is long enough to prevent unwanted wrap-around effects +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010ConfigRun167607_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010ConfigRun167607_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..514e01996a5181b1de1eca000d21be3cc58d1e07 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2010ConfigRun167607_DigitConfig.py @@ -0,0 +1,216 @@ +#################################################################################### +## For comparison with preInclude.PileUpBunchTrains2010ConfigRun167607_DigitConfig.py +## This configuration replicates the beam configuration of Run 167607 +## from 25th October 2010. Trains of 8 filled bunches with intra-train +## bunch spacing of 150ns make up most of the pattern, with variable +## length gaps between these trains. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 50ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.8 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.8 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 + +digitizationFlags.BeamIntensityPattern = [0.0, # bunch crossing zero is always empty + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 5175ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 4875ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 4875ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 975ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, # 8 bunches (150ns spacing), 225ns gap + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] # 8 bunches (150ns spacing), long gap + +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config1_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config1_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..1ce900ba59695667ed61327ae500e99dc99315a0 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config1_DigitConfig.py @@ -0,0 +1,60 @@ +#################################################################################### +## Double-train: A train of 24 filled bunch crossings with intra train spacings of +## 75ns, followed by a 225ns gap then a second train of 24 filled bunch crossings +## with intra train spacings of 75ns. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 25ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0, # bunch crossing zero is always empty +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 1 (75ns gap) 2 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 3 (75ns gap) 4 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 5 (75ns gap) 6 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 7 (75ns gap) 8 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 9 (75ns gap) 10 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 11 (75ns gap) 12 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 13 (75ns gap) 14 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 15 (75ns gap) 16 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 17 (75ns gap) 18 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 19 (75ns gap) 20 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 21 (75ns gap) 22 (75ns gap) +1.0,0.0,0.0, # filled bunch crossing 23 (75ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 24 (225ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 1 (75ns gap) 2 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 3 (75ns gap) 4 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 5 (75ns gap) 6 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 7 (75ns gap) 8 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 9 (75ns gap) 10 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 11 (75ns gap) 12 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 13 (75ns gap) 14 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 15 (75ns gap) 16 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 17 (75ns gap) 18 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 19 (75ns gap) 20 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 21 (75ns gap) 22 (75ns gap) +1.0,0.0,0.0, # filled bunch crossing 23 (75ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 24 (975ns gap) +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0]# this gap is long enough to prevent unwanted wrap-around effects + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 75 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config2_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config2_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..78deadc38549b82c3cb0c010f2725451b515b290 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config2_DigitConfig.py @@ -0,0 +1,62 @@ +#################################################################################### +## For comparison with PileUpBunchTrains2011Config1_DigitConfig.py +## Double-train: A train of 24 filled bunch crossings with intra train spacings of +## 75ns, followed by a 225ns gap then a second train of 24 filled bunch crossings +## with intra train spacings of 75ns. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 75ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0, # bunch crossing zero is always empty +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 1 (75ns gap) 2 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 3 (75ns gap) 4 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 5 (75ns gap) 6 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 7 (75ns gap) 8 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 9 (75ns gap) 10 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 11 (75ns gap) 12 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 13 (75ns gap) 14 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 15 (75ns gap) 16 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 17 (75ns gap) 18 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 19 (75ns gap) 20 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 21 (75ns gap) 22 (75ns gap) +1.0,0.0,0.0, # filled bunch crossing 23 (75ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 24 (225ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 1 (75ns gap) 2 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 3 (75ns gap) 4 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 5 (75ns gap) 6 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 7 (75ns gap) 8 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 9 (75ns gap) 10 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 11 (75ns gap) 12 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 13 (75ns gap) 14 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 15 (75ns gap) 16 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 17 (75ns gap) 18 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 19 (75ns gap) 20 (75ns gap) +1.0,0.0,0.0,1.0,0.0,0.0,# filled bunch crossing 21 (75ns gap) 22 (75ns gap) +1.0,0.0,0.0, # filled bunch crossing 23 (75ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 24 (975ns gap) +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0]# this gap is long enough to prevent unwanted wrap-around effects +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 75 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config3_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config3_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..813370a0834304b8c5dff567b0ee244d8dd8cfc8 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config3_DigitConfig.py @@ -0,0 +1,52 @@ +#################################################################################### +## Double-train: A train of 24 filled bunch crossings with intra train spacings of +## 50ns, followed by a 225ns gap then a second train of 24 filled bunch crossings +## with intra train spacings of 50s. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 25ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0, # bunch crossing zero is always empty +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 22 (50ns gap) 23 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 24 (225ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 22 (50ns gap) 23 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 24 (975ns gap) +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0]# this gap is long enough to prevent unwanted wrap-around effects + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 50 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config4_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config4_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..e97623b1272f601c4e639577c02c2101b946118b --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config4_DigitConfig.py @@ -0,0 +1,54 @@ +#################################################################################### +## For comparison with PileUpBunchTrains2011Config4_DigitConfig.py +## Double-train: A train of 24 filled bunch crossings with intra train spacings of +## 50ns, followed by a 225ns gap then a second train of 24 filled bunch crossings +## with intra train spacings of 50s. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 50ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0, # bunch crossing zero is always empty +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 22 (50ns gap) 23 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 24 (225ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 22 (50ns gap) 23 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 24 (975ns gap) +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0]# this gap is long enough to prevent unwanted wrap-around effects +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 50 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config5_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config5_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..cb29e861c8caccea2141ef0f8a449856ad24740c --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config5_DigitConfig.py @@ -0,0 +1,74 @@ +#################################################################################### +## Triple-Train: A train made up of a sub-trains of 36 filled bunch crossings +## with intra train spacings of 50ns, followed by a 225ns gap then a second sub-train +## of 36 filled bunch crossings with intra train spacings of 50s, followed by a 225ns +## gap then a third sub-train of 36 filled bunch crossings with intra train spacings of 50s. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 25ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0, # bunch crossing zero is always empty +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (225ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (225ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (975ns gap) +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0]# this gap is long enough to prevent unwanted wrap-around effects + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 50 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config6_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config6_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..60557283dde8193acc2c1c1f0abd7fc7bae6988b --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config6_DigitConfig.py @@ -0,0 +1,76 @@ +#################################################################################### +## For comparison with PileUpBunchTrains2011Config6_DigitConfig.py +## Triple-Train: A train made up of a sub-trains of 36 filled bunch crossings +## with intra train spacings of 50ns, followed by a 225ns gap then a second sub-train +## of 36 filled bunch crossings with intra train spacings of 50s, followed by a 225ns +## gap then a third sub-train of 36 filled bunch crossings with intra train spacings of 50s. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 50ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0, # bunch crossing zero is always empty +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (225ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (225ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (975ns gap) +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0]# this gap is long enough to prevent unwanted wrap-around effects +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 50 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config7_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config7_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..3807e647fb948839f750f9449ca8ac799715b8f8 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config7_DigitConfig.py @@ -0,0 +1,77 @@ +#################################################################################### +## For comparison with PileUpBunchTrains2011Config7_DigitConfig.py +## Triple-Train: A train made up of a sub-trains of 36 filled bunch crossings +## with intra train spacings of 50ns (based on fill pattern 1867), followed by a 225ns +## gap then a second sub-train of 36 filled bunch crossings with intra train spacings +## of 50s, followed by a 225ns gap then a third sub-train of 36 filled bunch crossings +## with intra train spacings of 50s. Any of the filled bunch crossings can be chosen as +## the central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## The highest value is 1.351. +## Cavern Background is independent of the bunch pattern. (Compatible with 50ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.000, # bunch crossing zero is always empty +0.761,0.000,1.351,0.000,1.039,0.000,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.300,0.000,0.923,0.000,1.141,0.000,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.023,0.000,1.192,0.000,1.096,0.000,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.238,0.000,1.019,0.000,1.191,0.000,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +0.886,0.000,1.034,0.000,0.929,0.000,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.076,0.000,0.858,0.000,1.031,0.000,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +0.876,0.000,1.036,0.000,0.920,0.000,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.108,0.000,0.831,0.000,0.980,0.000,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +0.792,0.000,0.932,0.000,0.815,0.000,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +0.988,0.000,0.766,0.000,0.918,0.000,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +0.926,0.000,1.069,0.000,0.955,0.000,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.088,0.000,0.873,0.000, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.041,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,# filled bunch crossing 36 (225ns gap) +0.761,0.000,1.351,0.000,1.039,0.000,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.300,0.000,0.923,0.000,1.141,0.000,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.023,0.000,1.192,0.000,1.096,0.000,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.238,0.000,1.019,0.000,1.191,0.000,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +0.886,0.000,1.034,0.000,0.929,0.000,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.076,0.000,0.858,0.000,1.031,0.000,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +0.876,0.000,1.036,0.000,0.920,0.000,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.108,0.000,0.831,0.000,0.980,0.000,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +0.792,0.000,0.932,0.000,0.815,0.000,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +0.988,0.000,0.766,0.000,0.918,0.000,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +0.926,0.000,1.069,0.000,0.955,0.000,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.088,0.000,0.873,0.000, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.041,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,# filled bunch crossing 36 (225ns gap) +0.761,0.000,1.351,0.000,1.039,0.000,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.300,0.000,0.923,0.000,1.141,0.000,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.023,0.000,1.192,0.000,1.096,0.000,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.238,0.000,1.019,0.000,1.191,0.000,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +0.886,0.000,1.034,0.000,0.929,0.000,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.076,0.000,0.858,0.000,1.031,0.000,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +0.876,0.000,1.036,0.000,0.920,0.000,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.108,0.000,0.831,0.000,0.980,0.000,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +0.792,0.000,0.932,0.000,0.815,0.000,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +0.988,0.000,0.766,0.000,0.918,0.000,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +0.926,0.000,1.069,0.000,0.955,0.000,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.088,0.000,0.873,0.000, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.041,0.000,0.000,0.000,0.000,0.000,# filled bunch crossing 36 (975ns gap) +0.000,0.000,0.000,0.000,0.000,0.000, +0.000,0.000,0.000,0.000,0.000,0.000, +0.000,0.000,0.000,0.000,0.000,0.000, +0.000,0.000,0.000,0.000,0.000,0.000, +0.000,0.000,0.000,0.000,0.000,0.000, +0.000,0.000,0.0]# this gap is long enough to prevent unwanted wrap-around effects +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 50 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config8_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config8_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..adb2260c66c98e7f2de1be8a53f5c258eb202988 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config8_DigitConfig.py @@ -0,0 +1,93 @@ +#################################################################################### +## For comparison with PileUpBunchTrains2011Config8_DigitConfig.py +## Quadruple-Train: A train made up of a sub-trains of 36 filled bunch +## crossings with intra train spacings of 50ns, followed by a 225ns gap +## then a second sub-train of 36 filled bunch crossings with intra +## train spacings of 50s, followed by a 225ns gap then a third +## sub-train of 36 filled bunch crossings with intra train spacings of +## 50s, followed by a 225ns gap then a fourth sub-train of 36 filled +## bunch crossings with intra train spacings of 50s. Any of the filled +## bunch crossings can be chosen as the central bunch crossing, so the +## timing of the out-of-time pile-up will vary significantly from event +## to event. +## Cavern Background is independent of the bunch pattern. (Compatible +## with 50ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0, # bunch crossing zero is always empty +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (225ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (225ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (225ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (975ns gap) +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0]# this gap is long enough to prevent unwanted wrap-around effects +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 50 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config9_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config9_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..1ec25c035d30a79a154a3000f3b57e96d3e1064c --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2011Config9_DigitConfig.py @@ -0,0 +1,94 @@ +#################################################################################### +## For comparison with PileUpBunchTrains2011Config9_DigitConfig.py +## Quadruple-Train: A train made up of a sub-trains of 36 filled bunch +## crossings with intra train spacings of 50ns (based on fill pattern +## 1867), followed by a 225ns gap then a second sub-train of 36 filled +## bunch crossings with intra train spacings of 50s, followed by a +## 225ns gap then a third sub-train of 36 filled bunch crossings with +## intra train spacings of 50s, followed by a 225ns gap then a fourth +## sub-train of 36 filled bunch crossings with intra train spacings of +## 50s. Any of the filled bunch crossings can be chosen as the central +## bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## The highest value is 1.351. +## Cavern Background is independent of the bunch pattern. (Compatible +## with 50ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.000, # bunch crossing zero is always empty +0.761,0.000,1.351,0.000,1.039,0.000,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.300,0.000,0.923,0.000,1.141,0.000,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.023,0.000,1.192,0.000,1.096,0.000,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.238,0.000,1.019,0.000,1.191,0.000,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +0.886,0.000,1.034,0.000,0.929,0.000,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.076,0.000,0.858,0.000,1.031,0.000,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +0.876,0.000,1.036,0.000,0.920,0.000,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.108,0.000,0.831,0.000,0.980,0.000,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +0.792,0.000,0.932,0.000,0.815,0.000,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +0.988,0.000,0.766,0.000,0.918,0.000,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +0.926,0.000,1.069,0.000,0.955,0.000,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.088,0.000,0.873,0.000, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.041,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,# filled bunch crossing 36 (225ns gap) +0.761,0.000,1.351,0.000,1.039,0.000,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.300,0.000,0.923,0.000,1.141,0.000,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.023,0.000,1.192,0.000,1.096,0.000,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.238,0.000,1.019,0.000,1.191,0.000,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +0.886,0.000,1.034,0.000,0.929,0.000,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.076,0.000,0.858,0.000,1.031,0.000,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +0.876,0.000,1.036,0.000,0.920,0.000,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.108,0.000,0.831,0.000,0.980,0.000,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +0.792,0.000,0.932,0.000,0.815,0.000,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +0.988,0.000,0.766,0.000,0.918,0.000,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +0.926,0.000,1.069,0.000,0.955,0.000,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.088,0.000,0.873,0.000, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.041,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,# filled bunch crossing 36 (225ns gap) +0.761,0.000,1.351,0.000,1.039,0.000,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.300,0.000,0.923,0.000,1.141,0.000,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.023,0.000,1.192,0.000,1.096,0.000,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.238,0.000,1.019,0.000,1.191,0.000,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +0.886,0.000,1.034,0.000,0.929,0.000,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.076,0.000,0.858,0.000,1.031,0.000,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +0.876,0.000,1.036,0.000,0.920,0.000,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.108,0.000,0.831,0.000,0.980,0.000,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +0.792,0.000,0.932,0.000,0.815,0.000,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +0.988,0.000,0.766,0.000,0.918,0.000,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +0.926,0.000,1.069,0.000,0.955,0.000,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.088,0.000,0.873,0.000, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.041,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,# filled bunch crossing 36 (225ns gap) +0.761,0.000,1.351,0.000,1.039,0.000,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.300,0.000,0.923,0.000,1.141,0.000,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.023,0.000,1.192,0.000,1.096,0.000,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.238,0.000,1.019,0.000,1.191,0.000,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +0.886,0.000,1.034,0.000,0.929,0.000,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.076,0.000,0.858,0.000,1.031,0.000,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +0.876,0.000,1.036,0.000,0.920,0.000,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.108,0.000,0.831,0.000,0.980,0.000,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +0.792,0.000,0.932,0.000,0.815,0.000,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +0.988,0.000,0.766,0.000,0.918,0.000,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +0.926,0.000,1.069,0.000,0.955,0.000,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.088,0.000,0.873,0.000, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.041,0.000,0.000,0.000,0.000,0.000,# filled bunch crossing 36 (975ns gap) +0.000,0.000,0.000,0.000,0.000,0.000, +0.000,0.000,0.000,0.000,0.000,0.000, +0.000,0.000,0.000,0.000,0.000,0.000, +0.000,0.000,0.000,0.000,0.000,0.000, +0.000,0.000,0.000,0.000,0.000,0.000, +0.000,0.000,0.0]# this gap is long enough to prevent unwanted wrap-around effects +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 50 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2012Config1_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2012Config1_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..905380bd5459b229be4f816517f5db45083859e2 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2012Config1_DigitConfig.py @@ -0,0 +1,93 @@ +#################################################################################### +## For comparison with PileUpBunchTrains2012Config1_DigitConfig.py +## Quadruple-Train 25ns intra-train spacing: A train made up of a +## sub-train of 72 filled bunch crossings with intra-train spacings +## of 25ns, followed by a 225ns gap then a second sub-train of 72 +## filled bunch crossings with intra train spacings of 25s, followed +## by a 225ns gap then a third sub-train of 72 filled bunch crossings +## with intra train spacings of 25s, followed by a 225ns gap then a +## fourth sub-train of 72 filled bunch crossings with intra train +## spacings of 25s. Any of the filled bunch crossings can be chosen +## as the central bunch crossing, so the timing of the out-of-time +## pile-up will vary significantly from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible +## with 25ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0, # bunch crossing zero is always empty +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossings 1 - 6 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 7 - 12 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 13 - 18 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 19 - 24 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 25 - 30 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 31 - 36 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 37 - 42 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 43 - 48 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 49 - 54 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 55 - 60 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 61 - 66 (25ns gaps) +1.0,1.0,1.0,1.0,1.0, # filled bunch crossing 67 - 71 (25ns gaps) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 72 (225ns gap) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossings 1 - 6 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 7 - 12 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 13 - 18 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 19 - 24 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 25 - 30 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 31 - 36 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 37 - 42 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 43 - 48 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 49 - 54 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 55 - 60 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 61 - 66 (25ns gaps) +1.0,1.0,1.0,1.0,1.0, # filled bunch crossing 67 - 71 (25ns gaps) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 72 (225ns gap) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossings 1 - 6 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 7 - 12 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 13 - 18 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 19 - 24 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 25 - 30 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 31 - 36 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 37 - 42 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 43 - 48 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 49 - 54 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 55 - 60 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 61 - 66 (25ns gaps) +1.0,1.0,1.0,1.0,1.0, # filled bunch crossing 67 - 71 (25ns gaps) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 72 (225ns gap) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossings 1 - 6 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 7 - 12 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 13 - 18 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 19 - 24 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 25 - 30 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 31 - 36 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 37 - 42 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 43 - 48 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 49 - 54 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 55 - 60 (25ns gaps) +1.0,1.0,1.0,1.0,1.0,1.0,# filled bunch crossing 61 - 66 (25ns gaps) +1.0,1.0,1.0,1.0,1.0, # filled bunch crossing 67 - 71 (25ns gaps) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 72 (975ns gap) +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0]# this gap is long enough to prevent unwanted wrap-around effects +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 25 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2012ConfigRun200987_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2012ConfigRun200987_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..fc6145ca68bc7be63c0288d85e8a657115dac555 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2012ConfigRun200987_DigitConfig.py @@ -0,0 +1,387 @@ +#################################################################################### +## For comparison with preInclude.PileUpBunchTrains2012ConfigRun200987_DigitConfig.py +## This configuration replicates the beam configuration of Run 200987 +## from 9th April 2012. 12 Trains with 6-72 filled bunches each with +## bunch spacing of 50ns make up most of the pattern, with variable +## length gaps between these trains. +## The exact bunch pattern is taken from the run query. +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 50ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.cavernIgnoresBeamInt = True + +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 51.48 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.007209 +digitizationFlags.numberOfCavern = 1 + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCollisions = 51.49 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 + +digitizationFlags.BeamIntensityPattern = [ +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0] # long gap + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 25 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2012ConfigRun208982_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2012ConfigRun208982_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..c22860f54cb687d1c8786f3af4d1f7dfb9d793a0 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrains2012ConfigRun208982_DigitConfig.py @@ -0,0 +1,387 @@ +#################################################################################### +## For comparison with preInclude.PileUpBunchTrains2012ConfigRun208982_DigitConfig.py +## This configuration replicates the beam configuration of Run 208982 +## from 22nd August 2012. 11 Trains with 72 or 144 filled bunches with intra-train +## bunch spacing of 50ns make up most of the pattern, with variable +## length gaps between these trains. +## The exact bunch pattern is taken from run query +## Any of the filled bunch crossings can be chosen as the +## central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 50ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.cavernIgnoresBeamInt = True + +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 23.67 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.003314 +digitizationFlags.numberOfCavern = 1 + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCollisions = 23.7 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 + +digitizationFlags.BeamIntensityPattern = [ +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, +0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, +1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0] # long gap + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 25 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrainsUpgradeConfig1_25ns.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrainsUpgradeConfig1_25ns.py new file mode 100644 index 0000000000000000000000000000000000000000..22c6a5fbb9343ddb1ff954235bc866f69bafd0da --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrainsUpgradeConfig1_25ns.py @@ -0,0 +1,28 @@ +################################################################################### +## preInclude.PileUpBunchTrainsUpgradeConfig1_25ns.py +## 25ns bunch spacing structure taken from +## http://sl.web.cern.ch/SL/sli/cycles.htm moved one empty bunch off +## end and put at start so that first bunch isn't filled filled +## bunches = 2808/3564. Any of the filled bunch crossings can be chosen as +## the central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## Cavern Background is independent of the bunch pattern. (Compatible with 25ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 25 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrainsUpgradeConfig2_25ns.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrainsUpgradeConfig2_25ns.py new file mode 100644 index 0000000000000000000000000000000000000000..053dc3efbce20078db0339c0e7c2def631c5d8a9 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpBunchTrainsUpgradeConfig2_25ns.py @@ -0,0 +1,30 @@ +################################################################################### +## preInclude.PileUpBunchTrainsUpgradeConfig2_25ns.py +## 25ns bunch spacing structure taken from +## http://sl.web.cern.ch/SL/sli/cycles.htm moved one empty bunch off +## end and put at start so that first bunch isn't filled filled +## bunches = 1944/3564. Any of the filled bunch crossings can be chosen as +## the central bunch crossing, so the timing of the out-of-time pile-up will vary +## significantly from event to event. +## Cavern Background depends on the bunch pattern. (Compatible with 25ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] + +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 25 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpTestDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpTestDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..a8b9b4409d385ab01265014f87765ee9c3ee531f --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpTestDigitConfig.py @@ -0,0 +1,20 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 50 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 1.2 +digitizationFlags.initialBunchCrossing = -16 +digitizationFlags.finalBunchCrossing = 16 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 1.1 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [1.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0] +digitizationFlags.cavernIgnoresBeamInt=False +digitizationFlags.FixedT0BunchCrossing=1 + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 50 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpTruthDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpTruthDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..163168c205560f592053378b243c48e3026279ea --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUpTruthDigitConfig.py @@ -0,0 +1,69 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.doCavern = False +digitizationFlags.doBeamHalo = False +digitizationFlags.doBeamGas = False + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +#digitizationFlags.numberOfCavern = 0 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +#digitizationFlags.numberOfBeamHalo = 0 #FIXME need to check on appropriate values +#digitizationFlags.numberOfBeamGas = 0 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0, # bunch crossing zero is always empty +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (225ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (225ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 1 (50ns gap) 2 (50ns gap) 3 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 4 (50ns gap) 5 (50ns gap) 6 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 7 (50ns gap) 8 (50ns gap) 9 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 10 (50ns gap) 11 (50ns gap) 12 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 13 (50ns gap) 14 (50ns gap) 15 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 16 (50ns gap) 17 (50ns gap) 18 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 19 (50ns gap) 20 (50ns gap) 21 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 22 (50ns gap) 23 (50ns gap) 24 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 25 (50ns gap) 26 (50ns gap) 27 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 28 (50ns gap) 29 (50ns gap) 30 (50ns gap) +1.0,0.0,1.0,0.0,1.0,0.0,# filled bunch crossing 31 (50ns gap) 32 (50ns gap) 33 (50ns gap) +1.0,0.0,1.0,0.0, # filled bunch crossing 34 (50ns gap) 35 (50ns gap) +1.0,0.0,0.0,0.0,0.0,0.0,# filled bunch crossing 36 (975ns gap) +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0]# this gap is long enough to prevent unwanted wrap-around effects +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 50 # Set this to the spacing between filled bunch-crossings within the train. + diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100427_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100427_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..bc10caf1e516bf0b4a55dfa1b605eac61a91d080 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100427_DigitConfig.py @@ -0,0 +1,21 @@ +########################################## +# Comments +# Requested as a result of the plans outlined here: +# http://indico.cern.ch/getFile.py/access?contribId=1&resId=0&materialId=slides&confId=72810 +# It is intended that these job options be used with Cavern Background samples with SF=1 +########################################## + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 50 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 5.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.005 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -16 +digitizationFlags.finalBunchCrossing = 16 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100428_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100428_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..580022774ed14d4991fc9af6f5cc6a98fc420f5e --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100428_DigitConfig.py @@ -0,0 +1,23 @@ +########################################## +# Comments +# Requested as a result of the plans outlined here: +# http://indico.cern.ch/getFile.py/access?contribId=1&resId=0&materialId=slides&confId=72810 +# It is intended that these job options be used with Cavern Background samples with SF=1 +# It describes the alternative scenario to PileUp_Requested20100427_DigitConfig.py +########################################## + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 5.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.005 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude="SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py" diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100428_MinBias_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100428_MinBias_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..229976d73c4b9c329bdb7b9cf81e2fd5a4bb57c6 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100428_MinBias_DigitConfig.py @@ -0,0 +1,24 @@ +########################################## +# Comments +# Requested as a result of the plans outlined here: +# http://indico.cern.ch/getFile.py/access?contribId=1&resId=0&materialId=slides&confId=72810 +# It is intended that these job options be used with Cavern Background samples with SF=1 +# Special config to use when running pile-up on minbias signal samples +# It describes the alternative scenario to PileUp_Requested20100427_DigitConfig.py + MinbiasPileUpOnMinbiasSignal.py +########################################## + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 5.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.005 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude=SimulationJobOptions/postOptions.AlwaysReplaceUsedMinBiasAndCavernDigitConfig.py,SimulationJobOptions/postOptions.MinbiasPileUpOnMinbiasSignal.py diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB1_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB1_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..4a9ca719d9ede6c43e8ba4a391b92f94724f251a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB1_900ns_DigitConfig.py @@ -0,0 +1,20 @@ +########################################## +# Comments +# It is intended that these job options be used with Cavern Background samples with SF=1 +# They describe a similar scenario to PileUp_Requested20100428_DigitConfig.py +########################################## +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 1.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 1.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.001 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 1.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumi_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB1_900ns_MinbiasOnMinbiasDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB1_900ns_MinbiasOnMinbiasDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..3c6a045d62f1dcbcefa2b326aba9ee573fabfd26 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB1_900ns_MinbiasOnMinbiasDigitConfig.py @@ -0,0 +1,20 @@ +########################################## +# Comments +# It is intended that these job options be used with Cavern Background samples with SF=1 +# They describe a similar scenario to PileUp_Requested20100428_MinBias_DigitConfig.py +########################################## +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 1.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 1.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.001 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 1.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB2_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB2_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..c731d3c04279958e6384738900f89147c999dc6b --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB2_900ns_DigitConfig.py @@ -0,0 +1,20 @@ +########################################## +# Comments +# It is intended that these job options be used with Cavern Background samples with SF=1 +# They describe a similar scenario to PileUp_Requested20100428_DigitConfig.py +########################################## +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 2.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.002 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumi_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB2_900ns_MinbiasOnMinbiasDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB2_900ns_MinbiasOnMinbiasDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..1d7c1949e11845dcf4ac49ebc795cefb6dea5fa4 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB2_900ns_MinbiasOnMinbiasDigitConfig.py @@ -0,0 +1,20 @@ +########################################## +# Comments +# It is intended that these job options be used with Cavern Background samples with SF=1 +# They describe a similar scenario to PileUp_Requested20100428_MinBias_DigitConfig.py +########################################## +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 2.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.002 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB3_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB3_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..a314d71585b31636f53ddadbc24bf045193f1f50 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB3_900ns_DigitConfig.py @@ -0,0 +1,20 @@ +########################################## +# Comments +# It is intended that these job options be used with Cavern Background samples with SF=1 +# They describe a similar scenario to PileUp_Requested20100428_DigitConfig.py +########################################## +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 3.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 3.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.003 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 3.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumi_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB3_900ns_MinbiasOnMinbiasDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB3_900ns_MinbiasOnMinbiasDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..0df3a793c3f9342828787d05e320de6e53ca962f --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB3_900ns_MinbiasOnMinbiasDigitConfig.py @@ -0,0 +1,20 @@ +########################################## +# Comments +# It is intended that these job options be used with Cavern Background samples with SF=1 +# They describe a similar scenario to PileUp_Requested20100428_MinBias_DigitConfig.py +########################################## +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 3.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 3.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.003 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 3.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB4_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB4_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..16441ebcbac86d6c16fca9a7db365a6f83078f66 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB4_900ns_DigitConfig.py @@ -0,0 +1,20 @@ +########################################## +# Comments +# It is intended that these job options be used with Cavern Background samples with SF=1 +# They describe a similar scenario to PileUp_Requested20100428_DigitConfig.py +########################################## +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 4.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 4.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.004 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 4.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumi_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB4_900ns_MinbiasOnMinbiasDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB4_900ns_MinbiasOnMinbiasDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..16c06367ea878d0265570fab4dbafeab5ff9d427 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB4_900ns_MinbiasOnMinbiasDigitConfig.py @@ -0,0 +1,20 @@ +########################################## +# Comments +# It is intended that these job options be used with Cavern Background samples with SF=1 +# They describe a similar scenario to PileUp_Requested20100428_MinBias_DigitConfig.py +########################################## +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 4.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 4.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.004 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 4.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB5_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB5_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..b74154b7dd890dab0abc3416ae0f824f411da6f2 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB5_900ns_DigitConfig.py @@ -0,0 +1,20 @@ +########################################## +# Comments +# It is intended that these job options be used with Cavern Background samples with SF=1 +# They describe a similar scenario to PileUp_Requested20100428_DigitConfig.py +########################################## +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 5.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.005 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumi_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB5_900ns_MinbiasOnMinbiasDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB5_900ns_MinbiasOnMinbiasDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..d55bc1b067f5cabb113b068c03ea39b81598a5ed --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100531_nMB5_900ns_MinbiasOnMinbiasDigitConfig.py @@ -0,0 +1,20 @@ +########################################## +# Comments +# It is intended that these job options be used with Cavern Background samples with SF=1 +# They describe a similar scenario to PileUp_Requested20100428_MinBias_DigitConfig.py +########################################## +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 1 +digitizationFlags.numberOfCollisions = 5.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.005 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 5.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_1E34_25ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_1E34_25ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..53b471eb53cfee831e9c828a42f6652a47a115ed --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_1E34_25ns_DigitConfig.py @@ -0,0 +1,21 @@ +########################################## +# Comments +# Requested for IBL Digitization studies - to be used with InDetIBL_Example/IBL_Digitization.py +# Lumi: 1E34cm^-2s^-1 Bunch Spacing: 50ns +# Pile-Up Simulation Window: [-50ns,+50ns] (includes bunch crossing at +50ns) +########################################## + +from Digitization.DigitizationFlags import digitizationFlags +## Pile-up configuration +digitizationFlags.bunchSpacing = 25 +digitizationFlags.numberOfCavern = 23 +digitizationFlags.numberOfCollisions = 23.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 23.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.023 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 23.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -2 +digitizationFlags.finalBunchCrossing = 2 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_1E34_50ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_1E34_50ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..369237d69b98c88177ff2ac1cb1c9722285ce047 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_1E34_50ns_DigitConfig.py @@ -0,0 +1,21 @@ +########################################## +# Comments +# Requested for IBL Digitization studies - to be used with InDetIBL_Example/IBL_Digitization.py +# Lumi: 1E34cm^-2s^-1 Bunch Spacing: 50ns +# Pile-Up Simulation Window: [-50ns,+50ns] (includes bunch crossing at +50ns) +########################################## + +from Digitization.DigitizationFlags import digitizationFlags +## Pile-up configuration +digitizationFlags.bunchSpacing = 50 +digitizationFlags.numberOfCavern = 46 +digitizationFlags.numberOfCollisions = 46.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 46.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.046 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 46.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -1 +digitizationFlags.finalBunchCrossing = 1 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_2E34_25ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_2E34_25ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..f1a85d4d8da95a6cafa89efd5a8ffda7e5d7c835 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_2E34_25ns_DigitConfig.py @@ -0,0 +1,21 @@ +########################################## +# Comments +# Requested for IBL Digitization studies - to be used with InDetIBL_Example/IBL_Digitization.py +# Lumi: 2E34cm^-2s^-1 Bunch Spacing: 25ns +# Pile-Up Simulation Window: [-50ns,+50ns] (includes bunch crossing at +50ns) +########################################## + +from Digitization.DigitizationFlags import digitizationFlags +## Pile-up configuration +digitizationFlags.bunchSpacing = 25 +digitizationFlags.numberOfCavern = 46 +digitizationFlags.numberOfCollisions = 46.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 46.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.046 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 46.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -2 +digitizationFlags.finalBunchCrossing = 2 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_2E34_50ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_2E34_50ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..08e8e6d9a8989e1df67b1ba608e26c984718b423 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20100604_2E34_50ns_DigitConfig.py @@ -0,0 +1,21 @@ +########################################## +# Comments +# Requested for IBL Digitization studies - to be used with InDetIBL_Example/IBL_Digitization.py +# Lumi: 2E34cm^-2s^-1 Bunch Spacing: 50ns +# Pile-Up Simulation Window: [-50ns,+50ns] (includes bunch crossing at +50ns) +########################################## + +from Digitization.DigitizationFlags import digitizationFlags +## Pile-up configuration +digitizationFlags.bunchSpacing = 50 +digitizationFlags.numberOfCavern = 92 +digitizationFlags.numberOfCollisions = 92.0 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 92.0 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.092 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 92.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.initialBunchCrossing = -1 +digitizationFlags.finalBunchCrossing = 1 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20101018_nMB1.5_150ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20101018_nMB1.5_150ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..f8fa65b3f128dc7d50aec0c538208f86415eec2b --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20101018_nMB1.5_150ns_DigitConfig.py @@ -0,0 +1,25 @@ +#################################################################################### +## Base for comparison with PileUpBunchTrains2010Config3_DigitConfig.py +## Constant 150ns spacing between filled bunch crossings. +## Cavern Background is *dependent* on the bunch pattern. (Compatible with 150ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 1.5 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 1.5 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0,1.0,0.0,0.0,0.0,0.0]# filled bunch crossing 1 (150ns gap) +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20101026_nMB2.0_150ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20101026_nMB2.0_150ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..6cf1105315331cd4522716a838d22369dc95296e --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20101026_nMB2.0_150ns_DigitConfig.py @@ -0,0 +1,25 @@ +#################################################################################### +## Base for comparison with PileUpBunchTrains2010Config5_DigitConfig.py +## Constant 150ns spacing between filled bunch crossings. +## Cavern Background is *dependent* on the bunch pattern. (Compatible with 150ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.0 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.0 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0,1.0,0.0,0.0,0.0,0.0]# filled bunch crossing 1 (150ns gap) +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20101117_nMB2.2_150ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20101117_nMB2.2_150ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..da4798834cb5d5fc552d6b54e5ade6b516c3e2d2 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_Requested20101117_nMB2.2_150ns_DigitConfig.py @@ -0,0 +1,25 @@ +#################################################################################### +## Base for comparison with PileUpBunchTrains2010Config5_DigitConfig.py +## Constant 150ns spacing between filled bunch crossings. +## Cavern Background is *dependent* on the bunch pattern. (Compatible with 150ns cavern background.) +#################################################################################### + +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 25 # This now sets the bunch slot length. +digitizationFlags.numberOfCavern = 1 #FIXME need to check on appropriate values +digitizationFlags.numberOfCollisions = 2.2 +digitizationFlags.initialBunchCrossing = -32 +digitizationFlags.finalBunchCrossing = 32 +digitizationFlags.numberOfBeamHalo = 0.05 #FIXME need to check on appropriate values +digitizationFlags.numberOfBeamGas = 0.0003 #FIXME need to check on appropriate values +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.0022 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 2.2 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.05 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.05 +digitizationFlags.BeamIntensityPattern = [0.0,1.0,0.0,0.0,0.0,0.0]# filled bunch crossing 1 (150ns gap) +digitizationFlags.cavernIgnoresBeamInt=False + +from AthenaCommon.BeamFlags import jobproperties +jobproperties.Beam.bunchSpacing = 150 # Set this to the spacing between filled bunch-crossings within the train. diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_ZeroLumiCheck_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_ZeroLumiCheck_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..c005f44fc867ab5c1b917b875e36fffd605dbeae --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.PileUp_ZeroLumiCheck_900ns_DigitConfig.py @@ -0,0 +1,16 @@ +########################################## +# Comments +# This configuration is for debugging unexpected differences seen in Primary +# Tracking physics validation results when pile-up is added (only a cavern +# background input file should be provided on the command-line) +########################################## +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 0 +digitizationFlags.numberOfCollisions = 0.0001 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.0001 +digitizationFlags.numberOfBeamGas = 0.0001 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumi_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumiDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumiDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..4889ae4b61cbca5f07449d3fd6337f2eb39edbba --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumiDigitConfig.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 50 +digitizationFlags.numberOfCavern = 0 +digitizationFlags.numberOfCollisions = 0.002 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 0.002 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.00002 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 0.002 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.0005 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.0005 +digitizationFlags.initialBunchCrossing = -16 +digitizationFlags.finalBunchCrossing = 16 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.Truth.pTmin100MeV.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumiMinbiasOnMinbiasDigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumiMinbiasOnMinbiasDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..841d9ef94e26f7a70c2e627e60c3c60f9cae461e --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumiMinbiasOnMinbiasDigitConfig.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 50 +digitizationFlags.numberOfCavern = 0 +digitizationFlags.numberOfCollisions = 0.002 #altered to give a ratio of N(2MB vtxs)/N(1MB vtx)=0.001 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 0.002 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.00002 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 0.002 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.0005 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.0005 +digitizationFlags.initialBunchCrossing = -16 +digitizationFlags.finalBunchCrossing = 16 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumiMinbiasOnMinbiasDigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..4fa16d6ffe36409ac84c2b5279122f4a77920a1c --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py @@ -0,0 +1,15 @@ +from Digitization.DigitizationFlags import digitizationFlags + +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 0 +digitizationFlags.numberOfCollisions = 0.002 #altered to give a ratio of N(2MB vtxs)/N(1MB vtx)=0.001 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 0.002 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.00002 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 0.002 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.0005 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.0005 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumiMinbiasOnMinbias_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumi_900ns_DigitConfig.py b/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumi_900ns_DigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..287842a0828fafbc944f391ae1ccd1eb9009a681 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/pileup/preInclude.VeryLowLumi_900ns_DigitConfig.py @@ -0,0 +1,14 @@ +from Digitization.DigitizationFlags import digitizationFlags +digitizationFlags.bunchSpacing = 900 +digitizationFlags.numberOfCavern = 0 +digitizationFlags.numberOfCollisions = 0.002 +if hasattr(digitizationFlags, 'numberOfLowPtMinBias'): digitizationFlags.numberOfLowPtMinBias = 0.002 +if hasattr(digitizationFlags, 'numberOfHighPtMinBias'): digitizationFlags.numberOfHighPtMinBias = 0.00002 +if hasattr(digitizationFlags, 'numberOfNDMinBias'): digitizationFlags.numberOfNDMinBias = 0.002 +if hasattr(digitizationFlags, 'numberOfSDMinBias'): digitizationFlags.numberOfSDMinBias = 0.0005 +if hasattr(digitizationFlags, 'numberOfDDMinBias'): digitizationFlags.numberOfDDMinBias = 0.0005 +digitizationFlags.initialBunchCrossing = 0 +digitizationFlags.finalBunchCrossing = 0 +digitizationFlags.numberOfBeamHalo = 0.05 +digitizationFlags.numberOfBeamGas = 0.0003 +## h2r_postInclude='SimulationJobOptions/postOptions.VeryLowLumi_900ns_DigitConfig.py' diff --git a/Simulation/SimulationJobOptions/share/postInclude.JetFormatConverter.py b/Simulation/SimulationJobOptions/share/postInclude.JetFormatConverter.py new file mode 100644 index 0000000000000000000000000000000000000000..df7780e6febc1e4a9c775d54348446e11576a329 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/postInclude.JetFormatConverter.py @@ -0,0 +1,18 @@ +#################################### +## postInclude.JetFormatConverter.py +#################################### + +from xAODJetCnv.xAODJetCnvConf import xAODMaker__JetCnvAlg,xAODMaker__JetCnvTool +jetcnvtool = xAODMaker__JetCnvTool() +from AthenaCommon.AppMgr import ServiceMgr +ServiceMgr.ToolSvc += jetcnvtool +jcnv = xAODMaker__JetCnvAlg(OutputLevel=ERROR, + InputJetCollection="AntiKt4TruthJets", + ConstituentContainer="none", + JetCnvTool= jetcnvtool, + ) +from AthenaCommon.AlgSequence import AlgSequence +theJob = AlgSequence() +theJob += jcnv +Stream1.ExcludeList = ['JetCollection#*'] +Stream1.ItemList+=["xAOD::JetContainer_v1#AntiKt4TruthJets"] diff --git a/Simulation/SimulationJobOptions/share/postInclude.UseNewReseeding.py b/Simulation/SimulationJobOptions/share/postInclude.UseNewReseeding.py new file mode 100644 index 0000000000000000000000000000000000000000..17bb07baf56c8821ac470d78644c270f7e33056a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/postInclude.UseNewReseeding.py @@ -0,0 +1,22 @@ +####################################################### +## postInclude.UseNewReseeding.py +## +## John Chapman +## +## Force use of the new event reseeding. +## +####################################################### +from AthenaCommon.AppMgr import ServiceMgr + +if hasattr(ServiceMgr, "AtRndmGenSvc"): + print "Forcing use of new Event Reseeding for AtRndmGenSvc!" + ServiceMgr.AtRndmGenSvc.UseOldBrokenSeeding = False + ServiceMgr.AtRndmGenSvc.EventReseeding = True + print ServiceMgr.AtRndmGenSvc + +if hasattr(ServiceMgr, "AtRanluxGenSvc"): + print "Forcing use of new Event Reseeding for AtRanluxGenSvc!" + ServiceMgr.AtRanluxGenSvc.UseOldBrokenSeeding = False + ServiceMgr.AtRanluxGenSvc.EventReseeding = True + print ServiceMgr.AtRanluxGenSvc + diff --git a/Simulation/SimulationJobOptions/share/preInclude.allowGeometryMismatch.py b/Simulation/SimulationJobOptions/share/preInclude.allowGeometryMismatch.py new file mode 100644 index 0000000000000000000000000000000000000000..a960a8cf0c3ad63574284193f5e11a46b07a5ec3 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/preInclude.allowGeometryMismatch.py @@ -0,0 +1,2 @@ +from GeoModelSvc.GeoModelSvcConf import GeoModelSvc +GeoModelSvc.IgnoreTagDifference=True diff --git a/Simulation/SimulationJobOptions/share/preInclude.muAlign.py b/Simulation/SimulationJobOptions/share/preInclude.muAlign.py new file mode 100644 index 0000000000000000000000000000000000000000..278792f0f7612a7f34c0866eba1a6f3fa2ada1d4 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/preInclude.muAlign.py @@ -0,0 +1,20 @@ +print "Reading alignment constants from DB" +from IOVDbSvc.CondDB import conddb +conddb.addFolderSplitOnline('MUONALIGN','/MUONALIGN/Onl/MDT/BARREL','/MUONALIGN/MDT/BARREL') +conddb.addFolderSplitOnline('MUONALIGN','/MUONALIGN/Onl/MDT/ENDCAP/SIDEA','/MUONALIGN/MDT/ENDCAP/SIDEA') +conddb.addFolderSplitOnline('MUONALIGN','/MUONALIGN/Onl/MDT/ENDCAP/SIDEC','/MUONALIGN/MDT/ENDCAP/SIDEC') +conddb.addFolderSplitOnline('MUONALIGN','/MUONALIGN/Onl/TGC/SIDEA','/MUONALIGN/TGC/SIDEA') +conddb.addFolderSplitOnline('MUONALIGN','/MUONALIGN/Onl/TGC/SIDEC','/MUONALIGN/TGC/SIDEC') +from MuonCondTool.MuonCondToolConf import MuonAlignmentDbTool +MuonAlignmentDbTool = MuonAlignmentDbTool("MGM_AlignmentDbTool") +MuonAlignmentDbTool.ParlineFolders = ["/MUONALIGN/MDT/BARREL", + "/MUONALIGN/MDT/ENDCAP/SIDEA", + "/MUONALIGN/MDT/ENDCAP/SIDEC", + "/MUONALIGN/TGC/SIDEA", + "/MUONALIGN/TGC/SIDEC"] +ToolSvc += MuonAlignmentDbTool +MGM_AlignmentDbTool = ToolSvc.MGM_AlignmentDbTool +MGM_AlignmentDbTool.OutputLevel=DEBUG +from AtlasGeoModel.MuonGM import GeoModelSvc +MuonDetectorTool = GeoModelSvc.DetectorTools[ "MuonDetectorTool" ] +MuonDetectorTool.UseConditionDb = 1 diff --git a/Simulation/SimulationJobOptions/share/specialConfig/preInclude.AMSB.py b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.AMSB.py new file mode 100644 index 0000000000000000000000000000000000000000..c51574f32026092c63628b925a6a116a863912a8 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.AMSB.py @@ -0,0 +1,107 @@ +################################################################# +# preInclude.AMSB.py - Chiara Debenedetti, 3 Jun 2011 # +################################################################# + + +def get_and_fix_PDGTABLE(replace): + import os, shutil + + # Download generic PDGTABLE (overwrite existing one if it exists) + os.system('get_files -remove -data PDGTABLE.MeV') + shutil.move('PDGTABLE.MeV', 'PDGTABLE.MeV.org') + + # 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 + + 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.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 +try: + f = af.fopen(athenaCommonFlags.FilesInput()[0]) + + if "StreamHITS" in f.infos["stream_names"]: + from Digitization.DigitizationFlags import digitizationFlags + simdict = digitizationFlags.specialConfiguration.get_Value() + doG4SimConfig = False + else: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration +except: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration + +load_files_for_AMSB_scenario(simdict) + +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(): + from G4AtlasApps import AtlasG4Eng + from GaudiKernel.SystemOfUnits import GeV, ns + C1Mass = eval(AtlasG4Eng.G4Eng.Dict_SpecialConfiguration["AMSBC1Mass"]) + N1Mass = eval(AtlasG4Eng.G4Eng.Dict_SpecialConfiguration["AMSBN1Mass"]) + C1Lifetime = eval(AtlasG4Eng.G4Eng.Dict_SpecialConfiguration["AMSBC1Lifetime"]) + + + AtlasG4Eng.G4Eng._ctrl.load("Charginos") + charginoPlus = AtlasG4Eng.G4Eng.gbl.ParticleDataModifier("s_chi_plus_1") + charginoPlus.SetParticleMass(C1Mass) + if C1Lifetime == -1: + charginoPlus.Stable(True) + else: + charginoPlus.SetParticleLifeTime(C1Lifetime) + charginoPlus.Stable(False) + charginoPlus.AddDecayChannel("s_chi_plus_1", 1., "s_chi_0_1=pi+") + + charginoMinus = AtlasG4Eng.G4Eng.gbl.ParticleDataModifier("s_chi_minus_1") + charginoMinus.SetParticleMass(C1Mass) + if C1Lifetime == -1: + charginoMinus.Stable(True) + else: + charginoMinus.SetParticleLifeTime(C1Lifetime) + charginoMinus.Stable(False) + charginoMinus.AddDecayChannel("s_chi_minus_1", 1., "s_chi_0_1=pi-") + + neutralino = AtlasG4Eng.G4Eng.gbl.ParticleDataModifier("s_chi_0_1") + neutralino.SetParticleMass(N1Mass) + neutralino.Stable(True) + + + simFlags.InitFunctions.add_function("preInitPhysics", amsb_setparams) + + def amsb_applycalomctruthstrategy(): +## Applying the MCTruth strategies: add decays in the Calorimeter + from G4AtlasApps import AtlasG4Eng + myDecay = AtlasG4Eng.G4Eng.Dict_MCTruthStrg.get('Decay') + myDecay.add_Volumes('CALO::CALO', 1) + + simFlags.InitFunctions.add_function("postInit", amsb_applycalomctruthstrategy) + +del doG4SimConfig, simdict diff --git a/Simulation/SimulationJobOptions/share/specialConfig/preInclude.GMSB.py b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.GMSB.py new file mode 100644 index 0000000000000000000000000000000000000000..ab18508bf70e847a5c1d858e85ac4b2d9703b603 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.GMSB.py @@ -0,0 +1,166 @@ +################################################################# +# preInclude.GMSB.py - Chiara Debenedetti, 3 Jun 2011 # +################################################################# + +def get_and_fix_PDGTABLE(replace): + import os, shutil + + # Download generic PDGTABLE (overwrite existing one if it exists) + os.system('get_files -remove -data PDGTABLE.MeV') + shutil.move('PDGTABLE.MeV', 'PDGTABLE.MeV.org') + + # 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 + + 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.close() + +def load_files_for_GMSB_scenario(simdict): + + GMSBIndex = int(simdict["GMSBIndex"]) + + if GMSBIndex == 1: + get_and_fix_PDGTABLE([('M', '1000022', eval(simdict["GMSBNeutralino"])), ('M', '1000039', eval(simdict.get("GMSBGravitino",'0')))]) + + elif GMSBIndex == 2: + m_stau = eval(simdict["GMSBStau"]) + m_slepton = eval(simdict["GMSBSlepton"]) + get_and_fix_PDGTABLE([('M', '1000015', m_stau), ('M', '2000011', m_slepton), ('M', '2000013', m_slepton)]) + + elif GMSBIndex == 3: + m_stau = eval(simdict["GMSBStau"]) + m_slepton = eval(simdict["GMSBSlepton"]) + m_squark = eval(simdict["SQUARKMASS"]) + m_neutralino = eval(simdict["NEUTRALINOMASS"]) + m_gluino = eval(simdict["GLUINOMASS"]) + get_and_fix_PDGTABLE([('M', '1000001', m_squark), ('M', '2000001', m_squark), ('M', '1000002', m_squark), \ + ('M', '2000002', m_squark), ('M', '1000022', m_neutralino), ('M', '1000021', m_gluino), \ + ('M', '1000003', 1.00E+04 ), ('M', '2000003', 1.00E+04 ), ('M', '1000004', 1.00E+04 ), \ + ('M', '2000004', 1.00E+04 ), ('M', '1000005', 1.00E+04 ), ('M', '2000005', 1.00E+04 ), \ + ('M', '1000006', 1.00E+04 ), ('M', '2000006', 1.00E+04 ), ('M', '1000011', 2.50E+02 ), \ + ('M', '1000012', 1.00E+04 ), ('M', '1000013', 2.50E+02 ), ('M', '1000014', 1.00E+04 ), \ + ('M', '1000015', m_stau ), ('M', '1000016', 1.00E+04 ), ('M', '2000011', m_slepton ), \ + ('M', '2000013', m_slepton ), ('M', '2000015', 2.50E+02 ), ('M', '1000023', 1.00E+04 ), \ + ('M', '1000024', 1.00E+04 ), ('M', '1000025', -1.0E+04 ), ('M', '1000035', 1.00E+04 ), \ + ('M', '1000037', 1.00E+04 ) ]) + + elif GMSBIndex == 4: + get_and_fix_PDGTABLE([('M', '1000015', eval(simdict["GMSBStau"]))]) + + else: + print 'GMSBIndex %i not supported' % GMSBIndex + raise + +doG4SimConfig = True +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +import PyUtils.AthFile as af +try: + f = af.fopen(athenaCommonFlags.FilesInput()[0]) + + if "StreamHITS" in f.infos["stream_names"]: + from Digitization.DigitizationFlags import digitizationFlags + simdict = digitizationFlags.specialConfiguration.get_Value() + doG4SimConfig = False + else: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration +except: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration + +assert "GMSBIndex" in simdict +#if 2525 == simdict["GMSBIndex"]: + +load_files_for_GMSB_scenario(simdict) + +if doG4SimConfig: + from G4AtlasApps.SimFlags import simFlags + def gmsb_processlist(): + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng.gbl.G4Commands().process.list() + + simFlags.InitFunctions.add_function("postInit", gmsb_processlist) + + def gmsb_setparams(): + from G4AtlasApps import AtlasG4Eng + from GaudiKernel.SystemOfUnits import GeV, ns + + ## Assuming that GMSBIndex is an int here... + GMSBIndex = int(AtlasG4Eng.G4Eng.Dict_SpecialConfiguration["GMSBIndex"]) + + def modify_slepton_mass(name, mass): + slepton = AtlasG4Eng.G4Eng.gbl.ParticleDataModifier(name) + slepton.SetParticleMass(mass) + + + if GMSBIndex == 1: # generic neutralino to photon scenario + + GMSBNeutralino = eval(AtlasG4Eng.G4Eng.Dict_SpecialConfiguration["GMSBNeutralino"]) + GMSBTime = eval(AtlasG4Eng.G4Eng.Dict_SpecialConfiguration["GMSBLifeTime"]) + AtlasG4Eng.G4Eng.log.info("Generic GMSB neutralino to photon scenario (mass=%s MeV/time=%s ns)" % (GMSBNeutralino, GMSBTime)) + + AtlasG4Eng.G4Eng._ctrl.load("Gauginos") + NLsp=AtlasG4Eng.G4Eng.gbl.ParticleDataModifier("s_chi_0_1") + NLsp.SetParticleMass(GMSBNeutralino) + NLsp.SetParticleLifeTime(GMSBTime) + NLsp.Stable(False) + NLsp.AddDecayChannel("s_chi_0_1",1.,"s_G=gamma") + + if AtlasG4Eng.G4Eng.Dict_SpecialConfiguration.has_key("GMSBGravitino"): + GMSBGravitino = eval(AtlasG4Eng.G4Eng.Dict_SpecialConfiguration["GMSBGravitino"]) + AtlasG4Eng.G4Eng.log.info("Adding gravitino mass (gravitino mass=%s keV)" % (GMSBGravitino*1E3)) + + Lsp=AtlasG4Eng.G4Eng.gbl.ParticleDataModifier("s_G") + Lsp.SetParticleMass(GMSBGravitino) + + del GMSBGravitino + + del GMSBNeutralino, GMSBTime + + elif GMSBIndex == 2 or GMSBIndex == 3 or GMSBIndex == 4: # generic stau scenario + + GMSBStau = eval(AtlasG4Eng.G4Eng.Dict_SpecialConfiguration["GMSBStau"]) + AtlasG4Eng.G4Eng.log.info("Generic GMSB stau scenario (stau=%s MeV)" % GMSBStau) + + AtlasG4Eng.G4Eng._ctrl.load("Sleptons") + modify_slepton_mass("s_tau_plus_1", GMSBStau) + modify_slepton_mass("s_tau_minus_1", GMSBStau) + + if AtlasG4Eng.G4Eng.Dict_SpecialConfiguration.has_key("GMSBSlepton"): + GMSBSlepton = eval(AtlasG4Eng.G4Eng.Dict_SpecialConfiguration.get("GMSBSlepton", None)) + AtlasG4Eng.G4Eng.log.info("Adding slepton mass to GMSB stau scenario (slepton=%s MeV)" % GMSBSlepton) + + modify_slepton_mass("s_mu_plus_R", GMSBSlepton) + modify_slepton_mass("s_mu_minus_R", GMSBSlepton) + modify_slepton_mass("s_e_plus_R", GMSBSlepton) + modify_slepton_mass("s_e_minus_R", GMSBSlepton) + + del GMSBSlepton + + del GMSBStau + + del GMSBIndex + + + simFlags.InitFunctions.add_function("preInitPhysics", gmsb_setparams) + + def gmsb_applycalomctruthstrategy(): + ## Applying the MCTruth strategies: add decays in the Calorimeter + from G4AtlasApps import AtlasG4Eng + myDecay = AtlasG4Eng.G4Eng.Dict_MCTruthStrg.get('Decay') + myDecay.add_Volumes('CALO::CALO', 1) + + simFlags.InitFunctions.add_function("postInit", gmsb_applycalomctruthstrategy) + +del doG4SimConfig, simdict diff --git a/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Monopole.py b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Monopole.py new file mode 100644 index 0000000000000000000000000000000000000000..d1947b1622cb75435c5388532f55e8173691a213 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Monopole.py @@ -0,0 +1,96 @@ +######################################################################### +# preInclude.Monopole.py - Chiara Debenedetti, 3 Jun 2011 # +######################################################################### + +def load_files_for_monopole_scenario(MASS, GCHARGE): + import os, shutil, sys + + ALINE1="M 4110000 {intmass}.E+03 +0.0E+00 -0.0E+00 Monopole 0".format(intmass=int(MASS)) + ALINE2="W 4110000 0.E+00 +0.0E+00 -0.0E+00 Monopole 0" + BLINE1="4110000 {intmass}.00 0.0 {gcharge} # Monopole".format(intmass=int(MASS), gcharge=GCHARGE) + BLINE2="-4110000 {intmass}.00 0.0 -{gcharge} # MonopoleBar".format(intmass=int(MASS), gcharge=GCHARGE) + + pdgmod = os.path.isfile('PDGTABLE.MeV') + if pdgmod is True: + os.remove('PDGTABLE.MeV') + os.system('get_files -data PDGTABLE.MeV') + f=open('PDGTABLE.MeV','a') + f.writelines(str(ALINE1)) + f.writelines('\n') + f.writelines(str(ALINE2)) + f.writelines('\n') + f.close() + partmod = os.path.isfile('particles.txt') + if partmod is True: + os.remove('particles.txt') + f=open('particles.txt','w') + f.writelines(str(BLINE1)) + f.writelines('\n') + f.writelines(str(BLINE2)) + f.writelines('\n') + f.close() + + del ALINE1 + del ALINE2 + del BLINE1 + del BLINE2 + +doG4SimConfig = True +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +import PyUtils.AthFile as af +try: + f = af.fopen(athenaCommonFlags.FilesInput()[0]) + + if "StreamHITS" in f.infos["stream_names"]: + from Digitization.DigitizationFlags import digitizationFlags + simdict = digitizationFlags.specialConfiguration.get_Value() + doG4SimConfig = False + else: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration +except: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration + +assert "MASS" in simdict +assert "GCHARGE" in simdict +load_files_for_monopole_scenario(simdict["MASS"], simdict["GCHARGE"]) + +if doG4SimConfig: + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng.log.info("Unlocking simFlags.EquationOfMotion to reset the value for Monopole simulation.") + from G4AtlasApps.SimFlags import simFlags + # FIXME ideally would include this file early enough, so that the unlocking is not required + simFlags.EquationOfMotion.unlock() + simFlags.EquationOfMotion.set_On() + simFlags.EquationOfMotion.set_Value_and_Lock("MonopoleEquationOfMotion") + + def monopole_setupg4(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + AtlasG4Eng.G4Eng.load_Lib("Monopole") + + simFlags.InitFunctions.add_function("preInitPhysics", monopole_setupg4) + + def setup_stepper_classicalrk4(): + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng._ctrl.fldMenu.UseStepper('ClassicalRK4') + AtlasG4Eng.G4Eng._ctrl.fldMenu.UseStepper('IDET::IDET', 'ClassicalRK4') + + simFlags.InitFunctions.add_function("postInit", setup_stepper_classicalrk4) + + def setup_looperkiller(): + from G4AtlasApps import PyG4Atlas,AtlasG4Eng + myLooperKiller = PyG4Atlas.UserAction('G4UserActions', 'LooperKiller', ['BeginOfRun','EndOfRun','BeginOfEvent','EndOfEvent','Step']) + myLooperKiller.set_Properties({"MaxSteps":"2000000","PrintSteps":"2","VerboseLevel":"0"}) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myLooperKiller) + + simFlags.InitFunctions.add_function("postInit", setup_looperkiller) + + def setup_hipkiller(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myHipKiller = PyG4Atlas.UserAction('G4UserActions', 'HIPKiller', ['BeginOfRun', 'EndOfRun', 'BeginOfEvent', 'EndOfEvent', 'Step']) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myHipKiller) + + simFlags.InitFunctions.add_function("postInit", setup_hipkiller) + +del doG4SimConfig, simdict diff --git a/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Qball.py b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Qball.py new file mode 100644 index 0000000000000000000000000000000000000000..fb760e0fe2ccc4a8176af0efc204f8a1a536b71f --- /dev/null +++ b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Qball.py @@ -0,0 +1,98 @@ +######################################################################### +# preInclude.Qball.py - Wendy Taylor 23 Jun 2011 # +######################################################################### + +def load_files_for_qball_scenario(MASS, CHARGE): + import os, shutil, sys + + CODE=10000000+int(float(CHARGE)*100) + + ALINE1="M {code} {intmass}.E+03 +0.0E+00 -0.0E+00 Qball +".format(code=CODE,intmass=int(MASS)) + ALINE2="W {code} 0.E+00 +0.0E+00 -0.0E+00 Qball +".format(code=CODE) + BLINE1="{code} {intmass}.00 {charge} 0.0 # Qball".format(code=CODE,intmass=int(MASS), charge=CHARGE) + BLINE2="-{code} {intmass}.00 -{charge} 0.0 # QballBar".format(code=CODE,intmass=int(MASS), charge=CHARGE) + + pdgmod = os.path.isfile('PDGTABLE.MeV') + if pdgmod is True: + os.remove('PDGTABLE.MeV') + os.system('get_files -data PDGTABLE.MeV') + f=open('PDGTABLE.MeV','a') + f.writelines(str(ALINE1)) + f.writelines('\n') + f.writelines(str(ALINE2)) + f.writelines('\n') + f.close() + partmod = os.path.isfile('particles.txt') + if partmod is True: + os.remove('particles.txt') + f=open('particles.txt','w') + f.writelines(str(BLINE1)) + f.writelines('\n') + f.writelines(str(BLINE2)) + f.writelines('\n') + f.close() + + del ALINE1 + del ALINE2 + del BLINE1 + del BLINE2 + +doG4SimConfig = True +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +import PyUtils.AthFile as af +try: + f = af.fopen(athenaCommonFlags.FilesInput()[0]) + + if "StreamHITS" in f.infos["stream_names"]: + from Digitization.DigitizationFlags import digitizationFlags + simdict = digitizationFlags.specialConfiguration.get_Value() + doG4SimConfig = False + else: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration +except: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration + +assert "MASS" in simdict +assert "CHARGE" in simdict +load_files_for_qball_scenario(simdict["MASS"], simdict["CHARGE"]) + +if doG4SimConfig: + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng.log.info("Unlocking simFlags.EquationOfMotion to reset the value for Monopole simulation.") + from G4AtlasApps.SimFlags import simFlags + # FIXME ideally would include this file early enough, so that the unlocking is not required + simFlags.EquationOfMotion.unlock() + simFlags.EquationOfMotion.set_On() + simFlags.EquationOfMotion.set_Value_and_Lock("MonopoleEquationOfMotion") + + def monopole_setupg4(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + AtlasG4Eng.G4Eng.load_Lib("Monopole") + + simFlags.InitFunctions.add_function("preInitPhysics", monopole_setupg4) + + def setup_stepper_classicalrk4(): + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng._ctrl.fldMenu.UseStepper('ClassicalRK4') + AtlasG4Eng.G4Eng._ctrl.fldMenu.UseStepper('IDET::IDET', 'ClassicalRK4') + + simFlags.InitFunctions.add_function("postInit", setup_stepper_classicalrk4) + + def setup_looperkiller(): + from G4AtlasApps import PyG4Atlas,AtlasG4Eng + myLooperKiller = PyG4Atlas.UserAction('G4UserActions', 'LooperKiller', ['BeginOfRun','EndOfRun','BeginOfEvent','EndOfEvent','Step']) + myLooperKiller.set_Properties({"MaxSteps":"2000000","PrintSteps":"2","VerboseLevel":"0"}) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myLooperKiller) + + simFlags.InitFunctions.add_function("postInit", setup_looperkiller) + + def setup_hipkiller(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + myHipKiller = PyG4Atlas.UserAction('G4UserActions', 'HIPKiller', ['BeginOfRun', 'EndOfRun', 'BeginOfEvent', 'EndOfEvent', 'Step']) + AtlasG4Eng.G4Eng.menu_UserActions.add_UserAction(myHipKiller) + + simFlags.InitFunctions.add_function("postInit", setup_hipkiller) + +del doG4SimConfig, simdict diff --git a/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Quirks.py b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Quirks.py new file mode 100644 index 0000000000000000000000000000000000000000..3c990b5ca9c1b4246ff91e095a9747e249dcfb3a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Quirks.py @@ -0,0 +1,56 @@ +quirk_firststring=1e-6 #mm +quirk_maxboost=1e-2 +quirk_maxmerge=1e-6 #mm +quirk_debugenabled=False +quirk_debugdist=1000 #mm +quirk_debugsteps=1000 + +doG4SimConfig = True +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +import PyUtils.AthFile as af +try: + f = af.fopen(athenaCommonFlags.FilesInput()[0]) + + if "StreamHITS" in f.infos["stream_names"]: + from Digitization.DigitizationFlags import digitizationFlags + simdict = digitizationFlags.specialConfiguration.get_Value() + doG4SimConfig = False + else: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration +except: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration + +quirk_mass = float(simdict["MASS"]) +quirk_charge = float(simdict["CHARGE"]) +quirk_pdgid = int(simdict["PDGID"]) +quirk_stringforce = float(simdict["STRINGFORCE"]) + +import os +if os.path.isfile('PDGTABLE.MeV'): + os.remove('PDGTABLE.MeV') +os.system('get_files -data PDGTABLE.MeV') +f = open('PDGTABLE.MeV', 'a') +f.write("M%8d %.8E +0.0E+00 -0.0E+00 Quirk +\n" % (quirk_pdgid, quirk_mass)) +f.write("W%8d 0.E+00 +0.0E+00 -0.0E+00 Quirk +\n" % quirk_pdgid) +f.close() + +if doG4SimConfig: + f = open('quirks_setup.txt', 'w') + for x in [quirk_mass, quirk_charge, quirk_pdgid, quirk_stringforce, quirk_firststring, quirk_maxboost, quirk_maxmerge, quirk_maxmerge]: + f.write(repr(x) + "\n") + if quirk_debugenabled: + f.write("1\n") + f.write(repr(quirk_debugdist) + "\n") + f.write(repr(quirk_debugsteps) + "\n") + else: + f.write("0\n") + f.close() + + def load_quirks_lib(): + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng.load_Lib("Quirks") + simFlags.InitFunctions.add_function("preInitPhysics", load_quirks_lib) + +del quirk_firststring, quirk_maxboost, quirk_maxmerge, quirk_debugenabled, quirk_debugdist, quirk_debugsteps, doG4SimConfig, simdict, f, quirk_mass, quirk_charge, quirk_pdgid, quirk_stringforce diff --git a/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Rhadrons.py b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Rhadrons.py new file mode 100644 index 0000000000000000000000000000000000000000..3d2e65122aaee254a59055ac6b294b1090c4660e --- /dev/null +++ b/Simulation/SimulationJobOptions/share/specialConfig/preInclude.Rhadrons.py @@ -0,0 +1,651 @@ +######################################################################### +# preInclude.Rhadrons.py - Chiara Debenedetti, 3 Jun 2011 # +# - Andy Haas, 4 Apr 2012 +######################################################################### + +import os +import shutil +import sys + +def create_rhadron_particles_file(CASE, MASS, MODEL, MASSX): + """particles.txt Templates""" + + print 'INFO: MASSX is ',MASSX,' GeV' + MASS = (float(MASS)-100) # The table masses are by default 100 GeV, so that part is subtracted + + particles = {"gluino" : + { + "generic" : [ + ' 1000021 %3.3f # ~g' % ( MASS + 100.000 ), + ' 1000993 %3.3f # ~g_glueball' % ( MASS + 100.700 ), + ' 1009213 %3.3f # ~g_rho+' % ( MASS + 100.650 ), + ' 1009313 %3.3f # ~g_K*0' % ( MASS + 100.825 ), + ' 1009323 %3.3f # ~g_K*+' % ( MASS + 100.825 ), + ' 1009113 %3.3f # ~g_rho0' % ( MASS + 100.650 ), + ' 1009223 %3.3f # ~g_omega' % ( MASS + 100.650 ), + ' 1009333 %3.3f # ~g_phi' % ( MASS + 101.800 ), + ' 1091114 %3.3f # ~g_Delta-' % ( MASS + 100.975 ), + ' 1092114 %3.3f # ~g_Delta0' % ( MASS + 100.975 ), + ' 1092214 %3.3f # ~g_Delta+' % ( MASS + 100.975 ), + ' 1092224 %3.3f # ~g_Delta++' % ( MASS + 100.975 ), + ' 1093114 %3.3f # ~g_Sigma*-' % ( MASS + 101.150 ), + ' 1093214 %3.3f # ~g_Sigma*0' % ( MASS + 101.150 ), + ' 1093224 %3.3f # ~g_Sigma*+' % ( MASS + 101.150 ), + ' 1093314 %3.3f # ~g_Xi*-' % ( MASS + 101.300 ), + ' 1093324 %3.3f # ~g_Xi*0' % ( MASS + 101.300 ), + ' 1093334 %3.3f # ~g_Omega-' % ( MASS + 101.600 ), + ' -1009213 %3.3f # ~g_rho-' % ( MASS + 100.650 ), + ' -1009313 %3.3f # ~g_K*bar0' % ( MASS + 100.825 ), + ' -1009323 %3.3f # ~g_K*-' % ( MASS + 100.825 ), + ' -1091114 %3.3f # ~g_Deltabar+' % ( MASS + 100.975 ), + ' -1092114 %3.3f # ~g_Deltabar0' % ( MASS + 100.975 ), + ' -1092214 %3.3f # ~g_Deltabar-' % ( MASS + 100.975 ), + ' -1092224 %3.3f # ~g_Deltabar--' % ( MASS + 100.975 ), + ' -1093114 %3.3f # ~g_Sigma*bar+' % ( MASS + 101.150 ), + ' -1093214 %3.3f # ~g_Sigma*bar0' % ( MASS + 101.150 ), + ' -1093224 %3.3f # ~g_Sigma*bar-' % ( MASS + 101.150 ), + ' -1093314 %3.3f # ~g_Xi*bar+' % ( MASS + 101.300 ), + ' -1093324 %3.3f # ~g_Xi*bar0' % ( MASS + 101.300 ), + ' -1093334 %3.3f # ~g_Omegabar+' % ( MASS + 101.600 ), + ' 1000039 %3.3f # ~Gravitino' % ( MASSX ), + ' 1000022 %3.3f # ~chi_10' % ( MASSX ) + ], + "regge" : [ + ' 1000021 %3.3f # ~g' % (MASS + 100.0 ), + ' 1000993 %3.3f # ~g_glueball' % (MASS + 100.700 ), + ' 1009213 %3.3f # ~g_rho+' % (MASS + 100.700 ), + ' 1009113 %3.3f # ~g_rho0' % (MASS + 100.700 ), + ' 1009313 %3.3f # ~g_K0' % (MASS + 100.700 ), + ' 1009323 %3.3f # ~g_K+' % (MASS + 100.700 ), + ' 1093122 %3.3f # ~g_Lambda0' % (MASS + 100.700 ), + ' -1009213 %3.3f # ~g_rho-' % (MASS + 100.700 ), + ' -1009313 %3.3f # ~g_K0bar' % (MASS + 100.700 ), + ' -1009323 %3.3f # ~g_K-' % (MASS + 100.700 ), + ' 1000039 %3.3f # ~Gravitino' % ( MASSX ), + ' 1000022 %3.3f # ~chi_10' % ( MASSX ) + ], + "intermediate" : [ + ' 1000021 %3.3f # ~g' % ( MASS + 100.0), + ' 1000991 %3.3f # ~g_glueball' % ( MASS + 100.330), + ' 1009211 %3.3f # ~g_pi+' % ( MASS + 100.330), + ' -1009211 %3.3f # ~g_pi-' % ( MASS + 100.330), + ' 1009111 %3.3f # ~g_pi0' % ( MASS + 100.330), + ' 1009311 %3.3f # ~g_K0' % ( MASS + 100.460), + ' -1009311 %3.3f # ~g_K0bar' % ( MASS + 100.460), + ' 1009321 %3.3f # ~g_K+' % ( MASS + 100.460), + ' -1009321 %3.3f # ~g_K-' % ( MASS + 100.460), + ' 1093122 %3.3f # ~g_Lambda0' % ( MASS + 100.280), + ' 1092212 %3.3f # ~g_proton' % ( MASS + 100.660), + ' 1092112 %3.3f # ~g_neutron' % ( MASS + 100.660), + ' 1092214 %3.3f # ~g_Delta+' % ( MASS + 100.530), + ' 1092114 %3.3f # ~g_Delta0' % ( MASS + 100.530), + ' 1000039 %3.3f # ~Gravitino' % ( MASSX ), + ' 1000022 %3.3f # ~chi_10' % ( MASSX ) + ] + }, # end of gluino cases + "stop" : + { + "generic" :[ + ' 1000006 %3.3f # ~t_1' % ( MASS + 100.000 ), + ' 1000612 %3.3f # ~T+ ' % ( MASS + 100.325 ), + ' 1000622 %3.3f # ~T0 ' % ( MASS + 100.325 ), + ' 1000632 %3.3f # ~T_s+' % ( MASS + 100.500 ), + ' 1000642 %3.3f # ~T_c0' % ( MASS + 101.500 ), + ' 1000652 %3.3f # ~T_b+' % ( MASS + 104.800 ), + ' 1006113 %3.3f # ~T_dd10' % ( MASS + 100.650 ), + ' 1006211 %3.3f # ~T_ud0+' % ( MASS + 100.650 ), + ' 1006213 %3.3f # ~T_ud1+' % ( MASS + 100.650 ), + ' 1006223 %3.3f # ~T_uu1++ ' % ( MASS + 100.650 ), + ' 1006311 %3.3f # ~T_sd00 ' % ( MASS + 100.825 ), + ' 1006313 %3.3f # ~T_sd10 ' % ( MASS + 100.825 ), + ' 1006321 %3.3f # ~T_su0+ ' % ( MASS + 100.825 ), + ' 1006323 %3.3f # ~T_su1+ ' % ( MASS + 100.825 ), + ' 1006333 %3.3f # ~T_ss10 ' % ( MASS + 101.000 ), + ' -1000006 %3.3f # ~t_1bar' % ( MASS + 100.000 ), + ' -1000612 %3.3f # ~Tbar- ' % ( MASS + 100.325 ), + ' -1000622 %3.3f # ~Tbar0 ' % ( MASS + 100.325 ), + ' -1000632 %3.3f # ~Tbar_s-' % ( MASS + 100.500 ), + ' -1000642 %3.3f # ~Tbar_c0' % ( MASS + 101.500 ), + ' -1000652 %3.3f # ~Tbar_b-' % ( MASS + 104.800 ), + ' -1006113 %3.3f # ~Tbar_dd10' % ( MASS + 100.650 ), + ' -1006211 %3.3f # ~Tbar_ud0-' % ( MASS + 100.650 ), + ' -1006213 %3.3f # ~Tbar_ud1-' % ( MASS + 100.650 ), + ' -1006223 %3.3f # ~Tbar_uu1--'% ( MASS + 100.650 ), + ' -1006311 %3.3f # ~Tbar_sd00 '% ( MASS + 100.825 ), + ' -1006313 %3.3f # ~Tbar_sd10 '% ( MASS + 100.825 ), + ' -1006321 %3.3f # ~Tbar_su0- '% ( MASS + 100.825 ), + ' -1006323 %3.3f # ~Tbar_su1- '% ( MASS + 100.825 ), + ' -1006333 %3.3f # ~Tbar_ss10 '% ( MASS + 101.000 ), + ' 1000039 %3.3f # ~Gravitino' % ( MASSX ), + ' 1000022 %3.3f # ~chi_10' % ( MASSX ) + + ] + , + "regge" : [ + ' 1000006 %3.3f # ~t_1' % ( MASS + 100.000 ), + ' 1000612 %3.3f # ~T+ ' % ( MASS + 100.325 ), + ' 1000622 %3.3f # ~T0 ' % ( MASS + 100.325 ), + ' 1006211 %3.3f # ~T_ud0+' % ( MASS + 100.650 ), + ' -1000006 %3.3f # ~t_1bar' % ( MASS + 100.000 ), + ' -1000612 %3.3f # ~Tbar- ' % ( MASS + 100.325 ), + ' -1000622 %3.3f # ~Tbar0 ' % ( MASS + 100.325 ), + ' -1006211 %3.3f # ~Tbar_ud0-' % ( MASS + 100.650 ), + ' 1000039 %3.3f # ~Gravitino' % ( MASSX ), + ' 1000022 %3.3f # ~chi_10' % ( MASSX ) + ], + "intermediate" : [] + }, # end of stop cases + "sbottom" : + { + "generic" : [], + "regge" : [ + ' 1000005 %3.3f # ~b' % ( MASS + 100.000 ), + ' 1000512 %3.3f # ~B0 ' % ( MASS + 100.325 ), + ' 1000522 %3.3f # ~B- ' % ( MASS + 100.325 ), + ' 1005211 %3.3f # ~B_ud0' % ( MASS + 100.650 ), + ' -1000005 %3.3f # ~bbar' % ( MASS + 100.000 ), + ' -1000512 %3.3f # ~Bbar0 ' % ( MASS + 100.325 ), + ' -1000522 %3.3f # ~Bbar+ ' % ( MASS + 100.325 ), + ' -1005211 %3.3f # ~Bbar_ud0' % ( MASS + 100.650 ), + ' 1000039 %3.3f # ~Gravitino' % ( MASSX ), + ' 1000022 %3.3f # ~chi_10' % ( MASSX ) + ], + "intermediate" : [] + } # end of sbottom cases + } # end of pdgtable dict + + # Write a new particle.txt file + with open('particles.txt','w') as f: + for line in particles[CASE][MODEL]: + f.writelines(line + "\n") + + + +def create_rhadron_pdgtable(CASE, MASS, MODEL): + """PDGTABLE Templates""" + + MASS = (float(MASS)-100) * 1000.0 # Convert mass to MeV (the table masses are by default 100 GeV, so that part is subtracted) + + pdgtable = {"gluino" : + { + "generic" : [ + 'M 1000021 %11.5E +0.0E+00 -0.0E+00 ~g 0' % ( MASS + 100.E+03 ), + 'W 1000021 %11.5E +0.0E+00 -0.0E+00 ~g 0' % ( 0.E+00 ), + 'M 1009213 %11.5E +0.0E+00 -0.0E+00 ~g_rho+ +' % ( MASS + 100.65E+03 ), + 'W 1009213 %11.5E +0.0E+00 -0.0E+00 ~g_rho+ +' % ( 0.E+00 ), + 'M 1009113 %11.5E +0.0E+00 -0.0E+00 ~g_rho0 0' % ( MASS + 100.65E+03 ), + 'W 1009113 %11.5E +0.0E+00 -0.0E+00 ~g_rho0 0' % ( 0.E+00 ), + 'M 1091114 %11.5E +0.0E+00 -0.0E+00 ~g_Delta- -' % ( MASS + 100.975E+03 ), + 'W 1091114 %11.5E +0.0E+00 -0.0E+00 ~g_Delta- -' % ( 0.E+00 ), + 'M 1092114 %11.5E +0.0E+00 -0.0E+00 ~g_Delta0 0' % ( MASS + 100.975E+03 ), + 'W 1092114 %11.5E +0.0E+00 -0.0E+00 ~g_Delta0 0' % ( 0.E+00 ), + 'M 1092214 %11.5E +0.0E+00 -0.0E+00 ~g_Delta+ +' % ( MASS + 100.975E+03 ), + 'W 1092214 %11.5E +0.0E+00 -0.0E+00 ~g_Delta+ +' % ( 0.E+00 ), + 'M 1092224 %11.5E +0.0E+00 -0.0E+00 ~g_Delta++ ++' % ( MASS + 100.975E+03 ), + 'W 1092224 %11.5E +0.0E+00 -0.0E+00 ~g_Delta++ ++' % ( 0.E+00 ), + 'M 1000993 %11.5E +0.0E+00 -0.0E+00 ~g_glueball 0' % ( MASS + 100.700E+03 ), + 'W 1000993 %11.5E +0.0E+00 -0.0E+00 ~g_glueball 0' % ( 0.E+00 ), + 'M 1009313 %11.5E +0.0E+00 -0.0E+00 ~g_K*0 0' % ( MASS + 100.825E+03 ), + 'W 1009313 %11.5E +0.0E+00 -0.0E+00 ~g_K*0 0' % ( 0.E+00 ), + 'M 1009323 %11.5E +0.0E+00 -0.0E+00 ~g_K*+ +' % ( MASS + 100.825E+03 ), + 'W 1009323 %11.5E +0.0E+00 -0.0E+00 ~g_K*+ +' % ( 0.E+00 ), + 'M 1009223 %11.5E +0.0E+00 -0.0E+00 ~g_omega 0' % ( MASS + 100.650E+03 ), + 'W 1009223 %11.5E +0.0E+00 -0.0E+00 ~g_omega 0' % ( 0.E+00 ), + 'M 1009333 %11.5E +0.0E+00 -0.0E+00 ~g_phi 0' % ( MASS + 101.800E+03 ), + 'W 1009333 %11.5E +0.0E+00 -0.0E+00 ~g_phi 0' % ( 0.E+00 ), + 'M 1093114 %11.5E +0.0E+00 -0.0E+00 ~g_Sigma*- -' % ( MASS + 101.150E+03 ), + 'W 1093114 %11.5E +0.0E+00 -0.0E+00 ~g_Sigma*- -' % ( 0.E+00 ), + 'M 1093214 %11.5E +0.0E+00 -0.0E+00 ~g_Sigma*0 0' % ( MASS + 101.150E+03 ), + 'W 1093214 %11.5E +0.0E+00 -0.0E+00 ~g_Sigma*0 0' % ( 0.E+00 ), + 'M 1093224 %11.5E +0.0E+00 -0.0E+00 ~g_Sigma*+ +' % ( MASS + 101.150E+03 ), + 'W 1093224 %11.5E +0.0E+00 -0.0E+00 ~g_Sigma*+ +' % ( 0.E+00 ), + 'M 1093314 %11.5E +0.0E+00 -0.0E+00 ~g_Xi*- -' % ( MASS + 101.300E+03 ), + 'W 1093314 %11.5E +0.0E+00 -0.0E+00 ~g_Xi*- -' % ( 0.E+00 ), + 'M 1093324 %11.5E +0.0E+00 -0.0E+00 ~g_Xi*0 0' % ( MASS + 101.300E+03 ), + 'W 1093324 %11.5E +0.0E+00 -0.0E+00 ~g_Xi*0 0' % ( 0.E+00 ), + 'M 1093334 %11.5E +0.0E+00 -0.0E+00 ~g_Omega- -' % ( MASS + 101.600E+03 ), + 'W 1093334 %11.5E +0.0E+00 -0.0E+00 ~g_Omega- -' % ( 0.E+00 ) + ], + "regge" : [ + 'M 1000021 %11.5E +0.0E+00 -0.0E+00 ~g 0' % ( MASS + 100.E+03 ), + 'W 1000021 %11.5E +0.0E+00 -0.0E+00 ~g 0' % ( 0.E+00 ), + 'M 1000993 %11.5E +0.0E+00 -0.0E+00 ~g_glueball 0' % ( MASS + 100.700E+03 ), + 'W 1000993 %11.5E +0.0E+00 -0.0E+00 ~g_glueball 0' % ( 0.E+00 ), + 'M 1009213 %11.5E +0.0E+00 -0.0E+00 ~g_rho+ +' % ( MASS + 100.700E+03 ), + 'W 1009213 %11.5E +0.0E+00 -0.0E+00 ~g_rho+ +' % ( 0.E+00 ), + 'M 1009113 %11.5E +0.0E+00 -0.0E+00 ~g_rho0 0' % ( MASS + 100.700E+03 ), + 'W 1009113 %11.5E +0.0E+00 -0.0E+00 ~g_rho0 0' % ( 0.E+00 ), + 'M 1009313 %11.5E +0.0E+00 -0.0E+00 ~g_K0 0' % ( MASS + 100.700E+03 ), + 'W 1009313 %11.5E +0.0E+00 -0.0E+00 ~g_K0 0' % ( 0.E+00 ), + 'M 1093122 %11.5E +0.0E+00 -0.0E+00 ~g_Lambda0 0' % ( MASS + 100.280E+03 ), + 'W 1093122 %11.5E +0.0E+00 -0.0E+00 ~g_Lambda0 0' % ( 0.E+00 ), + 'M 1009323 %11.5E +0.0E+00 -0.0E+00 ~g_K+ +' % ( MASS + 100.700E+03 ), + 'W 1009323 %11.5E +0.0E+00 -0.0E+00 ~g_K+ +' % ( 0.E+00 ), + 'M 1009113 %11.5E +0.0E+00 -0.0E+00 ~g_Lambda0 0' % ( MASS + 100.700E+03 ), + 'W 1009113 %11.5E +0.0E+00 -0.0E+00 ~g_Lambda0 0' % ( 0.E+00 ) + ], + "intermediate" : [ + 'M 1000021 %11.5E +0.0E+00 -0.0E+00 ~g 0' % ( MASS + 100.E+03 ), + 'W 1000021 %11.5E +0.0E+00 -0.0E+00 ~g 0' % ( 0.E+00 ), + 'M 1000991 %11.5E +0.0E+00 -0.0E+00 ~g_glueball 0' % ( MASS + 100.330E+03 ), + 'W 1000991 %11.5E +0.0E+00 -0.0E+00 ~g_glueball 0' % ( 0.E+00 ), + 'M 1009211 %11.5E +0.0E+00 -0.0E+00 ~g_pi+ +' % ( MASS + 100.330E+03 ), + 'W 1009211 %11.5E +0.0E+00 -0.0E+00 ~g_pi+ +' % ( 0.E+00 ), + 'M 1009111 %11.5E +0.0E+00 -0.0E+00 ~g_pi0 0' % ( MASS + 100.330E+03 ), + 'W 1009111 %11.5E +0.0E+00 -0.0E+00 ~g_pi0 0' % ( 0.E+00 ), + 'M 1009311 %11.5E +0.0E+00 -0.0E+00 ~g_K0 0' % ( MASS + 100.460E+03 ), + 'W 1009311 %11.5E +0.0E+00 -0.0E+00 ~g_K0 0' % ( 0.E+00 ), + 'M 1009321 %11.5E +0.0E+00 -0.0E+00 ~g_K+ +' % ( MASS + 100.460E+03 ), + 'W 1009321 %11.5E +0.0E+00 -0.0E+00 ~g_K+ +' % ( 0.E+00 ), + 'M 1093122 %11.5E +0.0E+00 -0.0E+00 ~g_Lambda0 0' % ( MASS + 100.280E+03 ), + 'W 1093122 %11.5E +0.0E+00 -0.0E+00 ~g_Lambda0 0' % ( 0.E+00 ), + 'M 1092212 %11.5E +0.0E+00 -0.0E+00 ~g_proton +' % ( MASS + 100.660E+03 ), + 'W 1092212 %11.5E +0.0E+00 -0.0E+00 ~g_proton +' % ( 0.E+00 ), + 'M 1092112 %11.5E +0.0E+00 -0.0E+00 ~g_neutron 0' % ( MASS + 100.660E+03 ), + 'W 1092112 %11.5E +0.0E+00 -0.0E+00 ~g_neutron 0' % ( 0.E+00 ), + 'M 1092214 %11.5E +0.0E+00 -0.0E+00 ~g_Delta+ +' % ( MASS + 100.530E+03 ), + 'W 1092214 %11.5E +0.0E+00 -0.0E+00 ~g_Delta+ +' % ( 0.E+00 ), + 'M 1092114 %11.5E +0.0E+00 -0.0E+00 ~g_Delta0 0' % ( MASS + 100.530E+03 ), + 'W 1092114 %11.5E +0.0E+00 -0.0E+00 ~g_Delta0 0' % ( 0.E+00 ) + ] + }, # end of gluino cases + "stop" : + { + "generic" :[ + 'M 1000006 %11.5E +0.0E+00 -0.0E+00 ~t_1 0' % ( MASS + 100.000E+03 ), + 'W 1000006 %11.5E +0.0E+00 -0.0E+00 ~t_1 0' % ( 0.E+00 ), + 'M 1000612 %11.5E +0.0E+00 -0.0E+00 ~T+ +' % ( MASS + 100.325E+03 ), + 'W 1000612 %11.5E +0.0E+00 -0.0E+00 ~T+ +' % ( 0.E+00 ), + 'M 1000622 %11.5E +0.0E+00 -0.0E+00 ~T0 0' % ( MASS + 100.325E+03 ), + 'W 1000622 %11.5E +0.0E+00 -0.0E+00 ~T0 0' % ( 0.E+00 ), + 'M 1000632 %11.5E +0.0E+00 -0.0E+00 ~T_s+ +' % ( MASS + 100.500E+03 ), + 'W 1000632 %11.5E +0.0E+00 -0.0E+00 ~T_s+ +' % ( 0.E+00 ), + 'M 1000642 %11.5E +0.0E+00 -0.0E+00 ~T_c0 0' % ( MASS + 101.500E+03 ), + 'W 1000642 %11.5E +0.0E+00 -0.0E+00 ~T_c0 0' % ( 0.E+00 ), + 'M 1000652 %11.5E +0.0E+00 -0.0E+00 ~T_b+ +' % ( MASS + 104.800E+03 ), + 'W 1000652 %11.5E +0.0E+00 -0.0E+00 ~T_b+ +' % ( 0.E+00 ), + 'M 1006113 %11.5E +0.0E+00 -0.0E+00 ~T_dd10 0' % ( MASS + 100.650E+03 ), + 'W 1006113 %11.5E +0.0E+00 -0.0E+00 ~T_dd10 0' % ( 0.E+00 ), + 'M 1006211 %11.5E +0.0E+00 -0.0E+00 ~T_ud0+ +' % ( MASS + 100.650E+03 ), + 'W 1006211 %11.5E +0.0E+00 -0.0E+00 ~T_ud0+ +' % ( 0.E+00 ), + 'M 1006213 %11.5E +0.0E+00 -0.0E+00 ~T_ud1+ +' % ( MASS + 100.650E+03 ), + 'W 1006213 %11.5E +0.0E+00 -0.0E+00 ~T_ud1+ +' % ( 0.E+00 ), + 'M 1006223 %11.5E +0.0E+00 -0.0E+00 ~T_uu1++ ++' % ( MASS + 100.650E+03 ), + 'W 1006223 %11.5E +0.0E+00 -0.0E+00 ~T_uu1++ ++' % ( 0.E+00 ), + 'M 1006311 %11.5E +0.0E+00 -0.0E+00 ~T_sd00 0' % ( MASS + 100.825E+03 ), + 'W 1006311 %11.5E +0.0E+00 -0.0E+00 ~T_sd00 0' % ( 0.E+00 ), + 'M 1006313 %11.5E +0.0E+00 -0.0E+00 ~T_sd10 0' % ( MASS + 100.825E+03 ), + 'W 1006313 %11.5E +0.0E+00 -0.0E+00 ~T_sd10 0' % ( 0.E+00 ), + 'M 1006321 %11.5E +0.0E+00 -0.0E+00 ~T_su0+ +' % ( MASS + 100.825E+03 ), + 'W 1006321 %11.5E +0.0E+00 -0.0E+00 ~T_su0+ +' % ( 0.E+00 ), + 'M 1006323 %11.5E +0.0E+00 -0.0E+00 ~T_su1+ +' % ( MASS + 100.825E+03 ), + 'W 1006323 %11.5E +0.0E+00 -0.0E+00 ~T_su1+ +' % ( 0.E+00 ), + 'M 1006333 %11.5E +0.0E+00 -0.0E+00 ~T_ss10 0' % ( MASS + 101.000E+03 ), + 'W 1006333 %11.5E +0.0E+00 -0.0E+00 ~T_ss10 0' % ( 0.E+00 ) + ] + , + "regge" : [ + 'M 1000006 %11.5E +0.0E+00 -0.0E+00 ~t_1 0' % ( MASS + 100.000E+03 ), + 'W 1000006 %11.5E +0.0E+00 -0.0E+00 ~t_1 0' % ( 0.E+00 ), + 'M 1000612 %11.5E +0.0E+00 -0.0E+00 ~T+ +' % ( MASS + 100.325E+03 ), + 'W 1000612 %11.5E +0.0E+00 -0.0E+00 ~T+ +' % ( 0.E+00 ), + 'M 1000622 %11.5E +0.0E+00 -0.0E+00 ~T0 0' % ( MASS + 100.325E+03 ), + 'W 1000622 %11.5E +0.0E+00 -0.0E+00 ~T0 0' % ( 0.E+00 ), + 'M 1006211 %11.5E +0.0E+00 -0.0E+00 ~T_ud0+ +' % ( MASS + 100.650E+03 ), + 'W 1006211 %11.5E +0.0E+00 -0.0E+00 ~T_ud0+ +' % ( 0.E+00 ) + ], + "intermediate" : [] + }, # end of stop cases + "sbottom" : + { + "generic" : [], + "regge" : [ + 'M 1000005 %11.5E +0.0E+00 -0.0E+00 ~b 0' % ( MASS + 100.000E+03 ), + 'W 1000005 %11.5E +0.0E+00 -0.0E+00 ~b 0' % ( 0.E+00 ), + 'M 1000512 %11.5E +0.0E+00 -0.0E+00 ~B0 0' % ( MASS + 100.325E+03 ), + 'W 1000512 %11.5E +0.0E+00 -0.0E+00 ~B0 0' % ( 0.E+00 ), + 'M 1000522 %11.5E +0.0E+00 -0.0E+00 ~B- -' % ( MASS + 100.325E+03 ), + 'W 1000522 %11.5E +0.0E+00 -0.0E+00 ~B- -' % ( 0.E+00 ), + 'M 1005211 %11.5E +0.0E+00 -0.0E+00 ~B_ud0 0' % ( MASS + 100.650E+03 ), + 'W 1005211 %11.5E +0.0E+00 -0.0E+00 ~B_ud0 0' % ( 0.E+00 ) + ], + "intermediate" : [] + } # end of sbottom cases + } # end of pdgtable dict + + # Download generic PDGTABLE (overwrite existing one if it exists) + os.system('get_files -remove -data PDGTABLE.MeV') + + # Append the R-Hadron particles to the PDGTABLE.MeV file + with open('PDGTABLE.MeV','a') as f: + + f.writelines("* R-Hadron additions: Case=%s, Model=%s, Mass=%d MeV\n" % (CASE, MODEL, (MASS + 100000))) + for line in pdgtable[CASE][MODEL]: + f.writelines(line + "\n") + +def addLineToPhysicsConfiguration(KEY, VALUE): + os.system('touch PhysicsConfiguration.txt') + newphysconfig = "{key} = {value}".format(key=KEY, value=VALUE) + os.system('echo "%s" >> PhysicsConfiguration.txt' % newphysconfig) + +def load_files_for_rhadrons_scenario(CASE, MASS, MODEL, MASSX): + print "MASS: "+str(MASS) + print "CASE: "+CASE + print "MODEL: "+MODEL + print "MASSX: "+str(MASSX) + + # Create custom PDGTABLE.MeV file + create_rhadron_pdgtable(CASE, MASS, MODEL) + + # Download the process list + proclistname = "ProcessList_{model}_{case}.txt".format(case=CASE, model=MODEL) + os.system('get_files -remove -data %s' % proclistname) + shutil.move(proclistname, 'ProcessList.txt') + + # Create particles.txt file + create_rhadron_particles_file(CASE, MASS, MODEL, MASSX) + + # Remove existing physics configuration file ([MDJ]: FIXME: Is this happening earlier, or is it needed?) + if os.path.isfile('PhysicsConfiguration.txt'): + print "SimulationJobOptions/preInclude.Rhadrons.py:load_files_for_rhadrons_scenario() WARNING Found pre-existing PhysicsConfiguration.txt file - deleting." + os.remove('PhysicsConfiguration.txt') + + # Add additional physics configuration options + if MODEL == "regge": + addLineToPhysicsConfiguration("ReggeModel", "1.") + + +doG4SimConfig = True +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +import PyUtils.AthFile as af +try: + f = af.fopen(athenaCommonFlags.FilesInput()[0]) + + if "StreamHITS" in f.infos["stream_names"]: + from Digitization.DigitizationFlags import digitizationFlags + simdict = digitizationFlags.specialConfiguration.get_Value() + doG4SimConfig = False + else: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration +except: + from G4AtlasApps import AtlasG4Eng + simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration + +## Compulsory keys +assert "MASS" in simdict +assert "MODEL" in simdict +assert "CASE" in simdict +MASSX=100.0 +if simdict.has_key("MASSX"): + MASSX = float(simdict["MASSX"]) +print 'INFO: MASSX (neutralino/gravitino mass) set to ',MASSX,' GeV' +load_files_for_rhadrons_scenario(simdict["CASE"], simdict["MASS"], simdict["MODEL"], MASSX) +## Optional keys +if simdict.has_key("XsecMultiplier"): + addLineToPhysicsConfiguration("XsecMultiplier", simdict["XsecMultiplier"]) +if simdict.has_key("Mixing"): + addLineToPhysicsConfiguration("Mixing", simdict["Mixing"]) + +if doG4SimConfig: + from G4AtlasApps.SimFlags import simFlags + def rhadrons_setupg4(): + from G4AtlasApps import PyG4Atlas, AtlasG4Eng + AtlasG4Eng.G4Eng.load_Lib("RHadrons") + simFlags.InitFunctions.add_function("preInitPhysics", rhadrons_setupg4) + +# In case we want to use Pythia for decays in line... +if simdict.has_key("DECAYS"): + addLineToPhysicsConfiguration("DoDecays","1") + if simdict.has_key("LIFETIME"): + addLineToPhysicsConfiguration("HadronLifeTime", simdict["LIFETIME"]) + else: + addLineToPhysicsConfiguration("HadronLifeTime", "0.000001") + + def rhad_applycalomctruthstrategy(): + from G4AtlasApps import AtlasG4Eng + myDecay = AtlasG4Eng.G4Eng.Dict_MCTruthStrg.get('Decay') + myDecay.add_Volumes('CALO::CALO', 1) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("DecayPrimaryMinEnergy", -1) + AtlasG4Eng.G4Eng.menu_MCTruth.set_TruthStrategiesParameter("DecaySecondaryMinEnergy", -1) + simFlags.InitFunctions.add_function("preInitMCTruth", rhad_applycalomctruthstrategy) + + from AthenaCommon.AlgSequence import AlgSequence + topAlg = AlgSequence() + + from PythiaRhad_i.PythiaRhad_iConf import PythiaRhad + topAlg +=PythiaRhad() + topAlg.PythiaRhad.useAtlasPythiaTune09=False + topAlg.PythiaRhad.Tune_Name="PYTUNE_103" + topAlg.PythiaRhad.PythiaCommand += [ + "pyinit pylisti 12", + "pyinit pylistf 1", + "pystat 1 3 4 5", + "pyinit dumpr 1 5", + "pydat2 pmas 6 1 172.5", # TOP mass + "pydat2 pmas 24 1 80.399", # PDG2010 W mass + "pydat2 pmas 23 1 91.1876", # PDG2010 Z0 mass + ] + + #-------------------------# + # R-hadron commands below # + #-------------------------# + + # Add some commands valid for both gluino and stop cases + topAlg.PythiaRhad.PythiaCommand += [ + "pysubs ckin 3 18.", # pT cut at 18 GeV + # "pypars mstp 81 1", # Old shower/multiple-interaction model (new model is not compatible with R-hadron fragmentation) + # "pydat1 mstj 11 4", # Set longitudinal fragmentation function to Pythia default + "pymssm imss 1 1", # General MSSM simulation + "pymssm imss 3 1", # Tell Pythia that rmss 3 below should be interpreted as the gluino pole mass + #"pymssm imss 5 1", # Set stop, sbottom and stau masses and mixing by hand (26-28 for mixing not set!) + "pymssm rmss 1 4000.0", # Photino mass + "pymssm rmss 2 4000.0", # Wino/Zino mass + "pymssm rmss 7 4000.0", # Right slepton mass + "pymssm rmss 8 4000.0", # Left squark mass + "pymssm rmss 9 4000.0", # Right squark mass + "pymssm rmss 10 4000.0", # stop2 mass + "pymssm rmss 11 4000.0", # sbottom1 mass + "pymssm rmss 12 4000.0", # stop1 mass + "pymssm rmss 4 4000.0", # Higgsino mass parameter + "pysubs msel 0", # Turn off all processes + "pypars mstp 111 0", # Turn off master switch for fragmentation and decay + "pyinit pylistf 3", + "pystat 2"] + + pdg={} + q3={} + apflag={} + names={} + antinames={} + masses={} + + # Gluino setups + pdg[("generic","gluino")] = [1000993,1009213,1009313,1009323,1009113,1009223,1009333,1091114,1092114,1092214,1092224,1093114,1093214,1093224,1093314,1093324,1093334,0,0,0] + q3[("generic","gluino")] = [0,3,0,3,0,0,0,-3,0,3,6,-3,0,3,-3,0,-3,0,0,0] + apflag[("generic","gluino")] = [0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0] + names[("generic","gluino")] = ["~g_ball","~g_rho+","~g_K*0","~g_K*+", "~g_rho0","~g_omega","~g_phi","~g_Dlt-","~g_Dlt0", "~g_Dlt+","~g_Dlt++","~g_Sgm*-","~g_Sgm*0", "~g_Sgm*+","~g_Xi*-","~g_Xi*0 ","~g_Omg-"," "," "," "] + antinames[("generic","gluino")] = [" ","~g_rho-","~g_K*br0","~g_K*-"," "," "," ", "~g_Dltb+","~g_Dltb0","~g_Dltb-","~g_Dlb--","~g_Sgmb+","~g_Sgmb0","~g_Sgmb-","~g_Xibr+", "~g_Xib0","~g_Omgb+"," "," "," "] + masses[("generic","gluino")] = [0.700,0.650,0.825,0.825,0.650,0.650,1.800,0.975,0.975,0.975,0.975,1.150,1.150,1.150,1.300,1.300,1.600,0.650,0.825,0.825,0.975,0.975,0.975,0.975,1.150,1.150,1.150,1.300,1.300,1.600] + + pdg[("regge","gluino")] = [1000993,1009213,1009113,1009313,1009323,1093122,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + q3[("regge","gluino")] = [0,3,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + apflag[("regge","gluino")] = [0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + names[("regge","gluino")] = ["~g_gball","~g_rho+","~g_rho0","~g_K0","~g_K+","~g_L0"," "," "," "," "," "," "," "," "," "," "," "," "," "," "] + antinames[("regge","gluino")] = [" ","~g_rho-"," ","~g_K0bar","~g_K-","~g_L0bar"," "," "," "," "," "," "," "," "," "," "," "," "," "," "] + masses[("regge","gluino")] = [0.330,0.330,0.330,0.460,0.460,0.280,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.] + + pdg[("intermediate","gluino")] = [1000991,1009211,1009111,1009311,1009321,1093122, 1092212,1092112,1092214,1092114,0,0,0,0,0,0,0,0,0,0] + q3[("intermediate","gluino")] = [0,3,0,0,3,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0] + apflag[("intermediate","gluino")] = [0,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0] + names[("intermediate","gluino")] = ["~g_gball","~g_pi+","~g_pi0","~g_K0","~g_K+", "~g_L0","~g_prot","~g_neutr","~g_Delt+","~g_Delt0"," "," "," "," "," "," "," "," "," "," "] + antinames[("intermediate","gluino")] = [" ","~g_pi-"," ","~g_K0bar","~g_K-","~g_L0bar","~g_aprot","~g_aneut","~g_Dltb-","~g_Dltb0"," "," "," "," "," "," "," "," "," "," "] + masses[("intermediate","gluino")] = [0.330,0.330,0.330,0.460,0.460,0.280,0.660,0.660,0.530,0.530,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.] + + # Stop setups + pdg[("generic","stop")] = [1000612,1000622,1000632,1000642,1000652,1006113,1006211,1006213,1006223,1006311,1006313,1006321,1006323,1006333,0,0,0,0,0,0] + q3[("generic","stop")] = [3,0,3,0,3,0,3,3,6,0,0,3,3,0,0,0,0,0,0,0] + apflag[("generic","stop")] = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0] + names[("generic","stop")] = ["~T+","~T0","~T_s+","~T_c0","~T_b+","~T_dd10","~T_ud0+","~T_ud1+","~T_uu1++","~T_sd00","~T_sd10","~T_su0+","~T_su1+","~T_ss10"," "," "," "," "," "," "] + antinames[("generic","stop")] = ["~Tb-","~Tb0","~Tb_s-","~Tb_c0","~Tb_b-","~Tb_dd10","~Tb_ud0-","~Tb_ud1-","~Tb_uu--","~Tb_sd00","~Tb_sd10","~Tb_su0-","~Tb_su1-","~Tb_ss10"," "," "," "," "," "," "] + masses[("generic","stop")] = [0.330,0.330,0.330,0.460,0.460,0.280,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.] + + pdg[("regge","stop")] = [1000612,1000622,1006211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + q3[("regge","stop")] = [3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + apflag[("regge","stop")] = [1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + names[("regge","stop")] = ["~T+","~T0","~T_ud0+"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "] + antinames[("regge","stop")] = ["~Tb-","~Tb0","~Tb_ud-"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "] + masses[("regge","stop")] = [0.330,0.330,0.330,0.460,0.460,0.280,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.] + + # Sbottom + pdg[("regge","sbottom")] = [1000512,1000522,1005211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + q3[("regge","sbottom")] = [0,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + apflag[("regge","sbottom")] = [1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + names[("regge","sbottom")] = ["~B0","~B-","~B_ud0"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "] + antinames[("regge","sbottom")] = ["~Bb0","~Bb+","~Bb_ud0"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "] + masses[("regge","sbottom")] = [0.330,0.330,0.330,0.460,0.460,0.280,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.] + + topAlg.PythiaRhad.PygiveCommand = [] + for i in range(1,20): + KC = str(400+i) + topAlg.PythiaRhad.PygiveCommand += [ + "KCHG("+KC+",1)="+str(q3[(simdict["MODEL"],simdict["CASE"])][i-1]), + "KCHG("+KC+",2)=0", + "KCHG("+KC+",3)="+str(apflag[(simdict["MODEL"],simdict["CASE"])][i-1]), + "KCHG("+KC+",4)="+str(pdg[(simdict["MODEL"],simdict["CASE"])][i-1]), + "CHAF("+KC+",1)="+names[(simdict["MODEL"],simdict["CASE"])][i-1], + "CHAF("+KC+",2)="+antinames[(simdict["MODEL"],simdict["CASE"])][i-1], + ] + topAlg.PythiaRhad.PygiveCommand += [ + "PMAS("+KC+",1)="+str(float(simdict["MASS"])+masses[(simdict["MODEL"],simdict["CASE"])][i-1])+"D0", + "PMAS("+KC+",2)="+str(float(simdict["MASS"])+masses[(simdict["MODEL"],simdict["CASE"])][i-1])+"D0" + ] + print "ACH123 PygiveCommand is:" + print topAlg.PythiaRhad.PygiveCommand + + if (simdict["MODEL"]=='regge'): + topAlg.PythiaRhad.RunReggeModel=True + topAlg.PythiaRhad.RunIntermediateModel=False + if (simdict["MODEL"]=='intermediate'): + topAlg.PythiaRhad.RunReggeModel=False + topAlg.PythiaRhad.RunIntermediateModel=True + + if (simdict["CASE"]=='gluino'): + topAlg.PythiaRhad.RunGluinoHadrons=True + topAlg.PythiaRhad.RunStopHadrons=False + topAlg.PythiaRhad.RunSbottomHadrons=False + topAlg.PythiaRhad.randomtshift=50 # +-X ns, overrides tshift if non-zero + topAlg.PythiaRhad.rh_decay=True + topAlg.PythiaRhad.strip_out_rh=True + topAlg.PythiaRhad.boost_rh_to_rest_frame=True + topAlg.PythiaRhad.rotate_rh=True + topAlg.PythiaRhad.translate_rh_to_stopping_position=True + topAlg.PythiaRhad.StoppingInput = [ [ 0,0,0,0,0,0 ] ] + try: + include("StoppingInput.txt") + except: + pass + topAlg.PythiaRhad.PythiaCommand += ["pymssm imss 5 0",#allow pythia to calculate squark masses/mixings + "pymssm rmss 3 "+str(simdict["MASS"])+".0", "pymssm rmss 1 "+str(MASSX), #gluino and neutralino masses + "pymssm rmss 2 2000.0", "pymssm rmss 4 2000.0", + "pymssm rmss 8 1600.0", "pymssm rmss 9 1400.0", "pymssm rmss 10 1600.0", + "pymssm rmss 11 1400.0", "pymssm rmss 12 1500.0", + #decays into gluons + "pymssm rmss 21 "+str(MASSX)+"e9", "pymssm imss 11 1", #ok to use the Gravitino + "pymssm rmss 29 7.0e5", #planck mass, controls BR(gluino->g+Gravitino) + "pydat3 mdcy 1000022 1 0", #kill neutralino decays + #------------------ + #"pydat1 mstj 45 6", #allow CMshower->ttbar in gluino decays + #"pydat1 mstj 43 1", #z definition in CM shower + "pysubs msel 0", "pysubs msub 243 1", "pysubs msub 244 1", "pypars mstp 111 0", + "pypars mstp 127 1",#allow to continue even if there's no processes with non-vanishing xs + "pyinit pylisti 12", #dumps the full decay table, etc. + #"pyinit pylistf 1", #dumps pythia event + "pyinit dumpr 0 100" #,"pystat 2" + ] + if simdict.has_key("NOGLUINOGLUONDECAY"): + print "ACH123: NOGLUINOGLUONDECAY" + topAlg.PythiaRhad.PythiaCommand += [ + "pydat3 mdme 1975 1 0"] + if simdict.has_key("NOGLUINOLIGHTSQUARKDECAY"): + print "ACH123: NOGLUINOLIGHTSQUARKDECAY" + topAlg.PythiaRhad.PythiaCommand += [ + "pydat3 mdme 2000 1 0","pydat3 mdme 2001 1 0","pydat3 mdme 2002 1 0","pydat3 mdme 2003 1 0","pydat3 mdme 2004 1 0"] + if simdict.has_key("NOGLUINOTTBARDECAY"): + print "ACH123: NOGLUINOTTBARDECAY" + topAlg.PythiaRhad.PythiaCommand += [ + "pydat3 mdme 2005 1 0"] + if ('GBALLPROB' in globals()): + topAlg.PythiaRhad.GluinoBallProbability=GBALLPROB + elif (simdict["CASE"]=='stop'): + topAlg.PythiaRhad.RunGluinoHadrons=False + topAlg.PythiaRhad.RunStopHadrons=True + topAlg.PythiaRhad.RunSbottomHadrons=False + topAlg.PythiaRhad.randomtshift=50 # +-X ns, overrides tshift if non-zero + topAlg.PythiaRhad.rh_decay=True + topAlg.PythiaRhad.strip_out_rh=True + topAlg.PythiaRhad.boost_rh_to_rest_frame=True + topAlg.PythiaRhad.rotate_rh=True + topAlg.PythiaRhad.translate_rh_to_stopping_position=True + topAlg.PythiaRhad.StoppingInput = [ [ 0,0,0,0,0,0 ] ] + try: + include("StoppingInput.txt") + except: + pass + topAlg.PythiaRhad.PythiaCommand += ["pymssm imss 1 1", "pymssm imss 3 1", "pymssm imss 5 1", + "pymssm rmss 12 "+str(simdict["MASS"])+".0", "pymssm rmss 1 "+str(MASSX), #stop and neutralino masses + "pymssm rmss 2 4000.0", "pymssm rmss 4 4000.0", + "pymssm rmss 7 4000.0", "pymssm rmss 8 4000.0", + "pymssm rmss 9 4000.0", "pymssm rmss 10 4000.0", + "pymssm rmss 11 4000.0", "pymssm rmss 3 4000.0", + #decays into gluons + "pymssm rmss 21 "+str(MASSX)+"e9", "pymssm imss 11 1", #ok to use the Gravitino + "pymssm rmss 29 7.0e6", #planck mass, controls BR(gluino->g+Gravitino) + "pydat3 mdcy 1000022 1 0", #kill neutralino decays + #------------------ + #"pydat1 mstj 45 6", #allow CMshower->ttbar in gluino decays + #"pydat1 mstj 43 1", #z definition in CM shower + "pysubs msel 0", "pysubs msub 261 1", "pysubs msub 264 1", "pypars mstp 111 0", + "pyinit pylisti 12", #dumps the full decay table, etc. + #"pyinit pylistf 1", #dumps pythia event + "pyinit dumpr 0 100" #,"pystat 2" + ] + elif (simdict["CASE"]=='sbottom'): + topAlg.PythiaRhad.RunGluinoHadrons=False + topAlg.PythiaRhad.RunStopHadrons=False + topAlg.PythiaRhad.RunSbottomHadrons=True + topAlg.PythiaRhad.randomtshift=50 # +-X ns, overrides tshift if non-zero + topAlg.PythiaRhad.rh_decay=True + topAlg.PythiaRhad.strip_out_rh=True + topAlg.PythiaRhad.boost_rh_to_rest_frame=True + topAlg.PythiaRhad.rotate_rh=True + topAlg.PythiaRhad.translate_rh_to_stopping_position=True + topAlg.PythiaRhad.StoppingInput = [ [ 0,0,0,0,0,0 ] ] + try: + include("StoppingInput.txt") + except: + pass + topAlg.PythiaRhad.PythiaCommand += ["pymssm imss 1 1", "pymssm imss 3 1", "pymssm imss 5 1", + "pymssm rmss 11 "+str(simdict["MASS"])+".0", "pymssm rmss 1 "+str(MASSX), #sbottom and neutralino masses + "pymssm rmss 2 4000.0", "pymssm rmss 4 4000.0", + "pymssm rmss 7 4000.0", "pymssm rmss 8 4000.0", + "pymssm rmss 9 4000.0", "pymssm rmss 10 4000.0", + "pymssm rmss 3 4000.0", "pymssm rmss 12 4000.0", + #decays into gluons + "pymssm rmss 21 "+str(MASSX)+"e9", "pymssm imss 11 1", #ok to use the Gravitino + "pymssm rmss 29 7.0e6", #planck mass, controls BR(gluino->g+Gravitino) + "pydat3 mdcy 1000022 1 0", #kill neutralino decays + #"pydat1 parj 64 -10000000.0", + #"pydat3 mdcy 5 1 1", + #------------------ + #"pydat1 mstj 45 6", #allow CMshower->ttbar in gluino decays + #"pydat1 mstj 43 1", #z definition in CM shower + "pysubs msel 0", "pysubs msub 287 1", "pysubs msub 289 1", "pypars mstp 111 0", + "pyinit pylisti 12", #dumps the full decay table, etc. + #"pyinit pylistf 1", #dumps pythia event + "pyinit dumpr 0 100" #,"pystat 2" + ] + + + +del doG4SimConfig, simdict, MASSX diff --git a/Simulation/SimulationJobOptions/share/subdetectors/postInclude.SCT_EndCapsOffDigitConfig.py b/Simulation/SimulationJobOptions/share/subdetectors/postInclude.SCT_EndCapsOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..92c275c5c8488abece67e67e4873e3aec8178438 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/subdetectors/postInclude.SCT_EndCapsOffDigitConfig.py @@ -0,0 +1,21 @@ +######################################################### +# +# SimulationJobOptions/postOptions.SCT_EndCapsOffDigitConfig.py +# John Chapman +# +# Switches off Digitization of the SCT EndCaps. +# +# This job option should be added via the postInclude +# command line argument. +# +######################################################### + +from AthenaCommon.DetFlags import DetFlags +if DetFlags.digitize.SCT_on(): + from AthenaCommon.AlgSequence import AlgSequence + job = AlgSequence() + from SCT_Digitization.SCT_DigitizationConf import SCT_Digitization + sct = job.SCT_Digitization + sct.BarrelOnly=True #only RDOs from Barrel Modules will be created +else: + logDigitization_flags.warning('Attempted to switch off SCT EndCaps when the whole SCT is already switched off..') diff --git a/Simulation/SimulationJobOptions/share/subdetectors/preInclude.BCMOffDigitConfig.py b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.BCMOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..9707b382e16904a1b3add14f19108d606c04f6e2 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.BCMOffDigitConfig.py @@ -0,0 +1,6 @@ +if not 'DetFlags' in dir(): + #if you configure one detflag, you're responsible for configuring them all! + from AthenaCommon.DetFlags import DetFlags + DetFlags.all_setOn() +DetFlags.BCM_setOff() +DetFlags.Print() diff --git a/Simulation/SimulationJobOptions/share/subdetectors/preInclude.CaloOffDigitConfig.py b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.CaloOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..92dab3f845a05660651910f16f61578a681fdf29 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.CaloOffDigitConfig.py @@ -0,0 +1,6 @@ +if not 'DetFlags' in dir(): + #if you configure one detflag, you're responsible for configuring them all! + from AthenaCommon.DetFlags import DetFlags + DetFlags.all_setOn() +DetFlags.Calo_setOff() +#DetFlags.Print() diff --git a/Simulation/SimulationJobOptions/share/subdetectors/preInclude.ForwardOffDigitConfig.py b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.ForwardOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..1d12931280a3feae4603c3f2f4062cce445a4ccb --- /dev/null +++ b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.ForwardOffDigitConfig.py @@ -0,0 +1,5 @@ +if not 'DetFlags' in dir(): + #if you configure one detflag, you're responsible for configuring them all! + from AthenaCommon.DetFlags import DetFlags + DetFlags.all_setOn() +DetFlags.Forward_setOff() \ No newline at end of file diff --git a/Simulation/SimulationJobOptions/share/subdetectors/preInclude.IDOffDigitConfig.py b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.IDOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..fb7d105852b59c460279f31bd7aa85a6c265812c --- /dev/null +++ b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.IDOffDigitConfig.py @@ -0,0 +1,6 @@ +if not 'DetFlags' in dir(): + #if you configure one detflag, you're responsible for configuring them all! + from AthenaCommon.DetFlags import DetFlags + DetFlags.all_setOn() +DetFlags.ID_setOff() +#DetFlags.Print() diff --git a/Simulation/SimulationJobOptions/share/subdetectors/preInclude.MuonOffDigitConfig.py b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.MuonOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..541732c5b3c02addbe9681eb8a521a429ca6fd5a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.MuonOffDigitConfig.py @@ -0,0 +1,6 @@ +if not 'DetFlags' in dir(): + #if you configure one detflag, you're responsible for configuring them all! + from AthenaCommon.DetFlags import DetFlags + DetFlags.all_setOn() +DetFlags.Muon_setOff() +#DetFlags.Print() diff --git a/Simulation/SimulationJobOptions/share/subdetectors/preInclude.PixelOffDigitConfig.py b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.PixelOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..b1e5c029e1690f783dd81839a27380a9f84c6e96 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.PixelOffDigitConfig.py @@ -0,0 +1,6 @@ +if not 'DetFlags' in dir(): + #if you configure one detflag, you're responsible for configuring them all! + from AthenaCommon.DetFlags import DetFlags + DetFlags.all_setOn() +DetFlags.pixel_setOff() +DetFlags.Print() diff --git a/Simulation/SimulationJobOptions/share/subdetectors/preInclude.SCTOffDigitConfig.py b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.SCTOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..cdfe48fb2bcf1ea63dbda23cb1d819ffa05c58c5 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.SCTOffDigitConfig.py @@ -0,0 +1,6 @@ +if not 'DetFlags' in dir(): + #if you configure one detflag, you're responsible for configuring them all! + from AthenaCommon.DetFlags import DetFlags + DetFlags.all_setOn() +DetFlags.SCT_setOff() +DetFlags.Print() diff --git a/Simulation/SimulationJobOptions/share/subdetectors/preInclude.TRTOffDigitConfig.py b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.TRTOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..0c9ab0b9a9c9410679b24c21e137ea4b0712e178 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.TRTOffDigitConfig.py @@ -0,0 +1,6 @@ +if not 'DetFlags' in dir(): + #if you configure one detflag, you're responsible for configuring them all! + from AthenaCommon.DetFlags import DetFlags + DetFlags.all_setOn() +DetFlags.TRT_setOff() +DetFlags.Print() diff --git a/Simulation/SimulationJobOptions/share/subdetectors/preInclude.TruthOffDigitConfig.py b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.TruthOffDigitConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..d2efd231d88ad1153638bc10a1075b8050429665 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/subdetectors/preInclude.TruthOffDigitConfig.py @@ -0,0 +1,6 @@ +if not 'DetFlags' in dir(): + #if you configure one detflag, you're responsible for configuring them all! + from AthenaCommon.DetFlags import DetFlags + DetFlags.all_setOn() +DetFlags.Truth_setOff() +#DetFlags.Print() diff --git a/Simulation/SimulationJobOptions/share/susy/postInclude.StoppedParticleWrite.py b/Simulation/SimulationJobOptions/share/susy/postInclude.StoppedParticleWrite.py new file mode 100644 index 0000000000000000000000000000000000000000..66d04c680ce61b329bb4c6dc104c84af68b109dd --- /dev/null +++ b/Simulation/SimulationJobOptions/share/susy/postInclude.StoppedParticleWrite.py @@ -0,0 +1,8 @@ +from G4AtlasApps import AtlasG4Eng +simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration +if not 'DECAYS' in simdict: + simdict['DECAYS'] = True + print 'INFO: Added DECAYS=True to simdict' +else: + print 'WARNING: DECAYS key already set to',simdict['DECAYS'],'not sure if I should change that.' + diff --git a/Simulation/SimulationJobOptions/share/susy/preInclude.DecaysHaas.py b/Simulation/SimulationJobOptions/share/susy/preInclude.DecaysHaas.py new file mode 100644 index 0000000000000000000000000000000000000000..b47cf527c47f4097923c8f666c994a37f4e49b2f --- /dev/null +++ b/Simulation/SimulationJobOptions/share/susy/preInclude.DecaysHaas.py @@ -0,0 +1,23 @@ + +from G4AtlasApps import AtlasG4Eng +simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration +if not 'DECAYS' in simdict: + simdict['DECAYS'] = True + print "ACH12345: ",simdict + pass +else: + print 'WARNING: DECAYS key already set to',simdict['DECAYS'],'not sure if I should change that.' + + +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +from G4AtlasApps.SimFlags import simFlags +#simFlags.NeutronTimeCut = 175 # 150 + 25 +#simFlags.ReadTR = athenaCommonFlags.PoolEvgenInput()[0] +if simFlags.EventFilter.statusOn: + simFlags.EventFilter.get_Value()['EtaPhiFilters'] = False + +#import G4AtlasApps.AtlasCosmicTrackRecordJob +from AthenaCommon.AppMgr import ServiceMgr +from PartPropSvc.PartPropSvcConf import PartPropSvc +ServiceMgr += PartPropSvc() + diff --git a/Simulation/SimulationJobOptions/share/susy/preInclude.LLP_truth_setup.py b/Simulation/SimulationJobOptions/share/susy/preInclude.LLP_truth_setup.py new file mode 100644 index 0000000000000000000000000000000000000000..4a72baf37f813d75bc3f681480169604d2422d7a --- /dev/null +++ b/Simulation/SimulationJobOptions/share/susy/preInclude.LLP_truth_setup.py @@ -0,0 +1,29 @@ + +# Defines a long lived particle decay strategy strategy +# (standard simulation uses level 1) +def add_LLP_truth_strategy(): + from G4AtlasApps import PyG4Atlas + MCTruthMenu=PyG4Atlas.G4AtlasEngine.menu_MCTruth() + LLPstrg=PyG4Atlas.MCTruthStrg('G4TruthStrategies', 'LLP','Atlas::Atlas',0) + MCTruthMenu.add_McTruthStrategy(LLPstrg) + + # Overly paranoid addition of regions + LLPstrg.add_Volumes('BeamPipe::BeamPipe', 1) + LLPstrg.add_Volumes('IDET::IDET', 1) + LLPstrg.add_Volumes('CALO::CALO', 1) + LLPstrg.add_Volumes('Muon::MuonSys', 1) + LLPstrg.add_Volumes('MUONQ02::MUONQ02', 1) + + LLPstrg.add_Volumes('Pixel::Pixel', 1) + LLPstrg.add_Volumes('SCT::SCT', 1) + LLPstrg.add_Volumes('TRT::TRT', 1) + LLPstrg.add_Volumes('Tile::Tile', 1) + + ## Should not need to add additional regions - this works on volume hierarchy + #LLPstrg.add_Volumes('HEC', 1) + #LLPstrg.add_Volumes('EMB', 1) + #LLPstrg.add_Volumes('EMEC', 1) + #LLPstrg.add_Volumes('FCAL', 1) + +from G4AtlasApps.SimFlags import simFlags +simFlags.InitFunctions.add_function("preInitMCTruth", add_LLP_truth_strategy) \ No newline at end of file diff --git a/Simulation/SimulationJobOptions/share/susy/preInclude.MuonFullTruth.py b/Simulation/SimulationJobOptions/share/susy/preInclude.MuonFullTruth.py new file mode 100644 index 0000000000000000000000000000000000000000..efe7f741b094b6a1ab646688f7277c89da836058 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/susy/preInclude.MuonFullTruth.py @@ -0,0 +1,32 @@ +################################################# +# preInclude.MuonFullTruth.py +# +# preInclude fragment for simulation of LLP that +# decay in the muon spectrometer. This fragment +# will enable the standard truth strategies in +# the spectrometer, adding the full showers to +# the truth record. Because the muon system is +# substantial in the forward region, it should +# NOT be used for any standard production. +################################################# + +def muon_llp_modify_truth_strategies(): + ## Modifying truth strategies as requested by e/gamma group + from G4AtlasApps import AtlasG4Eng + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.listStrategies() + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Bremsstrahlung', 'MUON::MUON', 1) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Conversion', 'MUON::MUON', 1) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Decay', 'MUON::MUON', 1) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Ionization', 'MUON::MUON', 1) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('HadronicInteraction', 'MUON::MUON',1) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Compton', 'MUON::MUON', 1) + + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Bremsstrahlung', 'MUONQ02::MUONQ02', 1) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Conversion', 'MUONQ02::MUONQ02', 1) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Decay', 'MUONQ02::MUONQ02', 1) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Ionization', 'MUONQ02::MUONQ02', 1) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('HadronicInteraction', 'MUONQ02::MUONQ02',1) + AtlasG4Eng.G4Eng._ctrl.mctruthMenu.activateStrategy('Compton', 'MUONQ02::MUONQ02', 1) + +## Register the callback +simFlags.InitFunctions.add_function("postInit", muon_llp_modify_truth_strategies) diff --git a/Simulation/SimulationJobOptions/share/susy/preInclude.ReadStoppedParticles.py b/Simulation/SimulationJobOptions/share/susy/preInclude.ReadStoppedParticles.py new file mode 100644 index 0000000000000000000000000000000000000000..b86a0624b2253ae9a50dcab8800b511e3af567f8 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/susy/preInclude.ReadStoppedParticles.py @@ -0,0 +1,52 @@ +## Configuration to read neutron background track records + +from G4AtlasApps import AtlasG4Eng +simdict = AtlasG4Eng.G4Eng.Dict_SpecialConfiguration +if not 'DECAYS' in simdict: + simdict['DECAYS'] = True +else: + print 'WARNING: DECAYS key already set to',simdict['DECAYS'],'not sure if I should change that.' + +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +from G4AtlasApps.SimFlags import simFlags +simFlags.NeutronTimeCut = 175 # 150 + 25 +simFlags.ReadTR = athenaCommonFlags.PoolEvgenInput()[0] +if simFlags.EventFilter.statusOn: + simFlags.EventFilter.switchFilterOff('EtaPhiFilters') + simFlags.EventFilter.switchFilterOff('VertexPositioner') + simFlags.VertexFromCondDB.set_Value_and_Lock(False) + +import G4AtlasApps.AtlasCosmicTrackRecordJob +from AthenaCommon.AppMgr import ServiceMgr +from PartPropSvc.PartPropSvcConf import PartPropSvc +ServiceMgr += PartPropSvc() + + +def readStoppedParticles(): + from G4AtlasApps.SimFlags import simFlags + if not simFlags.RandomSeedList.checkForExistingSeed( "COSMICS" ): + 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() + + 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() + +simFlags.InitFunctions.add_function("preInit", readStoppedParticles) + + +#from Pythia_i.Pythia_iConf import Pythia +#topSequence += Pythia() +#topSequence.Pythia.MeanInt=0 + +#from PythiaRhad_i.PythiaRhad_iConf import PythiaRhad +#topSequence +=PythiaRhad() +#topSequence.PythiaRhad.MeanInt=0 + diff --git a/Simulation/SimulationJobOptions/share/susy/preInclude.StoppedParticleWrite.py b/Simulation/SimulationJobOptions/share/susy/preInclude.StoppedParticleWrite.py new file mode 100644 index 0000000000000000000000000000000000000000..17cd1372dea08b1e8780c8bfa89ab42876ee2da9 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/susy/preInclude.StoppedParticleWrite.py @@ -0,0 +1,7 @@ +## Set some sim flags to take care of Neutron BG +from G4AtlasApps.SimFlags import simFlags +if 'runArgs' in dir() and hasattr(runArgs,'outputEvgenFile'): + simFlags.StoppedParticleFile = runArgs.outputEvgenFile +else: + simFlags.StoppedParticleFile = 'StoppedPartPositions.pool.root' +