22 vector<double>
GetNEvents(vector<sfeats> AllSamples, vector<int> RelevantSamples, TString cut, TString
luminosity);
26 vector< vector<hfeats> > allvars;
30 TString folder =
"/cms7r0/heller/code/susy_cfa/out/skim/";
32 TString folder_noskim=
"archive/15-05-02//";
34 s_tt.push_back(folder+
"*_TTJet*");
35 vector<TString> s_tt_noskim;
36 s_tt_noskim.push_back(folder_noskim+
"*_TTJet*12.root");
37 vector<TString> s_wjets;
38 s_wjets.push_back(folder+
"*WJetsToLNu_HT*");
39 vector<TString> s_singlet;
40 s_singlet.push_back(folder+
"*_T*channel*");
41 vector<TString> s_ttv;
42 s_ttv.push_back(folder+
"*TTW*");
43 s_ttv.push_back(folder+
"*TTZ*");
44 vector<TString> s_other;
45 s_other.push_back(folder+
"*QCD_HT*");
46 s_other.push_back(folder+
"*_ZJet*");
47 s_other.push_back(folder+
"*DY*");
48 s_other.push_back(folder+
"*WH_HToBB*");
49 vector<TString> s_t1t;
50 s_t1t.push_back(folder+
"*T1tttt*1500_*PU20*");
51 vector<TString> s_t1tc;
52 s_t1tc.push_back(folder+
"*T1tttt*1200_*PU20*");
55 vector<TChain *> chain;
56 vector<sfeats> Samples;
88 vector<int> ra4_tt2l_t1;
89 ra4_tt2l_t1.push_back(0);
90 ra4_tt2l_t1.push_back(1);
91 ra4_tt2l_t1.push_back(3);
93 vector<TString> selections;
95 selections.push_back(
"mj>300&&ht>500&&met>200&&nbm>=1&&mt>140&&njets>=7&&(nmus+nels)==1");
96 selections.push_back(
"mj>400&&ht>500&&met>200&&nbm>=1&&mt>140&&njets>=7&&(nmus+nels)==1");
97 selections.push_back(
"mj>300&&ht>500&&met>400&&nbm>=1&&mt>140&&njets>=7&&(nmus+nels)==1");
99 vector< vector<double> > ra4_tt2l_t1_yields;
100 for(
unsigned int isel=0; isel<selections.size(); isel++){
101 ra4_tt2l_t1_yields.push_back(
GetNEvents(Samples, ra4_tt2l_t1, selections[isel],luminosity));
120 vector<TString> isotypes;
121 vector<TString> isonames;
122 vector<TString> relisotypes;
123 vector<TString> relisonames;
124 isonames.push_back(
"abs chg+neu mini isolation"); isotypes.push_back(
"(tks_pt)*min((tks_mini_ne+tks_mini_ch),(tks_r02_ne+tks_r02_ch))");
125 isonames.push_back(
"abs chg mini isolation"); isotypes.push_back(
"(tks_pt)*min((tks_mini_ch),(tks_r02_ch))");
127 isonames.push_back(
"abs chg+neu R=0.5 mini isolation"); isotypes.push_back(
"(tks_pt)*min((tks_mini_ne+tks_mini_ch),(tks_r05_ne+tks_r05_ch))");
128 isonames.push_back(
"abs chg+neu untruncated mini isolation"); isotypes.push_back(
"(tks_pt)*(tks_mini_ne+tks_mini_ch)");
129 isonames.push_back(
"abs chg R=0.5 mini isolation"); isotypes.push_back(
"(tks_pt)*min((tks_mini_ch),(tks_r05_ch))");
130 isonames.push_back(
"abs chg untruncated mini isolation"); isotypes.push_back(
"(tks_pt)*(tks_mini_ch)");
132 relisonames.push_back(
"rel chg+neu mini isolation"); relisotypes.push_back(
"min((tks_mini_ne+tks_mini_ch),(tks_r02_ne+tks_r02_ch))");
133 relisonames.push_back(
"rel chg mini isolation"); relisotypes.push_back(
"min((tks_mini_ch),(tks_r02_ch))");
135 relisonames.push_back(
"rel chg+neu R=0.5 mini isolation"); relisotypes.push_back(
"min((tks_mini_ne+tks_mini_ch),(tks_r05_ne+tks_r05_ch))");
136 relisonames.push_back(
"rel chg+neu untruncated mini isolation"); relisotypes.push_back(
"(tks_mini_ne+tks_mini_ch)");
137 relisonames.push_back(
"rel chg R=0.5 mini isolation"); relisotypes.push_back(
"min((tks_mini_ch),(tks_r05_ch))");
138 relisonames.push_back(
"rel chg untruncated mini isolation"); relisotypes.push_back(
"(tks_mini_ch)");
141 TString prompt =
"&&tks_from_w";
142 TString nonprompt =
"&&!tks_from_w";
143 TString fromPV =
"&&tks_from_pv>=2";
144 TString notfromPV =
"&&tks_from_pv<2";
146 vector<TString> tracktype;
147 tracktype.push_back(
"&&((tks_id*lep_charge)>0)&&(!tks_is_primary)&&tks_id*tks_id==121");
150 tracktype.push_back(
"&&((tks_id*lep_charge)>0)&&(!tks_is_primary)&&tks_id*tks_id==169");
151 tracktype.push_back(
"&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)");
152 tracktype.push_back(
"&&tks_pt>15&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)");
153 vector<TString> faketracknames;
154 faketracknames.push_back(
"non-prompt electron tracks");
157 faketracknames.push_back(
"non-prompt muon tracks");
158 faketracknames.push_back(
"non-prompt hadronic tracks");
159 faketracknames.push_back(
"non-prompt hadronic tracks, p_{T} > 15");
160 vector<TString> prompttracknames;
161 prompttracknames.push_back(
"prompt electron tracks");
164 prompttracknames.push_back(
"prompt muon tracks");
165 prompttracknames.push_back(
"prompt hadronic tracks");
166 prompttracknames.push_back(
"prompt hadronic tracks, p_{T} > 15");
169 for(
int itrack=0;itrack<4;itrack++){
171 for(
int isel=0; isel<1; isel++){
173 vars.push_back(
hfeats(
"tks_pt",30,0,150,ra4_tt2l_t1,
"track p_{T}, "+prompttracknames[itrack],selections[isel]+tracktype[itrack]+prompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
174 vars.push_back(
hfeats(
"tks_pt",30,0,150,ra4_tt2l_t1,
"track p_{T}, "+faketracknames[itrack],selections[isel]+tracktype[itrack]+nonprompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
176 vars.push_back(
hfeats(
"tks_mt",28,0,280,ra4_tt2l_t1,
"track m_{T}, "+prompttracknames[itrack],selections[isel]+tracktype[itrack]+prompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
177 vars.push_back(
hfeats(
"tks_mt",28,0,280,ra4_tt2l_t1,
"track m_{T}, "+faketracknames[itrack],selections[isel]+tracktype[itrack]+nonprompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
179 vars.push_back(
hfeats(
"tks_from_pv",6,-0.5,5.5,ra4_tt2l_t1,
"track is from PV, "+prompttracknames[itrack],selections[isel]+tracktype[itrack]+prompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
180 vars.push_back(
hfeats(
"tks_from_pv",6,-0.5,5.5,ra4_tt2l_t1,
"track is from PV, "+faketracknames[itrack],selections[isel]+tracktype[itrack]+nonprompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
182 vars.push_back(
hfeats(
"tks_dz",100,-0.2,0.2,ra4_tt2l_t1,
"track dz, "+prompttracknames[itrack],selections[isel]+tracktype[itrack]+prompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
183 vars.push_back(
hfeats(
"tks_dz",100,-0.2,0.2,ra4_tt2l_t1,
"track dz, "+faketracknames[itrack],selections[isel]+tracktype[itrack]+nonprompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
185 vars.push_back(
hfeats(
"tks_dz",100,-0.2,0.2,ra4_tt2l_t1,
"track dz, "+prompttracknames[itrack],selections[isel]+tracktype[itrack]+prompt+fromPV,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
186 vars.push_back(
hfeats(
"tks_dz",100,-0.2,0.2,ra4_tt2l_t1,
"track dz, "+faketracknames[itrack],selections[isel]+tracktype[itrack]+nonprompt+fromPV,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
188 vars.push_back(
hfeats(
"tks_dz",100,-0.2,0.2,ra4_tt2l_t1,
"track dz, "+prompttracknames[itrack],selections[isel]+tracktype[itrack]+prompt+notfromPV,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
189 vars.push_back(
hfeats(
"tks_dz",100,-0.2,0.2,ra4_tt2l_t1,
"track dz, "+faketracknames[itrack],selections[isel]+tracktype[itrack]+nonprompt+notfromPV,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
191 vars.push_back(
hfeats(
"tks_dxy",100,-0.2,0.2,ra4_tt2l_t1,
"track dxy, "+prompttracknames[itrack],selections[isel]+tracktype[itrack]+prompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
192 vars.push_back(
hfeats(
"tks_dxy",100,-0.2,0.2,ra4_tt2l_t1,
"track dxy, "+faketracknames[itrack],selections[isel]+tracktype[itrack]+nonprompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
194 vars.push_back(
hfeats(
"tks_dxy",100,-0.2,0.2,ra4_tt2l_t1,
"track dxy, "+prompttracknames[itrack],selections[isel]+tracktype[itrack]+prompt+fromPV,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
195 vars.push_back(
hfeats(
"tks_dxy",100,-0.2,0.2,ra4_tt2l_t1,
"track dxy, "+faketracknames[itrack],selections[isel]+tracktype[itrack]+nonprompt+fromPV,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
197 vars.push_back(
hfeats(
"tks_dxy",100,-0.2,0.2,ra4_tt2l_t1,
"track dxy, "+prompttracknames[itrack],selections[isel]+tracktype[itrack]+prompt+notfromPV,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
198 vars.push_back(
hfeats(
"tks_dxy",100,-0.2,0.2,ra4_tt2l_t1,
"track dxy, "+faketracknames[itrack],selections[isel]+tracktype[itrack]+nonprompt+notfromPV,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
201 for(
int iiso=0;iiso<2;iiso++){
202 vars.push_back(
hfeats(isotypes[iiso],50,0,25,ra4_tt2l_t1,isonames[iiso]+
", "+prompttracknames[itrack],selections[isel]+tracktype[itrack]+prompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
203 vars.push_back(
hfeats(isotypes[iiso],50,0,25,ra4_tt2l_t1,isonames[iiso]+
", "+faketracknames[itrack],selections[isel]+tracktype[itrack]+nonprompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
204 vars.push_back(
hfeats(relisotypes[iiso],60,0,3,ra4_tt2l_t1,relisonames[iiso]+
", "+prompttracknames[itrack],selections[isel]+tracktype[itrack]+prompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
205 vars.push_back(
hfeats(relisotypes[iiso],60,0,3,ra4_tt2l_t1,relisonames[iiso]+
", "+faketracknames[itrack],selections[isel]+tracktype[itrack]+nonprompt,-1,
"",
true,ra4_tt2l_t1_yields[isel]));
208 allvars.push_back(vars);
327 vector<double>
GetNEvents(vector<sfeats> AllSamples, vector<int> RelevantSamples, TString cut , TString
luminosity){
329 vector<double> nevents;
331 for(
unsigned int isam =0; isam <RelevantSamples.size(); isam++){
332 TChain chain(
"tree");
333 for(
unsigned insam(0); insam < AllSamples[RelevantSamples[isam]].file.size(); insam++) chain.Add(AllSamples[RelevantSamples[isam]].file[insam]);
335 double yield, uncertainty;
336 TString totCut = AllSamples[RelevantSamples[isam]].factor+
"*"+luminosity+
"*weight*("+cut+
"&&"+AllSamples[RelevantSamples[isam]].cut+
")";
338 nevents.push_back(yield);
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)
long getYieldErr(TChain &tree, TString cut, double &yield, double &uncertainty)
vector< double > GetNEvents(vector< sfeats > AllSamples, vector< int > RelevantSamples, TString cut, TString luminosity)