ra4_macros  bede988c286599a3a84b77a4d788ac0a971e89f9
plot_note.cxx
Go to the documentation of this file.
1 // plot_note: Macro that plots variables both lumi weighted and normalized to the same area.
2 
3 #include <iostream>
4 #include <vector>
5 
6 #include "TChain.h"
7 #include "TH1D.h"
8 #include "TCanvas.h"
9 #include "TLegend.h"
10 #include "TLine.h"
11 #include "TString.h"
12 #include "TColor.h"
13 
14 #include "styles.hpp"
15 #include "utilities.hpp"
16 #include "utilities_macros.hpp"
17 
18 namespace {
19  TString ntuple_date("2015_07_22");
20  TString minjets("7"), midjets("9");
21  TString mjthresh("400");
22  TString luminosity="10";
23  TString plot_type=".pdf";
24  TString plot_style="RA4";
25  int section(5);
26 }
27 
28 using namespace std;
29 using std::cout;
30 using std::endl;
31 
32 int main(){
33  // TString folder="/cms5r0/ald77/archive/"+ntuple_date+"/skim/";
34  TString folder="/net/cms2/cms2r0/ald77/archive/"+ntuple_date+"/";
35  TString folder_ns="/net/cms2/cms2r0/ald77/archive/"+ntuple_date+"/";
36  // folder="/afs/cern.ch/user/m/manuelf/work/ucsb/2015_05_25/skim/";
37  // folder_ns="/afs/cern.ch/user/m/manuelf/work/ucsb/2015_05_25/skim/";
38 
39 
40  vector<TString> s_t1t;
41  s_t1t.push_back(folder+"*T1tttt*1500_*PU20*");
42  vector<TString> s_t1tc;
43  s_t1tc.push_back(folder+"*T1tttt*1200_*PU20*");
44  vector<TString> s_tt;
45  s_tt.push_back(folder+"*_TTJet*25ns*");
46  vector<TString> s_wjets;
47  s_wjets.push_back(folder+"*_WJets*");
48  vector<TString> s_singlet;
49  s_singlet.push_back(folder+"*_ST*");
50  vector<TString> s_ttv;
51  s_ttv.push_back(folder+"*TTW*");
52  s_ttv.push_back(folder+"*TTZ*");
53  vector<TString> s_other;
54  s_other.push_back(folder+"*QCD_HT*");
55  s_other.push_back(folder+"*_ZJet*");
56  s_other.push_back(folder+"*DY*");
57  s_other.push_back(folder+"*WH_HToBB*");
58  s_other.push_back(folder+"*_TTJet*");
59  vector<TString> s_allbkg;
60  s_allbkg.push_back(folder+"*QCD_HT*");
61  s_allbkg.push_back(folder+"*_ZJet*");
62  s_allbkg.push_back(folder+"*DY*");
63  s_allbkg.push_back(folder+"*WH_HToBB*");
64  s_allbkg.push_back(folder+"*_TTJet*25ns*");
65  s_allbkg.push_back(folder+"*TTW*");
66  s_allbkg.push_back(folder+"*TTZ*");
67  s_allbkg.push_back(folder+"*_T*channel*");
68  s_allbkg.push_back(folder+"*_WJets*");
69 
70  // Reading ntuples
71  vector<sfeats> Samples;
72  Samples.push_back(sfeats(s_t1t, "T1tttt(1500,100)", kBlack));
73  Samples.push_back(sfeats(s_t1tc, "T1tttt(1200,800)", kBlack,2));
74  Samples.push_back(sfeats(s_tt, "t#bar{t}, 1 l", dps::c_tt_1l, 1,"ntruleps==1"));
75  Samples.push_back(sfeats(s_tt, "t#bar{t}, 2 l", dps::c_tt_2l,1,"ntruleps>=2"));
76  Samples.push_back(sfeats(s_wjets, "W+jets", dps::c_wjets));
77  Samples.push_back(sfeats(s_singlet, "Single t", dps::c_singlet));
78  Samples.push_back(sfeats(s_ttv, "ttV", ra4::c_ttv));
79  // Some of Other has leptons, but very little, and this is the easiest to put had tt with QCD
80  Samples.push_back(sfeats(s_other, "Other", dps::c_other, 1,"ntruleps==0"));
81 
82  // Adding non-skimmed samples
83  vector<int> ra4_sam, ra4_sam_ns;
84  unsigned nsam(Samples.size());
85  for(unsigned sam(0); sam < nsam; sam++){
86  ra4_sam.push_back(sam);
87  ra4_sam_ns.push_back(nsam+sam);
88  vector<TString> sam_files = Samples[sam].file;
89  for(unsigned ifile(0); ifile < sam_files.size(); ifile++)
90  sam_files[ifile].ReplaceAll(folder, folder_ns);
91  Samples.push_back(sfeats(sam_files, Samples[sam].label, Samples[sam].color, Samples[sam].style,
92  Samples[sam].cut));
93  } // Loop over samples
94 
95  // Other samples
96  unsigned isec1 = Samples.size();
97  Samples.push_back(sfeats(s_t1t, "True", kBlack,1,"1","ntruels+ntrumus"));
98  Samples.push_back(sfeats(s_t1t, "Reco Rel. iso.", kGreen+2,2,"1","nels_reliso+nmus_reliso"));
99  Samples.push_back(sfeats(s_t1t, "Reco Mini iso.", 4,2,"1","nels+nmus"));
100 
101  unsigned isec6 = Samples.size();
102  Samples.push_back(sfeats(s_tt, "t#bar{t} 1l, m_{T} #leq 140", 1, 1,"ntruleps==1&&mt<=140"));
103  Samples.push_back(sfeats(s_tt, "t#bar{t} 1l, m_{T} > 140", 3, -1,"ntruleps==1&&mt>140"));
104  Samples.push_back(sfeats(s_tt, "t#bar{t} 2l, m_{T} #leq 140", 2, -1,"ntruleps>=2&&mt<=140"));
105  Samples.push_back(sfeats(s_tt, "t#bar{t} 2l, m_{T} > 140", 4, -1,"ntruleps>=2&&mt>140"));
106 
107  unsigned isec11 = Samples.size();
108  vector<TString> s_allbkg_ns = s_allbkg;
109  for(unsigned ifile(0); ifile < s_allbkg_ns.size(); ifile++)
110  s_allbkg_ns[ifile].ReplaceAll(folder, folder_ns);
111  Samples.push_back(sfeats(s_allbkg, "Exp. data", 1, -1)); Samples.back().isData = true;
112  Samples.push_back(sfeats(s_allbkg_ns, "Exp. data", 1, -1)); Samples.back().isData = true;
113 
114  vector<int> ra4_sec1;
115  ra4_sec1.push_back(isec1);
116  ra4_sec1.push_back(isec1+1);
117  ra4_sec1.push_back(isec1+2);
118 
119  vector<int> ra4_sec6;
120  ra4_sec6.push_back(isec6);
121  //ra4_sec6.push_back(isec6+1);
122  ra4_sec6.push_back(isec6+2);
123  ra4_sec6.push_back(isec6+3);
124 
125  //vector<int> ra4_sec11(ra4_sam), ra4_sec11_ns(ra4_sam_ns);
126  vector<int> ra4_sec11, ra4_sec11_ns;
127  ra4_sec11.push_back(isec11);
128  ra4_sec11_ns.push_back(isec11+1);
129  for(unsigned ind(0); ind<ra4_sam.size(); ind++) ra4_sec11.push_back(ra4_sam[ind]);
130  for(unsigned ind(0); ind<ra4_sam_ns.size(); ind++) ra4_sec11_ns.push_back(ra4_sam_ns[ind]);
131 
132  vector<int> ra4_tt_t1_noskim;
133  ra4_tt_t1_noskim.push_back(nsam);
134  ra4_tt_t1_noskim.push_back(nsam+1);
135  ra4_tt_t1_noskim.push_back(nsam+2);
136 
137 
138  vector<hfeats> vars;
139 
140  TString cuts("(nmus+nels)==1");
141  switch(section){
142  case 1: // Intro
143  cuts = "(nmus+nels)==1&&ht>500&&met>200&&njets>=7&&nbm>=2&&met>400";
144  vars.push_back(hfeats("mt",25,0,500, ra4_sam, "m_{T} [GeV]",cuts,140));
145  cuts += "&&mt>140";
146  vars.push_back(hfeats("mj",32,0,1600, ra4_sam, "M_{J} [GeV]",cuts,400));
147  cuts = "(nmus+nels)==1&&ht>500&&met>200&&njets>=9&&nbm>=2&&met>400";
148  vars.push_back(hfeats("mt",25,0,500, ra4_sam, "m_{T} [GeV]",cuts,140));
149  cuts += "&&mt>140";
150  vars.push_back(hfeats("mj",32,0,1600, ra4_sam, "M_{J} [GeV]",cuts,400));
151 
152  vars.push_back(hfeats("ntruels+ntrumus",5,-0.5,4.5, ra4_sec1, "Number of prompt e+#mu in T1tttt(1500,100)"));
153  vars.push_back(hfeats("ht",30,500,3500, ra4_sam, "H_{T} [GeV]",
154  "(nmus+nels)==1&&met>200&&njets>=7&&nbm>=2&&mt>140",500));
155  vars.push_back(hfeats("ht",30,500,3500, ra4_sam, "H_{T} [GeV]",
156  "(nmus+nels)==1&&met>200&&njets>=7&&nbm>=2&&mt>140&&mj>400",500));
157  vars.push_back(hfeats("ht",30,500,3500, ra4_sam, "H_{T} [GeV]",
158  "(nmus+nels)==1&&met>200&&njets>=7&&nbm>=2&&mt>140&&njets>=9",500));
159  break;
160  case 5: // Event selection - N-1 plots
161  // vars.push_back(hfeats("ht",35,0,3500, ra4_sam_ns, "H_{T} [GeV]",
162  // "(nmus+nels)==1&&met>200&&njets>="+minjets+"&&nbm>=2",500));
163  // cuts += "&&ht>500";
164  // vars.back().whichPlots = "1";
165  vars.push_back(hfeats("met",40,0,800, ra4_sam_ns, "MET [GeV]",
166  "(nmus+nels)==1&&ht>500&&njets>="+minjets+"&&nbm>=2",200));
167  cuts += "&&met>200";
168  vars.back().whichPlots = "1";
169  vars.push_back(hfeats("njets",18,-0.5,17.5, ra4_sam, "Number of jets",
170  "(nmus+nels)==1&&ht>500&&met>200&&nbm>=2",6.5));
171  cuts += "&&njets>="+minjets;
172  vars.back().whichPlots = "1";
173  vars.push_back(hfeats("nbm",7,-0.5,6.5, ra4_sam, "Number of b-tags (CSVM)",
174  "(nmus+nels)==1&&ht>500&&met>200&&njets>="+minjets,1.5));
175  cuts += "&&nbm>=2";
176  vars.back().whichPlots = "1";
177  // vars.push_back(hfeats("mt",25,0,500, ra4_sam, "m_{T} [GeV]",cuts,140));
178  // cuts += "&&mt>140";
179  // vars.push_back(hfeats("mj",32,0,1600, ra4_sam, "M_{J} [GeV]",cuts,mjthresh.Atof()));
180  // vars.back().whichPlots = "1";
181 
182  break;
183 
184  case 6: // Background estimation
185  cuts += "&&ht>500&&met>200";
186  vars.push_back(hfeats("mj",28,0,1400, ra4_sec6, "M_{J} [GeV]",cuts+"&&njets<=4", mjthresh.Atof()));
187  vars.push_back(hfeats("mj",28,0,1400, ra4_sec6, "M_{J} [GeV]",cuts+"&&njets>=5&&njets<=6", mjthresh.Atof()));
188  vars.push_back(hfeats("mj",28,0,1400, ra4_sec6, "M_{J} [GeV]",cuts+"&&njets>=7&&njets<=8", mjthresh.Atof()));
189  vars.push_back(hfeats("mj",28,0,1400, ra4_sec6, "M_{J} [GeV]",cuts+"&&njets>=9", mjthresh.Atof()));
190 
191  vars.push_back(hfeats("njets",7,-0.5,6.5, ra4_sec6, "Number of jets",cuts+"&&njets<=6"));
192  vars.push_back(hfeats("njets",6,6.5,12.5, ra4_sec6, "Number of jets",cuts+"&&njets>=7"));
193 
194  break;
195  case 11: // Commissioning
196  vars.push_back(hfeats("ht",17,0,3400, ra4_sec11_ns, "H_{T} [GeV]",
197  "(nmus+nels)==1&&met>200&&njets>="+minjets+"&&nbm>=2",500));
198  vars.back().whichPlots = "12";
199  vars.push_back(hfeats("met",20,0,800, ra4_sec11_ns, "MET [GeV]",
200  "(nmus+nels)==1&&ht>500&&njets>="+minjets+"&&nbm>=2",200));
201  vars.back().whichPlots = "12";
202  vars.push_back(hfeats("njets",18,-0.5,17.5, ra4_sec11, "Number of jets",
203  "(nmus+nels)==1&&ht>500&&met>200&&nbm>=2",6.5));
204  vars.back().whichPlots = "12";
205  vars.push_back(hfeats("nbm",7,-0.5,6.5, ra4_sec11, "Number of b-tags (CSVM)",
206  "(nmus+nels)==1&&ht>500&&met>200&&njets>="+minjets,1.5));
207  vars.back().whichPlots = "12";
208  cuts += "&&ht>500&&met>200&&njets>="+minjets+"&&nbm>=2";
209  vars.push_back(hfeats("mt",25,0,500, ra4_sec11, "m_{T} [GeV]",cuts,140));
210  vars.back().whichPlots = "12";
211  cuts += "&&mt>140";
212  vars.push_back(hfeats("mj",16,0,1600, ra4_sec11, "M_{J} [GeV]",cuts,mjthresh.Atof()));
213  vars.back().whichPlots = "12";
214 
215  luminosity = "1";
216  plot_style = "CMSPaper";
217  break;
218  default:
219  break;
220  }
221 
222  plot_distributions(Samples, vars, luminosity, plot_type, plot_style, "sim",false);
223 
224 
225 }
226 
void plot_distributions(std::vector< sfeats > Samples, std::vector< hfeats > vars, TString luminosity="10", TString filetype=".eps", TString namestyle="LargeLabels", TString dir="1d", bool doRatio=false, bool showcuts=false)
int main()
Definition: plot_note.cxx:32
STL namespace.
TString ntuple_date("2015_07_22")