From 560e9b094310ac331e4cb9fa1ae8683d1f5b7022 Mon Sep 17 00:00:00 2001 From: Konstantin Androsov Date: Mon, 13 Oct 2014 10:42:29 +0200 Subject: [PATCH] Continuing modifications related to the new config format. - Analysis/include/AnalysisCategories.h: - reading channel parameter as analysis::Channel object; - fixed bugs in DataCategoryCollection. - AnalysisBase/include/AnalysisTypes.h: definition of enum Channel moved here from FlatTree.h. - PrintTools/config/sources.txt: modified to be compatible with a new format. --- Analysis/include/AnalysisCategories.h | 31 +- Analysis/include/BaseAnalyzer.h | 1 + Analysis/include/BaseFlatTreeAnalyzer.h | 20 +- Analysis/source/FlatTreeAnalyzer_mutau.C | 8 +- Analysis/source/HHbbetau_FlatTreeProducer.C | 2 +- Analysis/source/HHbbmutau_FlatTreeProducer.C | 2 +- Analysis/source/HHbbtautau_FlatTreeProducer.C | 2 +- AnalysisBase/include/AnalysisTypes.h | 64 ++ AnalysisBase/include/FlatTree.h | 3 +- HHbbTauTau.files | 1 + MVASelections/include/MvaReader.h | 1 + PrintTools/config/sources.txt | 914 ++++++++++-------- 12 files changed, 610 insertions(+), 439 deletions(-) create mode 100644 AnalysisBase/include/AnalysisTypes.h diff --git a/Analysis/include/AnalysisCategories.h b/Analysis/include/AnalysisCategories.h index 323fb242..8573108f 100644 --- a/Analysis/include/AnalysisCategories.h +++ b/Analysis/include/AnalysisCategories.h @@ -35,14 +35,14 @@ #include #include -#include "AnalysisBase/include/exception.h" +#include "AnalysisBase/include/AnalysisTypes.h" namespace analysis { typedef std::map DataSourceScaleFactorMap; enum class DataCategoryType { Signal, Background, Data, DYJets, ZL, ZJ, ZTT, ZTT_MC, Embedded, Limits, Sum, QCD, WJets, - EWK}; + EWK }; static const std::map dataCategoryTypeNameMap = { { DataCategoryType::Signal, "SIGNAL" }, { DataCategoryType::Background, "BACKGROUND" }, { DataCategoryType::Data, "DATA" }, { DataCategoryType::DYJets, "DY_JETS" }, { DataCategoryType::ZL, "ZL" }, @@ -78,11 +78,11 @@ struct DataCategory { unsigned draw_sf; std::set types; - std::set channels; + std::set channels; DataSourceScaleFactorMap sources_sf; DataCategory() - : color(kBlack), limits_sf(std::nan("")), draw(false), draw_sf(1) {} + : color(kBlack), limits_sf(1.0), draw(false), draw_sf(1) {} bool IsSignal() const { return types.count(DataCategoryType::Signal); } bool IsBackground() const { return types.count(DataCategoryType::Background); } @@ -108,8 +108,7 @@ typedef std::map DataSourceMap; class DataCategoryCollection { public: - DataCategoryCollection(const std::string& sources_cfg_name, const std::string& signal_list, - const std::string& channel_name) + DataCategoryCollection(const std::string& sources_cfg_name, const std::string& signal_list, Channel channel_id) { DataCategory category; std::ifstream cfg(sources_cfg_name); @@ -117,7 +116,7 @@ class DataCategoryCollection { while(ReadNextCategory(cfg, line_number, category)) { if(categories.count(category.name)) throw exception("Category with name '") << category.name << "' is already defined."; - if(category.channels.size() && !category.channels.count(channel_name)) continue; + if(category.channels.size() && !category.channels.count(channel_id)) continue; categories[category.name] = category; all_categories.insert(&categories[category.name]); for(DataCategoryType type : category.types) @@ -160,7 +159,7 @@ class DataCategoryCollection { } private: - static bool ReadNextCategory(std::istream& cfg, size_t line_number, DataCategory& category) + static bool ReadNextCategory(std::istream& cfg, size_t& line_number, DataCategory& category) { category = DataCategory(); bool category_started = false; @@ -168,7 +167,7 @@ class DataCategoryCollection { std::string cfgLine; std::getline(cfg,cfgLine); ++line_number; - if (cfgLine.at(0) == '#' || (!cfgLine.size() && !category_started)) continue; + if ((cfgLine.size() && cfgLine.at(0) == '#') || (!cfgLine.size() && !category_started)) continue; if(!cfgLine.size()) return true; if(!category_started && cfgLine.at(0) == '[') { @@ -187,10 +186,14 @@ class DataCategoryCollection { static void ReadParameterLine(const std::string& cfgLine, size_t line_number, DataCategory& category) { - static const char separator = ','; + static const char separator = ':'; const size_t pos = cfgLine.find(separator); - const std::string param_name = cfgLine.substr(0, pos - 1); + if(pos == std::string::npos) + throw exception("bad source config syntax for a parameter in line ") << line_number; + const std::string param_name = cfgLine.substr(0, pos); + if(pos + 2 >= cfgLine.size()) + throw exception("empty parameter value in source config in line ") << line_number; const std::string param_value = cfgLine.substr(pos + 2); std::istringstream ss(param_value); if(param_name == "type") { @@ -213,9 +216,9 @@ class DataCategoryCollection { } else if(param_name == "draw_sf") { ss >> category.draw_sf; } else if(param_name == "channel") { - std::string channel_name; - ss >> channel_name; - category.channels.insert(channel_name); + Channel channel_id; + ss >> channel_id; + category.channels.insert(channel_id); } else if(param_name == "datacard") { ss >> category.datacard; } else diff --git a/Analysis/include/BaseAnalyzer.h b/Analysis/include/BaseAnalyzer.h index 8a213803..5ac29eae 100644 --- a/Analysis/include/BaseAnalyzer.h +++ b/Analysis/include/BaseAnalyzer.h @@ -44,6 +44,7 @@ #include "AnalysisBase/include/RunReport.h" #include "AnalysisBase/include/Tools.h" #include "AnalysisBase/include/AnalysisTools.h" +#include "AnalysisBase/include/AnalysisTypes.h" #include "Htautau_Summer13.h" #include "Htautau_TriggerEfficiency.h" diff --git a/Analysis/include/BaseFlatTreeAnalyzer.h b/Analysis/include/BaseFlatTreeAnalyzer.h index 95db3bfa..942c6a5b 100644 --- a/Analysis/include/BaseFlatTreeAnalyzer.h +++ b/Analysis/include/BaseFlatTreeAnalyzer.h @@ -43,6 +43,7 @@ #include "AnalysisBase/include/AnalyzerData.h" #include "AnalysisBase/include/FlatEventInfo.h" #include "AnalysisBase/include/AnalysisMath.h" +#include "AnalysisBase/include/AnalysisTypes.h" #include "AnalysisBase/include/exception.h" #include "AnalysisBase/include/Particles.h" #include "PrintTools/include/RootPrintToPdf.h" @@ -112,10 +113,10 @@ class BaseFlatTreeAnalyzer { typedef std::map FullAnaData; BaseFlatTreeAnalyzer(const std::string& source_cfg, const std::string& hist_cfg, const std::string& _inputPath, - const std::string& _outputFileName, const std::string& channel_name, + const std::string& _outputFileName, Channel channel_id, const std::string& signal_list, bool _WjetsData = false) : inputPath(_inputPath), outputFileName(_outputFileName), - dataCategoryCollection(source_cfg, signal_list, channel_name), WjetsData(_WjetsData) + dataCategoryCollection(source_cfg, signal_list, channel_id), WjetsData(_WjetsData) { TH1::SetDefaultSumw2(); @@ -216,12 +217,14 @@ class BaseFlatTreeAnalyzer { } } - virtual const std::string& ChannelName() = 0; + virtual Channel ChannelId() = 0; virtual EventType_QCD DetermineEventTypeForQCD(const ntuple::Flat& event) = 0; virtual EventType_Wjets DetermineEventTypeForWjets(const ntuple::Flat& event) = 0; virtual bool PassMvaCut(const FlatEventInfo& eventInfo, EventCategory eventCategory) = 0; + const std::string& ChannelName() const { return detail::ChannelNameMap.at(ChannelId()); } + virtual EventCategoryVector DetermineEventCategories(const ntuple::Flat& event) { EventCategoryVector categories; @@ -419,10 +422,11 @@ class BaseFlatTreeAnalyzer { for(const DataCategory* dataCategory : dataCategoryCollection.GetCategories(DataCategoryType::Limits)) { if(!dataCategory->datacard.size()) throw exception("Empty datacard name for data category '") << dataCategory->name << "'."; - FlatAnalyzerData& anaData = anaDataForCategory[dataCategory->name].QCD[EventType_QCD::OS_Isolated]; + FlatAnalyzerData& anaData = anaDataForCategory[dataCategory->name].Signal(); TH1D* hist_orig = anaData.GetPtr(hist_name); if(!hist_orig) - throw exception("Datacard histogram '") << hist_name << "' not found."; + throw exception("Datacard histogram '") << hist_name << "' not found for data category '" + << dataCategory->name << "'."; std::shared_ptr hist(static_cast(hist_orig->Clone())); hist->Scale(dataCategory->limits_sf); hist->Write(dataCategory->datacard.c_str()); @@ -432,13 +436,15 @@ class BaseFlatTreeAnalyzer { TH1D* hist_up_orig = anaData.GetPtr(hist_name_up); if(!hist_up_orig) - throw exception("Datacard histogram '") << hist_name_up << "' not found."; + throw exception("Datacard histogram '") << hist_name_up << "' not found for data category '" + << dataCategory->name << "'."; std::shared_ptr hist_up(static_cast(hist_up_orig->Clone())); hist_up->Scale(dataCategory->limits_sf); hist_up->Write(nameUp.c_str()); TH1D* hist_down_orig = anaData.GetPtr(hist_name_down); if(!hist_down_orig) - throw exception("Datacard histogram '") << hist_name_down << "' not found."; + throw exception("Datacard histogram '") << hist_name_down << "' not found for data category '" + << dataCategory->name << "'."; std::shared_ptr hist_down(static_cast(hist_down_orig->Clone())); hist_down->Scale(dataCategory->limits_sf); hist_down->Write(nameDown.c_str()); diff --git a/Analysis/source/FlatTreeAnalyzer_mutau.C b/Analysis/source/FlatTreeAnalyzer_mutau.C index 80b8b8a1..ccabe3db 100644 --- a/Analysis/source/FlatTreeAnalyzer_mutau.C +++ b/Analysis/source/FlatTreeAnalyzer_mutau.C @@ -34,16 +34,12 @@ class FlatTreeAnalyzer_mutau : public analysis::BaseFlatTreeAnalyzer { public: FlatTreeAnalyzer_mutau(const std::string& source_cfg, const std::string& hist_cfg, const std::string& _inputPath, const std::string& outputFileName, const std::string& signal_list, bool _WjetsData = false) - : BaseFlatTreeAnalyzer(source_cfg, hist_cfg, _inputPath, outputFileName, ChannelName(), signal_list, _WjetsData) + : BaseFlatTreeAnalyzer(source_cfg, hist_cfg, _inputPath, outputFileName, ChannelId(), signal_list, _WjetsData) { } protected: - virtual const std::string& ChannelName() override - { - static const std::string channelName = "muTau"; - return channelName; - } + virtual analysis::Channel ChannelId() override { return analysis::Channel::MuTau; } virtual analysis::EventType_QCD DetermineEventTypeForQCD(const ntuple::Flat& event) override { diff --git a/Analysis/source/HHbbetau_FlatTreeProducer.C b/Analysis/source/HHbbetau_FlatTreeProducer.C index 60e6cb6d..0651b352 100644 --- a/Analysis/source/HHbbetau_FlatTreeProducer.C +++ b/Analysis/source/HHbbetau_FlatTreeProducer.C @@ -392,7 +392,7 @@ protected: BaseFlatTreeProducer::FillFlatTree(higgs, svfitResults, kinfitResults, jets, jetsPt20, bjets_all, retagged_bjets, vertices, electron, tau, pfMET, eTau_MC); - flatTree->channel() = static_cast(ntuple::Channel::ETau); + flatTree->channel() = static_cast(analysis::Channel::ETau); flatTree->pfRelIso_1() = ntuple_electron.pfRelIso; flatTree->mva_1() = ntuple_electron.mvaPOGNonTrig; flatTree->passid_1() = true; diff --git a/Analysis/source/HHbbmutau_FlatTreeProducer.C b/Analysis/source/HHbbmutau_FlatTreeProducer.C index 5e7f927b..1d1fbb1e 100644 --- a/Analysis/source/HHbbmutau_FlatTreeProducer.C +++ b/Analysis/source/HHbbmutau_FlatTreeProducer.C @@ -414,7 +414,7 @@ protected: retagged_bjets, vertices, muon, tau, pfMET, muTau_MC); - flatTree->channel() = static_cast(ntuple::Channel::MuTau); + flatTree->channel() = static_cast(analysis::Channel::MuTau); flatTree->pfRelIso_1() = ntuple_muon.pfRelIso; flatTree->mva_1() = 0; flatTree->passid_1() = true; diff --git a/Analysis/source/HHbbtautau_FlatTreeProducer.C b/Analysis/source/HHbbtautau_FlatTreeProducer.C index 3ba2b056..f86980bc 100644 --- a/Analysis/source/HHbbtautau_FlatTreeProducer.C +++ b/Analysis/source/HHbbtautau_FlatTreeProducer.C @@ -338,7 +338,7 @@ protected: BaseFlatTreeProducer::FillFlatTree(higgs, svfitResults, kinfitResults, jets, jetsPt20, bjets_all, retagged_bjets, vertices, leadTau, subLeadTau, pfMET, tauTau_MC); - flatTree->channel() = static_cast(ntuple::Channel::TauTau); + flatTree->channel() = static_cast(analysis::Channel::TauTau); flatTree->pfRelIso_1() = default_value; flatTree->mva_1() = default_int_value; flatTree->passid_1() = false; diff --git a/AnalysisBase/include/AnalysisTypes.h b/AnalysisBase/include/AnalysisTypes.h new file mode 100644 index 00000000..05ecd50e --- /dev/null +++ b/AnalysisBase/include/AnalysisTypes.h @@ -0,0 +1,64 @@ +/*! + * \file AnalysisMath.h + * \brief Common simple types for analysis purposes. + * \author Konstantin Androsov (Siena University, INFN Pisa) + * \author Maria Teresa Grippo (Siena University, INFN Pisa) + * \date 2014-10-09 created + * + * Copyright 2014 Konstantin Androsov , + * Maria Teresa Grippo + * + * This file is part of X->HH->bbTauTau. + * + * X->HH->bbTauTau is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * X->HH->bbTauTau is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X->HH->bbTauTau. If not, see . + */ + +#pragma once + +#include +#include + +#include "exception.h" + +namespace analysis { + +enum class Channel { ETau = 0, MuTau = 1, TauTau = 2 }; + +namespace detail { +std::map ChannelNameMap = { + { Channel::ETau, "eTau" }, { Channel::MuTau, "muTau" }, { Channel::TauTau, "tauTau" } +}; +} // namespace detail + +std::ostream& operator<< (std::ostream& s, const Channel& c) +{ + s << detail::ChannelNameMap.at(c); + return s; +} + +std::istream& operator>> (std::istream& s, Channel& c) +{ + std::string name; + s >> name; + for(const auto& map_entry : detail::ChannelNameMap) { + if(map_entry.second == name) { + c = map_entry.first; + return s; + } + } + throw exception("Unknown channel name '") << name << "'."; +} + + +} // namespace analysis diff --git a/AnalysisBase/include/FlatTree.h b/AnalysisBase/include/FlatTree.h index 8c02c586..13792ae6 100644 --- a/AnalysisBase/include/FlatTree.h +++ b/AnalysisBase/include/FlatTree.h @@ -33,7 +33,7 @@ SIMPLE_VAR(Int_t, run) /* Run */ \ SIMPLE_VAR(Int_t, lumi) /* Lumi */ \ SIMPLE_VAR(Int_t, evt) /* Event */ \ - SIMPLE_VAR(Int_t, channel) /* Analysis channel as defined in ntuple::Channel */ \ + SIMPLE_VAR(Int_t, channel) /* Analysis channel as defined in analysis::Channel */ \ SIMPLE_VAR(Int_t, eventType) /* event type category */ \ \ \ @@ -240,6 +240,5 @@ TREE_CLASS_INITIALIZE(ntuple, FlatTree, FLAT_DATA) namespace ntuple { inline float DefaultFloatFillValueForFlatTree() { return std::numeric_limits::lowest(); } inline int DefaultIntegerFillValueForFlatTree() { return std::numeric_limits::lowest(); } -enum class Channel { ETau = 0, MuTau = 1, TauTau = 2 }; enum class EventType { Unknown = 0, ZL = 1, ZJ = 2, ZTT = 3, OtherZ = 4 }; } diff --git a/HHbbTauTau.files b/HHbbTauTau.files index 9a099103..b7ba38b2 100644 --- a/HHbbTauTau.files +++ b/HHbbTauTau.files @@ -298,3 +298,4 @@ RunTools/config/known_issues.supp AnalysisBase/include/FlatEventInfo.h Analysis/include/LightBaseFlatTreeAnalyzer.h Analysis/source/LightFlatTreeAnalyzer_mutau.C +AnalysisBase/include/AnalysisTypes.h diff --git a/MVASelections/include/MvaReader.h b/MVASelections/include/MvaReader.h index 6f12ecec..44cd6f2b 100644 --- a/MVASelections/include/MvaReader.h +++ b/MVASelections/include/MvaReader.h @@ -3,6 +3,7 @@ #include "AnalysisBase/include/AnalyzerData.h" #include "AnalysisBase/include/FlatTree.h" #include "AnalysisBase/include/AnalysisMath.h" +#include "AnalysisBase/include/AnalysisTypes.h" #include "AnalysisBase/include/exception.h" #include "AnalysisBase/include/Particles.h" diff --git a/PrintTools/config/sources.txt b/PrintTools/config/sources.txt index 8ec1fd86..b9b04f13 100644 --- a/PrintTools/config/sources.txt +++ b/PrintTools/config/sources.txt @@ -1,433 +1,533 @@ -# [SectionName] -# section title -# color -# file_name_1 scale-factor_1 -# file_name_2 scale-factor_2 -# ... - [Radion300] type: SIGNAL -title: Radion 300 GeV -datacard: +type: LIMITS +title: Radion#rightarrowhh#rightarrow#tau#taubb(m=300) +datacard: ggRadionTohhTo2Tau2B300 +color: blue +file: Radion_300.root 0.0741937 +limits_sf: 2.66 +draw_sf: 50 + +[Radion500] +type: SIGNAL +type: LIMITS +title: Radion#rightarrowhh#rightarrow#tau#taubb(m=500) +datacard: ggRadionTohhTo2Tau2B500 +color: blue +file: Radion_500.root 0.0136002 +limits_sf: 14.49 +draw_sf: 50 + +[Radion700] +type: SIGNAL +type: LIMITS +title: Radion#rightarrowhh#rightarrow#tau#taubb(m=700) +datacard: ggRadionTohhTo2Tau2B700 +color: blue +file: Radion_700.root 0.0051242 +limits_sf: 38.46 +draw_sf: 50 + +[Radion1000] +type: SIGNAL +type: LIMITS +title: Radion#rightarrowhh#rightarrow#tau#taubb(m=1000) +datacard: ggRadionTohhTo2Tau2B1000 +color: blue +file: Radion_1000.root 0.0015828 +limits_sf: 125 +draw_sf: 50 + +[Graviton270] +type: SIGNAL +type: LIMITS +title: Graviton#rightarrowhh#rightarrow#tau#taubb(m=270) +datacard: ggGravitonTohhTo2Tau2B270 +color: blue +file: Graviton_270.root 0.0173707 +limits_sf: 11.36 +draw_sf: 50 + +[Graviton300] +type: SIGNAL +type: LIMITS +title: Graviton#rightarrowhh#rightarrow#tau#taubb(m=300) +datacard: ggGravitonTohhTo2Tau2B300 +color: blue +file: Graviton_300.root 0.0140062 +limits_sf: 14.08 +draw_sf: 50 + +[Graviton500] +type: SIGNAL +type: LIMITS +title: Graviton#rightarrowhh#rightarrow#tau#taubb(m=500) +datacard: ggGravitonTohhTo2Tau2B500 +color: blue +file: Graviton_500.root 0.0051241 +limits_sf: 38.46 +draw_sf: 50 + +[Graviton700] +type: SIGNAL +type: LIMITS +title: Graviton#rightarrowhh#rightarrow#tau#taubb(m=700) +datacard: ggGravitonTohhTo2Tau2B700 +color: blue +file: Graviton_700.root 0.0026572 +limits_sf: 76.92 +draw_sf: 50 + +[Graviton1000] +type: SIGNAL +type: LIMITS +title: Graviton#rightarrowhh#rightarrow#tau#taubb(m=1000) +datacard: ggGravitonTohhTo2Tau2B1000 color: blue -file: Radion300.root 0.3704 -limits_sf: 0.1973236 +file: Graviton_1000.root 0.0011823 +limits_sf: 166.67 draw_sf: 50 -channel: etau - -#[SIGNAL Radion300] -#Radion 300 GeV -#blue -#Radion300.root 0.3704 - -#[SIGNAL Radion500] -#Radion 500 GeV -#blue -#Radion500.root 0.0680 - -#[SIGNAL Radion700] -#Radion 700 GeV -#blue -#Radion700.root 0.0256 - -#[SIGNAL Radion1000] -#Radion 1000 GeV -#blue -#Radion1000.root 0.0079 - - -[LIMITS Radion300] -Radion 300 GeV -blue -Radion_300.root 0.1973236 - -[LIMITS Radion500] -Radion 500 GeV -blue -Radion_500.root 0.1971045 - -[LIMITS Radion700] -Radion 700 GeV -blue -Radion_700.root 0.1970847 - -[LIMITS Radion1000] -Radion 1000 GeV -blue -Radion_1000.root 0.1978527 - - -[LIMITS Graviton270] -Graviton 270 GeV -blue -Graviton_270.root 0.1973948 - -[LIMITS Graviton300] -Graviton 300 GeV -blue -Graviton_300.root 0.1972703 - -[LIMITS Graviton500] -Graviton 500 GeV -blue -Graviton_500.root 0.1970808 - -[LIMITS Graviton700] -Graviton 700 GeV -blue -Graviton_700.root 0.2043971 - -[LIMITS Graviton1000] -Graviton 1000 GeV -blue -Graviton_1000.root 0.1970493 - - -[LIMITS ggHhh260] -hh#rightarrow#tau#taubb(m_{H}=260 tan#beta=2.5)) for limits -blue -ggH_hh_bbtautau_260.root 0.0424 - -[LIMITS ggHhh270] -hh#rightarrow#tau#taubb(m_{H}=270 tan#beta=2.5)) for limits -blue -ggH_hh_bbtautau_270.root 0.0401 - -[LIMITS ggHhh280] -hh#rightarrow#tau#taubb(m_{H}=280 tan#beta=2.5)) for limits -blue -ggH_hh_bbtautau_280.root 0.0411 - -[LIMITS ggHhh290] -hh#rightarrow#tau#taubb(m_{H}=290 tan#beta=2.5)) for limits -blue -ggH_hh_bbtautau_290.root 0.0317 - -[LIMITS ggHhh300] -hh#rightarrow#tau#taubb(m_{H}=300 tan#beta=2.5)) for limits -blue -ggH_hh_bbtautau_300.root 0.0431 - -[LIMITS ggHhh310] -hh#rightarrow#tau#taubb(m_{H}=310 tan#beta=2.5)) for limits -blue -ggH_hh_bbtautau_310.root 0.0402 - -[LIMITS ggHhh320] -hh#rightarrow#tau#taubb(m_{H}=320 tan#beta=2.5)) for limits -blue -ggH_hh_bbtautau_320.root 0.0412 - -[LIMITS ggHhh330] -hh#rightarrow#tau#taubb(m_{H}=330 tan#beta=2.5)) for limits -blue -ggH_hh_bbtautau_330.root 0.0395 - -[LIMITS ggHhh340] -hh#rightarrow#tau#taubb(m_{H}=340 tan#beta=2.5)) for limits -blue -ggH_hh_bbtautau_340.root 0.0403 - -[LIMITS ggHhh350] -hh#rightarrow#tau#taubb(m_{H}=350 tan#beta=2.5)) for limits -blue -ggH_hh_bbtautau_350.root 0.0345 - -[SIGNAL ggHhh300] -10x hh#rightarrow#tau#taubb(m_{H}=300 tan#beta=2.5) -blue -ggH_hh_bbtautau_300.root 0.0037 - -[SIGNAL Radion500] -10x Radion#rightarrowhh#rightarrow#tau#taubb(m_{H}=500) -red -Radion_500.root 0.0136 - -[SIGNAL Graviton500] -10x Graviton#rightarrowhh#rightarrow#tau#taubb(m_{H}=500) -green -Graviton_500.root 0.0051 - -#[SIGNAL Radion1000] -#50x Radion#rightarrowhh#rightarrow#tau#taubb(m_{H}=1000) -#black -#Radion_1000.root 0.0016 - -#[SIGNAL Graviton500] -#50x Graviton#rightarrowhh#rightarrow#tau#taubb(m_{H}=1000) -#azure -#Graviton_1000.root 0.0012 - -[LIMITS bbH90] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=90 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_90.root 0.0197823 - -[LIMITS bbH100] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=100 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_100.root 0.0196937 - -[LIMITS bbH110] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=110 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_110.root 0.0197079 - -[LIMITS bbH120] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=120 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_120.root 0.0198606 - -[LIMITS bbH130] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=130 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_130.root 0.0196998 - -[LIMITS bbH140] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=140 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_140.root 0.0198269 - -[LIMITS bbH160] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=160 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_160.root 0.0202051 - -[LIMITS bbH180] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=180 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_180.root 0.0200811 - -[LIMITS bbH200] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=200 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_200.root 0.0197117 - -[LIMITS bbH250] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=250 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_250.root 0.0199352 - -[LIMITS bbH350] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=350 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_350.root 0.0200595 - -[LIMITS bbH400] -hh#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=400 tan#beta=2.5)) for limits -blue -gg_bbH_bbtautau_400.root 0.0197256 - -[LIMITS ggAToZhToLLBB250] -gg#rightarrowA#rightarrowZh#rightarrowbb#tau#tau(m_{H}=250 tan#beta=2.5)) for limits -blue -ggA_Zh_bbtautau_250.root 0.0656667 - -[LIMITS ggAToZhToLLBB260] -gg#rightarrowA#rightarrowZh#rightarrowbb#tau#tau(m_{H}=260 tan#beta=2.5)) for limits -blue -ggA_Zh_bbtautau_260.root 0.0455314 - -[LIMITS ggAToZhToLLBB270] -gg#rightarrowA#rightarrowZh#rightarrowbb#tau#tau(m_{H}=270 tan#beta=2.5)) for limits -blue -ggA_Zh_bbtautau_270.root 0.0628951 - -[LIMITS ggAToZhToLLBB280] -gg#rightarrowA#rightarrowZh#rightarrowbb#tau#tau(m_{H}=280 tan#beta=2.5)) for limits -blue -ggA_Zh_bbtautau_280.root 0.0397402 - -[LIMITS ggAToZhToLLBB290] -gg#rightarrowA#rightarrowZh#rightarrowbb#tau#tau(m_{H}=290 tan#beta=2.5)) for limits -blue -ggA_Zh_bbtautau_290.root 0.040147 - -[LIMITS ggAToZhToLLBB300] -gg#rightarrowA#rightarrowZh#rightarrowbb#tau#tau(m_{H}=300 tan#beta=2.5)) for limits -blue -ggA_Zh_bbtautau_300.root 0.0656667 - -[LIMITS ggAToZhToLLBB310] -gg#rightarrowA#rightarrowZh#rightarrowbb#tau#tau(m_{H}=310 tan#beta=2.5)) for limits -blue -ggA_Zh_bbtautau_310.root 0.0404064 - -[LIMITS ggAToZhToLLBB320] -gg#rightarrowA#rightarrowZh#rightarrowbb#tau#tau(m_{H}=320 tan#beta=2.5)) for limits -blue -ggA_Zh_bbtautau_320.root 0.0406403 - -[LIMITS ggAToZhToLLBB330] -gg#rightarrowA#rightarrowZh#rightarrowbb#tau#tau(m_{H}=330 tan#beta=2.5)) for limits -blue -ggA_Zh_bbtautau_330.root 0.040957 - -[LIMITS ggAToZhToLLBB340] -gg#rightarrowA#rightarrowZh#rightarrowbb#tau#tau(m_{H}=340 tan#beta=2.5)) for limits -blue -ggA_Zh_bbtautau_340.root 0.0406002 - -[LIMITS ggAToZhToLLBB350] -gg#rightarrowA#rightarrowZh#rightarrowbb#tau#tau(m_{H}=350 tan#beta=2.5)) for limits -blue -ggA_Zh_bbtautau_350.root 0.0658264 - -[LIMITS qqH125] -VBF -azure -VBF_HToTauTau.root 0.001967 - -# 2.64 * qqH125(from Rebecca) -[LIMITS VH125] -VH125 -azure -WH_ZH_TTH_HToTauTau.root 0.0075974 - - -# 0.313 * qqH125 = 0.000626 (from Rebecca) -[LIMITS ggH125] -ggH125 -azure -GluGluToHToTauTau.root 0.0251 - -[LIMITS SMhiggs] -SMhiggs -azure -VBF_HToBB.root 0.01797 -VBF_HToTauTau.root 0.001967 -GluGluToHToTauTau.root 0.0251 -WH_ZH_TTH_HToTauTau.root 0.0075974 -WH_WToLNu_HToBB.root 0.0008668 -#ZH_ZToLL_HToBB.root 0.0004528 - - -[VIRTUAL QCD] -QCD -pink_custom - -[SUM SUM] -SumBkg -black + +[ggHhh260] +type: SIGNAL +type: LIMITS +title: hh#rightarrow#tau#taubb(m_{H}=260 tan#beta=2.5) +datacard: ggHTohhTo2Tau2B260 +color: blue +file: ggH_hh_bbtautau_260.root 0.0358936 +limits_sf: 1.18 +draw_sf: 10 + +[ggHhh270] +type: SIGNAL +type: LIMITS +title: hh#rightarrow#tau#taubb(m_{H}=270 tan#beta=2.5) +datacard: ggHTohhTo2Tau2B270 +color: blue +file: ggH_hh_bbtautau_270.root 0.03057 +limits_sf: 1.31 +draw_sf: 10 + +[ggHhh280] +type: SIGNAL +type: LIMITS +title: hh#rightarrow#tau#taubb(m_{H}=280 tan#beta=2.5) +datacard: ggHTohhTo2Tau2B280 +color: blue +file: ggH_hh_bbtautau_280.root 0.0284073 +limits_sf: 1.45 +draw_sf: 10 + +[ggHhh290] +type: SIGNAL +type: LIMITS +title: hh#rightarrow#tau#taubb(m_{H}=290 tan#beta=2.5) +datacard: ggHTohhTo2Tau2B290 +color: blue +file: ggH_hh_bbtautau_290.root 0.0201117 +limits_sf: 1.58 +draw_sf: 10 + +[ggHhh300] +type: SIGNAL +type: LIMITS +title: hh#rightarrow#tau#taubb(m_{H}=300 tan#beta=2.5) +datacard: ggHTohhTo2Tau2B300 +color: blue +file: ggH_hh_bbtautau_300.root 0.0253141 +limits_sf: 1.7 +draw_sf: 10 + +[ggHhh310] +type: SIGNAL +type: LIMITS +title: hh#rightarrow#tau#taubb(m_{H}=310 tan#beta=2.5) +datacard: ggHTohhTo2Tau2B310 +color: blue +file: ggH_hh_bbtautau_310.root 0.0221424 +limits_sf: 1.82 +draw_sf: 10 + +[ggHhh320] +type: SIGNAL +type: LIMITS +title: hh#rightarrow#tau#taubb(m_{H}=320 tan#beta=2.5) +datacard: ggHTohhTo2Tau2B320 +color: blue +file: ggH_hh_bbtautau_320.root 0.0215317 +limits_sf: 1.91 +draw_sf: 10 + +[ggHhh330] +type: SIGNAL +type: LIMITS +title: hh#rightarrow#tau#taubb(m_{H}=330 tan#beta=2.5) +datacard: ggHTohhTo2Tau2B330 +color: blue +file: ggH_hh_bbtautau_330.root 0.0199818 +limits_sf: 1.98 +draw_sf: 10 + +[ggHhh340] +type: SIGNAL +type: LIMITS +title: hh#rightarrow#tau#taubb(m_{H}=340 tan#beta=2.5) +datacard: ggHTohhTo2Tau2B340 +color: blue +file: ggH_hh_bbtautau_340.root 0.0207792 +limits_sf: 1.94 +draw_sf: 10 + +[ggHhh350] +type: SIGNAL +type: LIMITS +title: hh#rightarrow#tau#taubb(m_{H}=350 tan#beta=2.5) +datacard: ggHTohhTo2Tau2B350 +color: blue +file: ggH_hh_bbtautau_350.root 0.0179311 +limits_sf: 1.93 +draw_sf: 10 + +[MSSM_bbH90] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=90) +datacard: bbH90 +file: MSSM_bbH_bbtautau_90.root 0.0197823 +limits_sf: 1 + +[MSSM_bbH100] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=100) +datacard: bbH100 +file: MSSM_bbH_bbtautau_100.root 0.0196937 +limits_sf: 1 + +[MSSM_bbH110] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=110) +datacard: bbH110 +file: MSSM_bbH_bbtautau_110.root 0.0197079 +limits_sf: 1 + +[MSSM_bbH120] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=120) +datacard: bbH120 +file: MSSM_bbH_bbtautau_120.root 0.0198606 +limits_sf: 1 + +[MSSM_bbH130] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=130) +datacard: bbH130 +file: MSSM_bbH_bbtautau_130.root 0.0196998 +limits_sf: 1 + +[MSSM_bbH140] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=140) +datacard: bbH140 +file: MSSM_bbH_bbtautau_140.root 0.0198269 +limits_sf: 1 + +[MSSM_bbH160] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=160) +datacard: bbH160 +file: MSSM_bbH_bbtautau_160.root 0.0202051 +limits_sf: 1 + +[MSSM_bbH180] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=180) +datacard: bbH180 +file: MSSM_bbH_bbtautau_180.root 0.0200811 +limits_sf: 1 + +[MSSM_bbH200] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=200) +datacard: bbH200 +file: MSSM_bbH_bbtautau_200.root 0.0197117 +limits_sf: 1 + +[MSSM_bbH250] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=250) +datacard: bbH250 +file: MSSM_bbH_bbtautau_250.root 0.0199352 +limits_sf: 1 + +[MSSM_bbH300] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=300) +datacard: bbH300 +file: MSSM_bbH_bbtautau_300.root 0.0312579 +limits_sf: 1 + +[MSSM_bbH350] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=350) +datacard: bbH350 +file: MSSM_bbH_bbtautau_350.root 0.0200595 +limits_sf: 1 + +[MSSM_bbH400] +type: LIMITS +title: gg#rightarrowbbH#rightarrowbb#tau#tau(m_{H}=400) +datacard: bbH400 +file: MSSM_bbH_bbtautau_400.root 0.0197256 +limits_sf: 1 + +[ggAToZhToLLBB250] +type: LIMITS +title: gg#rightarrowA#rightarrowZh#rightarrow#tau#taubb(m_{A}=250) +datacard: ggAToZhToLLBB250 +file: ggA_Zh_bbtautau_250.root 0.0656667 +limits_sf: 1 + +[ggAToZhToLLBB260] +type: LIMITS +title: gg#rightarrowA#rightarrowZh#rightarrow#tau#taubb(m_{A}=260) +datacard: ggAToZhToLLBB260 +file: ggA_Zh_bbtautau_260.root 0.0455314 +limits_sf: 1 + +[ggAToZhToLLBB270] +type: LIMITS +title: gg#rightarrowA#rightarrowZh#rightarrow#tau#taubb(m_{A}=270) +datacard: ggAToZhToLLBB270 +file: ggA_Zh_bbtautau_270.root 0.0628951 +limits_sf: 1 + +[ggAToZhToLLBB280] +type: LIMITS +title: gg#rightarrowA#rightarrowZh#rightarrow#tau#taubb(m_{A}=280) +datacard: ggAToZhToLLBB280 +file: ggA_Zh_bbtautau_280.root 0.0397402 +limits_sf: 1 + +[ggAToZhToLLBB290] +type: LIMITS +title: gg#rightarrowA#rightarrowZh#rightarrow#tau#taubb(m_{A}=290) +datacard: ggAToZhToLLBB290 +file: ggA_Zh_bbtautau_290.root 0.040147 +limits_sf: 1 + +[ggAToZhToLLBB300] +type: LIMITS +title: gg#rightarrowA#rightarrowZh#rightarrow#tau#taubb(m_{A}=300) +datacard: ggAToZhToLLBB300 +file: ggA_Zh_bbtautau_300.root 0.0656667 +limits_sf: 1 + +[ggAToZhToLLBB310] +type: LIMITS +title: gg#rightarrowA#rightarrowZh#rightarrow#tau#taubb(m_{A}=310) +datacard: ggAToZhToLLBB310 +file: ggA_Zh_bbtautau_310.root 0.0404064 +limits_sf: 1 + +[ggAToZhToLLBB320] +type: LIMITS +title: gg#rightarrowA#rightarrowZh#rightarrow#tau#taubb(m_{A}=320) +datacard: ggAToZhToLLBB320 +file: ggA_Zh_bbtautau_320.root 0.0406403 +limits_sf: 1 + +[ggAToZhToLLBB330] +type: LIMITS +title: gg#rightarrowA#rightarrowZh#rightarrow#tau#taubb(m_{A}=330) +datacard: ggAToZhToLLBB330 +file: ggA_Zh_bbtautau_330.root 0.040957 +limits_sf: 1 + +[ggAToZhToLLBB340] +type: LIMITS +title: gg#rightarrowA#rightarrowZh#rightarrow#tau#taubb(m_{A}=340) +datacard: ggAToZhToLLBB340 +file: ggA_Zh_bbtautau_340.root 0.0406002 +limits_sf: 1 + +[ggAToZhToLLBB350] +type: LIMITS +title: gg#rightarrowA#rightarrowZh#rightarrow#tau#taubb(m_{A}=350) +datacard: ggAToZhToLLBB350 +file: ggA_Zh_bbtautau_350.root 0.0658264 +limits_sf: 1 + +[qqH125] +type: LIMITS +title: VBF +datacard: qqH125 +file: VBF_HToTauTau.root 0.001967 + +[VH125] +type: LIMITS +title: VH125 +datacard: VH125 +file: WH_ZH_TTH_HToTauTau.root 0.0075974 + +[ggH125] +type: LIMITS +title: ggH125 +datacard: ggH125 +file: GluGluToHToTauTau.root 0.0251 + +[SMhiggs] +type: BACKGROUND +title: SMhiggs +color: azure +file: VBF_HToBB.root 0.01797 +file: VBF_HToTauTau.root 0.001967 +file: GluGluToHToTauTau.root 0.0251 +file: WH_ZH_TTH_HToTauTau.root 0.0075974 +file: WH_WToLNu_HToBB.root 0.0008668 +file: ZH_ZToLL_HToBB.root 0.0004528 + +[QCD] +type: BACKGROUND +type: LIMITS +type: QCD +title: QCD +datacard: QCD +color: pink_custom [EWK] -Electroweak -red_custom -#WJetsToLNu_v1.root 9.3855 -#WJetsToLNu_v2.root 9.3855 -W1JetsToLNu_V19.root 3.5716 -W2JetsToLNu_V19.root 1.1232 -W3JetsToLNu_V19.root 0.6708 -W4jets.root 0.3150 -ZZJetsTo4L.root 0.0007 -ZZJetsTo2L2Nu.root 0.0148 -ZZJetsTo2L2Q.root 0.0254 -WWJetsTo2L2Nu.root 0.0593 -WZJetsTo2L2Q.root 0.0135 -WZJetsTo3LNu.root 0.0103 -T_tW.root 0.4394 -Tbar_tW.root 0.4431 - -[LIMITS Wjets] -Wjets -black -W1JetsToLNu_V19.root 3.5716 -W2JetsToLNu_V19.root 1.1232 -W3JetsToLNu_V19.root 0.6708 -W4jets.root 0.3150 +type: BACKGROUND +type: EWK +title: Electroweak +color: red_custom +#file: WJetsToLNu_v1.root 9.3855 +#file: WJetsToLNu_v2.root 9.3855 +file: W1JetsToLNu_V19.root 3.5716 +file: W2JetsToLNu_V19.root 1.1232 +file: W3JetsToLNu_V19.root 0.6708 +file: W4jets.root 0.3150 +file: ZZJetsTo4L.root 0.0007 +file: ZZJetsTo2L2Nu.root 0.0148 +file: ZZJetsTo2L2Q.root 0.0254 +file: WWJetsTo2L2Nu.root 0.0593 +file: WZJetsTo2L2Q.root 0.0135 +file: WZJetsTo3LNu.root 0.0103 +file: T_tW.root 0.4394 +file: Tbar_tW.root 0.4431 + +[Wjets] +type: W_JETS +title: Wjets +file: W1JetsToLNu_V19.root 3.5716 +file: W2JetsToLNu_V19.root 1.1232 +file: W3JetsToLNu_V19.root 0.6708 +file: W4jets.root 0.3150 [TTbar] -t#bar{t} -violet_custom -tt_hadr.root 0.0719 -tt_lept.root 0.0430 -tt_semi.root 0.0862 - - -#[WJets] -#Wjets -#azure -#WJetsToLNu_v2.root 12.3768 -#WJetsToLNu_v1.root 38.8332 -#W1Jets.root 3.5716 -#W2Jets.root 1.1232 -#W3Jets.root 0.6708 -#W4Jets.root 0.3150 - -[REFERENCE DYJets] -Z #rightarrow ll -yellow_custom -#DYJetsToLL.root 2.2662 -DY1JetsToLL.root 0.4596 -DY2JetsToLL.root 0.1632 -DY3JetsToLL.root 0.0914 -DY4JetsToLL.root 0.0708 +type: BACKGROUND +type: LIMITS +title: t#bar{t} +datacard: TT +color: violet_custom +file: tt_hadr.root 0.0719 +file: tt_lept.root 0.0430 +file: tt_semi.root 0.0862 + +[DYJets] +type: DY_JETS +title: Z #rightarrow ll +color: yellow_custom +#file: DYJetsToLL.root 2.2662 +file: DY1JetsToLL.root 0.4596 +file: DY2JetsToLL.root 0.1632 +file: DY3JetsToLL.root 0.0914 +file: DY4JetsToLL.root 0.0708 [ZL] -ZL -yellow_custom +type: ZL +type: LIMITS +title: ZL +datacard: ZL [ZJ] -ZJ -yellow_custom +type: ZJ +type: LIMITS +title: ZJ +datacard: ZJ [ZTT_MC] -Z #rightarrow tautau -yellow_custom +type: ZTT_MC +title: Z #rightarrow tautau [ZTT] -Z #rightarrow tautau -yellow_custom - -[LIMITS DiBoson] -DiBoson -green -ZZJetsTo4L.root 0.0007 -ZZJetsTo2L2Nu.root 0.0148 -ZZJetsTo2L2Q.root 0.0254 -WWJetsTo2L2Nu.root 0.0593 -WZJetsTo2L2Q.root 0.0135 -WZJetsTo3LNu.root 0.0103 -T_tW.root 0.4394 -Tbar_tW.root 0.4431 +type: ZTT +type: LIMITS +title: Z #rightarrow tautau +datacard: ZTT + +[DiBoson] +type: LIMITS +title: DiBoson +datacard: VV +file: ZZJetsTo4L.root 0.0007 +file: ZZJetsTo2L2Nu.root 0.0148 +file: ZZJetsTo2L2Q.root 0.0254 +file: WWJetsTo2L2Nu.root 0.0593 +file: WZJetsTo2L2Q.root 0.0135 +file: WZJetsTo3LNu.root 0.0103 +file: T_tW.root 0.4394 +file: Tbar_tW.root 0.4431 [DATA TauPlusX] -Observed -black -TauPlusX_A.root 1 -TauPlusX_B.root 1 -TauPlusX_C.root 1 -TauPlusX_D.root 1 +type: DATA +type: LIMITS +channel: eTau +channel: muTau +title: Observed +datacard: data_obs +color: black +file: TauPlusX_A.root 1 +file: TauPlusX_B.root 1 +file: TauPlusX_C.root 1 +file: TauPlusX_D.root 1 [DATA Tau] -Observed -black -Tau_A.root 1 -Tau_B.root 1 -Tau_C.root 1 -Tau_D.root 1 +type: DATA +type: LIMITS +channel: tauTau +title: Observed +datacard: data_obs +color: black +file: Tau_A.root 1 +file: Tau_B.root 1 +file: Tau_C.root 1 +file: Tau_D.root 1 [EMBEDDED MuTau] -Z #rightarrow #tau #tau -yellow_custom -DY_Embedded_MuTau_A.root 1 -DY_Embedded_MuTau_B.root 1 -DY_Embedded_MuTau_C.root 1 -DY_Embedded_MuTau_D.root 1 +type: EMBEDDED +channel: muTau +title: Z #rightarrow #tau #tau +file: DY_Embedded_MuTau_A.root 1 +file: DY_Embedded_MuTau_B.root 1 +file: DY_Embedded_MuTau_C.root 1 +file: DY_Embedded_MuTau_D.root 1 [EMBEDDED ETau] -Z #rightarrow #tau #tau -yellow_custom -DY_Embedded_ETau_A.root 1 -DY_Embedded_ETau_B.root 1 -DY_Embedded_ETau_C.root 1 -DY_Embedded_ETau_D.root 1 +type: EMBEDDED +channel: eTau +title: Z #rightarrow #tau #tau +file: DY_Embedded_ETau_A.root 1 +file: DY_Embedded_ETau_B.root 1 +file: DY_Embedded_ETau_C.root 1 +file: DY_Embedded_ETau_D.root 1 [EMBEDDED TauTau] -Z #rightarrow #tau #tau -yellow_custom -DY_Embedded_TauTau_A.root 1 -DY_Embedded_TauTau_B.root 1 -DY_Embedded_TauTau_C.root 1 -DY_Embedded_TauTau_D.root 1 - +type: EMBEDDED +channel: tauTau +title: Z #rightarrow #tau #tau +file: DY_Embedded_TauTau_A.root 1 +file: DY_Embedded_TauTau_B.root 1 +file: DY_Embedded_TauTau_C.root 1 +file: DY_Embedded_TauTau_D.root 1 + +[SUM] +type: SUM +title: SumBkg