46b67afd56bc72daf3dfd7de62f440500b0cda56
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / Run.sh
1 #!/bin/bash 
2
3 nev=10000
4 noanal=0
5 nodraw=0
6 rebin=1
7 vzmin=-10
8 vzmax=10
9 batch=0
10 gdb=0
11 proof=0
12 type=
13 cms=900
14 hhd=1
15 comp=1
16 anal=0
17 term=0
18 tit=
19
20 usage()
21 {
22 cat<<EOF
23 Usage: $0 [OPTIONS]
24
25 Do Pass1 and Pass2 on ESD files in current directory.  
26
27 Options:
28         -h,--help               This help                  
29         -n,--events N           Number of events           ($nev)
30         -1,--pass1              Run only pass 1, no draw   ($nodraw)
31         -2,--pass2              Run only pass 2, just draw ($noanal)
32         -r,--rebin N            Rebin by N                 ($rebin)
33         -v,--vz-min CM          Minimum value of vz        ($vzmin)
34         -V,--vz-max CM          Maximum value of vz        ($vzmax)
35         -t,--trigger TYPE       Select trigger TYPE        ($type)
36         -e,--energy CMS         Center of mass energy      ($cms)
37         -b,--batch              Do batch processing        ($batch)
38         -P,--proof              Run in PROOF(Lite) mode    ($proof)
39         -A,--analyse-only       Run only analysis          ($anal)
40         -T,--terminate-only     Run only terminate         ($term)
41         -S,--title STRING       Set the title string       ($tit)
42         -g,--gdb                Run in GDB mode            ($gdb)
43         -H,--hhd                Do comparison to HHD       ($hhd)
44         -O,--other              Do comparison to other     ($comp)
45
46 TYPE is a comma or space separated list of 
47  
48   INEL        Inelastic triggers (V0A|V0C|SPD)
49   INEL>0      As above + N_ch > 0 in -0.5<eta<+0.5
50   NSD         Non-single diffractive ((VOA&VOC)|N_ch > 5 -1.9<eta<+1.9)
51
52 EOF
53 }
54
55 toggle()
56 {
57     echo $((($1+1)%2))
58 }
59
60
61 while test $# -gt 0 ; do
62     case $1 in 
63         -h|--help)           usage            ; exit 0;; 
64         -n|--events)         nev=$2           ; shift ;; 
65         -2|--pass2)          noanal=`toggle $noanal`   ;; 
66         -1|--pass1)          nodraw=`toggle $nodraw`   ;; 
67         -b|--batch)          batch=`toggle $batch`   ;; 
68         -P|--proof)          proof=`toggle $proof`   ;; 
69         -A|--analyse-only)   anal=`toggle $anal`   ;; 
70         -T|--terminate-only) term=`toggle $term`   ;; 
71         -g|--gdb)            gdb=`toggle $gdb`   ;; 
72         -H|--hhd)            hhd=`toggle $hhd`   ;; 
73         -O|--other)          other=`toggle $other`   ;; 
74         -r|--rebin)          rebin=$2         ; shift ;; 
75         -v|--vz-min)         vzmin=$2         ; shift ;; 
76         -V|--vz-max)         vzmax=$2         ; shift ;; 
77         -e|--energy)         cms=$2           ; shift ;;
78         -S|--title)          tit="$2"         ; shift ;;
79         -t|--type)           
80             if test "x$type" = "x" ; then type=$2 ; else type="$type|$2"; fi
81             shift ;;
82         *) echo "$0: Unknown option '$1'" >> /dev/stderr ; exit 1 ;;
83     esac
84     shift
85 done 
86
87 base=`printf dndeta_%07d $nev`
88 opts="-l -x"
89 redir=
90 if test $batch -gt 0 ; then 
91     opts="-l -b -q -x" 
92     redir="2>&1 | tee ${base}.log"
93 fi 
94 if test $noanal -lt 1 ; then 
95     rm -f AnalysisResult.root AliAODs.root
96     rm -f fmdana.png
97     
98     # Setup analysis flags
99     af=0
100     if test $proof -gt 0 ; then 
101         af=2 
102     else 
103         if test $anal -gt 0 ; then 
104             af=8
105         elif test $term -gt 0 ; then 
106             af=16
107         else 
108             af=4
109         fi
110     fi
111
112     if test $gdb -gt 0 ; then 
113         export PROOF_WRAPPERCMD="gdb -batch -x $ALICE_ROOT/PWG2/FORWARD/analysis2/gdb_cmds --args"
114     fi
115     aliroot $opts $ALICE_ROOT/PWG2/FORWARD/analysis2/Pass1.C\(\".\",$nev,$af\) \
116         $redir 
117     rm -f event_stat.root EventStat_temp.root outputs_valid
118     if test ! -f AnalysisResults.root || test ! -f AliAODs.root ; then 
119         echo "Analysis failed" 
120         exit 1
121     fi
122     echo "Analysis done"
123 fi
124
125 if test $nodraw -lt 1 ; then
126     rm -f result.root 
127     if test "x$tit" = "x" ; then 
128         tit="$nev\ events,\ v_{z}#in[$vzmin,$vzmax],\ $type"
129     else 
130         tit=`echo $tit | tr ' ' '\ '` 
131     fi
132     aliroot ${opts} $ALICE_ROOT/PWG2/FORWARD/analysis2/Pass2.C\(\"AliAODs.root\",\"$type\",$cms,$vzmin,$vzmax,$rebin,\"$tit\",$hhd,$comp\)
133 fi
134
135
136 #
137 # EOF
138 #