ATLAS Offline Software
Functions
sherpaTarCreator.main Namespace Reference

Functions

def main ()
 

Function Documentation

◆ main()

def sherpaTarCreator.main.main ( )

Definition at line 16 of file Generators/Sherpa_i/python/sherpaTarCreator/main.py.

16 def main():
17  parser = ArgumentParser(description='create gridpackage from job option')
18  parser.add_argument("jobOptionDir",type=str, nargs='+',help="Path to job option directory. If multiple are given only the calculation of MinEvents is performed for the additional setups (meant e.g. for different filters).")
19  parser.add_argument('-b', '--batchSystem', type=str, dest='batchSystem', default='htcondor_lxplus', help='Batch system to use (default = %(default)s, alternatives: htcondor_naf, slurm_taurus, slurm_barnard, sge_grace)')
20  parser.add_argument('-a', '--account', type=str, dest='account', default='ATLAS-HEP-GROUP', help='Account to charge. This only is needed for PBS.')
21  parser.add_argument('-q', '--queue', type=str, dest='queue', default='compute', help='What queue to use. This only is needed for PBS.')
22  parser.add_argument('-c', '--ecm', type=float, dest='ecm', nargs="+", default=[13.6], help='center of mass energy in TeV')
23  parser.add_argument('--mounts', type=str, dest='mounts', nargs="+", default=[], help='Directories to mount when using Apptainer')
24  parser.add_argument('-o', '--only', type=str, dest='performOnly', nargs="+", default=["all"], help='steps which can be performed, default:all, there are: getOpenLoops, createLibs, makelibs, integrate, makeTarball, evgen')
25  parser.add_argument('-n', '--maxCores', type=int, dest='maxCores', default="100000", help='maximal number of cores for the integration')
26  parser.add_argument('-r', '--RAM', type=int, dest='RAM', default="-1", help='reserved RAM in MB for the integration')
27  parser.add_argument('-l', '--createLibsRAM', type=int, dest='createLibsRAM', default="2", help='reserved RAM in MB for createLibs, values 1 and 2 are translated into normal RAM usage and extended RAM usage respectively')
28  parser.add_argument('-m', '--ncoresMakelibs', type=int, dest='ncoresMakelibs', default="4", help='maximal number of cores for Makelibs')
29  parser.add_argument('-s', '--ncoresScons', type=int, dest='ncoresScons', default="4", help='maximal number of cores for OpenLoops installation')
30  parser.add_argument('-e', '--nEvts', type=int, dest='nEvts', default="100", help='number of events which get generated in the test run')
31  parser.add_argument('-t', '--tarballVersion', type=str, dest='tarballVersion', default="1", help='version of tarball on grid')
32  parser.add_argument('-p', '--local-sherpa', dest='sherpaInstallPath', default=None, help="Path to custom-built local Sherpa installation. If None, use cvmfs version.")
33  parser.add_argument('-v', '--athenaVersion', type=str, dest='athenaVersion', default=None, help='Overwrite Athena version to be used.')
34  parser.add_argument('--OLskipcvmfs', dest='OLskipcvmfs', default=False, action='store_true', help="Skip precompiled OpenLoops libraries from cvmfs.")
35  parser.add_argument('--OLbranch', dest='OLbranch', type=str, default=None, help="OpenLoops branch to use from https://gitlab.com/openloops/OpenLoops (e.g. OpenLoops-2.1.2 or public_beta)")
36  parser.add_argument('--OLprocessrepos', dest='OLprocessrepos', type=str, default="ATLAS,public_beta,public", help="OpenLoops process repositories to use with ./openloops libinstall")
37  parser.add_argument('-d', '--dryRun', action='store_true', default=False, dest='dryRun', help="Do not actually submit jobs to cluster but just print them.")
38  options = parser.parse_args()
39 
40  import importlib
41  options.batchSystemModule = importlib.import_module("Sherpa_i.sherpaTarCreator."+options.batchSystem)
42 
43  for i in range(len(options.jobOptionDir)):
44  if not os.path.isdir(options.jobOptionDir[i]):
45  print ("ERROR: JO folder \"" + options.jobOptionDir[i] + "\" not found.")
46  sys.exit(2)
47  options.jobOptionDir[i] = os.path.abspath(options.jobOptionDir[i])
48  os.chdir(options.jobOptionDir[0])
49 
50  if not options.athenaVersion:
51  if "stable" in os.environ['AtlasReleaseType']:
52  options.athenaVersion = os.environ['AtlasVersion']+","+os.environ['AtlasProject']
53  elif "nightly" in os.environ['AtlasReleaseType']:
54  options.athenaVersion = os.environ['AtlasBuildBranch']+","+os.environ['AtlasProject']+",r"+os.environ['AtlasBuildStamp']
55  else:
56  print ("ERROR: Did not find Athena environment. Did you run asetup?")
57  sys.exit(1)
58 
59  # Load information from JO file
60  from . import readjo
61  readjo.readJO(options)
62 
63  from . import jobDefinitions
64 
65  for jodir in options.jobOptionDir:
66  if not os.path.isdir(jodir):
67  print ("ERROR: JO folder not found.")
68  sys.exit(2)
69  for ecm in options.ecm:
70  folder = jodir+"/ecm"+('{0:g}'.format(ecm)).replace(".","p")+"TeV"
71  #create folder
72  if not os.path.isdir(folder):
73  os.makedirs(folder)
74  #link Process directory in new folder
75  if not os.path.islink(os.path.join(folder,"Process")):
76  os.symlink(os.path.join("..","Process"), os.path.join(folder,"Process"))
77 
78  for f in options.Sherpa_i.ExtraFiles:
79  fi = os.path.basename(os.path.normpath(os.path.abspath(f)))
80  if not os.path.exists(fi):
81  print ("ERROR: The extraFile '"+f+"' does not exist, but is required according to the joboption file")
82  sys.exit(3)
83  if not os.path.islink(os.path.join(folder,fi)):
84  os.symlink(os.path.join(options.jobOptionDir[0],fi), os.path.join(folder,fi))
85 
86  if not os.path.islink(os.path.join(folder,"libSherpa_iPlugin.so")):
87  if options.Sherpa_i.PluginCode != "":
88  os.symlink(os.path.join(options.jobOptionDir[0],"libSherpa_iPlugin.so"), os.path.join(folder,"libSherpa_iPlugin.so"))
89 
90  prevJob = None
91  getOpenLoopsJob = jobDefinitions.mkGetOpenLoopsJob(options)
92  if getOpenLoopsJob:
93  prevJob = getOpenLoopsJob
94 
95  createLibsJob = jobDefinitions.mkCreateLibsJob(options, prevJob)
96  if createLibsJob:
97  prevJob = createLibsJob
98 
99  makelibsJob = jobDefinitions.mkMakelibsJob(options, prevJob)
100  if makelibsJob:
101  prevJob = makelibsJob
102 
103  for ecm in options.ecm:
104 
105  ecmPrevJob = prevJob
106  integrationJob = jobDefinitions.mkIntegrateJob(options, ecm, ecmPrevJob)
107  if integrationJob:
108  ecmPrevJob = integrationJob
109 
110  tarballmakerJob = jobDefinitions.mkTarballmakerJob(options, ecm, ecmPrevJob)
111  if tarballmakerJob:
112  ecmPrevJob = tarballmakerJob
113 
114  for jodir in options.jobOptionDir:
115  jobDefinitions.mkEvntGenTestJob(options, ecm, jodir, ecmPrevJob)
116 
117  options.batchSystemModule.finalizeJobs(options.dryRun)
118 
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
vtune_athena.format
format
Definition: vtune_athena.py:14
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
sherpaTarCreator.main.main
def main()
Definition: Generators/Sherpa_i/python/sherpaTarCreator/main.py:16