ATLAS Offline Software
|
Functions | |
def | OutputTXTFile () |
============================================================== More... | |
def | _norm (s) |
def | _norm2 (s) |
def | _short2 (s) |
def | find_unique_file (pattern) |
Helper functions for input file handling. More... | |
def | mk_symlink (srcfile, dstfile) |
def | _checkattr (attr, required=False) |
============================================================== More... | |
def | get_immediate_subdirectories (a_dir) |
============================================================== More... | |
def | checkBlackList (relFlavour, cache, generatorName) |
Propagate debug output level requirement to generators. More... | |
def | checkPurpleList (relFlavour, cache, generatorName) |
def | merge_lhe_files (listOfFiles, outputFile) |
Check that there is exactly 1 match. More... | |
Variables | |
xAODKey | |
theApp = acam.theApp | |
genSeq = acam.athMasterSeq.EvgenGenSeq | |
prefiltSeq = acam.athMasterSeq.EvgenPreFilterSeq | |
testSeq = acam.athMasterSeq.EvgenTestSeq | |
filtSeq = acam.athMasterSeq.EvgenFilterSeq | |
topSeq = acas.AlgSequence() | |
anaSeq = topSeq | |
postSeq = topSeq.EvgenPostSeq | |
doFastMonMT | |
AllowIgnoreConfigError | |
Jobs should stop if an include fails. More... | |
evgenLog = logging.getLogger('Generate_ab') | |
CmEnergy | |
Output | |
FirstEvent | |
EvtMax | |
InputEventInfo | |
OutputEventInfo | |
mcEventWeightsKey | |
CorrectHepMC | |
CorrectEventID | |
CorrectRunNumber | |
runNum = int((runArgs.jobConfig[0])[-6:]) | |
MinMaxRunNumbers | |
McEventKey | |
VerboseOutput | |
PrintStyle | |
LastEvent | |
Analyses | |
AnalysisPath | |
HistoFile | |
tuple | FIRST_DIR = (os.environ['JOBOPTSEARCHPATH']).split(":")[0] |
Main job option include Only permit one jobConfig argument for evgen: does more than one ever make sense? More... | |
list | jofiles = [f for f in os.listdir(FIRST_DIR) if (f.startswith('mc') and f.endswith('.py'))] |
list | jofile = jofiles[0] |
Only permit one JO file in each dsid folder. More... | |
tuple | joparts = (os.path.basename(jofile)).split(".") |
bool | officialJO = True |
Perform some consistency checks if this appears to be an "official" production JO. More... | |
tuple | jo_physshortpart = joparts[1] |
Check that there are exactly 3 name parts separated by '. More... | |
int | max_jo_physshort_length = 50 |
tuple | jo_physshortparts = jo_physshortpart.split("_") |
There must be at least 2 physicsShort sub-parts separated by '_': gens, (tune)+PDF, and process. More... | |
string | check_jofiles = "/cvmfs/atlas.cern.ch/repo/sw/Generators/MC16JobOptions/scripts/check_jo_consistency.py" |
NOTE: a further check on physicsShort consistency is done below, after fragment loading. More... | |
gennames = sorted(evgenConfig.generators, key=gen_sortkey) | |
Include the JO fragment. More... | |
tuple | genpart = jo_physshortparts[0] |
Check that the actual generators, tune, and main PDF are consistent with the JO name. More... | |
string | expectedgenpart = ''.join(gennames) |
We want to record that HERWIG was used in metadata, but in the JO naming we just use a "Herwig" label. More... | |
int | rounding = 0 |
Check if the tune/PDF part is needed, and if so whether it's present. More... | |
int | multiInput = runArgs.inputGeneratorFile.count(',')+1 |
list | allowed_nEventsPerJob_lt1000 = [1, 2, 5, 10, 20, 25, 50, 100, 200, 500, 1000] |
string | msg = "evgenConfig.nEventsPerJob = %d: " % evgenConfig.nEventsPerJob |
RequestedOutput | |
poolFile = runArgs.outputEVNTFile | |
StreamEVGEN = AthenaPoolOutputStream("StreamEVGEN", poolFile, asAlg=True, noTag=True , eventInfoKey="EventInfo") | |
InputCollections | |
TakeItemsFromInput | |
ForceRead | |
dsid = os.path.basename(runArgs.jobConfig[0]) | |
Used for pile-up (remove dynamic variables except flavour labels) More... | |
RunNumber | |
NewRunNumber | |
runArgs | |
datFile = None | |
Propagate energy argument to the generators TODO: Standardise energy setting in the GenModule interface. More... | |
eventsFile = None | |
Events files. More... | |
auxfiles | |
keepDir | |
False | |
errorIfNotFound | |
required | |
list | filterNames = [alg.getType() for alg in acas.iter_algseq(filtSeq)] |
list | excludedNames = ['AthSequencer', 'PyAthena::Alg', 'TestHepMC'] |
runPars = RunArguments() | |
nEventsPerJob | |
maxeventsstrategy | |
fixSeq = acam.athMasterSeq.EvgenFixSeq | |
mcFilterHTKey | |
rel = os.popen("echo $AtlasVersion").read() | |
Announce start of JO checkingrelease nimber checking. More... | |
EventsPerRun | |
inputFilesPerJob | |
Include the JO fragment. More... | |
string | lkwfile = "CategoryList.txt" |
Check that the L1 and L2 keywords pairs are in the list of allowed words pairs (and exit if processing an official JO) More... | |
lkwpath = None | |
list | allowed_cat = [] |
Load the allowed categories names from the file. More... | |
allowed_list = ast.literal_eval(line) | |
list | bad_cat = [] |
Check the JO categories against the allowed ones. More... | |
it = iter(evgenConfig.categories) | |
l1 = x | |
l2 = next(it) | |
OneDataHeaderForm | |
gendict = generatorsGetInitialVersionedDictionary(gennames) | |
gennamesvers = generatorsVersionedStringList(gendict) | |
def | errorBL = checkBlackList("AthGeneration",rel,gennames) |
Announce start of JO checkingrelease number checking. More... | |
def | errorPL = checkPurpleList("AthGeneration",rel,gennames) |
bool | inHeader = False |
Reading first event signals that we are done with all the header information Using this approach means the script will properly handle any metadata stored at the beginning of the file. More... | |
holdHeader = header | |
tmp = line.split("=") | |
each input file ends with "</LesHouchesEvents>". More... | |
line = line.replace(tmp[0],str(nevents)) | |
nnn = str(nevents) | |
inputroot = os.path.basename(runArgs.inputGeneratorFile).split(".tar.")[0] | |
Find and symlink dat and event files, so they are available via the name expected by the generator. More... | |
def | realDatFile = find_unique_file('*%s*.dat' % inputroot) |
myinputfiles = runArgs.inputGeneratorFile | |
genInputFiles = myinputfiles.split(',') | |
numberOfFiles = len(genInputFiles) | |
def | realEventsFile = find_unique_file('*%s.*ev*ts' % inputroot) |
list | allFiles = [] |
input0 = os.path.basename(file).split("._")[0] | |
tuple | input1 = (os.path.basename(file).split("._")[1]).split(".")[0] |
first_line = f.readline() | |
int | count_ev = 0 |
dsid_param = runArgs.jobConfig[0] | |
|
private |
==============================================================
Definition at line 494 of file skel.ABtoEVGEN.py.
|
private |
|
private |
Definition at line 269 of file skel.ABtoEVGEN.py.
|
private |
Definition at line 272 of file skel.ABtoEVGEN.py.
def skel.checkBlackList | ( | relFlavour, | |
cache, | |||
generatorName | |||
) |
Propagate debug output level requirement to generators.
Handle beam info.
Add special config option (extended model info for BSM scenarios) Remove TestHepMC if it's inappropriate for this generator combination TODO: replace with direct del statements in the generator common JO fragments? =============================================================
Function to check blacklist (from Spyros'es logParser.py)
Propagate energy argument to the generators TODO: Standardise energy setting in the GenModule interface Propagate debug output level requirement to generators =============================================================
Function to check blacklist (from Spyros'es logParser.py)
Definition at line 516 of file skel.GENtoEVGEN.py.
def skel.checkPurpleList | ( | relFlavour, | |
cache, | |||
generatorName | |||
) |
Definition at line 537 of file skel.GENtoEVGEN.py.
def skel.find_unique_file | ( | pattern | ) |
def skel.get_immediate_subdirectories | ( | a_dir | ) |
==============================================================
Announce JO loading Pre-include Pre-exec
Announce JO loading Pre-include Pre-exec
Definition at line 207 of file skel.GENtoEVGEN.py.
def skel.merge_lhe_files | ( | listOfFiles, | |
outputFile | |||
) |
def skel.mk_symlink | ( | srcfile, | |
dstfile | |||
) |
Definition at line 472 of file skel.ABtoEVGEN.py.
def skel.OutputTXTFile | ( | ) |
==============================================================
Announce JO loading Pre-include Pre-exec
Definition at line 181 of file skel.ABtoEVGEN.py.
list skel.allFiles = [] |
Definition at line 742 of file skel.GENtoEVGEN.py.
list skel.allowed_cat = [] |
Load the allowed categories names from the file.
Definition at line 387 of file skel.GENtoEVGEN.py.
skel.allowed_list = ast.literal_eval(line) |
Definition at line 391 of file skel.GENtoEVGEN.py.
list skel.allowed_nEventsPerJob_lt1000 = [1, 2, 5, 10, 20, 25, 50, 100, 200, 500, 1000] |
Definition at line 313 of file skel.ABtoEVGEN.py.
skel.AllowIgnoreConfigError |
Jobs should stop if an include fails.
Definition at line 55 of file skel.ABtoEVGEN.py.
skel.Analyses |
Definition at line 156 of file skel.ABtoEVGEN.py.
skel.AnalysisPath |
Definition at line 157 of file skel.ABtoEVGEN.py.
skel.anaSeq = topSeq |
Definition at line 32 of file skel.ABtoEVGEN.py.
skel.auxfiles |
Definition at line 487 of file skel.ABtoEVGEN.py.
list skel.bad_cat = [] |
Check the JO categories against the allowed ones.
Definition at line 395 of file skel.GENtoEVGEN.py.
string skel.check_jofiles = "/cvmfs/atlas.cern.ch/repo/sw/Generators/MC16JobOptions/scripts/check_jo_consistency.py" |
NOTE: a further check on physicsShort consistency is done below, after fragment loading.
Definition at line 221 of file skel.ABtoEVGEN.py.
skel.CmEnergy |
Definition at line 108 of file skel.ABtoEVGEN.py.
skel.CorrectEventID |
Definition at line 129 of file skel.ABtoEVGEN.py.
skel.CorrectHepMC |
Definition at line 128 of file skel.ABtoEVGEN.py.
skel.CorrectRunNumber |
Definition at line 130 of file skel.ABtoEVGEN.py.
int skel.count_ev = 0 |
Definition at line 790 of file skel.GENtoEVGEN.py.
string skel.datFile = None |
Propagate energy argument to the generators TODO: Standardise energy setting in the GenModule interface.
Add special config option (extended model info for BSM scenarios)
==============================================================
Propagate DSID and seed to the generators Propagate debug output level requirement to generators Add special config option (extended model info for BSM scenarios) Remove TestHepMC if it's inappropriate for this generator combination TODO: replace with direct del statements in the generator common JO fragments? ==============================================================
==============================================================
==============================================================
Announce start of input file handling Dat files
==============================================================
==============================================================
Announce start of input file handling Dat files
Process random seed arg and pass to generators include("EvgenJobTransforms/Generate_randomseeds.py") ==============================================================
==============================================================
==============================================================
Announce start of input file handling Dat files
Definition at line 443 of file skel.ABtoEVGEN.py.
skel.doFastMonMT |
Definition at line 48 of file skel.ABtoEVGEN.py.
string skel.dsid = os.path.basename(runArgs.jobConfig[0]) |
Used for pile-up (remove dynamic variables except flavour labels)
Set the run numbers.
Set the run numbers
Definition at line 370 of file skel.ABtoEVGEN.py.
skel.dsid_param = runArgs.jobConfig[0] |
Definition at line 151 of file skel.GENtoTXT.py.
def skel.errorBL = checkBlackList("AthGeneration",rel,gennames) |
Announce start of JO checkingrelease number checking.
Definition at line 562 of file skel.GENtoEVGEN.py.
skel.errorIfNotFound |
Definition at line 487 of file skel.ABtoEVGEN.py.
def skel.errorPL = checkPurpleList("AthGeneration",rel,gennames) |
Definition at line 569 of file skel.GENtoEVGEN.py.
string skel.eventsFile = None |
Events files.
Definition at line 458 of file skel.ABtoEVGEN.py.
skel.EventsPerRun |
Definition at line 186 of file skel.GENtoEVGEN.py.
skel.evgenLog = logging.getLogger('Generate_ab') |
Definition at line 63 of file skel.ABtoEVGEN.py.
skel.EvtMax |
Definition at line 120 of file skel.ABtoEVGEN.py.
list skel.excludedNames = ['AthSequencer', 'PyAthena::Alg', 'TestHepMC'] |
Definition at line 529 of file skel.ABtoEVGEN.py.
string skel.expectedgenpart = ''.join(gennames) |
We want to record that HERWIG was used in metadata, but in the JO naming we just use a "Herwig" label.
Definition at line 263 of file skel.ABtoEVGEN.py.
skel.False |
Definition at line 487 of file skel.ABtoEVGEN.py.
list skel.filterNames = [alg.getType() for alg in acas.iter_algseq(filtSeq)] |
Definition at line 528 of file skel.ABtoEVGEN.py.
skel.filtSeq = acam.athMasterSeq.EvgenFilterSeq |
Definition at line 30 of file skel.ABtoEVGEN.py.
tuple skel.FIRST_DIR = (os.environ['JOBOPTSEARCHPATH']).split(":")[0] |
Main job option include Only permit one jobConfig argument for evgen: does more than one ever make sense?
Definition at line 192 of file skel.ABtoEVGEN.py.
skel.first_line = f.readline() |
Definition at line 756 of file skel.GENtoEVGEN.py.
skel.FirstEvent |
Definition at line 119 of file skel.ABtoEVGEN.py.
skel.fixSeq = acam.athMasterSeq.EvgenFixSeq |
Definition at line 25 of file skel.GENtoEVGEN.py.
skel.ForceRead |
Definition at line 357 of file skel.ABtoEVGEN.py.
skel.gendict = generatorsGetInitialVersionedDictionary(gennames) |
Definition at line 460 of file skel.GENtoEVGEN.py.
skel.genInputFiles = myinputfiles.split(',') |
Definition at line 728 of file skel.GENtoEVGEN.py.
skel.gennames = sorted(evgenConfig.generators, key=gen_sortkey) |
Include the JO fragment.
Print out options.
==============================================================
Announce start of JO checking Print out options Sort and check generator name / JO name consistency
Check that the common fragments are not obsolete: Check that the generators list is not empty: Check for duplicates: Sort the list of generator names into standard form
Print platform Sort and check generator name / JO name consistency
Check that the common fragments are not obsolete: Check that the generators list is not empty: Check for duplicates: Sort the list of generator names into standard form
==============================================================
Announce start of JO checking Print out options Sort and check generator name / JO name consistency
Check that the common fragments are not obsolete: Check that the generators list is not empty: Check for duplicates: Sort the list of generator names into standard form
Definition at line 259 of file skel.ABtoEVGEN.py.
skel.gennamesvers = generatorsVersionedStringList(gendict) |
Definition at line 461 of file skel.GENtoEVGEN.py.
tuple skel.genpart = jo_physshortparts[0] |
Check that the actual generators, tune, and main PDF are consistent with the JO name.
Definition at line 262 of file skel.ABtoEVGEN.py.
skel.genSeq = acam.athMasterSeq.EvgenGenSeq |
Definition at line 22 of file skel.ABtoEVGEN.py.
skel.HistoFile |
Definition at line 159 of file skel.ABtoEVGEN.py.
skel.holdHeader = header |
Definition at line 676 of file skel.GENtoEVGEN.py.
bool skel.inHeader = False |
Reading first event signals that we are done with all the header information Using this approach means the script will properly handle any metadata stored at the beginning of the file.
Note: aside from the number of events, no metadata is updated after the first header is read (eg the random number seed recorded will be that of the first file.
Definition at line 674 of file skel.GENtoEVGEN.py.
skel.input0 = os.path.basename(file).split("._")[0] |
Definition at line 749 of file skel.GENtoEVGEN.py.
tuple skel.input1 = (os.path.basename(file).split("._")[1]).split(".")[0] |
Definition at line 750 of file skel.GENtoEVGEN.py.
skel.InputCollections |
Definition at line 353 of file skel.ABtoEVGEN.py.
skel.InputEventInfo |
Definition at line 122 of file skel.ABtoEVGEN.py.
skel.inputFilesPerJob |
Include the JO fragment.
==============================================================
Announce start of JO checking
Definition at line 272 of file skel.GENtoEVGEN.py.
string skel.inputroot = os.path.basename(runArgs.inputGeneratorFile).split(".tar.")[0] |
Find and symlink dat and event files, so they are available via the name expected by the generator.
Definition at line 720 of file skel.GENtoEVGEN.py.
skel.it = iter(evgenConfig.categories) |
Definition at line 396 of file skel.GENtoEVGEN.py.
tuple skel.jo_physshortpart = joparts[1] |
Check that there are exactly 3 name parts separated by '.
Check that there are exactly 4 name parts separated by '.
': mc, physicsShort, .py Check the length limit on the physicsShort portion of the filename
': MCxx, DSID, physicsShort, .py Check the length limit on the physicsShort portion of the filename
Definition at line 210 of file skel.ABtoEVGEN.py.
tuple skel.jo_physshortparts = jo_physshortpart.split("_") |
There must be at least 2 physicsShort sub-parts separated by '_': gens, (tune)+PDF, and process.
Definition at line 216 of file skel.ABtoEVGEN.py.
list skel.jofile = jofiles[0] |
Only permit one JO file in each dsid folder.
Definition at line 200 of file skel.ABtoEVGEN.py.
list skel.jofiles = [f for f in os.listdir(FIRST_DIR) if (f.startswith('mc') and f.endswith('.py'))] |
Definition at line 194 of file skel.ABtoEVGEN.py.
tuple skel.joparts = (os.path.basename(jofile)).split(".") |
Definition at line 201 of file skel.ABtoEVGEN.py.
skel.keepDir |
Definition at line 487 of file skel.ABtoEVGEN.py.
skel.l1 = x |
Definition at line 398 of file skel.GENtoEVGEN.py.
skel.l2 = next(it) |
Definition at line 399 of file skel.GENtoEVGEN.py.
skel.LastEvent |
Definition at line 149 of file skel.ABtoEVGEN.py.
skel.line = line.replace(tmp[0],str(nevents)) |
Definition at line 688 of file skel.GENtoEVGEN.py.
string skel.lkwfile = "CategoryList.txt" |
Check that the L1 and L2 keywords pairs are in the list of allowed words pairs (and exit if processing an official JO)
Check that the categories list is not empty:
Get the allowed categories file from the JO package if possibe TODO: Make the package name configurable
Check that the L1 and L2 keywords pairs are in the list of allowed words pairs (and exit if processing an official JO) Get the allowed categories file from the JO package if possibe TODO: Make the package name configurable
Definition at line 379 of file skel.GENtoEVGEN.py.
skel.lkwpath = None |
Definition at line 380 of file skel.GENtoEVGEN.py.
int skel.max_jo_physshort_length = 50 |
Definition at line 211 of file skel.ABtoEVGEN.py.
skel.maxeventsstrategy |
Definition at line 541 of file skel.ABtoEVGEN.py.
skel.McEventKey |
Definition at line 145 of file skel.ABtoEVGEN.py.
skel.mcEventWeightsKey |
Definition at line 124 of file skel.ABtoEVGEN.py.
skel.mcFilterHTKey |
Definition at line 134 of file skel.GENtoEVGEN.py.
skel.MinMaxRunNumbers |
Definition at line 138 of file skel.ABtoEVGEN.py.
string skel.msg = "evgenConfig.nEventsPerJob = %d: " % evgenConfig.nEventsPerJob |
Definition at line 314 of file skel.ABtoEVGEN.py.
int skel.multiInput = runArgs.inputGeneratorFile.count(',')+1 |
Definition at line 293 of file skel.ABtoEVGEN.py.
skel.myinputfiles = runArgs.inputGeneratorFile |
Definition at line 727 of file skel.GENtoEVGEN.py.
skel.nEventsPerJob |
Definition at line 540 of file skel.ABtoEVGEN.py.
skel.NewRunNumber |
Definition at line 376 of file skel.ABtoEVGEN.py.
skel.nnn = str(nevents) |
Definition at line 692 of file skel.GENtoEVGEN.py.
skel.numberOfFiles = len(genInputFiles) |
Definition at line 729 of file skel.GENtoEVGEN.py.
bool skel.officialJO = True |
Perform some consistency checks if this appears to be an "official" production JO.
Definition at line 204 of file skel.ABtoEVGEN.py.
skel.OneDataHeaderForm |
Definition at line 431 of file skel.GENtoEVGEN.py.
skel.Output |
Definition at line 112 of file skel.ABtoEVGEN.py.
skel.OutputEventInfo |
Definition at line 123 of file skel.ABtoEVGEN.py.
skel.poolFile = runArgs.outputEVNTFile |
Definition at line 344 of file skel.ABtoEVGEN.py.
skel.postSeq = topSeq.EvgenPostSeq |
Definition at line 34 of file skel.ABtoEVGEN.py.
skel.prefiltSeq = acam.athMasterSeq.EvgenPreFilterSeq |
Definition at line 24 of file skel.ABtoEVGEN.py.
skel.PrintStyle |
Definition at line 147 of file skel.ABtoEVGEN.py.
def skel.realDatFile = find_unique_file('*%s*.dat' % inputroot) |
Definition at line 724 of file skel.GENtoEVGEN.py.
def skel.realEventsFile = find_unique_file('*%s.*ev*ts' % inputroot) |
Definition at line 739 of file skel.GENtoEVGEN.py.
skel.rel = os.popen("echo $AtlasVersion").read() |
Announce start of JO checkingrelease nimber checking.
Definition at line 182 of file skel.GENtoEVGEN.py.
skel.RequestedOutput |
Definition at line 325 of file skel.ABtoEVGEN.py.
skel.required |
Definition at line 502 of file skel.ABtoEVGEN.py.
int skel.rounding = 0 |
Check if the tune/PDF part is needed, and if so whether it's present.
Check that the evgenConfig.nEventsPerJob setting is acceptable nEventsPerJob defines the production event sizes and must be sufficiently "round"
Check the "--steering=afterburn" command line argument has been set if EvtGen is in the JO name Dont't have access to steering flag so check it's effect on output files Check that the evgenConfig.nEventsPerJob setting is acceptable nEventsPerJob defines the production event sizes and must be sufficiently "round"
Definition at line 291 of file skel.ABtoEVGEN.py.
skel.runArgs |
Definition at line 391 of file skel.ABtoEVGEN.py.
skel.runNum = int((runArgs.jobConfig[0])[-6:]) |
Definition at line 137 of file skel.ABtoEVGEN.py.
skel.RunNumber |
Definition at line 373 of file skel.ABtoEVGEN.py.
skel.runPars = RunArguments() |
Definition at line 539 of file skel.ABtoEVGEN.py.
skel.StreamEVGEN = AthenaPoolOutputStream("StreamEVGEN", poolFile, asAlg=True, noTag=True , eventInfoKey="EventInfo") |
Definition at line 351 of file skel.ABtoEVGEN.py.
skel.TakeItemsFromInput |
Definition at line 354 of file skel.ABtoEVGEN.py.
skel.testSeq = acam.athMasterSeq.EvgenTestSeq |
Definition at line 26 of file skel.ABtoEVGEN.py.
skel.theApp = acam.theApp |
Definition at line 20 of file skel.ABtoEVGEN.py.
skel.tmp = line.split("=") |
each input file ends with "</LesHouchesEvents>".
Powheg format is numevts n.
We don't want to write this out until all the files have been read. The elif below writes out all the events. Format for storing number of events different in MG and Powheg MG5 format is "n = nevents"
Definition at line 687 of file skel.GENtoEVGEN.py.
skel.topSeq = acas.AlgSequence() |
Definition at line 31 of file skel.ABtoEVGEN.py.
skel.VerboseOutput |
Definition at line 146 of file skel.ABtoEVGEN.py.
skel.xAODKey |
Definition at line 18 of file skel.ABtoEVGEN.py.