#!/bin/csh -f # ######################################################################### # # This script generates a batch job script that can be fed into # PBS as in: qsub created_script # # arg1 job name # arg2 maximum number of events to process # arg3 job number # ######################################################################### # setenv ARG1 $1 setenv ARG2 $2 setenv ARG3 $3 setenv ARG4 $4 set FIRSTEVENT = 0 @ FIRSTEVENT = ${ARG2} * (${ARG3} - 1) set RANDOM = 0 @ RANDOM = ${FIRSTEVENT} + 123456789 # number of events to process per file (-1 = all) setenv MAXEVENTS ${ARG2} setenv basename ${ARG1}_${ARG3} setenv fname ${basename}.job echo Job file will be ${fname} cat - > ${fname} < job.cfg <<@EOF `cat ${ARG4}` @EOF # #---------------------------------------------------------- # e x e c u t e j o b #---------------------------------------------------------- # echo "Processing Event Collection : $basename " /usr/bin/time -f "%e %U %S %x" -o x cmsRun -p job.cfg set rtime = \`tail -1 x | cut -f 1 -d " "\` set utime = \`tail -1 x | cut -f 2 -d " "\` set stime = \`tail -1 x | cut -f 3 -d " "\` set stat = \`tail -1 x | cut -f 4 -d " "\` # #---------------------------------------------------------- # c o p y o u t p u t #---------------------------------------------------------- # # if ( \${status} != 0 ) cp \${WORKDIR}/*.root \${OUTDIR}/${basename}.root cp \${WORKDIR}/*.root \${OUTDIR}/${basename}.root # # show what is being left behind... # echo "" echo "Current directory:" pwd ls -lrtAFh # set end = \`date\` echo "" echo "Job end \`date\`" echo "" # echo \$PBS_JOBNAME \$stat \$start \$end \`uname -n | cut -f 1 -d .\` \$processor \$rate \$rtime \$utime \$stime >> \${OUTDIR}/SUMMARY # rm -r \${WORKDIR} exit \${status} EOF chmod +x ${fname}