4 # first declare default values
6 SIMULATION=1 # will perform simulation
7 RECONSTRUCTION=1 # will perform reconstruction
8 RAW=1 # will reconstruct from raw data
9 CHECKS=1 # will perform checks
10 SLASHTMP=1 #will use /tmp to put the temporary raw data
11 NEVENTS=50 # will simulate 100 events
13 #RECOPTIONS="SAVEDIGITS NOFASTDECODERS" # reconstruction options with non-high performance decoders
14 RECOPTIONS="SAVEDIGITS" # default reconstruction options
15 MC="" # G3 Simulation with old Config.C
16 #MC="g3" # G3 Simulation (with new config macros)
17 #MC="g4" # G4 Simulation (with new config macros)
22 #RUN=0 # run number for OCDB access
23 SEED=1234567 # random number generator seed
24 SIMDIR="generated" # sub-directory where to move simulated files prior to reco
25 DUMPEVENT=5 # event to be dump on files
27 SIMCONFIG="$ALICE_ROOT/MUON/"$MC"Config.C"
28 EMBEDWITH="" # no embedding by default
30 # next try to see if there are options of this script that want to change the
35 while getopts "SRZX:srxzn:tg:p:d:c:e:" option
38 R ) RECONSTRUCTION=1;;
45 r ) RECONSTRUCTION=0;;
50 c ) SIMCONFIG=$OPTARG;;
54 p ) RECOPTIONS=$OPTARG;;
55 e ) EMBEDWITH=$OPTARG;;
56 * ) echo "Unimplemented option chosen."
62 if [ ! -n "$OUTDIR" ]; then
63 if [ "$MC" = "" ]; then
64 OUTDIR=$CURDIR"/test_out."$NEVENTS
66 OUTDIR=$CURDIR"/"$MC"_test_out."$NEVENTS
70 # look if there are some leftover options
71 shift $(($OPTIND - 1))
73 if [ $# -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)"
91 # printout the options
92 echo "sim $SIMULATION rec $RECONSTRUCTION check $CHECKS"
93 if [ "$SIMULATION" -eq 1 ]; then
94 echo "$NEVENTS events will be simulated, using the config found at $SIMCONFIG"
96 if [ -n "$EMBEDWITH" ]; then
97 echo "Will embed simulation with $EMBEDWITH"
99 if [ "$RECONSTRUCTION" -eq 1 ]; then
100 echo "Reconstruction options to be used : $RECOPTIONS"
101 if [ "$RAW" -eq 0 ]; then
102 echo "Will reconstruct from digits only (not from raw data)"
105 echo "Output directory will be : $OUTDIR"
107 if [ "$SIMULATION" -eq 1 ]; then
114 # Copy *ALL* the macros we need in the output directory, not to mess
115 # with our source dir in any way.
116 cp $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 \
127 if [ "$SLASHTMP" -eq 0 ]; then
131 mkdir ./tmp/mdc1/tags
136 chmod 777 ./tmp/mdc1/tags
138 export ALIMDC_RAWDB1=./tmp/mdc1
139 export ALIMDC_RAWDB2=./tmp/mdc2
140 export ALIMDC_TAGDB=./tmp/mdc1/tags
143 ###############################################################################
145 # Update CTP in OCDB for MUON Trigger
147 ###############################################################################
149 if [ ! -f $ALICE_ROOT/OCDB/GRP/CTP/Config/Run0_999999999_v0_s1.root ]; then
151 echo "Updating GRP CTP config ..."
153 aliroot -b > $OUTDIR/updateCDBCTPConfig.out 2>&1 << EOF
154 .L UpdateCDBCTPConfig.C++g
155 UpdateCDBCTPConfig();
162 ###############################################################################
164 # Performing SIMULATION
166 ###############################################################################
168 if [ "$SIMULATION" -eq 1 ]; then
170 echo "Running simulation ..."
172 aliroot -l -b -q runSimulation.C\($SEED,$NEVENTS,\""$SIMCONFIG"\"\,\""$EMBEDWITH"\"\) > $OUTDIR/testSim.out 2>&1
174 mkdir $OUTDIR/$SIMDIR
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
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
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
193 # copy input geometry file in a current directory
194 if [ "$MC" = "g4" ]; then
195 cp $ALICE_ROOT/MUON/geometry/geometry.root $OUTDIR
199 ###############################################################################
201 # Performing RECONSTRUCTION
203 ###############################################################################
205 if [ "$RECONSTRUCTION" -eq 1 ]; then
207 if [ "$RAW" -eq 1 ]; then
211 rm -f AliESD*.root *QA*.root
213 echo "Running reconstruction ..."
219 if [ -n "$EMBEDWITH" ]; then
223 if [ "$RAW" -eq 1 ]; then
225 aliroot -l -b -q runReconstruction\.C\($SEED,\""$OUTDIR/raw.root"\",\""$RECOPTIONS"\",$BOOLEMBED\) > $OUTDIR/testReco.out 2>&1
229 aliroot -l -b -q runReconstruction\.C\($SEED,\"""\",\""$RECOPTIONS"\",$BOOLEMBED\) > $OUTDIR/testReco.out 2>&1
235 ###############################################################################
237 # Performing CHECKS (and dumps)
239 ###############################################################################
241 if [ "$CHECKS" -eq 1 ]; then
243 if [ -f "$OUTDIR/$SIMDIR/galice.root" ]; then
245 echo "Running efficiency ..."
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");
254 if [ -f "$OUTDIR/galice.root" ]; then
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);
263 if [ -f "$OUTDIR/AliESDs.root" ]; then
265 echo "Running check ..."
266 aliroot -b > $OUTDIR/testCheck.out 2>&1 << EOF
267 gSystem->Load("libMUONevaluation");
269 MUONCheck(0, $NEVENTS-1, "$OUTDIR/$SIMDIR/galice.root", "$OUTDIR/galice.root", "$OUTDIR/AliESDs.root");
276 echo "Running dumps for selected event ($DUMPEVENT) ..."
278 if [ -f "$OUTDIR/$SIMDIR/galice.root" ]; then
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
291 echo "$OUTDIR/$SIMDIR/galice.root is not there. Skipping sim dumps"
294 if [ -f "$OUTDIR/galice.root" ]; then
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
305 echo "$OUTDIR/galice.root is not there. Skipping rec dumps"
310 echo "... see results in $OUTDIR"