ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/cbrown/Development/Plotting/Modules/ActiveSamples.C
Revision: 1.17
Committed: Mon Jun 18 15:19:44 2012 UTC (12 years, 10 months ago) by buchmann
Content type: text/plain
Branch: MAIN
Changes since 1.16: +8 -6 lines
Log Message:
Introduced workaround for purw (analyzer has been updated); lepton splitting values for inclusive analysis have been added

File Contents

# Content
1 #include <iostream>
2 #include <vector>
3 #include <sys/stat.h>
4 #include <unistd.h>
5
6 #include <TMath.h>
7 #include <TColor.h>
8 #include <TPaveText.h>
9 #include <TRandom.h>
10 #include <TF1.h>
11
12 #ifndef SampleClassLoaded
13 #include "ActiveSamples.C"
14 #endif
15
16 #ifndef Verbosity
17 #define Verbosity 0
18 #endif
19 #ifndef HUSH
20 #define HUSH 1
21 #endif
22
23 void define_SMS_sample(bool showList, samplecollection &allsamples, samplecollection &signalsamples, samplecollection &scansample, bool loadall=false)
24 {
25 char hostname[1023];
26 gethostname(hostname,1023);
27
28 /*
29
30 CRUCIAL: The NAME needs to contain either "SMS" or "mSUGRA" for the SUSY scan algorithm (to be able to distinguish the two) -- this is now done automatically based on PlottingSetup::ScanSampleDirectory
31
32 */
33
34 string prefix="/shome/";
35 if((int)((string)hostname).find("falda")>-1) prefix="/scratch/";
36 string mSUGRAorSMS="mSUGRA";
37 if((int)((string)PlottingSetup::ScanSampleDirectory).find("SMS")>-1) mSUGRAorSMS="SMS";
38 if((int)((string)PlottingSetup::ScanSampleDirectory).find("GMSB")>-1) mSUGRAorSMS="GMSB";
39
40 /// NEW: Only indicate the very first file - please place scans in ntuples/SMS/ and adapt the name here and in SUSYScan.C (the files are loaded when needed avoiding high memory usage and startup times)
41 /// If you have different scans (e.g. you have a T5zzl one as well) you can create an additional directory such as SMS_T5zzl, but you need to change that below and in SUSYScan.C as well (where the files are loaded)
42 // scansample.AddSample(prefix+"buchmann/ntuples/"+PlottingSetup::ScanSampleDirectory+"/"+mSUGRAorSMS+"_clean_splitup_0_0.root",mSUGRAorSMS,1,1,false,true,0,kRed); // there is only one sample in the scan; we give each event weight "1"
43 // scansample.AddSample("/scratch/buchmann/buchmann/AllSamplesStartingAt10GeV_rest5_mSUGRA/mSUGRA_dilepton_m0-220to3000_m12-100to1000_tanb-10andA0-0_7TeV-Pythia6Z/output_8.root","mSUGRA",1,1,false,true,0,kRed); // there is only one sample in the scan; we give each event weight "1"
44 // scansample.AddSample("/shome/lbaeni/jzb/DileptonmSUGRAScan__pieces/mSUGRA_M0_400__M12_400.root","mSUGRA",1,1,false,true,0,kRed); // there is only one sample in the scan; we give each event weight "1"
45
46
47
48
49 if(loadall) {
50 for(int ix=0;ix<PlottingSetup::ScanXzones;ix++) {
51 for(int iy=1;iy<PlottingSetup::ScanYzones;iy++) {//note: the "zero-zero" sample is already loaded above!
52 scansample.AddSample((prefix+"buchmann/ntuples/"+PlottingSetup::ScanSampleDirectory+"/"+mSUGRAorSMS+"_clean_splitup_"+any2string(ix)+"_"+any2string(iy)+".root"),mSUGRAorSMS,1,1,false,true,ix*PlottingSetup::ScanXzones+iy,kRed); // there is only one sample in the scan; we give each event weight "1"
53 }
54 }
55 }
56
57
58 flag_this_change(__FUNCTION__,__LINE__,true);//PlottingSetup::RestrictToMassPeak
59 if(PlottingSetup::RestrictToMassPeak==false) {
60 PlottingSetup::cutmass=PlottingSetup::openmasscut;
61 // PlottingSetup::sidebandcut=TCut("mll<2&&mll>3");//impossible cut - because we don't want any sidebands!
62 PlottingSetup::sidebandcut=TCut("SideBandsHaveBeenCalledForOffPeakAnalysis__ERROR==1");//this will trigger errors whenever sidebands are called - perfect for checking any remaining uses (checked, and no uses were found).
63 PlottingSetup::genMassCut=PlottingSetup::openGenmasscut;//impossible cut - because we don't want any sidebands!
64 PlottingSetup::requireZ=false;
65 }
66 dout << "Currently configuration: The mass cut is \"" << PlottingSetup::cutmass << "\" and RestrictToMassPeak is currently set to " << PlottingSetup::RestrictToMassPeak << endl;
67
68
69 }
70
71
72 void define_samples(bool showList, samplecollection &allsamples, samplecollection &signalsamples, samplecollection &scansample, samplecollection &raresample, samplecollection &systsamples, samplecollection &qcdsamples)
73 {
74
75 /*
76 Good sources for XS:
77 https://twiki.cern.ch/twiki/bin/view/CMS/ProductionSummer2011
78 e.g.
79 https://twiki.cern.ch/twiki/bin/view/CMS/ProductionSummer2011#PYTHIA6
80
81 In general, all the xsec for datasets are in PREP, eg:
82 http://cms.cern.ch/iCMS/prep/campaignmanagement?id=Summer11
83
84 or
85
86 http://cms.cern.ch/iCMS/prep/requestmanagement?dsn=QCD_Pt-15to30_TuneZ2_7TeV_pythia6&campid=Summer11
87 */
88
89 // source for 8 TeV: https://twiki.cern.ch/twiki/bin/viewauth/CMS/StandardModelCrossSectionsat8TeV
90
91 flag_this_change(__FUNCTION__,__LINE__,true);//PlottingSetup::RestrictToMassPeak
92 if(!PlottingSetup::RestrictToMassPeak) {
93 PlottingSetup::cutmass=PlottingSetup::openmasscut;
94 PlottingSetup::sidebandcut=TCut("mll<2&&mll>3");//impossible cut - because we don't want any sidebands!
95 PlottingSetup::genMassCut=PlottingSetup::openGenmasscut;//impossible cut - because we don't want any sidebands!
96 }
97
98 float ZJetsCrossSection = 3048.0; //NNLO----------------------------------
99 if(PlottingSetup::is2012) ZJetsCrossSection=3503.71;
100 // at 8 TeV: 3503.71 (https://twiki.cern.ch/twiki/bin/view/CMS/Zpt8TeV)
101 float LowZJetsCrossSection = 11908; //https://twiki.cern.ch/twiki/bin/view/CMS/TWikiTop2011DataMCTrig
102
103 float TTbarCrossSection = 165.0;//(NLO) ---- 165.0; // approx. NNLO-----
104 if(PlottingSetup::is2012) TTbarCrossSection=225.197;
105 // at 8 TeV: 225.197 (https://twiki.cern.ch/twiki/bin/view/CMS/Zpt8TeV)
106 float WJetsCrossSection = 31314.0;//NNLO-------3.131e4; //NNLO------------
107 float ZnunuCrossSection = 5760.0;//NNLO -------4.5e+3; //(LO);------------
108 //Single top x-sections from here:
109 //https://twiki.cern.ch/twiki/bin/view/CMS/SingleTopSigma
110 float SingleTopSCrossSection = 4.63; // NLO;----------------------------------
111 float SingleTopTCrossSection = 64.57; // NLO;--------------------------------
112 float SingleTopUCrossSection = 15.74; // NLO;----------------------------------
113 float VVJetsCrossSection = 4.8; // LO;-------------------------------------
114 /* float LM0CrossSection = 38.93 *1.41 ;
115 float LM1CrossSection = 4.888 *1.34 ;
116 float LM2CrossSection =0.6027 *1.33 ;
117 float LM3CrossSection = 3.438*1.40 ; // LO*k*/
118 float LM4CrossSection = 1.879*1.35; // k*LO
119 if(PlottingSetup::is2012) LM4CrossSection=2.88199; //(only LO, no k factor)
120 /*
121 float LM5CrossSection = 0.473*1.34; // k*LO*/
122 float LM6CrossSection = 0.3104*1.30; // k*LO
123 if(PlottingSetup::is2012) LM6CrossSection=0.501773;//(only LO, no k factor)
124 /*
125 float LM7CrossSection = 1.209*1.11; // k*LO*/
126 float LM8CrossSection = 0.7300*1.41; // k*LO
127 if(PlottingSetup::is2012) LM8CrossSection=1.14;
128 /* float LM9CrossSection = 7.134*1.48; // k*LO
129 float LM10CrossSection = 0.04778*1.22 ; // k*LO
130 float LM11CrossSection = 0.8236 *1.35 ; // k*LO
131 float LM12CrossSection = 4.414 *1.34 ; // k*LO
132 float LM13CrossSection = 6.899*1.42 ; // k*LO*/
133 //the following numbers are from the MadGraphStandardModel210Summary as linked on the GeneratorProduction2011 page
134 // float QCD50to100CrossSection=30000000; // not used
135 //float QCD100to250CrossSection=7000000;
136 //float QCD250to500CrossSection=171000;
137 //float QCD500to1000CrossSection=5200;
138 //float QCD1000toInfCrossSection=83.0;
139
140 // float totEventsQCD50to100=207418.0; // not used
141 //long totEventsQCD100to250 = 638792;
142 //long totEventsQCD250to500 = 344454;
143 //long totEventsQCD500to1000 = (long)10e10; //unknown but now suppressed. (no event passes anyway)
144 //long totEventsQCD1000toInf = 163185;
145
146 long totEventsZjets = 32005720;//summer11
147 long totEventslowZjets = 10272470;
148
149 // long totEventsZjetsD6T = 2543706;//summer11
150 // long totEventsZjetsD6Tlow = 181799;//summer11
151
152 //spring:2313911.0;//2743142.0; // DYJetsToLL_TuneZ2_M-50_7TeV-madgraph-tauola
153 long totEventsTTbar = 3701947;//summer11
154 //1161621.0;//Spring//1144028.0; // PabloV13/TTJets_TuneZ2_7TeV-madgraph-tauola
155 long totEventsWJets = 56674902;//summer11
156 //15010237.0;//spring//14350756.0; /// WJetsToLNu_TuneZ2_7TeV-madgraph-tauola.root
157 long totEventsZnunu = 2106977;//2167964.0; //ZinvisibleJets_7TeV-madgraph.root
158 long totEventsVVJets = 959076;//509072.0;
159 long totEventsSingleTopS = 493868;//489472.0;
160 long totEventsSingleTopT = 475460;//477610.0;
161 long totEventsSingleTopU = 489417;//477599.0;
162 /* long totEventsLM0 = 1234567;//bad guess, will be replaced.
163 long totEventsLM1 = 1234567;//bad guess, will be replaced.
164 long totEventsLM2 = 1234567;//bad guess, will be replaced.*/
165 long totEventsLM3 = 220000;//bad guess, will be replaced.
166 /* long totEventsLM4 = 218380;
167 long totEventsLM5 = 220000;
168 long totEventsLM6 = 220000;
169 long totEventsLM7 = 217800;*/
170 long totEventsLM8 = 217800;/*
171 long totEventsLM9 = 220000;
172 long totEventsLM10 = 1234567;
173 long totEventsLM11 = 216999;
174 long totEventsLM12 = 217400;
175 long totEventsLM13 = 1234567;*/
176
177
178 Int_t nice_blue = TColor::GetColor("#2E9AFE");
179 Int_t nice_green = TColor::GetColor("#81f781");
180 // Int_t nice_red = TColor::GetColor("#F78181");
181 Int_t nice_pink = TColor::GetColor("#F781BE");
182 Int_t nice_orange= TColor::GetColor("#F7BE81");//#FA9624
183 Int_t nice_black = TColor::GetColor("#2A0A1B");//black with a bit of purple :-)
184
185
186 Int_t dy_color = nice_blue;
187 Int_t wjets_color = kGray;
188 Int_t ttbar_color = nice_green;
189 Int_t singletop_color = nice_orange;
190 Int_t qcd_color = nice_black;
191 Int_t diboson_color = nice_pink;
192 Int_t lm_color = kRed;
193
194 dy_color = kYellow;
195 wjets_color = kGray;
196 ttbar_color = kMagenta+2;
197 singletop_color = kBlue;
198 qcd_color = kPink;
199 diboson_color = kGreen+2;
200 lm_color = kViolet+7;
201
202 // Int_t rare_color = nice_blue;
203
204 char hostname[1023];
205 gethostname(hostname,1023);
206
207 string prefix="/shome/";
208 if((int)((string)hostname).find("falda")>-1) prefix="/scratch/";
209
210 if(!PlottingSetup::is2012) {
211 allsamples.AddSample(prefix+"buchmann/ntuples/Data/AllData_Complete_4653_ipb_PAPER.root","Data",1,1,true,false,0,kBlack);
212 allsamples.AddSample(prefix+"buchmann//ntuples/MC/NewSelectionForPaper/NewlyReweighted/DYJetsToLL_TuneZ2_M-50_7TeV-madgraph-tauola_Summer11___NTupleV020300.root","Z+Jets",totEventsZjets,ZJetsCrossSection,false,false,7,dy_color);
213 allsamples.AddSample(prefix+"buchmann/ntuples/MC/Partial_DYJetsToLL_M-10To50_TuneZ2_7TeV-madgraph__Fall11-PU_S6_START42_V14B-v1__AODSIM.root","Z+Jets",totEventslowZjets,LowZJetsCrossSection,false,false,7,dy_color);
214 allsamples.AddSample(prefix+"/buchmann/ntuples/MC/NewSelectionForPaper/CorrectFull2011PileUp/TTJets_TuneZ2_7TeV-madgraph-tauola_Summer11_3.root","t#bar{t}",totEventsTTbar,TTbarCrossSection,false,false,1,ttbar_color);//summer11
215 allsamples.AddSample(prefix+"/buchmann/ntuples/MC/NewSelectionForPaper/CorrectFull2011PileUp/WJetsToLNu_TuneZ2_7TeV-madgraph-tauola_Summer11_2.root","W+Jets",totEventsWJets,WJetsCrossSection,false,false,3,wjets_color);//summer
216 allsamples.AddSample(prefix+"/buchmann/ntuples/MC/NewSelectionForPaper/CorrectFull2011PileUp/VVJetsTo4L_TuneD6T_7TeV-madgraph-tauola.root","WW/WZ/ZZ",totEventsVVJets,VVJetsCrossSection,false,false,4,diboson_color);
217 allsamples.AddSample(prefix+"/buchmann/ntuples/MC/NewSelectionForPaper/CorrectFull2011PileUp/TToBLNu_TuneZ2_s-channel_7TeV-madgraph_2.root","Single-top",totEventsSingleTopS,SingleTopSCrossSection,false,false,2,singletop_color);
218 allsamples.AddSample(prefix+"/buchmann/ntuples/MC/NewSelectionForPaper/CorrectFull2011PileUp/TToBLNu_TuneZ2_t-channel_7TeV-madgraph.root","Single-top",totEventsSingleTopT,SingleTopTCrossSection,false,false,2,singletop_color);
219 allsamples.AddSample(prefix+"/buchmann/ntuples/MC/NewSelectionForPaper/CorrectFull2011PileUp/TToBLNu_TuneZ2_tW-channel_7TeV-madgraph.root","Single-top",totEventsSingleTopU,SingleTopUCrossSection,false,false,2,singletop_color);
220 allsamples.AddSample(prefix+"/buchmann/ntuples/MC/NewSelectionForPaper/CorrectFull2011PileUp/ZinvisibleJets_7TeV-madgraph.root","Z nunu",totEventsZnunu,ZnunuCrossSection,false,false,4,diboson_color);
221 allsamples.AddSample(prefix+"/buchmann/ntuples/MC/JZBplus/WGstarToLNu2E_TuneZ2_7TeV-madgraph-tauola__Summer11-PU_S4_START42_V11-v1__AODSIM.root","W+#gamma",266882,5.546 ,false,false,5,kGreen);
222 // allsamples.AddSample(prefix+"/buchmann/ntuples/MC/JZBplus/GVJets_7TeV-madgraph-Summer11-PU_S4.root","#gamma+VJets",1067879,56.64 ,false,false,6,kRed);
223 //allsamples.AddSample("/shome/buchmann/ntuples/MC/LM4_SUSY_sftsht_7TeV-pythia6__Summer11-PU_S4_START42_V11-v2_novtx_fixed3___WITHGENINFO.root","LM4",totEventsLM4,LM4CrossSection,false,true,8,lm_color);
224 // allsamples.AddSample("/shome//lbaeni/jzb/ntuples/MC/JZBplus/SignalSamples/LM8_SUSY_sftsht_7TeV-pythia6.root","LM8",totEventsLM8,LM8CrossSection,false,true,8,lm_color);
225 allsamples.AddSample("/shome/lbaeni/jzb/DileptonmSUGRAScan__pieces/mSUGRA_M0_200__M12_440.root","LM8",10000,0.132,false,true,8,lm_color);
226
227 } else {
228
229 write_info(__FUNCTION__,"Setting up 2012 configuration - once you've stopped looking at 2011 data please make this the default!");
230 PlottingSetup::basicqualitycut=TCut("(pfJetGoodNum40>=2&&pfJetGoodID[0]!=0)&&(pfJetGoodNum40>=2&&pfJetGoodID[1]!=0)"&&PlottingSetup::basiccut);//don't use this for the "essential cut", because we want to plot nJets as well as mll in the inclusive case; we thus use it as an addition nJets cut.
231 PlottingSetup::cutnJets=TCut("pfJetGoodNum40>=3"&&PlottingSetup::basicqualitycut);
232 PlottingSetup::luminosity=PlottingSetup::luminosity2012;
233 PlottingSetup::lumiuncert=PlottingSetup::lumiuncert2012;
234
235 // cJZB response correction (705 /pb) :
236 PlottingSetup::jzbvariabledata="(jzb[1]+0.0656534*pt)";
237 PlottingSetup::jzbvariablemc="(jzb[1]+0.0322238*pt)";
238
239 if(!PlottingSetup::RestrictToMassPeak) {
240 PlottingSetup::jzbvariabledata="(((id1==0&&id1==id2)*(jzb[1]+0.070529*pt))+((id1==1&&id1==id2)*(jzb[1]+0.0572925*pt))+((id1!=id2)*(jzb[1]-0.0639108*pt)))";
241 PlottingSetup::jzbvariablemc="(((id1==0&&id1==id2)*(jzb[1]+0.0419425*pt))+((id1==1&&id1==id2)*(jzb[1]+0.0327933*pt))+((id1!=id2)*(jzb[1]-0.0373679*pt)))";
242
243 }
244
245
246 // allsamples.AddSample("/shome/buchmann/ntuples/Data/Data_920ipb_UpdatedTriggers_updatedJetID_v2.root","Data",1,1,true,false,0,kBlack);
247 allsamples.AddSample("/shome/buchmann/ntuples/Data/Data_2420ipb_correctJSON.root","Data",1,1,true,false,0,kBlack);
248
249 allsamples.AddSample("/shome/buchmann/ntuples/MC8tev/DYJetsToLL_M-50_TuneZ2Star_8TeV-madgraph-tarball-Summer12-PU_S7_START52_V9-v2.root","Z+Jets",0,ZJetsCrossSection,false,false,7,dy_color);
250 allsamples.AddSample("/shome/buchmann/ntuples/MC8tev/TTJets_TuneZ2star_8TeV-madgraph-tauola-Summer12-PU_S7_START52_V9-v1.root","t#bar{t}",0,TTbarCrossSection,false,false,1,ttbar_color);
251 allsamples.AddSample("/shome/buchmann/ntuples/MC8tev/LM4_leo____leo-PYTHIA6_SUSY_LM4_sftsht_8TeV_GEN_FASTSIM-2012_Startup_inTimeOnly-V3-84.root","LM4",0,LM4CrossSection,false,true,1,lm_color);
252 // allsamples.AddSample("/shome/buchmann/ntuples/MC8tev/leo-PYTHIA6_SUSY_LM6_sftsht_8TeV_GEN_FASTSIM-2012_Startup_inTimeOnly.root","LM6",0,LM6CrossSection,false,true,1,lm_color);
253
254 /* if(PlottingSetup::DoBTag) {
255 PlottingSetup::jzbvariabledata="(jzb[1]+0.0924584*pt)";
256 PlottingSetup::jzbvariablemc="(jzb[1]+0.0477569*pt)";
257 }*/
258
259 }
260 if(!PlottingSetup::RestrictToMassPeak) {
261 if(!PlottingSetup::is2012) signalsamples.AddSample("/shome/buchmann//ntuples/MC/NewSelectionForPaper/NewlyReweighted/DYJetsToLL_TuneZ2_M-50_7TeV-madgraph-tauola_Summer11___NTupleV020300.root","LM8",totEventsLM8,LM8CrossSection,false,true,8,lm_color);
262 }
263
264
265 if(PlottingSetup::is2012) {
266 signalsamples.AddSample("/shome/buchmann/ntuples/MC8tev/LM4_leo____leo-PYTHIA6_SUSY_LM4_sftsht_8TeV_GEN_FASTSIM-2012_Startup_inTimeOnly-V3-84.root","LM4",0,LM4CrossSection,false,true,1,lm_color);
267 // signalsamples.AddSample("/shome/buchmann/ntuples/MC8tev/leo-PYTHIA6_SUSY_LM6_sftsht_8TeV_GEN_FASTSIM-2012_Startup_inTimeOnly.root","LM6",0,LM6CrossSection,false,true,2,lm_color);
268 signalsamples.AddSample("/shome/buchmann/ntuples/MC8tev/leo-PYTHIA6_SUSY_LM8_sftsht_8TeV_GEN_FASTSIM-2012_Startup_inTimeOnly.root","LM8",0,LM6CrossSection,false,true,3,lm_color);
269 cutWeight=TCut("PUweight");
270 }
271
272
273 // systsamples.AddSample(prefix+"buchmann/ntuples/MC/NewSelectionForPaper/HighStatSamples/DYJetsToLL_TuneZ2_M-50_7TeV-madgraph-tauola_Fall11-PU_S6_START42_V14B-v1.root","Z+Jets",18368890,ZJetsCrossSection,false,false,7,dy_color);
274
275 if(!PlottingSetup::is2012) {
276 systsamples.AddSample(prefix+"buchmann//ntuples/MC/NewSelectionForPaper/NewlyReweighted/DYJetsToLL_TuneZ2_M-50_7TeV-madgraph-tauola_Summer11___NTupleV020300.root","Z+Jets",32005720,ZJetsCrossSection,false,false,7,dy_color);
277 systsamples.AddSample(prefix+"buchmann/ntuples/MC/NewSelectionForPaper/HighStatSamples/TTJets_Fall11-PU_S6_START42_V14B.root","t#bar{t}",58370118,TTbarCrossSection,false,false,1,ttbar_color);//summer11
278 } else {
279 systsamples.AddSample("/shome/pablom/tmp/CMSSW_5_2_5/src/DiLeptonAnalysis/NTupleProducer/macros/mc/DYJetsToLL_M-50_TuneZ2Star_8TeV-madgraph-tarball-Summer12-PU_S7_START52_V9-v2.root","Z+Jets",0,ZJetsCrossSection,false,false,7,dy_color);
280 systsamples.AddSample("/shome/pablom/tmp/CMSSW_5_2_5/src/DiLeptonAnalysis/NTupleProducer/macros/mc/V03-03-00_TTJets_TuneZ2star_8TeV-madgraph-tauola-Summer12-PU_S7_START52_V9-v1.root","t#bar{t}",0,TTbarCrossSection,false,false,1,ttbar_color);
281 }
282
283
284 // XS taken from:
285 // https://twiki.cern.ch/twiki/bin/view/CMS/QCDGammaPlusJetQCD11005
286
287 if(!PlottingSetup::RestrictToMassPeak) {
288 PlottingSetup::cutmass=PlottingSetup::openmasscut;
289 PlottingSetup::sidebandcut=TCut("SideBandsHaveBeenCalledForOffPeakAnalysis__ERROR==1");//this will trigger errors whenever sidebands are called - perfect for checking any remaining uses (checked, and no uses were found).
290 PlottingSetup::genMassCut=PlottingSetup::openGenmasscut;
291 PlottingSetup::requireZ=false;
292 }
293
294
295 if(PlottingSetup::DoBTag) {
296 PlottingSetup::cutnJets=PlottingSetup::cutnJets&&PlottingSetup::bTagRequirement;
297 }
298
299
300
301 if(showList) allsamples.ListSamples();
302
303 }