1 |
buchmann |
1.1 |
#!/bin/bash
|
2 |
|
|
|
3 |
|
|
if [ $# -lt 2 ]; then
|
4 |
|
|
echo "This script is called automatically when trying to compute limits using shapes. it is called as follows:"
|
5 |
|
|
echo " $0 (directory where datacard & histo root file are stored) (name of datacard, usually susydatacard.txt)"
|
6 |
|
|
fi
|
7 |
|
|
|
8 |
buchmann |
1.2 |
echo -e "Have been supplied with the following arguments \n $1 \n $2 \n $3"
|
9 |
buchmann |
1.5 |
ORIGDIR=`dirname "$0"`
|
10 |
buchmann |
1.1 |
cd ~/final_production_2011/CMSSW_4_2_8/src/HiggsAnalysis/
|
11 |
|
|
origscramarch=$SCRAM_ARCH
|
12 |
|
|
origbase=$CMSSW_BASE
|
13 |
buchmann |
1.5 |
export ORIGTMP=$TMP
|
14 |
|
|
export ORIGTMPDIR=$TMPDIR
|
15 |
|
|
export TMP=`dirname $1`
|
16 |
|
|
export TMPDIR=`dirname $1`
|
17 |
|
|
|
18 |
|
|
echo "Have set the temporary directory (TMP) to $TMP and tempdir to (TMPDIR) $TMPDIR"
|
19 |
|
|
|
20 |
buchmann |
1.1 |
export SCRAM_ARCH=slc5_amd64_gcc434
|
21 |
|
|
cd /shome/buchmann/final_production_2011/CMSSW_4_2_8/src/
|
22 |
|
|
eval `scram ru -sh`
|
23 |
|
|
if [ $? -gt 0 ]; then
|
24 |
buchmann |
1.5 |
echo "SETTING UP THE ENVIRONMENT FAILED"
|
25 |
|
|
exit -1
|
26 |
buchmann |
1.1 |
fi
|
27 |
|
|
|
28 |
buchmann |
1.5 |
#echo "Ready to create model file"
|
29 |
|
|
cd $1
|
30 |
|
|
#python /shome/buchmann/final_production_2011/CMSSW_4_2_8/src/HiggsAnalysis/CombinedLimit/scripts/text2workspace.py $2 -b -o $1/model.root
|
31 |
|
|
#if [ $? -gt 0 ]; then
|
32 |
|
|
# echo "SOMETHING FAILED"
|
33 |
|
|
# failures=$4
|
34 |
|
|
# if [ -e $failures ]; then
|
35 |
|
|
# echo "~~~~ THIS IS THE FIRST FAILURE"
|
36 |
|
|
# failures=0;
|
37 |
|
|
# fi
|
38 |
|
|
#
|
39 |
|
|
# if [ $failures -lt 4 ]; then
|
40 |
|
|
# echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Going to retry (failures so far: $failures)"
|
41 |
|
|
# let "failures = failures + 1"
|
42 |
|
|
# cd $ORIGDIR
|
43 |
|
|
# bash $0 $1 $2 $3 $failures
|
44 |
|
|
# exit
|
45 |
|
|
# else
|
46 |
|
|
# echo "There's something totally wrong ..."
|
47 |
|
|
# exit -1
|
48 |
|
|
# fi
|
49 |
|
|
#
|
50 |
|
|
#else
|
51 |
|
|
# echo "Success";
|
52 |
|
|
#fi
|
53 |
|
|
#
|
54 |
|
|
#ls -ltrh $1
|
55 |
buchmann |
1.1 |
|
56 |
|
|
|
57 |
|
|
|
58 |
|
|
echo " ~~~~~~~~~~~~~ "
|
59 |
|
|
echo " LIMIT COMPUTATION "
|
60 |
|
|
echo " ~~~~~~~~~~~~~ "
|
61 |
buchmann |
1.5 |
echo "Base: $CMSSW_BASE"
|
62 |
buchmann |
1.1 |
#$CMSSW_BASE/bin/$SCRAM_ARCH/combine $1/model.root -t500 -s2
|
63 |
|
|
|
64 |
buchmann |
1.2 |
#$CMSSW_BASE/bin/$SCRAM_ARCH/combine -M HybridNew --frequentist --testStat LHC $1/model.root -H ProfileLikelihood
|
65 |
buchmann |
1.1 |
|
66 |
|
|
echo "Ready to run limit!"
|
67 |
buchmann |
1.4 |
|
68 |
buchmann |
1.5 |
#modelsource="model.root"
|
69 |
|
|
#if [[ $5 -gt 0 ]]; then
|
70 |
buchmann |
1.4 |
modelsource="susydatacard.txt"
|
71 |
buchmann |
1.5 |
#fi
|
72 |
|
|
|
73 |
|
|
echo "First guess : [$6 , $7]"
|
74 |
|
|
|
75 |
buchmann |
1.2 |
if [[ $3 -gt 1 ]]; then
|
76 |
buchmann |
1.5 |
echo "Asymptotic is $3 (2) therefore doing FULL LIMITS"
|
77 |
buchmann |
1.2 |
# command="$CMSSW_BASE/bin/$SCRAM_ARCH/combine -M HybridNew -t1 --frequentist --testStat LHC $1/model.root -H ProfileLikelihood"
|
78 |
buchmann |
1.5 |
command="$CMSSW_BASE/bin/$SCRAM_ARCH/combine -M HybridNew --rule CLs --testStat LHC -H ProfileLikelihood --freq -T 2000 -i 12 --saveHybridResult --saveToys -v 1 -s 0 $1/${modelsource} "
|
79 |
buchmann |
1.2 |
else
|
80 |
|
|
if [[ $3 -lt 1 ]]; then
|
81 |
|
|
echo "Asymptotic is $3 (0) therefore doing ASYMPTOTIC LIMITS"
|
82 |
buchmann |
1.5 |
command="$CMSSW_BASE/bin/$SCRAM_ARCH/combine -M Asymptotic -t1 $1/${modelsource} -H ProfileLikelihood -s 1"
|
83 |
buchmann |
1.2 |
else
|
84 |
buchmann |
1.5 |
echo "Asymptotic is $3 (1) therefore doing ASYMPTOTIC LIMITS but WITH initial guess"
|
85 |
|
|
command="$CMSSW_BASE/bin/$SCRAM_ARCH/combine -M Asymptotic -t1 $1/${modelsource} -H ProfileLikelihood -s 1 --rMin $6 --rMax $7"
|
86 |
buchmann |
1.2 |
fi
|
87 |
|
|
fi
|
88 |
|
|
|
89 |
buchmann |
1.1 |
echo "Going to run $command"
|
90 |
buchmann |
1.3 |
#time eval $command 3>&1 >&2 2>&3 3>&- | tee $1/log.txt
|
91 |
|
|
time eval $command 2>&1 | tee $1/log.txt
|
92 |
buchmann |
1.1 |
echo "Done running limits"
|
93 |
buchmann |
1.3 |
errorsencountered=`cat $1/log.txt | grep nan | wc -l`
|
94 |
|
|
echo "DURING LIMIT COMPUTATOIN, AN ERROR LOG HAS BEEN WRITTEN TO $1/errorlog.txt which contains $errorsencountered not-a-value's"
|
95 |
|
|
if [[ $errorsencountered -gt 20 ]]; then
|
96 |
|
|
# something is seriously wrong, there's no point in continuing
|
97 |
|
|
exit -1
|
98 |
|
|
fi
|
99 |
|
|
|
100 |
buchmann |
1.1 |
outfile="INVALID"
|
101 |
|
|
echo `pwd`
|
102 |
|
|
for i in `ls -ltrh | grep root | grep ombine | awk '{ print $9 }'`; do
|
103 |
|
|
outfile=$i
|
104 |
|
|
done
|
105 |
|
|
if [[ $outfile == *INVALID* ]]; then
|
106 |
|
|
echo "THERE WAS NO OUTPUT FROM THE LIMIT COMPUTATION ..."
|
107 |
|
|
ls -ltrh
|
108 |
|
|
exit -1
|
109 |
|
|
fi
|
110 |
|
|
|
111 |
buchmann |
1.5 |
g++ $ORIGDIR/ReadAndSave.C -o `pwd`/ReadAndSave.exec `root-config --glibs --cflags`
|
112 |
buchmann |
1.1 |
|
113 |
buchmann |
1.2 |
if [[ $3 -gt 1 ]]; then
|
114 |
|
|
startfile=$outfile
|
115 |
|
|
outfile="allmerged.root"
|
116 |
buchmann |
1.4 |
$CMSSW_BASE/bin/$SCRAM_ARCH/combine $1/${modelsource} -M HybridNew --freq --grid=$startfile --expectedFromGrid 0.16
|
117 |
|
|
$CMSSW_BASE/bin/$SCRAM_ARCH/combine $1/${modelsource} -M HybridNew --freq --grid=$startfile --expectedFromGrid 0.025
|
118 |
|
|
$CMSSW_BASE/bin/$SCRAM_ARCH/combine $1/${modelsource} -M HybridNew --freq --grid=$startfile --expectedFromGrid 0.5
|
119 |
|
|
$CMSSW_BASE/bin/$SCRAM_ARCH/combine $1/${modelsource} -M HybridNew --freq --grid=$startfile --expectedFromGrid 0.84
|
120 |
|
|
$CMSSW_BASE/bin/$SCRAM_ARCH/combine $1/${modelsource} -M HybridNew --freq --grid=$startfile --expectedFromGrid 0.975
|
121 |
buchmann |
1.5 |
hadd $outfile *.root
|
122 |
buchmann |
1.2 |
fi
|
123 |
|
|
|
124 |
buchmann |
1.1 |
./ReadAndSave.exec $1/$outfile $1/ShapeDropletResult.txt
|
125 |
|
|
|
126 |
|
|
rm ReadAndSave.exec
|
127 |
|
|
|
128 |
|
|
echo "Stored the droplet in $1/ShapeDropletResult.txt"
|
129 |
buchmann |
1.5 |
rm $TMPDIR/rstat*
|
130 |
buchmann |
1.1 |
|
131 |
buchmann |
1.5 |
export TMP=$ORIGTMP
|
132 |
|
|
export TMPDIR=$ORIGTMPDIR
|
133 |
buchmann |
1.1 |
|
134 |
|
|
|
135 |
|
|
origscramarch=$SCRAM_ARCH
|
136 |
|
|
export SCRAM_ARCH=$origscramarch
|
137 |
|
|
cd $origbase
|
138 |
|
|
eval `scram ru -sh`
|