13 #include "RooStats/NumberCountingUtils.h" 24 TString
YieldsCut(TString title, TString cuts, vector<TChain*> chain, vector<sfeats> Samples,
int nsig);
29 TString folder=
"archive/15-04-07/skims/";
31 s_tt.push_back(folder+
"*_TTJet*");
32 vector<TString> s_wjets;
33 s_wjets.push_back(folder+
"*_WJets*");
34 vector<TString> s_single;
35 s_single.push_back(folder+
"*_T*channel*");
36 vector<TString> s_ttv;
37 s_ttv.push_back(folder+
"*TTW*");
38 s_ttv.push_back(folder+
"*TTZ*");
39 vector<TString> s_other;
40 s_other.push_back(folder+
"*QCD_HT*");
41 s_other.push_back(folder+
"*_ZJet*");
42 s_other.push_back(folder+
"*DY*");
43 s_other.push_back(folder+
"*WH_HToBB*");
44 vector<TString> s_t1t;
45 s_t1t.push_back(folder+
"*T1tttt*1500_*PU20*");
46 vector<TString> s_t1tc;
47 s_t1tc.push_back(folder+
"*T1tttt*1200_*PU20*");
49 vector<TChain *> chain;
50 vector<sfeats> Samples;
51 Samples.push_back(
sfeats(s_other,
"Other", 1001));
52 Samples.push_back(
sfeats(s_ttv,
"$t\\bar{t}V$", 1002));
53 Samples.push_back(
sfeats(s_single,
"Single $t$", 1005));
54 Samples.push_back(
sfeats(s_wjets,
"W + jets", 1004));
55 Samples.push_back(
sfeats(s_tt,
"$t\\bar{t}$ (1$\\ell$)", 1000,1,
56 "((mc_type&0x0F00)/0x100+(mc_type&0x000F)-(mc_type&0x00F0)/0x10)<=1"));
57 Samples.push_back(
sfeats(s_tt,
"$t\\bar{t}$ ($2\\ell$)", 1006,1,
58 "((mc_type&0x0F00)/0x100+(mc_type&0x000F)-(mc_type&0x00F0)/0x10)>=2"));
60 Samples.push_back(
sfeats(s_t1t,
"T1tttt NC", 2));
61 Samples.push_back(
sfeats(s_t1tc,
"T1tttt C", 2,2));
63 for(
unsigned sam(0); sam < Samples.size(); sam++){
64 chain.push_back(
new TChain(
"tree"));
65 for(
unsigned insam(0); insam < Samples[sam].file.size(); insam++)
66 chain[sam]->Add(Samples[sam].
file[insam]);
70 TString
metcut(
"400"), mjcut(
"400");
71 TString name =
"txt/ra4_yields_met"+
metcut+
"_mj"+mjcut+
".tex";
72 TString cuts_1bmt(
"(nmus+nels)==1&&ht>500&&mt>150&&nbm==1&&njets>=6");
73 TString cuts_2bmt(
"(nmus+nels)==1&&ht>500&&mt>150&&nbm>=2&&njets>=6");
74 TString cuts_1b(
"(nmus+nels)==1&&ht>500&&met>"+
metcut+
"&&nbm==1&&njets>=6");
75 TString cuts_2b(
"(nmus+nels)==1&&ht>500&&met>"+
metcut+
"&&nbm==2&&njets>=6");
76 TString cuts_3b(
"(nmus+nels)==1&&ht>500&&met>"+
metcut+
"&&nbm>=3&&njets>=6");
77 TString cuts_2l(
"(nmus+nels)==2&&ht>500&&met>"+
metcut+
"&&nbm==1&&njets>=4");
78 TString cuts_2lp(
"(nmus+nels)==2&&ht>500&&met>"+
metcut+
"&&nbm==2&&njets>=4");
79 TString cuts_2l_3b(
"(nmus+nels)==2&&ht>500&&met>"+
metcut+
"&&nbm>=3&&njets>=4");
82 file <<
"\n\\begin{tabular}{ l | rrrrrr | r | rr | rr}\\hline\\hline\n";
83 file <<
" \\multicolumn{1}{c|}{Cuts} ";
84 for(
unsigned sam(0); sam < Samples.size()-nsig; sam++)
85 file <<
" & "<<Samples[sam].label;
86 file<<
" & {\\bf SM bkg.} ";
87 for(
unsigned sam(Samples.size()-nsig); sam < Samples.size(); sam++)
88 file <<
" & "<<Samples[sam].label<<
" & {\\bf S/B} ";
89 file <<
"\\\\ \\hline \n ";
92 file <<
" \\multicolumn{"<< Samples.size()+nsig*2<<
"}{c}{"<<
"$H_T>500, \\mathrm{MET}>200, m_T>150, n_{\\rm jets}\\geq 6, " 93 <<
"n_b=1, n_{\\rm lep}=1$"<<
"} \\\\ \\hline\n";
94 file <<
YieldsCut(
"MET$ < "+
metcut+
",m_J< "+mjcut+
"$ ",
"mj<"+mjcut+
"&&met<"+
metcut+
"&&"+cuts_1bmt, chain, Samples, nsig);
95 file <<
YieldsCut(
"MET$ < "+
metcut+
",m_J\\geq "+mjcut+
"$ ",
"mj>="+mjcut+
"&&met<"+
metcut+
"&&"+cuts_1bmt, chain, Samples, nsig);
96 file <<
YieldsCut(
"MET$\\geq "+
metcut+
",m_J< "+mjcut+
"$ ",
"mj<"+mjcut+
"&&met>="+
metcut+
"&&"+cuts_1bmt, chain, Samples, nsig);
97 file <<
YieldsCut(
"MET$\\geq "+
metcut+
",m_J\\geq "+mjcut+
"$",
"mj>="+mjcut+
"&&met>="+
metcut+
"&&"+cuts_1bmt, chain, Samples, nsig);
99 file <<
" \\hline\\multicolumn{"<< Samples.size()+nsig*2<<
"}{c}{"<<
"$H_T>500, \\mathrm{MET}>200, m_T>150, n_{\\rm jets}\\geq 6, " 100 <<
"n_b\\geq 2, n_{\\rm lep}=1$"<<
"} \\\\ \\hline\n";
101 file <<
YieldsCut(
"MET$ < "+
metcut+
",m_J< "+mjcut+
"$ ",
"mj<"+mjcut+
"&&met<"+
metcut+
"&&"+cuts_2bmt, chain, Samples, nsig);
102 file <<
YieldsCut(
"MET$ < "+
metcut+
",m_J\\geq "+mjcut+
"$ ",
"mj>="+mjcut+
"&&met<"+
metcut+
"&&"+cuts_2bmt, chain, Samples, nsig);
103 file <<
YieldsCut(
"MET$\\geq "+
metcut+
",m_J< "+mjcut+
"$ ",
"mj<"+mjcut+
"&&met>="+
metcut+
"&&"+cuts_2bmt, chain, Samples, nsig);
104 file <<
YieldsCut(
"MET$\\geq "+
metcut+
",m_J\\geq "+mjcut+
"$",
"mj>="+mjcut+
"&&met>="+
metcut+
"&&"+cuts_2bmt, chain, Samples, nsig);
179 file <<
" \\hline\\multicolumn{1}{c|}{Cuts} ";
180 for(
unsigned sam(0); sam < Samples.size()-nsig; sam++)
181 file <<
" & "<<Samples[sam].label;
182 file<<
" & {\\bf SM bkg.} ";
183 for(
unsigned sam(Samples.size()-nsig); sam < Samples.size(); sam++)
184 file <<
" & "<<Samples[sam].label<<
" & {\\bf S/B} ";
187 file<<
"\\hline\\hline\n\\end{tabular}"<<endl<<endl;
189 cout<<
"Written "<<name<<endl;
192 TString
YieldsCut(TString title, TString cuts, vector<TChain*> chain, vector<sfeats> Samples,
int nsig){
193 TString totCut,
luminosity=
"4", Hname =
"histo", out;
196 int nsam(chain.size());
197 TH1D histo(Hname,
"",100, 0, 10000);
198 for(
int sam(0); sam < nsam; sam++){
199 totCut = luminosity+
"*weight*("+cuts+
"&&"+Samples[sam].cut+
")";
200 chain[sam]->Project(Hname,
"met", totCut);
201 yield.push_back(histo.Integral(0,101));
202 if(sam<nsam-nsig) bkg += yield[sam];
207 for(
int sam(0); sam < nsam-nsig; sam++) out += (
" \t & " +
RoundNumber(yield[sam],1));
209 for(
int sam(nsam-nsig); sam < nsam; sam++)
210 out += (
" \t& " +
RoundNumber(yield[sam],1) +
" \t& {\\bf " +
TString YieldsCut(TString title, TString cuts, vector< TChain * > chain, vector< sfeats > Samples, int nsig)
TString RoundNumber(double num, int decimals, double denom=1.)
TString metcut("met_nohf>175")