4 # first declare default values
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
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
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
23 # next try to see if there are options of this script that want to change the
28 while getopts "SRX:srxn:tg:p:d:c:" option
31 R ) RECONSTRUCTION=1;;
37 r ) RECONSTRUCTION=0;;
41 c ) SIMCONFIG=$OPTARG;;
45 p ) RECOPTIONS=$OPTARG;;
46 * ) echo "Unimplemented option chosen."
52 if [ ! -n "$OUTDIR" ]; then
53 OUTDIR="$CURDIR/test_out.$NEVENTS"
56 # look if there are some leftover options
57 shift $(($OPTIND - 1))
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)"
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"
79 if [ "$RECONSTRUCTION" -eq 1 ]; then
80 echo "Reconstruction options to be used : $RECOPTIONS"
82 echo "Output directory will be : $OUTDIR"
84 if [ "$SIMULATION" -eq 1 ]; then
91 cp $ALICE_ROOT/MUON/.rootrc $ALICE_ROOT/MUON/rootlogon.C \
92 $ALICE_ROOT/MUON/runReconstruction.C $ALICE_ROOT/MUON/runSimulation.C $OUTDIR
96 if [ "$SLASHTMP" -eq 0 ]; then
100 mkdir ./tmp/mdc1/tags
105 chmod 777 ./tmp/mdc1/tags
107 export ALIMDC_RAWDB1=./tmp/mdc1
108 export ALIMDC_RAWDB2=./tmp/mdc2
109 export ALIMDC_TAGDB=./tmp/mdc1/tags
112 ###############################################################################
114 # Performing SIMULATION
116 ###############################################################################
118 if [ "$SIMULATION" -eq 1 ]; then
120 echo "Running simulation ..."
122 aliroot -l -b -q runSimulation.C\($SEED,$NEVENTS,\""$SIMCONFIG"\"\) >& $OUTDIR/testSim.out
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
131 ###############################################################################
133 # Performing RECONSTRUCTION
135 ###############################################################################
137 if [ "$RECONSTRUCTION" -eq 1 ]; then
139 rm -f galice.root AliESD*.root *QA*.root
141 echo "Running reconstruction ..."
145 aliroot -l -b -q runReconstruction\.C\($SEED,\""$OUTDIR/raw.root"\",\""$RECOPTIONS"\"\) >& $OUTDIR/testReco.out
149 ###############################################################################
151 # Performing CHECKS (and dumps)
153 ###############################################################################
155 if [ "$CHECKS" -eq 1 ]; then
157 if [ -f "$OUTDIR/$SIMDIR/galice.root" ]; then
159 echo "Running efficiency ..."
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");
168 if [ -f "$OUTDIR/galice.root" ]; then
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);
177 if [ -f "$OUTDIR/AliESDs.root" ]; then
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");
190 echo "Running dumps for selected event ($DUMPEVENT) ..."
192 if [ -f "$OUTDIR/$SIMDIR/galice.root" ]; then
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
205 echo "$OUTDIR/$SIMDIR/galice.root is not there. Skipping sim dumps"
208 if [ -f "$OUTDIR/galice.root" ]; then
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
219 echo "$OUTDIR/galice.root is not there. Skipping rec dumps"
224 echo "... see results in $OUTDIR"