ra4_macros  bede988c286599a3a84b77a4d788ac0a971e89f9
plot_dy_mj1.cxx
Go to the documentation of this file.
1 // plot_dy_mj1: Macro that makes plots mJ1 for MJs with and without leptons, and also
2 // MJ/mJ1 for a DY selection for different numbers of jets
3 
4 
5 #include <iostream>
6 #include <vector>
7 
8 #include "TChain.h"
9 #include "TH1D.h"
10 #include "TCanvas.h"
11 #include "TLegend.h"
12 #include "TLine.h"
13 #include "TString.h"
14 #include "TColor.h"
15 
16 #include "styles.hpp"
17 #include "utilities.hpp"
18 #include "utilities_macros.hpp"
19 
20 namespace {
21  TString luminosity="2.3";
22  TString plot_type=".pdf";
23  TString plot_style="CMSPaper_Supplementary";
24 }
25 
26 using namespace std;
27 using std::cout;
28 using std::endl;
29 
30 int main(){
31 
32  TString bfolder("");
33  string hostname = execute("echo $HOSTNAME");
34  if(Contains(hostname, "cms") || Contains(hostname, "compute-"))
35  bfolder = "/net/cms2"; // In laptops, you can't create a /net folder
36 
37  TString folder1l_zisr(bfolder+"/cms2r0/babymaker/babies/2015_11_20/data/singlelep/combined/skim_dy_ht300/"); //skim doesn't exist
38  TString foldermc_zisr(bfolder+"/cms2r0/babymaker/babies/2015_11_28/mc/skim_dy_ht300/");
39  TString foldermj="/net/cms5/cms5r0/manuelf/root/archive/15-01-30/";
40  TString foldermjnew(bfolder+"/cms2r0/babymaker/babies/2015_11_28/mc/");
41 
42  vector<TString> s_slep_dy;
43  s_slep_dy.push_back(folder1l_zisr+"*root");
44 
45  vector<TString> s_tt_dy;
46  s_tt_dy.push_back(foldermc_zisr+"*_TTJets*Lept*");
47  s_tt_dy.push_back(foldermc_zisr+"*_TTJets_HT*");
48 
49  vector<TString> s_ttv_dy;
50  s_ttv_dy.push_back(foldermc_zisr+"*_TTWJets*");
51  s_ttv_dy.push_back(foldermc_zisr+"*_TTZTo*");
52 
53  vector<TString> s_dyjets;
54  s_dyjets.push_back(foldermc_zisr+"*_DYJetsToLL*");
55 
56  vector<TString> s_other_dy;
57  s_other_dy.push_back(foldermc_zisr+"*_WJetsToLNu*");
58  s_other_dy.push_back(foldermc_zisr+"*_QCD_HT*");
59  s_other_dy.push_back(foldermc_zisr+"*_ZJet*");
60  s_other_dy.push_back(foldermc_zisr+"*_WWTo*");
61  s_other_dy.push_back(foldermc_zisr+"*ggZH_HToBB*");
62  s_other_dy.push_back(foldermc_zisr+"*ttHJetTobb*");
63  s_other_dy.push_back(foldermc_zisr+"*_ST_*");
64 
65 
66  // ttbar selection
67  TString lsp = "{#lower[-0.1]{#tilde{#chi}}#lower[0.2]{#scale[0.85]{^{0}}}#kern[-1.3]{#scale[0.85]{_{1}}}}";
68  TString t1t_label = "#scale[0.95]{#tilde{g}#kern[0.2]{#tilde{g}}, #tilde{g}#rightarrowt#kern[0.18]{#bar{t}}#kern[0.18]"+lsp;
69  vector<sfeats> Samples;
70  Samples.push_back(sfeats(s_slep_dy, "Data", kBlack,1,"(trig[4]||trig[8])&&pass")); Samples.back().isData = true;
71  Samples.push_back(sfeats(s_dyjets, "Z+jets", dps::c_wjets,1,"stitch"));
72  Samples.push_back(sfeats(s_tt_dy, "t#bar{t}, 2 true leptons", dps::c_tt_2l,1,"ntruleps>=2&&stitch"));
73  Samples.push_back(sfeats(s_tt_dy, "t#bar{t}, 1 true lepton", dps::c_tt_1l,1,"ntruleps<=1&&stitch"));
74  Samples.push_back(sfeats(s_ttv_dy, "ttV", ra4::c_ttv));
75  Samples.push_back(sfeats(s_other_dy, "Other", 2001, 1));
76 
77  vector<int> ra4_sam;
78  unsigned nsam(Samples.size());
79  for(unsigned sam(0); sam < nsam; sam++){
80  ra4_sam.push_back(sam);
81  } // Loop over samples
82 
83 
85  vector<TString> s_dyjetsmj;
86  s_dyjetsmj.push_back(foldermj+"*_DYJetsToLL_M-50_HT-*");
87  TString mj_s("M#lower[-.1]{_{J}}"), nj_s("N#lower[-.1]{_{jets}}"), ht_s("H#lower[-.1]{_{T}}");
88  int idy(Samples.size());
89  Samples.push_back(sfeats(s_dyjetsmj, mj_s+" without leptons", kRed+1,1,"1", "fjets_nolep_30_m[0]"));
90  Samples.push_back(sfeats(s_dyjetsmj, mj_s+" with RA4 leptons", kGreen+1,1,"1", "fjets_siglep_30_m[0]"));
91  Samples.push_back(sfeats(s_dyjetsmj, mj_s+" with jets-from-leptons", kAzure+2,1,"1", "fjets_30_m[0]"));
92 
93  vector<int> dy_sam, dy_mjs_sam;
94  for(unsigned sam(idy); sam < Samples.size(); sam++){
95  dy_mjs_sam.push_back(sam);
96  } // Loop over samples
97 
98  idy = Samples.size();
99  Samples.push_back(sfeats(s_dyjetsmj, "Z+jets ("+mj_s+" with jets-from-leptons)", kAzure+2,1,"1"));
100  dy_sam.push_back(idy);
101 
103  vector<TString> s_dyjetsmjnew;
104  s_dyjetsmjnew.push_back(foldermjnew+"*_DYJetsToLL_M-50_HT-*");
105  idy = Samples.size();
106  Samples.push_back(sfeats(s_dyjetsmjnew, "Z+jets ("+mj_s+" with jets-from-leptons)", kAzure+2,1,"1"));
107 
108  vector<int> dynew_sam;
109  for(unsigned sam(idy); sam < Samples.size(); sam++){
110  dynew_sam.push_back(sam);
111  } // Loop over samples
112 
113 
114  vector<hfeats> vars;
115 
116  vars.push_back(hfeats("fjets_30_phi[0]-mc_phi*(mc_id==23)",64,-3.2,3.2, dy_sam, "#Delta#phi(J_{1},Z)",
117  "fjets_30_m[0]>95&&fjets_30_m[0]<105",-1,"old_mj"));
118  vars.back().whichPlots = "3"; vars.back().addOverflow = false;
119  vars.push_back(hfeats("fjets_30_eta[0]-mc_eta*(mc_id==23)",64,-3.2,3.2, dy_sam, "#Delta#eta(J_{1},Z)",
120  "fjets_30_m[0]>95&&fjets_30_m[0]<105",-1,"old_mj"));
121  vars.back().whichPlots = "3"; vars.back().addOverflow = false;
122  vars.push_back(hfeats("fjets_30_m[0]",75,65,140, dy_mjs_sam, "m(J_{1}) [GeV]", "1",-1,"old_mj"));
123  vars.back().whichPlots = "3"; vars.back().addOverflow = false;
124 
125  vars.push_back(hfeats("fjets_nconst[0]",4,0.5,4.5, dynew_sam, "Number of AK4 jets in J_{1}",
126  "fjets_m[0]>95&&fjets_m[0]<105",-1,"new_mj"));
127  vars.back().whichPlots = "3";
128  vars.push_back(hfeats("fjets_m[0]",75,65,140, dynew_sam, "m(J_{1}) [GeV]", "1",-1,"new_mj"));
129  vars.back().whichPlots = "3"; vars.back().addOverflow = false;
130  vars.push_back(hfeats("fjets_phi[0]-mc_phi*(mc_id==23)",64,-3.2,3.2, dynew_sam, "#Delta#phi(J_{1},Z)",
131  "fjets_m[0]>95&&fjets_m[0]<105",-1,"new_mj"));
132  vars.back().whichPlots = "3"; vars.back().addOverflow = false;
133  vars.push_back(hfeats("fjets_eta[0]-mc_eta*(mc_id==23)",64,-3.2,3.2, dynew_sam, "#Delta#eta(J_{1},Z)",
134  "fjets_m[0]>95&&fjets_m[0]<105",-1,"new_mj"));
135  vars.back().whichPlots = "3"; vars.back().addOverflow = false;
136 
137 
138 
139  plot_distributions(Samples, vars, luminosity, plot_type, "RA4", "dy_mj1",false);
140 
141  vars.clear();
142  TString mll("(mumu_m*(mumu_m>0&&mumu_pt1>20)+elel_m*(elel_m>0&&elel_pt1>20))>80&&(mumu_m*(mumu_m>0&&mumu_pt1>20)+elel_m*(elel_m>0&&elel_pt1>20))<100");
143 
144  vars.push_back(hfeats("fjets_m[0]",20,0,500, ra4_sam, "m(J_{1}) [GeV]",
145  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets>=4&&"+mll));
146  vars.back().whichPlots = "12"; vars.back().normalize = true;
147 
148  vars.push_back(hfeats("mj",24,0,600, ra4_sam, "M_{J} [GeV]",
149  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets>=4&&"+mll));
150  vars.back().whichPlots = "12"; vars.back().normalize = true;
151 
152  vars.push_back(hfeats("fjets_m[0]",20,0,500, ra4_sam, "m(J_{1}) [GeV]",
153  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets==5&&"+mll));
154  vars.back().whichPlots = "12"; vars.back().normalize = true;
155 
156  vars.push_back(hfeats("mj",24,0,600, ra4_sam, "M_{J} [GeV]",
157  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets==5&&"+mll));
158  vars.back().whichPlots = "12"; vars.back().normalize = true;
159 
160  vars.push_back(hfeats("fjets_m[0]",20,0,500, ra4_sam, "m(J_{1}) [GeV]",
161  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets>=2&&"+mll));
162  vars.back().whichPlots = "12"; vars.back().normalize = true;
163 
164  vars.push_back(hfeats("mj",24,0,600, ra4_sam, "M_{J} [GeV]",
165  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets>=2&&"+mll));
166  vars.back().whichPlots = "12"; vars.back().normalize = true;
167 
168  vars.push_back(hfeats("fjets_m[0]",20,0,500, ra4_sam, "m(J_{1}) [GeV]",
169  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets==2&&"+mll));
170  vars.back().whichPlots = "12"; vars.back().normalize = true;
171 
172  vars.push_back(hfeats("mj",24,0,600, ra4_sam, "M_{J} [GeV]",
173  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets==2&&"+mll));
174  vars.back().whichPlots = "12"; vars.back().normalize = true;
175 
176  vars.push_back(hfeats("fjets_m[0]",20,0,500, ra4_sam, "m(J_{1}) [GeV]",
177  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets==3&&"+mll));
178  vars.back().whichPlots = "12"; vars.back().normalize = true;
179 
180  vars.push_back(hfeats("mj",24,0,600, ra4_sam, "M_{J} [GeV]",
181  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets==3&&"+mll));
182  vars.back().whichPlots = "12"; vars.back().normalize = true;
183 
184  vars.push_back(hfeats("fjets_m[0]",20,0,500, ra4_sam, "m(J_{1}) [GeV]",
185  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets==4&&"+mll));
186  vars.back().whichPlots = "12"; vars.back().normalize = true;
187 
188  vars.push_back(hfeats("mj",24,0,600, ra4_sam, "M_{J} [GeV]",
189  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets==4&&"+mll));
190  vars.back().whichPlots = "12"; vars.back().normalize = true;
191 
192 
193 
194 
195  plot_distributions(Samples, vars, luminosity, plot_type, plot_style, "dy_mj1",true);
196 }
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)
bool Contains(const std::string &text, const std::string &pattern)
STL namespace.
std::string execute(const std::string &cmd)
int main()
Definition: plot_dy_mj1.cxx:30