]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AlirootRun_MUONtest.sh
Make the Scan method public
[u/mrichter/AliRoot.git] / MUON / AlirootRun_MUONtest.sh
index 1d665d2690739e4ab2bad5eb45a7b2ea06dbc6b1..dad00e9f8af2abb29cfb1e1e2482ecad16ba53e8 100755 (executable)
@@ -8,25 +8,32 @@ RECONSTRUCTION=1 # will perform reconstruction
 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
-SIMCONFIG="$ALICE_ROOT/MUON/Config.C" # default simulation configuration file
+MC=""    # G3 Simulation with old Config.C 
+#MC="g3"  # G3 Simulation (with new config macros)
+#MC="g4"  # G4 Simulation (with new config macros)
+
 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;;
@@ -46,6 +53,11 @@ do
     n ) NEVENTS=$OPTARG;;
     g ) SEED=$OPTARG;;
     p ) RECOPTIONS=$OPTARG;; 
+    e ) EMBEDWITH=$OPTARG;;
+    b ) 
+    REALISTIC=$OPTARG
+    RAW=0
+    ;;
     *     ) echo "Unimplemented option chosen."
     EXIT=1
     ;;
@@ -53,7 +65,11 @@ do
 done
 
 if [ ! -n "$OUTDIR" ]; then
-  OUTDIR="$CURDIR/test_out.$NEVENTS"
+  if [ "$MC" = "" ]; then
+    OUTDIR=$CURDIR"/test_out."$NEVENTS
+  else  
+    OUTDIR=$CURDIR"/"$MC"_test_out."$NEVENTS
+  fi  
 fi
 
 # look if there are some leftover options
@@ -72,14 +88,23 @@ if [ $# -gt 0 ] || [ "$EXIT" -eq 1 ]; then
   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
@@ -95,8 +120,16 @@ if [ "$SIMULATION" -eq 1 ]; then
 
 fi
 
-cp $ALICE_ROOT/MUON/.rootrc $ALICE_ROOT/MUON/rootlogon.C \
-  $ALICE_ROOT/MUON/runReconstruction.C $ALICE_ROOT/MUON/runSimulation.C $OUTDIR
+# Copy *ALL* the macros we need in the output directory, not to mess
+# with our source dir in any way.
+cp $ALICE_ROOT/MUON/.rootrc \
+  $ALICE_ROOT/MUON/rootlogon.C \
+  $ALICE_ROOT/MUON/runReconstruction.C $ALICE_ROOT/MUON/runSimulation.C \
+  $ALICE_ROOT/MUON/UpdateCDBCTPConfig.C \
+  $ALICE_ROOT/MUON/MUONefficiency.C \
+  $ALICE_ROOT/MUON/MUONTriggerEfficiency.C \
+  $ALICE_ROOT/MUON/MUONCheck.C \
+  $OUTDIR
 
 cd $OUTDIR
 
@@ -126,8 +159,8 @@ if [ ! -f $ALICE_ROOT/OCDB/GRP/CTP/Config/Run0_999999999_v0_s1.root ]; then
 
   echo "Updating GRP CTP config  ..."
 
-  aliroot -b >& $OUTDIR/updateCDBCTPConfig.out << EOF
-  .L $ALICE_ROOT/MUON/UpdateCDBCTPConfig.C+
+  aliroot -b > $OUTDIR/updateCDBCTPConfig.out 2>&1 << EOF
+  .L UpdateCDBCTPConfig.C++g
   UpdateCDBCTPConfig();
   .q
 EOF
@@ -145,19 +178,36 @@ if [ "$SIMULATION" -eq 1 ]; then
 
   echo "Running simulation  ..."
 
-  aliroot -l -b -q runSimulation.C\($SEED,$NEVENTS,\""$SIMCONFIG"\"\) >& $OUTDIR/testSim.out 
+  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
     cp $OUTDIR/MUON*.root $OUTDIR/Kinematics*.root $OUTDIR/galice.root $OUTDIR/TrackRefs*.root $OUTDIR/$SIMDIR
   fi
+
+  # save geometry file in a separate directory
+  if [ "$MC" = "g3" ]; then
+    rm -fr $ALICE_ROOT/MUON/geometry
+    mkdir $ALICE_ROOT/MUON/geometry
+    cp $OUTDIR/geometry.root $ALICE_ROOT/MUON/geometry
+  fi 
+
+  # copy input geometry file in a current directory
+  if [ "$MC" = "g4" ]; then
+    cp $ALICE_ROOT/MUON/geometry/geometry.root $OUTDIR
+  fi 
+  
+  cp $OUTDIR/geometry.root $OUTDIR/$SIMDIR/geometry.root
   
 fi
 
@@ -170,8 +220,14 @@ 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
   
@@ -179,13 +235,23 @@ if [ "$RECONSTRUCTION" -eq 1 ]; then
 
   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
+    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
+    aliroot -l -b -q runReconstruction\.C\($SEED,\"""\",\""$RECOPTIONS"\",$RAWOCDB\) > $OUTDIR/testReco.out  2>&1
   
   fi
   
@@ -203,8 +269,8 @@ if [ "$CHECKS" -eq 1 ]; then
 
     echo "Running efficiency  ..."
 
-    aliroot -b >& $OUTDIR/testResults.out << EOF
-    .L $ALICE_ROOT/MUON/MUONefficiency.C+
+    aliroot -b > $OUTDIR/testResults.out 2>&1 << EOF
+    .L MUONefficiency.C++g
     // no argument assumes Upsilon but MUONefficiency(443) works on Jpsi
     MUONefficiency("$OUTDIR/$SIMDIR/galice.root");
     .q
@@ -213,8 +279,8 @@ EOF
   if [ -f "$OUTDIR/galice.root" ]; then
 
       echo "Running Trigger efficiency  ..."
-      aliroot -b >& $OUTDIR/testTriggerResults.out << EOF
-      .L $ALICE_ROOT/MUON/MUONTriggerEfficiency.C+
+      aliroot -b > $OUTDIR/testTriggerResults.out 2>&1 << EOF
+      .L MUONTriggerEfficiency.C++g
       MUONTriggerEfficiency("$OUTDIR/$SIMDIR/galice.root", "$OUTDIR/galice.root", 1);
       .q
 EOF
@@ -222,21 +288,23 @@ EOF
       if [ -f "$OUTDIR/AliESDs.root" ]; then
 
         echo "Running check ..."
-        aliroot -b >& $OUTDIR/testCheck.out << EOF
+        aliroot -b > $OUTDIR/testCheck.out 2>&1 << EOF
         gSystem->Load("libMUONevaluation");
-        .L $ALICE_ROOT/MUON/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
@@ -265,6 +333,8 @@ EOF
   fi
 fi
 
+fi
+
 echo "Finished"  
 echo "... see results in $OUTDIR"