diff --git a/TopAnalysis/data/era2016/fourtops-systs.json b/TopAnalysis/data/era2016/fourtops-systs.json new file mode 100644 index 00000000000..510abbc3566 --- /dev/null +++ b/TopAnalysis/data/era2016/fourtops-systs.json @@ -0,0 +1,16 @@ +{ + "MC13TeV_TTTT": [ + 0.0092, + 0, + "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}t#bar{t}", + "#0037AD", + true, + false, + 1 + ], + "MC13TeV_TTTT_isrup": [0.0092, 0, "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-isrup-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "t#bar{t}t#bar{t} isr up", "#999999", false, false, 1], + "MC13TeV_TTTT_isrdn": [0.0092, 0, "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-isrdown-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "t#bar{t}t#bar{t} isr dn", "#999999", false, false, 1], + "MC13TeV_TTTT_fsrup": [0.0092, 0, "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-fsrup-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "t#bar{t}t#bar{t} fsr up", "#999999", false, false, 1], + "MC13TeV_TTTT_fsrdn": [0.0092, 0, "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-fsrdown-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "t#bar{t}t#bar{t} fsr dn", "#999999", false, false, 1] +} \ No newline at end of file diff --git a/TopAnalysis/data/era2016/note-samples-fourtops.md b/TopAnalysis/data/era2016/note-samples-fourtops.md new file mode 100644 index 00000000000..4b756529a4c --- /dev/null +++ b/TopAnalysis/data/era2016/note-samples-fourtops.md @@ -0,0 +1,104 @@ +Four tops +- MC13TeV_TTTT + +ttbar +- MC13TeV_TTJets + +Single top +- MC13TeV_SingleTbar_tW +- MC13TeV_SingleT_tW +- MC13TeV_SingleTbar_t +- MC13TeV_SingleT_t + +W +- MC13TeV_W0Jets +- MC13TeV_W1Jets +- MC13TeV_W2Jets + +Drell-Yan +- MC13TeV_DY50toInf_mlm +- MC13TeV_DY10to50 + +Multiboson +- MC13TeV_ZZTo2L2Nu +- MC13TeV_ZZTo2L2Q +- MC13TeV_WWToLNuQQ +- MC13TeV_WWTo2L2Nu +- MC13TeV_WZTo3LNu + +ttbar + V +- MC13TeV_TTWToQQ +- MC13TeV_TTZToQQ +- MC13TeV_TTZToLLNuNu + +Rares +- MC13TeV_tZq +- MC13TeV_ZZ4L +- MC13TeV_GGHZZ4L +- MC13TeV_VHtoNonbb +- MC13TeV_WWW +- MC13TeV_WWZ +- MC13TeV_WZZ +- MC13TeV_ZZZ +- MC13TeV_TTWW +- MC13TeV_TTTW +- MC13TeV_TTWZ +- MC13TeV_TTZZ +- MC13TeV_TTWH +- MC13TeV_TTZH +- MC13TeV_TTHH +- MC13TeV_TTTJ + +four tops isr up +- MC13TeV_TTTT_isrup + +four tops isr dn +- MC13TeV_TTTT_isrdn + +four tops fsr up +- MC13TeV_TTTT_fsrup + +four tops fsr dn +- MC13TeV_TTTT_fsrdn + +Data +- Data13TeV_SingleMuon_2016B +- Data13TeV_SingleMuon_2016C +- Data13TeV_SingleMuon_2016D +- Data13TeV_SingleMuon_2016E +- Data13TeV_SingleMuon_2016F +- Data13TeV_SingleMuon_2016G +- Data13TeV_SingleMuon_2016Hv2 +- Data13TeV_SingleMuon_2016Hv3 +- Data13TeV_SingleElectron_2016B +- Data13TeV_SingleElectron_2016C +- Data13TeV_SingleElectron_2016D +- Data13TeV_SingleElectron_2016E +- Data13TeV_SingleElectron_2016F +- Data13TeV_SingleElectron_2016G +- Data13TeV_SingleElectron_2016Hv2 +- Data13TeV_SingleElectron_2016Hv3 +- Data13TeV_MuonEG_2016B +- Data13TeV_MuonEG_2016C +- Data13TeV_MuonEG_2016D +- Data13TeV_MuonEG_2016E +- Data13TeV_MuonEG_2016F +- Data13TeV_MuonEG_2016G +- Data13TeV_MuonEG_2016Hv2 +- Data13TeV_MuonEG_2016Hv3 +- Data13TeV_DoubleEG_2016B +- Data13TeV_DoubleEG_2016C +- Data13TeV_DoubleEG_2016D +- Data13TeV_DoubleEG_2016E +- Data13TeV_DoubleEG_2016F +- Data13TeV_DoubleEG_2016G +- Data13TeV_DoubleEG_2016Hv2 +- Data13TeV_DoubleEG_2016Hv3 +- Data13TeV_DoubleMuon_2016B +- Data13TeV_DoubleMuon_2016C +- Data13TeV_DoubleMuon_2016D +- Data13TeV_DoubleMuon_2016E +- Data13TeV_DoubleMuon_2016F +- Data13TeV_DoubleMuon_2016G +- Data13TeV_DoubleMuon_2016Hv2 +- Data13TeV_DoubleMuon_2016Hv3 \ No newline at end of file diff --git a/TopAnalysis/data/era2016/samples-fourtops-nominal.json b/TopAnalysis/data/era2016/samples-fourtops-nominal.json new file mode 100644 index 00000000000..67449d29cd3 --- /dev/null +++ b/TopAnalysis/data/era2016/samples-fourtops-nominal.json @@ -0,0 +1,188 @@ +{ + "MC13TeV_TTTT": [ + 0.0092, + 0, + "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}t#bar{t}", + "#0037AD", + true, + false, + 1 + ], + "MC13TeV_TTJets": [832, + 0, + "/TT_TuneCUETP8M2T4_13TeV-powheg-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}", + "#F0C600", + true, + false, + 1 + ], + "MC13TeV_SingleTbar_tW": [35.85, + 0, + "/ST_tW_antitop_5f_inclusiveDecays_13TeV-powheg-pythia8_TuneCUETP8M2T4/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_SingleT_tW": [35.85, + 0, + "/ST_tW_top_5f_inclusiveDecays_13TeV-powheg-pythia8_TuneCUETP8M2T4/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_SingleTbar_t": [80.95, + 0, + "/ST_t-channel_antitop_4f_inclusiveDecays_TuneCUETP8M2T4_13TeV-powhegV2-madspin/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_SingleT_t": [136.02, + 0, + "/ST_t-channel_top_4f_inclusiveDecays_TuneCUETP8M2T4_13TeV-powhegV2-madspin/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_W0Jets": [49540, 0, "/WToLNu_0J_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", "W", "#8E00E3", false, false, 1], + "MC13TeV_W1Jets": [8041, 0, "/WToLNu_1J_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_backup_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "W", "#8E00E3", false, false, 1], + "MC13TeV_W2Jets": [3052, 0, "/WToLNu_2J_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", "W", "#8E00E3", false, false, 1], + "MC13TeV_DY50toInf_mlm": [6025.0, 0, "/DYJetsToLL_M-50_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v2/MINIAODSIM", "DY", "#0CAFFA", false, false, 1], + "MC13TeV_DY10to50": [18610.0, 0, "/DYJetsToLL_M-10to50_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "DY", "#0CAFFA", false, false, 1], + "MC13TeV_ZZTo2L2Nu": [0.564, + 0, + "/ZZTo2L2Nu_13TeV_powheg_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_ZZTo2L2Q": [3.22, + 0, + "/ZZTo2L2Q_13TeV_amcatnloFXFX_madspin_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_WWToLNuQQ": [49.997, + 0, + "/WWToLNuQQ_13TeV-powheg/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_WWTo2L2Nu": [12.178, + 0, + "/WWTo2L2Nu_13TeV-powheg/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_WZTo3LNu": [5.26, + 0, + "/WZTo3LNu_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_TTZToQQ": [0.5297, + 0, + "/TTZToQQ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}+V", + "#F600FA", + false, + false, + 1 + ], + "MC13TeV_TTZToLLNuNu": [0.2529, + 0, + "/TTZToLLNuNu_M-10_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", + "t#bar{t}+V", + "#F600FA", + false, + false, + 1 + ], + + "MC13TeV_tZq": [1.256, 0, "/tZq_ll_4f_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_ZZ4L": [1.256, 0, "/ZZTo4L_13TeV_powheg_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_GGHZZ4L": [0.01181, 0, "/GluGluHToZZTo4L_M125_13TeV_powheg2_JHUgenV6_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_VHtoNonbb": [0.9561, 0, "/VHToNonbb_M125_13TeV_amcatnloFXFX_madspin_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_WWW": [0.2086, 0, "/WWW_4F_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_WWZ": [0.1651, 0, "/WWZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_WZZ": [0.05565, 0, "/WZZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_ZZZ": [0.01398, 0, "/ZZZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTWW": [0.01150, 0, "/TTWW_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v3/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTTW": [0.000788, 0, "/TTTW_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTWZ": [0.003884, 0, "/TTWZ_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTZZ": [0.001982, 0, "/TTZZ_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTWH": [0.001582, 0, "/TTWH_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v3/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTZH": [0.001535, 0, "/TTZH_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTHH": [0.000757, 0, "/TTHH_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTTJ": [0.000474, 0, "/TTTJ_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + + "Data13TeV_SingleMuon_2016B": [1.0, 1, "/SingleMuon/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016C": [1.0, 1, "/SingleMuon/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016D": [1.0, 1, "/SingleMuon/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016E": [1.0, 1, "/SingleMuon/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016F": [1.0, 1, "/SingleMuon/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016G": [1.0, 1, "/SingleMuon/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016Hv2": [1.0, 1, "/SingleMuon/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016Hv3": [1.0, 1, "/SingleMuon/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_SingleElectron_2016B": [1.0, 1, "/SingleElectron/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016C": [1.0, 1, "/SingleElectron/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016D": [1.0, 1, "/SingleElectron/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016E": [1.0, 1, "/SingleElectron/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016F": [1.0, 1, "/SingleElectron/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016G": [1.0, 1, "/SingleElectron/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016Hv2": [1.0, 1, "/SingleElectron/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016Hv3": [1.0, 1, "/SingleElectron/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_MuonEG_2016B": [1.0, 1, "/MuonEG/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016C": [1.0, 1, "/MuonEG/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016D": [1.0, 1, "/MuonEG/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016E": [1.0, 1, "/MuonEG/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016F": [1.0, 1, "/MuonEG/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016G": [1.0, 1, "/MuonEG/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016Hv2": [1.0, 1, "/MuonEG/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016Hv3": [1.0, 1, "/MuonEG/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_DoubleEG_2016B": [1.0, 1, "/DoubleEG/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016C": [1.0, 1, "/DoubleEG/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016D": [1.0, 1, "/DoubleEG/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016E": [1.0, 1, "/DoubleEG/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016F": [1.0, 1, "/DoubleEG/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016G": [1.0, 1, "/DoubleEG/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016Hv2": [1.0, 1, "/DoubleEG/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016Hv3": [1.0, 1, "/DoubleEG/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_DoubleMuon_2016B": [1.0, 1, "/DoubleMuon/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016C": [1.0, 1, "/DoubleMuon/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016D": [1.0, 1, "/DoubleMuon/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016E": [1.0, 1, "/DoubleMuon/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016F": [1.0, 1, "/DoubleMuon/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016G": [1.0, 1, "/DoubleMuon/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016Hv2": [1.0, 1, "/DoubleMuon/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016Hv3": [1.0, 1, "/DoubleMuon/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1] + +} \ No newline at end of file diff --git a/TopAnalysis/data/era2016/samples-fourtops-nominal.plot.json b/TopAnalysis/data/era2016/samples-fourtops-nominal.plot.json new file mode 100644 index 00000000000..8ac057b6bae --- /dev/null +++ b/TopAnalysis/data/era2016/samples-fourtops-nominal.plot.json @@ -0,0 +1,188 @@ +{ + "MC13TeV_TTTT": [ + 0.92, + 0, + "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}t#bar{t} x 100", + "#0037AD", + true, + false, + 1 + ], + "MC13TeV_TTJets": [832, + 0, + "/TT_TuneCUETP8M2T4_13TeV-powheg-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}", + "#F0C600", + true, + false, + 1 + ], + "MC13TeV_SingleTbar_tW": [35.85, + 0, + "/ST_tW_antitop_5f_inclusiveDecays_13TeV-powheg-pythia8_TuneCUETP8M2T4/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_SingleT_tW": [35.85, + 0, + "/ST_tW_top_5f_inclusiveDecays_13TeV-powheg-pythia8_TuneCUETP8M2T4/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_SingleTbar_t": [80.95, + 0, + "/ST_t-channel_antitop_4f_inclusiveDecays_TuneCUETP8M2T4_13TeV-powhegV2-madspin/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_SingleT_t": [136.02, + 0, + "/ST_t-channel_top_4f_inclusiveDecays_TuneCUETP8M2T4_13TeV-powhegV2-madspin/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_W0Jets": [49540, 0, "/WToLNu_0J_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", "W", "#8E00E3", false, false, 1], + "MC13TeV_W1Jets": [8041, 0, "/WToLNu_1J_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_backup_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "W", "#8E00E3", false, false, 1], + "MC13TeV_W2Jets": [3052, 0, "/WToLNu_2J_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", "W", "#8E00E3", false, false, 1], + "MC13TeV_DY50toInf_mlm": [6025.0, 0, "/DYJetsToLL_M-50_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v2/MINIAODSIM", "DY", "#0CAFFA", false, false, 1], + "MC13TeV_DY10to50": [18610.0, 0, "/DYJetsToLL_M-10to50_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "DY", "#0CAFFA", false, false, 1], + "MC13TeV_ZZTo2L2Nu": [0.564, + 0, + "/ZZTo2L2Nu_13TeV_powheg_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_ZZTo2L2Q": [3.22, + 0, + "/ZZTo2L2Q_13TeV_amcatnloFXFX_madspin_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_WWToLNuQQ": [49.997, + 0, + "/WWToLNuQQ_13TeV-powheg/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_WWTo2L2Nu": [12.178, + 0, + "/WWTo2L2Nu_13TeV-powheg/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_WZTo3LNu": [5.26, + 0, + "/WZTo3LNu_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_TTZToQQ": [0.5297, + 0, + "/TTZToQQ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}+V", + "#F600FA", + false, + false, + 1 + ], + "MC13TeV_TTZToLLNuNu": [0.2529, + 0, + "/TTZToLLNuNu_M-10_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", + "t#bar{t}+V", + "#F600FA", + false, + false, + 1 + ], + + "MC13TeV_tZq": [1.256, 0, "/tZq_ll_4f_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_ZZ4L": [1.256, 0, "/ZZTo4L_13TeV_powheg_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_GGHZZ4L": [0.01181, 0, "/GluGluHToZZTo4L_M125_13TeV_powheg2_JHUgenV6_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_VHtoNonbb": [0.9561, 0, "/VHToNonbb_M125_13TeV_amcatnloFXFX_madspin_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_WWW": [0.2086, 0, "/WWW_4F_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_WWZ": [0.1651, 0, "/WWZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_WZZ": [0.05565, 0, "/WZZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_ZZZ": [0.01398, 0, "/ZZZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTWW": [0.01150, 0, "/TTWW_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v3/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTTW": [0.000788, 0, "/TTTW_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTWZ": [0.003884, 0, "/TTWZ_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTZZ": [0.001982, 0, "/TTZZ_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTWH": [0.001582, 0, "/TTWH_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v3/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTZH": [0.001535, 0, "/TTZH_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTHH": [0.000757, 0, "/TTHH_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTTJ": [0.000474, 0, "/TTTJ_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + + "Data13TeV_SingleMuon_2016B": [1.0, 1, "/SingleMuon/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016C": [1.0, 1, "/SingleMuon/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016D": [1.0, 1, "/SingleMuon/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016E": [1.0, 1, "/SingleMuon/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016F": [1.0, 1, "/SingleMuon/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016G": [1.0, 1, "/SingleMuon/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016Hv2": [1.0, 1, "/SingleMuon/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016Hv3": [1.0, 1, "/SingleMuon/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_SingleElectron_2016B": [1.0, 1, "/SingleElectron/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016C": [1.0, 1, "/SingleElectron/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016D": [1.0, 1, "/SingleElectron/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016E": [1.0, 1, "/SingleElectron/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016F": [1.0, 1, "/SingleElectron/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016G": [1.0, 1, "/SingleElectron/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016Hv2": [1.0, 1, "/SingleElectron/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016Hv3": [1.0, 1, "/SingleElectron/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_MuonEG_2016B": [1.0, 1, "/MuonEG/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016C": [1.0, 1, "/MuonEG/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016D": [1.0, 1, "/MuonEG/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016E": [1.0, 1, "/MuonEG/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016F": [1.0, 1, "/MuonEG/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016G": [1.0, 1, "/MuonEG/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016Hv2": [1.0, 1, "/MuonEG/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016Hv3": [1.0, 1, "/MuonEG/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_DoubleEG_2016B": [1.0, 1, "/DoubleEG/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016C": [1.0, 1, "/DoubleEG/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016D": [1.0, 1, "/DoubleEG/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016E": [1.0, 1, "/DoubleEG/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016F": [1.0, 1, "/DoubleEG/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016G": [1.0, 1, "/DoubleEG/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016Hv2": [1.0, 1, "/DoubleEG/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016Hv3": [1.0, 1, "/DoubleEG/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_DoubleMuon_2016B": [1.0, 1, "/DoubleMuon/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016C": [1.0, 1, "/DoubleMuon/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016D": [1.0, 1, "/DoubleMuon/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016E": [1.0, 1, "/DoubleMuon/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016F": [1.0, 1, "/DoubleMuon/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016G": [1.0, 1, "/DoubleMuon/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016Hv2": [1.0, 1, "/DoubleMuon/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016Hv3": [1.0, 1, "/DoubleMuon/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1] + +} \ No newline at end of file diff --git a/TopAnalysis/data/era2016/samples-fourtops.json b/TopAnalysis/data/era2016/samples-fourtops.json new file mode 100644 index 00000000000..c12a5a0baad --- /dev/null +++ b/TopAnalysis/data/era2016/samples-fourtops.json @@ -0,0 +1,192 @@ +{ + "MC13TeV_TTTT": [ + 0.92, + 0, + "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}t#bar{t} x 100", + "#0037AD", + true, + false, + 1 + ], + "MC13TeV_TTJets": [832, + 0, + "/TT_TuneCUETP8M2T4_13TeV-powheg-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}", + "#F0C600", + true, + false, + 1 + ], + "MC13TeV_SingleTbar_tW": [35.85, + 0, + "/ST_tW_antitop_5f_inclusiveDecays_13TeV-powheg-pythia8_TuneCUETP8M2T4/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_SingleT_tW": [35.85, + 0, + "/ST_tW_top_5f_inclusiveDecays_13TeV-powheg-pythia8_TuneCUETP8M2T4/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_SingleTbar_t": [80.95, + 0, + "/ST_t-channel_antitop_4f_inclusiveDecays_TuneCUETP8M2T4_13TeV-powhegV2-madspin/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_SingleT_t": [136.02, + 0, + "/ST_t-channel_top_4f_inclusiveDecays_TuneCUETP8M2T4_13TeV-powhegV2-madspin/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Single top", + "#FA410C", + false, + false, + 1 + ], + "MC13TeV_W0Jets": [49540, 0, "/WToLNu_0J_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", "W", "#8E00E3", false, false, 1], + "MC13TeV_W1Jets": [8041, 0, "/WToLNu_1J_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_backup_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "W", "#8E00E3", false, false, 1], + "MC13TeV_W2Jets": [3052, 0, "/WToLNu_2J_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", "W", "#8E00E3", false, false, 1], + "MC13TeV_DY50toInf_mlm": [6025.0, 0, "/DYJetsToLL_M-50_TuneCUETP8M1_13TeV-madgraphMLM-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v2/MINIAODSIM", "DY", "#0CAFFA", false, false, 1], + "MC13TeV_DY10to50": [18610.0, 0, "/DYJetsToLL_M-10to50_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "DY", "#0CAFFA", false, false, 1], + "MC13TeV_ZZTo2L2Nu": [0.564, + 0, + "/ZZTo2L2Nu_13TeV_powheg_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_ZZTo2L2Q": [3.22, + 0, + "/ZZTo2L2Q_13TeV_amcatnloFXFX_madspin_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_WWToLNuQQ": [49.997, + 0, + "/WWToLNuQQ_13TeV-powheg/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_WWTo2L2Nu": [12.178, + 0, + "/WWTo2L2Nu_13TeV-powheg/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_WZTo3LNu": [5.26, + 0, + "/WZTo3LNu_TuneCUETP8M1_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "Multiboson", + "#0DF000", + false, + false, + 1 + ], + "MC13TeV_TTZToQQ": [0.5297, + 0, + "/TTZToQQ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}+V", + "#F600FA", + false, + false, + 1 + ], + "MC13TeV_TTZToLLNuNu": [0.2529, + 0, + "/TTZToLLNuNu_M-10_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", + "t#bar{t}+V", + "#F600FA", + false, + false, + 1 + ], + + "MC13TeV_tZq": [1.256, 0, "/tZq_ll_4f_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6_ext1-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_ZZ4L": [1.256, 0, "/ZZTo4L_13TeV_powheg_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_GGHZZ4L": [0.01181, 0, "/GluGluHToZZTo4L_M125_13TeV_powheg2_JHUgenV6_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_VHtoNonbb": [0.9561, 0, "/VHToNonbb_M125_13TeV_amcatnloFXFX_madspin_pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_WWW": [0.2086, 0, "/WWW_4F_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_WWZ": [0.1651, 0, "/WWZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_WZZ": [0.05565, 0, "/WZZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_ZZZ": [0.01398, 0, "/ZZZ_TuneCUETP8M1_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTWW": [0.01150, 0, "/TTWW_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v3/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTTW": [0.000788, 0, "/TTTW_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTWZ": [0.003884, 0, "/TTWZ_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTZZ": [0.001982, 0, "/TTZZ_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTWH": [0.001582, 0, "/TTWH_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v3/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTZH": [0.001535, 0, "/TTZH_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTHH": [0.000757, 0, "/TTHH_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTTJ": [0.000474, 0, "/TTTJ_TuneCUETP8M2T4_13TeV-madgraph-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v2/MINIAODSIM", "Rares", "#000000", false, false, 1], + "MC13TeV_TTTT_isrup": [0.0092, 0, "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-isrup-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "t#bar{t}t#bar{t} isr up", "#999999", false, false, 1], + "MC13TeV_TTTT_isrdn": [0.0092, 0, "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-isrdown-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "t#bar{t}t#bar{t} isr dn", "#999999", false, false, 1], + "MC13TeV_TTTT_fsrup": [0.0092, 0, "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-fsrup-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "t#bar{t}t#bar{t} fsr up", "#999999", false, false, 1], + "MC13TeV_TTTT_fsrdn": [0.0092, 0, "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-fsrdown-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "t#bar{t}t#bar{t} fsr dn", "#999999", false, false, 1], + + "Data13TeV_SingleMuon_2016B": [1.0, 1, "/SingleMuon/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016C": [1.0, 1, "/SingleMuon/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016D": [1.0, 1, "/SingleMuon/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016E": [1.0, 1, "/SingleMuon/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016F": [1.0, 1, "/SingleMuon/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016G": [1.0, 1, "/SingleMuon/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016Hv2": [1.0, 1, "/SingleMuon/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleMuon_2016Hv3": [1.0, 1, "/SingleMuon/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_SingleElectron_2016B": [1.0, 1, "/SingleElectron/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016C": [1.0, 1, "/SingleElectron/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016D": [1.0, 1, "/SingleElectron/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016E": [1.0, 1, "/SingleElectron/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016F": [1.0, 1, "/SingleElectron/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016G": [1.0, 1, "/SingleElectron/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016Hv2": [1.0, 1, "/SingleElectron/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_SingleElectron_2016Hv3": [1.0, 1, "/SingleElectron/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_MuonEG_2016B": [1.0, 1, "/MuonEG/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016C": [1.0, 1, "/MuonEG/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016D": [1.0, 1, "/MuonEG/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016E": [1.0, 1, "/MuonEG/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016F": [1.0, 1, "/MuonEG/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016G": [1.0, 1, "/MuonEG/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016Hv2": [1.0, 1, "/MuonEG/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_MuonEG_2016Hv3": [1.0, 1, "/MuonEG/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_DoubleEG_2016B": [1.0, 1, "/DoubleEG/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016C": [1.0, 1, "/DoubleEG/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016D": [1.0, 1, "/DoubleEG/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016E": [1.0, 1, "/DoubleEG/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016F": [1.0, 1, "/DoubleEG/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016G": [1.0, 1, "/DoubleEG/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016Hv2": [1.0, 1, "/DoubleEG/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleEG_2016Hv3": [1.0, 1, "/DoubleEG/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1], + + "Data13TeV_DoubleMuon_2016B": [1.0, 1, "/DoubleMuon/Run2016B-03Feb2017_ver2-v2/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016C": [1.0, 1, "/DoubleMuon/Run2016C-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016D": [1.0, 1, "/DoubleMuon/Run2016D-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016E": [1.0, 1, "/DoubleMuon/Run2016E-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016F": [1.0, 1, "/DoubleMuon/Run2016F-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016G": [1.0, 1, "/DoubleMuon/Run2016G-03Feb2017-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016Hv2": [1.0, 1, "/DoubleMuon/Run2016H-03Feb2017_ver2-v1/MINIAOD", "Data", 1, false, false, 1], + "Data13TeV_DoubleMuon_2016Hv3": [1.0, 1, "/DoubleMuon/Run2016H-03Feb2017_ver3-v1/MINIAOD", "Data", 1, false, false, 1] + +} \ No newline at end of file diff --git a/TopAnalysis/interface/MiniEvent.h b/TopAnalysis/interface/MiniEvent.h index fb35049eb13..9681f91e814 100644 --- a/TopAnalysis/interface/MiniEvent.h +++ b/TopAnalysis/interface/MiniEvent.h @@ -64,6 +64,6 @@ struct MiniEvent_t }; void createMiniEventTree(TTree *t,MiniEvent_t &ev); -void attachToMiniEventTree(TTree *t, MiniEvent_t &ev,bool full=false); +void attachToMiniEventTree(TTree *t, MiniEvent_t &ev, bool full = false, bool hasCTPPS = true); #endif diff --git a/TopAnalysis/interface/SelectionTools.h b/TopAnalysis/interface/SelectionTools.h index 7662e14db0c..5b6ce2eeb50 100644 --- a/TopAnalysis/interface/SelectionTools.h +++ b/TopAnalysis/interface/SelectionTools.h @@ -23,6 +23,7 @@ class SelectionTool { TString flagFinalState(MiniEvent_t &ev, std::vector preselleptons={}); std::vector &getSelLeptons() { return leptons_; } std::vector &getVetoLeptons() { return vetoLeptons_; } + std::vector &getAtLeastVetoLeptons() { return atleastVetoLeptons_; } std::vector &getJets() { return jets_; } TLorentzVector &getMET() { return met_; } @@ -49,6 +50,7 @@ class SelectionTool { bool hasTriggerBit(TString triggerName,unsigned int word); bool isSingleElectronPD_,isSingleMuonPD_,isDoubleEGPD_,isDoubleMuonPD_,isMuonEGPD_; std::vector leptons_,vetoLeptons_,genLeptons_; + std::vector atleastVetoLeptons_; std::vector jets_,genJets_; TLorentzVector met_; bool debug_; diff --git a/TopAnalysis/python/Plot.py b/TopAnalysis/python/Plot.py index 1d9968fa44d..7a747d4ba5d 100644 --- a/TopAnalysis/python/Plot.py +++ b/TopAnalysis/python/Plot.py @@ -34,7 +34,7 @@ class Plot(object): def __init__(self,name,com='13 TeV'): self.name = name - self.cmsLabel='#bf{CMS} #it{preliminary}' + self.cmsLabel='#bf{CMS} #it{Work in progress}' self.com=com self.wideCanvas = True if 'ratevsrun' in self.name else False self.doPoissonErrorBars=True @@ -210,7 +210,12 @@ def show(self, outDir,lumi,noStack=False,saveTeX=False,extraText=None,noRatio=Fa nlegCols = 0 if self.dataH is not None: - if self.data is None: self.finalize() + print type(self.data) + if self.data is None: + print 'self.data is NoneType' + print self.name + self.finalize() + print type(self.data) leg.AddEntry( self.data, self.data.GetTitle(),'p') nlegCols += 1 for h in self.mc: @@ -573,8 +578,11 @@ def convertToPoissonErrorGr(h): try: htype=h.ClassName() except: + print 'Unable to obtain class name. Returning NoneType object.' + return None + if htype.find('TH1')<0 : + print 'Not a TH1 object. Returning NoneType object.' return None - if htype.find('TH1')<0 : return None #check https://twiki.cern.ch/twiki/bin/view/CMS/PoissonErrorBars alpha = 1 - 0.6827; diff --git a/TopAnalysis/scripts/plotter.py b/TopAnalysis/scripts/plotter.py index 1dc153f15cd..7b605d7891a 100644 --- a/TopAnalysis/scripts/plotter.py +++ b/TopAnalysis/scripts/plotter.py @@ -105,7 +105,7 @@ def main(): for flav in [(1,sample[3]+'+l'),(4,sample[3]+'+c'),(5,sample[3]+'+b',sample[4])]: subProcs.append(('%d_%s'%(flav[0],tag),flav[1],sample[4]+3*len(subProcs))) for sp in subProcs: - + print 'Opening %s/%s.root'%(opt.inDir, sp[0]) fIn=ROOT.TFile.Open('%s/%s.root' % ( opt.inDir, sp[0]) ) if not fIn : continue @@ -159,6 +159,7 @@ def main(): else: histos.append(obj) histos[-1].SetTitle(sp[1]) + elif not obj.InheritsFrom('TH1'): continue else: fixExtremities(obj, False, False) histos.append(obj) @@ -205,6 +206,7 @@ def main(): else: outDir = opt.outDir os.system('mkdir -p %s' % outDir) os.system('rm %s/%s'%(outDir,opt.outName)) + print 'Now printing plots!' for p in plots : plots[p].mcUnc=opt.mcUnc if opt.saveLog : plots[p].savelog=True diff --git a/TopAnalysis/scripts/runLocalAnalysis.py b/TopAnalysis/scripts/runLocalAnalysis.py index 386fc96c56d..4d9b8e6a5c8 100755 --- a/TopAnalysis/scripts/runLocalAnalysis.py +++ b/TopAnalysis/scripts/runLocalAnalysis.py @@ -62,6 +62,7 @@ def main(): parser.add_option( '--skipexisting',dest='skipexisting',help='skip jobs with existing output files [%default]', default=False, action='store_true') parser.add_option( '--exactonly', dest='exactonly', help='match only exact sample tags to process [%default]', default=False, action='store_true') parser.add_option( '--outputonly', dest='outputonly', help='filter job submission for a csv list of output files [%default]', default=None, type='string') + parser.add_option( '--jobflavour', dest='jobflavour', help='job flavour to be submitted in condor [%default]', default='longlunch', type='string') parser.add_option( '--farmappendix', dest='farmappendix', help='Appendix to condor FARM directory [%default]', default=None, type='string') (opt, args) = parser.parse_args() @@ -191,7 +192,8 @@ def main(): condor.write('executable = {0}/$(cfgFile).sh\n'.format(FarmDirectory)) condor.write('output = {0}/output_$(cfgFile).out\n'.format(FarmDirectory)) condor.write('error = {0}/output_$(cfgFile).err\n'.format(FarmDirectory)) - condor.write('+JobFlavour = "{0}"\n'.format(opt.queue)) + condor.write('log = {0}/output_$(cfgFile).log\n'.format(FarmDirectory)) + condor.write('+JobFlavour = "%s"\n'%opt.jobflavour) jobNb=0 for method,inF,outF,channel,charge,flav,runSysts,systVar,era,tag,debug in task_list: diff --git a/TopAnalysis/src/FourTopsAnalyzer.cc b/TopAnalysis/src/FourTopsAnalyzer.cc index dab4ed828a3..a7bd35492a3 100644 --- a/TopAnalysis/src/FourTopsAnalyzer.cc +++ b/TopAnalysis/src/FourTopsAnalyzer.cc @@ -43,9 +43,91 @@ void RunFourTopsAnalyzer(TString filename, TMVA::Reader *tmvaReader = new TMVA::Reader( "!Color:!Silent" ); //FIXME TOP: add all the variables you need to use here and update the xml file location - Float_t tmva_var1; - tmvaReader->AddVariable( "var1", &tmva_var1 ); - tmvaReader->BookMVA( "BDT", "/afs/cern.ch/user/p/psilva/public/forTop/FourTopsML_BDT.weights.xml"); + Float_t lepton_ht; + Float_t lepton_3_chIso; + Float_t lepton_4_chIso; + Float_t lepton_3_minIso; + Float_t lepton_4_minIso; + Float_t jet_1_highest_csv; + Float_t jet_2_highest_csv; + Float_t jet_3_highest_csv; + Float_t jet_4_highest_csv; + Float_t jet_ht; + Float_t jet_btag_ht; + Float_t jet_non_btag_ht; + Float_t jet_smallest_angle; + Float_t jet_smallest_angle_2b; + Float_t met_pt; + Float_t n_jets; + Float_t n_bjets; + Float_t n_leptons; + Float_t n_mu_p; + Float_t n_mu_m; + Float_t n_ele_p; + Float_t n_ele_m; + + Float_t event_weight; + Float_t bdt_discrim, nn_discrim; + UInt_t run, event, lumi; + + tmvaReader->AddVariable("jet_1_highest_csv", &jet_1_highest_csv); + tmvaReader->AddVariable("jet_2_highest_csv", &jet_2_highest_csv); + tmvaReader->AddVariable("jet_3_highest_csv", &jet_3_highest_csv); + tmvaReader->AddVariable("jet_4_highest_csv", &jet_4_highest_csv); + tmvaReader->AddVariable("jet_ht", &jet_ht); + tmvaReader->AddVariable("jet_btag_ht", &jet_btag_ht); + tmvaReader->AddVariable("jet_non_btag_ht", &jet_non_btag_ht); + tmvaReader->AddVariable("jet_smallest_angle", &jet_smallest_angle); + tmvaReader->AddVariable("jet_smallest_angle_2b", &jet_smallest_angle_2b); + tmvaReader->AddVariable("lepton_ht", &lepton_ht); + tmvaReader->AddVariable("lepton_3_chIso", &lepton_3_chIso); + tmvaReader->AddVariable("lepton_4_chIso", &lepton_4_chIso); + tmvaReader->AddVariable("lepton_3_minIso", &lepton_3_minIso); + tmvaReader->AddVariable("lepton_4_minIso", &lepton_4_minIso); + tmvaReader->AddVariable("met_pt", &met_pt); + tmvaReader->AddVariable("n_jets", &n_jets); + tmvaReader->AddVariable("n_bjets", &n_bjets); + tmvaReader->AddVariable("n_leptons", &n_leptons); + tmvaReader->AddVariable("n_mu_p", &n_mu_p); + tmvaReader->AddVariable("n_mu_m", &n_mu_m); + tmvaReader->AddVariable("n_ele_p", &n_ele_p); + tmvaReader->AddVariable("n_ele_m", &n_ele_m); + tmvaReader->BookMVA( "BDT", "/afs/cern.ch/user/v/vwachira/CMSSW_8_0_28/src/TopLJets2015/TopAnalysis/test/summer2017/FourTopsML_BDT_606.weights.xml"); + tmvaReader->BookMVA("MLP_ANN","/afs/cern.ch/user/v/vwachira/CMSSW_8_0_28/src/TopLJets2015/TopAnalysis/test/summer2017/FourTopsML_MLP_ANN_606.weights.xml"); + + //CREATE OUTPUT TREE + TTree outTree("TMVAanalysis","NTuple tree for TMVA analysis"); + outTree.Branch("lepton_ht", &lepton_ht,"lepton_ht/F"); + outTree.Branch("lepton_3_chIso", &lepton_3_chIso,"lepton_3_chIso/F"); + outTree.Branch("lepton_4_chIso", &lepton_4_chIso,"lepton_4_chIso/F"); + outTree.Branch("lepton_3_minIso", &lepton_3_minIso,"lepton_3_minIso/F"); + outTree.Branch("lepton_4_minIso", &lepton_4_minIso,"lepton_4_minIso/F"); + outTree.Branch("jet_1_highest_csv", &jet_1_highest_csv,"jet_1_highest_csv/F"); + outTree.Branch("jet_2_highest_csv", &jet_2_highest_csv,"jet_2_highest_csv/F"); + outTree.Branch("jet_3_highest_csv", &jet_3_highest_csv,"jet_3_highest_csv/F"); + outTree.Branch("jet_4_highest_csv", &jet_4_highest_csv,"jet_4_highest_csv/F"); + outTree.Branch("jet_ht", &jet_ht,"jet_ht/F"); + outTree.Branch("jet_btag_ht", &jet_btag_ht,"jet_btag_ht/F"); + outTree.Branch("jet_non_btag_ht", &jet_non_btag_ht,"jet_non_btag_ht/F"); + outTree.Branch("jet_smallest_angle", &jet_smallest_angle,"jet_smallest_angle/F"); + outTree.Branch("jet_smallest_angle_2b", &jet_smallest_angle_2b,"jet_smallest_angle_2b/F"); + outTree.Branch("met_pt",&met_pt,"met_pt/F"); + outTree.Branch("event_weight",&event_weight,"event_weight/F"); + outTree.Branch("n_jets",&n_jets,"n_jets/F"); + outTree.Branch("n_bjets",&n_bjets,"n_bjets/F"); + outTree.Branch("n_leptons",&n_leptons,"n_leptons/F"); + + outTree.Branch("n_mu_p",&n_mu_p,"n_mu_p/F"); + outTree.Branch("n_mu_m",&n_mu_m,"n_mu_m/F"); + outTree.Branch("n_ele_p",&n_ele_p,"n_ele_p/F"); + outTree.Branch("n_ele_m",&n_ele_m,"n_ele_m/F"); + + outTree.Branch("bdt_discrim",&bdt_discrim,"bdt_discrim/F"); + outTree.Branch("nn_discrim",&nn_discrim,"nn_discrim/F"); + + outTree.Branch("run",&run,"run/i"); + outTree.Branch("event",&event,"event/i"); + outTree.Branch("lumi",&lumi,"lumi/i"); //PREPARE OUTPUT TString baseName=gSystem->BaseName(outname); @@ -59,7 +141,7 @@ void RunFourTopsAnalyzer(TString filename, TH1 *genPU=(TH1 *)f->Get("analysis/putrue"); TH1 *triggerList=(TH1 *)f->Get("analysis/triggerList"); TTree *t = (TTree*)f->Get("analysis/data"); - attachToMiniEventTree(t,ev,true); + attachToMiniEventTree(t,ev,true,false); Int_t nentries(t->GetEntriesFast()); if (debug) nentries = 10000; //restrict number of entries for testing t->GetEntry(0); @@ -81,11 +163,13 @@ void RunFourTopsAnalyzer(TString filename, HistTool ht; ht.setNsyst(0); ht.addHist("puwgtctr", new TH1F("puwgtctr",";Weight sums;Events",2,0,2)); - ht.addHist("nvtx", new TH1F("nvtx",";Vertex multiplicity;Events",55,-0.5,49.5)); + ht.addHist("nvtx", new TH1F("nvtx",";Vertex multiplicity;Events",50,-0.5,49.5)); ht.addHist("njets", new TH1F("njets",";Jet multiplicity;Events",15,-0.5,14.5)); ht.addHist("nbjets", new TH1F("nbjets",";b jet multiplicity;Events",10,-0.5,9.5)); ht.addHist("nleptons", new TH1F("nleptons",";Lepton multiplicity;Events",6,-0.5,5.5)); - ht.addHist("bdt", new TH1F("bdt",";BDT;Events",50,-2,2)); + ht.addHist("jet_ht", new TH1F("ht",";Jet H_{T};Events",24,0.,1200.)); + ht.addHist("bdt", new TH1F("bdt",";BDT;Events",50,-1,1)); + ht.addHist("mlp_ann", new TH1F("mlp_ann",";MLP_ANN; Events",50,0.,1.)); std::cout << "init done" << std::endl; @@ -103,11 +187,17 @@ void RunFourTopsAnalyzer(TString filename, //assign randomly a run period TString period = assignRunPeriod(runPeriods,random); + + run = ev.run; + event = ev.event; + lumi = ev.lumi; ////////////////// // CORRECTIONS // //////////////// + double csvl = 0.5426; double csvm = 0.8484; + double csvt = 0.9535; addBTagDecisions(ev, csvm, csvm); if(!ev.isData) smearJetEnergies(ev); @@ -116,13 +206,19 @@ void RunFourTopsAnalyzer(TString filename, ///////////////////////// TString chTag = selector.flagFinalState(ev); if(chTag=="") continue; - std::vector &leptons = selector.getSelLeptons(); + std::vector &leptons = selector.getAtLeastVetoLeptons(); + std::vector &LLIDleptons = selector.getSelLeptons(); + std::vector &vetoLeptons = selector.getVetoLeptons(); std::vector &jets = selector.getJets(); - if(leptons.size()<2) continue; + //if(leptons.size()<2) continue; + //if (leptons.size() < 1) continue; + + if (leptons.size() < 4 || LLIDleptons.size() < 2) continue; //count n b-jets int sel_nbjets(0); for(size_t ij=0; ijGetBinContent(1) : 1.0); // pu weight + //if (puWgtGr[period][0]? false : true) continue; double puWgt(puWgtGr[period][0]->Eval(ev.g_pu)); std::vectorpuPlotWgts(1,puWgt); ht.fill("puwgtctr",1,puPlotWgts); @@ -175,9 +272,128 @@ void RunFourTopsAnalyzer(TString filename, ht.fill("nleptons", leptons.size(), plotwgts); //FIXME TOP: assign all the values to the variables here before evaluating the bdt discriminator - tmva_var1=1; - float bdt=tmvaReader->EvaluateMVA("BDT"); - ht.fill("bdt", bdt, plotwgts); + //control histograms + + n_jets = (float) jets.size(); + n_bjets = (float) sel_nbjets; + n_leptons = (float) leptons.size(); + + n_mu_p = 0.; + n_mu_m = 0.; + n_ele_p = 0.; + n_ele_m = 0.; + + for (size_t i=0;i 0.) n_mu_p++; + else if (leptons[i].id() == 13 && leptons[i].charge() < 0.) n_mu_m++; + else if (leptons[i].id() == 11 && leptons[i].charge() > 0.) n_ele_p++; + else if (leptons[i].id() == 11 && leptons[i].charge() < 0.) n_ele_m++; + } + + // Fill only lepton with highest pt + + lepton_3_chIso = 0.; + lepton_4_chIso = 0.; + lepton_3_minIso = 0.; + lepton_4_minIso = 0.; + + if (leptons.size() > 0) + { + + if (leptons.size() >= 4) + { + auto chIsoSort = [ev](Particle &p1, Particle &p2) + { + return ev.l_chargedHadronIso[p1.originalReference()] < ev.l_chargedHadronIso[p2.originalReference()]; + }; + auto minIsoSort = [ev](Particle &p1, Particle &p2) + { + return ev.l_miniIso[p1.originalReference()] < ev.l_miniIso[p2.originalReference()]; + }; + std::vector leptons_chIsoSorted = leptons; + std::vector leptons_minIsoSorted = leptons; + std::sort(leptons_chIsoSorted.begin(), leptons_chIsoSorted.end(), chIsoSort); + std::sort(leptons_minIsoSorted.begin(), leptons_minIsoSorted.end(), minIsoSort); + + lepton_3_chIso = ev.l_chargedHadronIso[leptons_chIsoSorted[2].originalReference()]; + lepton_4_chIso = ev.l_chargedHadronIso[leptons_chIsoSorted[3].originalReference()]; + lepton_3_minIso = ev.l_miniIso[leptons_minIsoSorted[2].originalReference()]; + lepton_4_minIso = ev.l_miniIso[leptons_minIsoSorted[3].originalReference()]; + } + } + + lepton_ht = 0.; + for (size_t i=0;i j; }; + + auto sort_jet_csv = [greater_than](auto ev, auto jets) + { + std::vector csv_sorted; + for (size_t i=0;i csv_sorted = sort_jet_csv(ev,jets); + if (csv_sorted.size() > 0) jet_1_highest_csv = csv_sorted[0]; + if (csv_sorted.size() > 1) jet_2_highest_csv = csv_sorted[1]; + if (csv_sorted.size() > 2) jet_3_highest_csv = csv_sorted[2]; + if (csv_sorted.size() > 3) jet_4_highest_csv = csv_sorted[3]; + + jet_smallest_angle = TMath::Pi(); + for (size_t i=0;i= 2) for (size_t i=0;iEvaluateMVA("BDT"); + ht.fill("bdt", bdt_discrim, plotwgts); + nn_discrim = tmvaReader->EvaluateMVA("MLP_ANN"); + ht.fill("mlp_ann", nn_discrim, plotwgts); + + outTree.Fill(); } //close input file @@ -191,5 +407,6 @@ void RunFourTopsAnalyzer(TString filename, for (auto& it : ht.get2dPlots()) { it.second->SetDirectory(fOut); it.second->Write(); } + outTree.Write(); fOut->Close(); } diff --git a/TopAnalysis/src/MiniEvent.cc b/TopAnalysis/src/MiniEvent.cc index 91c32629d77..33f4ba84144 100644 --- a/TopAnalysis/src/MiniEvent.cc +++ b/TopAnalysis/src/MiniEvent.cc @@ -136,7 +136,7 @@ void createMiniEventTree(TTree *t,MiniEvent_t &ev) } // -void attachToMiniEventTree(TTree *t,MiniEvent_t &ev,bool full) +void attachToMiniEventTree(TTree *t, MiniEvent_t &ev, bool full, bool hasCTPPS) { //event header t->SetBranchAddress("isData", &ev.isData); @@ -266,11 +266,14 @@ void attachToMiniEventTree(TTree *t,MiniEvent_t &ev,bool full) t->SetBranchAddress("met_filterBits", &ev.met_filterBits); //CTPPS local tracks - t->SetBranchAddress("nfwdtrk", &ev.nfwdtrk); - t->SetBranchAddress("fwdtrk_arm", ev.fwdtrk_arm); - t->SetBranchAddress("fwdtrk_pot", ev.fwdtrk_pot); - t->SetBranchAddress("fwdtrk_x", ev.fwdtrk_x); - t->SetBranchAddress("fwdtrk_x_unc",ev.fwdtrk_x_unc); - t->SetBranchAddress("fwdtrk_y", ev.fwdtrk_y); - t->SetBranchAddress("fwdtrk_y_unc",ev.fwdtrk_y_unc); + if (hasCTPPS) + { + t->SetBranchAddress("nfwdtrk", &ev.nfwdtrk); + t->SetBranchAddress("fwdtrk_arm", ev.fwdtrk_arm); + t->SetBranchAddress("fwdtrk_pot", ev.fwdtrk_pot); + t->SetBranchAddress("fwdtrk_x", ev.fwdtrk_x); + t->SetBranchAddress("fwdtrk_x_unc",ev.fwdtrk_x_unc); + t->SetBranchAddress("fwdtrk_y", ev.fwdtrk_y); + t->SetBranchAddress("fwdtrk_y_unc",ev.fwdtrk_y_unc); + } } diff --git a/TopAnalysis/src/SelectionTools.cc b/TopAnalysis/src/SelectionTools.cc index 246331e7824..e87becada3e 100644 --- a/TopAnalysis/src/SelectionTools.cc +++ b/TopAnalysis/src/SelectionTools.cc @@ -261,6 +261,8 @@ TString SelectionTool::flagFinalState(MiniEvent_t &ev, std::vector pre else if (ch==13*13) chTag = "MM"; else if (ch==11*11) chTag = "EE"; leptons_=passllid; + vetoLeptons_=getLeptons(preselleptons,SelectionTool::PASSLVETO, 0., 99., &leptons_); + atleastVetoLeptons_=getLeptons(preselleptons,SelectionTool::PASSLVETO); } else if(passlid.size()==1){ int ch(abs(passlid[0].id()) ); @@ -268,6 +270,7 @@ TString SelectionTool::flagFinalState(MiniEvent_t &ev, std::vector pre else if (ch==11) chTag = "E"; leptons_=passlid; vetoLeptons_=getLeptons(preselleptons,SelectionTool::PASSLVETO, 0., 99., &leptons_); + atleastVetoLeptons_=getLeptons(preselleptons,SelectionTool::PASSLVETO); } //select jets based on the leptons diff --git a/TopAnalysis/test/summer2017/4tops_samples.json b/TopAnalysis/test/summer2017/4tops_samples.json index f24382a5f9c..581c7da1b8a 100644 --- a/TopAnalysis/test/summer2017/4tops_samples.json +++ b/TopAnalysis/test/summer2017/4tops_samples.json @@ -1,10 +1,22 @@ { -"MC13TeV_TTTT" : [0.0092, 0, "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "t#bar{t}t#bar{t}", "#91bfdb", true, false, 1], -"MC13TeV_TTJets2l2nu_amcatnlo": [87.31, 0, "/TTJets_Dilept_TuneCUETP8M2T4_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", "t#bar{t}#rightarrow2l", "#fc8d59", true, false, 1] -} - - - - - - + "MC13TeV_TTTT": [ + 0.92, + 0, + "/TTTT_TuneCUETP8M2T4_13TeV-amcatnlo-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}t#bar{t} x 100", + "#91bfdb", + true, + false, + 1 + ], + "MC13TeV_TTJets2l2nu_amcatnlo": [ + 87.31, + 0, + "/TTJets_Dilept_TuneCUETP8M2T4_13TeV-amcatnloFXFX-pythia8/RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1/MINIAODSIM", + "t#bar{t}#rightarrow2l", + "#fc8d59", + true, + false, + 1 + ] +} \ No newline at end of file diff --git a/TopAnalysis/test/summer2017/FourTops/CompareSystVar.cpp b/TopAnalysis/test/summer2017/FourTops/CompareSystVar.cpp new file mode 100644 index 00000000000..4ced7889297 --- /dev/null +++ b/TopAnalysis/test/summer2017/FourTops/CompareSystVar.cpp @@ -0,0 +1,47 @@ +#include +#include +#include + +void CompareSystVar() +{ + TFile *FourTops_nosys = new TFile("MC13TeV_TTTT.root"); + TFile *FourTops_fsrdn = new TFile("MC13TeV_TTTT_fsrdn.root"); + TFile *FourTops_fsrup = new TFile("MC13TeV_TTTT_fsrup.root"); + TFile *FourTops_isrdn = new TFile("MC13TeV_TTTT_isrdn.root"); + TFile *FourTops_isrup = new TFile("MC13TeV_TTTT_isrup.root"); + + TFile *FourTops_addr[] = {FourTops_nosys, FourTops_fsrdn, FourTops_isrdn, FourTops_fsrup, FourTops_isrup}; + + std::string fileName[] = {"FourTops_nosys", "FourTops_fsrdn", "FourTops_isrdn", "FourTops_fsrup", "FourTops_isrup"}; + std::string histograms[] = {"nbjets", "njets", "nleptons", "nvtx", "bdt", "mlp_ann"}; + int markerStyle[] = {24, 20, 21, 22, 23}; + int markerColour[] = {1, 2, 3, 4, 5}; + + TFile *out = new TFile("Compare_TTTT.root","RECREATE"); + TCanvas *canvas; + TH1F *hist; + TLegend *legend; + + for (short i = 0; i < 6; i++) + { + canvas = new TCanvas(histograms[i].c_str(),histograms[i].c_str(),800,600); + canvas->cd(); + legend = new TLegend(0.5, 0.7, 0.8, 0.9); + for (short j = 0; j < 5; j++) + { + hist = (TH1F*) FourTops_addr[j]->Get(histograms[i].c_str()); + hist->SetMarkerStyle(markerStyle[j]); + hist->SetLineColor(markerColour[j]); + hist->SetMarkerColor(markerColour[j]); + hist->SetStats(false); + if (histograms[i] == "bdt") hist->Rebin(5); + else if (histograms[i] == "mlp_ann") hist->Rebin(5); + else if (histograms[i] == "nvtx") hist->Rebin(5); + hist->Draw("SAME"); + legend->AddEntry(hist, fileName[j].c_str(), "lep"); + } + legend->Draw(); + out->cd(); + canvas->Write(); + } +} diff --git a/TopAnalysis/test/summer2017/FourTops/FourTopsTMVA_606.cpp b/TopAnalysis/test/summer2017/FourTops/FourTopsTMVA_606.cpp new file mode 100644 index 00000000000..9aebc972065 --- /dev/null +++ b/TopAnalysis/test/summer2017/FourTops/FourTopsTMVA_606.cpp @@ -0,0 +1,133 @@ +#include +#include + +#include "TFile.h" +#include "TTree.h" +#include "TString.h" +#include "TROOT.h" + +#include "TMVA/Tools.h" + +void FourTopsTMVA_606() +{ + TMVA::Tools::Instance(); + + (TMVA::gConfig().GetVariablePlotting()).fMaxNumOfAllowedVariablesForScatterPlots = 1000; + + TChain *FourTopsChain = new TChain("TMVAanalysis"); + TChain *TTChain = new TChain("TMVAanalysis"); + TChain *SingleTopChain = new TChain("TMVAanalysis"); + //TChain *WChain = new TChain("TMVAanalysis"); + TChain *DYChain = new TChain("TMVAanalysis"); + TChain *BosonChain = new TChain("TMVAanalysis"); + TChain *ToNuChain = new TChain("TMVAanalysis"); + TChain *RareChain = new TChain("TMVAanalysis"); + + string dir("/afs/cern.ch/user/v/vwachira/CMSSW_8_0_28/src/TopLJets2015/TopAnalysis/test/summer2017/FourTops/"); + FourTopsChain-> Add((dir+string("MC13TeV_TTTT.root")).c_str()); + TTChain-> Add((dir+string("MC13TeV_TTJets.root")).c_str()); + SingleTopChain->Add((dir+string("MC13TeV_SingleTbar_tW.root")).c_str()); + SingleTopChain->Add((dir+string("MC13TeV_SingleT_tW.root")).c_str()); + SingleTopChain->Add((dir+string("MC13TeV_SingleTbar_t.root")).c_str()); + SingleTopChain->Add((dir+string("MC13TeV_SingleT_t.root")).c_str()); + //WChain-> Add((dir+string("MC13TeV_W0Jets.root")).c_str()); + //WChain-> Add((dir+string("MC13TeV_W1Jets.root")).c_str()); + //WChain-> Add((dir+string("MC13TeV_W2Jets.root")).c_str()); + DYChain-> Add((dir+string("MC13TeV_DY50toInf_mlm.root")).c_str()); + DYChain-> Add((dir+string("MC13TeV_DY10to50.root")).c_str()); + BosonChain-> Add((dir+string("MC13TeV_ZZTo2L2Nu.root")).c_str()); + BosonChain-> Add((dir+string("MC13TeV_ZZTo2L2Q.root)")).c_str()); + BosonChain-> Add((dir+string("MC13TeV_WWToLNuQQ.root")).c_str()); + BosonChain-> Add((dir+string("MC13TeV_WWTo2L2Nu.root")).c_str()); + BosonChain-> Add((dir+string("MC13TeV_WZTo3LNu.root")).c_str()); + ToNuChain-> Add((dir+string("MC13TeV_TTWToQQ.root")).c_str()); + ToNuChain-> Add((dir+string("MC13TeV_TTZToQQ.root")).c_str()); + ToNuChain-> Add((dir+string("MC13TeV_TTZToLLNuNu.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_tZq.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_ZZ4L.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_GGHZZ4L.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_VHtoNonbb.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_WWW.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_WWZ.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_ZZZ.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_TTWW.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_TTTW.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_TTWZ.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_TTZZ.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_TTWH.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_TTZH.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_TTHH.root")).c_str()); + RareChain-> Add((dir+string("MC13TeV_TTTJ.root")).c_str()); + + TString outFileName("FourTopsTMVA_out.root"); + TFile *outFile = new TFile(outFileName, "RECREATE"); + + TMVA::Factory *factory = new TMVA::Factory("FourTopsML", outFile, "V:Color"); + + factory->AddSignalTree(FourTopsChain, 1.0); + factory->AddBackgroundTree(TTChain, 1.0); + factory->AddBackgroundTree(SingleTopChain, 1.0); + //factory->AddBackgroundTree(WChain, 1.0); + factory->AddBackgroundTree(DYChain, 1.0); + factory->AddBackgroundTree(BosonChain, 1.0); + factory->AddBackgroundTree(ToNuChain, 1.0); + factory->AddBackgroundTree(RareChain, 1.0); + + factory->AddVariable("jet_1_highest_csv",'F'); + factory->AddVariable("jet_2_highest_csv",'F'); + factory->AddVariable("jet_3_highest_csv",'F'); + factory->AddVariable("jet_4_highest_csv",'F'); + // TODO: Add number of jets, b-jets, leptons + factory->AddVariable("jet_ht",'F'); + factory->AddVariable("jet_btag_ht",'F'); + factory->AddVariable("jet_non_btag_ht",'F'); + factory->AddVariable("jet_smallest_angle",'F'); + factory->AddVariable("jet_smallest_angle_2b",'F'); + + factory->AddVariable("lepton_ht",'F'); + factory->AddVariable("lepton_3_chIso",'F'); + factory->AddVariable("lepton_4_chIso",'F'); + factory->AddVariable("lepton_3_minIso",'F'); + factory->AddVariable("lepton_4_minIso",'F'); + + factory->AddVariable("met_pt",'F'); + + factory->AddVariable("n_jets",'F'); + factory->AddVariable("n_bjets",'F'); + factory->AddVariable("n_leptons",'F'); + + factory->AddVariable("n_mu_p",'F'); + factory->AddVariable("n_mu_m",'F'); + factory->AddVariable("n_ele_p",'F'); + factory->AddVariable("n_ele_m",'F'); + + TCut mycuts = ""; // Signal cut + TCut mycutb = ""; // Background cut + + factory->PrepareTrainingAndTestTree(mycuts, mycutb, "SplitMode=Random:V"); + + //factory->BookMethod(TMVA::Types::kLikelihood,"LikelihoodD","!H:!V:!TransformOutput:PDFInterpol=Spline2:NSmoothSig[0]=20:NSmoothBkg[0]=20:NSmooth=5:VarTransform=Decorrelate"); + //factory->BookMethod(TMVA::Types::kCuts,"Cuts","V:VarTransform=N"); // Cuts + //factory->BookMethod(TMVA::Types::kLikelihood,"Likelihood","V:VarTransform=N"); // Projective likelihood estimator + //factory->BookMethod(TMVA::Types::kPDERS,"PDERS","V:VarTransform=N"); // PDE range-search approach + //factory->BookMethod(TMVA::Types::kPDEFoam,"PDEFoam","V"); // PDE-Foam + //factory->BookMethod(TMVA::Types::kKNN,"kNN","V:VarTransform=N"); // k-Nearest Neighbour classifier + //factory->BookMethod(TMVA::Types::kHMatrix,"HMatrix","V"); // H-Matrix discriminant + //factory->BookMethod(TMVA::Types::kFisher,"Fisher","V"); // Fisher discriminants (linear discriminant analysis) + //factory->BookMethod(TMVA::Types::kFDA,"FDA","V"); // Function discriminant analysis (FDA) + //factory->BookMethod(TMVA::Types::kMLP,"MLP_ANN","V:NeuronType=tanh:VarTransform=N:NCycles=1000:HiddenLayers=N+10,N"); // ROOT neural network + factory->BookMethod(TMVA::Types::kMLP,"MLP_ANN","V:VarTransform=N:NCycles=1000:HiddenLayers=N+20,N+10,N"); // ROOT neural network + //factory->BookMethod(TMVA::Types::kSVM,"SVM","V:VarTransform=N"); // Support Vector Machine + factory->BookMethod(TMVA::Types::kBDT,"BDT","V"); // Boosted Decision Tree + //factory->BookMethod(TMVA::Types::kRuleFit,"RuleFit","V"); // Predictive learning via rule ensembles + + factory->OptimizeAllMethodsForClassification(); // Takes too much time! + factory->TrainAllMethods(); + factory->TestAllMethods(); + + factory->EvaluateAllMethods(); + + outFile->Close(); + + TMVA::TMVAGui(outFileName); +} diff --git a/TopAnalysis/test/summer2017/FourTops/FourTopsXSect.cpp b/TopAnalysis/test/summer2017/FourTops/FourTopsXSect.cpp new file mode 100644 index 00000000000..debd79dc6ef --- /dev/null +++ b/TopAnalysis/test/summer2017/FourTops/FourTopsXSect.cpp @@ -0,0 +1,135 @@ +#include +#include +#include + +void FourTopsXSect() +{ + string dir("/afs/cern.ch/user/v/vwachira/CMSSW_8_0_28/src/TopLJets2015/TopAnalysis/test/summer2017/FourTops/"); + + TFile *plotterFile = new TFile("plots/plotter.root"); + string sigProcess = "t#bar{t}t#bar{t} x 100"; + std::vector bgProcess = + { + "t#bar{t}", + "Single top", + "W", + "DY", + "Multiboson", + "t#bar{t}+V", + "Rares" + }; + + std::vector histograms = {"bdt","mlp_ann"}; + double factor[histograms.size()]; + double factor_stat_err_pos[histograms.size()]; + double factor_stat_err_neg[histograms.size()]; + + TH1F *histCache; + + double SDGoal = 1.; // 68% CL + //SDGoal = 1.645; // 90% CL + //SDGoal = 1.96; // 95% CL + //SDGoal = 2.576; // 99% CL + + for (int i=0;iGet((histograms[i]+"/"+histograms[i]+"_"+sigProcess).c_str()); + + int numBins = histCache->GetNbinsX(); + + double y_sig [numBins]; + double y_bg [numBins]; + double y_data[numBins]; + double y_data_nobg[numBins]; + + for (int j=0;jGetBinContent(j+1); + y_bg[j] = 0.; + y_data[j] = 0.; + } + //printf("y_sig filled\n"); + + for (int k=0;kGet((histograms[i]+"/"+histograms[i]+"_"+bgProcess[k]).c_str()); + //printf("histograms[i] obtained\n"); + for (int j=0;jGetBinContent(j+1); + } + //printf("y_bg filled\n"); + + histCache = (TH1F*) plotterFile->Get((histograms[i]+"/"+histograms[i]).c_str()); + //printf("histograms[i] obtained\n"); + for (int j=0;jGetBinContent(j+1); + //printf("y_data filled\n"); + + printf("%s",histograms[i].c_str()); + printf("\n---------------------------------------\n"); + printf("SIGNAL\n"); + for (int i=0;i= 1e-6); + + factor_stat_err_pos[i] = x1; + + x1 = 0.0001; + double F_at_zero = -TMath::Log(x1)*sum_data + x1*sum_sig - sum_data_log_sig - lowest_F - SDGoal/2.; + x1 = 0.0001+(factor[i]-0.0001)/(-SDGoal/2.-F_at_zero)*(-F_at_zero); + + do + { + error = -TMath::Log(x1)*sum_data + x1*sum_sig - sum_data_log_sig - lowest_F - SDGoal/2; + if (TMath::Abs(error) < 1e-6) break; + x1 = 0.0001 + (x1-0.0001)/(error-F_at_zero)*(-F_at_zero); + printf("\nfactor_stat_err_neg: %lf\terror: %lf",x1,error); + //getchar(); + } while (TMath::Abs(error) >= 1e-6); + + factor_stat_err_neg[i] = x1; + } + + printf("\n==================RESULTS=====================\n"); + for (int i=0;i +#include +#include + +#include "TString.h" + +void printallvars(const char *filename) +{ + if (!filename) + { + printf("No file specified. Exiting.\n"); + } + TFile *file = new TFile(filename); + TTree *tree = (TTree*) file->Get("TMVAanalysis"); + + Float_t n_leptons, n_jets, n_bjets; + Float_t jet_csv_1, jet_csv_2, jet_csv_3, jet_csv_4; + Float_t n_mu_p, n_mu_m, n_ele_p, n_ele_m; + Float_t angle_jets, angle_bjets; + + Float_t bdt, nn; + + UInt_t run, event, lumi; + + tree->SetBranchAddress("n_leptons",&n_leptons); + tree->SetBranchAddress("n_jets",&n_jets); + tree->SetBranchAddress("n_bjets",&n_bjets); + + tree->SetBranchAddress("jet_1_highest_csv",&jet_csv_1); + tree->SetBranchAddress("jet_2_highest_csv",&jet_csv_2); + tree->SetBranchAddress("jet_3_highest_csv",&jet_csv_3); + tree->SetBranchAddress("jet_4_highest_csv",&jet_csv_4); + + tree->SetBranchAddress("n_mu_p",&n_mu_p); + tree->SetBranchAddress("n_mu_m",&n_mu_m); + tree->SetBranchAddress("n_ele_p",&n_ele_p); + tree->SetBranchAddress("n_ele_m",&n_ele_m); + + tree->SetBranchAddress("jet_smallest_angle",&angle_jets); + tree->SetBranchAddress("jet_smallest_angle_2b",&angle_bjets); + + tree->SetBranchAddress("bdt_discrim",&bdt); + tree->SetBranchAddress("nn_discrim",&nn); + + tree->SetBranchAddress("run",&run); + tree->SetBranchAddress("event",&event); + tree->SetBranchAddress("lumi",&lumi); + + FILE *out; + out = fopen((string("out_")+string(filename)+string(".txt")).c_str(),"w"); + + for (int i=0;iGetEntries();i++) + { + tree->GetEntry(i); + fprintf(out, "%f\t", bdt); + fprintf(out, "%f\t", nn); + fprintf(out, "%f\t", n_leptons); + fprintf(out, "%f\t", n_jets); + fprintf(out, "%f\t", n_bjets); + fprintf(out, "%f\t", jet_csv_1); + fprintf(out, "%f\t", jet_csv_2); + fprintf(out, "%f\t", jet_csv_3); + fprintf(out, "%f\t", jet_csv_4); + fprintf(out, "%f\t", n_mu_p); + fprintf(out, "%f\t", n_mu_m); + fprintf(out, "%f\t", n_ele_p); + fprintf(out, "%f\t", n_ele_m); + fprintf(out, "%f\t", angle_jets); + fprintf(out, "%f\t", angle_bjets); + fprintf(out, "%u\t", run); + fprintf(out, "%u\t", event); + fprintf(out, "%u\t", lumi); + fprintf(out, "%s\t", filename); + fprintf(out, "\n"); + } + + fclose(out); +} diff --git a/TopAnalysis/test/summer2017/condor_TMVA.sub b/TopAnalysis/test/summer2017/condor_TMVA.sub new file mode 100644 index 00000000000..a37ec1c05aa --- /dev/null +++ b/TopAnalysis/test/summer2017/condor_TMVA.sub @@ -0,0 +1,6 @@ +executable = /afs/cern.ch/user/v/vwachira/CMSSW_8_0_28/src/TopLJets2015/TopAnalysis/test/summer2017/condor_TMVATrain.sh +output = /afs/cern.ch/user/v/vwachira/CMSSW_8_0_28/src/TopLJets2015/TopAnalysis/test/summer2017/condor_TMVATrain.out +error = /afs/cern.ch/user/v/vwachira/CMSSW_8_0_28/src/TopLJets2015/TopAnalysis/test/summer2017/condor_TMVATrain.err +log = /afs/cern.ch/user/v/vwachira/CMSSW_8_0_28/src/TopLJets2015/TopAnalysis/test/summer2017/condor_TMVATrain.log ++JobFlavour = "tomorrow" +queue 1 \ No newline at end of file diff --git a/TopAnalysis/test/summer2017/condor_TMVATrain.sh b/TopAnalysis/test/summer2017/condor_TMVATrain.sh new file mode 100644 index 00000000000..ed6c2757493 --- /dev/null +++ b/TopAnalysis/test/summer2017/condor_TMVATrain.sh @@ -0,0 +1,8 @@ +#!/bin/bash +WORKDIR=`pwd` +cd /afs/cern.ch/user/v/vwachira/CMSSW_8_0_28 +eval `scram r -sh` +cd ${WORKDIR} +root -l -q /afs/cern.ch/user/v/vwachira/CMSSW_8_0_28/src/TopLJets2015/TopAnalysis/test/summer2017/FourTops/FourTopsTMVA_606.cpp +cp ${WORKDIR}/FourTops/weights/FourTopsML_BDT.weights.xml /afs/cern.ch/user/v/vwachira/CMSSW_8_0_28/src/TopLJets2015/TopAnalysis/test/summer2017/FourTopsML_BDT_606.weights.xml +mv ${WORKDIR}/FourTops/* /afs/cern.ch/user/v/vwachira/CMSSW_8_0_28/src/TopLJets2015/TopAnalysis/test/summer2017/FourTops/ \ No newline at end of file diff --git a/TopAnalysis/test/summer2017/plotXSect.cpp b/TopAnalysis/test/summer2017/plotXSect.cpp new file mode 100644 index 00000000000..32065a5d2f9 --- /dev/null +++ b/TopAnalysis/test/summer2017/plotXSect.cpp @@ -0,0 +1,199 @@ +#include +#include + +void plotXSect() +{ + const int numberOfDatasets = 6; + TFile *fileIndex[numberOfDatasets]; + fileIndex[0] = new TFile("datacard_4tops/fourtops_nn_Asymptotic.root"); + fileIndex[1] = new TFile("datacard_4tops/fourtops_bdt_Asymptotic.root"); + //TFile *file = new TFile("datacard_4tops/fourtops_nn_Asymptotic.root"); + TTree *tree; + + // Dataset name here + string fileName[] = {"#splitline{#bf{Four lepton NN}}{#scale[0.7]{This analysis}}", "#splitline{#bf{Four lepton BDT}}{#scale[0.7]{This analysis}}", "#splitline{#bf{SS Dilepton}}{#scale[0.7]{EPJC 76 (2016) 439}}", "#splitline{#bf{OS Dilepton}}{#scale[0.7]{TOP-16-016}}", "#splitline{#bf{Single lepton}}{#scale[0.7]{TOP-16-016}}", "#splitline{#bf{Combined}}{#scale[0.4]{TOP-16-016 + EPJC 76 (2016) 439}}"}; + + TCanvas *canvas = new TCanvas("canvas","Upper limits for four tops",800,600); + canvas->Draw(); + canvas->cd(); + TH1F *histFrame = gPad->DrawFrame(0,-0.15,100,8); + histFrame->SetXTitle("95% CL Limit on #mu = #sigma_{obs} / #sigma_{SM}"); + histFrame->GetYaxis()->SetTickSize(0); + histFrame->GetYaxis()->SetLabelSize(0); + + TLatex *tex = new TLatex(); + tex->SetTextFont(42); + tex->SetTextSize(0.04); + //tex->SetNDC(); + + TBox *box1sig, *box2sig; + TLine *lineexp, *lineobs; + double limitVal, limitErrVal; + double limit2sigdown, limit1sigdown, limit0Cache, limit1sigup, limit2sigup; + double limitObs[numberOfDatasets], limitObsError[numberOfDatasets], limitObsCache; + double limit0[numberOfDatasets]; + double *limitAddr[] = {&limit2sigdown, &limit1sigdown, &limit0Cache, &limit1sigup, &limit2sigup, &limitObsCache}; + + double limitYPointCoord[numberOfDatasets], limitYPointCoordErr[numberOfDatasets]; + + // Hardcoding values for plots + limitObs[2] = 12.9; // SS Dilepton + limitObs[3] = 14.5; // OS Dilepton + limitObs[4] = 17.2; // Single lepton + limitObs[5] = 7.4; // Combined + limitObsError[2] = 0.; + limitObsError[3] = 0.; + limitObsError[4] = 0.; + limitObsError[5] = 0.; + limit0[2] = 11.0; + limit0[3] = 24.7; + limit0[4] = 16.4; + limit0[5] = 7.7; + + for (int y = 2; y < 6; y++) + { + limitYPointCoord[y] = 5 - y + 0.5; + limitYPointCoordErr[y] = 0.5; + } + + // Read data from file to plot + for (int s = 0; s < 2; s++) + { + tree = (TTree*) fileIndex[s]->Get("limit"); + tree->SetBranchAddress("limit", &limitVal); + tree->SetBranchAddress("limitErr", &limitErrVal); + for (int i=0;iGetEntries();i++) + { + tree->GetEntry(i); + *limitAddr[i] = limitVal; + //printf("limitVal = %lf\n",limitVal); + } + + limit0[s] = limit0Cache; + limitObs[s] = limitObsCache; + tree->GetEntry(5); + limitObsError[s] = limitErrVal; + limitYPointCoord[s] = (5.5-s) + 0.5; + limitYPointCoordErr[s] = 0.5; + + /* + printf("limit2sigdown = %lf\n",limit2sigdown); + printf("limit2sigup = %lf\n",limit2sigup); + printf("limit1sigdown = %lf\n",limit1sigdown); + printf("limit1sigup = %lf\n",limit1sigup); + printf("limit0 = %lf\n",limit0); + printf("limitObs = %lf\n",limitObs[s]); + */ + + // Draw 2-sig box first ... + canvas->cd(); + box2sig = new TBox(limit2sigdown, (5.5-s), limit2sigup, (5.5-s)+1); + box2sig->SetFillColor(17); + box2sig->Draw(); + // ... and 1-sig box on top of it. + box1sig = new TBox(limit1sigdown, (5.5-s), limit1sigup, (5.5-s)+1); + box1sig->SetFillColor(15); + box1sig->Draw(); + + // Dataset name + tex->DrawLatex(70, (5.5-s) + 0.35, fileName[s].c_str()); + } + + // Hardcode the values for plotting. You can also use arrays to do the job, but I'm too lazy here. + for (int s = 2; s < 6; s++) + { + switch (s) + { + case 2: // SS Dilepton + limit2sigdown = 7.2; + limit1sigdown = 7.2; + limit1sigup = 17.2; + limit2sigup = 17.2; + break; + case 3: // OS Dilepton + limit2sigdown = 10.7; + limit1sigdown = 15.5; + limit1sigup = 41.4; + limit2sigup = 68.5; + break; + case 4: // Single lepton + limit2sigdown = 7.6; + limit1sigdown = 10.7; + limit1sigup = 26.2; + limit2sigup = 42.8; + break; + case 5: // Combined + limit2sigdown = 3.7; + limit1sigdown = 5.1; + limit1sigup = 11.8; + limit2sigup = 17.4; + break; + } + + // Again, 2-sig box + canvas->cd(); + box2sig = new TBox(limit2sigdown, 5-s, limit2sigup, (5-s)+1); + box2sig->SetFillColor(17); + box2sig->Draw(); + // 1-sig box + box1sig = new TBox(limit1sigdown, 5-s, limit1sigup, (5-s)+1); + box1sig->SetFillColor(15); + box1sig->Draw(); + + // Dataset name + tex->DrawLatex(70, (5-s) + 0.35, fileName[s].c_str()); + } + + // Separate between our analysis and TOP-16-016 + TLine *lineSep = new TLine(0, 4.5, 100, 4.5); + lineSep->Draw(); + + // Line indicating where SM is + TLine *lineSM = new TLine(1, -0.15, 1, 8); + lineSM->SetLineColor(kRed); + lineSM->SetLineWidth((Width_t)5); + lineSM->Draw(); + + // Put in graphs + TGraphErrors *obsPoints = new TGraphErrors(numberOfDatasets, limitObs, limitYPointCoord, limitObsError, limitYPointCoordErr); + obsPoints->SetLineColor(1); + obsPoints->SetLineWidth(2); + obsPoints->SetMarkerColor(1); + obsPoints->SetMarkerStyle(21); + obsPoints->SetMarkerSize(1.6); + obsPoints->SetMarkerColor(1); + obsPoints->Draw("SAME P"); + TGraphErrors *expPoints = new TGraphErrors(numberOfDatasets, limit0, limitYPointCoord, limitObsError, limitYPointCoordErr); + expPoints->SetLineColor(1); + expPoints->SetLineWidth(1); + expPoints->SetLineStyle(7); + expPoints->SetMarkerColor(1); + expPoints->SetMarkerStyle(0); + expPoints->SetMarkerSize(1.6); + expPoints->SetMarkerColor(1); + expPoints->Draw("SAME P"); + + // A couple of texts + tex->DrawLatex(0,8.1,"#bf{CMS} #it{Work in progress}"); + tex->DrawLatex(70,8.1,"#scale[0.8]{35.9 fb^{-1} (13 TeV)}"); + tex->DrawLatex(70,4.15,"#scale[0.8]{2.6 fb^{-1} (13 TeV)}"); + tex->DrawLatex(2,7.6,"#scale[0.75]{#color[2]{#bf{SM Here}}}"); + + // Dummy TH1F objects for TLegend + auto hist1sigDummy = new TH1F("hist1sigDummy","expected #pm 1 #sigma",1,0,1); + auto hist2sigDummy = new TH1F("hist2sigDummy","expected #pm 2 #sigma",1,0,1); + hist1sigDummy->SetFillColor(15); + hist1sigDummy->SetLineColor(0); + hist2sigDummy->SetFillColor(17); + hist2sigDummy->SetLineColor(0); + + // Legend + TLegend *legend = new TLegend(0.65,0.75,0.85,0.88); + legend->SetLineColor(0); + legend->SetHeader("limits on #sigma_{tttt}"); + legend->AddEntry(obsPoints,"observed","lep"); + legend->AddEntry(expPoints,"expected","l"); + legend->AddEntry(hist1sigDummy,"expected #pm 1 #sigma","f"); + legend->AddEntry(hist2sigDummy,"expected #pm 2 #sigma","f"); + legend->Draw(); +} diff --git a/TopAnalysis/test/summer2017/steerFourTops.sh b/TopAnalysis/test/summer2017/steerFourTops.sh index 4810ceb9e72..3e0b0aa24e9 100644 --- a/TopAnalysis/test/summer2017/steerFourTops.sh +++ b/TopAnalysis/test/summer2017/steerFourTops.sh @@ -11,14 +11,15 @@ if [ "$#" -ne 1 ]; then fi export LSB_JOB_REPORT_MAIL=N -queue=2nd +#queue=2nd +queue=condor githash=b312177 lumi=35922 lumiUnc=0.025 whoami=`whoami` myletter=${whoami:0:1} eosdir=/store/cmst3/group/top/ReReco2016/${githash} -outdir=test/summer2017/FourTops +outdir=${CMSSW_BASE}/src/TopLJets2015/TopAnalysis/test/summer2017/FourTops wwwdir=~/www/FourTops @@ -27,20 +28,42 @@ NC='\e[0m' case $WHAT in SEL ) - queue=local - python scripts/runLocalAnalysis.py -i ${eosdir} \ + queue=condor + python scripts/runLocalAnalysis.py -i ${eosdir} \ --only test/summer2017/4tops_samples.json --exactonly \ + -q ${queue} -o ${outdir} --jobflavour longlunch\ + --era era2016 -m FourTopsAnalyzer::RunFourTopsAnalyzer --ch 0 --runSysts; + ;; + + SELALL ) + python scripts/runLocalAnalysis.py -i ${eosdir} \ + --only data/era2016/samples-fourtops.json --exactonly \ + -q condor -o ${outdir} --jobflavour tomorrow\ + --era era2016 -m FourTopsAnalyzer::RunFourTopsAnalyzer --ch 0 --runSysts; + ;; + + SELCUSTOM ) + queue=local + python scripts/runLocalAnalysis.py -i ${eosdir} \ + --only test/summer2017/custom_samples.json --exactonly \ -q ${queue} -o ${outdir} --njobs 8 \ --era era2016 -m FourTopsAnalyzer::RunFourTopsAnalyzer --ch 0 --runSysts; - ;; + ;; MERGE ) - ./scripts/mergeOutputs.py ${outdir}; - ;; + ./scripts/mergeOutputs.py ${outdir}; + ;; + PLOT ) - commonOpts="-i ${outdir} --puNormSF puwgtctr -j test/summer2017/4tops_samples.json -l ${lumi} --saveLog --mcUnc ${lumiUnc} --noStack" - python scripts/plotter.py ${commonOpts}; - ;; + commonOpts="-i ${outdir} --puNormSF puwgtctr -j test/summer2017/4tops_samples.json -l ${lumi} --saveLog --mcUnc ${lumiUnc} --noStack" + python scripts/plotter.py ${commonOpts}; + ;; + + PLOTALL ) + commonOpts="-i ${outdir} --puNormSF puwgtctr -j data/era2016/samples-fourtops.json -l ${lumi} --saveLog --mcUnc ${lumiUnc}" + python scripts/plotter.py ${commonOpts}; + ;; + WWW ) mkdir -p ${wwwdir}/sel cp ${outdir}/plots/*.{png,pdf} ${wwwdir}/sel