]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/CalibMacros/CPass0/runCPass0.sh
eca44f01d48001cf9b4e5316920b31d8c471d69d
[u/mrichter/AliRoot.git] / PWGPP / CalibMacros / CPass0 / runCPass0.sh
1 #!/bin/bash
2
3 # Script to run:
4 #    1. reconstruction
5 #    2. calibration 
6 #
7 # Files assumed to be in working directory:
8 # recCPass0.C          - reconstruction macro
9 # runCalibTrain.C     - calibration/filtering macro
10 # Arguments (run locally):
11 #    1  - raw data file name
12 #    2  - number of events to be processed
13 #    3  - run number 
14
15 # example:
16 # runCPass0.sh raw.root  50  104892
17
18 #ALIEN setting
19 # $1 = raw input filename
20 runNum=`echo $1 | cut -d "/" -f 6 | sed 's/^0*//'`
21
22 if [ $# -lt 3 ]; then
23     # alien Setup
24     nEvents=99999999
25     ocdbPath="raw://"
26     triggerAlias="?Trigger=kCalibBarrel"
27 fi
28
29 if [ $# -ge 4 ]; then
30   # local setup
31   nEvents=$2
32   runNum=$3
33   ocdbPath=$4
34   triggerAlias="?Trigger=kCalibBarrel"
35 fi
36
37 if [ $# -eq 5 ]; then
38     # local setup in case we provide the trigger mask
39     # the trigger mask is first stripped of quotation characters
40     triggerAlias=${5//\"/}
41 fi
42
43 if [ -f Run0_999999999_v3_s0.root ]; then
44     mkdir -p TPC/Calib/Correction
45     mv Run0_999999999_v3_s0.root TPC/Calib/Correction/
46 fi
47
48 echo "File to be  processed $1"
49 echo "Number of events to be processed $nEvents"
50
51 echo "* PATH: $PATH"
52 echo "* LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
53 echo
54
55 if [ "$2" == "OCDB" ]; then
56     echo "Generating OCDB.root only"
57     export OCDB_SNAPSHOT_CREATE="kTRUE"
58     export OCDB_SNAPSHOT_FILENAME="OCDB.root"
59 fi
60
61 CHUNKNAME="$1"
62
63 if [ "${CHUNKNAME:0:1}" = "/" ]; then
64     FILENAME=${CHUNKNAME##*/}
65
66     if [ -f "$FILENAME" ]; then
67         # locally downloaded chunk
68         CHUNKNAME="`pwd`/$FILENAME"
69     else
70         # one chunk from alien (nodownload option to the collection)
71         CHUNKNAME="alien://$CHUNKNAME"
72     fi
73 fi
74
75 if [ -f "wn.xml" ]; then
76     CHUNKNAME="collection://wn.xml"
77 fi
78
79 echo "* Running AliRoot to reconstruct $*"
80 echo "* Chunk name: $CHUNKNAME"
81 echo "* Run number: $runNum"
82 echo "* nEvents: $nEvents"
83 echo "* ocdbPath: $ocdbPath"
84 echo "* triggerAlias: $triggerAlias"
85 echo ""
86
87 echo executing aliroot -l -b -q "recCPass0.C(\"$CHUNKNAME\",$nEvents,\"$ocdbPath\",\"$triggerAlias\")"
88 time aliroot -l -b -q "recCPass0.C(\"$CHUNKNAME\",$nEvents,\"$ocdbPath\",\"$triggerAlias\")" &> rec.log
89
90 exitcode=$?
91
92 echo "*! Exit code of recCPass0.C: $exitcode"
93
94 if [ $exitcode -ne 0 ]; then
95     exit $exitcode
96 fi
97
98 mv syswatch.log syswatch_rec.log
99
100 if [ "$2" == "OCDB" ]; then
101     echo "*! Reconstruction ran in fake mode to create OCDB.root, exiting quickly now"
102     touch OCDB.generating.job
103
104     if [ -f OCDB.root ]; then
105         echo "* OCDB.root was indeed produced"
106     else
107         echo "! Error: OCDB.root was NOT generated !!!"
108         exit 1
109     fi
110     exit 0
111 fi
112
113 echo "* Running AliRoot to make calibration..."
114 echo executing aliroot -l -b -q "runCalibTrain.C($runNum,\"AliESDs.root\",\"$ocdbPath\")"
115 time aliroot -l -b -q "runCalibTrain.C($runNum,\"AliESDs.root\",\"$ocdbPath\")" &> calib.log
116 exitcode=$?
117
118 echo "*! Exit code of runCalibTrain.C: $exitcode"
119
120 exit $exitcode