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
#!/bin/sh
#
#  $1 = run number
#  $2 = whether to run injection (optional)
#

echo "Running conversion script ..."

BASEDIR=/opt/cmssw
echo "  CMSSW base directory     : "$BASEDIR
SCRATCH=$BASEDIR/Data/$1
echo "  Output storage directory : "$SCRATCH
TEMPLATEPY=/opt/cmssw/scripts/conversion_template_cfg.py
echo "  Conversion template      : "$TEMPLATEPY

# set up CMSSW environment
source $BASEDIR/scripts/setup.sh
cd $BASEDIR/Stable/current/src
eval `scram runtime -sh`

# convert streamer files if they have not yet been converted
echo -n "  Converting raw files ..."
cd $SCRATCH
RAWFILES=$(ls *.dat)
count=0
convertout="conversion_$1_`date +%s`"
rm -f $convertout.log $convertout.cout
touch $convertout.log $convertout.cout
for file in $RAWFILES; do
  count=`expr $count + 1`
  ROFILE=${file%.*}.root
  if [ ! -e "$SCRATCH/$ROFILE" ] ; then    # convert only if non-existant
    echo -n "."
    sed 's,DATFILE,'$SCRATCH/$file',g' $TEMPLATEPY \
      | sed 's,ROOFILE,'$SCRATCH/$ROFILE'.tmp,g' > conversion_$1_cfg.py
    cmsRun conversion_$1_cfg.py >> $convertout.cout 2>&1
    mv $SCRATCH/$ROFILE.tmp $SCRATCH/$ROFILE
    cat info.log >> $convertout.log
    rm -f debug.log info.log warning.log error.log
    rm -f conversion_$1_cfg.py
  #else
  #  echo "$SCRATCH/$file already converted, so leaving it alone."
  fi
done
echo " done."


# now we could remove unnecessary dat/ind files after conversion


# inject root files
if [ "$2" == "" ] ; then exit 0 ; fi
echo "Running root file injection ..."

injectout="inject_$1_`date +%s`.log"
rm -f $injectout
touch $injectout
echo -n "  Injecting raw data ..."
for file in `ls USC*.root`; do
  echo -n "."
  bash -c "exec -c /opt/cmssw/scripts/inject.sh $file $SCRATCH $1 SiStripCommissioning09-edm $CMSSW_VERSION" >> $injectout
done
echo " done."
echo -n "  Injecting commissioning source files ..."
for file in `ls SiStripCommissioningSource*root`; do
  echo -n "."
  bash -c "exec -c /opt/cmssw/scripts/inject.sh $file $SCRATCH $1 SiStripCommissioning09-source $CMSSW_VERSION" >> $injectout
done
echo " done."
echo -n "  Injecting commissioning client files ..."
for file in `ls SiStripCommissioningClient*root`; do
  echo -n "."
  bash -c "exec -c /opt/cmssw/scripts/inject.sh $file $SCRATCH $1 SiStripCommissioning09-client $CMSSW_VERSION" >> $injectout
done
echo " done."