ATLAS Offline Software
simTrfArgs.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 import logging
4 msg = logging.getLogger(__name__)
5 
6 from PyJobTransforms.trfArgClasses import argFactory, argFile, argInt, argFloat, argList, argString, argBool, argPOOLFile, argEVNT_TRFile, argHITSFile, argRDOFile, argSubstepInt, argSubstepBool, argSubstepString
7 #from PyJobTransforms.trfLogger import stdLogLevels
8 #from PyJobTransforms.trfDecorators import silent
9 #from PyJobTransforms.trfExitCodes import trfExit
10 #import PyJobTransforms.trfArgClasses as trfArgClasses
11 
12 
14  parser.defineArgGroup('ForwardDetector', 'Forward Detector Options')
15  parser.add_argument('--LucidOn',
16  type=argFactory(argBool),
17  help='Switch on lucid simulation/digitization.', group='ForwardDetector')
18  parser.add_argument('--AFPOn',
19  type=argFactory(argBool),
20  help='Switch on AFP simulation/digitization.', group='ForwardDetector')
21  parser.add_argument('--ALFAOn',
22  type=argFactory(argBool),
23  help='Switch on ALFA simulation/digitization.', group='ForwardDetector')
24  parser.add_argument('--ZDCOn',
25  type=argFactory(argBool),
26  help='Switch on ZDC simulation/digitization.', group='ForwardDetector')
27  parser.add_argument('--FwdRegionOn',
28  type=argFactory(argBool),
29  help='Switch on FwdRegion simulation/digitization.', group='ForwardDetector')
30  parser.add_argument('--HGTDOn',
31  type=argFactory(argBool),
32  help='Switch on HGTD simulation/digitization.', group='ForwardDetector')
33 
34 
35 def addBasicDigiArgs(parser):
36  # Use arggroup to get these arguments in their own sub-section (of --help)
37  parser.defineArgGroup('Digi', 'Digitization specific options')
38  parser.add_argument('--inputHITSFile', '--inputHitsFile', nargs='+',
39  type=argFactory(argHITSFile, io='input'),
40  help='Input HITS file', group='Digi')
41  parser.add_argument('--outputRDOFile', nargs='+',
42  type=argFactory(argRDOFile, io='output'),
43  help='Output RDO file', group='Digi')
44  parser.add_argument('--outputRDO_FILTFile', nargs='+',
45  type=argFactory(argRDOFile, io='output'),
46  help='Output Filtered RDO file', group='Digi')
47  parser.add_argument('--digiSeedOffset1',
48  type=argFactory(argInt),
49  help='Offset for first random seed', group='Digi')
50  parser.add_argument('--digiSeedOffset2',
51  type=argFactory(argInt),
52  help='Offset for second random seed', group='Digi')
53  parser.add_argument('--digiRndmSvc',
54  type=argFactory(argString),
55  help='Random Number Service to use.', group='Digi' )
56  parser.add_argument('--digiSteeringConf',
57  type=argFactory(argString),
58  help='Required configuration fod the digitization job', group='Digi' )
59  parser.add_argument('--samplingFractionDbTag',
60  type=argFactory(argString),
61  help='This argument can be used to override the PhysicsList retrieved from the Simulation metadata. This information is used in the LAr sampling fraction data base tag used by LArfSamplG4Phys.', group='Digi')
62  parser.add_argument('--doAllNoise',
63  type=argFactory(argBool),
64  help='Overall control of noise simulation during digitization - useful for overlay jobs, will set doCaloNoise, doMuonNoise, doInDetNoise digitizationFlags.', group='Digi')
65  parser.add_argument('--AddCaloDigi',
66  type=argFactory(argBool),
67  help='Save Calo Digits too, not just RawChannels.', group='Digi')
68  parser.add_argument('--PileUpPresampling', '--PileUpPremixing',
69  type=argFactory(argBool),
70  help='Run digitization with pile-up presampling configuration.', group='Digi')
71 
72 
73 def addPileUpTrfArgs(parser):
74  parser.defineArgGroup('PileUp', 'Pile-Up Options')
75  parser.add_argument('--testPileUpConfig',
76  type=argFactory(argBool),
77  help='Calculates the number of background events that will be require for a given pile-up configuration.', group='PileUp')
78  parser.add_argument('--inputLowPtMinbiasHitsFile', nargs='+', action='append',
79  type=argFactory(argHITSFile, io='input', executor=['EVNTtoRDO','HITtoRDO'], auxiliaryFile=True),
80  help='Input HITS file for low pT minimum bias pile-up sub-events', group='PileUp')
81  parser.add_argument('--inputHighPtMinbiasHitsFile', nargs='+', action='append',
82  type=argFactory(argHITSFile, io='input', executor=['EVNTtoRDO','HITtoRDO'], auxiliaryFile=True),
83  help='Input HITS file for high pT minimum bias pile-up sub-events', group='PileUp')
84  parser.add_argument('--inputCavernHitsFile', nargs='+', action='append',
85  type=argFactory(argHITSFile, io='input', executor=['EVNTtoRDO','HITtoRDO'], auxiliaryFile=True),
86  help='Input HITS file for cavern background sub-events', group='PileUp')
87  parser.add_argument('--inputBeamHaloHitsFile', nargs='+', action='append',
88  type=argFactory(argHITSFile, io='input', executor=['EVNTtoRDO','HITtoRDO'], auxiliaryFile=True),
89  help='Input HITS file for beam halo sub-events', group='PileUp')
90  parser.add_argument('--inputBeamGasHitsFile', nargs='+', action='append',
91  type=argFactory(argHITSFile, io='input', executor=['EVNTtoRDO','HITtoRDO'], auxiliaryFile=True),
92  help='Input HITS file for beam gas sub-events', group='PileUp')
93  parser.add_argument('--numberOfLowPtMinBias',
94  type=argFactory(argFloat),
95  help='Sets the intial number low pt minbias events to add on average per bunch crossing. Overrides any values set in joboproperties by preIncludes or preExecs. May later be overridden during the job by run-dependent MC code.', group='PileUp')
96  parser.add_argument('--numberOfHighPtMinBias',
97  type=argFactory(argFloat),
98  help='Sets the intial number high pt minbias events to add on average per bunch crossing. Overrides any values set in joboproperties by preIncludes or preExecs. May later be overridden during the job by run-dependent MC code.', group='PileUp')
99  parser.add_argument('--numberOfBeamHalo',
100  type=argFactory(argFloat),
101  help='Sets the intial number beam halo events to add on average per bunch crossing. Overrides any values set in joboproperties by preIncludes or preExecs. May later be overridden during the job by run-dependent MC code.', group='PileUp')
102  parser.add_argument('--numberOfBeamGas',
103  type=argFactory(argFloat),
104  help='Sets the intial number beam gas events to add on average per bunch crossing. Overrides any values set in joboproperties by preIncludes or preExecs. May later be overridden during the job by run-dependent MC code.', group='PileUp')
105  parser.add_argument('--numberOfCavernBkg',
106  type=argFactory(argInt),
107  help='Sets the intial number cavern background events to add on average per bunch crossing. Overrides any values set in joboproperties by preIncludes or preExecs. May later be overridden during the job by run-dependent MC code. NB this value is an integer!', group='PileUp')
108  parser.add_argument('--bunchSpacing',
109  type=argFactory(argFloat), #FIXME This runArg should probably inherit from argInt rather than argFloat
110  help='Overrides any values of digitizationFlags.bunchSpacing by preIncludes or preExecs. When using bunch structure is being usedthis sets the time between successive elements in the bunch structure pattern. If not using bunch-structure, this can be used to run pile-up with a fixed X ns spacing between filled bunch-crossings.', group='PileUp')
111  parser.add_argument('--pileupInitialBunch',
112  type=argFactory(argInt),
113  help='Initial (relative) bunch crossing to use pileup - default -32', group='PileUp')
114  parser.add_argument('--pileupFinalBunch',
115  type=argFactory(argInt),
116  help='Initial (relative) bunch crossing to use pileup - default 32', group='PileUp')
117 
118 
119 def addCosmicsTrfArgs(parser):
120  parser.defineArgGroup('Cosmics', 'Cosmic Ray Simulation Options')
121  parser.add_argument('--CosmicFilterVolume',
122  type=argFactory(argString),
123  help='Main Cosmic Filter Volume - tracks have to pass through this volume for the event to be written out.', group='Cosmics')
124  parser.add_argument('--CosmicFilterVolume2',
125  type=argFactory(argString),
126  help='Secondary Cosmic Filter Volume (Optional) - if specified tracks also have to pass through this volume for the event to be written out.', group='Cosmics')
127  parser.add_argument('--CosmicPtSlice',
128  type=argFactory(argString),
129  help='Cosmic Pt Slice', group='Cosmics')
130 
131 
132 def addTrackRecordArgs(parser):
133  parser.defineArgGroup('TrackRecords', 'TrackRecord related options')
134  parser.add_argument('--inputEVNT_TRFile', nargs='+',
135  type=argFactory(argEVNT_TRFile, io='input'),
136  help='Input Track Record file - sometimes used in Cosmic ray or cavern background simulation jobs.', group='TrackRecords')
137  parser.add_argument('--outputEVNT_TRFile', nargs='+',
138  type=argFactory(argEVNT_TRFile, io='output', type='evnt'),
139  help='Output Track Record file - sometimes used in Cosmic ray or cavern background simulation jobs.', group='TrackRecords')
140  parser.add_argument('--trackRecordType',
141  type=argFactory(argSubstepString), metavar='CONFIGNAME',
142  help='Specify the type of TrackRecords being read/written E.g. cosmics, cavern, stopped', group='TrackRecords')
143 
144 
145 
146 def addSim_tfArgs(parser):
147  parser.defineArgGroup('Sim_tf', 'Sim_tf specific options')
148  parser.add_argument('--simulator',
149  type=argFactory(argString), metavar='CONFIGNAME',
150  help='Specify a named configuration. E.g. MC12G4, ATLFASTII ATLFASTIIF', group='Sim_tf')
151 
152 
153 def addTestBeamArgs(parser):
154  parser.defineArgGroup('TestBeam', 'TestBeam_tf specific options')
155  parser.add_argument('--testBeamConfig',
156  type=argFactory(argString), metavar='CONFIGNAME',
157  help='Specify a named test beam configuration. E.g. ctb, tbtile', group='TestBeam')
158  parser.add_argument('--Eta',
159  type=argFactory(argFloat),
160  help='Only set Eta if you want to simulate an eta-projective scan', group='TestBeam')
161  parser.add_argument('--Theta',
162  type=argFactory(argFloat),
163  help='For 90 degrees scans put Theta=+/-90. Positive theta means the beam enters from positive eta side (as defined in CTB setup!)', group='TestBeam')
164  parser.add_argument('--Z',
165  type=argFactory(argFloat),
166  help='Z coordinate is the distance from ATLAS center to the desired impact point. Sensitive part starts at Z=2300, ends at Z=2300+3*100+3*130+3*150+2*190=3820', group='TestBeam')
167 
168 
169 def addSimIOTrfArgs(parser):
170  parser.defineArgGroup('SimIO', 'Simulation I/O Options')
171  parser.add_argument('--inputEVNTFile', '--inputEvgenFile', nargs='+',
172  type=argFactory(argPOOLFile, io='input'),
173  help='Input evgen file', group='SimIO')
174  parser.add_argument('--outputHITSFile', '--outputHitsFile', nargs='+',
175  type=argFactory(argHITSFile, io='output'),
176  help='Output HITS file', group='SimIO')
177  parser.add_argument('--firstEvent', metavar='FIRSTEVENT',
178  type=argFactory(argInt), help='The event number to use for the first Event', group='SimIO')
179 
180 
182  parser.defineArgGroup('CommonSim', 'Common Simulation Options')
183  parser.add_argument('--physicsList', metavar='PHYSICSLIST',
184  type=argFactory(argString), help='Physics List to be used within Geant4', group='CommonSim')
185  parser.add_argument('--useISF',
186  type=argFactory(argBool), help='Use ISF (only will only work from 17.6.0 onwards)', group='CommonSim')
187  parser.add_argument('--randomSeed', nargs='+', metavar='substep:seed',
188  type=argFactory(argSubstepInt), help='Random seed offset', group='CommonSim')
189  parser.add_argument('--enableLooperKiller', nargs='+', metavar='substep:LooperKiller',
190  type=argFactory(argSubstepBool), help='Should the LooperKiller be used', group='CommonSim')
191  parser.add_argument('--truthStrategy',
192  type=argFactory(argString), metavar='CONFIGNAME',
193  help='Specify the named group of Truth strategies that the simulation should use. E.g. MC12, MC15aPlus, MC16', group='CommonSim')
194 
195 
197  parser.defineArgGroup('SimDigi', 'Common Simulation Options')
198  parser.add_argument('--DataRunNumber',
199  type=argFactory(argInt),
200  help='Override existing run number with this value - deprecated?', group='SimDigi')
201  parser.add_argument('--jobNumber',
202  type=argFactory(argInt),
203  help='The number of this job in the current RunDependentSimulation task.', group='SimDigi')
204  parser.add_argument('--detectors', nargs='+',
205  type=argFactory(argList),
206  help='Detectors autoconfiguration string', group='SimDigi')
207 
208 def addHITSMergeArgs(parser):
209  # Use arggroup to get these arguments in their own sub-section (of --help)
210  parser.defineArgGroup('HITSMerge_tf', 'HITSMerge_tf specific options')
211  parser.add_argument('--inputHITSFile', '--inputHitsFile', nargs='+',
212  type=argFactory(argPOOLFile, io='input', runarg=True, type='hits'),
213  help='Input HITS files', group='HITSMerge_tf')
214  parser.add_argument('--outputHITS_MRGFile', '--outputHits_MRGFile', '--outputHITSFile', '--outputHitsFile', nargs='+',
215  type=argFactory(argPOOLFile, io='output', runarg=True, type='hits'),
216  help='Output HITS file', group='HITSMerge_tf')
217  parser.add_argument('--inputLogsFile', nargs='+',
218  type=argFactory(argFile, io='input', runarg=True, type='log'),
219  help='Input Log files', group='HITSMerge_tf')
220 
221 
223  # Use arggroup to get these arguments in their own sub-section (of --help)
224  parser.defineArgGroup('ReSimulation', 'ReSimulation specific options')
225  parser.add_argument('--inputHITSFile', '--inputHitsFile', nargs='+',
226  type=argFactory(argPOOLFile, io='input', runarg=True, type='hits'),
227  help='Input HITS files', group='ReSimulation')
228  parser.add_argument('--outputHITS_RSMFile', nargs='+',
229  type=argFactory(argHITSFile, io='output', runarg=True, type='hits'),
230  help='Output HITS file', group='ReSimulation')
231 
232 
233 def addHITSValidArgs(parser):
234  parser.defineArgGroup('SimValid_tf', 'SimValid_tf specific options')
235  parser.add_argument('--inputHITSFile', nargs = '+',
236  type=argFactory(argPOOLFile, io='input'),
237  help='Input HITS files', group='SimValid_tf')
238  parser.add_argument('--outputHIST_SIMFile', nargs = '+',
239  type=argFactory(argFile, io='output'),
240  help=' Output HIST_SIM files', group='SimValid_tf')
241  parser.add_argument('--localgeo',
242  type=argFactory(argBool),
243  help='Use local Geo XML file', group='SimValid_tf')
244 
245 
246 def addRDOValidArgs(parser):
247  parser.defineArgGroup('DigiValid_tf', 'DigiValid_tf specific options')
248  parser.add_argument('--inputRDOFile', nargs = '+',
249  type=argFactory(argPOOLFile, io='input'),
250  help='Input RDO files', group='DigiValid_tf')
251  parser.add_argument('--outputHIST_DIGIFile', nargs = '+',
252  type=argFactory(argFile, io='output'),
253  help=' Output HIST_DIGI files', group='DigiValid_tf')
254  parser.add_argument('--PileUpPresampling',
255  type=argFactory(argBool),
256  help='Running over a presamped RDO file.', group='DigiValid_tf')
257  parser.add_argument('--localgeo',
258  type=argFactory(argBool),
259  help='Use local Geo XML file', group='DigiValid_tf')
python.simTrfArgs.addCommonSimTrfArgs
def addCommonSimTrfArgs(parser)
Add common Simulation transform arguments to an argparse ArgumentParser.
Definition: simTrfArgs.py:181
python.simTrfArgs.addCommonSimDigTrfArgs
def addCommonSimDigTrfArgs(parser)
Add common Simulation/Digitization transform arguments to an argparse ArgumentParser.
Definition: simTrfArgs.py:196
python.simTrfArgs.addHITSMergeArgs
def addHITSMergeArgs(parser)
Definition: simTrfArgs.py:208
python.simTrfArgs.addSim_tfArgs
def addSim_tfArgs(parser)
Add arguments used only by ISF-based simulation jobs.
Definition: simTrfArgs.py:146
PyJobTransforms.trfArgClasses
Transform argument class definitions.
python.simTrfArgs.addRDOValidArgs
def addRDOValidArgs(parser)
Add RDO validation transform arguments.
Definition: simTrfArgs.py:246
python.simTrfArgs.addForwardDetTrfArgs
def addForwardDetTrfArgs(parser)
Add Forward Detector transform arguments to an argparse ArgumentParser.
Definition: simTrfArgs.py:13
python.simTrfArgs.addBasicDigiArgs
def addBasicDigiArgs(parser)
Add Basic digitization arguments to an argparse ArgumentParser.
Definition: simTrfArgs.py:35
python.simTrfArgs.addTestBeamArgs
def addTestBeamArgs(parser)
Add arguments used only by TestBeam simulation jobs.
Definition: simTrfArgs.py:153
python.simTrfArgs.addSimIOTrfArgs
def addSimIOTrfArgs(parser)
Add common Simulation transform arguments to an argparse ArgumentParser.
Definition: simTrfArgs.py:169
python.simTrfArgs.addHITSValidArgs
def addHITSValidArgs(parser)
Add HITS validation transform arguments.
Definition: simTrfArgs.py:233
python.simTrfArgs.addPileUpTrfArgs
def addPileUpTrfArgs(parser)
Add Pile-up related transform arguments to an argparse ArgumentParser.
Definition: simTrfArgs.py:73
python.simTrfArgs.addCosmicsTrfArgs
def addCosmicsTrfArgs(parser)
Add Cosmics related transform arguments to an argparse ArgumentParser.
Definition: simTrfArgs.py:119
python.simTrfArgs.addTrackRecordArgs
def addTrackRecordArgs(parser)
Add arguments used by simulation jobs which may read in or write out TrackRecord files.
Definition: simTrfArgs.py:132
python.simTrfArgs.addReSimulationArgs
def addReSimulationArgs(parser)
Add Re-simulation transform arguments.
Definition: simTrfArgs.py:222