#ifndef ZtautauAnalysis_h #define ZtautauAnalysis_h #include #include class TFile; class TTree; class TH1F; class ZtautauTree; class EtTree; class TauTree; class ElectronTree; class MuonTree; class WeightTree; class ZtautauAnalysis{ public : ZtautauAnalysis(std::string name, float xsect, float lumi, TTree* ztautauTree, TTree* etTree, TTree* tauTree, TTree* elecTree, TTree* muonTree, TTree* weightTree); ~ZtautauAnalysis(); void Initialise(); void Finalise(); void Ztautau(int nEvents); void EtMiss(int nEvents); void Nprong(int nEvents); void Tau(int nEvents); void SetSafeTau() {m_doSafe=true;} private : enum ParticleType{lepton, tau, nu_lepton, nu_tau}; ZtautauTree* m_ztautauTree; EtTree* m_etTree; TauTree* m_tauTree; ElectronTree* m_elecTree; MuonTree* m_muonTree; WeightTree* m_weightTree; std::vector m_cutFlow; std::vector m_cutFlowSq; std::vector m_cutNames; std::string m_name; float m_xsect; float m_lumi; float m_lumiScale; float m_doSafe; // Histos TH1F* m_hist_vismass_os; TH1F* m_hist_vismass_ss; TH1F* m_hist_invmass_os; TH1F* m_hist_invmass_ss; TH1F* m_hist_invpt; TH1F* m_hist_invphi; TH1F* m_hist_inveta; TH1F* m_hist_vispt; TH1F* m_hist_visphi; TH1F* m_hist_viseta; TH1F* m_hist_visdphi; TH1F* m_hist_cuts; TH1F* m_hist_cutsscaled; TH1F* m_hist_etmiss; TH1F* m_hist_etmiss_mt; TH1F* m_hist_etsum; TH1F* m_hist_mt; TH1F* m_hist_mt_etmiss; TH1F* m_hist_etsum_mtmet; TH1F* m_hist_nprong; TH1F* m_hist_nprong_met; TH1F* m_hist_nprong_mt; TH1F* m_hist_nprong_sumet; TH1F* m_hist_nprong_cand; TH1F* m_hist_nprong_dphi; TH1F* m_hist_nprong_tau; TH1F* m_hist_nprong_chrg; TH1F* m_hist_nprong_vism; TH1F* m_hist_nprong_chrg_os; TH1F* m_hist_nprong_vism_os; TH1F* m_hist_charge_tau; TH1F* m_hist_charge_lep; TH1F* m_hist_charge_prod; TH1F* m_hist_emradius; TH1F* m_hist_width2; TH1F* m_hist_isolfrac; TH1F* m_hist_etratio; // Functions void SetLumiScale(); void CutFlow(); void BookHists(); void ScaleHists(); void WriteHists(); }; #endif