]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AlirootRun_MUONtest.sh
Update of test script:
[u/mrichter/AliRoot.git] / MUON / AlirootRun_MUONtest.sh
1 #!/bin/sh
2 # $Id$
3
4 # first declare default values
5
6 SIMULATION=1 # will perform simulation
7 RECONSTRUCTION=1 # will perform reconstruction
8 CHECKS=1 # will perform checks
9 SLASHTMP=1 #will use /tmp to put the temporary raw data 
10 NEVENTS=100 # will simulate 100 events
11
12 #RECOPTIONS="SAVEDIGITS NOFASTDECODERS" # reconstruction options with non-high performance decoders
13 RECOPTIONS="SAVEDIGITS" # default reconstruction options
14 SIMCONFIG="$ALICE_ROOT/MUON/Config.C" # default simulation configuration file
15 OUTDIR=""
16 CURDIR=`pwd`
17
18 #RUN=0 # run number for OCDB access
19 SEED=1234567 # random number generator seed
20 SIMDIR="generated" # sub-directory where to move simulated files prior to reco
21 DUMPEVENT=5 # event to be dump on files
22
23 # next try to see if there are options of this script that want to change the
24 # defaults
25  
26 EXIT=0
27
28 while getopts "SRX:srxn:tg:p:d:c:" option
29 do
30   case $option in
31     R ) RECONSTRUCTION=1;;
32     S ) SIMULATION=1;;
33     X ) 
34     CHECKS=1
35     DUMPEVENT=$OPTARG
36     ;;
37     r ) RECONSTRUCTION=0;;
38     s ) SIMULATION=0;;
39     x ) CHECKS=0;;
40     t ) SLASHTMP=0;;
41     c ) SIMCONFIG=$OPTARG;;
42     d ) OUTDIR=$OPTARG;;
43     n ) NEVENTS=$OPTARG;;
44     g ) SEED=$OPTARG;;
45     p ) RECOPTIONS=$OPTARG;; 
46     *     ) echo "Unimplemented option chosen."
47     EXIT=1
48     ;;
49   esac
50 done
51
52 if [ ! -n "$OUTDIR" ]; then
53   OUTDIR="$CURDIR/test_out.$NEVENTS"
54 fi
55
56 # look if there are some leftover options
57 shift $(($OPTIND - 1))
58
59 if [ $# -gt 0 ] || [ "$EXIT" -eq 1 ]; then
60   echo "ERROR : extra option not recognized"
61   echo "Usage: `basename $0` options (-SRXsrxn:tg:p:d:c:)"
62   echo "       -S (-s) perform (or not) simulation (default is do it, i.e -S)"
63   echo "       -R (-r) perform (or not) reconstruction (default is do it, i.e. -R)"
64   echo "       -X event (-x) perform (or not) checks and dumps (default is do it for event $DUMPEVENT, i.e. -X $DUMPEVENT)"
65   echo "       -n nevents (int) number of events to simulate (default $NEVENTS)"
66   echo "       -t will use OUTDIR as a tmp directory to generate raw data  "
67   echo "       -g seed (uint) seed to be used in simulation (default $SEED)"
68   echo "       -p recoptions (quotified string) reconstruction options to use (default \"$RECOPTIONS\")"
69   echo "       -d full path to output directory (default $OUTDIR)"
70   echo "       -c full path to configuration file for simulation (default $SIMCONFIG)"
71   exit 4;
72 fi
73
74 # printout the options
75 echo "sim $SIMULATION rec $RECONSTRUCTION check $CHECKS"
76 if [ "$SIMULATION" -eq 1 ]; then
77   echo "$NEVENTS events will be simulated, using the config found at $SIMCONFIG"
78 fi
79 if [ "$RECONSTRUCTION" -eq 1 ]; then
80 echo "Reconstruction options to be used : $RECOPTIONS"
81 fi
82 echo "Output directory will be : $OUTDIR"
83
84 if [ "$SIMULATION" -eq 1 ]; then
85
86   rm -fr $OUTDIR
87   mkdir $OUTDIR
88
89 fi
90
91 cp $ALICE_ROOT/MUON/.rootrc $ALICE_ROOT/MUON/rootlogon.C \
92   $ALICE_ROOT/MUON/runReconstruction.C $ALICE_ROOT/MUON/runSimulation.C $OUTDIR
93
94 cd $OUTDIR
95
96 if [ "$SLASHTMP" -eq 0 ]; then
97   mkdir ./tmp
98   mkdir ./tmp/mdc1
99   mkdir ./tmp/mdc2
100   mkdir ./tmp/mdc1/tags
101
102   chmod 777 ./tmp
103   chmod 777 ./tmp/mdc1
104   chmod 777 ./tmp/mdc2
105   chmod 777 ./tmp/mdc1/tags
106
107   export ALIMDC_RAWDB1=./tmp/mdc1
108   export ALIMDC_RAWDB2=./tmp/mdc2
109   export ALIMDC_TAGDB=./tmp/mdc1/tags
110 fi
111
112 ###############################################################################
113
114 # Performing SIMULATION
115 #
116 ###############################################################################
117
118 if [ "$SIMULATION" -eq 1 ]; then
119
120   echo "Running simulation  ..."
121
122   aliroot -l -b -q runSimulation.C\($SEED,$NEVENTS,\""$SIMCONFIG"\"\) >& $OUTDIR/testSim.out 
123   
124   echo "Moving generated files to $SIMDIR"
125   mkdir $OUTDIR/$SIMDIR
126   mv $OUTDIR/*QA*.root $OUTDIR/*.log $OUTDIR/$SIMDIR
127   mv $OUTDIR/MUON*.root $OUTDIR/Kinematics*.root $OUTDIR/galice.root $OUTDIR/TrackRefs*.root $OUTDIR/$SIMDIR
128
129 fi
130
131 ###############################################################################
132
133 # Performing RECONSTRUCTION
134 #
135 ###############################################################################
136
137 if [ "$RECONSTRUCTION" -eq 1 ]; then
138
139   rm -f galice.root AliESD*.root *QA*.root
140
141   echo "Running reconstruction  ..."
142
143   cd $OUTDIR
144   
145   aliroot -l -b -q runReconstruction\.C\($SEED,\""$OUTDIR/raw.root"\",\""$RECOPTIONS"\"\) >& $OUTDIR/testReco.out
146
147 fi
148
149 ###############################################################################
150
151 # Performing CHECKS (and dumps)
152 #
153 ###############################################################################
154
155 if [ "$CHECKS" -eq 1 ]; then
156
157   if [ -f "$OUTDIR/$SIMDIR/galice.root" ]; then
158
159     echo "Running efficiency  ..."
160
161     aliroot -b >& $OUTDIR/testResults.out << EOF
162     .L $ALICE_ROOT/MUON/MUONefficiency.C+
163     // no argument assumes Upsilon but MUONefficiency(443) works on Jpsi
164     MUONefficiency("$OUTDIR/$SIMDIR/galice.root");
165     .q
166 EOF
167
168   if [ -f "$OUTDIR/galice.root" ]; then
169
170       echo "Running Trigger efficiency  ..."
171       aliroot -b >& $OUTDIR/testTriggerResults.out << EOF
172       .L $ALICE_ROOT/MUON/MUONTriggerEfficiency.C+
173       MUONTriggerEfficiency("$OUTDIR/$SIMDIR/galice.root", "$OUTDIR/galice.root", 1);
174       .q
175 EOF
176
177       if [ -f "$OUTDIR/AliESDs.root" ]; then
178
179         echo "Running check ..."
180         aliroot -b >& $OUTDIR/testCheck.out << EOF
181         gSystem->Load("libMUONevaluation");
182         .L $ALICE_ROOT/MUON/MUONCheck.C+
183         MUONCheck(0, $NEVENTS-1, "$OUTDIR/$SIMDIR/galice.root", "$OUTDIR/galice.root", "$OUTDIR/AliESDs.root"); 
184         .q
185 EOF
186       fi
187     fi
188   fi
189
190   echo "Running dumps for selected event ($DUMPEVENT) ..."
191
192   if [ -f "$OUTDIR/$SIMDIR/galice.root" ]; then
193     aliroot -l -b  << EOF
194     AliCDBManager* man = AliCDBManager::Instance();
195     man->SetDefaultStorage("local://$ALICE_ROOT");
196     AliMUONMCDataInterface mcdSim("$OUTDIR/$SIMDIR/galice.root");
197     mcdSim.DumpKine($DUMPEVENT);       > $OUTDIR/dump.$DUMPEVENT.kine
198     mcdSim.DumpHits($DUMPEVENT);       > $OUTDIR/dump.$DUMPEVENT.hits
199     mcdSim.DumpTrackRefs($DUMPEVENT);  > $OUTDIR/dump.$DUMPEVENT.trackrefs
200     mcdSim.DumpDigits($DUMPEVENT,true);     > $OUTDIR/dump.$DUMPEVENT.simdigits
201     mcdSim.DumpSDigits($DUMPEVENT,true);    > $OUTDIR/dump.$DUMPEVENT.sdigits
202     .q
203 EOF
204   else
205     echo "$OUTDIR/$SIMDIR/galice.root is not there. Skipping sim dumps"
206   fi
207
208   if [ -f "$OUTDIR/galice.root" ]; then
209     aliroot -l -b << EOF
210     AliCDBManager* man = AliCDBManager::Instance();
211     man->SetDefaultStorage("local://$ALICE_ROOT");
212     AliMUONDataInterface dRec("$OUTDIR/galice.root");
213     dRec.DumpDigits($DUMPEVENT,true); > $OUTDIR/dump.$DUMPEVENT.recdigits
214     dRec.DumpRecPoints($DUMPEVENT);  > $OUTDIR/dump.$DUMPEVENT.recpoints
215     dRec.DumpTrigger($DUMPEVENT); > $OUTDIR/dump.$DUMPEVENT.trigger
216     .q
217 EOF
218   else
219     echo "$OUTDIR/galice.root is not there. Skipping rec dumps"
220   fi
221 fi
222
223 echo "Finished"  
224 echo "... see results in $OUTDIR"
225
226 cd $CURDIR