Skip to content
Snippets Groups Projects
Commit 4a0a5223 authored by FASER Reco's avatar FASER Reco
Browse files

Add production scripts

parent 9ab6714d
No related branches found
No related tags found
No related merge requests found
......@@ -17,5 +17,5 @@ atlas_add_component( NoisyStripFinder
atlas_install_python_modules( python/*.py )
atlas_install_scripts( share/*.py test/*.py )
atlas_install_scripts( share/*.py share/*.sh )
#!/bin/bash
#
# Used to submit noisy strip finding job to condor
#
# Usage:
# submit_noisy_run.sh [options] file_path
#
# Options:
# --
# --out - specify output file path location
# --log - specify output log file location
# --isMC - needed for MC reco
# --rel <reldir> - specify release directory
# --work <sorkdir> - specify working directory
#
# file_path - path of one or more files to process
#
# The release directory must already be set up
#
#----------------------------------------
function print_usage {
echo "Usage: submit_noisy_run.sh [options] file_path"
echo " file_path is on or more input files (can use wildcards)"
echo " Options: "
echo " --isMC - specify Monte Carlo"
echo " --rel <release_directory> - specify release directory"
echo " --work <working_directory> - specify working directory"
echo " --out <output_directory> - where to copy output when job is finished"
echo " --log <log_directory> - where to copy log file (or output_directory)"
}
# Keep track of time
SECONDS=0
#
# Parse command-line options
hfile="NoisyStripFinder.root"
while [ -n "$1" ]
do
case "$1" in
-h)
print_usage
exit 0;;
-l | --log)
logdest="$2";
shift;
shift;; # Must eat 2 options here
-o | --out)
outdest="$2";
shift;
shift;;
--isMC)
ismc=1
shift;;
--hist)
hfile="$2";
shift;
shift;;
--rel)
release_directory="$2";
shift;
shift;;
--work)
working_directory="$2";
shift;
shift;;
--) # End of options
shift; # Eat this
break;; # And stop parsing
-*)
echo "Unknown option $1"
shift;;
*) break;; # Not an option, don't shift
esac
done
#
# Parse command-line arguments
file_path="${@:1}"
#
# Set defaults if arguments aren't provided
if [ -z "$file_path" ]
then
echo "No file_path specified!"
print_usage
exit 1
fi
#
if [ -z "$release_directory" ]
then
release_directory=`pwd`
fi
#
if [ -z "$working_directory" ]
then
working_directory=`pwd`
fi
#
starting_directory=`pwd`
#
# Create the working directory
mkdir -p "$working_directory"
cd $working_directory
#
# This magic redirects everything in this script to the log file
logfile="noisy_`date +%m%d-%H%M%S`.log"
exec >& "$logfile"
echo `date` - $HOSTNAME
echo "Filepath: $file_path"
echo "Release: $release_directory"
echo "Output: $output_directory"
echo "Starting: $starting_directory"
#
# Set up the release (do this automatically)?
export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase
source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh
#
# Try automatic
# Always go back to the starting directory in case paths are relative
cd "$starting_directory"
cd "$release_directory"
asetup --input=calypso/asetup.faser Athena,22.0.49
source run/setup.sh
#
# Move to the run directory
cd $starting_directory
cd $working_directory
#
if [[ -z "$ismc" ]]; then
mcstr=""
else
mcstr="--isMC"
fi
#
NoisyStripFinderJob.py --outfile=$hfile $file_path
#
# Print out ending time
date
echo "Job finished after $SECONDS seconds"
#
# Copy output to EOS if desired
export EOS_MGM_URL=root://eospublic.cern.ch
#
# Now copy output file
if ! [ -z "$outdest" ]
then
echo "Output directory:"
ls -l
echo "copy $hfile to $outdest"
if [[ $outdest == /eos/experiment/faser/* ]]; then
eos mkdir -p $outdest
# Keep this line from stopping script, so we might get a log file
# || true ensures script continues even if copy fails
eos cp $hfile $outdest/ || true
else
mkdir -p $outdest
cp $hfile $outdest/ || true
fi
fi
#
# Copy log file second
if ! [ -z "$logdest" ]
then
echo "Output directory:"
ls -l
echo "copy $logfile to $logdest"
if [[ $logdest == /eos/experiment/faser/* ]]; then
eos mkdir -p $logdest
eos cp $logfile $logdest/$logfile
else
mkdir -p $logdest
cp $logfile $logdest/$logfile
fi
elif ! [ -z "$outdest" ]
then
echo "copy $logfile to $outdest"
if [[ $logdest == /eos/experiment/faser/* ]]; then
eos cp $logfile $outdest/$logfile
else
cp $logfile $outdest/$logfile
fi
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment