Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
#!/bin/tcsh

eval `scram runtime -csh`

set rawLHC = L1RePack
set rawSIM = DigiL1Raw

echo
date +%F\ %a\ %T
echo Starting $0 $1 $2

if ( $2 == "" ) then
  set tables = ( GRun )
else if ( ($2 == all) || ($2 == ALL) ) then
  set tables = ( GRun HIon PIon PRef 2025v10 Fake Fake1 Fake2 Special)
else if ( ($2 == ib) || ($2 == IB) ) then
  set tables = ( GRun HIon PIon PRef Special)
else if ( ($2 == dev) || ($2 == DEV) ) then
  set tables = ( GRun HIon PIon PRef Special)
else if ( ($2 == full) || ($2 == FULL) ) then
  set tables = ( FULL )
else if ( ($2 == fake) || ($2 == FAKE) ) then
  set tables = ( Fake Fake1 Fake2 )
else if ( ($2 == frozen) || ($2 == FROZEN) ) then
  set tables = ( 2025v10 )
else
  set tables = ( $2 )
endif

foreach gtag ( $1 )

  foreach table ( $tables )

    if ($gtag == DATA) then
      set realData = True
      set base = RelVal_${rawLHC}
    else
      set realData = False
      set base = RelVal_${rawSIM}
    endif

#   run workflows

    set base = ( $base OnLine_HLT RelVal_HLT RelVal_HLT2 )

    foreach task ( $base )

      echo
      set name = ${task}_${table}_${gtag}
      rm -f $name.{log,root}

      if ( $task == OnLine_HLT ) then
        set short = ${task}_${table}
        echo "`date +%T` cmsRun $short.py realData=${realData} globalTag="@" inputFiles="@" >& $name.log"
#       ls -l        $short.py
        time  cmsRun $short.py realData=${realData} globalTag="@" inputFiles="@" >& $name.log
        echo "`date +%T` exit status: $?"
      else
        echo "`date +%T` cmsRun $name.py >& $name.log"
#       ls -l        $name.py
        time  cmsRun $name.py >& $name.log
        echo "`date +%T` exit status: $?"
      endif

      if ( ( $task == RelVal_${rawLHC} ) || ( $task == RelVal_${rawSIM} ) ) then
#       link to input file for subsequent steps
        rm -f              RelVal_Raw_${table}_${gtag}.root
        ln -s ${name}.root RelVal_Raw_${table}_${gtag}.root
      endif

    end

  end

end

# separate hlt+reco and reco+(validation)+dqm workflows

foreach gtag ( $1 )

  foreach table ( $tables )

    if ($gtag == DATA) then
      set base = ( RelVal_HLT_Reco                     RelVal_RECO )
    else
      set base = ( RelVal_HLT_Reco RelVal_DigiL1RawHLT RelVal_RECO )
    endif

    foreach task ( $base )

      echo
      set name = ${task}_${table}_${gtag}
      rm -f $name.{log,root}
      echo "`date +%T` cmsRun $name.py >& $name.log"
#     ls -l        $name.py
      time  cmsRun $name.py >& $name.log
      echo "`date +%T` exit status: $?"

    end

  end

end

# running each HLT trigger path individually one by one

if ( ($2 != all) && ($2 != ib) && ($2 != dev) && ($2 != full) && ($2 != fake) && ($2 != frozen) ) then
  ./runIntegration.csh $1 $2
endif

echo
echo Finished $0 $1 $2
date +%F\ %a\ %T
#