File indexing completed on 2024-04-06 12:08:34
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 if [ -n "`uname -n | grep vmepc`" -a `whoami` == "trackerpro" ] ; then
0014 :
0015 elif [ -n "`uname -n | grep cmstracker029`" -a `whoami` == "xdaqtk" ] ; then
0016 :
0017 else
0018 echo "You are not running as trackerpro (on vmepcs) or xdaqtk (on cmstracker029).";
0019 echo "This can cause problems during file moving, like loss of raw data.";
0020 echo "You don't want that to happen, probably, so please login as the appropriate user and try again.";
0021 exit 0;
0022 fi
0023
0024
0025
0026 function usage() {
0027 echo "Usage: ./run_analysis.sh <run_number> <HWUPLOAD> <AnalysisUpload> <DB_partition_name> <UseClientFile> <DisableDevices> <saveClientFile>"
0028 echo " run_number = run number"
0029 echo " HWUpload = set to true if you want to upload the HW config to the DB"
0030 echo " AnalysisUpload = set to true if you want to upload the analysis results to the DB"
0031 echo " DB_partition_name = Name of the corresponding DB partition"
0032 echo " UseClientFile = set to true if you want to analyze an existing client file rather than the source file(s)"
0033 echo " DisableDevices = set to true if you want to disable devices in the DB (normally set False)"
0034 echo " saveClientFile = set to true if you want to write the client file to disk (normally set True)"
0035 }
0036 if [ $
0037 usage
0038 exit 0
0039 fi
0040 if [ $1 = "usage" ]; then
0041 usage
0042 exit 0
0043 fi
0044 if [ $
0045 echo "Not enough arguments specified!"
0046 usage
0047 exit 0
0048 fi
0049
0050 echo "Running analysis script ..."
0051
0052
0053 RUNNUMBER=$1
0054 HWUPLOAD=$2 ; HWUPLOAD=`echo $HWUPLOAD | tr 'ft' 'FT'`
0055 ANALYSISUPLOAD=$3 ; ANALYSISUPLOAD=`echo $ANALYSISUPLOAD | tr 'ft' 'FT'`
0056 DBPARTITIONNAME=$4
0057 USECLIENTFILE=$5 ; USECLIENTFILE=`echo $USECLIENTFILE | tr 'ft' 'FT'`
0058 DISABLEDEVICES=$6 ; DISABLEDEVICES=`echo $DISABLEDEVICES | tr 'ft' 'FT'`
0059 DISABLEBADSTRIPS="False"
0060 SAVECLIENTFILE=$7 ; SAVECLIENTFILE=`echo $SAVECLIENTFILE | tr 'ft' 'FT'`
0061
0062
0063 BASEDIR=/opt/cmssw
0064 echo " CMSSW base directory : "$BASEDIR
0065 DATALOC=/opt/cmssw/Data
0066 echo " Temporary storage area : "$DATALOC
0067 SCRATCH=$BASEDIR/Data/$RUNNUMBER
0068 echo " Output storage directory : "$SCRATCH
0069 TEMPLATEPY=/opt/cmssw/scripts/analysis_template_cfg.py
0070 echo " Analysis template : "$TEMPLATEPY
0071 echo " ConfDB account : "$CONFDB
0072
0073
0074 source $BASEDIR/scripts/setup.sh
0075 cd $BASEDIR/Stable/current/src
0076 eval `scram runtime -sh`
0077
0078
0079 if [ ! -d $SCRATCH ]; then
0080 mkdir -p $SCRATCH
0081 fi
0082
0083
0084 for SOURCEFILE in `ls $DATALOC | grep \`printf %08u $RUNNUMBER\` | grep Source`; do
0085 mv $DATALOC/$SOURCEFILE $SCRATCH
0086 done
0087
0088
0089 sed 's,RUNNUMBER,'$RUNNUMBER',g' $TEMPLATEPY \
0090 | sed 's,DBUPDATE,'$HWUPLOAD',g' \
0091 | sed 's,ANALUPDATE,'$ANALYSISUPLOAD',g' \
0092 | sed 's,DBPART,'$DBPARTITIONNAME',g' \
0093 | sed 's,CLIENTFLAG,'$USECLIENTFILE',g' \
0094 | sed 's,DATALOCATION,'$SCRATCH',g' \
0095 | sed 's,DISABLEDEVICES,'$DISABLEDEVICES',g' \
0096 | sed 's,DISABLEBADSTRIPS,'$DISABLEBADSTRIPS',g' \
0097 | sed 's,SAVECLIENTFILE,'$SAVECLIENTFILE',g' \
0098 > $SCRATCH/analysis_${RUNNUMBER}_cfg.py
0099
0100
0101 source /opt/trackerDAQ/config/oracle.env.bash
0102 cd $SCRATCH
0103 DATESUFF=`date +%s`
0104 echo -n " Running analysis ... "
0105 cmsRun analysis_${RUNNUMBER}_cfg.py > analysis_${RUNNUMBER}_${DATESUFF}.cout
0106 echo "done."
0107 mv debug.log analysis_${RUNNUMBER}_${DATESUFF}.debug.log
0108 mv info.log analysis_${RUNNUMBER}_${DATESUFF}.info.log
0109 mv warning.log analysis_${RUNNUMBER}_${DATESUFF}.warning.log
0110 mv error.log analysis_${RUNNUMBER}_${DATESUFF}.error.log
0111 echo " Please check the output : ${SCRATCH}"/analysis_${RUNNUMBER}_${DATESUFF}.*
0112
0113
0114 if [ $USECLIENTFILE = False ] && [ $SAVECLIENTFILE = True ] ; then
0115 CLIENTFILE=$(ls /tmp | grep $RUNNUMBER | grep Client)
0116 if [ -n "$CLIENTFILE" ] ; then
0117 mv /tmp/$CLIENTFILE $SCRATCH
0118 else
0119 echo "No client file found to copy!"
0120 fi
0121 fi
0122
0123
0124 RAWFILES=$(ls $DATALOC/closed | grep `printf %08u $RUNNUMBER`)
0125 for file in $RAWFILES; do
0126 mv $DATALOC/closed/$file $SCRATCH
0127 done
0128
0129
0130 cat $BASEDIR/scripts/sourcefromraw_template_cfg.py \
0131 | sed 's,RUNNUMBER,'$RUNNUMBER',g' \
0132 | sed 's,DBPART,'$DBPARTITIONNAME',g' \
0133 > $SCRATCH/sourcefromraw_${RUNNUMBER}_cfg.py
0134 for file in `ls USC*storageManager*dat` ; do
0135 echo "process.source.fileNames.extend(cms.untracked.vstring('file:`basename $file .dat`.root'))" >> sourcefromraw_${RUNNUMBER}_cfg.py
0136 done
0137
0138
0139 if [ -n "`uname -n | grep cmstracker029`" ] ; then
0140 /opt/cmssw/scripts/run_conversion.sh $RUNNUMBER
0141 fi