3 qaMacroDir="$ALICE_ROOT/PWGPP/MUON/lite"
8 mergeLog="logMerge.txt"
10 terminateDir="${baseOutDir}/terminateRuns"
11 outTaskName="QAresults.root"
20 defaultStorage="raw://"
22 optList="ad:efi:kmo:pst"
23 inputTriggerList="0x0"
24 while getopts $optList option
28 d ) defaultStorage=$OPTARG;;
31 i ) inputTriggerList=$OPTARG;;
34 o ) outTaskName=$OPTARG;;
38 * ) echo "Unimplemented option chosen."
44 shift $(($OPTIND - 1))
47 if [[ $# -ne 3 || "$EXIT" -eq 1 ]]; then
48 echo "Usage: `basename $0` (-$optList) <runList.txt> <QAx> <alien:///alice/data/20XX/LHCXXy>"
49 echo " -a skip final merging (default: run)"
50 echo " -d default storage for scalers (default: ${defaultStorage})"
51 echo " -e skip run trigger efficiency QA (default: run)"
52 echo " -f merge fast, skip incomplete prod."
53 echo " -i input trigger list (default: no list)"
54 echo " -k skip run muon QA (defult: run)"
55 echo " -m skip merging (default: run)"
56 echo " -o task output name (default: QAresults.root)"
57 echo " -p is private production. Use directory structure of the plugin"
58 echo " -s skip run scalers trending (default: run)"
59 echo " -t skip terminate (default: run)"
65 if [ $isPrivateProd -eq 1 ]; then
66 tmpName=${qaProdName//"private"/""}
67 if [ "$tmpName" == "$qaProdName" ]; then
68 qaProdName="${qaProdName}_private"
72 lhcPeriod=`echo ${alienBaseDir%"/"} | awk -F "/" ' { print $NF } '`
73 outFileSuffix="${lhcPeriod}_${qaProdName}"
74 outFileSuffix=${outFileSuffix//"__"/"_"}
76 loadAnalysisLibs="gSystem->Load(\"libANALYSIS.so\");gSystem->Load(\"libOADB.so\");gSystem->Load(\"libANALYSISalice.so\");gSystem->Load(\"libCORRFW.so\");gSystem->Load(\"libPWGmuon.so\");gSystem->Load(\"libPWGmuondep.so\");"
77 includeAliroot="gSystem->AddIncludePath(\"-I${ALICE_ROOT}/include -I${ALICE_INSTALL}/include\");"
78 includeMuon="gSystem->AddIncludePath(\"-I${ALICE_ROOT}/MUON\");"
81 function mergePerRun()
83 echo "Merging each run..."
86 aliroot -b <<EOF &> $mergeLog
87 .L $qaMacroDir/mergeGridFiles.C+
88 completeProd("${runListName}","${qaProdName}","${alienBaseDir}","${outTaskName}",50,"MUON_QA MTR_ChamberEffMap MUON.TrigEfficiencyMap MUON.TriggerEfficiencyMap",${mergeFast});
99 aliroot -b <<EOF &> logMergeAll.txt
100 ${includeAliroot} ${loadAnalysisLibs}
101 .x $qaMacroDir/mergeGridFiles.C+("${outFilename}","${fileListName}","");
107 function terminateRuns()
109 echo "Terminating runs..."
111 currList=`cat $1 | xargs`
112 if [ ! -d $terminateDir ]; then
115 for file in $currList; do
117 aliroot -b <<EOF &> logCopy.txt
118 ${includeAliroot} ${loadAnalysisLibs}
119 .L $qaMacroDir/terminateQA.C+
120 CopyFile("$file","$terminateDir",1,"${outTaskName}")
123 outDir=`grep outDir logCopy.txt | cut -d ":" -f 2 | xargs`
124 #outFile=`grep outFile logCopy.txt | cut -d ":" -f 2`
125 forceTerminate=`grep -c "run number not found" logCopy.txt`
127 if [ "`pwd`" != "${outDir}" ]; then
128 mv logCopy.txt $outDir/
132 #ln -s $qaMacroDir/SetAlienHandler.C
135 aliroot -b <<EOF &> logTerminate.txt
136 ${includeAliroot} ${loadAnalysisLibs}
137 .x $qaMacroDir/terminateQA.C("${outTaskName}",$forceTerminate)
141 #.x $qaMacroDir/runAnalysisTask.C("terminate","grid terminate","",kFALSE,"${outTaskName}");
143 #if [ -L "SetAlienHandler.C" ]; then
144 #rm SetAlienHandler.C
146 if [ -e "outputs_valid" ]; then
153 function runTrigQA() {
154 echo "Running trigger QA"
158 aliroot -b <<EOF &> logTrigEffQA.txt
159 ${includeAliroot} ${includeMuon} ${loadAnalysisLibs}
160 AliLog::SetClassDebugLevel("AliAnalysisTriggerScalers",-1);
161 .x $qaMacroDir/trigEffQA.C+("${runListName}","${outFileName}","${defaultStorage}",${execScalers});
166 function runTrackQA() {
167 echo "Running tracker QA"
170 aliroot -b <<EOF &> logTrackQA.txt
171 ${includeAliroot} ${loadAnalysisLibs}
172 .x $qaMacroDir/PlotMuonQA.C+("${terminateDir}",0x0,${inputTriggerList},${physSel},"${outFileSuffix}","${outTaskName}");
178 # Use absolute path for file inputTriggerList
179 if [ "${inputTriggerList}" != "0x0" ]; then
180 inputTriggerDir=`dirname ${inputTriggerList}`
181 if [ "${inputTriggerDir}"="." ]; then
182 inputTriggerList="`pwd`/${inputTriggerList}"
184 inputTriggerList="\"${inputTriggerList}\""
187 if [ $execMerge -eq 1 ]; then
190 mergeOut=`grep -A 1 "Output written" ${mergeLog} | grep -v written`
191 mergeOutAll=${mergeOut//".txt"/"_merged.txt"}
193 if [ $execMergeAll -eq 1 ]; then
194 mergeRuns $mergeOut "QAresults_Merged.root"
195 cp -p $mergeOut $mergeOutAll
196 echo "${baseOutDir}/QAresults_Merged.root" >> $mergeOutAll
199 if [ ! -e $mergeOutAll ]; then
200 mergeOutAll=$mergeOut
203 if [ $execTerminate -eq 1 ]; then
204 terminateRuns $mergeOutAll
207 if [ $execTrigQA -eq 1 ]; then
208 outName="trigEffQA_${outFileSuffix}.root"
210 runTrigQA "${mergeOut}" "${outName}"
213 if [ $execTrackQA -eq 1 ]; then