]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/MUON/lite/runQA.sh
Fix syntax in if condition (Diego)
[u/mrichter/AliRoot.git] / PWGPP / MUON / lite / runQA.sh
CommitLineData
352cd18c 1#!/bin/bash
2
13bb4ca7 3qaMacroDir="$ALICE_ROOT/PWGPP/MUON/lite"
352cd18c 4
5baseOutDir=`pwd`
6
7
8mergeLog="logMerge.txt"
9mergeOut=""
10terminateDir="${baseOutDir}/terminateRuns"
11outTaskName="QAresults.root"
02f48894 12mergeFast=0
352cd18c 13
14execMerge=1
15execMergeAll=1
16execTerminate=1
17execTrigQA=1
18execTrackQA=1
bab36da2 19execScalers=1
9f95b199 20defaultStorage="raw://"
8415c156 21isPrivateProd=0
9f95b199 22optList="ad:efi:kmo:pst"
02f48894 23inputTriggerList="0x0"
8415c156 24while getopts $optList option
352cd18c 25do
26 case $option in
352cd18c 27 a ) execMergeAll=0;;
9f95b199 28 d ) defaultStorage=$OPTARG;;
352cd18c 29 e ) execTrigQA=0;;
9f95b199 30 f ) mergeFast=1;;
31 i ) inputTriggerList=$OPTARG;;
352cd18c 32 k ) execTrackQA=0;;
9f95b199 33 m ) execMerge=0;;
8415c156 34 o ) outTaskName=$OPTARG;;
35 p ) isPrivateProd=1;;
9f95b199 36 s ) execScalers=0;;
37 t ) execTerminate=0;;
352cd18c 38 * ) echo "Unimplemented option chosen."
39 EXIT=1
40 ;;
41 esac
42done
43
44shift $(($OPTIND - 1))
45
46# needs 3 arguments
47if [[ $# -ne 3 || "$EXIT" -eq 1 ]]; then
8415c156 48 echo "Usage: `basename $0` (-$optList) <runList.txt> <QAx> <alien:///alice/data/20XX/LHCXXy>"
352cd18c 49 echo " -a skip final merging (default: run)"
9f95b199 50 echo " -d default storage for scalers (default: ${defaultStorage})"
bab36da2 51 echo " -e skip run trigger efficiency QA (default: run)"
9f95b199 52 echo " -f merge fast, skip incomplete prod."
53 echo " -i input trigger list (default: no list)"
352cd18c 54 echo " -k skip run muon QA (defult: run)"
9f95b199 55 echo " -m skip merging (default: run)"
8415c156 56 echo " -o task output name (default: QAresults.root)"
57 echo " -p is private production. Use directory structure of the plugin"
9f95b199 58 echo " -s skip run scalers trending (default: run)"
59 echo " -t skip terminate (default: run)"
352cd18c 60 exit 4
61fi
62
8a4881e3 63runListName="$1"
64qaProdName="$2"
65if [ $isPrivateProd -eq 1 ]; then
66 tmpName=${qaProdName//"private"/""}
67 if [ "$tmpName" == "$qaProdName" ]; then
68 qaProdName="${qaProdName}_private"
69 fi
70fi
71alienBaseDir="$3"
72lhcPeriod=`echo ${alienBaseDir%"/"} | awk -F "/" ' { print $NF } '`
73outFileSuffix="${lhcPeriod}_${qaProdName}"
74outFileSuffix=${outFileSuffix//"__"/"_"}
75
bab36da2 76loadAnalysisLibs="gSystem->Load(\"libANALYSIS.so\");gSystem->Load(\"libOADB.so\");gSystem->Load(\"libANALYSISalice.so\");gSystem->Load(\"libCORRFW.so\");gSystem->Load(\"libPWGmuon.so\");gSystem->Load(\"libPWGmuondep.so\");"
8a4881e3 77includeAliroot="gSystem->AddIncludePath(\"-I${ALICE_ROOT}/include -I${ALICE_INSTALL}/include\");"
bab36da2 78includeMuon="gSystem->AddIncludePath(\"-I${ALICE_ROOT}/MUON\");"
352cd18c 79
8a4881e3 80
352cd18c 81function mergePerRun()
82{
83 echo "Merging each run..."
84 cd $baseOutDir
7decee0e 85
352cd18c 86 aliroot -b <<EOF &> $mergeLog
87.L $qaMacroDir/mergeGridFiles.C+
8a4881e3 88completeProd("${runListName}","${qaProdName}","${alienBaseDir}","${outTaskName}",50,"MUON_QA MTR_ChamberEffMap MUON.TrigEfficiencyMap MUON.TriggerEfficiencyMap",${mergeFast});
352cd18c 89.q
90EOF
91}
92
93function mergeRuns()
94{
95 echo "Merge all runs"
96 cd $baseOutDir
97 fileListName=$1
98 outFilename=$2
99 aliroot -b <<EOF &> logMergeAll.txt
b4c43218 100${includeAliroot} ${loadAnalysisLibs}
352cd18c 101.x $qaMacroDir/mergeGridFiles.C+("${outFilename}","${fileListName}","");
102.q
103EOF
104
105}
106
107function terminateRuns()
108{
109 echo "Terminating runs..."
110 cd $baseOutDir
111 currList=`cat $1 | xargs`
112 if [ ! -d $terminateDir ]; then
113 mkdir $terminateDir
114 fi
115 for file in $currList; do
116 cd $terminateDir
117 aliroot -b <<EOF &> logCopy.txt
b4c43218 118${includeAliroot} ${loadAnalysisLibs}
352cd18c 119.L $qaMacroDir/terminateQA.C+
120CopyFile("$file","$terminateDir",1,"${outTaskName}")
121.q
122EOF
b4c43218 123 outDir=`grep outDir logCopy.txt | cut -d ":" -f 2 | xargs`
352cd18c 124 #outFile=`grep outFile logCopy.txt | cut -d ":" -f 2`
125 forceTerminate=`grep -c "run number not found" logCopy.txt`
126
b4c43218 127 if [ "`pwd`" != "${outDir}" ]; then
128 mv logCopy.txt $outDir/
129 fi
352cd18c 130
131 cd $outDir
132 #ln -s $qaMacroDir/SetAlienHandler.C
133
134
135 aliroot -b <<EOF &> logTerminate.txt
b4c43218 136${includeAliroot} ${loadAnalysisLibs}
352cd18c 137.x $qaMacroDir/terminateQA.C("${outTaskName}",$forceTerminate)
138.q
139EOF
b4c43218 140 #rm logTerminate.txt
352cd18c 141 #.x $qaMacroDir/runAnalysisTask.C("terminate","grid terminate","",kFALSE,"${outTaskName}");
142
143 #if [ -L "SetAlienHandler.C" ]; then
144 #rm SetAlienHandler.C
145 #fi
146 if [ -e "outputs_valid" ]; then
147 rm outputs_valid
148 fi
149 cd $baseOutDir
150 done
151}
152
153function runTrigQA() {
154 echo "Running trigger QA"
155 cd $baseOutDir
156 runListName="$1"
157 outFileName="$2"
158 aliroot -b <<EOF &> logTrigEffQA.txt
b4c43218 159${includeAliroot} ${includeMuon} ${loadAnalysisLibs}
9f95b199 160AliLog::SetClassDebugLevel("AliAnalysisTriggerScalers",-1);
161.x $qaMacroDir/trigEffQA.C+("${runListName}","${outFileName}","${defaultStorage}",${execScalers});
352cd18c 162.q
163EOF
164}
165
166function runTrackQA() {
167 echo "Running tracker QA"
168 cd $terminateDir
169 physSel="$1"
352cd18c 170 aliroot -b <<EOF &> logTrackQA.txt
b4c43218 171${includeAliroot} ${loadAnalysisLibs}
8a4881e3 172.x $qaMacroDir/PlotMuonQA.C+("${terminateDir}",0x0,${inputTriggerList},${physSel},"${outFileSuffix}","${outTaskName}");
352cd18c 173.q
174EOF
175 cd $baseOutDir
176}
177
8415c156 178# Use absolute path for file inputTriggerList
02f48894 179if [ "${inputTriggerList}" != "0x0" ]; then
8415c156 180 inputTriggerDir=`dirname ${inputTriggerList}`
6648918b 181 if [ "${inputTriggerDir}" = "." ]; then
8415c156 182 inputTriggerList="`pwd`/${inputTriggerList}"
183 fi
02f48894 184 inputTriggerList="\"${inputTriggerList}\""
8415c156 185fi
186
352cd18c 187if [ $execMerge -eq 1 ]; then
8a4881e3 188 mergePerRun
352cd18c 189fi
190mergeOut=`grep -A 1 "Output written" ${mergeLog} | grep -v written`
191mergeOutAll=${mergeOut//".txt"/"_merged.txt"}
192
193if [ $execMergeAll -eq 1 ]; then
194 mergeRuns $mergeOut "QAresults_Merged.root"
195 cp -p $mergeOut $mergeOutAll
196 echo "${baseOutDir}/QAresults_Merged.root" >> $mergeOutAll
197fi
198
199if [ ! -e $mergeOutAll ]; then
200 mergeOutAll=$mergeOut
201fi
202
203if [ $execTerminate -eq 1 ]; then
204 terminateRuns $mergeOutAll
205fi
206
207if [ $execTrigQA -eq 1 ]; then
8a4881e3 208 outName="trigEffQA_${outFileSuffix}.root"
02f48894 209
352cd18c 210 runTrigQA "${mergeOut}" "${outName}"
211fi
212
213if [ $execTrackQA -eq 1 ]; then
8a4881e3 214 runTrackQA 1
352cd18c 215fi