RAW=1 # will reconstruct from raw data
CHECKS=1 # will perform checks
SLASHTMP=1 #will use /tmp to put the temporary raw data
-NEVENTS=100 # will simulate 100 events
+NEVENTS=50 # will simulate 100 events
#RECOPTIONS="SAVEDIGITS NOFASTDECODERS" # reconstruction options with non-high performance decoders
RECOPTIONS="SAVEDIGITS" # default reconstruction options
MC="" # G3 Simulation with old Config.C
#MC="g3" # G3 Simulation (with new config macros)
#MC="g4" # G4 Simulation (with new config macros)
-SIMCONFIG="$ALICE_ROOT/MUON/"$MC"Config.C" # default simulation configuration file
+
OUTDIR=""
CURDIR=`pwd`
#RUN=0 # run number for OCDB access
SEED=1234567 # random number generator seed
SIMDIR="generated" # sub-directory where to move simulated files prior to reco
-DUMPEVENT=5 # event to be dump on files
+DUMPEVENT=5 # event to be dump on files (set to negative to skip dumps)
+
+SIMCONFIG="$ALICE_ROOT/MUON/"$MC"Config.C"
+EMBEDWITH="" # no embedding by default
+REALISTIC=0 # ideal simulation by default
# next try to see if there are options of this script that want to change the
# defaults
EXIT=0
-while getopts "SRZX:srxzn:tg:p:d:c:" option
+while getopts "SRZX:srxzn:tg:p:d:c:e:b:" option
do
case $option in
R ) RECONSTRUCTION=1;;
n ) NEVENTS=$OPTARG;;
g ) SEED=$OPTARG;;
p ) RECOPTIONS=$OPTARG;;
+ e ) EMBEDWITH=$OPTARG;;
+ b )
+ REALISTIC=$OPTARG
+ RAW=0
+ ;;
* ) echo "Unimplemented option chosen."
EXIT=1
;;
echo " -p recoptions (quotified string) reconstruction options to use (default \"$RECOPTIONS\")"
echo " -d full path to output directory (default $OUTDIR)"
echo " -c full path to configuration file for simulation (default $SIMCONFIG)"
+ echo " -e full path to a galice.root file relating to SDigits to be merged (embedding)"
+ echo " -b runnumber (int) make a realistic simulation using runnumber as anchor (default 0=ideal simulation)"
exit 4;
fi
+
# printout the options
echo "sim $SIMULATION rec $RECONSTRUCTION check $CHECKS"
if [ "$SIMULATION" -eq 1 ]; then
echo "$NEVENTS events will be simulated, using the config found at $SIMCONFIG"
fi
+if [ -n "$EMBEDWITH" ]; then
+ echo "Will embed simulation with $EMBEDWITH"
+fi
+if [ "$REALISTIC" -gt 0 ]; then
+ echo "Will use anchor run $REALISTIC"
+fi
if [ "$RECONSTRUCTION" -eq 1 ]; then
echo "Reconstruction options to be used : $RECOPTIONS"
if [ "$RAW" -eq 0 ]; then
echo "Updating GRP CTP config ..."
aliroot -b > $OUTDIR/updateCDBCTPConfig.out 2>&1 << EOF
- .L UpdateCDBCTPConfig.C+
+ .L UpdateCDBCTPConfig.C++g
UpdateCDBCTPConfig();
.q
EOF
echo "Running simulation ..."
- aliroot -l -b -q runSimulation.C\($SEED,$NEVENTS,\""$SIMCONFIG"\"\) > $OUTDIR/testSim.out 2>&1
+ aliroot -l -b -q runSimulation.C\($SEED,$NEVENTS,\""$SIMCONFIG"\"\,\""$EMBEDWITH"\"\,$REALISTIC\) > $OUTDIR/testSim.out 2>&1
mkdir $OUTDIR/$SIMDIR
if [ "$RAW" -eq 1 ]; then
- echo "Moving generated files to $SIMDIR"
- mv $OUTDIR/*QA*.root $OUTDIR/*.log $OUTDIR/$SIMDIR
- mv $OUTDIR/MUON*.root $OUTDIR/Kinematics*.root $OUTDIR/galice.root $OUTDIR/TrackRefs*.root $OUTDIR/$SIMDIR
+ if [ "$REALISTIC" -eq 0 ]; then # we can not move for realistic simulations as we need e.g. kinematics to propagate the simulated vertex to the reco.
+ echo "Moving generated files to $SIMDIR"
+ mv $OUTDIR/*QA*.root $OUTDIR/*.log $OUTDIR/$SIMDIR
+ mv $OUTDIR/MUON*.root $OUTDIR/TrackRefs*.root $OUTDIR/$SIMDIR
+ mv $OUTDIR/Kinematics*.root $OUTDIR/galice.root $OUTDIR/$SIMDIR
+ fi
else
echo "Copying generated files to $SIMDIR"
cp $OUTDIR/*QA*.root $OUTDIR/*.log $OUTDIR/$SIMDIR
if [ "$MC" = "g4" ]; then
cp $ALICE_ROOT/MUON/geometry/geometry.root $OUTDIR
fi
+
+ cp $OUTDIR/geometry.root $OUTDIR/$SIMDIR/geometry.root
+
fi
###############################################################################
if [ "$RECONSTRUCTION" -eq 1 ]; then
if [ "$RAW" -eq 1 ]; then
- rm -f galice.root
+ if [ "$REALISTIC" -eq 0 ]; then
+ rm -f galice.root
+ fi
fi
+
+ if [ "$REALISTIC" -ne 0 ]; then
+ rm -f geometry.root
+ fi
rm -f AliESD*.root *QA*.root
cd $OUTDIR
+ RAWOCDB=kFALSE
+
+ if [ -n "$EMBEDWITH" ]; then
+ RAWOCDB=kTRUE
+ fi
+
+ if [ "$REALISTIC" -gt 0 ]; then
+ RAWOCDB=kTRUE
+ fi
+
if [ "$RAW" -eq 1 ]; then
- aliroot -l -b -q runReconstruction\.C\($SEED,\""$OUTDIR/raw.root"\",\""$RECOPTIONS"\"\) > $OUTDIR/testReco.out 2>&1
+ aliroot -l -b -q runReconstruction\.C\($SEED,\""$OUTDIR/raw.root"\",\""$RECOPTIONS"\",$RAWOCDB\) > $OUTDIR/testReco.out 2>&1
else
- aliroot -l -b -q runReconstruction\.C\($SEED,\"""\",\""$RECOPTIONS"\"\) > $OUTDIR/testReco.out 2>&1
+ aliroot -l -b -q runReconstruction\.C\($SEED,\"""\",\""$RECOPTIONS"\",$RAWOCDB\) > $OUTDIR/testReco.out 2>&1
fi
echo "Running efficiency ..."
aliroot -b > $OUTDIR/testResults.out 2>&1 << EOF
- .L MUONefficiency.C+
+ .L MUONefficiency.C++g
// no argument assumes Upsilon but MUONefficiency(443) works on Jpsi
MUONefficiency("$OUTDIR/$SIMDIR/galice.root");
.q
echo "Running Trigger efficiency ..."
aliroot -b > $OUTDIR/testTriggerResults.out 2>&1 << EOF
- .L MUONTriggerEfficiency.C+
+ .L MUONTriggerEfficiency.C++g
MUONTriggerEfficiency("$OUTDIR/$SIMDIR/galice.root", "$OUTDIR/galice.root", 1);
.q
EOF
echo "Running check ..."
aliroot -b > $OUTDIR/testCheck.out 2>&1 << EOF
gSystem->Load("libMUONevaluation");
- .L MUONCheck.C+
+ .L MUONCheck.C++g
MUONCheck(0, $NEVENTS-1, "$OUTDIR/$SIMDIR/galice.root", "$OUTDIR/galice.root", "$OUTDIR/AliESDs.root");
.q
EOF
fi
fi
fi
+
+if [ "$DUMPEVENT" -ge 0 ]; then
echo "Running dumps for selected event ($DUMPEVENT) ..."
if [ -f "$OUTDIR/$SIMDIR/galice.root" ]; then
aliroot -l -b << EOF
- AliCDBManager* man = AliCDBManager::Instance();
+ AliCDBManager* man = AliCDBManager::Instance();
man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
AliMUONMCDataInterface mcdSim("$OUTDIR/$SIMDIR/galice.root");
mcdSim.DumpKine($DUMPEVENT); > $OUTDIR/dump.$DUMPEVENT.kine
fi
fi
+fi
+
echo "Finished"
echo "... see results in $OUTDIR"