ATLAS Offline Software
Classes | Functions | Variables
rhadd Namespace Reference

Classes

class  haddJob
 
class  haddStep
 

Functions

def main ()
 
def doRecursiveMerge (args)
 

Variables

 level
 

Function Documentation

◆ doRecursiveMerge()

def rhadd.doRecursiveMerge (   args)
Setup the cascade of merge jobs and execute each level in turn

Definition at line 191 of file rhadd.py.

191 def doRecursiveMerge(args):
192  '''Setup the cascade of merge jobs and execute each level in turn'''
193  # First setup the cascade of merge steps
194  jobGraph = []
195  level = 0
196  jobGraph.append(haddStep(bunchNumber = args['bunchNumber'],
197  inputFiles = args['inputFiles'],
198  finalOutputFile = args['outputFile'], level = level))
199 
200  while jobGraph[-1].numHadds > 1:
201  level += 1
202  jobGraph.append(haddStep(bunchNumber = args['bunchNumber'],
203  inputFiles = jobGraph[-1].outputFiles,
204  finalOutputFile = args['outputFile'], level = level))
205  logging.debug(jobGraph[-1])
206 
207  # Now execute each merge stage in turn
208  for i, jobs in enumerate(jobGraph):
209  logging.info('Executing merge interation step %d' % i)
210  jobs.executeAll(args['parallelMerge'])
211 
212  logging.info('Final merge completed successfully.')
213 
214 

◆ main()

def rhadd.main ( )

Definition at line 163 of file rhadd.py.

163 def main():
164  parser = argparse.ArgumentParser(description='Recursive wrapper around the ROOT hadd script.',
165  epilog='Return codes: 0 All OK; 1 Problem with hadd; 2 Invalid arguments')
166  parser.add_argument('outputFile', help='Single merged output file')
167  parser.add_argument('inputFiles', nargs='+', help='Input files to merge')
168  parser.add_argument('-n', '--bunchNumber', type=int, help='File batching number for single hadds', default=10)
169  parser.add_argument('-p', '--parallelMerge', type=int,
170  help='Number of merges to do in parallel (experimental, please do not use in production)', default=1)
171 
172  args = vars(parser.parse_args(sys.argv[1:]))
173 
174  logging.debug(args)
175 
176  # Sanity checks
177  if args['bunchNumber'] <= 1:
178  logging.error('bunchNumber parameter must be greater than 1')
179  sys.exit(2)
180 
181  if args['parallelMerge'] < 1:
182  logging.error('parallelMerge parameter must be greater than 1')
183  sys.exit(2)
184 
185 
186  doRecursiveMerge(args)
187 
188  sys.exit(0)
189 
190 

Variable Documentation

◆ level

rhadd.level

Definition at line 39 of file rhadd.py.

rhadd.doRecursiveMerge
def doRecursiveMerge(args)
Definition: rhadd.py:191
rhadd.main
def main()
Definition: rhadd.py:163