Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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)
 
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 834 of file CheckSteps.py.

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

◆ default_check_steps()

def python.TrigValSteering.CheckSteps.default_check_steps (   test)
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 715 of file CheckSteps.py.

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

◆ 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 706 of file CheckSteps.py.

706 def produces_log(step):
707  '''
708  Helper function checking whether a Step output_stream value
709  indicates that it will produce a log file
710  '''
711  return step.output_stream == Step.OutputStream.FILE_ONLY or \
712  step.output_stream == Step.OutputStream.FILE_AND_STDOUT
713 
714 
python.TrigValSteering.CheckSteps.add_step_after_type
def add_step_after_type(step_list, ref_type, step_to_add)
Definition: CheckSteps.py:834
python.TrigValSteering.CheckSteps.default_check_steps
def default_check_steps(test)
Definition: CheckSteps.py:715
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
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
python.TrigValSteering.CheckSteps.produces_log
def produces_log(step)
Definition: CheckSteps.py:706
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195