ATLAS Offline Software
Classes | Functions
python.TrigValSteering.CheckSteps Namespace Reference

Classes

class  ChainCompStep
 
class  ChainDumpStep
 
class  CheckFileStep
 
class  CheckLogStep
 
class  DownloadRefStep
 
class  HistCountStep
 
class  InputDependentStep
 
class  LogMergeStep
 
class  MessageCountStep
 
class  PerfMonStep
 
class  RefComparisonStep
 
class  RegTestStep
 
class  RootCompStep
 
class  RootMergeStep
 
class  TailStep
 
class  TrigTestJsonStep
 
class  ZeroCountsStep
 
class  ZipStep
 

Functions

def produces_log (step)
 
def default_check_steps (test, checkfile_input='AOD.pool.root, ESD.pool.root, RDO_TRIG.pool.root, DAOD_PHYS.DAOD.pool.root')
 
def add_step_after_type (step_list, ref_type, step_to_add)
 

Function Documentation

◆ add_step_after_type()

def python.TrigValSteering.CheckSteps.add_step_after_type (   step_list,
  ref_type,
  step_to_add 
)
Insert step_to_add into step_list after the last step of type ref_type.
If the list has no steps of type ref_type, append step_to_add at the end of the list.

Definition at line 833 of file CheckSteps.py.

833 def add_step_after_type(step_list, ref_type, step_to_add):
834  '''
835  Insert step_to_add into step_list after the last step of type ref_type.
836  If the list has no steps of type ref_type, append step_to_add at the end of the list.
837  '''
838  index_to_add = -1
839  for index, step in enumerate(step_list):
840  if isinstance(step, ref_type):
841  index_to_add = index+1
842  if index_to_add > 0:
843  step_list.insert(index_to_add, step_to_add)
844  else:
845  step_list.append(step_to_add)

◆ default_check_steps()

def python.TrigValSteering.CheckSteps.default_check_steps (   test,
  checkfile_input = 'AOD.pool.root,ESD.pool.root,RDO_TRIG.pool.root,DAOD_PHYS.DAOD.pool.root' 
)
Create the default list of check steps for a test. The configuration
depends on the package name and the type of exec steps (athena or
athenaHLT or transforms).

Definition at line 714 of file CheckSteps.py.

714 def default_check_steps(test, checkfile_input='AOD.pool.root,ESD.pool.root,RDO_TRIG.pool.root,DAOD_PHYS.DAOD.pool.root'):
715  '''
716  Create the default list of check steps for a test. The configuration
717  depends on the package name and the type of exec steps (athena or
718  athenaHLT or transforms).
719  '''
720 
721  check_steps = []
722 
723  # Log merging
724  if len(test.exec_steps) == 1:
725  exec_step = test.exec_steps[0]
726  if exec_step.type == 'athenaHLT' and produces_log(exec_step):
727  logmerge = LogMergeStep()
728  logmerge.merged_name = 'athena.log'
729  logmerge.log_files = ['athenaHLT.log']
730  nforks = 1 if exec_step.forks is None else exec_step.forks
731  for n in range(1, 1+nforks):
732  logmerge.log_files.append('athenaHLT:{:02d}.out'.format(n))
733  logmerge.log_files.append('athenaHLT:{:02d}.err'.format(n))
734  check_steps.append(logmerge)
735  else:
736  logmerge = LogMergeStep()
737  logmerge.merged_name = 'athena.log'
738  logmerge.log_files = []
739  for exec_step in test.exec_steps:
740  if not produces_log(exec_step):
741  continue
742  logmerge.log_files.append(exec_step.get_log_file_name())
743  if exec_step.type == 'athenaHLT':
744  logmerge.extra_log_regex = 'athenaHLT:.*(.out|.err)'
745  check_steps.append(logmerge)
746  log_to_check = None
747  log_to_zip = None
748  if len(check_steps) > 0 and isinstance(check_steps[-1], LogMergeStep):
749  log_to_check = check_steps[-1].merged_name
750  log_to_zip = check_steps[-1].merged_name
751 
752  # Reco_tf log merging
753  reco_tf_steps = [step for step in test.exec_steps if step.type in ['Reco_tf', 'Trig_reco_tf', 'Derivation_tf']]
754  if len(reco_tf_steps) > 0:
755  reco_tf_logmerge = LogMergeStep('LogMerge_Reco_tf')
756  reco_tf_logmerge.warn_if_missing = False
757  # FIXME: drop AODtoDAOD once test_trigAna_AODtoDAOD_run2_build.py is migrated to Derivation_tf
758  tf_names = ['HITtoRDO', 'Overlay', 'RDOtoRDOTrigger', 'RAWtoESD', 'ESDtoAOD',
759  'PhysicsValidation', 'RAWtoALL',
760  'BSRDOtoRAW', 'DRAWCOSTtoNTUPCOST', 'AODtoNTUPRATE', 'Derivation', 'AODtoDAOD']
761  reco_tf_logmerge.log_files = ['log.'+tf_name for tf_name in tf_names]
762  if not get_step_from_list('LogMerge', check_steps):
763  for step in reco_tf_steps:
764  reco_tf_logmerge.log_files.append(step.get_log_file_name())
765  reco_tf_logmerge.merged_name = 'athena.merged.log'
766  log_to_zip = reco_tf_logmerge.merged_name
767  if log_to_check is not None:
768  reco_tf_logmerge.log_files.append(log_to_check)
769  log_to_check = reco_tf_logmerge.merged_name
770  log_to_check = reco_tf_logmerge.merged_name
771  check_steps.append(reco_tf_logmerge)
772 
773  # Histogram merging for athenaHLT forks
774  num_athenaHLT_steps = sum([1 for step in test.exec_steps if step.type == 'athenaHLT'])
775  if num_athenaHLT_steps > 0:
776  histmerge = RootMergeStep('HistMerge')
777  histmerge.merged_file = 'expert-monitoring.root'
778  histmerge.input_file = 'athenaHLT_workers/*/expert-monitoring.root expert-monitoring-mother.root'
779  histmerge.rename_suffix = '-mother'
780  check_steps.append(histmerge)
781 
782  # CheckLog for errors
783  checklog = CheckLogStep('CheckLog')
784  if log_to_check is not None:
785  checklog.log_file = log_to_check
786  check_steps.append(checklog)
787 
788  # CheckLog for warnings
789  checkwarn = CheckLogStep('Warnings')
790  checkwarn.check_errors = False
791  checkwarn.check_warnings = True
792  if log_to_check is not None:
793  checkwarn.log_file = log_to_check
794  check_steps.append(checkwarn)
795 
796  # MessageCount
797  msgcount = MessageCountStep('MessageCount')
798  for logmerge in [step for step in check_steps if isinstance(step, LogMergeStep)]:
799  msgcount.skip_logs.append(logmerge.merged_name)
800  check_steps.append(msgcount)
801 
802  # Tail (probably not so useful these days)
803  tail = TailStep()
804  if log_to_check is not None:
805  tail.log_file = log_to_check
806  check_steps.append(tail)
807 
808  # Histogram-based steps
809  check_steps.append(RootCompStep())
810  check_steps.append(ChainDumpStep())
811  check_steps.append(HistCountStep())
812 
813  # ZeroCounts
814  check_steps.append(ZeroCountsStep())
815 
816  # Extra JSON
817  check_steps.append(TrigTestJsonStep())
818 
819  # CheckFile
820  check_steps.append(CheckFileStep(input_file=checkfile_input))
821 
822  # Zip the merged log (can be large and duplicates information)
823  if log_to_zip is not None:
824  zip_step = ZipStep()
825  zip_step.zip_input = log_to_zip
826  zip_step.zip_output = log_to_zip+'.tar.gz'
827  check_steps.append(zip_step)
828 
829  # return the steps
830  return check_steps
831 
832 

◆ produces_log()

def python.TrigValSteering.CheckSteps.produces_log (   step)
Helper function checking whether a Step output_stream value
indicates that it will produce a log file

Definition at line 705 of file CheckSteps.py.

705 def produces_log(step):
706  '''
707  Helper function checking whether a Step output_stream value
708  indicates that it will produce a log file
709  '''
710  return step.output_stream == Step.OutputStream.FILE_ONLY or \
711  step.output_stream == Step.OutputStream.FILE_AND_STDOUT
712 
713 
python.TrigValSteering.CheckSteps.add_step_after_type
def add_step_after_type(step_list, ref_type, step_to_add)
Definition: CheckSteps.py:833
vtune_athena.format
format
Definition: vtune_athena.py:14
python.TrigValSteering.Step.get_step_from_list
def get_step_from_list(step_name, step_list)
Definition: Step.py:230
python.TrigValSteering.CheckSteps.default_check_steps
def default_check_steps(test, checkfile_input='AOD.pool.root, ESD.pool.root, RDO_TRIG.pool.root, DAOD_PHYS.DAOD.pool.root')
Definition: CheckSteps.py:714
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
python.TrigValSteering.CheckSteps.produces_log
def produces_log(step)
Definition: CheckSteps.py:705
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194