Added class AliForwarddNdetaTask to do the dN/deta
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / Run.sh
index 46b67afd56bc72daf3dfd7de62f440500b0cda56..fd9c14e34f2f47f7d48baf936e67ca8f547ca853 100755 (executable)
@@ -1,6 +1,7 @@
 #!/bin/bash 
 
 #!/bin/bash 
 
-nev=10000
+ana=$ALICE_ROOT/PWG2/FORWARD/analysis2
+nev=-1
 noanal=0
 nodraw=0
 rebin=1
 noanal=0
 nodraw=0
 rebin=1
@@ -9,13 +10,14 @@ vzmax=10
 batch=0
 gdb=0
 proof=0
 batch=0
 gdb=0
 proof=0
+mc=0
 type=
 cms=900
 hhd=1
 comp=1
 type=
 cms=900
 hhd=1
 comp=1
-anal=0
-term=0
 tit=
 tit=
+pass1=Pass1.C
+output=forward.root
 
 usage()
 {
 
 usage()
 {
@@ -29,19 +31,14 @@ Options:
        -n,--events N           Number of events           ($nev)
        -1,--pass1              Run only pass 1, no draw   ($nodraw)
        -2,--pass2              Run only pass 2, just draw ($noanal)
        -n,--events N           Number of events           ($nev)
        -1,--pass1              Run only pass 1, no draw   ($nodraw)
        -2,--pass2              Run only pass 2, just draw ($noanal)
-       -r,--rebin N            Rebin by N                 ($rebin)
        -v,--vz-min CM          Minimum value of vz        ($vzmin)
        -V,--vz-max CM          Maximum value of vz        ($vzmax)
        -t,--trigger TYPE       Select trigger TYPE        ($type)
        -v,--vz-min CM          Minimum value of vz        ($vzmin)
        -V,--vz-max CM          Maximum value of vz        ($vzmax)
        -t,--trigger TYPE       Select trigger TYPE        ($type)
-       -e,--energy CMS         Center of mass energy      ($cms)
        -b,--batch              Do batch processing        ($batch)
        -b,--batch              Do batch processing        ($batch)
-       -P,--proof              Run in PROOF(Lite) mode    ($proof)
-       -A,--analyse-only       Run only analysis          ($anal)
-       -T,--terminate-only     Run only terminate         ($term)
-       -S,--title STRING       Set the title string       ($tit)
+       -P,--proof NWORKERS     Run in PROOF(Lite) mode    ($proof)
+       -M,--mc                 Run over MC data           ($mc)
        -g,--gdb                Run in GDB mode            ($gdb)
        -g,--gdb                Run in GDB mode            ($gdb)
-       -H,--hhd                Do comparison to HHD       ($hhd)
-       -O,--other              Do comparison to other     ($comp)
+       -E,--eloss              Run energy loss script     
 
 TYPE is a comma or space separated list of 
  
 
 TYPE is a comma or space separated list of 
  
@@ -49,6 +46,7 @@ TYPE is a comma or space separated list of
   INEL>0      As above + N_ch > 0 in -0.5<eta<+0.5
   NSD         Non-single diffractive ((VOA&VOC)|N_ch > 5 -1.9<eta<+1.9)
 
   INEL>0      As above + N_ch > 0 in -0.5<eta<+0.5
   NSD         Non-single diffractive ((VOA&VOC)|N_ch > 5 -1.9<eta<+1.9)
 
+If NWORKERS is 0, then the analysis will be run in local mode. 
 EOF
 }
 
 EOF
 }
 
@@ -65,17 +63,14 @@ while test $# -gt 0 ; do
        -2|--pass2)          noanal=`toggle $noanal`   ;; 
        -1|--pass1)          nodraw=`toggle $nodraw`   ;; 
        -b|--batch)          batch=`toggle $batch`   ;; 
        -2|--pass2)          noanal=`toggle $noanal`   ;; 
        -1|--pass1)          nodraw=`toggle $nodraw`   ;; 
        -b|--batch)          batch=`toggle $batch`   ;; 
-       -P|--proof)          proof=`toggle $proof`   ;; 
-       -A|--analyse-only)   anal=`toggle $anal`   ;; 
-       -T|--terminate-only) term=`toggle $term`   ;; 
+       -P|--proof)          proof=$2         ; shift ;; 
+       -M|--mc)             mc=`toggle $mc`   ;; 
        -g|--gdb)            gdb=`toggle $gdb`   ;; 
        -g|--gdb)            gdb=`toggle $gdb`   ;; 
-       -H|--hhd)            hhd=`toggle $hhd`   ;; 
-       -O|--other)          other=`toggle $other`   ;; 
-       -r|--rebin)          rebin=$2         ; shift ;; 
        -v|--vz-min)         vzmin=$2         ; shift ;; 
        -V|--vz-max)         vzmax=$2         ; shift ;; 
        -v|--vz-min)         vzmin=$2         ; shift ;; 
        -V|--vz-max)         vzmax=$2         ; shift ;; 
-       -e|--energy)         cms=$2           ; shift ;;
-       -S|--title)          tit="$2"         ; shift ;;
+       -E|--eloss)          pass1=MakeELossFits.C ; 
+                            output=forward_eloss.root ;
+                            nodraw=1 ;;
        -t|--type)           
            if test "x$type" = "x" ; then type=$2 ; else type="$type|$2"; fi
            shift ;;
        -t|--type)           
            if test "x$type" = "x" ; then type=$2 ; else type="$type|$2"; fi
            shift ;;
@@ -84,52 +79,55 @@ while test $# -gt 0 ; do
     shift
 done 
 
     shift
 done 
 
-base=`printf dndeta_%07d $nev`
+if test $nev -lt 0 ; then 
+    base=dndeta_xxxxxxx
+else 
+    base=`printf dndeta_%07d $nev`
+fi
 opts="-l -x"
 opts="-l -x"
+opts1=""
 redir=
 redir=
+if test $nodraw -lt 1 ; then 
+    opts1="-q" 
+fi
 if test $batch -gt 0 ; then 
 if test $batch -gt 0 ; then 
-    opts="-l -b -q -x" 
+    opts="-b -q $opts"
     redir="2>&1 | tee ${base}.log"
     redir="2>&1 | tee ${base}.log"
+    echo "redir=$redir"
 fi 
 if test $noanal -lt 1 ; then 
     rm -f AnalysisResult.root AliAODs.root
     rm -f fmdana.png
 fi 
 if test $noanal -lt 1 ; then 
     rm -f AnalysisResult.root AliAODs.root
     rm -f fmdana.png
-    
-    # Setup analysis flags
-    af=0
-    if test $proof -gt 0 ; then 
-       af=2 
-    else 
-       if test $anal -gt 0 ; then 
-           af=8
-       elif test $term -gt 0 ; then 
-           af=16
-       else 
-           af=4
-       fi
-    fi
 
     if test $gdb -gt 0 ; then 
        export PROOF_WRAPPERCMD="gdb -batch -x $ALICE_ROOT/PWG2/FORWARD/analysis2/gdb_cmds --args"
     fi
 
     if test $gdb -gt 0 ; then 
        export PROOF_WRAPPERCMD="gdb -batch -x $ALICE_ROOT/PWG2/FORWARD/analysis2/gdb_cmds --args"
     fi
-    aliroot $opts $ALICE_ROOT/PWG2/FORWARD/analysis2/Pass1.C\(\".\",$nev,$af\) \
-       $redir 
-    rm -f event_stat.root EventStat_temp.root outputs_valid
-    if test ! -f AnalysisResults.root || test ! -f AliAODs.root ; then 
-       echo "Analysis failed" 
-       exit 1
+    echo "Running aliroot ${opts} ${opts1} ${ana}/${pass1}\(\".\",$nev,$proof,$mc\) $redir"
+    if test $batch -gt 0 ; then 
+       aliroot $opts $opts1 ${ana}/${pass1}\(\".\",$nev,$proof,$mc\) 2>&1 | tee ${base}.log
+    else 
+       aliroot $opts $opts1 ${ana}/${pass1}\(\".\",$nev,$proof,$mc\)
+    fi
+    fail=$?
+    rm -f outputs_valid \
+       `printf %09d.stat $nev` 
+    if  test $fail -gt 0  ; then 
+        echo "Return value $fail not 0" ; exit $fail 
+    fi
+    if test ! -f ${output} ; then 
+       echo "$output not made" ; exit 1; 
+    fi
+    if test ! -f AliAODs.root ; then 
+       echo "No AOD creates" ; exit 1;
     fi
     echo "Analysis done"
 fi
 
 if test $nodraw -lt 1 ; then
     rm -f result.root 
     fi
     echo "Analysis done"
 fi
 
 if test $nodraw -lt 1 ; then
     rm -f result.root 
-    if test "x$tit" = "x" ; then 
-       tit="$nev\ events,\ v_{z}#in[$vzmin,$vzmax],\ $type"
-    else 
-       tit=`echo $tit | tr ' ' '\ '` 
-    fi
-    aliroot ${opts} $ALICE_ROOT/PWG2/FORWARD/analysis2/Pass2.C\(\"AliAODs.root\",\"$type\",$cms,$vzmin,$vzmax,$rebin,\"$tit\",$hhd,$comp\)
+    tit=`echo $tit | tr ' ' '@'` 
+    echo "Running aliroot ${opts} ${opts1} ${ana}/Pass2.C\(\".\",$nev,\"$type\",$vzmin,$vzmax,$proof\)"
+    aliroot ${opts} ${ana}/Pass2.C\(\".\",$nev,\"$type\",$vzmin,$vzmax,$proof\)
 fi
 
 
 fi