00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include <TGraph.h>
00014 #include <TProfile.h>
00015 #include "MyCHiggsAnalysis/MyCHiggsAnalysis.h"
00016 #include "TObjString.h"
00017
00018
00019
00020
00021
00022
00023 using namespace std;
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 void MyCHiggsAnalysis::init(void) {
00037 filename = "testfile";
00038 return;
00039
00040 }
00041
00042
00043
00044
00045
00046
00047
00048 void MyCHiggsAnalysis::destruct(void) {
00049 return;
00050 }
00051
00052
00053
00054
00055
00056
00057
00058 void MyCHiggsAnalysis::initialize(void) {
00059 i_bTagMatch_nb=0;
00060 i_bbarTagMatch_nb=0;
00061 i_bMatch_nb=0;
00062 i_tryBTag_nb=0;
00063 i_tryBbarTag_nb=0;
00064 i_bbarTagMatchWrong_nb=0;
00065 i_bTagMatchWrong_nb=0;
00066 i_bMatchTrigger_nb=0;
00067 i_bbarMatchTrigger_nb=0;
00068 i_mu_nb=0;
00069 i_mu_all_nb=0;
00070 i_mu_ov_nb=0;
00071 i_mu_iso_nb=0;
00072 i_ele_nb=0;
00073 i_tau_nb=0;
00074 i_tau_ov_nb=0;
00075 i_tau_all_nb=0;
00076 i_tau_id_nb=0;
00077 i_jets_nb=0;
00078 i_bjets_nb=0;
00079 i_bjets_id_nb=0;
00080 i_noTag=0;
00081 i_b_nb=0;
00082 i_b_all_nb=0;
00083 i_light_all_nb=0;
00084 i_jet_nb=0;
00085
00086 i_btagvector=0;
00087 i_MatchTrigger_nb=0;
00088 i_bTagWrong_nb=0;
00089 i_bbarTagWrong_nb=0;
00090 i_bjet_nb=0;
00091 i_tr_ele_noisol=0;
00092 i_ele_all_nb=0;
00093 i_ele_match_noisol=0;
00094 i_tr_mu_all=0;
00095 i_tr_mu=0;
00096 i_tr_ele=0;
00097 i_tr_ele_all=0;
00098 i_ele_ov_nb=0;
00099 i_ele_iso_nb=0;
00100 i_ele_dd_nb=0;
00101 i_jets_all_nb=0;
00102 i_jets_ov_nb=0;
00103 i_tr_tau_all_nb=0;
00104 i_tr_tau_id1_nb=0;
00105 i_tr_tau_id2_nb=0;
00106 i_tr_tau_nb=0;
00107 i_tr_b_all_nb=0;
00108 i_tr_b_id1_nb=0;
00109 i_tr_b_id2_nb=0;
00110 i_tr_b_nb=0;
00111 i_tr_jet_all_nb=0;
00112 i_tr_jet_ov_nb=0;
00113 i_tr_jet_nb=0;
00114 i_ele_isem_nb=0;
00115 i_bjets_matched=0;
00116 d_tau_llh1=100;
00117 d_tau_llh2=100;
00118 d_tau_llh3=100;
00119 d_tau_pt1=10000;
00120 d_tau_pt2=10000;
00121 d_tau_pt3=10000;
00122 d_tau_charge1=0;
00123 d_tau_charge2=0;
00124 d_tau_charge3=0;
00125 d_lep_charge1=0;
00126 d_lep_charge2=0;
00127 d_lep_charge3=0;
00128 i_nb_lep=0;
00129 i_nb_tau=0;
00130
00131
00132
00133 b_tag_llh = new TFile("b_tag_llh.root","READ");
00134 m_tfile = new TFile(filename, "RECREATE");
00135
00136
00137 TH1::SetDefaultSumw2(kTRUE);
00138
00139
00140 m_dataset_info = &MyDatasetInfo::Instance();
00141 m_systematics = new MySystematics(324545);
00142 generator = m_dataset_info->get_generator();
00143 MyTextFileReader m_reader(settingsFilename);
00144 m_reader.fill_cutvalue_map("preselection");
00145 m_cutvalue_etincone_ele= m_reader.get_cutvalue("cutvalue_etincone_ele");
00146 m_cutvalue_trackiso_ele= m_reader.get_cutvalue("cutvalue_trackiso_ele");
00147 m_cutvalue_etincone_muon= m_reader.get_cutvalue("cutvalue_etincone_muon");
00148 m_cutvalue_tau_llh= m_reader.get_cutvalue("cutvalue_tau_llh");
00149 m_cutvalue_b_tag_weight= m_reader.get_cutvalue("cutvalue_b_tag_weight");
00150 m_cutvalue_eta_ele=m_reader.get_cutvalue("cutvalue_eta_ele");
00151 m_cutvalue_eta_muon=m_reader.get_cutvalue("cutvalue_eta_muon");
00152 m_cutvalue_etmiss=m_reader.get_cutvalue("cutvalue_etmiss");
00153
00154 m_value_cone_ele= (int)m_reader.get_cutvalue("value_cone_ele");
00155 m_value_cone_muon= (int)m_reader.get_cutvalue("value_cone_muon");
00156 m_cut_order_trigger = (int)m_reader.get_cutvalue("cut_order_trigger");
00157 m_cut_order_lepton = (int)m_reader.get_cutvalue("cut_order_lepton");
00158 m_cut_order_jet = (int)m_reader.get_cutvalue("cut_order_jet");
00159 m_cut_order_tau = (int)m_reader.get_cutvalue("cut_order_tau");
00160 m_cut_order_b = (int)m_reader.get_cutvalue("cut_order_b");
00161 m_cut_order_taupt = (int)m_reader.get_cutvalue("cut_order_taupt");
00162 m_cut_order_charge = (int)m_reader.get_cutvalue("cut_order_charge");
00163 m_cut_order_etmiss = (int)m_reader.get_cutvalue("cut_order_etmiss");
00164 atlfast = (bool)m_reader.get_cutvalue("atlfast");
00165 i_trigger_menu= (int)m_reader.get_cutvalue("trigger_menu");
00166 b_doSystematics= (bool)m_reader.get_cutvalue("doSystematics");
00167 b_doSmearing_Muon = (bool)m_reader.get_cutvalue("doSmearing_Muon");
00168 b_doScaling_plus_Muon = (bool)m_reader.get_cutvalue("doScaling_plus_Muon");
00169 b_doScaling_minus_Muon = (bool)m_reader.get_cutvalue("doScaling_minus_Muon");
00170 b_doKillEvents_Muon = (bool)m_reader.get_cutvalue("doKillEvents_Muon");
00171 b_doSmearing_Ele = (bool)m_reader.get_cutvalue("doSmearing_Ele");
00172 b_doSmearing_Gamma = (bool)m_reader.get_cutvalue("doSmearing_Gamma");
00173 b_doScaling_plus_EGamma = (bool)m_reader.get_cutvalue("doScaling_plus_EGamma");
00174 b_doScaling_minus_EGamma = (bool)m_reader.get_cutvalue("doScaling_minus_EGamma");
00175 b_doKillEvents_Ele = (bool)m_reader.get_cutvalue("doKillEvents_Ele");
00176 b_doSmearing_Tau = (bool)m_reader.get_cutvalue("doSmearing_Tau");
00177 b_doScaling_plus_Tau = (bool)m_reader.get_cutvalue("doScaling_plus_Tau");
00178 b_doScaling_minus_Tau = (bool)m_reader.get_cutvalue("doScaling_minus_Tau");
00179 b_doKillEvents_Tau = (bool)m_reader.get_cutvalue("doKillEvents_Tau");
00180 b_doSmearing_Jet = (bool)m_reader.get_cutvalue("doSmearing_Jet");
00181 b_doScaling_plus_Jet = (bool)m_reader.get_cutvalue("doScaling_plus_Jet");
00182 b_doScaling_minus_Jet = (bool)m_reader.get_cutvalue("doScaling_minus_Jet");
00183 b_doBtag = (bool)m_reader.get_cutvalue("doBtag");
00184 b_doBtag_old = (bool)m_reader.get_cutvalue("doBtag_old");
00185 b_doJetTree = (bool)m_reader.get_cutvalue("doJetTree");
00186 b_doLightRej60 = (bool)m_reader.get_cutvalue("doLightRej60");
00187 b_doLightRej80 = (bool)m_reader.get_cutvalue("doLightRej80");
00188 m_value_isem_flag_ele= 0x3FF;
00189 m_value_rec_flag_muon= (int)m_reader.get_cutvalue("value_rec_flag_muon");
00190 m_mcnlo_weight = new TH1F("mcnlo_weight", "MC@NLO EVENT WEIGHT", 5, -2.5, 2.5);
00191 tau_nu_ratio = new TH1F("tau_nu_ratio","",50,-1,1);
00192
00193 cout <<filename <<endl;
00194 if (filename.Contains("6399")||
00195 filename.Contains("6800")||
00196 filename.Contains("6562")||
00197 filename.Contains("6398")||
00198 filename.Contains("6566")) {
00199 d_btag_b_eff=-1.1;
00200 d_btag_c_eff=-0.24;
00201 d_btag_add_light_70 = 0.95;
00202 d_btag_add_light_60 = 1.37;
00203 d_btag_add_light_80 = 0.66;
00204 d_btag_c_eff_95=d_btag_c_eff;
00205 d_btag_c_eff_105=0.28;
00206 }
00207 if (filename.Contains("5200")) {
00208 d_btag_b_eff=-1.09;
00209 d_btag_c_eff=-0.34;
00210 d_btag_add_light_70 = 0.85;
00211 d_btag_add_light_60 = 1.22;
00212 d_btag_add_light_80 = 0.57;
00213 d_btag_c_eff_95=d_btag_c_eff;
00214 d_btag_c_eff_105=0.32;
00215 }
00216 if (filename.Contains("5500")||
00217 filename.Contains("5501")||
00218 filename.Contains("5502")) {
00219 d_btag_b_eff=-1.12;
00220 d_btag_c_eff=-0.35;
00221 d_btag_add_light_70 = 0.83;
00222 d_btag_add_light_60 = 1.12;
00223 d_btag_add_light_80 = 0.60;
00224 d_btag_c_eff_95=d_btag_c_eff;
00225 d_btag_c_eff_105=0.29;
00226 }
00227 if (filename.Contains("8240")||
00228 filename.Contains("8241")||
00229 filename.Contains("8242")||
00230 filename.Contains("8243")){
00231 d_btag_b_eff=-0.91;
00232 d_btag_c_eff=-0.38;
00233 d_btag_add_light_70 = 0.78;
00234 d_btag_add_light_60 = 1.12;
00235 d_btag_add_light_80 = 0.54;
00236 d_btag_c_eff_95=d_btag_c_eff;
00237 d_btag_c_eff_105=0.32;
00238 }
00239 if (filename.Contains("8244")||
00240 filename.Contains("8245")||
00241 filename.Contains("8246")||
00242 filename.Contains("8247")) {
00243 d_btag_b_eff=-1.05;
00244 d_btag_c_eff=-0.33;
00245 d_btag_add_light_70 = 0.88;
00246 d_btag_add_light_60 = 1.26;
00247 d_btag_add_light_80 = 0.56;
00248 d_btag_c_eff_95=d_btag_c_eff;
00249 d_btag_c_eff_105=0.33;
00250 }
00251 if (filename.Contains("8248")||
00252 filename.Contains("8249")||
00253 filename.Contains("8250")||
00254 filename.Contains("8251")) {
00255 d_btag_b_eff=-1.48;
00256 d_btag_c_eff=-0.31;
00257 d_btag_add_light_70 = 0.85;
00258 d_btag_add_light_60 = 1.20;
00259 d_btag_add_light_80 = 0.54;
00260 d_btag_c_eff_95=d_btag_c_eff;
00261 d_btag_c_eff_105=0.33;
00262 }
00263
00264
00265 m_e_truth_nb = new TH1F("e_truth_nb", "NUMBER OF TRUTH ELECTRONS / EVENT", 11, -0.5, 10.5);
00266 m_e_truth_pt = new TH1F("e_truth_pt", "TRUTH ELECTRON PT (GeV)", 100, 0, 200);
00267 m_e_truth_eta = new TH1F("e_truth_eta", "TRUTH ELECTRON ETA ", 60, -3, 3);
00268 m_e_truth_phi = new TH1F("e_truth_phi", "TRUTH ELECTRON PHI ", 70, -3.5, 3.5);
00269 m_e_nb = new TH1F("e_nb", "NUMBER OF RECO ELECTRONS / EVENT", 11, -0.5, 10.5);
00270 m_e_energy = new TH1F("e_energy", "ELECTRON ENERGY (GeV)", 100, 0, 200);
00271 m_e_pt = new TH1F("e_pt", "ELECTRON PT (GeV)", 100, 0, 200);
00272 m_e_eta = new TH1F("e_eta", "ELECTRON ETA", 60, -3, 3);
00273 m_e_phi = new TH1F("e_phi", "ELECTRON PHI", 70, -3.5, 3.5);
00274 m_e_e_over_p = new TH1F("e_e_over_p", "ELECTRON E/P ", 51, -0.5, 5.5);
00275 m_e_charge = new TH1F("e_charge", "ELECTRON CHARGE", 3, -1.5, 1.5);
00276 m_e_isol_et_in_cone_0 = new TH1F("e_isol_et_in_cone_0",
00277 "ISOLATED ELECTRON ET IN CONE (GEV)", 100, 0, 50);
00278 m_e_isol_et_in_cone_1 = new TH1F("e_isol_et_in_cone_1",
00279 "ISOLATED ELECTRON ET IN CONE (GEV)", 100, 0, 50);
00280 m_e_isol_et_in_cone_2 = new TH1F("e_isol_et_in_cone_2",
00281 "ISOLATED ELECTRON ET IN CONE (GEV)", 100, 0, 50);
00282 m_e_isol_et_in_cone_3 = new TH1F("e_isol_et_in_cone_3",
00283 "ISOLATED ELECTRON ET IN CONE (GEV)", 100, 0, 50);
00284 m_e_noisol_et_in_cone_0 = new TH1F("e_noisol_et_in_cone_0",
00285 "NOT ISOLATED ELECTRON ET IN CONE (GEV)", 100, 0, 50);
00286 m_e_noisol_et_in_cone_1 = new TH1F("e_noisol_et_in_cone_1",
00287 "NOT ISOLATED ELECTRON ET IN CONE (GEV)", 100, 0, 50);
00288 m_e_noisol_et_in_cone_2 = new TH1F("e_noisol_et_in_cone_2",
00289 "NOT ISOLATED ELECTRON ET IN CONE (GEV)", 100, 0, 50);
00290 m_e_noisol_et_in_cone_3 = new TH1F("e_noisol_et_in_cone_3",
00291 "NOT ISOLATED ELECTRON ET IN CONE (GEV)", 100, 0, 50);
00292 m_e_isol_trackIsolationEnergy_0 = new TH1F("e_isol_trackIsolationEnergy_0",
00293 "ISOLATED ELECTRON TRACK ET IN CONE (GEV)", 100, 0, 50);
00294 m_e_isol_trackIsolationEnergy_1 = new TH1F("e_isol_trackIsolationEnergy_1",
00295 "ISOLATED ELECTRON TRACK ET IN CONE (GEV)", 100, 0, 50);
00296 m_e_isol_trackIsolationEnergy_2 = new TH1F("e_isol_trackIsolationEnergy_2",
00297 "ISOLATED ELECTRON TRACK ET IN CONE (GEV)", 100, 0, 50);
00298 m_e_isol_trackIsolationEnergy_3 = new TH1F("e_isol_trackIsolationEnergy_3",
00299 "ISOLATED ELECTRON TRACK ET IN CONE (GEV)", 100, 0, 50);
00300 m_e_noisol_trackIsolationEnergy_0 = new TH1F("e_noisol_trackIsolationEnergy_0",
00301 "NOT ISOLATED ELECTRON TRACK ET IN CONE (GEV)", 100, 0, 50);
00302 m_e_noisol_trackIsolationEnergy_1 = new TH1F("e_noisol_trackIsolationEnergy_1",
00303 "NOT ISOLATED ELECTRON TRACK ET IN CONE (GEV)", 100, 0, 50);
00304 m_e_noisol_trackIsolationEnergy_2 = new TH1F("e_noisol_trackIsolationEnergy_2",
00305 "NOT ISOLATED ELECTRON TRACK ET IN CONE (GEV)", 100, 0, 50);
00306 m_e_noisol_trackIsolationEnergy_3 = new TH1F("e_noisol_trackIsolationEnergy_3",
00307 "NOT ISOLATED ELECTRON TRACK ET IN CONE (GEV)", 100, 0, 50);
00308 m_e_mother_id = new TH1F("e_mother_id","ELECTRON MOTHER ID",10000,0,10000);
00309 m_e_all_pt = new TH1F("e_all_pt", "all ELECTRON PT (GeV)", 100, 0, 200);
00310 m_e_all_eta = new TH1F("e_all_eta", "all ELECTRON ETA", 60, -3, 3);
00311 m_e_all_phi = new TH1F("e_all_phi", "all ELECTRON PHI", 70, -3.5, 3.5);
00312 m_e_good_nb = new TH1F("e_good_nb", "NUMBER OF ISOLATED ELECTRONS WITH ISEM FLAG / EVENT",
00313 11, -0.5, 10.5);
00314 m_e_good_pt = new TH1F("e_good_pt", "PT OF RECONSTRUCTED ELECTRONS (GeV)", 100, 0, 200);
00315 m_e_good_eta = new TH1F("e_good_eta", "ETA OF RECONSTRUCTED ELECTRONS", 60, -3, 3);
00316 m_e_good_phi = new TH1F("e_good_phi", "PHI OF RECONSTRUCTED ELECTRONS", 70, -3.5, 3.5);
00317 m_e_good_e_over_p = new TH1F("e_good_e_over_p", "E/P OF RECONSTRUCTED ELECTRONS",
00318 51, -0.5, 5.5);
00319 m_e_good_et_in_cone = new TH1F("e_good_et_in_cone", "ETINCONE OF RECONSTRUCTED ELECTRONS (GEV)",
00320 100, 0, 50);
00321 m_e_good_energy = new TH1F("e_good_energy", "ENERGY OF RECONSTRUCTED ELECTRONS (GeV)",
00322 100, 0, 200);
00323 m_e_matched_tr_pt = new TH1F("e_matched_tr_pt","MATCHED TRUTH ELECTRONS PT (GEV)",
00324 100, 0, 200);
00325 m_e_matched_tr_eta = new TH1F("e_matched_tr_eta","MATCHED TRUTH ELECTRONS ETA (GEV)",
00326 60, -3, 3);
00327 m_e_matched_tr_phi = new TH1F("e_matched_tr_phi","MATCHED TRUTH ELECTRONS PHI (GEV)",
00328 70, -3.5, 3.5);
00329 m_e_matched_tr_trackiso_pt = new TH1F("e_matched_tr_trackiso_pt","MATCHED TRUTH ELECTRONS PT (GEV)",
00330 100, 0, 200);
00331 m_e_matched_tr_trackiso_eta = new TH1F("e_matched_tr_trackiso_eta","MATCHED TRUTH ELECTRONS ETA (GEV)",
00332 60, -3, 3);
00333 m_e_matched_tr_trackiso_phi = new TH1F("e_matched_tr_trackiso_phi","MATCHED TRUTH ELECTRONS PHI (GEV)",
00334 70, -3.5, 3.5);
00335 m_e_all_matched_tr_pt = new TH1F("e_all_matched_tr_pt","MATCHED TRUTH ELECTRONS PT (GEV)",
00336 100, 0, 200);
00337 m_e_all_matched_tr_eta = new TH1F("e_all_matched_tr_eta","MATCHED TRUTH ELECTRONS ETA (GEV)",
00338 60, -3, 3);
00339 m_e_all_matched_tr_phi = new TH1F("e_all_matched_tr_phi","MATCHED TRUTH ELECTRONS PHI (GEV)",
00340 70, -3.5, 3.5);
00341 m_e_fake_pt = new TH1F("e_fake_pt","FAKED ELECTRONS VS. PT (GEV)", 100, 0, 200);
00342 m_e_fake_eta = new TH1F("e_fake_eta","FAKED ELECTRONS VS. ETA (GEV)", 60, -3, 3);
00343 m_e_fake_phi = new TH1F("e_fake_phi","FAKED ELECTRONS VS. PHI (GEV)", 70, -3.5, 3.5);
00344 m_e_fake_trackiso_pt = new TH1F("e_fake_trackiso_pt","FAKED ELECTRONS VS. PT (GEV)", 100, 0, 200);
00345 m_e_fake_trackiso_eta = new TH1F("e_fake_trackiso_eta","FAKED ELECTRONS VS. ETA (GEV)", 60, -3, 3);
00346 m_e_fake_trackiso_phi = new TH1F("e_fake_trackiso_phi","FAKED ELECTRONS VS. PHI (GEV)", 70, -3.5, 3.5);
00347 m_e_all_fake_pt = new TH1F("e_all_fake_pt","FAKED ELECTRONS VS. PT (GEV)", 100, 0, 200);
00348 m_e_all_fake_eta = new TH1F("e_all_fake_eta","FAKED ELECTRONS VS. ETA (GEV)", 60, -3, 3);
00349 m_e_all_fake_phi = new TH1F("e_all_fake_phi","FAKED ELECTRONS VS. PHI (GEV)", 70, -3.5, 3.5);
00350 m_e_res_ratio_energy =new TH1F("e_res_ratio_energy", "ELECTRON ENERGY REC VS. TRUTH (GeV)",
00351 281, -30.5, 250.5);
00352 m_e_res_ratio_eta = new TH1F("e_res_ratio_eta", "ELECTRON ETA RESOLUTION (REC - TRUTH)",
00353 101, -0.01, 0.01);
00354 m_e_res_ratio_phi = new TH1F("e_res_ratio_phi", "ELECTRON PHI RESOLUTION (REC - TRUTH)",
00355 101, -0.01, 0.01);
00356 m_e_res_ratio_pt = new TH1F("e_res_ratio_pt", "ELECTRON PT RESOLUTION (REC - TRUTH) (GeV)",
00357 201, -0.25, 0.25);
00358 m_e_res_profile_pt = new TProfile(
00359 "e_res_profile_pt", "ELECTRON PT RESOLUTION (PROFILE) VS PT",20,0.0,200.0,0.0,1.0,"G");
00360 m_e_res_profile_eta = new TProfile(
00361 "e_res_profile_eta", "ELECTRON ETA RESOLUTION (PROFILE) VS PT",20,0.0,200.0,0,1.0,"G");
00362 m_e_res_profile_phi = new TProfile(
00363 "e_res_profile_phi", "ELECTRON PHI RESOLUTION (PROFILE) VS PT",20,0.0,200.0,0,1.0,"G");
00364 m_e_from_b_matched_reco_et_in_cone = new TH1F(
00365 "e_from_b_matched_reco_et_in_cone", "MATCHED RECO ELECTRON (FROM B JET) ET IN CONE (GEV)",
00366 442, -20, 200);
00367
00368 m_m_truth_nb = new TH1F("m_truth_nb", "NUMBER OF TRUTH MUONS / EVENT", 11, -0.5, 10.5);
00369 m_m_truth_pt = new TH1F("m_truth_pt", "TRUTH MUON PT (GeV)", 100, 0, 200);
00370 m_m_truth_eta = new TH1F("m_truth_eta", "TRUTH MUON ETA ", 60, -3, 3);
00371 m_m_truth_phi = new TH1F("m_truth_phi", "TRUTH MUON PHI ", 70, -3.5, 3.5);
00372 m_m_nb = new TH1F("m_nb", "NUMBER OF RECONSTRUCTED MUONS / EVENT", 11, -0.5, 10.5);
00373 m_m_pt = new TH1F("m_pt", "PT OF ALL RECONSTRUCTED MUONS (GeV)", 100, 0, 200);
00374 m_sys_m_pt = new TH1F("sys_m_pt", "PT OF ALL RECONSTRUCTED MUONS (GeV)", 100, 0, 200);
00375 m_m_phi = new TH1F("m_phi", "PHI OF ALL RECONSTRUCTED MUONS / EVENT", 70, -3.5, 3.5);
00376 m_m_eta = new TH1F("m_eta", "ETA OF ALL RECONSTRUCTED MUONS / EVENT", 60, -3, 3);
00377 m_m_charge = new TH1F("m_charge", "CHARGE OF ALL RECONSTRUCTED MUON", 3, -1.5, 1.5);
00378 m_m_energy = new TH1F("m_energy", "ENERGY OF ALL RECONSTRUCTED MUON (GeV)", 100, 0, 200);
00379 m_m_isol_et_in_cone_0 = new TH1F("m_isol_et_in_cone_0",
00380 "ISOLATED MUON ETINCONE", 100, 0, 50);
00381 m_m_isol_et_in_cone_1 = new TH1F("m_isol_et_in_cone_1",
00382 "ISOLATED MUON ETINCONE", 100, 0, 50);
00383 m_m_isol_et_in_cone_2 = new TH1F("m_isol_et_in_cone_2",
00384 "ISOLATED MUON ETINCONE", 100, 0, 50);
00385 m_m_isol_et_in_cone_3 = new TH1F("m_isol_et_in_cone_3",
00386 "ISOLATED MUON ETINCONE", 100, 0, 50);
00387 m_m_isol_et_in_cone_4 = new TH1F("m_isol_et_in_cone_4",
00388 "ISOLATED MUON ETINCONE", 100, 0, 50);
00389 m_m_isol_et_in_cone_5 = new TH1F("m_isol_et_in_cone_5",
00390 "ISOLATED MUON ETINCONE", 100, 0, 50);
00391 m_m_isol_et_in_cone_6 = new TH1F("m_isol_et_in_cone_6",
00392 "ISOLATED MUON ETINCONE", 100, 0, 50);
00393 m_m_isol_et_in_cone_7 = new TH1F("m_isol_et_in_cone_7",
00394 "ISOLATED MUON ETINCONE", 100, 0, 50);
00395 m_m_noisol_et_in_cone_0 = new TH1F("m_noisol_et_in_cone_0",
00396 "ISOLATED MUON ETINCONE", 100, 0, 50);
00397 m_m_noisol_et_in_cone_1 = new TH1F("m_noisol_et_in_cone_1",
00398 "ISOLATED MUON ETINCONE", 100, 0, 50);
00399 m_m_noisol_et_in_cone_2 = new TH1F("m_noisol_et_in_cone_2",
00400 "ISOLATED MUON ETINCONE", 100, 0, 50);
00401 m_m_noisol_et_in_cone_3 = new TH1F("m_noisol_et_in_cone_3",
00402 "ISOLATED MUON ETINCONE", 100, 0, 50);
00403 m_m_noisol_et_in_cone_4 = new TH1F("m_noisol_et_in_cone_4",
00404 "ISOLATED MUON ETINCONE", 100, 0, 50);
00405 m_m_noisol_et_in_cone_5 = new TH1F("m_noisol_et_in_cone_5",
00406 "ISOLATED MUON ETINCONE", 100, 0, 50);
00407 m_m_noisol_et_in_cone_6 = new TH1F("m_noisol_et_in_cone_6",
00408 "ISOLATED MUON ETINCONE", 100, 0, 50);
00409 m_m_noisol_et_in_cone_7 = new TH1F("m_noisol_et_in_cone_7",
00410 "ISOLATED MUON ETINCONE", 100, 0, 50);
00411 m_m_isol_trackIsolationEnergy_0 = new TH1F("m_isol_trackIsolationEnergy_0",
00412 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00413 m_m_isol_trackIsolationEnergy_1 = new TH1F("m_isol_trackIsolationEnergy_1",
00414 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00415 m_m_isol_trackIsolationEnergy_2 = new TH1F("m_isol_trackIsolationEnergy_2",
00416 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00417 m_m_isol_trackIsolationEnergy_3 = new TH1F("m_isol_trackIsolationEnergy_3",
00418 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00419 m_m_isol_trackIsolationEnergy_4 = new TH1F("m_isol_trackIsolationEnergy_4",
00420 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00421 m_m_isol_trackIsolationEnergy_5 = new TH1F("m_isol_trackIsolationEnergy_5",
00422 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00423 m_m_isol_trackIsolationEnergy_6 = new TH1F("m_isol_trackIsolationEnergy_6",
00424 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00425 m_m_isol_trackIsolationEnergy_7 = new TH1F("m_isol_trackIsolationEnergy_7",
00426 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00427 m_m_noisol_trackIsolationEnergy_0 = new TH1F("m_noisol_trackIsolationEnergy_0",
00428 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00429 m_m_noisol_trackIsolationEnergy_1 = new TH1F("m_noisol_trackIsolationEnergy_1",
00430 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00431 m_m_noisol_trackIsolationEnergy_2 = new TH1F("m_noisol_trackIsolationEnergy_2",
00432 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00433 m_m_noisol_trackIsolationEnergy_3 = new TH1F("m_noisol_trackIsolationEnergy_3",
00434 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00435 m_m_noisol_trackIsolationEnergy_4 = new TH1F("m_noisol_trackIsolationEnergy_4",
00436 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00437 m_m_noisol_trackIsolationEnergy_5 = new TH1F("m_noisol_trackIsolationEnergy_5",
00438 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00439 m_m_noisol_trackIsolationEnergy_6 = new TH1F("m_noisol_trackIsolationEnergy_6",
00440 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00441 m_m_noisol_trackIsolationEnergy_7 = new TH1F("m_noisol_trackIsolationEnergy_7",
00442 "MUON TRACK ET IN CONE (GEV)", 100, 0, 50);
00443 m_m_mother_id = new TH1F("m_mother_id","MOTHER ID OF ALL RECONSTRUCTED MUONS",5000,0,5000);
00444 m_m_good_nb = new TH1F("m_good_nb", "NUMBER OF RECONSTRUCTED MUONS / EVENT", 11, -0.5, 10.5);
00445 m_m_good_pt = new TH1F("m_good_pt", "PT OF RECONSTRUCTED MUONS (GeV)", 100, 0, 200);
00446 m_m_good_eta = new TH1F("m_good_eta", "ETA OF RECONSTRUCTED MUONS / EVENT", 60, -3, 3);
00447 m_m_good_phi = new TH1F("m_good_phi", "PHI OF RECONSTRUCTED MUONS / EVENT", 70, -3.5, 3.5);
00448 m_m_good_energy = new TH1F("m_good_energy", "ENERGY OF RECONSTRUCTED MUONS (GeV)",
00449 100, 0, 200);
00450 m_m_good_et_in_cone = new TH1F("m_good_et_in_cone", "ET IN CONE OF RECONSTRUCTED MUONS(GEV)",
00451 100, 0, 100);
00452 h_m_matched_tr_com_pt = new TH1F("m_matched_tr_com_pt","MATCHED TRUTH MUONS PT (GEV)",
00453 100, 0, 200);
00454 h_m_matched_tr_com_eta = new TH1F("m_matched_tr_com_eta","MATCHED TRUTH MUONS VS. ETA",
00455 60, -3, 3);
00456 h_m_matched_tr_com_phi = new TH1F("m_matched_tr_com_phi","MATCHED TRUTH MUONS VS. PHI",
00457 70, -3.5, 3.5);
00458 h_m_matched_tr_st_pt = new TH1F("m_matched_tr_st_pt","MATCHED TRUTH MUONS PT (GEV)",
00459 100, 0, 200);
00460 h_m_matched_tr_st_eta = new TH1F("m_matched_tr_st_eta","MATCHED TRUTH MUONS VS. ETA",
00461 60, -3, 3);
00462 h_m_matched_tr_st_phi = new TH1F("m_matched_tr_st_phi","MATCHED TRUTH MUONS VS. PHI",
00463 70, -3.5, 3.5);
00464 h_m_fake_com_pt = new TH1F("m_fake_com_pt","FAKED MUONS VS. PT", 100, 0, 200);
00465 h_m_fake_com_eta = new TH1F("m_fake_com_eta","FAKED MUONS VS. ETA", 60, -3, 3);
00466 h_m_fake_com_phi = new TH1F("m_fake_com_phi","FAKED MUONS VS. PHI", 70, -3.5, 3.5);
00467 h_m_fake_com_et_in_cone = new TH1F("m_fake_com_et_in_cone","FAKED MUONS VS. ET IN CONE (GEV)",
00468 100, 0, 200);
00469 h_m_fake_st_pt = new TH1F("m_fake_st_pt","FAKED MUONS VS. PT", 100, 0, 200);
00470 h_m_fake_st_eta = new TH1F("m_fake_st_eta","FAKED MUONS VS. ETA", 60, -3, 3);
00471 h_m_fake_st_phi = new TH1F("m_fake_st_phi","FAKED MUONS VS. PHI", 70, -3.5, 3.5);
00472 h_m_fake_st_et_in_cone = new TH1F("m_fake_st_et_in_cone","FAKED MUONS VS. ET IN CONE (GEV)",
00473 100, 0, 200);
00474 m_m_res_ratio_energy =new TH1F("m_res_ratio_energy", "MUON ENERGY REC VS. TRUTH (GeV)",
00475 281, -30.5, 250.5);
00476 m_m_res_ratio_eta = new TH1F("m_res_ratio_eta", "MUON ETA RESOLUTION (REC - TRUTH)",
00477 101, -0.01, 0.01);
00478 m_m_res_ratio_phi = new TH1F("m_res_ratio_phi", "MUON PHI RESOLUTION (REC - TRUTH)",
00479 101, -0.01, 0.01);
00480 m_m_res_ratio_pt = new TH1F("m_res_ratio_pt", "MUON PT RESOLUTION (REC - TRUTH) (GeV)",
00481 201, -0.25, 0.25);
00482 m_m_res_profile_pt = new TProfile("m_res_profile_pt", "MUON PHI RESOLUTION (PROFILE) VS PT",
00483 20,0.0,200.0,0.0,1.0,"G");
00484 m_m_res_profile_eta = new TProfile("m_res_profile_eta", "MUON PHI RESOLUTION (PROFILE) VS PT",
00485 20,0.0,200.0,0,1.0,"G");
00486 m_m_res_profile_phi = new TProfile("m_res_profile_phi", "MUON PHI RESOLUTION (PROFILE) VS PT",
00487 20,0.0,200.0,0,1.0,"G");
00488
00489
00490 m_jet_truth_nb = new TH1F("jet_truth_nb", "NUMBER OF TRUTH JETS / EVENT", 11, -0.5, 10.5);
00491 m_jet_plus_tau_truth_nb = new TH1F("jet_plus_tau_truth_nb", "NUMBER OF TRUTH JETS / EVENT",
00492 11, -0.5, 10.5);
00493 m_lj_truth_pt = new TH1F("lj_truth_pt", "TRUTH LIGHT JETS PT (GeV)", 100, 0, 200);
00494 m_lj_truth_eta = new TH1F("lj_truth_eta", "TRUTH LIGHT JETS ETA ", 60, -3, 3);
00495 m_lj_truth_phi = new TH1F("lj_truth_phi", "TRUTH LIGHT JETS PHI ", 70, -3.5, 3.5);
00496 m_jet_tauveto_truth_pt = new TH1F("jet_tauveto_truth_pt", "TRUTH JETS (TAUVETO) PT (GeV)",
00497 100, 0, 200);
00498 m_jet_tauveto_truth_eta = new TH1F("jet_tauveto_truth_eta", "TRUTH JETS (TAUVETO) ETA ",
00499 100, -5, 5);
00500 m_jet_tauveto_truth_phi = new TH1F("jet_tauveto_truth_phi", "TRUTH JETS (TAUVETO) PHI ",
00501 70, -3.5, 3.5);
00502 m_jet_nb = new TH1F("jet_nb", "NUMBER OF RECONSTRUCTED JETS / EVENT", 11, -0.5, 10.5);
00503 m_jet_pt = new TH1F("jet_pt", "RECONSTRUCTED JETS PT (GeV)", 100, 0, 200);
00504 m_jet_et = new TH1F("jet_et", "RECONSTRUCTED JETS ET (GeV)", 100, 0, 200);
00505 m_jet_phi = new TH1F("jet_phi", "PHI OF RECONSTRUCTED JETS / EVENT", 70, -3.5, 3.5);
00506 m_jet_eta = new TH1F("jet_eta", "ETA OF RECONSTRUCTED JETS / EVENT", 100, -5, 5);
00507 m_jet_charge_neg = new TH1F("jet_charge_neg",
00508 "LIGHT JET CHARGE (NEG, HIGHEST PT, MATCH TO !B-QUARK)", 100, -1, 1);
00509 m_jet_charge_pos = new TH1F("jet_charge_pos",
00510 "LIGHT JET CHARGE (POS, HIGHEST PT, MATCH TO !B-QUARK)", 100, -1, 1);
00511 m_jet_matched_truth_pt = new TH1F("jet_matched_truth_pt","MATCHED TRUTH JETS PT (GEV)",
00512 100, 0, 200);
00513 m_jet_matched_truth_eta = new TH1F("jet_matched_truth_eta","MATCHED TRUTH JETS VS. ETA",
00514 100, -5, 5);
00515 m_jet_matched_truth_phi = new TH1F("jet_matched_truth_phi","MATCHED TRUTH JETS VS. PHI",
00516 70, -3.5, 3.5);
00517 m_jet_fake_pt = new TH1F("jet_fake_pt","FAKED RECONSTRUCTED JETS PT (GEV)", 100, 0, 200);
00518 m_jet_fake_eta = new TH1F("jet_fake_eta","FAKED RECONSTRUCTED JETS VS. ETA ", 100, -5, 5);
00519 m_jet_fake_phi = new TH1F("jet_fake_phi","FAKED RECONSTRUCTED JETS VS. PHI ", 70, -3.5, 3.5);
00520 m_jet_res_profile_pt =
00521 new TProfile("jet_res_profile_pt", "JET PT RESOLUTION (PROFILE) VS PT",
00522 20,0.0,200.0,0.0,1.0,"G");
00523 m_jet_res_profile_eta =
00524 new TProfile("jet_res_profile_eta", "JET ETA RESOLUTION (PROFILE) VS PT",
00525 20,0.0,200.0,0,1.0,"G");
00526 m_jet_res_profile_phi =
00527 new TProfile("jet_res_profile_phi", "JET PHI RESOLUTION (PROFILE) VS PT",
00528 20,0.0,200.0,0,1.0,"G");
00529 m_jet_res_ratio_eta = new TH1F("jet_res_ratio_eta", "JET RESOLUTION ETA((REC-TRUTH)/TRUTH)",
00530 201, -0.5, 0.5);
00531 m_jet_res_ratio_phi = new TH1F("jet_res_ratio_phi", "JET RESOLUTION PHI((REC-TRUTH)/TRUTH)",
00532 201, -0.5, 0.5);
00533 m_jet_res_ratio_pt = new TH1F("jet_res_ratio_pt", "JET RESOLUTION PT((REC-TRUTH)/TRUTH) (GeV)",
00534 201, -1, 1);
00535 m_jet_res_ratio_energy = new TH1F("jet_res_ratio_energy",
00536 "JET RESOLUTION ENERGY((REC-TRUTH)/TRUTH) (GeV)", 201, -1, 1);
00537
00538
00539 m_b_truth_nb = new TH1F("b_truth_nb", "NUMBER OF TRUTH B JETS / EVENT", 11, -0.5, 10.5);
00540 m_b_pos_truth_pt = new TH1F("b_pos_truth_pt", "TRUTH POS B QUARKS PT (GeV)", 100, 0, 200);
00541 m_b_neg_truth_pt = new TH1F("b_neg_truth_pt", "TRUTH NEG B QUARKS PT (GeV)", 100, 0, 200);
00542 m_b_truth_eta = new TH1F("b_truth_eta", "TRUTH B JETS ETA ", 60, -3, 3);
00543 m_b_truth_phi = new TH1F("b_truth_phi", "TRUTH B JETS PHI ", 70, -3.5, 3.5);
00544 m_b_nb = new TH1F("b_nb", "NUMBER OF RECONSTRUCTED B JETS / EVENT", 11, -0.5, 10.5);
00545 m_b_pt = new TH1F("b_pt", "RECONSTRUCTED B JETS PT (GeV)", 100, 0, 200);
00546 m_b_eta = new TH1F("b_eta", "ETA OF RECONSTRUCTED B JETS / EVENT", 60, -3, 3);
00547 m_b_phi = new TH1F("b_phi", "PHI OF RECONSTRUCTED B JETS / EVENT", 70, -3.5, 3.5);
00548 m_b_charge_neg = new TH1F("b_charge_neg", "B JET CHARGE (NEG)", 50, -1, 1);
00549 m_b_charge_pos = new TH1F("b_charge_pos", "BBAR JET CHARGE (POS)", 50, -1, 1);
00550 m_b0_charge_neg = new TH1F("b0_charge_neg", "B JET CHARGE (NEG, HIGHEST PT)", 50, -1, 1);
00551 m_b0_charge_pos = new TH1F("b0_charge_pos", "BBAR JET CHARGE (POS, HIGHEST PT)", 50, -1, 1);
00552 m_b1_charge_neg = new TH1F("b1_charge_neg", "B JET CHARGE (NEG, NEXT TO HIGHEST PT)", 50, -1, 1);
00553 m_b1_charge_pos = new TH1F("b1_charge_pos", "BBAR JET CHARGE (POS, NEXT TO HIGHEST PT)", 50, -1, 1);
00554 h_bTag_pt= new TH1F("b_tag_pt", "RECONSTRUCTED TAGGED B JETS PT (GeV)", 40, 0, 200);
00555 h_bbarTag_pt= new TH1F("bbar_tag_pt", "RECONSTRUCTED TAGGED BBAR JETS PT (GeV)", 40, 0, 200);
00556
00557 m_b_light_charge_neg = new TH1F("b_light_charge_neg",
00558 "LIGHT JET CHARGE (NEG, HIGHEST PT, MATCH TO TRUTH B QUARK)", 50, -1, 1);
00559 m_b_light_charge_pos = new TH1F("b_light_charge_pos",
00560 "LIGHT JET CHARGE (POS, HIGHEST PT, MATCH TO TRUTH BBAR QUARK)", 50, -1, 1);
00561 m_delphi_bt_right_pos = new TH1F("delphi_bt_right_pos",
00562 "DELTA PHI (BJET-TAUJET, RIGHT COMBINATION (POSITIVE CHARGE) )", 50, 0, 3.2);
00563 m_delphi_bt_right_neg = new TH1F("delphi_bt_right_neg",
00564 "DELTA PHI (BJET-TAUJET, RIGHT COMBINATION (NEGATIVE CHARGE))", 50, 0, 3.2);
00565 m_delphi_bt_false_1st = new TH1F("delphi_bt_false_1st",
00566 "DELTA PHI (BJET-TAUJET, FALSE COMBINATION (BJET POS, TAU NEG))", 50, 0, 3.2);
00567 m_delphi_bt_false_2nd = new TH1F("delphi_bt_false_2nd",
00568 "DELTA PHI (BJET-TAUJET, FALSE COMBINATION (BJET NEG, TAU POS))", 50, 0, 3.2);
00569 m_delphi_bl_right_pos = new TH1F("delphi_bl_right_pos",
00570 "DELTA PHI (BJET-LEPTON, RIGHT COMBINATION (POSITIVE CHARGE))", 50, 0, 3.2);
00571 m_delphi_bl_right_neg = new TH1F("delphi_bl_right_neg",
00572 "DELTA PHI (BJET-LEPTON, RIGHT COMBINATION (NEGATIVE CHARGE))", 50, 0, 3.2);
00573 m_delphi_bl_false_1st = new TH1F("delphi_bl_false_1st",
00574 "DELTA PHI (BJET-LEPTON, FALSE COMBINATION (BJET POS, LEPTON NEG))", 50, 0, 3.2);
00575 m_delphi_bl_false_2nd = new TH1F("delphi_bl_false_2nd",
00576 "DELTA PHI (BJET-LEPTON, FALSE COMBINATION (BJET NEG, LEPTON POS))", 50, 0, 3.2);
00577 m_b_energy = new TH1F("b_energy", "B JETS ENERGY (GeV)", 101, -1.5, 200.5);
00578 m_b_et_in_cone = new TH1F("b_et_in_cone", "B JETS ET IN CONE (GEV)", 101, -1.5, 50.5);
00579 m_b_llh = new TH1F("b_llh", "B TAG WEIGHT (ALL)", 100, -10, 50);
00580 m_b_matched_b_llh = new TH1F("b_matched_b_llh", "B TAG WEIGHT (MATCHED B)", 100, -10, 50);
00581 m_b_matched_light_llh = new TH1F("b_matched_light_llh", "B TAG WEIGHT (MATCHED LIGHT)", 100,
00582 -10, 50);
00583 m_b_matched_truth_pt = new TH1F("b_matched_truth_pt","MATCHED RECONSTRUCTED B JETS PT (GEV)",
00584 100, 0, 200);
00585 m_b_matched_truth_eta = new TH1F("b_matched_truth_eta","MATCHED RECONSTRUCTED B JETSVS. ETA",
00586 60, -3, 3);
00587 m_b_matched_truth_phi = new TH1F("b_matched_truth_phi","MATCHED RECONSTRUCTED B JETS VS. PHI",
00588 70, -3.5, 3.5);
00589 m_b_fake_pt = new TH1F("b_fake_pt","FAKED B JETS VS. PT", 100, 0, 200);
00590 m_b_fake_eta = new TH1F("b_fake_eta","FAKED B JETS VS. ETA", 60, -3, 3);
00591 m_b_fake_phi = new TH1F("b_fake_phi","FAKED B JETS MATCH VS. PHI", 70, -3.5, 3.5);
00592 m_b_fake_charge = new TH1F("b_fake_charge", "FAKED B JET CHARGE", 100, -1, 1);
00593 m_b_fake_et_in_cone = new TH1F("b_fake_et_in_cone","FAKED B JETS VS. ET IN CONE (GEV)",
00594 100, 0, 200);
00595 m_b_faked_by_lj_pt = new TH1F("b_faked_by_lj_pt","TRUTH LIGHT JETS FAKING B JETS VS. PT", 100, 0, 200);
00596 m_b_faked_by_lj_eta = new TH1F("b_faked_by_lj_eta","TRUTH LIGHT JETS FAKING B JETS VS. ETA", 60,
00597 -3, 3);
00598 m_b_faked_by_lj_phi = new TH1F("b_faked_by_lj_phi","TRUTH LIGHT JETS FAKING B JETS VS. PHI", 70,
00599 -3.5, 3.5);
00600 m_b_faked_by_lj_llh = new TH1F("b_faked_by_lj_llh","TRUTH LIGHT JETS FAKING B JETS VS. LLH", 100,
00601 -10, 50);
00602 m_b_res_ratio_energy =new TH1F("b_res_ratio_energy", "B JETS ENERGY REC VS. TRUTH (GeV)",
00603 281, -30.5, 250.5);
00604 m_b_res_ratio_eta = new TH1F("b_res_ratio_eta", "B JET RESOLUTION ETA(REC/TRUTH)", 201, -0.5,
00605 0.5);
00606 m_b_res_ratio_phi = new TH1F("b_res_ratio_phi", "B JET RESOLUTION PHI(REC/TRUTH)", 201, -0.5,
00607 0.5);
00608 m_b_res_ratio_pt = new TH1F("b_res_ratio_pt", "B JET RESOLUTION PT(REC/TRUTH)", 201, -1.5, 1.5);
00609 m_b_res_profile_pt = new TProfile("b_res_profile_pt", "B PT RESOLUTION (PROFILE) VS PT",
00610 20,0.0,200.0,0.0,1.0,"G");
00611 m_b_res_profile_eta = new TProfile("b_res_profile_eta", "B ETA RESOLUTION (PROFILE) VS PT",
00612 20,0.0,200.0,0,1.0,"G");
00613 m_b_res_profile_phi = new TProfile("b_res_profile_phi", "B PHI RESOLUTION (PROFILE) VS PT",
00614 20,0.0,200.0,0,1.0,"G");
00615 m_light_eta = new TH1F("light_eta", "ETA OF RECONSTRUCTED LIGHT JETS / EVENT", 60, -5, 5);
00616 h_b_tag_llh = new TH1F("b_bbar_tag_llh","B TAG LIKELIHOOD",50,0,10);
00617
00618 m_t_truth_nb = new TH1F("t_truth_nb", "NUMBER OF TRUTH TAUS / EVENT", 11, -0.5, 10.5);
00619 m_t_truth_pt = new TH1F("t_truth_pt", "TAU->h nu PT (GeV)", 100, 0, 200);
00620 m_t_truth_eta = new TH1F("t_truth_eta", "TRUTH TAUS ETA ", 60, -3, 3);
00621 m_t_truth_phi = new TH1F("t_truth_phi", "TRUTH TAUS PHI ", 70, -3.5, 3.5);
00622 m_t_truth_children_id = new TH1F("t_truth_children_id","ID TRUTH TAU CHILDREN",501, -250, 250);
00623 m_t_truth_decay = new TH1F("t_truth_decay", "DECAY MODES OF TRUTH TAUS (PDGID)", 100, 0, 100);
00624 m_t_nb = new TH1F("t_nb", "NUMBER OF RECONSTRUCTED TAUS (WITHOUT ISOLATED ELECTRONS)/ EVENT",
00625 11, -0.5, 10.5);
00626 m_t_nb_tracks = new TH1F("t_nb_tracks", "NUMBER OF TRACKS OF THE TAUJET (before cuts)/ EVENT",
00627 11, -0.5, 10.5);
00628 m_t_pt = new TH1F("t_pt", "TAU PT (GeV)", 100, 0, 200);
00629 m_t_et = new TH1F("t_et", "TAU ET (GeV)", 100, 0, 200);
00630 m_t_et_corr = new TH1F("t_et_corr", "TAU ET (GeV)", 100, 0, 200);
00631 m_t_pt_corr = new TH1F("t_pt_corr", "TAU PT (GeV)", 100, 0, 200);
00632 m_t_eta = new TH1F("t_eta", "TAU ETA", 60, -3, 3);
00633 m_t_phi = new TH1F("t_phi", "TAU PHI", 70, -3.5, 3.5);
00634 m_t_mother_id = new TH1F("t_mother_id","TAU MOTHER ID",5000,0,5000);
00635 m_t_track_pt_1 = new TH1F("t_track_pt_1", "PT OF FIRST TRACK (GEV)", 100, 0, 200);
00636 m_t_track_pt_2 = new TH1F("t_track_pt_2", "PT OF SECOND TRACK (GEV)", 100, 0, 200);
00637 m_t_track_pt_3 = new TH1F("t_track_pt_3", "PT OF THIRD TRACK (GEV)", 100, 0, 200);
00638 m_t_llh = new TH1F("t_llh", "PRESELECTED TAUS", 100, -50, 50);
00639 m_t_ethadcalib = new TH1F("t_e_ethadcalib", "TAU ET_HAD_CALIB", 101,0 , 100.);
00640 m_t_etemcalib = new TH1F("t_etemcalib", "TAU ET_EM_CALIB", 101, 0, 100.);
00641 m_t_ratio = new TH1F("t_ratio", "TAU ENERGY/SUM_TRACKS_PT", 101, 0, 1);
00642 m_t_charge = new TH1F("t_charge", "TAU CHARGE", 11, -5., 5.);
00643 m_t_matched_truth_pt = new TH1F("t_matched_truth_pt","MATCHED TRUTH TAUS PT (GEV)",
00644 100, 0, 200);
00645 m_t_matched_truth_eta = new TH1F("t_matched_truth_eta","MATCHED TRUTH TAUS ETA (GEV)",
00646 60, -3, 3);
00647 m_t_matched_truth_phi = new TH1F("t_matched_truth_phi","MATCHED TRUTH TAUS PHI (GEV)",
00648 70, -3.5, 3.5);
00649 m_t_matched_re_llh = new TH1F("t_matched_re_llh","MATCHED RECONSTRUCTED TAUS",
00650 100, -50, 50);
00651 m_t_matched_re_ratio_pt = new TH1F("t_matched_re_ratio_pt",
00652 "MATCHED RECONSTRUCTED TAU ENERGY(HAD)/PT(LEADING TRACK)", 101, 0, 1);
00653 m_t_fake_pt = new TH1F("t_fake_pt","FAKED TAUS VS. PT", 100, 0, 200);
00654 m_t_fake_eta = new TH1F("t_fake_eta","FAKED TAUS VS. ETA", 60, -3, 3);
00655 m_t_fake_phi = new TH1F("t_fake_phi","FAKED TAUS VS. PHI", 70, -3.5, 3.5);
00656 m_t_fake_ratio_pt = new TH1F("t_fake_ratio_pt","FAKED TAU ENERGY(HAD)/PT(LEADING TRACK)",
00657 101, 0, 1);
00658 m_t_faked_by_lj_pt = new TH1F("t_faked_by_lj_pt","TRUTH LIGHT JETS FAKING TAUS VS. PT",
00659 100, 0, 200);
00660 m_t_faked_by_lj_eta = new TH1F("t_faked_by_lj_eta","TRUTH LIGHT JETS FAKING TAUS VS. ETA",
00661 100, -5, 5);
00662 m_t_faked_by_lj_phi = new TH1F("t_faked_by_lj_phi","TRUTH LIGHT JETS FAKING TAUS VS. PHI",
00663 70, -3.5, 3.5);
00664 m_t_faked_by_lj_llh = new TH1F("t_faked_by_lj_llh","TRUTH LIGHT JETS FAKING TAUS",
00665 100, -50, 50);
00666 m_t_faked_by_ele_pt = new TH1F("t_faked_by_ele_pt","TRUTH ELECTRONS FAKING TAUS VS. PT",
00667 100, 0, 200);
00668 m_t_faked_by_ele_eta = new TH1F("t_faked_by_ele_eta","TRUTH ELECTRONS FAKING TAUS VS. ETA",
00669 60, -3, 3);
00670 m_t_faked_by_ele_phi = new TH1F("t_faked_by_ele_phi","TRUTH ELECTRONS FAKING TAUS VS. PHI",
00671 70, -3.5, 3.5);
00672 m_t_faked_by_ele_llh = new TH1F("t_faked_by_ele_llh","TRUTH ELECTRONS FAKING TAUS",
00673 100, -50, 50);
00674 m_t_faked_by_b_pt = new TH1F("t_faked_by_b_pt","TRUTH B FAKING TAUS VS. PT",
00675 100, 0, 200);
00676 m_t_faked_by_b_eta = new TH1F("t_faked_by_b_eta","TRUTH B FAKING TAUS VS. ETA",
00677 60, -3, 3);
00678 m_t_faked_by_b_phi = new TH1F("t_faked_by_b_phi","TRUTH B FAKING TAUS VS. PHI",
00679 70, -3.5, 3.5);
00680 m_t_faked_by_b_llh = new TH1F("t_faked_by_b_llh","TRUTH B FAKING TAUS",
00681 100, -50, 50);
00682 m_t_faked_by_c_pt = new TH1F("t_faked_by_c_pt","TRUTH C FAKING TAUS VS. PT",
00683 100, 0, 200);
00684 m_t_faked_by_c_eta = new TH1F("t_faked_by_c_eta","TRUTH C FAKING TAUS VS. ETA",
00685 60, -3, 3);
00686 m_t_faked_by_c_phi = new TH1F("t_faked_by_c_phi","TRUTH C FAKING TAUS VS. PHI",
00687 70, -3.5, 3.5);
00688 m_t_faked_by_c_llh = new TH1F("t_faked_by_c_llh","TRUTH C FAKING TAUS",
00689 100, -50, 50);
00690 m_t_res_ratio_pt = new TH1F("t_res_ratio_pt", "TAU PT RESOLUTION (REC - TRUTH) (GeV)",
00691 201, -0.5, 0.5);
00692 m_t_res_ratio_pt_corr = new TH1F("t_res_ratio_pt_corr", "TAU PT RESOLUTION (REC - TRUTH) (GeV)",
00693 201, -0.5, 0.5);
00694 m_t_res_ratio_eta = new TH1F("t_res_ratio_eta", "TAU ETA RESOLUTION (REC - TRUTH) (GeV)",
00695 101, -0.5, 0.5);
00696 m_t_res_ratio_phi = new TH1F("t_res_ratio_phi", "TAU PHI RESOLUTION (REC - TRUTH) (GeV)",
00697 101, -0.5, 0.5);
00698 m_t_res_ratio_energy =new TH1F("t_res_ratio_energy", "TAU ENERGY REC VS. TRUTH (GeV)",
00699 281, -30.5, 250.5);
00700 m_t_res_profile_pt = new TProfile("t_res_profile_pt", "TAU PT RESOLUTION (PROFILE) VS PT",
00701 20,0.0,200.0,0.0,1.0,"G");
00702 m_t_res_profile_eta = new TProfile("t_res_profile_eta", "TAU ETA RESOLUTION (PROFILE) VS PT",
00703 20,0.0,200.0,0,1.0,"G");
00704 m_t_res_profile_phi = new TProfile("t_res_profile_phi", "TAU PHI RESOLUTION (PROFILE) VS PT",
00705 20,0.0,200.0,0,1.0,"G");
00706
00707
00708 m_missing_etx = new TH1F("missing_etx", "MISSING ETX (GEV)",1001,-500,500);
00709 m_truth_missing_etx = new TH1F("missing_etx_truth", "TRUTH MISSING ETX (GEV)",1001,-500,500);
00710 m_res_ratio_missing_etx = new TH1F("missing_etx_res_ratio", "RESOLUTION MISSING ETX (GEV)",
00711 1001,-500,500);
00712 m_missing_ety = new TH1F("missing_ety", "MISSING ETY (GEV)",1001,-500,500);
00713 m_truth_missing_ety = new TH1F("missing_ety_truth", "TRUTH MISSING ETY (GEV)",1001,-500,500);
00714 m_res_ratio_missing_ety = new TH1F("missing_ety_res_ratio", "RESOLUTION MISSING ETY (GEV)",
00715 1001,-500,500);
00716 m_missing_et = new TH1F("missing_et", "MISSING ET (GEV)",40,0,200);
00717 m_truth_missing_et = new TH1F("missing_et_truth", "TRUTH MISSING ET (GEV)",40,0,200);
00718 m_res_ratio_missing_et = new TH1F("missing_et_res_ratio", "RESOLUTION MISSING ET (GEV)",
00719 40,0,200);
00720 m_missing_et_sum = new TH1F("missing_et_sum", "MISSING ET SUM (GEV)",2001,0,2000);
00721 m_cutflow = new TH1F("cutflow", "CUT EVOLUTION ", 9, -0.5, 8.5);
00722
00723
00724 for (unsigned i=0;i<11;i++) {
00725 sprintf(name,"jets_pt_cut%d",i);
00726 m_jets_pt_cut[i] = new TH1F(name,"B JETS PT",40,-0.5,199.5);
00727 sprintf(name,"jets_nb_cut%d",i);
00728 m_jets_nb_cut[i] = new TH1F(name,"NUMBER OF JETS/EVENT",9,-0.5,8.5);
00729 sprintf(name,"sel_b_nb_cut%d",i);
00730 m_sel_b_nb_cut[i] = new TH1F(name,"NUMBER OF B JETS/EVENT",5,-0.5,4.5);
00731 sprintf(name,"taus_nb_cut%d",i);
00732 m_taus_nb_cut[i] = new TH1F(name,"NUMBER OF TAUS/EVENT",3,-0.5,2.5);
00733 sprintf(name,"tau_pt_cut%d",i);
00734 m_tau_pt_cut[i] = new TH1F(name,"TAU PT",40,-0.5,199.5);
00735 sprintf(name,"charge_tau_plus_lepton%d",i);
00736 m_charge_tau_plus_lepton[i] = new TH1F(name,"CHARGE TAU PLUS LEPTON",10,-5,5);
00737 sprintf(name,"missinget_cut%d",i);
00738 m_missinget_cut[i] = new TH1F(name,"ET MISS",100,-2.5,497.5);
00739 sprintf(name,"sel_lepton_pt_cut%d",i);
00740 m_sel_lepton_pt_cut[i] = new TH1F(name,"LEPTON PT",40,-0.5,199.5);
00741 sprintf(name,"sel_b_pt_cut%d",i);
00742 m_sel_b_pt_cut[i] = new TH1F(name,"B JET PT",40,-0.5,199.5);
00743 sprintf(name,"sel_lepton_nb_cut%d",i);
00744 m_sel_lepton_nb_cut[i] = new TH1F(name,"NUMBER OF LEPTONS/EVENT",4,-0.5,3.5);
00745 sprintf(name,"mass_tb%d",i);
00746 h_mass_tb[i] = new TH1F(name,"INVARIANT TAU BJET MASS", 50, 0, 200);
00747 sprintf(name,"transverse_mass_tb%d",i);
00748 h_transverse_mass_tb[i] = new TH1F(name,"TRANSVERSE MASS", 100, 0, 500);
00749 sprintf(name,"taus_llh%d",i);
00750 h_taus_llh[i] = new TH1F(name,"tau llh", 100, -50, 50);
00751 }
00752 m_trigger_histo = new TH1F("trigger", "TRIGGER ", 4, 0, 4);
00753 t_trigger_eff = new TTree("trigger_eff", "TRIGGER EFFICIENCY");
00754 t_trigger_eff->Branch("i_nb_event",&i_nb_event,"i_nb_event/I");
00755 t_trigger_eff->Branch("b_passed_event",&b_passed_event,"b_passed_event/O");
00756 t_trigger_eff->Branch("mcnlo_weight",&mcnlo_weight,"mcnlo_weight/D");
00757 h_trigger_met_ef = new TH1F("trigger_met_ef", "MET TRIGGER (EF)", 40, 0, 200);
00758 t_tau_llh = new TTree("tau_llh", "TAU LIKELIHOOD");
00759 t_tau_llh->Branch("d_tau_llh1",&d_tau_llh1,"d_tau_llh1/D" );
00760 t_tau_llh->Branch("d_tau_llh2",&d_tau_llh2,"d_tau_llh2/D" );
00761 t_tau_llh->Branch("d_tau_llh3",&d_tau_llh3,"d_tau_llh3/D" );
00762 t_tau_llh->Branch("d_tau_pt1",&d_tau_pt1,"d_tau_pt1/D" );
00763 t_tau_llh->Branch("d_tau_pt2",&d_tau_pt2,"d_tau_pt2/D" );
00764 t_tau_llh->Branch("d_tau_pt3",&d_tau_pt3,"d_tau_pt3/D" );
00765 t_tau_llh->Branch("d_tau_charge1",&d_tau_charge1,"d_tau_charge1/D" );
00766 t_tau_llh->Branch("d_tau_charge2",&d_tau_charge2,"d_tau_charge2/D" );
00767 t_tau_llh->Branch("d_tau_charge3",&d_tau_charge3,"d_tau_charge3/D" );
00768 t_tau_llh->Branch("d_lep_charge1",&d_lep_charge1,"d_lep_charge1/D" );
00769 t_tau_llh->Branch("d_lep_charge2",&d_lep_charge2,"d_lep_charge2/D" );
00770 t_tau_llh->Branch("d_lep_charge3",&d_lep_charge3,"d_lep_charge3/D" );
00771 t_tau_llh->Branch("i_nb_lep",&i_nb_lep,"i_nb_lep/I" );
00772 t_tau_llh->Branch("i_nb_tau",&i_nb_tau,"i_nb_tau/I" );
00773 t_tau_llh->Branch("d_etmiss",&d_etmiss,"d_etmiss/D" );
00774 t_tau_llh->Branch("mcnlo_weight",&mcnlo_weight,"mcnlo_weight/D" );
00775 t_jets = new TTree("jet tree", "jet tree");
00776 t_jets->Branch("i_jet_all_nb",&i_jet_all_nb,"i_jet_all_nb/I" );
00777 t_jets->Branch("d_jet_weight",&d_jet_weight,"d_jet_weight[i_jet_all_nb]/D" );
00778 t_jets->Branch("d_jet_pt",&d_jet_pt,"d_jet_pt[i_jet_all_nb]/D" );
00779 t_jets->Branch("d_jet_eta",&d_jet_eta,"d_jet_eta[i_jet_all_nb]/D" );
00780 t_jets->Branch("d_jet_phi",&d_jet_phi,"d_jet_phi[i_jet_all_nb]/D" );
00781 t_jets->Branch("d_jet_e",&d_jet_e,"d_jet_e[i_jet_all_nb]/D" );
00782 t_jets->Branch("i_jet_flavor",&i_jet_flavor,"i_jet_flavor[i_jet_all_nb]/I" );
00783 t_jets->Branch("mcnlo_weight",&mcnlo_weight,"mcnlo_weight/D" );
00784
00785
00786
00787 m_truth_mass_lt= new TH1F("truth_mass_lt", "TRUTH INVARIANT MASS (LEPTON,TAUJET)", 100, 0, 500);
00788 m_truth_mass_bt = new TH1F("truth_mass_bt", "TRUTH INVARIANT MASS(BJET(-),TAUJET)", 100, 0, 500);
00789 m_truth_delta_phi_bt = new TH1F("truth_delta_phi_bt", "TRUTH DELTA PHI(BJET,TAUJET)", 40, -3, 3);
00790 m_delphi_bt_higgsRestframe = new TH1F("delphi_bt_higgsRestframe","",40,-3,3);
00791 m_delphi_bt_tauRestframe = new TH1F("delphi_bt_tauRestframe","",40,-3,3);
00792 m_truth_delta_phi_bbart = new TH1F("truth_delta_phi_bbart", "TRUTH DELTA PHI(BBARJET,TAUJET)",
00793 40, -3, 3);
00794 m_truth_delta_phi_bbarl = new TH1F("truth_delta_phi_bbarl", "TRUTH DELTA PHI(BBARJET,LEPTON)",
00795 40, -3, 3);
00796 m_truth_delta_phi_bl = new TH1F("truth_delta_phi_bl", "TRUTH DELTA PHI(BJET,LEPTON)", 40, -3,3);
00797 h_tr_delphi_bb = new TH1F("truth_delphi_bb","TRUTH DELTA PHI BB",40,-3,3);
00798 h_weights = new TH1F("weights","weights",5,-2,2);
00799
00800 h_costheta_fake=new TH1F("costheta_tb_fake","",1000,-20,20);
00801 h_costheta_match=new TH1F("costheta_tb_match","",1000,-20,20);
00802
00803 m_c_truth_pt = new TH1F("c_truth_pt", "TRUTH C JETS PT (GeV)", 100, 0, 200);
00804 m_c_truth_eta = new TH1F("c_truth_eta", "TRUTH C JETS ETA ", 60, -3, 3);
00805 m_c_truth_phi = new TH1F("c_truth_phi", "TRUTH C JETS PHI ", 70, -3.5, 3.5);
00806 return;
00807 }
00808
00809
00810
00811
00812
00813
00814
00815
00816 std::vector<MyParticle*> MyCHiggsAnalysis::select_electrons(
00817 std::vector<MyParticle*> electron_vector, int cone,
00818 double cutvalue_iso, int m_value_isem_flag_ele, int flag) {
00819 std::vector<MyParticle*> selected_electrons(0);
00820 for (unsigned int k=0; k<electron_vector.size(); k++) {
00821 if (electron_vector[k]->type()=="truth_particle") {
00822 if(((MyTruthParticle*)electron_vector[k])->status() == 1 )
00823 selected_electrons.push_back( electron_vector[k] );
00824 }
00825 else {
00826 if (flag==-1)
00827 selected_electrons.push_back(electron_vector[k]);
00828 if (flag==0)
00829 if((((MyElectron*)electron_vector[k])->Et_in_cone(cone))<cutvalue_iso &&
00830 (((MyElectron*)electron_vector[k])->is_em() & m_value_isem_flag_ele)==0)
00831 selected_electrons.push_back(electron_vector[k]);
00832 if (flag==1)
00833 if((((MyElectron*)electron_vector[k])->trackIsolationEnergy(cone))<cutvalue_iso &&
00834 (((MyElectron*)electron_vector[k])->is_em() & m_value_isem_flag_ele)==0)
00835 selected_electrons.push_back(electron_vector[k]);
00836 }
00837 }
00838 return selected_electrons;
00839 }
00840 std::vector<MyParticle*> MyCHiggsAnalysis::select_electrons(std::vector<MyParticle*>
00841 electron_vector) {
00842 return select_electrons(electron_vector,-1,-1,-1,-1);
00843 }
00844
00845
00846
00847
00848
00849
00850
00851 std::vector<MyParticle*> MyCHiggsAnalysis::select_muons(
00852 std::vector<MyParticle*> muon_vector, int cone, double
00853 cutvalue_etincone, int rec_flag ){
00854 std::vector<MyParticle*> selected_muons(0);
00855 for (unsigned int k=0; k<muon_vector.size(); k++) {
00856 if (muon_vector[k]->type()=="truth_particle") {
00857 if( ((MyTruthParticle*)muon_vector[k])->status() == 1 ) selected_muons.push_back( muon_vector[k] );
00858 }
00859 else{
00860 if (rec_flag==0) {
00861 if((((MyMuon*)muon_vector[k])->Et_in_cone(cone))<cutvalue_etincone)
00862 selected_muons.push_back(muon_vector[k]);
00863 }
00864 if (rec_flag==1){
00865 if((((MyMuon*)muon_vector[k])->Et_in_cone(cone))<cutvalue_etincone &&
00866 (((MyMuon*)muon_vector[k])->reconstruction_flag()==1 ||
00867 ((MyMuon*)muon_vector[k])->reconstruction_flag()==3 ))
00868 selected_muons.push_back(muon_vector[k]);
00869 }
00870 if (rec_flag==2){
00871 if(((MyMuon*)muon_vector[k])->Et_in_cone(cone)<cutvalue_etincone &&
00872 ((MyMuon*)muon_vector[k])->reconstruction_flag()==1)
00873 selected_muons.push_back(muon_vector[k]);
00874 }
00875 if (rec_flag==3){
00876 if(((MyMuon*)muon_vector[k])->Et_in_cone(cone)<cutvalue_etincone &&
00877 (((MyMuon*)muon_vector[k])->reconstruction_flag()==1 ||
00878 ((MyMuon*)muon_vector[k])->reconstruction_flag()==2 ))
00879 selected_muons.push_back(muon_vector[k]);
00880 }
00881 if (rec_flag==-1) {
00882 selected_muons.push_back(muon_vector[k]);
00883 }
00884 }
00885 }
00886 return selected_muons;
00887 }
00888
00889 std::vector<MyParticle*> MyCHiggsAnalysis::select_muons(std::vector<MyParticle*> muon_vector) {
00890 return select_muons(muon_vector,-1,-1,-1);
00891 }
00892
00893
00894
00895
00896
00897
00898
00899 std::vector<MyParticle*> MyCHiggsAnalysis::select_b_jets( std::vector<MyParticle*>
00900 b_jets_vector){
00901 std::vector<MyParticle*> selected_b_jets(0);
00902 for (unsigned int k=0; k<b_jets_vector.size(); k++) {
00903 if (b_jets_vector[k]->type()=="truth_particle") {
00904 if (generator=="Pythia" && ((MyTruthParticle*)b_jets_vector[k])->status()==3 )
00905 selected_b_jets.push_back( b_jets_vector[k] );
00906 if (generator=="McAtNlo" || generator=="Herwig"|| generator=="Alpgen")
00907 selected_b_jets.push_back( b_jets_vector[k] );
00908 }
00909 }
00910 return selected_b_jets;
00911 }
00912
00913
00914
00915
00916
00917
00918 std::vector<MyParticle*> MyCHiggsAnalysis::select_taus(
00919 std::vector<MyParticle*> tau_vector, double cutvalue_tau_llh ){
00920 std::vector<MyParticle*> selected_taus(0);
00921 for (unsigned int k=0; k<tau_vector.size(); k++) {
00922 if (tau_vector[k]->type()=="truth_particle") {
00923 if (generator=="Pythia")
00924 if (((MyTruthParticle*)tau_vector[k])->status()==2 )
00925 selected_taus.push_back( tau_vector[k] );
00926 if (generator=="McAtNlo" || generator=="Herwig"|| generator=="Alpgen")
00927 if (((MyTruthParticle*)tau_vector[k])->status()==195 ) selected_taus.push_back( tau_vector[k] );
00928 }
00929 else if(((MyTauJet*)tau_vector[k])->llh() > cutvalue_tau_llh &&
00930 TMath::Abs(tau_vector[k]->charge())==1) selected_taus.push_back( tau_vector[k] );
00931 }
00932 return selected_taus;
00933 }
00934
00935
00936
00937
00938
00939
00940 double MyCHiggsAnalysis::get_jet_charge(MyParticleJet* myJet) {
00941 double charge=-1111;
00942 double charge_track=0;
00943 double charge_weighted=0;
00944 double trackpt_sum=0;
00945 TVector3 mom_track;
00946 int nb_tracks = myJet->nb_tracks();
00947 TVector3 mom_jet=myJet->tlv().Vect();
00948 for (int i=0;i<nb_tracks;i++) {
00949 mom_track=myJet->tracks_tlv(i).Vect();
00950 charge_track=myJet->tracks_charge(i);
00951 charge_weighted += sqrt(mom_track * mom_jet) * charge_track;
00952 trackpt_sum += sqrt(mom_track * mom_jet);
00953 }
00954 charge = charge_weighted/trackpt_sum;
00955 if (charge==-1111) cerr << "FIXME: charge couldn't be set! <<endl" << endl;
00956 return charge;
00957 }
00958
00959
00960
00961
00962
00963
00964 double MyCHiggsAnalysis::get_llh(double d_value, TFile* f_file, char* c_histo) {
00965 TH1F* h_histo = ((TH1F*)f_file->Get(c_histo));
00966 double pdf_value = h_histo->GetBinContent(h_histo->FindBin(d_value));
00967 return pdf_value;
00968 }
00969
00970
00971
00972
00973
00974
00975
00976
00977 void MyCHiggsAnalysis::analyse_event(const MyEvent & event) {
00978
00979
00980
00981
00982 MyTruthParticleManager truth_manager = MyTruthParticleManager(event.truth_particles());
00983 if (generator=="unknown") generator="Alpgen";
00984 truth_manager.set_generator(generator);
00985 mcnlo_weight=event.event_weight();
00986 i_nb_event=event.event_number();
00987 for (unsigned int i=0;i<50;i++) {
00988 d_jet_weight[i]=0;
00989 d_jet_pt[i]=0;
00990 d_jet_eta[i]=0;
00991 d_jet_phi[i]=0;
00992 d_jet_e[i]=0;
00993 i_jet_flavor[i]=0;
00994 }
00995
00996
00997
00998 vector<MyParticle*> truth_electrons(0);
00999 vector<MyParticle*> truth_electrons_from_b(0);
01000 vector<MyParticle*> tmp_truth_electrons = truth_manager.getParticles_with_ID(11);
01001 for (unsigned int k=0; k<tmp_truth_electrons.size(); k++){
01002 if (truth_manager.get_mother((MyTruthParticle*)tmp_truth_electrons[k])!=NULL ) {
01003 MyTruthParticle* mother1=truth_manager.get_mother((MyTruthParticle*)tmp_truth_electrons[k]);
01004 m_e_mother_id->Fill(mother1->pdgId(),mcnlo_weight);
01005 if (TMath::Abs(mother1->pdgId()) < 38) truth_electrons.push_back(tmp_truth_electrons[k]);
01006 else truth_electrons_from_b.push_back(tmp_truth_electrons[k]);
01007 }
01008 }
01009 vector<MyParticle*> tr_ele = select_electrons(truth_electrons);
01010 vector<MyParticle*> presel_tr_ele =
01011 m_tools.pt_eta_cut(select_electrons(truth_electrons),10,-1,-2.5,2.5);
01012 vector<MyParticle*> tr_ele_noisol = select_electrons(truth_electrons_from_b);
01013 i_tr_ele_noisol+=tr_ele_noisol.size();
01014 i_tr_ele+=presel_tr_ele.size();
01015 i_tr_ele_all+=tr_ele.size();
01016
01017
01018
01019 vector<MyParticle*> truth_muons(0);
01020 vector<MyParticle*> truth_muons_from_b(0);
01021 vector<MyParticle*> tmp_truth_muons = truth_manager.getParticles_with_ID(13);
01022 for (unsigned int k=0; k<tmp_truth_muons.size(); k++){
01023 if (truth_manager.get_mother((MyTruthParticle*)tmp_truth_muons[k])!=NULL){
01024 MyTruthParticle* mother1=truth_manager.get_mother((MyTruthParticle*)tmp_truth_muons[k]);
01025 m_m_mother_id->Fill(TMath::Abs(mother1->pdgId()),mcnlo_weight);
01026 if (TMath::Abs(mother1->pdgId()) < 38 ) truth_muons.push_back(tmp_truth_muons[k]);
01027 else truth_muons_from_b.push_back(tmp_truth_muons[k]);
01028 }
01029 }
01030 vector<MyParticle*> tr_mu = select_muons(truth_muons);
01031 vector<MyParticle*> presel_tr_mu =
01032 m_tools.pt_eta_cut(select_muons(truth_muons),10,-1,-1*m_cutvalue_eta_muon,m_cutvalue_eta_muon);
01033 vector<MyParticle*> tr_mu_noisol = select_muons(truth_muons_from_b);
01034 i_tr_mu_all+=tr_mu.size();
01035 i_tr_mu+=presel_tr_mu.size();
01036
01037
01038
01039 vector<MyParticle*> presel_tr_leptons=m_tools.append_vector(presel_tr_ele,presel_tr_mu);
01040 vector<MyParticle*> tr_leptons=m_tools.append_vector(tr_ele,tr_mu);
01041
01042
01043
01044
01045 vector<MyParticle*> tr_tau_vis(0);
01046 vector<MyParticle*> presel_tr_tau_vis(0);
01047 vector<MyParticle*> truth_taus(0);
01048 vector<MyParticle*> tmp_truth_taus = truth_manager.getParticles_with_ID(15);
01049 for (unsigned int k=0; k<tmp_truth_taus.size(); k++){
01050 if (truth_manager.get_mother((MyTruthParticle*)tmp_truth_taus[k])!=NULL ){
01051 MyTruthParticle *mother1=truth_manager.get_mother((MyTruthParticle*)tmp_truth_taus[k]);
01052 m_t_mother_id->Fill(TMath::Abs(mother1->pdgId()),mcnlo_weight);
01053 if (TMath::Abs(mother1->pdgId()) < 38 ) {
01054 truth_taus.push_back(tmp_truth_taus[k]);
01055 }
01056 }
01057 }
01058 vector<MyParticle*> presel_tr_tau = select_taus(truth_taus);
01059 MyParticle* tmp_tau;
01060 for (unsigned int k=0; k<presel_tr_tau.size(); k++) {
01061 int n_e=0;
01062 int n_m=0;
01063 int n_t=0;
01064 int n_nu_e=0;
01065 int n_nu_m=0;
01066 int n_nu_t=0;
01067 int n_had=0;
01068 TLorentzVector nu_t_tlv, nu_e_tlv, nu_m_tlv;
01069 nu_e_tlv.SetPxPyPzE(0,0,0,0);
01070 nu_m_tlv.SetPxPyPzE(0,0,0,0);
01071 nu_t_tlv.SetPxPyPzE(0,0,0,0);
01072 vector<MyTruthParticle*> tmp_t_truth_children = truth_manager.get_children((MyTruthParticle*)presel_tr_tau[k]);
01073 for (unsigned int kk=0; kk<tmp_t_truth_children.size();kk++) {
01074 m_t_truth_children_id->Fill(tmp_t_truth_children[kk]->pdgId(),mcnlo_weight);
01075 if (TMath::Abs(tmp_t_truth_children[kk]->pdgId())==11 ) n_e++;
01076 if (TMath::Abs(tmp_t_truth_children[kk]->pdgId())==13 ) n_m++;
01077 if (TMath::Abs(tmp_t_truth_children[kk]->pdgId())==15 ) n_t++;
01078 if (TMath::Abs(tmp_t_truth_children[kk]->pdgId())==12 ){
01079 n_nu_e++;
01080 nu_e_tlv=tmp_t_truth_children[kk]->tlv();
01081 }
01082 if (TMath::Abs(tmp_t_truth_children[kk]->pdgId())==14) {
01083 n_nu_m++;
01084 nu_m_tlv=tmp_t_truth_children[kk]->tlv();
01085 }
01086 if (TMath::Abs(tmp_t_truth_children[kk]->pdgId())==16){
01087 n_nu_t++;
01088 nu_t_tlv=tmp_t_truth_children[kk]->tlv();
01089 }
01090 if (TMath::Abs(tmp_t_truth_children[kk]->pdgId())>100 ||
01091 TMath::Abs(tmp_t_truth_children[kk]->pdgId())==24)
01092 n_had++;
01093 }
01094 if (n_e==1&& n_nu_e==1 && n_nu_t==1) m_t_truth_decay->Fill(11,mcnlo_weight);
01095 else if (n_m==1&& n_nu_m==1 && n_nu_t==1) m_t_truth_decay->Fill(13,mcnlo_weight);
01096 else if (n_had>0&& n_nu_t==1) m_t_truth_decay->Fill(100,mcnlo_weight);
01097 else m_t_truth_decay->Fill(0.0,mcnlo_weight);
01098 if (n_t>0) m_t_truth_decay->Fill(15,mcnlo_weight);
01099 if (n_nu_e == 0 && n_nu_m==0 && n_nu_t==1) {
01100 TLorentzVector test;
01101 tmp_tau=((MyTauJet*)presel_tr_tau[k])->Clone();
01102 v_garbage.push_back(tmp_tau);
01103 test=(presel_tr_tau[k]->tlv()-nu_t_tlv);
01104 tmp_tau->set_tlv(test);
01105 tr_tau_vis.push_back(tmp_tau);
01106 tau_nu_ratio->Fill(nu_t_tlv.Pt()/presel_tr_tau[k]->tlv().Pt(),mcnlo_weight);
01107 }
01108 }
01109 presel_tr_tau_vis = m_tools.pt_eta_cut(tr_tau_vis,20,-1,-2.5,2.5);
01110 i_tr_tau_all_nb+=tmp_truth_taus.size();
01111 i_tr_tau_id1_nb+=truth_taus.size();
01112 i_tr_tau_id2_nb+=presel_tr_tau.size();
01113 i_tr_tau_nb+=presel_tr_tau_vis.size();
01114
01115
01116
01117 vector<MyParticle*> truth_bs(0);
01118 vector<MyParticle*> tmp_truth_bs = truth_manager.getParticles_with_ID(5);
01119 for (unsigned int k=0; k<tmp_truth_bs.size(); k++){
01120 if (truth_manager.get_mother((MyTruthParticle*)tmp_truth_bs[k])!=NULL &&
01121 TMath::Abs(truth_manager.get_mother((MyTruthParticle*)tmp_truth_bs[k])->pdgId())==6 ){
01122 truth_bs.push_back(tmp_truth_bs[k]);
01123 }
01124 }
01125 vector<MyParticle*> presel_tr_b = m_tools.pt_eta_cut(select_b_jets(truth_bs),20,-1,-2.5,2.5);
01126 vector<MyParticle*> tr_b = select_b_jets(truth_bs);
01127 presel_tr_b = m_tools.sort_particles(presel_tr_b);
01128 vector<MyParticle*> tr_light_quarks(0);
01129 vector<MyParticle*> tr_c(0);
01130
01131 vector<MyParticle*> tmp_truth_ws = truth_manager.getParticles_with_ID(24);
01132 for (unsigned int j=0;j<tmp_truth_ws.size();j++) {
01133 vector<MyTruthParticle*> ws_children = truth_manager.get_children((MyTruthParticle*)tmp_truth_ws[j]);
01134 for (unsigned int i=0;i<ws_children.size();i++) {
01135 if (TMath::Abs(ws_children[i]->pdgId())<5) tr_light_quarks.push_back(ws_children[i]);
01136 if (TMath::Abs(ws_children[i]->pdgId())==4)
01137 tr_c.push_back(ws_children[i]);
01138 }
01139 }
01140 vector<MyParticle*> presel_tr_quarks = m_tools.append_vector(tr_light_quarks, presel_tr_b);
01141 vector<MyParticle*> presel_tr_c = m_tools.pt_eta_cut(tr_c,20,-1,-5,5);
01142 presel_tr_quarks = m_tools.append_vector(presel_tr_quarks, presel_tr_tau_vis);
01143 i_tr_b_all_nb+=tmp_truth_bs.size();
01144 i_tr_b_id1_nb+=truth_bs.size();
01145 i_tr_b_id2_nb+=tr_b.size();
01146 i_tr_b_nb+=presel_tr_b.size();
01147
01148
01149
01150
01151
01152
01153 vector<MyParticle*> tr_jets = m_tools.remove_overlap( event.truth_jets(), tr_ele, 0.25);
01154 tr_jets = m_tools.remove_overlap(tr_jets, tr_mu, 0.25);
01155 vector<MyParticle*> tr_jets_notau = m_tools.remove_overlap(tr_jets,
01156 tr_tau_vis, 0.25);
01157 vector<MyParticle*> tr_lj = m_tools.remove_overlap(tr_jets_notau,
01158 tr_b, 0.25);
01159 vector<MyParticle*> presel_tr_jets_notau = m_tools.pt_eta_cut(tr_jets_notau,20,-1,-5,5);
01160 vector<MyParticle*> presel_tr_jets = m_tools.pt_eta_cut(tr_jets,20,-1,-5,5);
01161 vector<MyParticle*> presel_tr_lj = m_tools.pt_eta_cut(tr_jets,20,-1,-5,5);
01162 i_tr_jet_all_nb+=event.truth_jets().size();
01163 i_tr_jet_ov_nb+=tr_jets.size();
01164 i_tr_jet_nb+=presel_tr_jets.size();
01165
01166
01167
01168 vector<MyParticle*> tmp = truth_manager.getParticles_with_ID(37);
01169 MyParticle* tr_chiggs;
01170 for (unsigned int i=0;i<tmp.size();i++){
01171 if (((MyTruthParticle*)tmp[i])->status() == 3) {tr_chiggs=tmp[i];
01172 }}
01173
01174
01175
01176
01177 TLorentzVector v_missing_et;
01178 if (!atlfast) {
01179 m_missinget=event.met_manager().get_missinget("MET_RefFinal");
01180 m_trigger_met_ef=event.met_manager().get_missinget("MET_trigger_ef");
01181 }
01182 else m_missinget=event.met_manager().get_missinget("AtlfastMissingEt");
01183
01184
01185
01186
01187 vector<MyParticle*> presel_re_mu_good_nocuts(0);
01188 vector<MyParticle*> presel_re_mu_nocuts(0);
01189 vector<MyParticle*> presel_re_mu_isem_nocuts(0);
01190 vector<MyParticle*> presel_re_mu_good(0);
01191 vector<MyParticle*> presel_re_mu(0);
01192 vector<MyParticle*> re_mu_nocuts(0);
01193 vector<MyParticle*> atlfast_mu(0);
01194 vector<MyParticle*> atlfast_mu_nocuts(0);
01195 if (!atlfast) {
01196 re_mu_nocuts = event.reco_muons("staco");
01197 presel_re_mu_isem_nocuts =
01198 select_muons(re_mu_nocuts,m_value_cone_muon,100000,m_value_rec_flag_muon);
01199 presel_re_mu_nocuts =
01200 select_muons(re_mu_nocuts,m_value_cone_muon,m_cutvalue_etincone_muon,
01201 m_value_rec_flag_muon);
01202 presel_re_mu_good_nocuts=m_tools.delete_doubles(presel_re_mu_nocuts);
01203 if (b_doSmearing_Muon||b_doScaling_minus_Muon||b_doScaling_plus_Muon||b_doKillEvents_Muon)
01204 m_systematics->apply_syst(&presel_re_mu_good_nocuts,&m_missinget,b_doSmearing_Muon,b_doScaling_minus_Muon,b_doScaling_plus_Muon,b_doKillEvents_Muon,0);
01205 presel_re_mu =
01206 m_tools.pt_eta_cut(re_mu_nocuts,10,-1,-1*m_cutvalue_eta_muon,m_cutvalue_eta_muon);
01207 presel_re_mu_good =
01208 m_tools.pt_eta_cut(presel_re_mu_good_nocuts,10,-1,-1*m_cutvalue_eta_muon,m_cutvalue_eta_muon);
01209 presel_re_mu = m_tools.sort_particles(presel_re_mu);
01210 presel_re_mu_good = m_tools.sort_particles(presel_re_mu_good);
01211 i_mu_all_nb+=event.reco_muons().size();
01212 i_mu_iso_nb+=presel_re_mu_nocuts.size();
01213 i_mu_ov_nb+=presel_re_mu_good_nocuts.size();
01214 i_mu_nb+=presel_re_mu_good.size();
01215 }
01216 else {
01217 atlfast_mu_nocuts = event.reco_muons("atlfast");
01218 atlfast_mu =
01219 m_tools.pt_eta_cut(atlfast_mu_nocuts,10,-1,-1*m_cutvalue_eta_muon,m_cutvalue_eta_muon);
01220 atlfast_mu = m_tools.sort_particles(atlfast_mu);
01221 i_mu_nb+=atlfast_mu.size();
01222 }
01223
01224
01225
01226 vector<MyParticle*> re_ele_nocuts(0);
01227 vector<MyParticle*> presel_re_ele(0);
01228 vector<MyParticle*> presel_re_ele_good(0);
01229 vector<MyParticle*> presel_re_ele_good_nocuts(0);
01230 vector<MyParticle*> presel_re_ele_trackiso(0);
01231 vector<MyParticle*> presel_re_ele_trackiso_nocuts(0);
01232 vector<MyParticle*> presel_re_ele_isem_nocuts(0);
01233 vector<MyParticle*> atlfast_ele(0);
01234 vector<MyParticle*> atlfast_ele_nocuts(0);
01235 if (!atlfast) {
01236 re_ele_nocuts = event.reco_electrons();
01237 re_ele_nocuts = m_tools.remove_overlap(re_ele_nocuts,presel_re_mu_good_nocuts,0.1);
01238 presel_re_ele_isem_nocuts =
01239 select_electrons(re_ele_nocuts, m_value_cone_ele,100000,m_value_isem_flag_ele,0);
01240 i_ele_isem_nb+=presel_re_ele_isem_nocuts.size();
01241 presel_re_ele_isem_nocuts=m_tools.delete_doubles(presel_re_ele_isem_nocuts);
01242 i_ele_dd_nb+=presel_re_ele_isem_nocuts.size();
01243 if (b_doSmearing_Ele||b_doScaling_minus_EGamma||b_doScaling_plus_EGamma||b_doKillEvents_Ele)
01244 m_systematics->apply_syst(&presel_re_ele_isem_nocuts,&m_missinget,b_doSmearing_Ele,b_doScaling_minus_EGamma,b_doScaling_plus_EGamma,b_doKillEvents_Ele,0);
01245 presel_re_ele_good_nocuts =
01246 select_electrons(presel_re_ele_isem_nocuts,
01247 m_value_cone_ele,m_cutvalue_etincone_ele,m_value_isem_flag_ele,0);
01248 presel_re_ele_trackiso_nocuts =
01249 select_electrons(presel_re_ele_isem_nocuts,
01250 m_value_cone_ele,m_cutvalue_trackiso_ele,m_value_isem_flag_ele,1);
01251 i_ele_iso_nb+=presel_re_ele_trackiso_nocuts.size();
01252 presel_re_ele = m_tools.pt_eta_cut(re_ele_nocuts,10,-1,-1*m_cutvalue_eta_ele,m_cutvalue_eta_ele);
01253 presel_re_ele_good =
01254 m_tools.pt_eta_cut(presel_re_ele_good_nocuts,10,-1,-1*m_cutvalue_eta_ele,m_cutvalue_eta_ele);
01255 presel_re_ele_trackiso =
01256 m_tools.pt_eta_cut(presel_re_ele_trackiso_nocuts,10,-1,-1*m_cutvalue_eta_ele,m_cutvalue_eta_ele);
01257 presel_re_ele_good=m_tools.sort_particles(presel_re_ele_good);
01258 i_ele_all_nb+=event.reco_electrons().size();
01259 i_ele_ov_nb+=re_ele_nocuts.size();
01260 i_ele_nb+=presel_re_ele_trackiso.size();
01261 }
01262 else {
01263 atlfast_ele_nocuts = event.reco_electrons();
01264 atlfast_ele = m_tools.pt_eta_cut(re_ele_nocuts,10,-1,-1*m_cutvalue_eta_ele,m_cutvalue_eta_ele);
01265 atlfast_ele = m_tools.sort_particles(atlfast_ele);
01266 i_ele_nb+=atlfast_ele.size();
01267
01268 }
01269
01270
01271
01272
01273 vector<MyParticle*> re_pho_nocuts(0);
01274 vector<MyParticle*> presel_re_pho_nocuts(0);
01275 if (!atlfast) {
01276 re_pho_nocuts = event.reco_photons();
01277 for (unsigned int i=0;i<re_pho_nocuts.size();i++) {
01278 if (((MyPhoton*)re_pho_nocuts[i])->is_em()==0) {
01279 presel_re_pho_nocuts.push_back(re_pho_nocuts[i]);
01280 }
01281 }
01282 presel_re_pho_nocuts=m_tools.delete_doubles(presel_re_pho_nocuts);
01283 presel_re_pho_nocuts=m_tools.remove_overlap(presel_re_pho_nocuts,presel_re_mu_good_nocuts,0.1);
01284 presel_re_pho_nocuts=m_tools.remove_overlap(presel_re_pho_nocuts,presel_re_ele_trackiso_nocuts,0.1);
01285 }
01286 if (b_doSmearing_Gamma||b_doScaling_minus_EGamma||b_doScaling_plus_EGamma)
01287 m_systematics->apply_syst(&presel_re_pho_nocuts,&m_missinget,b_doSmearing_Gamma,b_doScaling_minus_EGamma,b_doScaling_plus_EGamma,0,0);
01288
01289
01290
01291 vector<MyParticle*> presel_leptons(0);
01292 if (!atlfast) {
01293 presel_leptons = m_tools.append_vector(presel_re_ele_trackiso,presel_re_mu_good);
01294 }
01295 else {
01296 presel_leptons = m_tools.append_vector(atlfast_ele,atlfast_mu);
01297 }
01298 presel_leptons = m_tools.sort_particles(presel_leptons);
01299
01300
01301
01302
01303 vector<MyParticle*> presel_re_tau_nocuts(0);
01304 vector<MyParticle*> presel_re_tau_good_nocuts(0);
01305 vector<MyParticle*> presel_re_tau_good(0);
01306 vector<MyParticle*> v_allTauJets(0);
01307 vector<MyParticle*> v_allTauJets_tmp(0);
01308 if (!atlfast) {
01309 v_allTauJets_tmp = event.reco_taujets();
01310 MyTauJet *tmp_tau2;
01311 for (unsigned int k=0;k<v_allTauJets_tmp.size();k++) {
01312 tmp_tau2=((MyTauJet*)v_allTauJets_tmp[k])->Clone();
01313 v_garbage.push_back(tmp_tau2);
01314 TLorentzVector tau_tlv_corr;
01315 if (((MyTauJet*)v_allTauJets_tmp[k])->tlv_corr().E()>0) {
01316 tau_tlv_corr=(((MyTauJet*)v_allTauJets_tmp[k])->tlv_corr());
01317 tmp_tau2->set_tlv(tau_tlv_corr);
01318 v_allTauJets.push_back(tmp_tau2);
01319 }
01320 }
01321 presel_re_tau_nocuts =
01322 m_tools.remove_overlap(v_allTauJets, presel_re_mu_good_nocuts,0.25);
01323 presel_re_tau_nocuts = m_tools.remove_overlap(presel_re_tau_nocuts, presel_re_ele_isem_nocuts,0.25);
01324 i_tau_ov_nb+=presel_re_tau_nocuts.size();
01325 presel_re_tau_nocuts = select_taus(presel_re_tau_nocuts,m_cutvalue_tau_llh);
01326 for (unsigned int i=0; i<presel_re_tau_nocuts.size(); i++) {
01327 double ethadcalib = ((MyTauJet*)presel_re_tau_nocuts[i])->ethadcalib();
01328 double track_pt_1 = ((MyTauJet*)presel_re_tau_nocuts[i])->track_1().Pt();
01329 double track_pt_2 = ((MyTauJet*)presel_re_tau_nocuts[i])->track_2().Pt();
01330 double track_pt_3 = ((MyTauJet*)presel_re_tau_nocuts[i])->track_3().Pt();
01331 m_t_track_pt_1->Fill(track_pt_1,mcnlo_weight);
01332 m_t_track_pt_2->Fill(track_pt_2,mcnlo_weight);
01333 m_t_track_pt_3->Fill(track_pt_3,mcnlo_weight);
01334 m_t_ratio->Fill(ethadcalib/track_pt_1,mcnlo_weight);
01335 if (ethadcalib/track_pt_1>0.1) presel_re_tau_good_nocuts.push_back(presel_re_tau_nocuts[i]);
01336 }
01337 if (b_doSmearing_Tau||b_doScaling_minus_Tau||b_doScaling_plus_Tau||b_doKillEvents_Tau)
01338 m_systematics->apply_syst(&presel_re_tau_good_nocuts,&m_missinget,b_doSmearing_Tau,b_doScaling_minus_Tau,b_doScaling_plus_Tau,b_doKillEvents_Tau,0);
01339 presel_re_tau_good = m_tools.pt_eta_cut(presel_re_tau_good_nocuts,20,-1,-2.5,2.5);
01340 presel_re_tau_good=m_tools.sort_particles(presel_re_tau_good);
01341 i_tau_all_nb+=v_allTauJets.size();
01342 i_tau_id_nb+=presel_re_tau_good_nocuts.size();
01343 i_tau_nb+=presel_re_tau_good.size();
01344 }
01345 else {
01346 vector<MyParticle*> atlfast_tau = event.reco_taujets();
01347 }
01348
01349
01350
01351 vector<MyParticle*> tmp_presel_re_jets_nocuts = event.reco_jets();
01352 for (unsigned int i=0;i<tmp_presel_re_jets_nocuts.size();i++)
01353 tmp_presel_re_jets_nocuts=m_tools.remove_overlap(tmp_presel_re_jets_nocuts, presel_re_mu_good_nocuts,0.25);
01354 tmp_presel_re_jets_nocuts=m_tools.remove_overlap(tmp_presel_re_jets_nocuts,
01355 presel_re_ele_trackiso_nocuts,0.25);
01356 vector<MyParticle*> presel_re_jets_notau_nocuts = m_tools.remove_overlap(tmp_presel_re_jets_nocuts, presel_re_tau_good_nocuts,0.25);
01357
01358 m_tools.scale_b_tags(&presel_re_jets_notau_nocuts,0,d_btag_add_light_70);
01359 if (b_doSmearing_Jet||b_doScaling_minus_Jet||b_doScaling_plus_Jet)
01360 m_systematics->apply_syst(&presel_re_jets_notau_nocuts,&m_missinget,b_doSmearing_Jet,b_doScaling_minus_Jet,b_doScaling_plus_Jet,0,0);
01361 vector<MyParticle*> presel_re_jets_notau=m_tools.pt_eta_cut(presel_re_jets_notau_nocuts,20,-1,-5,5);
01362 vector<MyParticle*> presel_re_jets_nocuts=m_tools.append_vector(presel_re_jets_notau_nocuts, presel_re_tau_good_nocuts);
01363 vector<MyParticle*> presel_re_jets=m_tools.pt_eta_cut(presel_re_jets_nocuts,20,-1,-5,5);
01364 presel_re_jets=m_tools.sort_particles(presel_re_jets);
01365 i_jets_all_nb+=event.reco_jets().size();
01366 i_jets_ov_nb+=presel_re_jets_notau_nocuts.size();
01367 i_jets_nb+=presel_re_jets.size();
01368
01370
01372 if (b_doJetTree) {
01373 i_jet_all_nb=presel_re_jets_notau_nocuts.size();
01374 for (unsigned int i=0;i<presel_re_jets_notau_nocuts.size();i++) {
01375 if (i<50) {
01376 d_jet_pt[i]=presel_re_jets_notau_nocuts[i]->tlv().Pt();
01377 d_jet_eta[i]=presel_re_jets_notau_nocuts[i]->tlv().Eta();
01378 d_jet_phi[i]=presel_re_jets_notau_nocuts[i]->tlv().Phi();
01379 d_jet_e[i]=presel_re_jets_notau_nocuts[i]->tlv().E();
01380 d_jet_weight[i]=((MyParticleJet*)presel_re_jets_notau_nocuts[i])->b_tag_weight();
01381 i_jet_flavor[i]=((MyParticleJet*)presel_re_jets_notau_nocuts[i])->truth_flavour();
01382 }
01383 else cerr<<"WARNING: jet arrays too small, max_index="<<presel_re_jets_notau_nocuts.size()<<endl;
01384 }
01385 t_jets->Fill();
01386
01387 }
01388
01389
01390
01391 vector<MyParticle*> v_matched_bJets(0);
01392 vector<MyParticle*> v_matched_bJets_to_c(0);
01393 vector<MyParticle*> v_not_matched_bJets(0);
01394 vector <MyParticle*> presel_re_b_nocuts(0);
01395
01396
01397 if (b_doBtag) {
01398 m_tools.scale_b_tags(&presel_re_jets_notau_nocuts,5,d_btag_b_eff);
01399 }
01400 if (b_doLightRej60) {
01401 m_tools.scale_b_tags(&presel_re_jets_notau_nocuts,0,d_btag_add_light_60-d_btag_add_light_70);
01402 m_tools.scale_b_tags(&presel_re_jets_notau_nocuts,4,d_btag_c_eff_105);
01403 }
01404 if (b_doLightRej80) {
01405 m_tools.scale_b_tags(&presel_re_jets_notau_nocuts,0,d_btag_add_light_80-d_btag_add_light_70);
01406 m_tools.scale_b_tags(&presel_re_jets_notau_nocuts,4,d_btag_c_eff_95);
01407 }
01408 for (unsigned int i=0; i<presel_re_jets_notau_nocuts.size(); i++){
01409 if(((MyParticleJet*)presel_re_jets_notau_nocuts[i])->b_tag_weight()>m_cutvalue_b_tag_weight)
01410 presel_re_b_nocuts.push_back(presel_re_jets_notau_nocuts[i]);
01411 }
01412 MyParticle* tmp_b = NULL;
01413 if (b_doBtag_old) {
01414 m_tools.clear_vector(tr_b);
01415 for (unsigned int k=0; k<presel_re_b_nocuts.size(); k++) {
01416 tmp_b = m_tools.find_matching_particle( presel_re_b_nocuts[k],
01417 tr_b,0.25 );
01418 if(tmp_b!=NULL){
01419 v_matched_bJets.push_back(presel_re_b_nocuts[k]);
01420 }
01421 else v_not_matched_bJets.push_back(presel_re_b_nocuts[k]);
01422 }
01423 for (unsigned int k=0; k<presel_re_b_nocuts.size(); k++) {
01424 tmp_b = m_tools.find_matching_particle( presel_re_b_nocuts[k],
01425 tr_c,0.25 );
01426 if(tmp_b!=NULL){
01427 v_matched_bJets_to_c.push_back(presel_re_b_nocuts[k]);
01428 }
01429 }
01430 m_systematics->apply_syst(&v_matched_bJets,&m_missinget,0,0,0,0,b_doBtag_old);
01431 presel_re_b_nocuts.clear();
01432 presel_re_b_nocuts=m_tools.append_vector(v_matched_bJets,v_not_matched_bJets);
01433 presel_re_b_nocuts=m_tools.append_vector(presel_re_b_nocuts,v_matched_bJets_to_c);
01434 }
01435 vector<MyParticle*>
01436 presel_re_light_nocuts=m_tools.remove_overlap(presel_re_jets_notau_nocuts,presel_re_b_nocuts,0.25);
01437 vector<MyParticle*> presel_re_b=m_tools.pt_eta_cut(presel_re_b_nocuts,20,-1,-2.5,2.5);
01438 vector<MyParticle*> presel_re_jets_light=m_tools.pt_eta_cut(presel_re_light_nocuts,20,-1,-5,5);
01439 presel_re_b=m_tools.sort_particles(presel_re_b);
01440 presel_re_jets_light=m_tools.sort_particles(presel_re_jets_light);
01441 i_bjets_id_nb+=presel_re_b_nocuts.size();
01442 i_bjets_nb+=presel_re_b.size();
01443 i_light_all_nb+=presel_re_jets_light.size();
01444 i_bjets_matched+=v_matched_bJets.size();
01445
01446
01447
01448
01449 d_missing_etx=m_missinget.met_x();
01450 d_missing_ety=m_missinget.met_y();
01451 cuts_missinget=m_missinget.met();
01452 d_etmiss=m_missinget.met();
01453 v_missing_et=m_missinget.tlv();
01454
01455
01456
01457
01459
01461 m_mcnlo_weight->Fill(mcnlo_weight,1.0);
01462 if (!atlfast) {
01464
01466 for (unsigned int k=0; k<presel_re_ele_isem_nocuts.size(); k++) {
01467 if (TMath::Abs(presel_re_ele_isem_nocuts[k]->tlv().Eta())<2.5)
01468 m_e_all_pt->Fill(presel_re_ele_isem_nocuts[k]->tlv().Pt(), mcnlo_weight);
01469 if (presel_re_ele_isem_nocuts[k]->tlv().Pt()>10)
01470 m_e_all_eta->Fill(presel_re_ele_isem_nocuts[k]->tlv().Eta(), mcnlo_weight);
01471 if (presel_re_ele_isem_nocuts[k]->tlv().Pt()>10 &&
01472 TMath::Abs(presel_re_ele_isem_nocuts[k]->tlv().Eta())<2.5)
01473 m_e_all_phi->Fill(presel_re_ele_isem_nocuts[k]->tlv().Phi(), mcnlo_weight);
01474 }
01475 m_e_nb->Fill(presel_re_ele.size(), mcnlo_weight);
01476
01478
01480 for (unsigned int k=0; k<presel_re_ele_good_nocuts.size(); k++) {
01481 if (TMath::Abs(presel_re_ele_good_nocuts[k]->tlv().Eta())<2.5)
01482 m_e_good_pt->Fill(presel_re_ele_good_nocuts[k]->tlv().Pt(), mcnlo_weight);
01483 if (presel_re_ele_good_nocuts[k]->tlv().Pt()>10)
01484 m_e_good_eta->Fill(presel_re_ele_good_nocuts[k]->tlv().Eta(), mcnlo_weight);
01485 if (presel_re_ele_good_nocuts[k]->tlv().Pt()>10 &&
01486 TMath::Abs(presel_re_ele_good_nocuts[k]->tlv().Eta())<2.5)
01487 m_e_good_phi->Fill(presel_re_ele_good_nocuts[k]->tlv().Phi(), mcnlo_weight);
01488 }
01489 i_e_nb=presel_re_ele_good.size();
01490 m_e_good_nb->Fill(presel_re_ele_good.size(), mcnlo_weight);
01491
01493
01495 for (unsigned int k=0; k<presel_re_mu_nocuts.size(); k++) {
01496 if (TMath::Abs(presel_re_mu_nocuts[k]->tlv().Eta())<2.7)
01497 m_m_pt->Fill(presel_re_mu_nocuts[k]->tlv().Pt(), mcnlo_weight);
01498 if (presel_re_mu_nocuts[k]->tlv().Pt()>10)
01499 m_m_eta->Fill(presel_re_mu_nocuts[k]->tlv().Eta(), mcnlo_weight);
01500 if (presel_re_mu_nocuts[k]->tlv().Pt()>10 &&
01501 TMath::Abs(presel_re_mu_nocuts[k]->tlv().Eta())<2.7)
01502 m_m_phi->Fill(presel_re_mu_nocuts[k]->tlv().Phi(), mcnlo_weight);
01503 }
01504 m_m_nb->Fill(presel_re_mu.size(), mcnlo_weight);
01505
01507
01509 for (unsigned int k=0; k<presel_re_mu_good_nocuts.size(); k++) {
01510 if (TMath::Abs(presel_re_mu_good_nocuts[k]->tlv().Eta())<2.7)
01511 m_m_good_pt->Fill(presel_re_mu_good_nocuts[k]->tlv().Pt(), mcnlo_weight);
01512 if (presel_re_mu_good_nocuts[k]->tlv().Pt()>10)
01513 m_m_good_eta->Fill(presel_re_mu_good_nocuts[k]->tlv().Eta(), mcnlo_weight);
01514 if (presel_re_mu_good_nocuts[k]->tlv().Pt()>10 &&
01515 TMath::Abs(presel_re_mu_good_nocuts[k]->tlv().Eta())<2.7)
01516 m_m_good_phi->Fill(presel_re_mu_good_nocuts[k]->tlv().Phi(), mcnlo_weight);
01517 }
01518 i_m_nb=presel_re_mu_good.size();
01519 m_m_good_nb->Fill(presel_re_mu_good.size(), mcnlo_weight);
01520
01522
01524 for (unsigned int i=0; i<presel_re_tau_good_nocuts.size(); i++) {
01525 if (TMath::Abs(presel_re_tau_good_nocuts[i]->tlv().Eta())<2.5)
01526 m_t_pt->Fill(presel_re_tau_good_nocuts[i]->tlv().Pt(), mcnlo_weight);
01527 if ((presel_re_tau_good_nocuts[i]->tlv().Pt())>20)
01528 m_t_eta->Fill(presel_re_tau_good_nocuts[i]->tlv().Eta(), mcnlo_weight);
01529 if (presel_re_tau_good_nocuts[i]->tlv().Pt()>20 &&
01530 TMath::Abs(presel_re_tau_good_nocuts[i]->tlv().Eta())<2.5) {
01531 m_t_charge->Fill(presel_re_tau_good_nocuts[i]->charge(),mcnlo_weight);
01532 m_t_ethadcalib->Fill(((MyTauJet*)presel_re_tau_good_nocuts[i])->ethadcalib(),mcnlo_weight);
01533 m_t_etemcalib->Fill(((MyTauJet*)presel_re_tau_good_nocuts[i])->etemcalib(),mcnlo_weight);
01534 m_t_llh->Fill(((MyTauJet*)presel_re_tau_good_nocuts[i])->llh(), mcnlo_weight);
01535 m_t_phi->Fill(presel_re_tau_good_nocuts[i]->tlv().Phi(), mcnlo_weight);
01536 m_t_et->Fill(presel_re_tau_good_nocuts[i]->tlv().Et(), mcnlo_weight);
01537 }
01538 }
01539 m_t_nb->Fill(presel_re_tau_good.size(),mcnlo_weight);
01540
01542
01544 for (unsigned int k=0; k<presel_re_jets.size(); k++) {
01545 m_jet_pt->Fill(presel_re_jets[k]->tlv().Pt(), mcnlo_weight);
01546 m_jet_et->Fill(presel_re_jets[k]->tlv().Et(), mcnlo_weight);
01547 m_jet_eta->Fill(presel_re_jets[k]->tlv().Eta(), mcnlo_weight);
01548 m_jet_phi->Fill(presel_re_jets[k]->tlv().Phi(), mcnlo_weight);
01549 }
01550 i_jet_nb=presel_re_jets.size();
01551 m_jet_nb->Fill(presel_re_jets.size(), mcnlo_weight);
01552 for (unsigned int k=0; k<presel_re_jets_notau.size(); k++) {
01553 m_b_llh->Fill(((MyParticleJet*)presel_re_jets_notau[k])->b_tag_weight(), mcnlo_weight);
01554 }
01556
01558 for (unsigned int k=0; k<presel_re_b_nocuts.size(); k++) {
01559 if (TMath::Abs(presel_re_b_nocuts[k]->tlv().Eta())<2.5)
01560 m_b_pt->Fill(presel_re_b_nocuts[k]->tlv().Pt(), mcnlo_weight);
01561 if ((presel_re_b_nocuts[k]->tlv().Pt())>20)
01562 m_b_eta->Fill(presel_re_b_nocuts[k]->tlv().Eta(), mcnlo_weight);
01563 if (presel_re_b_nocuts[k]->tlv().Pt()>20 &&
01564 TMath::Abs(presel_re_b_nocuts[k]->tlv().Eta())<2.5) {
01565 m_b_phi->Fill(presel_re_b_nocuts[k]->tlv().Phi(), mcnlo_weight);
01566 m_b_energy->Fill(presel_re_b_nocuts[k]->tlv()[3], mcnlo_weight);
01567 }
01568 }
01569 i_b_nb=presel_re_b.size();
01570 i_b_all_nb+=presel_re_b.size();
01571 m_b_nb->Fill(presel_re_b.size(),mcnlo_weight);
01572 }
01573 else {
01574 for (unsigned int k=0; k<atlfast_ele_nocuts.size(); k++) {
01575 if (TMath::Abs(atlfast_ele_nocuts[k]->tlv().Eta())<2.5)
01576 m_e_good_pt->Fill(atlfast_ele_nocuts[k]->tlv().Pt(), mcnlo_weight);
01577 if (atlfast_ele_nocuts[k]->tlv().Pt()>10)
01578 m_e_good_eta->Fill(atlfast_ele_nocuts[k]->tlv().Eta(), mcnlo_weight);
01579 if (atlfast_ele_nocuts[k]->tlv().Pt()>10 &&
01580 TMath::Abs(atlfast_ele_nocuts[k]->tlv().Eta())<2.5)
01581 m_e_good_phi->Fill(atlfast_ele_nocuts[k]->tlv().Phi(), mcnlo_weight);
01582 }
01583 i_e_nb=atlfast_ele.size();
01584 m_e_good_nb->Fill(atlfast_ele.size(), mcnlo_weight);
01585 }
01587
01589 m_missing_etx->Fill(m_missinget.met_x(),mcnlo_weight);
01590 m_missing_ety->Fill(m_missinget.met_y(),mcnlo_weight);
01591 m_missing_et->Fill(m_missinget.met(),mcnlo_weight);
01592 m_missing_et_sum->Fill(m_missinget.met_sum(),mcnlo_weight);
01593 h_trigger_met_ef->Fill(m_trigger_met_ef.met(),mcnlo_weight);
01594
01595
01596
01597
01598
01600
01602 for (unsigned int k=0; k<tr_ele.size(); k++) {
01603 if (TMath::Abs(tr_ele[k]->tlv().Eta())<2.5)
01604 m_e_truth_pt->Fill(tr_ele[k]->tlv().Pt(),mcnlo_weight );
01605 if (tr_ele[k]->tlv().Pt()>10)
01606 m_e_truth_eta->Fill(tr_ele[k]->tlv().Eta(),mcnlo_weight );
01607 if (TMath::Abs(tr_ele[k]->tlv().Eta())<2.5&&tr_ele[k]->tlv().Pt()>10)
01608 m_e_truth_phi->Fill(tr_ele[k]->tlv().Phi(),mcnlo_weight );
01609 }
01610 m_e_truth_nb->Fill(presel_tr_ele.size(), mcnlo_weight);
01611
01613
01615 for (unsigned int k=0; k<tr_mu.size(); k++) {
01616 if (TMath::Abs(tr_mu[k]->tlv().Eta())<2.5)
01617 m_m_truth_pt->Fill(tr_mu[k]->tlv().Pt(),mcnlo_weight );
01618 if (tr_mu[k]->tlv().Pt()>10)
01619 m_m_truth_eta->Fill(tr_mu[k]->tlv().Eta(),mcnlo_weight );
01620 if (TMath::Abs(tr_mu[k]->tlv().Eta())<2.5&&tr_mu[k]->tlv().Pt()>10)
01621 m_m_truth_phi->Fill(tr_mu[k]->tlv().Phi(),mcnlo_weight );
01622 }
01623 m_m_truth_nb->Fill(presel_tr_mu.size(), mcnlo_weight);
01624
01626
01628 for (unsigned int k=0; k<tr_b.size(); k++) {
01629
01630 if (tr_b[k]->pdgId()==5) m_b_neg_truth_pt->Fill(tr_b[k]->tlv().Pt(),mcnlo_weight );
01631 else if (tr_b[k]->pdgId()==-5) m_b_pos_truth_pt->Fill(tr_b[k]->tlv().Pt(),mcnlo_weight );
01632 else cerr <<"Strange bquark selection"<<endl;
01633 if (tr_b[k]->tlv().Pt()>20)
01634 m_b_truth_eta->Fill(tr_b[k]->tlv().Eta(),mcnlo_weight );
01635 if (TMath::Abs(tr_b[k]->tlv().Eta())<2.5&&tr_b[k]->tlv().Pt()>20)
01636 m_b_truth_phi->Fill(tr_b[k]->tlv().Phi(),mcnlo_weight );
01637 }
01638 m_b_truth_nb->Fill(presel_tr_b.size(), mcnlo_weight);
01639
01641
01643 for (unsigned int k=0; k<presel_tr_c.size(); k++) {
01644 m_c_truth_pt->Fill(presel_tr_c[k]->tlv().Pt(),mcnlo_weight );
01645 m_c_truth_eta->Fill(presel_tr_c[k]->tlv().Eta(),mcnlo_weight );
01646 m_c_truth_phi->Fill(presel_tr_c[k]->tlv().Phi(),mcnlo_weight );
01647 }
01648
01650
01652 for (unsigned int k=0;k<presel_tr_tau_vis.size();k++){
01653 m_t_truth_pt->Fill(presel_tr_tau_vis[k]->tlv().Pt(),mcnlo_weight);
01654 m_t_truth_eta->Fill(presel_tr_tau_vis[k]->tlv().Eta(),mcnlo_weight);
01655 m_t_truth_phi->Fill(presel_tr_tau_vis[k]->tlv().Phi(),mcnlo_weight);
01656 }
01657 m_t_truth_nb->Fill(presel_tr_tau_vis.size(), mcnlo_weight);
01658
01660
01662 for (unsigned int k=0; k<tr_lj.size(); k++) {
01663 if (TMath::Abs(tr_lj[k]->tlv().Eta())<2.5)
01664 m_lj_truth_pt->Fill(tr_lj[k]->tlv().Pt(),mcnlo_weight );
01665 if (tr_lj[k]->tlv().Pt()>20)
01666 m_lj_truth_eta->Fill(tr_lj[k]->tlv().Eta(),mcnlo_weight );
01667 if (TMath::Abs(tr_lj[k]->tlv().Eta())<2.5&&tr_lj[k]->tlv().Pt()>20)
01668 m_lj_truth_phi->Fill(tr_lj[k]->tlv().Phi(),mcnlo_weight );
01669 }
01670 m_jet_truth_nb->Fill(tr_jets.size(), mcnlo_weight);
01671
01672
01674
01676 d_truth_missing_etx=event.met_manager().get_missinget("TruthMET_NonInt").met_x();
01677 d_truth_missing_ety=event.met_manager().get_missinget("TruthMET_NonInt").met_y();
01678 m_truth_missing_etx->Fill(event.met_manager().get_missinget("TruthMET_NonInt").met_x(),mcnlo_weight);
01679 m_truth_missing_ety->Fill(event.met_manager().get_missinget("TruthMET_NonInt").met_y(),mcnlo_weight);
01680 m_truth_missing_et->Fill(event.met_manager().get_missinget("TruthMET_NonInt").met(),mcnlo_weight);
01681
01682
01683
01684
01685
01686
01687 m_tools.clear_vector(presel_re_ele_good_nocuts);
01688 vector<MyParticle*> v_matched_leptons(0);
01689 for (unsigned int k=0; k<tr_ele.size(); k++) {
01690 MyParticle* tmp_electron;
01691 tmp_electron = m_tools.find_matching_particle(tr_ele[k],
01692 presel_re_ele_good_nocuts,0.1);
01693 if(tmp_electron!=NULL){
01694 if (tmp_electron->charge()==tr_ele[k]->charge())
01695 v_matched_leptons.push_back(tmp_electron);
01696 if (TMath::Abs(tr_ele[k]->tlv().Eta())<m_cutvalue_eta_ele)
01697 m_e_matched_tr_pt->Fill(tr_ele[k]->tlv().Pt(),mcnlo_weight);
01698 if (tr_ele[k]->tlv().Pt()>10)
01699 m_e_matched_tr_eta->Fill(tr_ele[k]->tlv().Eta(),mcnlo_weight);
01700 if (TMath::Abs(tr_ele[k]->tlv().Eta())<m_cutvalue_eta_ele &&
01701 tr_ele[k]->tlv().Pt()>10)
01702 m_e_matched_tr_phi->Fill(tr_ele[k]->tlv().Phi(),mcnlo_weight);
01703 }
01704 }
01705 m_tools.clear_vector(presel_re_ele_trackiso_nocuts);
01706 for (unsigned int k=0; k<tr_ele.size(); k++) {
01707 MyParticle* tmp_electron;
01708 tmp_electron = m_tools.find_matching_particle(tr_ele[k],
01709 presel_re_ele_trackiso_nocuts,0.1);
01710 if(tmp_electron!=NULL){
01711 if (TMath::Abs(tr_ele[k]->tlv().Eta())<m_cutvalue_eta_ele)
01712 m_e_matched_tr_trackiso_pt->Fill(tr_ele[k]->tlv().Pt(),mcnlo_weight);
01713 if (tr_ele[k]->tlv().Pt()>10)
01714 m_e_matched_tr_trackiso_eta->Fill(tr_ele[k]->tlv().Eta(),mcnlo_weight);
01715 if (TMath::Abs(tr_ele[k]->tlv().Eta())<m_cutvalue_eta_ele &&
01716 tr_ele[k]->tlv().Pt()>10)
01717 m_e_matched_tr_trackiso_phi->Fill(tr_ele[k]->tlv().Phi(),mcnlo_weight);
01718 m_e_res_ratio_eta->Fill((tmp_electron->tlv().Eta()-
01719 tr_ele[k]->tlv().Eta())/
01720 tr_ele[k]->tlv().Eta(),mcnlo_weight );
01721 m_e_res_ratio_phi->Fill((tmp_electron->tlv().Phi()-
01722 tr_ele[k]->tlv().Phi())/
01723 tr_ele[k]->tlv().Phi(),mcnlo_weight );
01724 m_e_res_ratio_energy->Fill(((tmp_electron->tlv()[3]-
01725 tr_ele[k]->tlv()[3]))/
01726 tr_ele[k]->tlv()[3],mcnlo_weight);
01727 m_e_res_ratio_pt->Fill(((tmp_electron->tlv().Pt()-
01728 tr_ele[k]->tlv().Pt())/
01729 tr_ele[k]->tlv().Pt()),mcnlo_weight);
01730 m_e_res_profile_pt->Fill(tmp_electron->tlv().Pt(),
01731 fabs((tmp_electron->tlv().Pt()-tr_ele[k]->tlv().Pt())/
01732 tr_ele[k]->tlv().Pt()),mcnlo_weight);
01733 m_e_res_profile_eta->Fill(tmp_electron->tlv().Pt(),
01734 fabs((tmp_electron->tlv().Eta()-tr_ele[k]->tlv().Eta())/
01735 tr_ele[k]->tlv().Eta()),mcnlo_weight);
01736 m_e_res_profile_phi->Fill(tmp_electron->tlv().Pt(),
01737 fabs((tmp_electron->tlv().Phi()-tr_ele[k]->tlv().Phi())/
01738 tr_ele[k]->tlv().Phi()),mcnlo_weight);
01739 }
01740 }
01741 m_tools.clear_vector(presel_re_ele_isem_nocuts);
01742 for (unsigned int k=0; k<tr_ele.size(); k++) {
01743 MyParticle* tmp_electron;
01744 tmp_electron = m_tools.find_matching_particle(tr_ele[k],
01745 presel_re_ele_isem_nocuts,0.1);
01746 if(tmp_electron!=NULL){
01747 if (TMath::Abs(tr_ele[k]->tlv().Eta())<m_cutvalue_eta_ele)
01748 m_e_all_matched_tr_pt->Fill(tr_ele[k]->tlv().Pt(),mcnlo_weight);
01749 if (tr_ele[k]->tlv().Pt()>10)
01750 m_e_all_matched_tr_eta->Fill(tr_ele[k]->tlv().Eta(),mcnlo_weight);
01751 if (TMath::Abs(tr_ele[k]->tlv().Eta())<m_cutvalue_eta_ele &&
01752 tr_ele[k]->tlv().Pt()>10)
01753 m_e_all_matched_tr_phi->Fill(tr_ele[k]->tlv().Phi() ,mcnlo_weight);
01754 m_e_isol_et_in_cone_0->Fill(((MyElectron*)tmp_electron)->Et_in_cone(0),mcnlo_weight);
01755 m_e_isol_et_in_cone_1->Fill(((MyElectron*)tmp_electron)->Et_in_cone(1),mcnlo_weight);
01756 m_e_isol_et_in_cone_2->Fill(((MyElectron*)tmp_electron)->Et_in_cone(2),mcnlo_weight);
01757 m_e_isol_et_in_cone_3->Fill(((MyElectron*)tmp_electron)->Et_in_cone(3),mcnlo_weight);
01758 m_e_isol_trackIsolationEnergy_0->Fill(
01759 ((MyElectron*)tmp_electron)->trackIsolationEnergy(0),mcnlo_weight);
01760 m_e_isol_trackIsolationEnergy_1->Fill(
01761 ((MyElectron*)tmp_electron)->trackIsolationEnergy(1),mcnlo_weight);
01762 m_e_isol_trackIsolationEnergy_2->Fill(
01763 ((MyElectron*)tmp_electron)->trackIsolationEnergy(2),mcnlo_weight);
01764 m_e_isol_trackIsolationEnergy_3->Fill(
01765 ((MyElectron*)tmp_electron)->trackIsolationEnergy(3),mcnlo_weight);
01766 }
01767 }
01768 m_tools.clear_vector(presel_re_ele_isem_nocuts);
01769
01770 for (unsigned int k=0; k<tr_ele_noisol.size(); k++) {
01771 MyParticle* tmp_electron;
01772 tmp_electron = m_tools.find_matching_particle(tr_ele_noisol[k],
01773 presel_re_ele_isem_nocuts,0.1);
01774 if(tmp_electron!=NULL){
01775 i_ele_match_noisol++;
01776 m_e_noisol_et_in_cone_0->Fill(((MyElectron*)tmp_electron)->Et_in_cone(0),mcnlo_weight);
01777 m_e_noisol_et_in_cone_1->Fill(((MyElectron*)tmp_electron)->Et_in_cone(1),mcnlo_weight);
01778 m_e_noisol_et_in_cone_2->Fill(((MyElectron*)tmp_electron)->Et_in_cone(2),mcnlo_weight);
01779 m_e_noisol_et_in_cone_3->Fill(((MyElectron*)tmp_electron)->Et_in_cone(3),mcnlo_weight);
01780 m_e_noisol_trackIsolationEnergy_0->Fill(
01781 ((MyElectron*)tmp_electron)->trackIsolationEnergy(0),mcnlo_weight);
01782 m_e_noisol_trackIsolationEnergy_1->Fill(
01783 ((MyElectron*)tmp_electron)->trackIsolationEnergy(1),mcnlo_weight);
01784 m_e_noisol_trackIsolationEnergy_2->Fill(
01785 ((MyElectron*)tmp_electron)->trackIsolationEnergy(2),mcnlo_weight);
01786 m_e_noisol_trackIsolationEnergy_3->Fill(
01787 ((MyElectron*)tmp_electron)->trackIsolationEnergy(3),mcnlo_weight);
01788 }
01789 }
01790
01791 m_tools.clear_vector(presel_re_mu_good);
01792 for (unsigned int k=0; k<tr_mu.size(); k++) {
01793 MyParticle* tmp_muon = NULL;
01794 tmp_muon = m_tools.find_matching_particle(tr_mu[k],
01795 presel_re_mu_good_nocuts,0.1 );
01796 if(tmp_muon!=NULL){
01797 if (tmp_muon->charge()==tr_mu[k]->charge()) {
01798 v_matched_leptons.push_back(tmp_muon);
01799 }
01800 if (((MyMuon*)tmp_muon)->reconstruction_flag()==1) {
01801 if (TMath::Abs(tr_mu[k]->tlv().Eta())<2.5)
01802 h_m_matched_tr_com_pt->Fill(tr_mu[k]->tlv().Pt() ,mcnlo_weight);
01803 if (tr_mu[k]->tlv().Pt()>10)
01804 h_m_matched_tr_com_eta->Fill(tr_mu[k]->tlv().Eta() ,mcnlo_weight);
01805 if (TMath::Abs(tr_mu[k]->tlv().Eta())<2.5 &&
01806 tr_mu[k]->tlv().Pt()>10)
01807 h_m_matched_tr_com_phi->Fill(tr_mu[k]->tlv().Phi() ,mcnlo_weight);
01808 }
01809 if (((MyMuon*)tmp_muon)->reconstruction_flag()==2) {
01810 if (TMath::Abs(tr_mu[k]->tlv().Eta())<2.7)
01811 h_m_matched_tr_st_pt->Fill(tr_mu[k]->tlv().Pt() ,mcnlo_weight);
01812 if (tr_mu[k]->tlv().Pt()>10)
01813 h_m_matched_tr_st_eta->Fill(tr_mu[k]->tlv().Eta() ,mcnlo_weight);
01814 if (TMath::Abs(tr_mu[k]->tlv().Eta())<2.7 &&
01815 tr_mu[k]->tlv().Pt()>10)
01816 h_m_matched_tr_st_phi->Fill(tr_mu[k]->tlv().Phi() ,mcnlo_weight);
01817 }
01818 if (TMath::Abs(tr_mu[k]->tlv().Eta())<2.7 &&
01819 tr_mu[k]->tlv().Pt()>10) {
01820 m_m_res_ratio_pt->Fill((tmp_muon->tlv().Pt()-tr_mu[k]->tlv().Pt())/
01821 tr_mu[k]->tlv().Pt(),mcnlo_weight);
01822 m_m_res_ratio_eta->Fill((tmp_muon->tlv().Eta()-tr_mu[k]->tlv().Eta())/
01823 tr_mu[k]->tlv().Eta(),mcnlo_weight);
01824 m_m_res_ratio_phi->Fill((tmp_muon->tlv().Phi()-tr_mu[k]->tlv().Phi())/
01825 tr_mu[k]->tlv().Phi(),mcnlo_weight);
01826 m_m_res_ratio_energy->Fill((tmp_muon->tlv()[3]-tr_mu[k]->tlv()[3])/
01827 tr_mu[k]->tlv()[3],mcnlo_weight);
01828 m_m_res_profile_pt->Fill(tmp_muon->tlv().Pt(),
01829 fabs((tmp_muon->tlv().Pt()-tr_mu[k]->tlv().Pt())/
01830 tr_mu[k]->tlv().Pt()),mcnlo_weight);
01831 m_m_res_profile_eta->Fill(tmp_muon->tlv().Pt(),
01832 fabs((tmp_muon->tlv().Eta()-tr_mu[k]->tlv().Eta())/
01833 tr_mu[k]->tlv().Eta()),mcnlo_weight);
01834 m_m_res_profile_phi->Fill(tmp_muon->tlv().Pt(),
01835 fabs((tmp_muon->tlv().Phi()-tr_mu[k]->tlv().Phi())/
01836 tr_mu[k]->tlv().Phi()),mcnlo_weight);
01837 }
01838 }
01839 }
01840 v_matched_leptons=m_tools.sort_particles(v_matched_leptons);
01841
01842 m_tools.clear_vector(presel_re_mu_isem_nocuts);
01843 for (unsigned int k=0; k<tr_mu.size(); k++) {
01844 MyParticle* tmp_muon;
01845 tmp_muon = m_tools.find_matching_particle(tr_mu[k],
01846 presel_re_mu_isem_nocuts,0.1);
01847 if(tmp_muon!=NULL){
01848 m_m_isol_et_in_cone_0->Fill(((MyMuon*)tmp_muon)->Et_in_cone(0),mcnlo_weight);
01849 m_m_isol_et_in_cone_1->Fill(((MyMuon*)tmp_muon)->Et_in_cone(1),mcnlo_weight);
01850 m_m_isol_et_in_cone_2->Fill(((MyMuon*)tmp_muon)->Et_in_cone(2),mcnlo_weight);
01851 m_m_isol_et_in_cone_3->Fill(((MyMuon*)tmp_muon)->Et_in_cone(3),mcnlo_weight);
01852 m_m_isol_et_in_cone_4->Fill(((MyMuon*)tmp_muon)->Et_in_cone(4),mcnlo_weight);
01853 m_m_isol_et_in_cone_5->Fill(((MyMuon*)tmp_muon)->Et_in_cone(5),mcnlo_weight);
01854 m_m_isol_et_in_cone_6->Fill(((MyMuon*)tmp_muon)->Et_in_cone(6),mcnlo_weight);
01855 m_m_isol_et_in_cone_7->Fill(((MyMuon*)tmp_muon)->Et_in_cone(7),mcnlo_weight);
01856 m_m_isol_trackIsolationEnergy_0->Fill(((MyMuon*)tmp_muon)->trackIsolationEnergy(0),mcnlo_weight);
01857 m_m_isol_trackIsolationEnergy_1->Fill(((MyMuon*)tmp_muon)->trackIsolationEnergy(1),mcnlo_weight);
01858 m_m_isol_trackIsolationEnergy_2->Fill(((MyMuon*)tmp_muon)->trackIsolationEnergy(2),mcnlo_weight);
01859 m_m_isol_trackIsolationEnergy_3->Fill(((MyMuon*)tmp_muon)->trackIsolationEnergy(3),mcnlo_weight);
01860 m_m_isol_trackIsolationEnergy_4->Fill(((MyMuon*)tmp_muon)->trackIsolationEnergy(4),mcnlo_weight);
01861 m_m_isol_trackIsolationEnergy_5->Fill(((MyMuon*)tmp_muon)->trackIsolationEnergy(5),mcnlo_weight);
01862 m_m_isol_trackIsolationEnergy_6->Fill(((MyMuon*)tmp_muon)->trackIsolationEnergy(6),mcnlo_weight);
01863 m_m_isol_trackIsolationEnergy_7->Fill(((MyMuon*)tmp_muon)->trackIsolationEnergy(7),mcnlo_weight);
01864 }
01865 }
01866 m_tools.clear_vector(presel_re_mu_isem_nocuts);
01867
01868 for (unsigned int k=0; k<tr_mu_noisol.size(); k++) {
01869 MyParticle* tmp_muon;
01870 tmp_muon = m_tools.find_matching_particle(tr_mu_noisol[k],
01871 presel_re_mu_isem_nocuts,0.1);
01872 if(tmp_muon!=NULL){
01873 }
01874 }
01875
01876 vector<MyParticle*> v_matched_taujets(0);
01877 m_tools.clear_vector(presel_re_tau_good_nocuts);
01878 for (unsigned int k=0; k<tr_tau_vis.size(); k++) {
01879 MyParticle* tmp_tau;
01880 tmp_tau = m_tools.find_matching_particle(tr_tau_vis[k],
01881 presel_re_tau_good_nocuts,0.25 );
01882 if(tmp_tau!=NULL){
01883 if (tmp_tau->charge()==tr_tau_vis[k]->charge())
01884 v_matched_taujets.push_back(tmp_tau);
01885 if (TMath::Abs(tr_tau_vis[k]->tlv().Eta())<2.5)
01886 m_t_matched_truth_pt->Fill(tr_tau_vis[k]->tlv().Pt(),mcnlo_weight);
01887 if (tr_tau_vis[k]->tlv().Pt()>20)
01888 m_t_matched_truth_eta->Fill(tr_tau_vis[k]->tlv().Eta(),mcnlo_weight);
01889 if (TMath::Abs(tr_tau_vis[k]->tlv().Eta())<2.5 &&
01890 tr_tau_vis[k]->tlv().Pt()>20) {
01891 m_t_matched_truth_phi->Fill(tr_tau_vis[k]->tlv().Phi(),mcnlo_weight);
01892 m_t_matched_re_llh->Fill(((MyTauJet*)tmp_tau)->llh(),mcnlo_weight);
01893 m_t_matched_re_ratio_pt->Fill(((MyTauJet*)tmp_tau)->ethadcalib()/
01894 ((MyTauJet*)tmp_tau)->track_1().Pt(),mcnlo_weight);
01895 m_t_res_ratio_eta->Fill((tmp_tau->tlv().Eta()-tr_tau_vis[k]->tlv().Eta())/
01896 tr_tau_vis[k]->tlv().Eta(),mcnlo_weight);
01897 m_t_res_ratio_phi->Fill((tmp_tau->tlv().Phi()-tr_tau_vis[k]->tlv().Phi())/
01898 tr_tau_vis[k]->tlv().Phi(),mcnlo_weight);
01899 m_t_res_ratio_energy->Fill((tmp_tau->tlv()[3]-tr_tau_vis[k]->tlv()[3])/
01900 tr_tau_vis[k]->tlv()[3],mcnlo_weight);
01901 m_t_res_ratio_pt->Fill((tmp_tau->tlv().Pt()-tr_tau_vis[k]->tlv().Pt())/
01902 tr_tau_vis[k]->tlv().Pt(),mcnlo_weight);
01903 m_t_res_profile_pt->Fill(tmp_tau->tlv().Pt(),
01904 fabs((tmp_tau->tlv().Pt()-tr_tau_vis[k]->tlv().Pt())/
01905 tr_tau_vis[k]->tlv().Pt()),mcnlo_weight);
01906 m_t_res_profile_eta->Fill(tmp_tau->tlv().Pt(),
01907 fabs((tmp_tau->tlv().Eta()-tr_tau_vis[k]->tlv().Eta())/
01908 tr_tau_vis[k]->tlv().Eta()),mcnlo_weight);
01909 m_t_res_profile_phi->Fill(tmp_tau->tlv().Pt(),
01910 fabs((tmp_tau->tlv().Phi()-tr_tau_vis[k]->tlv().Phi())/
01911 tr_tau_vis[k]->tlv().Phi()),mcnlo_weight);
01912 }
01913 }
01914 }
01915 v_matched_taujets=m_tools.sort_particles(v_matched_taujets);
01916
01917
01918 m_tools.clear_vector(presel_re_jets_notau);
01919 m_tools.clear_vector(tr_jets_notau);
01920 for (unsigned int k=0; k<tr_jets_notau.size(); k++) {
01921 MyParticle* tmp_jet = NULL;
01922 tmp_jet = m_tools.find_matching_particle(tr_jets_notau[k], presel_re_jets_notau,0.25 );
01923 if(tmp_jet!=NULL){
01924 m_jet_matched_truth_pt->Fill(tr_jets_notau[k]->tlv().Pt() ,mcnlo_weight);
01925 if (tmp_jet->tlv().Pt()>20)
01926 m_jet_matched_truth_eta->Fill(tr_jets_notau[k]->tlv().Eta() ,mcnlo_weight);
01927 if (tmp_jet->tlv().Pt()>20)
01928 m_jet_matched_truth_phi->Fill(tr_jets_notau[k]->tlv().Phi() ,mcnlo_weight);
01929 m_jet_res_profile_pt->Fill(tmp_jet->tlv().Pt(),
01930 fabs((tmp_jet->tlv().Pt()-tr_jets_notau[k]->tlv().Pt())/
01931 tr_jets_notau[k]->tlv().Pt()),mcnlo_weight);
01932 m_jet_res_profile_eta->Fill(tmp_jet->tlv().Pt(),
01933 fabs((tmp_jet->tlv().Eta()-tr_jets_notau[k]->tlv().Eta())/
01934 tr_jets_notau[k]->tlv().Eta()),mcnlo_weight);
01935 m_jet_res_profile_phi->Fill(tmp_jet->tlv().Pt(),
01936 fabs((tmp_jet->tlv().Phi()-tr_jets_notau[k]->tlv().Phi())/
01937 tr_jets_notau[k]->tlv().Phi()),mcnlo_weight);
01938 m_jet_res_ratio_pt->Fill((tmp_jet->tlv().Pt()-tr_jets_notau[k]->tlv().Pt())/
01939 tr_jets_notau[k]->tlv().Pt(),mcnlo_weight);
01940 m_jet_res_ratio_eta->Fill((tmp_jet->tlv().Eta()-tr_jets_notau[k]->tlv().Eta())/
01941 tr_jets_notau[k]->tlv().Eta(),mcnlo_weight);
01942 m_jet_res_ratio_phi->Fill((tmp_jet->tlv().Phi()-tr_jets_notau[k]->tlv().Phi())/
01943 tr_jets_notau[k]->tlv().Phi(),mcnlo_weight);
01944 m_jet_res_ratio_energy->Fill((tmp_jet->tlv()[3]-tr_jets_notau[k]->tlv()[3])/
01945 tr_jets_notau[k]->tlv()[3],mcnlo_weight);
01946 }
01947 }
01948
01949 m_tools.clear_vector(tr_b);
01950 m_tools.clear_vector(presel_re_b_nocuts);
01951 for (unsigned int k=0; k<tr_b.size(); k++) {
01952 MyParticle* tmp_b = NULL;
01953 tmp_b = m_tools.find_matching_particle( tr_b[k],
01954 presel_re_b_nocuts,0.25 );
01955 if(tmp_b!=NULL){
01956 if (TMath::Abs(tr_b[k]->tlv().Eta())<2.5)
01957 m_b_matched_truth_pt->Fill(tr_b[k]->tlv().Pt(),mcnlo_weight);
01958 if (tr_b[k]->tlv().Pt()>20)
01959 m_b_matched_truth_eta->Fill(tr_b[k]->tlv().Eta(),mcnlo_weight);
01960 if (TMath::Abs(tr_b[k]->tlv().Eta())<2.5 && tr_b[k]->tlv().Pt()>20) {
01961 m_b_matched_truth_phi->Fill(tr_b[k]->tlv().Phi(),mcnlo_weight);
01962 m_b_matched_b_llh->Fill(((MyParticleJet*)tmp_b)->b_tag_weight(),mcnlo_weight);
01963 m_b_res_ratio_pt->Fill((tmp_b->tlv().Pt()-tr_b[k]->tlv().Pt())/
01964 tr_b[k]->tlv().Pt(),mcnlo_weight);
01965 m_b_res_ratio_eta->Fill((tmp_b->tlv().Eta()-tr_b[k]->tlv().Eta())/
01966 tr_b[k]->tlv().Eta(),mcnlo_weight);
01967 m_b_res_ratio_phi->Fill((tmp_b->tlv().Phi()-tr_b[k]->tlv().Phi())/
01968 tr_b[k]->tlv().Phi(),mcnlo_weight);
01969 }
01970 }
01971 }
01973
01975 const vector<MyParticle*> * trigger_muon;
01976 trigger_muon=event.trigger_muon();
01977 Bool_t passed_mu40_lvl2=false;
01978 Bool_t passed_mu40_ef=false;
01979
01980 for (int j=1;j<3;j++){
01981 vector<MyParticle*> test=(trigger_muon)[j];
01982 for (unsigned int i=0;i<test.size();i++){
01983 if (test[i]->tlv().Pt()>39&&j==1) passed_mu40_lvl2=true;
01984 if (test[i]->tlv().Pt()>40&&j==2&&((MyTriggerMuon*)test[i])->code()>100) passed_mu40_ef=true;
01985 }
01986 }
01987
01988
01989
01990 MyTrigger m_trigger = event.trigger();
01991
01992 Bool_t passed_xe20=false;
01993 Bool_t passed_xe30=false;
01994 Bool_t passed_xe40=false;
01995 Bool_t passed_xe50=false;
01996 Bool_t passed_tau15i=false;
01997 Bool_t passed_tau20i=false;
01998 Bool_t passed_tau35i=false;
01999 Bool_t passed_mu20i=false;
02000 Bool_t passed_mu40=false;
02001 Bool_t passed_em25i=false;
02002 Bool_t passed_em60=false;
02003 if (m_trigger.isTriggered("L1_XE20",1)&&m_trigger_met_ef.tlv().Et()>20) passed_xe20=true;
02004 if (m_trigger.isTriggered("L1_XE30",1)&&m_trigger_met_ef.tlv().Et()>30) passed_xe30=true;
02005 if (m_trigger.isTriggered("L1_XE40",1)&&m_trigger_met_ef.tlv().Et()>40) passed_xe40=true;
02006 if (m_trigger.isTriggered("L1_XE50",1)&&m_trigger_met_ef.tlv().Et()>50) passed_xe50=true;
02007 if (m_trigger.isTriggered("L1_TAU15I",1)&&m_trigger.isTriggered("L2_tau15i",2)&&
02008 m_trigger.isTriggered("EF_tau15i",3)) passed_tau15i=true;
02009 if (m_trigger.isTriggered("L1_TAU20I",1)&&m_trigger.isTriggered("L2_tau20i",2)&&
02010 m_trigger.isTriggered("EF_tau20i",3)) passed_tau20i=true;
02011 if (m_trigger.isTriggered("L1_TAU35I",1)&&m_trigger.isTriggered("L2_tau35i",2)&&
02012 m_trigger.isTriggered("EF_tau35i",3)) passed_tau35i=true;
02013 if ((m_trigger.isTriggered("L1_MU20",1)||m_trigger.isTriggered("L1_MU40",1))&&
02014 m_trigger.isTriggered("L2_mu20i",2)&&
02015 m_trigger.isTriggered("EF_mu20i",3)) passed_mu20i=true;
02016 if (m_trigger.isTriggered("L1_EM25I",1)&&m_trigger.isTriggered("L2_e25i",2)&&
02017 m_trigger.isTriggered("EF_e25i",3)) passed_em25i=true;
02018 if (m_trigger.isTriggered("L1_EM60",1)&&m_trigger.isTriggered("L2_e60",2)&&
02019 m_trigger.isTriggered("EF_e60",3)) passed_em60=true;
02020 if (m_trigger.isTriggered("L1_MU40",1)&&passed_mu40_lvl2&&passed_mu40_ef) passed_mu40=true;
02021
02022 for (unsigned int i=0;i<5;i++) {
02023 b_trigger_ele[i]=false;
02024 b_trigger_mu[i]=false;
02025 b_trigger_tau[i]=false;
02026 b_trigger_lep[i]=false;
02027 b_trigger_and_offline_lep[i]=false;
02028 }
02029 b_trigger_ele[0]=true;
02030 b_trigger_mu[0]=true;
02031 b_trigger_tau[0]=true;
02032 b_trigger_lep[0]=true;
02033 b_trigger_and_offline_lep[0]=true;
02034 if (m_trigger.isTriggered("EF_e25i",3)) {
02035 b_trigger_ele[1]=true;
02036 b_trigger_lep[1]=true;
02037 }
02038 if (m_trigger.isTriggered("EF_mu20i",3)) {
02039 b_trigger_mu[1]=true;
02040 b_trigger_lep[1]=true;
02041 }
02042 if (m_trigger.isTriggered("EF_tau35i",3)) {
02043 b_trigger_tau[1]=true;
02044 }
02045 if (passed_em25i) {
02046 b_trigger_ele[2]=true;
02047 b_trigger_lep[2]=true;
02048 }
02049 if (passed_mu20i) {
02050 b_trigger_mu[2]=true;
02051 b_trigger_lep[2]=true;
02052 }
02053 if ((passed_tau20i && passed_xe30)||
02054 (passed_tau15i&&passed_xe20&&m_trigger.isTriggered("EF_jet20cEtEF_jet20cEtEF_jet20cEt",3))) {
02055 b_trigger_tau[2]=true;
02056 }
02057 if (passed_em60) {
02058 b_trigger_ele[3]=true;
02059 b_trigger_lep[3]=true;
02060 }
02061 if (passed_mu40) {
02062 b_trigger_mu[3]=true;
02063 b_trigger_lep[3]=true;
02064 }
02065 if (passed_tau35i&&passed_xe40&&m_trigger.isTriggered("EF_jet20cEtEF_jet20cEtEF_jet20cEt",3))
02066 {
02067 b_trigger_tau[3]=true;
02068 }
02069 if (passed_em25i&&passed_xe30) {
02070 b_trigger_ele[4]=true;
02071 b_trigger_lep[4]=true;
02072 }
02073 if (passed_mu20i&&passed_xe30) {
02074 b_trigger_mu[4]=true;
02075 b_trigger_lep[4]=true;
02076 }
02077 if ((passed_tau35i&&passed_xe50)|| (passed_tau35i&&passed_xe40&&
02078 m_trigger.isTriggered("EF_jet20cEtEF_jet20cEtEF_jet20cEt",3))) {
02079 b_trigger_tau[4]=true;
02080 }
02081 for (unsigned int i=0;i<5;i++) {
02082 if (b_trigger_ele[i]) {
02083 if (presel_re_ele_trackiso.size()>0) {
02084 if (presel_re_ele_trackiso[0]->tlv().Pt()>25 && !b_trigger_tau[i]) {
02085 b_trigger_and_offline_lep[i]=true;
02086 }
02087 }
02088 }
02089 if (b_trigger_mu[i]) {
02090 if (presel_re_mu_good.size()>0) {
02091 if (presel_re_mu_good[0]->tlv().Pt()>20 && !b_trigger_tau[i]) {
02092 b_trigger_and_offline_lep[i]=true;
02093 }
02094 }
02095 }
02096 }
02097 if (b_trigger_ele[i_trigger_menu]) {
02098 m_trigger_histo->Fill(0.0,mcnlo_weight);
02099 }
02100 if (b_trigger_mu[i_trigger_menu]) {
02101 m_trigger_histo->Fill(1.0,mcnlo_weight);
02102 }
02103 if (b_trigger_tau[i_trigger_menu]) {
02104 m_trigger_histo->Fill(2.0,mcnlo_weight);
02105 }
02106
02107
02108
02109
02110 m_tools.clear_vector(tr_b);
02111 m_tools.clear_vector(presel_re_b_nocuts);
02112 tmp_b = NULL;
02113 float bt_delphi=100;
02114 int nb_tracks;
02115 float bl_delphi=100;
02116 double tau_charge=0, lepton_charge=0;
02117 double charge, charge_weighted, trackpt_sum, charge_track;
02118 int i_t_nb=presel_re_tau_good.size();
02119 int i_lep_nb=presel_leptons.size();
02120 for (unsigned int k=0; k<presel_re_b_nocuts.size(); k++) {
02121 tmp_b = m_tools.find_matching_particle( presel_re_b_nocuts[k],
02122 tr_b,0.25 );
02123 i_bMatch_nb++;
02124 if(tmp_b!=NULL){
02125 charge=0, charge_weighted=0, trackpt_sum=0, charge_track=0;
02126 if (i_b_nb>0 && i_jet_nb>2 && i_t_nb>0 && i_lep_nb>0 &&
02127 (b_trigger_lep[i_trigger_menu] ||
02128 b_trigger_tau[i_trigger_menu] )) {
02129 i_MatchTrigger_nb++;
02130 if (tmp_b->pdgId()==5) i_bMatchTrigger_nb++;
02131 else if (tmp_b->pdgId()==-5) i_bbarMatchTrigger_nb++;
02132 else cerr<<"FIXME"<<endl;
02133 }
02134 charge = get_jet_charge((MyParticleJet*)presel_re_b_nocuts[k]);
02135 if (v_matched_taujets.size()>0) {
02136 bt_delphi=TMath::Abs(presel_re_b_nocuts[k]->tlv().DeltaPhi(v_matched_taujets[0]->tlv()));
02137 tau_charge=((MyTauJet*)v_matched_taujets[0])->charge();
02138 }
02139 if (v_matched_leptons.size()>0) {
02140 bl_delphi=TMath::Abs(presel_re_b_nocuts[k]->tlv().DeltaPhi(v_matched_leptons[0]->tlv()));
02141 lepton_charge=v_matched_leptons[0]->charge();
02142 }
02143 if (tmp_b->pdgId()==5 && tau_charge==1 )
02144 m_delphi_bt_right_pos->Fill(bt_delphi,mcnlo_weight);
02145 if (tmp_b->pdgId()==-5 && tau_charge==-1 )
02146 m_delphi_bt_right_neg->Fill(bt_delphi,mcnlo_weight);
02147 if (tmp_b->pdgId()==5 && lepton_charge==1 )
02148 m_delphi_bl_right_pos->Fill(bl_delphi,mcnlo_weight);
02149 if (tmp_b->pdgId()==-5 && lepton_charge==-1 )
02150 m_delphi_bl_right_neg->Fill(bl_delphi,mcnlo_weight);
02151 if (tmp_b->pdgId()==5 && tau_charge==-1 )
02152 m_delphi_bt_false_1st->Fill(bt_delphi,mcnlo_weight);
02153 if (tmp_b->pdgId()==-5 && tau_charge==1 )
02154 m_delphi_bt_false_2nd->Fill(bt_delphi,mcnlo_weight);
02155 if (tmp_b->pdgId()==5 && lepton_charge==-1 )
02156 m_delphi_bl_false_1st->Fill(bl_delphi,mcnlo_weight);
02157 if (tmp_b->pdgId()==-5 && lepton_charge==1 )
02158 m_delphi_bl_false_2nd->Fill(bl_delphi,mcnlo_weight);
02159 if (tmp_b->pdgId()==5 && k==0)
02160 m_b0_charge_neg->Fill(charge,mcnlo_weight);
02161 if (tmp_b->pdgId()==-5 && k==0) {
02162 m_b0_charge_pos->Fill(charge,mcnlo_weight); }
02163 if (tmp_b->pdgId()==5 && k==1) {
02164 m_b1_charge_neg->Fill(charge,mcnlo_weight); }
02165 if (tmp_b->pdgId()==-5 && k==1) {
02166 m_b1_charge_pos->Fill(charge,mcnlo_weight); }
02167 if (tmp_b->pdgId()==5) {
02168 m_b_charge_neg->Fill(charge,mcnlo_weight); }
02169 if (tmp_b->pdgId()==-5) {
02170 m_b_charge_pos->Fill(charge,mcnlo_weight); }
02171 }
02172 }
02173
02174
02175 m_tools.clear_vector(presel_re_jets_light);
02176 tmp_b = NULL;
02177 tau_charge=0, lepton_charge=0;
02178 TVector3 mom_track, mom_jet;
02179 for (unsigned int k=0; k<presel_re_jets_light.size(); k++) {
02180 charge=0, charge_weighted=0, trackpt_sum=0, charge_track=0;
02181 tmp_b = m_tools.find_matching_particle( presel_re_jets_light[k],
02182 tr_b,0.25 );
02183 if(tmp_b!=NULL){
02184 m_b_matched_light_llh->Fill(((MyParticleJet*)presel_re_jets_light[k])->b_tag_weight(),mcnlo_weight);
02185 nb_tracks = ((MyParticleJet*)presel_re_jets_light[k])->nb_tracks();
02186 mom_jet=((MyParticleJet*)presel_re_jets_light[k])->tlv().Vect();
02187 for (int i=0;i<nb_tracks;i++) {
02188 mom_track=((MyParticleJet*)presel_re_jets_light[k])->tracks_tlv(i).Vect();
02189 charge_track=((MyParticleJet*)presel_re_jets_light[k])->tracks_charge(i);
02190 charge_weighted += sqrt(mom_track * mom_jet) * charge_track;
02191 trackpt_sum += sqrt(mom_track * mom_jet);
02192 }
02193 charge = charge_weighted/trackpt_sum;
02194 if (tmp_b->pdgId()==5) {
02195 m_b_light_charge_neg->Fill(charge,mcnlo_weight);
02196 }
02197 else if (tmp_b->pdgId()==-5) {
02198 m_b_light_charge_pos->Fill(charge,mcnlo_weight);
02199 }
02200 }
02201 }
02202
02204
02206 vector<MyParticle*> v_bbarTaggedJets(0);
02207 vector<MyParticle*> v_bTaggedJets(0);
02208 vector<MyParticle*> v_bTaggedJetsMatch(0);
02209 vector<MyParticle*> v_bbarTaggedJetsMatch(0);
02210 if (!atlfast) {
02211 if (i_b_nb>0 && i_jet_nb>2 && i_t_nb>0 && i_lep_nb>0 &&
02212 (b_trigger_lep[i_trigger_menu] || b_trigger_tau[i_trigger_menu])) {
02213 i_bjet_nb++;
02214 for (unsigned int k=0; k<presel_re_b.size(); k++) {
02215 double q_jet = get_jet_charge((MyParticleJet*)presel_re_b[k]);
02216 double delphi_bt = TMath::Abs(presel_re_b[k]->tlv().DeltaPhi(presel_re_tau_good[0]->tlv()));
02217 double delphi_bl = TMath::Abs(presel_re_b[k]->tlv().DeltaPhi(presel_leptons[0]->tlv()));
02218 double llh_value[2][3];
02219 double llh_b=1;
02220 double llh_bbar=1;
02221 llh_value[0][0] = get_llh(q_jet, b_tag_llh, "b_charge_pos");
02222 llh_value[1][0] = get_llh(q_jet, b_tag_llh,"b_charge_neg");
02223 llh_value[0][1] = get_llh(delphi_bt, b_tag_llh, "delphi_bt_right_neg");
02224 llh_value[1][1] = get_llh(delphi_bt, b_tag_llh,"delphi_bt_false_2nd");
02225 llh_value[0][2] = get_llh(delphi_bl, b_tag_llh, "delphi_bl_right_neg");
02226 llh_value[1][2] = get_llh(delphi_bl, b_tag_llh,"delphi_bl_false_2nd");
02227 if (presel_re_tau_good[0]->charge()<0) {
02228 llh_b=llh_value[1][0]*llh_value[1][1];
02229 llh_bbar=llh_value[0][0]*llh_value[0][1];
02230 }
02231 else if (presel_re_tau_good[0]->charge()>0) {
02232 llh_b=llh_value[1][0]*llh_value[0][1];
02233 llh_bbar=llh_value[0][0]*llh_value[1][1];
02234 }
02235 if (llh_bbar>llh_b) {
02236 i_tryBbarTag_nb++;
02237 v_bbarTaggedJets.push_back(presel_re_b[k]);
02238 h_b_tag_llh->Fill(100000*llh_bbar,mcnlo_weight);
02239 }
02240 else if (llh_bbar<llh_b) {
02241 i_tryBTag_nb++;
02242 v_bTaggedJets.push_back(presel_re_b[k]);
02243 h_b_tag_llh->Fill(100000*llh_b,mcnlo_weight);
02244 }
02245 else if (llh_bbar==llh_b)
02246 i_noTag++;
02247 }
02248 }
02249 i_btagvector+=v_bTaggedJets.size();
02250 i_btagvector+=v_bbarTaggedJets.size();
02251 m_tools.clear_vector(tr_b);
02252 for (unsigned int k=0; k<v_bTaggedJets.size(); k++) {
02253 h_bTag_pt->Fill(v_bTaggedJets[k]->tlv().Pt(),mcnlo_weight);
02254 tmp_b = m_tools.find_matching_particle( v_bTaggedJets[k],
02255 tr_b, 0.25);
02256 if (tmp_b==NULL) i_bTagWrong_nb++;
02257 else if(tmp_b!=NULL) {
02258 if (tmp_b->charge()<0){
02259 v_bTaggedJetsMatch.push_back(v_bTaggedJets[k]);
02260 i_bTagMatch_nb++;}
02261 else if (tmp_b->charge()>0)
02262 i_bTagMatchWrong_nb++;
02263 }
02264 }
02265 for (unsigned int k=0; k<v_bbarTaggedJets.size(); k++) {
02266 h_bbarTag_pt->Fill(v_bbarTaggedJets[k]->tlv().Pt(),mcnlo_weight);
02267 tmp_b = m_tools.find_matching_particle( v_bbarTaggedJets[k],
02268 tr_b, 0.25);
02269 if (tmp_b==NULL) i_bbarTagWrong_nb++;
02270 if(tmp_b!=NULL) {
02271 if (tmp_b->charge()>0) {
02272 v_bbarTaggedJetsMatch.push_back(v_bbarTaggedJets[k]);
02273 i_bbarTagMatch_nb++;}
02274 else if (tmp_b->charge()<0)
02275 i_bbarTagMatchWrong_nb++;
02276 }
02277 }
02278 }
02279
02281
02283 vector<MyParticle*> v_faked_taujets(0);
02284 Double_t d_costheta;
02285 Double_t d_mass_tPlus_b;
02286 Double_t d_mass_tMinus_bbar;
02287 for (unsigned int i=0; i<v_faked_taujets.size();i++) {
02288 for (unsigned int k=0; k<v_bTaggedJets.size(); k++) {
02289 if (v_faked_taujets[i]->charge()>0) {
02290 d_mass_tPlus_b=(v_bTaggedJets[k]->tlv()+v_faked_taujets[i]->tlv()).M();
02291 d_costheta=(2*d_mass_tPlus_b*d_mass_tPlus_b)/(175*175-80.5*80.5)-1;
02292 h_costheta_fake->Fill(d_costheta,mcnlo_weight);
02293 }
02294 }
02295 for (unsigned int k=0; k<v_bbarTaggedJets.size(); k++) {
02296 if (v_faked_taujets[i]->charge()<0) {
02297 d_mass_tMinus_bbar=(v_bbarTaggedJets[k]->tlv()+v_faked_taujets[i]->tlv()).M();
02298 d_costheta=(2*d_mass_tMinus_bbar*d_mass_tMinus_bbar)/(175*175-80.5*80.5)-1;
02299 h_costheta_fake->Fill(d_costheta,mcnlo_weight);
02300 }
02301 }
02302 }
02303 for (unsigned int i=0; i<v_matched_taujets.size();i++) {
02304 for (unsigned int k=0; k<v_bTaggedJets.size(); k++) {
02305 if (v_matched_taujets[i]->charge()<0) {
02306 d_mass_tPlus_b=(v_bTaggedJets[k]->tlv()+v_matched_taujets[i]->tlv()).M();
02307 d_costheta=(2*d_mass_tPlus_b*d_mass_tPlus_b)/(175.*175.-80.5*80.5)-1.;
02308 h_costheta_match->Fill(d_costheta,mcnlo_weight);
02309 }
02310 }
02311 for (unsigned int k=0; k<v_bbarTaggedJets.size(); k++) {
02312 if (v_matched_taujets[i]->charge()>0) {
02313 d_mass_tMinus_bbar=(v_bbarTaggedJets[k]->tlv()+v_matched_taujets[i]->tlv()).M();
02314 d_costheta=(2*d_mass_tMinus_bbar*d_mass_tMinus_bbar)/(175*175-80.5*80.5)-1;
02315 h_costheta_match->Fill(d_costheta,mcnlo_weight);
02316 }
02317 }
02318 }
02319
02320
02321
02322
02323
02324
02325
02326
02327 m_tools.clear_vector(tr_ele);
02328 MyParticle* tmp_electron;
02329 for (unsigned int k=0; k<presel_re_ele_good_nocuts.size(); k++) {
02330 tmp_electron = m_tools.find_matching_particle(presel_re_ele_good_nocuts[k],
02331 tr_ele);
02332 if (tmp_electron==NULL) {
02333 if (TMath::Abs(presel_re_ele_good_nocuts[k]->tlv().Eta())<2.5)
02334 m_e_fake_pt->Fill(presel_re_ele_good_nocuts[k]->tlv().Pt(),mcnlo_weight);
02335 if (presel_re_ele_good_nocuts[k]->tlv().Pt()>10)
02336 m_e_fake_eta->Fill(presel_re_ele_good_nocuts[k]->tlv().Eta(),mcnlo_weight);
02337 if (presel_re_ele_good_nocuts[k]->tlv().Pt()>10 &&
02338 TMath::Abs(presel_re_ele_good_nocuts[k]->tlv().Eta())<2.5)
02339 m_e_fake_phi->Fill(presel_re_ele_good_nocuts[k]->tlv().Phi(),mcnlo_weight);
02340 }
02341 }
02342 m_tools.clear_vector(tr_ele);
02343 for (unsigned int k=0; k<presel_re_ele_trackiso_nocuts.size(); k++) {
02344 tmp_electron = m_tools.find_matching_particle(presel_re_ele_trackiso_nocuts[k],
02345 tr_ele);
02346 if (tmp_electron==NULL) {
02347 if (TMath::Abs(presel_re_ele_trackiso_nocuts[k]->tlv().Eta())<2.5)
02348 m_e_fake_trackiso_pt->Fill(presel_re_ele_trackiso_nocuts[k]->tlv().Pt(),mcnlo_weight);
02349 if (presel_re_ele_trackiso_nocuts[k]->tlv().Pt()>10)
02350 m_e_fake_trackiso_eta->Fill(presel_re_ele_trackiso_nocuts[k]->tlv().Eta(),mcnlo_weight);
02351 if (presel_re_ele_trackiso_nocuts[k]->tlv().Pt()>10 &&
02352 TMath::Abs(presel_re_ele_trackiso_nocuts[k]->tlv().Eta())<2.5)
02353 m_e_fake_trackiso_phi->Fill(presel_re_ele_trackiso_nocuts[k]->tlv().Phi(),mcnlo_weight);
02354 }
02355 }
02356 m_tools.clear_vector(tr_ele);
02357 for (unsigned int k=0; k<presel_re_ele_isem_nocuts.size(); k++) {
02358 tmp_electron = m_tools.find_matching_particle(presel_re_ele_isem_nocuts[k],
02359 tr_ele);
02360 if (tmp_electron==NULL) {
02361 if (TMath::Abs(presel_re_ele_isem_nocuts[k]->tlv().Eta())<2.5)
02362 m_e_all_fake_pt->Fill(presel_re_ele_isem_nocuts[k]->tlv().Pt(),mcnlo_weight);
02363 if (presel_re_ele_isem_nocuts[k]->tlv().Pt()>10)
02364 m_e_all_fake_eta->Fill(presel_re_ele_isem_nocuts[k]->tlv().Eta(),mcnlo_weight);
02365 if (presel_re_ele_isem_nocuts[k]->tlv().Pt()>10 &&
02366 TMath::Abs(presel_re_ele_isem_nocuts[k]->tlv().Eta())<2.5)
02367 m_e_all_fake_phi->Fill(presel_re_ele_isem_nocuts[k]->tlv().Phi(),mcnlo_weight);
02368 }
02369 }
02370
02371
02372 m_tools.clear_vector(tr_mu);
02373 for (unsigned int k=0; k<presel_re_mu_good_nocuts.size(); k++) {
02374 MyParticle* tmp_muon = NULL;
02375 tmp_muon = m_tools.find_matching_particle(presel_re_mu_good_nocuts[k], tr_mu);
02376 if (tmp_muon==NULL) {
02377 if (((MyMuon*)presel_re_mu_good_nocuts[k])->reconstruction_flag()==1) {
02378 if (TMath::Abs(presel_re_mu_good_nocuts[k]->tlv().Eta())<2.7)
02379 h_m_fake_com_pt->Fill(presel_re_mu_good_nocuts[k]->tlv().Pt(),mcnlo_weight);
02380 if (presel_re_mu_good_nocuts[k]->tlv().Pt()>10)
02381 h_m_fake_com_eta->Fill(presel_re_mu_good_nocuts[k]->tlv().Eta(),mcnlo_weight);
02382 if (presel_re_mu_good_nocuts[k]->tlv().Pt()>10 &&
02383 TMath::Abs(presel_re_mu_good_nocuts[k]->tlv().Eta())<2.7)
02384 h_m_fake_com_phi->Fill(presel_re_mu_good_nocuts[k]->tlv().Phi(),mcnlo_weight);
02385 h_m_fake_com_et_in_cone->Fill(
02386 ((MyMuon*)presel_re_mu_good_nocuts[k])->Et_in_cone(m_value_cone_muon),mcnlo_weight);
02387 }
02388 if (((MyMuon*)presel_re_mu_good_nocuts[k])->reconstruction_flag()==2) {
02389 if (TMath::Abs(presel_re_mu_good_nocuts[k]->tlv().Eta())<2.7)
02390 h_m_fake_st_pt->Fill(presel_re_mu_good_nocuts[k]->tlv().Pt(),mcnlo_weight);
02391 if (presel_re_mu_good_nocuts[k]->tlv().Pt()>10)
02392 h_m_fake_st_eta->Fill(presel_re_mu_good_nocuts[k]->tlv().Eta(),mcnlo_weight);
02393 if (presel_re_mu_good_nocuts[k]->tlv().Pt()>10 &&
02394 TMath::Abs(presel_re_mu_good_nocuts[k]->tlv().Eta())<2.7)
02395 h_m_fake_st_phi->Fill(presel_re_mu_good_nocuts[k]->tlv().Phi(),mcnlo_weight);
02396 h_m_fake_st_et_in_cone->Fill(
02397 ((MyMuon*)presel_re_mu_good_nocuts[k])->Et_in_cone(m_value_cone_muon),mcnlo_weight);
02398 }
02399 }
02400 }
02401
02402 m_tools.clear_vector(tr_tau_vis);
02403 m_tools.clear_vector(presel_re_tau_good);
02404 for (unsigned int k=0; k<presel_re_tau_good_nocuts.size(); k++) {
02405 MyParticle* tmp_tau;
02406 tmp_tau = m_tools.find_matching_particle(presel_re_tau_good_nocuts[k], tr_tau_vis,0.25);
02407 if (tmp_tau==NULL) {
02408 v_faked_taujets.push_back(presel_re_tau_good_nocuts[k]);
02409 if (TMath::Abs(presel_re_tau_good_nocuts[k]->tlv().Eta())<2.5)
02410 m_t_fake_pt->Fill(presel_re_tau_good_nocuts[k]->tlv().Pt(),mcnlo_weight);
02411 if (presel_re_tau_good_nocuts[k]->tlv().Pt()>20)
02412 m_t_fake_eta->Fill(presel_re_tau_good_nocuts[k]->tlv().Eta(),mcnlo_weight);
02413 if (presel_re_tau_good_nocuts[k]->tlv().Pt()>20 &&
02414 TMath::Abs(presel_re_tau_good_nocuts[k]->tlv().Eta())<2.5) {
02415 m_t_fake_phi->Fill(presel_re_tau_good_nocuts[k]->tlv().Phi(),mcnlo_weight);
02416 m_t_fake_ratio_pt->Fill(((MyTauJet*)presel_re_tau_good_nocuts[k])->ethadcalib()/
02417 ((MyTauJet*)presel_re_tau_good_nocuts[k])->track_1().Pt(),mcnlo_weight);
02418 }
02419 MyParticle* tmp_truth_particle = NULL;
02420 tmp_truth_particle = m_tools.find_matching_particle(presel_re_tau_good_nocuts[k],
02421 tr_lj, 0.25);
02422 if (tmp_truth_particle!=NULL) {
02423 if (TMath::Abs(presel_re_tau_good_nocuts[k]->tlv().Eta())<2.5)
02424 m_t_faked_by_lj_pt->Fill(tmp_truth_particle->tlv().Pt(),mcnlo_weight);
02425 if (presel_re_tau_good_nocuts[k]->tlv().Pt()>20)
02426 m_t_faked_by_lj_eta->Fill(tmp_truth_particle->tlv().Eta(),mcnlo_weight);
02427 if (presel_re_tau_good_nocuts[k]->tlv().Pt()>20 &&
02428 TMath::Abs(presel_re_tau_good_nocuts[k]->tlv().Eta())<2.5) {
02429 m_t_faked_by_lj_phi->Fill(tmp_truth_particle->tlv().Phi(),mcnlo_weight);
02430 m_t_faked_by_lj_llh->Fill(((MyTauJet*)presel_re_tau_good_nocuts[k])->llh(),mcnlo_weight);
02431 }
02432 }
02433 tmp_truth_particle = m_tools.find_matching_particle(presel_re_tau_good_nocuts[k],
02434 tr_ele, 0.25);
02435 if (tmp_truth_particle!=NULL) {
02436 if (TMath::Abs(presel_re_tau_good_nocuts[k]->tlv().Eta())<2.5)
02437 m_t_faked_by_ele_pt->Fill(tmp_truth_particle->tlv().Pt(),mcnlo_weight);
02438 if (presel_re_tau_good_nocuts[k]->tlv().Pt()>20)
02439 m_t_faked_by_ele_eta->Fill(tmp_truth_particle->tlv().Eta(),mcnlo_weight);
02440 if (presel_re_tau_good_nocuts[k]->tlv().Pt()>20 &&
02441 TMath::Abs(presel_re_tau_good_nocuts[k]->tlv().Eta())<2.5) {
02442 m_t_faked_by_ele_phi->Fill(tmp_truth_particle->tlv().Phi(),mcnlo_weight);
02443 m_t_faked_by_ele_llh->Fill(((MyTauJet*)presel_re_tau_good_nocuts[k])->llh(),mcnlo_weight);
02444 }
02445 }
02446 tmp_truth_particle = m_tools.find_matching_particle(presel_re_tau_good_nocuts[k],
02447 tr_b, 0.25);
02448 if (tmp_truth_particle!=NULL) {
02449 if (TMath::Abs(presel_re_tau_good_nocuts[k]->tlv().Eta())<2.5)
02450 m_t_faked_by_b_pt->Fill(tmp_truth_particle->tlv().Pt(),mcnlo_weight);
02451 if (presel_re_tau_good_nocuts[k]->tlv().Pt()>20)
02452 m_t_faked_by_b_eta->Fill(tmp_truth_particle->tlv().Eta(),mcnlo_weight);
02453 if (presel_re_tau_good_nocuts[k]->tlv().Pt()>20 &&
02454 TMath::Abs(presel_re_tau_good_nocuts[k]->tlv().Eta())<2.5) {
02455 m_t_faked_by_b_phi->Fill(tmp_truth_particle->tlv().Phi(),mcnlo_weight);
02456 m_t_faked_by_b_llh->Fill(((MyTauJet*)presel_re_tau_good_nocuts[k])->llh(),mcnlo_weight);
02457 }
02458 }
02459 tmp_truth_particle = m_tools.find_matching_particle(presel_re_tau_good_nocuts[k],
02460 tr_c, 0.25);
02461 if (tmp_truth_particle!=NULL) {
02462 if (TMath::Abs(presel_re_tau_good_nocuts[k]->tlv().Eta())<2.5)
02463 m_t_faked_by_c_pt->Fill(tmp_truth_particle->tlv().Pt(),mcnlo_weight);
02464 if (presel_re_tau_good_nocuts[k]->tlv().Pt()>20)
02465 m_t_faked_by_c_eta->Fill(tmp_truth_particle->tlv().Eta(),mcnlo_weight);
02466 if (presel_re_tau_good_nocuts[k]->tlv().Pt()>20 &&
02467 TMath::Abs(presel_re_tau_good_nocuts[k]->tlv().Eta())<2.5) {
02468 m_t_faked_by_c_phi->Fill(tmp_truth_particle->tlv().Phi(),mcnlo_weight);
02469 m_t_faked_by_c_llh->Fill(((MyTauJet*)presel_re_tau_good_nocuts[k])->llh(),mcnlo_weight);
02470 }
02471 }
02472 }
02473 }
02474
02475
02476 m_tools.clear_vector(tr_b);
02477 m_tools.clear_vector(presel_re_b_nocuts);
02478 m_tools.clear_vector(tr_lj);
02479 for (unsigned int k=0; k<presel_re_b_nocuts.size(); k++) {
02480 MyParticle* tmp_b = NULL;
02481 tmp_b = m_tools.find_matching_particle( presel_re_b_nocuts[k],
02482 tr_b,0.25 );
02483 if(tmp_b==NULL){
02484 m_b_fake_pt->Fill(presel_re_b_nocuts[k]->tlv().Pt() ,mcnlo_weight);
02485 m_b_fake_eta->Fill(presel_re_b_nocuts[k]->tlv().Eta() ,mcnlo_weight);
02486 m_b_fake_phi->Fill(presel_re_b_nocuts[k]->tlv().Phi() ,mcnlo_weight);
02487 MyParticle* tmp_truth_particle;
02488 tmp_truth_particle = m_tools.find_matching_particle(presel_re_b_nocuts[k],
02489 tr_lj, 0.25);
02490 if (tmp_truth_particle!=NULL) {
02491 if (TMath::Abs(presel_re_b_nocuts[k]->tlv().Eta())<2.5)
02492 m_b_faked_by_lj_pt->Fill(tmp_truth_particle->tlv().Pt(),mcnlo_weight);
02493 if (presel_re_b_nocuts[k]->tlv().Pt()>20)
02494 m_b_faked_by_lj_eta->Fill(tmp_truth_particle->tlv().Eta(),mcnlo_weight);
02495 if (presel_re_b_nocuts[k]->tlv().Pt()>20 &&
02496 TMath::Abs(presel_re_b_nocuts[k]->tlv().Eta())<2.5) {
02497 m_b_faked_by_lj_phi->Fill(tmp_truth_particle->tlv().Phi(),mcnlo_weight);
02498 m_b_faked_by_lj_llh->Fill(((MyParticleJet*)presel_re_b_nocuts[k])->b_tag_weight(),mcnlo_weight);
02499 }
02500 }
02501
02502 }
02503 }
02504
02505
02506 m_tools.clear_vector(tr_jets_notau);
02507 m_tools.clear_vector(presel_re_jets_notau);
02508 for (unsigned int k=0; k<presel_re_jets_notau.size(); k++) {
02509 MyParticle* tmp_jet = NULL;
02510 tmp_jet = m_tools.find_matching_particle(presel_re_jets_notau[k],
02511 tr_jets_notau,0.25 );
02512 if(tmp_jet==NULL){
02513 m_jet_fake_pt->Fill(presel_re_jets_notau[k]->tlv().Pt() ,mcnlo_weight);
02514 if (presel_re_jets_notau[k]->tlv().Pt()>20)
02515 m_jet_fake_eta->Fill(presel_re_jets_notau[k]->tlv().Eta() ,mcnlo_weight);
02516 if (presel_re_jets_notau[k]->tlv().Pt()>20)
02517 m_jet_fake_phi->Fill(presel_re_jets_notau[k]->tlv().Phi() ,mcnlo_weight);
02518 }
02519 }
02520
02521
02522
02523
02524
02525
02526
02527 Float_t truth_mass_lt=-100;
02528 Double_t delta_phi_bt=-100;
02529 Float_t truth_mass_bt=-100;
02530 Double_t delta_phi_bbart=-100;
02531 Float_t delta_phi_bbarl=-100;
02532 Float_t delta_phi_bl=-100;
02533 Float_t tr_delphi_bb=-100;
02534 if (presel_tr_leptons.size()==1 && presel_tr_tau_vis.size()==1 ) {
02535 truth_mass_lt=(presel_tr_leptons[0]->tlv()+presel_tr_tau_vis[0]->tlv()).M();
02536 }
02537 m_truth_mass_lt->Fill(truth_mass_lt,mcnlo_weight);
02538 for (unsigned int i=0;i<presel_tr_b.size();i++) {
02539 if (presel_tr_tau_vis.size()==1 && ((presel_tr_b[i]->charge()>0 &&
02540 presel_tr_tau_vis[0]->charge()==-1) || (presel_tr_b[i]->charge()<0 &&
02541 presel_tr_tau_vis[0]->charge()==1) ) ) {
02542 delta_phi_bt=presel_tr_b[i]->tlv().DeltaPhi(presel_tr_tau_vis[0]->tlv());
02543 truth_mass_bt=(presel_tr_b[i]->tlv()+presel_tr_tau_vis[0]->tlv()).M();
02544
02545 }
02546 else if (presel_tr_b[i]->charge()>0 && presel_tr_tau_vis.size()==1) {
02547 delta_phi_bbart=presel_tr_b[i]->tlv().DeltaPhi(presel_tr_tau_vis[0]->tlv());
02548 }
02549 }
02550 m_truth_delta_phi_bt->Fill(delta_phi_bt,mcnlo_weight);
02551 m_truth_delta_phi_bbart->Fill(delta_phi_bbart,mcnlo_weight);
02552 m_truth_mass_bt->Fill(truth_mass_bt,mcnlo_weight);
02553 for (unsigned int i=0;i<presel_tr_b.size();i++) {
02554 if (presel_tr_b[i]->charge()>0 && presel_tr_leptons.size()==1 ) {
02555 delta_phi_bbarl=presel_tr_b[i]->tlv().DeltaPhi(presel_tr_leptons[0]->tlv());
02556 }
02557 else if (presel_tr_b[i]->charge()<0 && presel_tr_leptons.size()==1 ) {
02558 delta_phi_bl=presel_tr_b[i]->tlv().DeltaPhi(presel_tr_leptons[0]->tlv());
02559 }
02560 }
02561 m_truth_delta_phi_bl->Fill(delta_phi_bl,mcnlo_weight);
02562 m_truth_delta_phi_bbarl->Fill(delta_phi_bbarl,mcnlo_weight);
02563
02564 if (tr_b.size()==2) {
02565 tr_delphi_bb=tr_b[0]->tlv().DeltaPhi(tr_b[1]->tlv());
02566 h_tr_delphi_bb->Fill(tr_delphi_bb,mcnlo_weight);
02567 }
02568
02569
02570
02571
02572 bool cut[8]={false,false,false,false,false,false,false,false};
02573 b_passed_event=false;
02574 for (int i=0;i<10;i++) {
02575 if (i==0 || cut[i-1]>0) {
02576 cuts_nb_jet=0;
02577 cuts_nb_tau=0;
02578 int nb_charge_tau_plus_lepton_0=0;
02579 m_sel_lepton_nb_cut[i]->Fill(presel_leptons.size(),mcnlo_weight);
02580 m_jets_nb_cut[i]->Fill(presel_re_jets.size(),mcnlo_weight);
02581 m_sel_b_nb_cut[i]->Fill(presel_re_b.size(),mcnlo_weight);
02582 m_taus_nb_cut[i]->Fill(presel_re_tau_good.size(),mcnlo_weight);
02583 m_missinget_cut[i]->Fill(cuts_missinget,mcnlo_weight);
02584 for (unsigned ii=0;
02585 ii<presel_leptons.size(); ii++) {
02586 m_sel_lepton_pt_cut[i]->Fill(presel_leptons[ii]->tlv().Pt(),mcnlo_weight);
02587 }
02588 for (unsigned ii=0; ii<presel_re_b.size(); ii++) {
02589 m_sel_b_pt_cut[i]->Fill(presel_re_b[ii]->tlv().Pt(),mcnlo_weight);
02590 }
02591 for (unsigned ii=0; ii<presel_re_jets.size(); ii++) {
02592 if (presel_re_jets[ii]->tlv().Pt()>20) cuts_nb_jet++;
02593 }
02594 for (unsigned ii=0; ii<presel_re_tau_good.size(); ii++) {
02595 if (((MyTauJet*)presel_re_tau_good[ii])->tlv().Pt()>40) cuts_nb_tau++;
02596 h_taus_llh[i]->Fill(((MyTauJet*)presel_re_tau_good[ii])->llh());
02597 }
02598 for (unsigned ii=0; ii<presel_re_b.size(); ii++) {
02599 m_jets_pt_cut[i]->Fill(presel_re_b[ii]->tlv().Pt(),mcnlo_weight);
02600 }
02601 for (unsigned ii=0; ii<presel_re_tau_good.size(); ii++) {
02602 m_tau_pt_cut[i]->Fill(((MyTauJet*)presel_re_tau_good[ii])->tlv().Pt(),mcnlo_weight);;
02603 }
02604 for (unsigned ii=0; ii<presel_re_tau_good.size(); ii++) {
02605 for (unsigned jj=0; jj<presel_leptons.size(); jj++) {
02606 double charge_tau_plus_lepton=
02607 presel_re_tau_good[ii]->charge()+presel_leptons[jj]->charge();
02608 m_charge_tau_plus_lepton[i]->Fill(charge_tau_plus_lepton,mcnlo_weight);
02609 if (charge_tau_plus_lepton==0) nb_charge_tau_plus_lepton_0++;
02610 }
02611 }
02612 if (presel_re_tau_good.size()>0) {
02613 for (unsigned int k=0; k<v_bTaggedJets.size(); k++) {
02614 if (presel_re_tau_good[0]->charge()>0)
02615 h_mass_tb[i]->Fill((v_bTaggedJets[k]->tlv()+presel_re_tau_good[0]->tlv()).M(),mcnlo_weight);
02616 }
02617 for (unsigned int k=0; k<v_bbarTaggedJets.size(); k++) {
02618 if (presel_re_tau_good[0]->charge()<0)
02619 h_mass_tb[i]->Fill((v_bbarTaggedJets[k]->tlv()+presel_re_tau_good[0]->tlv()).M(),mcnlo_weight);
02620 }
02621 transverse_mass_tb=
02622 sqrt(2*presel_re_tau_good[0]->tlv().Pt()*cuts_missinget*
02623 (1-cos(presel_re_tau_good[0]->tlv().DeltaPhi(v_missing_et))));
02624 h_transverse_mass_tb[i]->Fill(transverse_mass_tb,mcnlo_weight);
02625 }
02626 if ((b_trigger_lep[i_trigger_menu] || b_trigger_tau[i_trigger_menu]) &&
02627 i==m_cut_order_trigger) cut[m_cut_order_trigger]=true;
02628 if (presel_leptons.size()>0 &&
02629 i==m_cut_order_lepton) cut[m_cut_order_lepton]=true;
02630 if (cuts_nb_jet>2 &&
02631 i==m_cut_order_jet) cut[m_cut_order_jet]=true;
02632 if (presel_re_tau_good.size()>0 &&
02633 i==m_cut_order_tau) cut[m_cut_order_tau]=true;
02634 if (presel_re_b.size()>=1 &&
02635 i==m_cut_order_b) cut[m_cut_order_b]=true;
02636 if (cuts_nb_tau>0 && (b_trigger_tau[i_trigger_menu] || (!b_trigger_tau[i_trigger_menu]
02637 && b_trigger_and_offline_lep[i_trigger_menu])) &&
02638 i==m_cut_order_taupt)
02639 cut[m_cut_order_taupt]=true;
02640 if (nb_charge_tau_plus_lepton_0>0 &&
02641 i==m_cut_order_charge) cut[m_cut_order_charge]=true;
02642 if (cuts_missinget>m_cutvalue_etmiss &&
02643 i==m_cut_order_etmiss) cut[m_cut_order_etmiss]=true;
02644 if (i==8 && cut[7]==true) {
02645 h_weights->Fill(mcnlo_weight,1);
02646 b_passed_event=true;
02647 }
02648 m_cutflow->Fill(i,mcnlo_weight);
02649 }
02650 }
02651 t_trigger_eff->Fill();
02652 if (b_passed_event) {
02653 d_tau_llh1=100;
02654 d_tau_llh2=100;
02655 d_tau_llh3=100;
02656 d_tau_pt1=10000;
02657 d_tau_pt2=10000;
02658 d_tau_pt3=10000;
02659 d_tau_charge1=0;
02660 d_tau_charge2=0;
02661 d_tau_charge3=0;
02662 d_lep_charge1=0;
02663 d_lep_charge2=0;
02664 d_lep_charge3=0;
02665 i_nb_lep=0;
02666 i_nb_tau=0;
02667
02668 i_nb_lep=presel_leptons.size();
02669 i_nb_tau=presel_re_tau_good.size();
02670 if (presel_re_tau_good[0]!=NULL) {
02671 d_tau_llh1=(((MyTauJet*)presel_re_tau_good[0])->llh());
02672 d_tau_pt1=presel_re_tau_good[0]->tlv().Pt();
02673 d_tau_charge1=presel_re_tau_good[0]->charge();
02674 }
02675 if (presel_re_tau_good.size()>1) {
02676 d_tau_llh2=(((MyTauJet*)presel_re_tau_good[1])->llh());
02677 d_tau_pt2=presel_re_tau_good[1]->tlv().Pt();
02678 d_tau_charge2=presel_re_tau_good[1]->charge();
02679 }
02680 if (presel_re_tau_good.size()>2) {
02681 d_tau_llh3=(((MyTauJet*)presel_re_tau_good[2])->llh());
02682 d_tau_pt3=presel_re_tau_good[2]->tlv().Pt();
02683 d_tau_charge3=presel_re_tau_good[2]->charge();
02684 }
02685 if (presel_leptons.size()>0) {
02686 d_lep_charge1=presel_leptons[0]->charge();
02687 }
02688 if (presel_leptons.size()>1) {
02689 d_lep_charge2=presel_leptons[1]->charge();
02690 }
02691 if (presel_leptons.size()>2) {
02692 d_lep_charge3=presel_leptons[2]->charge();
02693 }
02694 t_tau_llh->Fill();
02695 }
02696 for (unsigned int i=0;i<v_garbage.size();i++) {
02697 delete v_garbage[i];
02698 }
02699 v_garbage.clear();
02700 return;
02701 }
02702
02703
02704
02705
02706
02707
02708
02709 void MyCHiggsAnalysis::end_of_analysis(void) {
02710
02711
02713
02715 h_bTag_pt->Scale(1/h_bTag_pt->Integral());
02716 h_bbarTag_pt->Scale(1/h_bbarTag_pt->Integral());
02717 m_truth_mass_lt->Scale(1/m_truth_mass_lt->Integral());
02718 m_truth_delta_phi_bt->Scale(1/m_truth_delta_phi_bt->Integral());
02719 m_truth_delta_phi_bbart->Scale(1/m_truth_delta_phi_bbart->Integral());
02720 m_truth_mass_bt->Scale(1/m_truth_mass_bt->Integral());
02721 m_truth_delta_phi_bl->Scale(1/m_truth_delta_phi_bl->Integral());
02722 m_truth_delta_phi_bbarl->Scale(1/m_truth_delta_phi_bbarl->Integral());
02723
02724
02725
02726
02727
02728 cout <<"-----------------------------------------"<<endl;
02729 cout <<"MUONS"<<endl;
02730 cout <<"all truth muons : "<<i_tr_mu_all<<endl;
02731 cout <<"truth muons (pt,eta cuts) : "<<i_tr_mu<<endl;
02732 cout <<"all reco muons : "<<i_mu_all_nb<<endl;
02733 cout <<"ov.rem. reco muons : "<<i_mu_ov_nb<<endl;
02734 cout <<"isol+flag reco muons : "<<i_mu_iso_nb<<endl;
02735 cout <<"final reco muons : "<<i_mu_nb<<endl<<endl;
02736
02737 cout <<"ELECTRONS"<<endl;
02738 cout <<"all truth electrons : "<<i_tr_ele_all<<endl;
02739 cout <<"truth electrons (pt,eta cuts) : "<<i_tr_ele<<endl;
02740 cout <<"truth not isolated electrons : "<<i_tr_ele_noisol<<endl;
02741 cout <<"all reco electrons : "<<i_ele_all_nb<<endl;
02742 cout <<"mu.rem. reco electrons : "<<i_ele_ov_nb<<endl;
02743 cout <<"id : "<<i_ele_isem_nb<<endl;
02744 cout <<"doubles deleted reco electrons : "<<i_ele_dd_nb<<endl;
02745 cout <<"isol+id reco electrons : "<<i_ele_iso_nb<<endl;
02746 cout <<"final reco electrons : "<<i_ele_nb<<endl;
02747 cout <<"matched not isolated electrons : "<<i_ele_match_noisol<<endl<<endl;
02748
02749 cout <<"TAUJETS"<<endl;
02750 cout <<"all truth taujets : "<<i_tr_tau_all_nb<<endl;
02751 cout <<"all truth taujets(from Higgs/W): "<<i_tr_tau_id1_nb<<endl;
02752 cout <<"all truth taujets (status) : "<<i_tr_tau_id2_nb<<endl;
02753 cout <<"truth taujets (pt,eta cuts) : "<<i_tr_tau_nb<<endl;
02754 cout <<"all reco taujets : "<<i_tau_all_nb<<endl;
02755 cout <<"ov.rem. reco taujets : "<<i_tau_ov_nb<<endl;
02756 cout <<"id. reco taujets : "<<i_tau_id_nb<<endl;
02757 cout <<"final reco taujets : "<<i_tau_nb<<endl<<endl;
02758
02759 cout <<"JETS"<<endl;
02760 cout <<"all truth jets : "<<i_tr_jet_all_nb<<endl;
02761 cout <<"ov.rem. truth jets : "<<i_tr_jet_ov_nb<<endl;
02762 cout <<"truth jets (pt,eta cuts) : "<<i_tr_jet_nb<<endl;
02763 cout <<"all reco jets : "<<i_jets_all_nb<<endl;
02764 cout <<"ov.rem. reco jets : "<<i_jets_ov_nb<<endl;
02765 cout <<"final reco jets (with tau) : "<<i_jets_nb<<endl<<endl;
02766
02767 cout <<"B-JETS"<<endl;
02768 cout <<"all truth b-jets : "<<i_tr_b_all_nb<<endl;
02769 cout <<"all truth b-jets (from top) : "<<i_tr_b_id1_nb<<endl;
02770 cout <<"all truth b-jets (status) : "<<i_tr_b_id2_nb<<endl;
02771 cout <<"final reco b-jets : "<<i_bjets_nb<<endl;
02772 cout <<"matched b-jets : "<<i_bjets_matched<<endl;
02773
02774 cout << "reconstructed particles: "<<endl;
02775 cout <<"mu="<<i_mu_nb<<" ele="<<i_ele_nb<<" taus="<<i_tau_nb<<" jets="<<i_jets_nb<<
02776 " bjets="<<i_bjets_nb<<endl<<endl;
02777 cout <<"b jets : "<<i_b_all_nb<<endl;
02778 cout <<"b jets after tags : "<<i_bjet_nb<<endl;;
02779 cout <<"light jets : "<<i_light_all_nb<<endl;
02780 cout <<"b matches (no trig): "<<i_bMatch_nb<<endl;
02781 cout <<"matched (b or bbar): "<<i_MatchTrigger_nb<<endl;
02782 cout <<"matched to b : "<<i_bMatchTrigger_nb<<endl;
02783 cout <<"matched to bbar : "<<i_bbarMatchTrigger_nb<<endl;
02784 cout <<"bTag tries : "<<i_tryBTag_nb<<endl;
02785 cout <<"bbarTag tries : "<<i_tryBbarTag_nb<<endl;
02786 cout <<"b tags : "<<i_bTagMatch_nb<<endl;
02787 cout <<"bbar tags : "<<i_bbarTagMatch_nb<<endl;
02788 cout <<"b (m) tags wrong : "<<i_bTagMatchWrong_nb<<endl;
02789 cout <<"bbar (m) tags wrong: "<<i_bbarTagMatchWrong_nb<<endl;
02790 cout <<"b faked : "<<i_bTagWrong_nb<<endl;
02791 cout <<"bbar faked : "<<i_bbarTagWrong_nb<<endl;
02792 cout <<"-----------------------------------------"<<endl;
02793 cout <<"b-tag eff : "<<i_bTagMatch_nb/(double)i_bMatchTrigger_nb<<endl;
02794 cout <<"bbar-tag eff : "<<i_bbarTagMatch_nb/(double)i_bbarMatchTrigger_nb<<endl;
02795 cout <<"b-tag purity incl. fake : "<<1-(i_bTagMatchWrong_nb+i_bTagWrong_nb)/(double)i_tryBTag_nb<<endl;
02796 cout <<"bbar-tag purity incl. fake : "<<1-(i_bbarTagMatchWrong_nb+i_bbarTagWrong_nb)/(double)i_tryBbarTag_nb<<endl;
02797 cout <<"b-tag purity : "
02798 <<1-i_bTagMatchWrong_nb/(double)(i_bTagMatch_nb+i_bTagMatchWrong_nb)<<endl;
02799 cout <<"bbar-tag purity : "<<1-i_bbarTagMatchWrong_nb/(double)(i_bbarTagMatch_nb+i_bbarTagMatchWrong_nb)<<endl;
02800 cout <<"not tagged : "<<i_noTag<<endl;
02801 cout<<"number of b-tags : "<<i_btagvector<<endl;
02802
02803 cout <<"Generator :"<<generator<<endl;
02804
02805
02806
02808
02810
02811 m_tfile->Write();
02812 delete m_systematics;
02813 return;
02814
02815
02816 }