ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/cbrown/Development/Plotting/Modules/StudyModule.C
(Generate patch)

Comparing UserCode/cbrown/Development/Plotting/Modules/StudyModule.C (file contents):
Revision 1.4 by buchmann, Mon Feb 20 17:06:18 2012 UTC vs.
Revision 1.6 by buchmann, Tue Mar 13 17:56:53 2012 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines