#include "analysis.h" #include #include #include "TCanvas.h" using namespace std; void analysis::write(TString fname, bool update) { TString openfile("RECREATE"); if (update) openfile = "UPDATE"; TFile *f = new TFile(fname, openfile); h2_tau_vmpt_A->Write(); h2_tau_vmpt_B->Write(); h2_tau_vmpt_C->Write(); h2_tau_vmpt_D->Write(); // ----------------------- // EF_tau12_loose h2_tau_vmpt_EF_tau12_loose_A->Write(); h2_tau_vmpt_EF_tau12_loose_B->Write(); h2_tau_vmpt_EF_tau12_loose_C->Write(); h2_tau_vmpt_EF_tau12_loose_D->Write(); // EF_tau16_loose h2_tau_vmpt_EF_tau16_loose_A->Write(); h2_tau_vmpt_EF_tau16_loose_B->Write(); h2_tau_vmpt_EF_tau16_loose_C->Write(); h2_tau_vmpt_EF_tau16_loose_D->Write(); // EF_tau16_medium h2_tau_vmpt_EF_tau16_medium_A->Write(); h2_tau_vmpt_EF_tau16_medium_B->Write(); h2_tau_vmpt_EF_tau16_medium_C->Write(); h2_tau_vmpt_EF_tau16_medium_D->Write(); h2_tau1p_vmpt_A->Write(); h2_tau1p_vmpt_B->Write(); h2_tau1p_vmpt_C->Write(); h2_tau1p_vmpt_D->Write(); // ----------------------- // EF_tau12_loose h2_tau1p_vmpt_EF_tau12_loose_A->Write(); h2_tau1p_vmpt_EF_tau12_loose_B->Write(); h2_tau1p_vmpt_EF_tau12_loose_C->Write(); h2_tau1p_vmpt_EF_tau12_loose_D->Write(); // EF_tau16_loose h2_tau1p_vmpt_EF_tau16_loose_A->Write(); h2_tau1p_vmpt_EF_tau16_loose_B->Write(); h2_tau1p_vmpt_EF_tau16_loose_C->Write(); h2_tau1p_vmpt_EF_tau16_loose_D->Write(); // EF_tau16_medium h2_tau1p_vmpt_EF_tau16_medium_A->Write(); h2_tau1p_vmpt_EF_tau16_medium_B->Write(); h2_tau1p_vmpt_EF_tau16_medium_C->Write(); h2_tau1p_vmpt_EF_tau16_medium_D->Write(); // h2_tau3p_vmpt_A->Write(); h2_tau3p_vmpt_B->Write(); h2_tau3p_vmpt_C->Write(); h2_tau3p_vmpt_D->Write(); // ----------------------- // EF_tau12_loose h2_tau3p_vmpt_EF_tau12_loose_A->Write(); h2_tau3p_vmpt_EF_tau12_loose_B->Write(); h2_tau3p_vmpt_EF_tau12_loose_C->Write(); h2_tau3p_vmpt_EF_tau12_loose_D->Write(); // EF_tau16_loose h2_tau3p_vmpt_EF_tau16_loose_A->Write(); h2_tau3p_vmpt_EF_tau16_loose_B->Write(); h2_tau3p_vmpt_EF_tau16_loose_C->Write(); h2_tau3p_vmpt_EF_tau16_loose_D->Write(); // EF_tau16_medium h2_tau3p_vmpt_EF_tau16_medium_A->Write(); h2_tau3p_vmpt_EF_tau16_medium_B->Write(); h2_tau3p_vmpt_EF_tau16_medium_C->Write(); h2_tau3p_vmpt_EF_tau16_medium_D->Write(); f->Close(); f->Delete(); if (update) cout << "File " << fname << " was updated." << endl; else cout << "File " << fname << " was written." << endl; } // // runAnalysis // // it has the following options // choice 0: run on data // --> does also the bkg subtraction operations // choice 1: run on EWK bkgs // creates a reference histo file // choice 2: ......... void analysis::runAnalysis(TString filename, bool update) { cout << "Running analysis for tag: " << InputTag << endl; int nentries = (int) fChain->GetEntries(); // ............................................ for (int i=0; iGetEntry(i); // passes all criteria up to the control regions bool passSele = checkZtautauEventSelBeforeControl(); if (not passSele) continue; FillHistosWithoutTrigger(); FillHistosPassTrigger_tau12loose(); FillHistosPassTrigger_tau16loose(); FillHistosPassTrigger_tau16medium(); FillHistosPassTrigger_tau12loose1p(); FillHistosPassTrigger_tau16loose1p(); FillHistosPassTrigger_tau16medium1p(); FillHistosPassTrigger_tau12loose3p(); FillHistosPassTrigger_tau16loose3p(); FillHistosPassTrigger_tau16medium3p(); } // ............................................ // ----------------------------------------------------- write(filename, update); } // // // passes all the Ztautau selection criteria // apart from OS, ISOLATED_LEPTON bool analysis::checkZtautauEventSelBeforeControl() { bool res = true; res = res && ALL && TRIGGER && VERTEX && PRESELECTED_LEPTON && PRESELECTED_TAU && OVERLAP_REMOVED_LEPTON && JET_CLEANING && TRIGGER_MATCHED_LEPTON && OVERLAP_REMOVED_TAU && SELECTED_LEPTON; res = res && SELECTED_TAU && DILEPTON_VETO && SUM_COS_DPHI && TRANS_MASS && MET && TAU_LEP_DPHI; //res = res && OS; //res = res && ISOLATED_LEPTON; res = res && VIS_MASS_2; return res; } bool analysis::checkZtautauEventSel() { bool res = true; res = res && ALL && TRIGGER && VERTEX && PRESELECTED_LEPTON && PRESELECTED_TAU && OVERLAP_REMOVED_LEPTON && JET_CLEANING && TRIGGER_MATCHED_LEPTON && OVERLAP_REMOVED_TAU && SELECTED_LEPTON; res = res && SELECTED_TAU && DILEPTON_VETO && SUM_COS_DPHI && TRANS_MASS && MET && TAU_LEP_DPHI; res = res && OS; res = res && ISOLATED_LEPTON; res = res && VIS_MASS_2; return res; } bool analysis::isInA() { return (OS && ISOLATED_LEPTON); } bool analysis::isInB() { return (SS && ISOLATED_LEPTON); } bool analysis::isInC() { return (OS && (!ISOLATED_LEPTON)); } bool analysis::isInD() { return (SS && (!ISOLATED_LEPTON)); } void analysis::FillHistosWithoutTrigger() { // ..................................................... if (isInA()) { h2_tau_vmpt_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (TAU_NUMTRACK_1) h2_tau1p_vmpt_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (TAU_NUMTRACK_3) h2_tau3p_vmpt_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } if (isInB()) { h2_tau_vmpt_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (TAU_NUMTRACK_1) h2_tau1p_vmpt_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (TAU_NUMTRACK_3) h2_tau3p_vmpt_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } if (isInC()) { h2_tau_vmpt_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (TAU_NUMTRACK_1) h2_tau1p_vmpt_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (TAU_NUMTRACK_3) h2_tau3p_vmpt_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } if (isInD()) { h2_tau_vmpt_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (TAU_NUMTRACK_1) h2_tau1p_vmpt_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (TAU_NUMTRACK_3) h2_tau3p_vmpt_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } } void analysis::FillHistosPassTrigger_tau12loose() { if (!tau_EF_tau12_loose) return; if (isInA()) h2_tau_vmpt_EF_tau12_loose_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInB()) h2_tau_vmpt_EF_tau12_loose_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInC()) h2_tau_vmpt_EF_tau12_loose_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInD()) h2_tau_vmpt_EF_tau12_loose_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } void analysis::FillHistosPassTrigger_tau12loose1p() { if (!tau_EF_tau12_loose) return; if (!TAU_NUMTRACK_1) return; if (isInA()) h2_tau1p_vmpt_EF_tau12_loose_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInB()) h2_tau1p_vmpt_EF_tau12_loose_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInC()) h2_tau1p_vmpt_EF_tau12_loose_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInD()) h2_tau1p_vmpt_EF_tau12_loose_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } void analysis::FillHistosPassTrigger_tau12loose3p() { if (!tau_EF_tau12_loose) return; if (!TAU_NUMTRACK_3) return; if (isInA()) h2_tau3p_vmpt_EF_tau12_loose_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInB()) h2_tau3p_vmpt_EF_tau12_loose_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInC()) h2_tau3p_vmpt_EF_tau12_loose_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInD()) h2_tau3p_vmpt_EF_tau12_loose_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } void analysis::FillHistosPassTrigger_tau16loose() { if (!tau_EF_tau16_loose) return; if (isInA()) h2_tau_vmpt_EF_tau16_loose_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInB()) h2_tau_vmpt_EF_tau16_loose_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInC()) h2_tau_vmpt_EF_tau16_loose_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInD()) h2_tau_vmpt_EF_tau16_loose_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } void analysis::FillHistosPassTrigger_tau16loose1p() { if (!tau_EF_tau16_loose) return; if (!TAU_NUMTRACK_1) return; if (isInA()) h2_tau1p_vmpt_EF_tau16_loose_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInB()) h2_tau1p_vmpt_EF_tau16_loose_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInC()) h2_tau1p_vmpt_EF_tau16_loose_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInD()) h2_tau1p_vmpt_EF_tau16_loose_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } void analysis::FillHistosPassTrigger_tau16loose3p() { if (!tau_EF_tau16_loose) return; if (!TAU_NUMTRACK_3) return; if (isInA()) h2_tau3p_vmpt_EF_tau16_loose_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInB()) h2_tau3p_vmpt_EF_tau16_loose_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInC()) h2_tau3p_vmpt_EF_tau16_loose_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInD()) h2_tau3p_vmpt_EF_tau16_loose_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } void analysis::FillHistosPassTrigger_tau16medium() { if (!tau_EF_tau16_medium) return; if (isInA()) h2_tau_vmpt_EF_tau16_medium_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInB()) h2_tau_vmpt_EF_tau16_medium_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInC()) h2_tau_vmpt_EF_tau16_medium_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInD()) h2_tau_vmpt_EF_tau16_medium_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } void analysis::FillHistosPassTrigger_tau16medium1p() { if (!tau_EF_tau16_medium) return; if (!TAU_NUMTRACK_1) return; if (isInA()) h2_tau1p_vmpt_EF_tau16_medium_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInB()) h2_tau1p_vmpt_EF_tau16_medium_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInC()) h2_tau1p_vmpt_EF_tau16_medium_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInD()) h2_tau1p_vmpt_EF_tau16_medium_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } void analysis::FillHistosPassTrigger_tau16medium3p() { if (!tau_EF_tau16_medium) return; if (!TAU_NUMTRACK_3) return; if (isInA()) h2_tau3p_vmpt_EF_tau16_medium_A->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInB()) h2_tau3p_vmpt_EF_tau16_medium_B->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInC()) h2_tau3p_vmpt_EF_tau16_medium_C->Fill(vis_mass/1000., tau_tlv_Pt/1000.); if (isInD()) h2_tau3p_vmpt_EF_tau16_medium_D->Fill(vis_mass/1000., tau_tlv_Pt/1000.); } /******************* RunNumber = 106052 EventNumber = 1413125 timestamp = 0 timestamp_ns = 0 lbn = 3 bcid = 82 pixelFlags = 0 sctFlags = 0 trtFlags = 0 larFlags = 0 tileFlags = 255 muonFlags = 0 fwdFlags = 0 coreFlags = 0 pixelError = 0 sctError = 0 trtError = 0 larError = 0 tileError = 0 muonError = 0 fwdError = 0 coreError = 0 true_lephad_event = 1 vxp_weight = 1.9696 mcevt_weight = 1 vxp_n_selected = 1 n_olr_taus = 1 isol_scale_factor = 0.873549 id_scale_factor = 0.856703 id_scale_factor_no_et = 1.02599 n_olr_leptons = 1 n_leptons_dlv = 1 n_preselected_electrons = 1 n_preselected_muons = 0 n_selected_electrons = 1 n_selected_muons = 0 n_isolated_electrons = 1 n_isolated_muons = 0 tau_is_jet = 1 tau_jet_electron_sf = 1 el_ptcone20 = 0 el_ptcone30 = 0 el_ptcone40 = 0 el_Etcone20 = 624.847 el_Etcone30 = 719.734 el_Etcone40 = 83.1165 lepton_tlv_Pt = 18352.8 lepton_tlv_Eta = 1.9927 lepton_tlv_Phi = 0.136784 tau_tlv_Pt = 58046.4 tau_tlv_Eta = -0.108859 tau_tlv_Phi = 2.78256 hist_weight = 1.47399 tau_EF_tau12_loose = 1 tau_EF_tau16_loose = 1 tau_EF_tau16_medium = 0 sum_cos_dphi = -0.0433456 trans_mass = 7993.06 vis_mass = 103525 tau_numTrack = 5 tau_charge = -1 tauCutSafeLoose = 1 tauCutSafeMedium = 0 tauCutSafeTight = 0 tau_seedCalo_EMRadius = 0.14624 charge_product = -1 met_tlv_Pt = 31062.8 met_tlv_Phi = -0.199566 tau_lep_dphi = 2.64577 ALL = 1 CALO_ISOLATION = 1 DILEPTON_VETO = 1 GRL = 1 INV_MASS_1 = 0 INV_MASS_2 = 0 ISOLATED_LEPTON = 1 JET_CLEANING = 1 LEP_20 = 0 LEP_40 = 0 LOOSE_TAU = 1 MET = 1 OS = 1 OVERLAP_REMOVED_LEPTON = 1 OVERLAP_REMOVED_TAU = 1 PRESELECTED_LEPTON = 1 PRESELECTED_TAU = 1 SELECTED_LEPTON = 1 SELECTED_TAU = 0 SS = 0 SUM_COS_DPHI = 1 TAU_20 = 1 TAU_LEP_DPHI = 1 TAU_NUMTRACK_1 = 0 TAU_NUMTRACK_1_OR_3 = 0 TAU_NUMTRACK_3 = 0 TAU_UNIT_CHARGE = 1 TIGHT_TAU = 0 TRACK_ISOLATION = 1 TRANS_MASS = 1 TRIGGER = 1 TRIGGER_MATCHED_LEPTON = 1 TRIGTAU = 1 TRIGTAU_SELECTED_LEP = 0 VERTEX = 1 VIS_MASS_1 = 1 VIS_MASS_2 = 0 VIS_MASS_3 = 0 A = 0 A_dlv = 0 A_dlv_numTrack = 0 A_dlv_numTrack_1p = 0 A_dlv_numTrack_3p = 0 A_dlv_wcuts = 0 A_dlv_wcuts_numTrack_os = 0 A_dlv_wcuts_numTrack_os_1p = 0 A_dlv_wcuts_numTrack_os_3p = 0 A_dlv_wcuts_numTrack_os_trigtau = 0 A_dlv_wcuts_numTrack_ss = 0 A_dlv_wcuts_numTrack_ss_trigtau = 0 A_dlv_wcuts_vismass = 0 A_dlv_wcuts_vismass_numTrack = 0 A_dlv_wcuts_vismass_numTrack_os = 0 A_dlv_wcuts_vismass_numTrack_os_1p = 0 A_dlv_wcuts_vismass_numTrack_os_3p = 0 A_dlv_wcuts_vismass_numTrack_ss = 0 A_dlv_wcuts_vismass_os = 0 A_dlv_wcuts_vismass_ss = 0 B = 0 B_dlv = 0 B_dlv_numTrack = 0 B_dlv_numTrack_1p = 0 B_dlv_numTrack_3p = 0 B_dlv_wcuts = 0 B_dlv_wcuts_numTrack_os = 0 B_dlv_wcuts_numTrack_os_1p = 0 B_dlv_wcuts_numTrack_os_3p = 0 B_dlv_wcuts_numTrack_os_trigtau = 0 B_dlv_wcuts_numTrack_ss = 0 B_dlv_wcuts_numTrack_ss_trigtau = 0 B_dlv_wcuts_vismass = 0 B_dlv_wcuts_vismass_numTrack = 0 B_dlv_wcuts_vismass_numTrack_os = 0 B_dlv_wcuts_vismass_numTrack_os_1p = 0 B_dlv_wcuts_vismass_numTrack_os_3p = 0 B_dlv_wcuts_vismass_numTrack_ss = 0 B_dlv_wcuts_vismass_os = 0 B_dlv_wcuts_vismass_ss = 0 C = 1 C_dlv = 1 C_dlv_numTrack = 0 C_dlv_numTrack_1p = 0 C_dlv_numTrack_3p = 0 C_dlv_wcuts = 1 C_dlv_wcuts_numTrack_os = 0 C_dlv_wcuts_numTrack_os_1p = 0 C_dlv_wcuts_numTrack_os_3p = 0 C_dlv_wcuts_vismass = 0 C_dlv_wcuts_vismass_numTrack = 0 C_dlv_wcuts_vismass_numTrack_os = 0 C_dlv_wcuts_vismass_numTrack_os_1p = 0 C_dlv_wcuts_vismass_numTrack_os_3p = 0 D = 0 D_dlv = 0 D_dlv_numTrack = 0 D_dlv_numTrack_1p = 0 D_dlv_numTrack_3p = 0 D_dlv_wcuts = 0 D_dlv_wcuts_numTrack_os = 0 D_dlv_wcuts_numTrack_os_1p = 0 D_dlv_wcuts_numTrack_os_3p = 0 D_dlv_wcuts_vismass = 0 D_dlv_wcuts_vismass_numTrack = 0 D_dlv_wcuts_vismass_numTrack_os = 0 D_dlv_wcuts_vismass_numTrack_os_1p = 0 D_dlv_wcuts_vismass_numTrack_os_3p = 0 control_w_loose_not_tight_tau = 0 control_w_loose_not_tight_tau_numTrack = 0 control_w_loose_not_tight_tau_numTrack_1p = 0 control_w_loose_not_tight_tau_numTrack_3p = 0 control_w_loose_not_tight_tau_numTrack_os = 0 control_w_loose_not_tight_tau_numTrack_os_1p = 0 control_w_loose_not_tight_tau_numTrack_os_3p = 0 control_w_loose_not_tight_tau_numTrack_ss = 0 control_w_loose_not_tight_tau_vismass_numTrack_os = 0 control_w_loose_not_tight_tau_vismass_numTrack_os_1p = 0 control_w_loose_not_tight_tau_vismass_numTrack_os_3p = 0 control_w_loose_not_tight_tau_vismass_numTrack_ss = 0 control_w_tight_tau = 0 control_w_tight_tau_numTrack = 0 control_w_tight_tau_numTrack_1p = 0 control_w_tight_tau_numTrack_3p = 0 control_w_tight_tau_numTrack_os = 0 control_w_tight_tau_numTrack_os_1p = 0 control_w_tight_tau_numTrack_os_3p = 0 control_w_tight_tau_numTrack_ss = 0 control_w_tight_tau_vismass_numTrack_os = 0 control_w_tight_tau_vismass_numTrack_os_1p = 0 control_w_tight_tau_vismass_numTrack_os_3p = 0 control_w_tight_tau_vismass_numTrack_ss = 0 control_zee = 0 iso_lep_loose_not_tight_tau = 1 iso_lep_loose_tau = 1 iso_lep_tight_tau = 0 lep_loose_not_tight_tau = 1 lep_loose_tau = 1 lep_tight_tau = 0 **************************/