]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AlirootRun_MUONtest.sh
An example of a c*tau analysis using AODs
[u/mrichter/AliRoot.git] / MUON / AlirootRun_MUONtest.sh
... / ...
CommitLineData
1#!/bin/sh
2# $Id$
3
4# first declare default values
5
6SIMULATION=1 # will perform simulation
7RECONSTRUCTION=1 # will perform reconstruction
8RAW=1 # will reconstruct from raw data
9CHECKS=1 # will perform checks
10SLASHTMP=1 #will use /tmp to put the temporary raw data
11NEVENTS=50 # will simulate 100 events
12
13#RECOPTIONS="SAVEDIGITS NOFASTDECODERS" # reconstruction options with non-high performance decoders
14RECOPTIONS="SAVEDIGITS" # default reconstruction options
15MC="" # G3 Simulation with old Config.C
16#MC="g3" # G3 Simulation (with new config macros)
17#MC="g4" # G4 Simulation (with new config macros)
18
19OUTDIR=""
20CURDIR=`pwd`
21
22#RUN=0 # run number for OCDB access
23SEED=1234567 # random number generator seed
24SIMDIR="generated" # sub-directory where to move simulated files prior to reco
25DUMPEVENT=5 # event to be dump on files
26
27SIMCONFIG="$ALICE_ROOT/MUON/"$MC"Config.C"
28EMBEDWITH="" # no embedding by default
29
30# next try to see if there are options of this script that want to change the
31# defaults
32
33EXIT=0
34
35while getopts "SRZX:srxzn:tg:p:d:c:e:" option
36do
37 case $option in
38 R ) RECONSTRUCTION=1;;
39 S ) SIMULATION=1;;
40 X )
41 CHECKS=1
42 DUMPEVENT=$OPTARG
43 ;;
44 Z ) RAW=1;;
45 r ) RECONSTRUCTION=0;;
46 s ) SIMULATION=0;;
47 x ) CHECKS=0;;
48 t ) SLASHTMP=0;;
49 z ) RAW=0;;
50 c ) SIMCONFIG=$OPTARG;;
51 d ) OUTDIR=$OPTARG;;
52 n ) NEVENTS=$OPTARG;;
53 g ) SEED=$OPTARG;;
54 p ) RECOPTIONS=$OPTARG;;
55 e ) EMBEDWITH=$OPTARG;;
56 * ) echo "Unimplemented option chosen."
57 EXIT=1
58 ;;
59 esac
60done
61
62if [ ! -n "$OUTDIR" ]; then
63 if [ "$MC" = "" ]; then
64 OUTDIR=$CURDIR"/test_out."$NEVENTS
65 else
66 OUTDIR=$CURDIR"/"$MC"_test_out."$NEVENTS
67 fi
68fi
69
70# look if there are some leftover options
71shift $(($OPTIND - 1))
72
73if [ $# -gt 0 ] || [ "$EXIT" -eq 1 ]; then
74 echo "ERROR : extra option not recognized"
75 echo "Usage: `basename $0` options (-SRXsrxn:tg:p:d:c:)"
76 echo " -S (-s) perform (or not) simulation (default is do it, i.e -S)"
77 echo " -R (-r) perform (or not) reconstruction (default is do it, i.e. -R)"
78 echo " -X event (-x) perform (or not) checks and dumps (default is do it for event $DUMPEVENT, i.e. -X $DUMPEVENT)"
79 echo " -Z (-z) perform reconstruction from raw data (from digits) (default is from raw data, i.e. -Z)"
80 echo " -n nevents (int) number of events to simulate (default $NEVENTS)"
81 echo " -t will use OUTDIR as a tmp directory to generate raw data "
82 echo " -g seed (uint) seed to be used in simulation (default $SEED)"
83 echo " -p recoptions (quotified string) reconstruction options to use (default \"$RECOPTIONS\")"
84 echo " -d full path to output directory (default $OUTDIR)"
85 echo " -c full path to configuration file for simulation (default $SIMCONFIG)"
86 echo " -e full path to a galice.root file relating to SDigits to be merged (embedding)"
87 exit 4;
88fi
89
90
91# printout the options
92echo "sim $SIMULATION rec $RECONSTRUCTION check $CHECKS"
93if [ "$SIMULATION" -eq 1 ]; then
94 echo "$NEVENTS events will be simulated, using the config found at $SIMCONFIG"
95fi
96if [ -n "$EMBEDWITH" ]; then
97 echo "Will embed simulation with $EMBEDWITH"
98fi
99if [ "$RECONSTRUCTION" -eq 1 ]; then
100echo "Reconstruction options to be used : $RECOPTIONS"
101if [ "$RAW" -eq 0 ]; then
102echo "Will reconstruct from digits only (not from raw data)"
103fi
104fi
105echo "Output directory will be : $OUTDIR"
106
107if [ "$SIMULATION" -eq 1 ]; then
108
109 rm -fr $OUTDIR
110 mkdir $OUTDIR
111
112fi
113
114# Copy *ALL* the macros we need in the output directory, not to mess
115# with our source dir in any way.
116cp $ALICE_ROOT/MUON/.rootrc \
117 $ALICE_ROOT/MUON/rootlogon.C \
118 $ALICE_ROOT/MUON/runReconstruction.C $ALICE_ROOT/MUON/runSimulation.C \
119 $ALICE_ROOT/MUON/UpdateCDBCTPConfig.C \
120 $ALICE_ROOT/MUON/MUONefficiency.C \
121 $ALICE_ROOT/MUON/MUONTriggerEfficiency.C \
122 $ALICE_ROOT/MUON/MUONCheck.C \
123 $OUTDIR
124
125cd $OUTDIR
126
127if [ "$SLASHTMP" -eq 0 ]; then
128 mkdir ./tmp
129 mkdir ./tmp/mdc1
130 mkdir ./tmp/mdc2
131 mkdir ./tmp/mdc1/tags
132
133 chmod 777 ./tmp
134 chmod 777 ./tmp/mdc1
135 chmod 777 ./tmp/mdc2
136 chmod 777 ./tmp/mdc1/tags
137
138 export ALIMDC_RAWDB1=./tmp/mdc1
139 export ALIMDC_RAWDB2=./tmp/mdc2
140 export ALIMDC_TAGDB=./tmp/mdc1/tags
141fi
142
143###############################################################################
144#
145# Update CTP in OCDB for MUON Trigger
146#
147###############################################################################
148
149if [ ! -f $ALICE_ROOT/OCDB/GRP/CTP/Config/Run0_999999999_v0_s1.root ]; then
150
151 echo "Updating GRP CTP config ..."
152
153 aliroot -b > $OUTDIR/updateCDBCTPConfig.out 2>&1 << EOF
154 .L UpdateCDBCTPConfig.C++g
155 UpdateCDBCTPConfig();
156 .q
157EOF
158
159fi
160
161
162###############################################################################
163#
164# Performing SIMULATION
165#
166###############################################################################
167
168if [ "$SIMULATION" -eq 1 ]; then
169
170 echo "Running simulation ..."
171
172 aliroot -l -b -q runSimulation.C\($SEED,$NEVENTS,\""$SIMCONFIG"\"\,\""$EMBEDWITH"\"\) > $OUTDIR/testSim.out 2>&1
173
174 mkdir $OUTDIR/$SIMDIR
175
176 if [ "$RAW" -eq 1 ]; then
177 echo "Moving generated files to $SIMDIR"
178 mv $OUTDIR/*QA*.root $OUTDIR/*.log $OUTDIR/$SIMDIR
179 mv $OUTDIR/MUON*.root $OUTDIR/Kinematics*.root $OUTDIR/galice.root $OUTDIR/TrackRefs*.root $OUTDIR/$SIMDIR
180 else
181 echo "Copying generated files to $SIMDIR"
182 cp $OUTDIR/*QA*.root $OUTDIR/*.log $OUTDIR/$SIMDIR
183 cp $OUTDIR/MUON*.root $OUTDIR/Kinematics*.root $OUTDIR/galice.root $OUTDIR/TrackRefs*.root $OUTDIR/$SIMDIR
184 fi
185
186 # save geometry file in a separate directory
187 if [ "$MC" = "g3" ]; then
188 rm -fr $ALICE_ROOT/MUON/geometry
189 mkdir $ALICE_ROOT/MUON/geometry
190 cp $OUTDIR/geometry.root $ALICE_ROOT/MUON/geometry
191 fi
192
193 # copy input geometry file in a current directory
194 if [ "$MC" = "g4" ]; then
195 cp $ALICE_ROOT/MUON/geometry/geometry.root $OUTDIR
196 fi
197fi
198
199###############################################################################
200#
201# Performing RECONSTRUCTION
202#
203###############################################################################
204
205if [ "$RECONSTRUCTION" -eq 1 ]; then
206
207 if [ "$RAW" -eq 1 ]; then
208 rm -f galice.root
209 fi
210
211 rm -f AliESD*.root *QA*.root
212
213 echo "Running reconstruction ..."
214
215 cd $OUTDIR
216
217 BOOLEMBED=kFALSE
218
219 if [ -n "$EMBEDWITH" ]; then
220 BOOLEMBED=kTRUE
221 fi
222
223 if [ "$RAW" -eq 1 ]; then
224
225 aliroot -l -b -q runReconstruction\.C\($SEED,\""$OUTDIR/raw.root"\",\""$RECOPTIONS"\",$BOOLEMBED\) > $OUTDIR/testReco.out 2>&1
226
227 else
228
229 aliroot -l -b -q runReconstruction\.C\($SEED,\"""\",\""$RECOPTIONS"\",$BOOLEMBED\) > $OUTDIR/testReco.out 2>&1
230
231 fi
232
233fi
234
235###############################################################################
236#
237# Performing CHECKS (and dumps)
238#
239###############################################################################
240
241if [ "$CHECKS" -eq 1 ]; then
242
243 if [ -f "$OUTDIR/$SIMDIR/galice.root" ]; then
244
245 echo "Running efficiency ..."
246
247 aliroot -b > $OUTDIR/testResults.out 2>&1 << EOF
248 .L MUONefficiency.C++g
249 // no argument assumes Upsilon but MUONefficiency(443) works on Jpsi
250 MUONefficiency("$OUTDIR/$SIMDIR/galice.root");
251 .q
252EOF
253
254 if [ -f "$OUTDIR/galice.root" ]; then
255
256 echo "Running Trigger efficiency ..."
257 aliroot -b > $OUTDIR/testTriggerResults.out 2>&1 << EOF
258 .L MUONTriggerEfficiency.C++g
259 MUONTriggerEfficiency("$OUTDIR/$SIMDIR/galice.root", "$OUTDIR/galice.root", 1);
260 .q
261EOF
262
263 if [ -f "$OUTDIR/AliESDs.root" ]; then
264
265 echo "Running check ..."
266 aliroot -b > $OUTDIR/testCheck.out 2>&1 << EOF
267 gSystem->Load("libMUONevaluation");
268 .L MUONCheck.C++g
269 MUONCheck(0, $NEVENTS-1, "$OUTDIR/$SIMDIR/galice.root", "$OUTDIR/galice.root", "$OUTDIR/AliESDs.root");
270 .q
271EOF
272 fi
273 fi
274 fi
275
276 echo "Running dumps for selected event ($DUMPEVENT) ..."
277
278 if [ -f "$OUTDIR/$SIMDIR/galice.root" ]; then
279 aliroot -l -b << EOF
280 AliCDBManager* man = AliCDBManager::Instance();
281 man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
282 AliMUONMCDataInterface mcdSim("$OUTDIR/$SIMDIR/galice.root");
283 mcdSim.DumpKine($DUMPEVENT); > $OUTDIR/dump.$DUMPEVENT.kine
284 mcdSim.DumpHits($DUMPEVENT); > $OUTDIR/dump.$DUMPEVENT.hits
285 mcdSim.DumpTrackRefs($DUMPEVENT); > $OUTDIR/dump.$DUMPEVENT.trackrefs
286 mcdSim.DumpDigits($DUMPEVENT,true); > $OUTDIR/dump.$DUMPEVENT.simdigits
287 mcdSim.DumpSDigits($DUMPEVENT,true); > $OUTDIR/dump.$DUMPEVENT.sdigits
288 .q
289EOF
290 else
291 echo "$OUTDIR/$SIMDIR/galice.root is not there. Skipping sim dumps"
292 fi
293
294 if [ -f "$OUTDIR/galice.root" ]; then
295 aliroot -l -b << EOF
296 AliCDBManager* man = AliCDBManager::Instance();
297 man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
298 AliMUONDataInterface dRec("$OUTDIR/galice.root");
299 dRec.DumpDigits($DUMPEVENT,true); > $OUTDIR/dump.$DUMPEVENT.recdigits
300 dRec.DumpRecPoints($DUMPEVENT); > $OUTDIR/dump.$DUMPEVENT.recpoints
301 dRec.DumpTrigger($DUMPEVENT); > $OUTDIR/dump.$DUMPEVENT.trigger
302 .q
303EOF
304 else
305 echo "$OUTDIR/galice.root is not there. Skipping rec dumps"
306 fi
307fi
308
309echo "Finished"
310echo "... see results in $OUTDIR"
311
312cd $CURDIR