765 |
|
|
766 |
|
//uncomment whichever one you want to see :-) |
767 |
|
|
768 |
– |
|
769 |
– |
GenLevelStudy::X_vs_generation_lm4(); |
768 |
|
/* |
769 |
+ |
GenLevelStudy::X_vs_generation_lm4(); |
770 |
|
GenLevelStudy::compare_sms_lm4(); |
771 |
< |
GenLevelStudy::MomentumFraction(); |
771 |
> |
*/ |
772 |
> |
|
773 |
> |
///GenLevelStudy::MomentumFraction(); |
774 |
> |
///GenLevelStudy::AngleLSPLSP(); |
775 |
> |
///GenLevelStudy::DeltaLSPmomentum(); |
776 |
> |
///GenLevelStudy::ZDecayIllustration(); |
777 |
> |
/* |
778 |
|
GenLevelStudy::AngleMETsumLSP(); |
779 |
|
GenLevelStudy::RatioMETsumLSP(); |
775 |
– |
GenLevelStudy::AngleLSPLSP(); |
780 |
|
GenLevelStudy::AngleLSPZ(); |
781 |
|
GenLevelStudy::WidthIllustration(); |
782 |
< |
GenLevelStudy::ZDecayIllustration(); |
783 |
< |
GenLevelStudy::DeltaLSPmomentum(); |
782 |
> |
|
783 |
> |
|
784 |
|
GenLevelStudy::pStarIllustration(0.5); |
785 |
< |
GenLevelStudy::pStarIllustration(0.25); |
786 |
< |
GenLevelStudy::pStarIllustration(0.75); |
783 |
< |
GenLevelStudy::pStarDistributions(); |
785 |
> |
//GenLevelStudy::pStarIllustration(0.25); |
786 |
> |
//GenLevelStudy::pStarIllustration(0.75); |
787 |
|
GenLevelStudy::DrawJetBand(); |
788 |
< |
GenLevelStudy::DrawOnly100to150inJetBand(); |
788 |
> |
GenLevelStudy::DrawOnly100to150inJetBand();*/ |
789 |
|
GenLevelStudy::ImpactOfGluinoChi2MassDifference(); |
790 |
< |
*/ |
790 |
> |
|
791 |
|
} |
792 |
|
|
793 |
|
|
967 |
|
for(int i=0;i<signalsamples.collection.size();i++) compare_onpeak_offpeak_signal_distributions(mcjzb,datajzb,i); |
968 |
|
} |
969 |
|
|
970 |
+ |
bool load_adequate_npred_nobs(string code){ |
971 |
+ |
|
972 |
+ |
if(code=="201540") { |
973 |
+ |
Nobs[0]=1108.67; |
974 |
+ |
Npred[0]=1106.69; |
975 |
+ |
Nprederr[0]=275.424852964089; |
976 |
+ |
Nobs[1]=291.679; |
977 |
+ |
Npred[1]=288.979; |
978 |
+ |
Nprederr[1]=74.0248355630055; |
979 |
+ |
Nobs[2]=76.0776; |
980 |
+ |
Npred[2]=76.8332; |
981 |
+ |
Nprederr[2]=20.9768252604726; |
982 |
+ |
Nobs[3]=22.4581; |
983 |
+ |
Npred[3]=22.5385; |
984 |
+ |
Nprederr[3]=7.46758781734772; |
985 |
+ |
Nobs[4]=5.41088; |
986 |
+ |
Npred[4]=9.51903; |
987 |
+ |
Nprederr[4]=3.86595196996807; |
988 |
+ |
return true; |
989 |
+ |
} |
990 |
+ |
|
991 |
+ |
if(code=="201040") { |
992 |
+ |
Nobs[0]=1210.02; |
993 |
+ |
Npred[0]=1228.62; |
994 |
+ |
Nprederr[0]=305.642034977193; |
995 |
+ |
Nobs[1]=324.008; |
996 |
+ |
Npred[1]=323.042; |
997 |
+ |
Nprederr[1]=82.6094009556418; |
998 |
+ |
Nobs[2]=84.8866; |
999 |
+ |
Npred[2]=86.4243; |
1000 |
+ |
Nprederr[2]=23.4841694480367; |
1001 |
+ |
Nobs[3]=25.4339; |
1002 |
+ |
Npred[3]=25.6437; |
1003 |
+ |
Nprederr[3]=8.32541119033168; |
1004 |
+ |
Nobs[4]=6.24946; |
1005 |
+ |
Npred[4]=9.97731; |
1006 |
+ |
Nprederr[4]=4.07510841593202; |
1007 |
+ |
return true; |
1008 |
+ |
} |
1009 |
+ |
|
1010 |
+ |
if(code=="151040") { |
1011 |
+ |
Nobs[0]=1218.67; |
1012 |
+ |
Npred[0]=1239.47; |
1013 |
+ |
Nprederr[0]=308.268321394268; |
1014 |
+ |
Nobs[1]=326.245; |
1015 |
+ |
Npred[1]=325.731; |
1016 |
+ |
Nprederr[1]=83.2795749634327; |
1017 |
+ |
Nobs[2]=85.3292; |
1018 |
+ |
Npred[2]=87.239; |
1019 |
+ |
Nprederr[2]=23.6875859996856; |
1020 |
+ |
Nobs[3]=25.4339; |
1021 |
+ |
Npred[3]=25.9456; |
1022 |
+ |
Nprederr[3]=8.40219371514963; |
1023 |
+ |
Nobs[4]=6.24946; |
1024 |
+ |
Npred[4]=9.97731; |
1025 |
+ |
Nprederr[4]=4.07510841593202; |
1026 |
+ |
return true; |
1027 |
+ |
} |
1028 |
+ |
|
1029 |
+ |
if(code=="151550") { |
1030 |
+ |
Nobs[0]=1009.57; |
1031 |
+ |
Npred[0]=1015.24; |
1032 |
+ |
Nprederr[0]=252.027368634063; |
1033 |
+ |
Nobs[1]=266.851; |
1034 |
+ |
Npred[1]=264.99; |
1035 |
+ |
Nprederr[1]=67.9766170833765; |
1036 |
+ |
Nobs[2]=68.2042; |
1037 |
+ |
Npred[2]=69.3185; |
1038 |
+ |
Nprederr[2]=19.0998669414868; |
1039 |
+ |
Nobs[3]=20.873; |
1040 |
+ |
Npred[3]=20.1324; |
1041 |
+ |
Nprederr[3]=6.85046567121535; |
1042 |
+ |
Nobs[4]=4.67275; |
1043 |
+ |
Npred[4]=8.42002; |
1044 |
+ |
Nprederr[4]=3.55560434037591; |
1045 |
+ |
return true; |
1046 |
+ |
} |
1047 |
+ |
|
1048 |
+ |
if(code=="151540") { |
1049 |
+ |
Nobs[0]=1112.51; |
1050 |
+ |
Npred[0]=1111.01; |
1051 |
+ |
Nprederr[0]=276.447968514945; |
1052 |
+ |
Nobs[1]=292.622; |
1053 |
+ |
Npred[1]=290.731; |
1054 |
+ |
Nprederr[1]=74.461488188526; |
1055 |
+ |
Nobs[2]=76.1949; |
1056 |
+ |
Npred[2]=77.1915; |
1057 |
+ |
Nprederr[2]=21.0662269219811; |
1058 |
+ |
Nobs[3]=22.4581; |
1059 |
+ |
Npred[3]=22.8404; |
1060 |
+ |
Nprederr[3]=7.54484166514447; |
1061 |
+ |
Nobs[4]=5.41088; |
1062 |
+ |
Npred[4]=9.51903; |
1063 |
+ |
Nprederr[4]=3.86595196996807; |
1064 |
+ |
return true; |
1065 |
+ |
} |
1066 |
+ |
|
1067 |
+ |
if(code=="151530") { |
1068 |
+ |
Nobs[0]=1182.29; |
1069 |
+ |
Npred[0]=1177.48; |
1070 |
+ |
Nprederr[0]=293.397396547567; |
1071 |
+ |
Nobs[1]=310.125; |
1072 |
+ |
Npred[1]=308.279; |
1073 |
+ |
Nprederr[1]=78.8363941324691; |
1074 |
+ |
Nobs[2]=83.376; |
1075 |
+ |
Npred[2]=80.804; |
1076 |
+ |
Nprederr[2]=21.9686562734479; |
1077 |
+ |
Nobs[3]=24.9171; |
1078 |
+ |
Npred[3]=23.4465; |
1079 |
+ |
Nprederr[3]=7.69983840500565; |
1080 |
+ |
Nobs[4]=6.151; |
1081 |
+ |
Npred[4]=9.7932; |
1082 |
+ |
Nprederr[4]=3.94255080734542; |
1083 |
+ |
return true; |
1084 |
+ |
} |
1085 |
+ |
|
1086 |
+ |
if(code=="101040") { |
1087 |
+ |
Nobs[0]=1219.78; |
1088 |
+ |
Npred[0]=1241.65; |
1089 |
+ |
Nprederr[0]=308.795385452892; |
1090 |
+ |
Nobs[1]=326.577; |
1091 |
+ |
Npred[1]=327.172; |
1092 |
+ |
Nprederr[1]=83.6388357552878; |
1093 |
+ |
Nobs[2]=85.3292; |
1094 |
+ |
Npred[2]=87.5409; |
1095 |
+ |
Nprederr[2]=23.7629564995099; |
1096 |
+ |
Nobs[3]=25.4339; |
1097 |
+ |
Npred[3]=26.2475; |
1098 |
+ |
Nprederr[3]=8.47896339395919; |
1099 |
+ |
Nobs[4]=6.24946; |
1100 |
+ |
Npred[4]=9.97731; |
1101 |
+ |
Nprederr[4]=4.07510841593202; |
1102 |
+ |
return true; |
1103 |
+ |
} |
1104 |
+ |
|
1105 |
+ |
if(code=="101030") { |
1106 |
+ |
Nobs[0]=1335.36; |
1107 |
+ |
Npred[0]=1342.37; |
1108 |
+ |
Nprederr[0]=334.276222135228; |
1109 |
+ |
Nobs[1]=355.554; |
1110 |
+ |
Npred[1]=355.065; |
1111 |
+ |
Nprederr[1]=90.5352675557984; |
1112 |
+ |
Nobs[2]=94.9863; |
1113 |
+ |
Npred[2]=93.7287; |
1114 |
+ |
Nprederr[2]=25.3082516747483; |
1115 |
+ |
Nobs[3]=28.3785; |
1116 |
+ |
Npred[3]=28.3783; |
1117 |
+ |
Nprederr[3]=9.02022017545026; |
1118 |
+ |
Nobs[4]=6.98957; |
1119 |
+ |
Npred[4]=10.8503; |
1120 |
+ |
Nprederr[4]=4.31460183234792; |
1121 |
+ |
return true; |
1122 |
+ |
} |
1123 |
+ |
|
1124 |
+ |
if(code=="101020") { |
1125 |
+ |
Nobs[0]=1418.83; |
1126 |
+ |
Npred[0]=1421.23; |
1127 |
+ |
Nprederr[0]=353.214726699284; |
1128 |
+ |
Nobs[1]=387.594; |
1129 |
+ |
Npred[1]=380.483; |
1130 |
+ |
Nprederr[1]=96.9195932538411; |
1131 |
+ |
Nobs[2]=106.565; |
1132 |
+ |
Npred[2]=99.4694; |
1133 |
+ |
Nprederr[2]=26.7421279631969; |
1134 |
+ |
Nobs[3]=32.9309; |
1135 |
+ |
Npred[3]=31.6286; |
1136 |
+ |
Nprederr[3]=9.84399940108186; |
1137 |
+ |
Nobs[4]=9.25395; |
1138 |
+ |
Npred[4]=12.5158; |
1139 |
+ |
Nprederr[4]=4.76585512033255; |
1140 |
+ |
return true; |
1141 |
+ |
} |
1142 |
+ |
|
1143 |
+ |
if(code=="202040") { |
1144 |
+ |
Nobs[0]=960.506; |
1145 |
+ |
Npred[0]=954.77; |
1146 |
+ |
Nprederr[0]=238.5811858172; |
1147 |
+ |
Nobs[1]=251.453; |
1148 |
+ |
Npred[1]=250.838; |
1149 |
+ |
Nprederr[1]=64.2967104354; |
1150 |
+ |
Nobs[2]=64.4903; |
1151 |
+ |
Npred[2]=66.6518; |
1152 |
+ |
Nprederr[2]=18.4320150537; |
1153 |
+ |
Nobs[3]=19.1953; |
1154 |
+ |
Npred[3]=20.1075; |
1155 |
+ |
Nprederr[3]=6.844063617; |
1156 |
+ |
Nobs[4]=5.09139; |
1157 |
+ |
Npred[4]=8.67175; |
1158 |
+ |
Nprederr[4]=3.6271903178; |
1159 |
+ |
return true; |
1160 |
+ |
} |
1161 |
+ |
|
1162 |
+ |
if(code=="onpeak") { |
1163 |
+ |
Nobs[0]=387.268; |
1164 |
+ |
Npred[0]=377.146; |
1165 |
+ |
Nprederr[0]=55.4000603791; |
1166 |
+ |
Nobs[1]=93.6071; |
1167 |
+ |
Npred[1]=89.2911; |
1168 |
+ |
Nprederr[1]=13.7946793213; |
1169 |
+ |
Nobs[2]=22.4222; |
1170 |
+ |
Npred[2]=22.2462; |
1171 |
+ |
Nprederr[2]=4.252924039; |
1172 |
+ |
Nobs[3]=7.49126; |
1173 |
+ |
Npred[3]=6.98267; |
1174 |
+ |
Nprederr[3]=1.913797227; |
1175 |
+ |
Nobs[4]=1.80426; |
1176 |
+ |
Npred[4]=3.00437; |
1177 |
+ |
Nprederr[4]=1.2381643019; |
1178 |
+ |
return true; |
1179 |
+ |
} |
1180 |
+ |
|
1181 |
+ |
if(code=="151550") { |
1182 |
+ |
Nobs[0]=1009.57; |
1183 |
+ |
Npred[0]=1015.24; |
1184 |
+ |
Nprederr[0]=252.0273686341; |
1185 |
+ |
Nobs[1]=266.851; |
1186 |
+ |
Npred[1]=264.99; |
1187 |
+ |
Nprederr[1]=67.9766170834; |
1188 |
+ |
Nobs[2]=68.2042; |
1189 |
+ |
Npred[2]=69.3185; |
1190 |
+ |
Nprederr[2]=19.0998669415; |
1191 |
+ |
Nobs[3]=20.873; |
1192 |
+ |
Npred[3]=20.1324; |
1193 |
+ |
Nprederr[3]=6.8504656712; |
1194 |
+ |
Nobs[4]=4.67275; |
1195 |
+ |
Npred[4]=8.42002; |
1196 |
+ |
Nprederr[4]=3.5556043404; |
1197 |
+ |
return true; |
1198 |
+ |
} |
1199 |
+ |
|
1200 |
+ |
if(code=="101040") { |
1201 |
+ |
Nobs[0]=1108.67; |
1202 |
+ |
Npred[0]=1106.69; |
1203 |
+ |
Nprederr[0]=275.4248529641; |
1204 |
+ |
Nobs[1]=291.679; |
1205 |
+ |
Npred[1]=288.979; |
1206 |
+ |
Nprederr[1]=74.024835563; |
1207 |
+ |
Nobs[2]=76.0776; |
1208 |
+ |
Npred[2]=76.8332; |
1209 |
+ |
Nprederr[2]=20.9768252605; |
1210 |
+ |
Nobs[3]=22.4581; |
1211 |
+ |
Npred[3]=22.5385; |
1212 |
+ |
Nprederr[3]=7.4675878173; |
1213 |
+ |
Nobs[4]=5.41088; |
1214 |
+ |
Npred[4]=9.51903; |
1215 |
+ |
Nprederr[4]=3.86595197; |
1216 |
+ |
return true; |
1217 |
+ |
} |
1218 |
+ |
|
1219 |
+ |
if(code=="151040") { |
1220 |
+ |
Nobs[0]=1218.67; |
1221 |
+ |
Npred[0]=1239.47; |
1222 |
+ |
Nprederr[0]=308.2683213943; |
1223 |
+ |
Nobs[1]=326.245; |
1224 |
+ |
Npred[1]=325.731; |
1225 |
+ |
Nprederr[1]=83.2795749634; |
1226 |
+ |
Nobs[2]=85.3292; |
1227 |
+ |
Npred[2]=87.239; |
1228 |
+ |
Nprederr[2]=23.6875859997; |
1229 |
+ |
Nobs[3]=25.4339; |
1230 |
+ |
Npred[3]=25.9456; |
1231 |
+ |
Nprederr[3]=8.4021937151; |
1232 |
+ |
Nobs[4]=6.24946; |
1233 |
+ |
Npred[4]=9.97731; |
1234 |
+ |
Nprederr[4]=4.0751084159; |
1235 |
+ |
return true; |
1236 |
+ |
} |
1237 |
+ |
|
1238 |
+ |
if(code=="201040") { |
1239 |
+ |
Nobs[0]=1210.02; |
1240 |
+ |
Npred[0]=1228.62; |
1241 |
+ |
Nprederr[0]=305.6420349772; |
1242 |
+ |
Nobs[1]=324.008; |
1243 |
+ |
Npred[1]=323.042; |
1244 |
+ |
Nprederr[1]=82.6094009556; |
1245 |
+ |
Nobs[2]=84.8866; |
1246 |
+ |
Npred[2]=86.4243; |
1247 |
+ |
Nprederr[2]=23.484169448; |
1248 |
+ |
Nobs[3]=25.4339; |
1249 |
+ |
Npred[3]=25.6437; |
1250 |
+ |
Nprederr[3]=8.3254111903; |
1251 |
+ |
Nobs[4]=6.24946; |
1252 |
+ |
Npred[4]=9.97731; |
1253 |
+ |
Nprederr[4]=4.0751084159; |
1254 |
+ |
return true; |
1255 |
+ |
} |
1256 |
+ |
|
1257 |
+ |
if(code=="151540") { |
1258 |
+ |
Nobs[0]=1112.51; |
1259 |
+ |
Npred[0]=1111.01; |
1260 |
+ |
Nprederr[0]=276.4479685149; |
1261 |
+ |
Nobs[1]=292.622; |
1262 |
+ |
Npred[1]=290.731; |
1263 |
+ |
Nprederr[1]=74.4614881885; |
1264 |
+ |
Nobs[2]=76.1949; |
1265 |
+ |
Npred[2]=77.1915; |
1266 |
+ |
Nprederr[2]=21.066226922; |
1267 |
+ |
Nobs[3]=22.4581; |
1268 |
+ |
Npred[3]=22.8404; |
1269 |
+ |
Nprederr[3]=7.5448416651; |
1270 |
+ |
Nobs[4]=5.41088; |
1271 |
+ |
Npred[4]=9.51903; |
1272 |
+ |
Nprederr[4]=3.86595197; |
1273 |
+ |
return true; |
1274 |
+ |
} |
1275 |
+ |
|
1276 |
+ |
|
1277 |
+ |
return false; |
1278 |
+ |
} |
1279 |
+ |
|
1280 |
+ |
vector<float> do_simulate_upper_limits(string mcjzb, string datajzb, float MCPeakError, vector<float> jzb_cut, string code) { |
1281 |
+ |
vector<vector<float> > all_systematics; |
1282 |
+ |
vector<float> bestUL; |
1283 |
+ |
//we need to set the correct npred, nprederr, and nobs. |
1284 |
+ |
bool loaded_info = load_adequate_npred_nobs(code); |
1285 |
+ |
if(!loaded_info) { |
1286 |
+ |
write_warning(__FUNCTION__,"obs/pred/prederr could not be loaded for this configuration."); |
1287 |
+ |
cout << "Configuration " << code << " (pt1/pt2/mll) caused problems. will be skipped." << endl; |
1288 |
+ |
} else { |
1289 |
+ |
cout << "Loaded configuration for code " << code << " successfully, e.g. Npred[0] is " << Npred[0] << endl; |
1290 |
+ |
bool doobserved=false; |
1291 |
+ |
all_systematics=compute_systematics(mcjzb,MCPeakError,alwaysflip,datajzb,signalsamples,jzb_cut,requireZ); |
1292 |
+ |
bestUL = compute_upper_limits_from_counting_experiment(all_systematics,jzb_cut,mcjzb,doobserved,alwaysflip); |
1293 |
+ |
|
1294 |
+ |
} |
1295 |
+ |
return bestUL; |
1296 |
+ |
} |
1297 |
+ |
|
1298 |
+ |
void decipherM0M12sample(string samplename, float &M0, float &M12) { |
1299 |
+ |
int position = samplename.find("M0_"); |
1300 |
+ |
string interestingpart = samplename.substr(position+3,4); |
1301 |
+ |
position = interestingpart.find("_"); |
1302 |
+ |
if(position>0&&position<5) interestingpart=interestingpart.substr(0,position); |
1303 |
+ |
stringstream M0a; |
1304 |
+ |
M0a << interestingpart; |
1305 |
+ |
M0a>>M0; |
1306 |
+ |
position = samplename.find("M12_"); |
1307 |
+ |
interestingpart = samplename.substr(position+4,4); |
1308 |
+ |
position = interestingpart.find("_"); |
1309 |
+ |
if(position>0&&position<5) interestingpart=interestingpart.substr(0,position); |
1310 |
+ |
stringstream M12a; |
1311 |
+ |
M12a << interestingpart; |
1312 |
+ |
M12a>>M12; |
1313 |
+ |
} |
1314 |
+ |
|
1315 |
+ |
vector<TGraph*> create_limit_graphs(vector<float> limits) { |
1316 |
+ |
float x[limits.size()]; |
1317 |
+ |
float y[limits.size()]; |
1318 |
+ |
int nx=0; |
1319 |
+ |
float x2[limits.size()]; |
1320 |
+ |
float y2[limits.size()]; |
1321 |
+ |
int nx2=0; |
1322 |
+ |
for(int i=0;i<limits.size();i++) { |
1323 |
+ |
string samplename=signalsamples.collection[i].samplename; |
1324 |
+ |
float m0,m12; |
1325 |
+ |
decipherM0M12sample(samplename,m0,m12); |
1326 |
+ |
if(m12==300) { |
1327 |
+ |
x[nx]=m0; |
1328 |
+ |
y[nx]=limits[i]; |
1329 |
+ |
nx++; |
1330 |
+ |
} |
1331 |
+ |
if(m12==400) { |
1332 |
+ |
x2[nx2]=m0; |
1333 |
+ |
y2[nx2]=limits[i]; |
1334 |
+ |
nx2++; |
1335 |
+ |
} |
1336 |
+ |
} |
1337 |
+ |
|
1338 |
+ |
TGraph *gra = new TGraph(nx,x,y); |
1339 |
+ |
TGraph *grb = new TGraph(nx2,x2,y2); |
1340 |
+ |
vector<TGraph*> graphs; |
1341 |
+ |
graphs.push_back(gra); |
1342 |
+ |
graphs.push_back(grb); |
1343 |
+ |
return graphs; |
1344 |
+ |
} |
1345 |
+ |
|
1346 |
+ |
|
1347 |
+ |
|
1348 |
+ |
void interpret_bestULs_for_cuts(vector<pair<vector<float>,string> > bestUL) { |
1349 |
+ |
TCanvas *can = new TCanvas("can","can",1800,900); |
1350 |
+ |
can->Divide(2,1); |
1351 |
+ |
can->cd(1); |
1352 |
+ |
TGraph *graphs[2][bestUL.size()]; |
1353 |
+ |
TLegend *leg = make_legend(); |
1354 |
+ |
for(int i=0;i<bestUL.size();i++) { |
1355 |
+ |
vector<TGraph*> grs=create_limit_graphs(bestUL[i].first); |
1356 |
+ |
graphs[0][i]=grs[0]; |
1357 |
+ |
graphs[1][i]=grs[1]; |
1358 |
+ |
graphs[0][i]->SetLineColor(GenLevelStudy::diversehistocolor(i)); |
1359 |
+ |
graphs[1][i]->SetLineColor(GenLevelStudy::diversehistocolor(i)); |
1360 |
+ |
graphs[0][i]->SetMarkerColor(GenLevelStudy::diversehistocolor(i)); |
1361 |
+ |
graphs[1][i]->SetMarkerColor(GenLevelStudy::diversehistocolor(i)); |
1362 |
+ |
leg->AddEntry(graphs[0][i],bestUL[i].second.c_str(),"lp"); |
1363 |
+ |
} |
1364 |
+ |
|
1365 |
+ |
|
1366 |
+ |
for(int i=0;i<bestUL.size();i++) { |
1367 |
+ |
graphs[0][i]->GetXaxis()->SetTitle("M_{0}"); |
1368 |
+ |
graphs[0][i]->GetYaxis()->SetTitle("Upper Limit (M_{1/2}=300)"); |
1369 |
+ |
graphs[0][i]->GetXaxis()->CenterTitle(); |
1370 |
+ |
graphs[0][i]->GetYaxis()->CenterTitle(); |
1371 |
+ |
|
1372 |
+ |
graphs[1][i]->GetXaxis()->SetTitle("M_{0}"); |
1373 |
+ |
graphs[1][i]->GetYaxis()->SetTitle("Upper Limit (M_{1/2}=400)"); |
1374 |
+ |
graphs[1][i]->GetXaxis()->CenterTitle(); |
1375 |
+ |
graphs[1][i]->GetYaxis()->CenterTitle(); |
1376 |
+ |
|
1377 |
+ |
can->cd(1); |
1378 |
+ |
if(i==0) graphs[0][i]->Draw("ALP"); |
1379 |
+ |
else graphs[0][i]->Draw("LP"); |
1380 |
+ |
can->cd(2); |
1381 |
+ |
if(i==0) graphs[1][i]->Draw("ALP"); |
1382 |
+ |
else graphs[1][i]->Draw("LP"); |
1383 |
+ |
} |
1384 |
+ |
can->cd(1); |
1385 |
+ |
leg->Draw(); |
1386 |
+ |
can->cd(2); |
1387 |
+ |
leg->Draw(); |
1388 |
+ |
CompleteSave(can,"mSUGRAlimits"); |
1389 |
+ |
delete can; |
1390 |
+ |
} |
1391 |
+ |
|
1392 |
+ |
void do_simulate_upper_limits(string mcjzb, string datajzb, float MCPeakError, vector<float> jzb_cut) { |
1393 |
+ |
|
1394 |
+ |
cout << "Going to simulate upper limits (i.e. expected limits) USING MONTE CARLO!!!!" << endl; |
1395 |
+ |
while(jzb_cut.size()>Nobs.size()||jzb_cut.size()>Npred.size()||jzb_cut.size()>Nprederr.size()) { |
1396 |
+ |
Nobs.push_back(0); |
1397 |
+ |
Npred.push_back(0); |
1398 |
+ |
Nprederr.push_back(0); |
1399 |
+ |
} |
1400 |
+ |
|
1401 |
+ |
vector<pair<vector<float>,string> > bestUL; |
1402 |
+ |
|
1403 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"201540"),"201540")); |
1404 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"201040"),"201040"));/* |
1405 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"151040"),"151040")); |
1406 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"151550"),"151550")); |
1407 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"151540"),"151540")); |
1408 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"151530"),"151530")); |
1409 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"101040"),"101040")); |
1410 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"101030"),"101030")); |
1411 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"101020"),"101020")); |
1412 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"151540"),"151540")); |
1413 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"151550"),"151550")); |
1414 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"201040"),"201040")); |
1415 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"151040"),"151040")); |
1416 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"101040"),"101040")); |
1417 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"onpeak"),"onpeak")); |
1418 |
+ |
bestUL.push_back(make_pair(do_simulate_upper_limits(mcjzb,datajzb,MCPeakError,jzb_cut,"202040"),"202040")); |
1419 |
+ |
*/ |
1420 |
+ |
/* |
1421 |
+ |
//------------------- |
1422 |
+ |
write_warning(__FUNCTION__,"Just testing the components now ..."); |
1423 |
+ |
vector<float> limits; |
1424 |
+ |
for(int i=0;i<signalsamples.collection.size();i++) limits.push_back(1/(0.01*(i+1))); |
1425 |
+ |
vector<float> limits2; |
1426 |
+ |
for(int i=0;i<signalsamples.collection.size();i++) limits2.push_back(1/(0.01*(2*i+2))); |
1427 |
+ |
bestUL.push_back(make_pair(limits,"abcd")); |
1428 |
+ |
bestUL.push_back(make_pair(limits2,"efgh")); |
1429 |
+ |
|
1430 |
+ |
//------------------- |
1431 |
+ |
*/ |
1432 |
+ |
|
1433 |
+ |
|
1434 |
+ |
interpret_bestULs_for_cuts(bestUL); |
1435 |
+ |
} |