HTT Hadronic Decay Channel

This is TWiki page that describes the double hadronic decay channel of Higgs to Tau, Tau decay. Relevant analyses are

These analyses were performed using the same full Run2 dataset.

One can also easily play with prepared codes and samples which skimmed for all baseline selections described below. One can start by reproducing mtt plot in here: https://gitlab.cern.ch/doyeong/myfakefactorplugin/-/blob/quickanalysis/plots/m_mtt_tt_inclusive_Emb_2018.pdf

If one just follow the README up to 'Quick start', mtt plot should be reproduced.

For a deeper study that requires relaxed selection one need to start from earlier steps depending on what you need.

Please, contact Kim Doyeong (doyeong.kim@cernNOSPAMPLEASE.ch), if you have any questions.


Samples

Data 2016


Tau
/Tau/Run2016B-17Jul2018_ver1-v1/MINIAOD
/Tau/Run2016B-17Jul2018_ver1-v2/MINIAOD
/Tau/Run2016C-17Jul2018-v1/MINIAOD
/Tau/Run2016D-17Jul2018-v1/MINIAOD
/Tau/Run2016E-17Jul2018-v1/MINIAOD
/Tau/Run2016F-17Jul2018-v1/MINIAOD
/Tau/Run2016G-17Jul2018-v1/MINIAOD
/Tau/Run2016H-17Jul2018_ver2-v1/MINIAOD
/Tau/Run2016H-17Jul2018_ver3-v1/MINIAOD


Data 2017


Tau
/Tau/Run2017B-31Mar2018-v1/MINIAOD
/Tau/Run2017C-31Mar2018-v1/MINIAOD
/Tau/Run2017D-31Mar2018-v1/MINIAOD
/Tau/Run2017E-31Mar2018-v1/MINIAOD
/Tau/Run2017F-31Mar2018-v1/MINIAOD


Data 2018


Tau
/Tau/Run2018A-17Sep2018-v1/MINIAOD
/Tau/Run2018B-17Sep2018-v1/MINIAOD
/Tau/Run2018C-17Sep2018-v1/MINIAOD
/Tau/Run2018D-PromptReco-v2/MINIAOD

Triggers

Match the reco objects to the path and to the last filter (booleans saved in miniAOD as detailed here).

2016


HLT_DoubleMediumIso_PFTau35_Trk1_eta2p1_Reg_v*
HLT_DoubleMedium_CombinedIso PFTau35_Trk1_eta2p1_Reg_v*


2017


HLT_DoubleMedium_ChargedIsoPFTau40_Trk1_TightID_eta2p1_Reg_v*
HLT_DoubleTight_ChargedIsoPFTau40_Trk1_eta2p1_Reg_v*
HLT_DoubleTight_ChargedIsoPF_Tau35_Trk1_TightID_eta2p1_Reg_v*

2018


HLT_DoubleMedium ChargedIsoPFTau40 _Trk1_TightID_eta2p1_Reg v only data run < 317509
HLT_DoubleTight ChargedIsoPFTau40 _Trk1_eta2p1_Reg_v only data run < 317509
HLT_DoubleTight ChargedIsoPF Tau35_Trk1_TightID_eta2p1_Reg_v only data run < 317509
HLT_DoubleTightChargedIsoPFTauHPS40_Trk1_eta2p1_Reg_v MC and data run >= 317509

Objects

Taus

The tau ID should be rerun on top of miniAOD ( Deep_and_DPF). We use the deep tau ID v2p1 (VSjet, VSmu, and VSe).

The tau energy scale should be corrected as a function of the decay mode (see the section about corrections).

Jets

Jets are required to pass the tight jet ID (the definition differs with the year ( 2016, 2017, 2018), to pass the loose pileup jet ID if they have pT < 50 GeV, to have pT > 30 GeV, abs(eta) < 4.7, and to be separated by DR > 0.5 from the selected electrons/muons/taus.

In 2017, the noisy jets should be removed. The noisy jets are defined as: 20 < pt < 50 && abs(eta) > 2.65 && abs(eta) < 3.139. Nothing should be removed in 2016 nor 2018.

MET

The MET should be rerun with the sequence :

runMetCorAndUncFromMiniAOD(process, isData=isData, postfix = "ModifiedMET" )

In 2017 only, to remove the noisy jets:

runMetCorAndUncFromMiniAOD(process, isData=isData, fixEE2017 = True, fixEE2017Params = {"userawPt": True, "ptThreshold":50.0, "minEtaThreshold":2.65, "maxEtaThreshold": 3.139} , postfix = "ModifiedMET" )

Apply MET filters as recommended on the MET filter TWiki. The recommendations depend on the year.

Tools

Computing the ditau mass

FastMTT can be used, using the same interface as SVfit. It can be run and accessed as shown in this code.

One can find the code implemented in SVFit from this repository: https://gitlab.cern.ch/doyeong/mttcomputingtools/-/blob/master/ROOT/bin/SVFitStandAloneFSATauDM_tautau_norecoil.cc#L236-253

See more details in this talk and this AN.

Fake factors

Detail of the fake factor methods are well described in AN2019-109 (https://cms.cern.ch/iCMS/jsp/db_notes/noteInfo.jsp?cmsnoteid=CMS%20AN-2019/109).

Relevant codes and files can be found here: https://gitlab.cern.ch/doyeong/ditau_analyzer/-/blob/master/src/addFFBranch.cc

Corrections

The following corrections are implemented in my personal code.

MC Matching

Most corrections depend on the origin of the reconstructed object, e.g. whether it is a true hadronic tau decay, a muon, an electron, or a jet that gives rise to a reconstructed tau. Therefore, we should agree on MC matching recipes early on and make sure this matching information is available for all samples and objects so that the corrections can be applied later on.

The origin of the reconstructed object is taken as the type of gen particle that matches the object most closely in dR. If there is no match within dR<0.2 with any of the first 5 types in the table below, the object is classed as jet/pu fake. The values correspond to those given in the corresponding sync ntuple branches. See these slides for more information.

Value Type Gen level object properties
1 Prompt electron (pdgId=11 or pdgId=-11), pT>8 GeV, status flag IsPrompt
2 Prompt muon (pdgId=13 or pdgId=-13), pT>8 GeV, status flag IsPrompt
3 tau->e (pdgId=11 or pdgId=-11), pT>8 GeV, status flag IsDirectPromptTauDecayProduct
4 tau->mu (pdgId=13 or pdgId=-13), pT>8 GeV, status flag IsDirectPromptTauDecayProduct
5 tau->tau_h Gen-tau jet, rebuilt by summing 4-momenta of visible gen tau decay products, excluding electrons and muons. The pT of the gen tau jet should be >15 GeV. Only consider the decay products of those gen taus that fulfill status flag IsPrompt. Instructions for building gen tau jets are given below.
6 jet/PU fake Anything that doesn’t fall in any of the above categories

Building gen-tau jets for MC matching

Gen-tau jets are defined by summing the 4-momenta of visible tau decay products for hadronically decaying taus following this procedure:

  • Start from gen taus (|pdgId|=15) that fulfil the status flags IsPrompt and IsLastCopy
  • Select daughter particles of the tau (e.g using "src.daughterRefVector()" if using reco::GenParticle)
  • Sum together the 4-momenta of all visible (i.e excluding neutrinos) decay products excluding also the charged lepton decay products. The selection (|pdgId|>=11&&|pdgId|<=16)==0 will exclude all charged leptons and neutrinos. Note leptonic decays are identified as described above so taus with leptonic decay products should be excluded from the gen tau jets

Tau ID SF

To be applied to all isolated taus with gen_match==5. The values can be extracted with the TAU POG tool available in https://github.com/cms-tau-pog/TauIDSFs. In the tautau decay channel, we use the DM binned scale factors computed for tau pt > 40 GeV.

Tau ES

To be applied to all taus with gen_match==5. The MET should be corrected accordingly. The whole p4 of the tau should be scaled. If DM=0, the mass of the tau should be fixed to the pion mass in all cases. The values can be found in the Tau ID twiki.

mu->tau FR

To be applied to all taus with gen_match==2 or 4. The numbers are taken from this presentation https://indico.cern.ch/event/862376/contributions/3634526/attachments/1942589/3241485/DeepSFv2p1.pdf.

e->tau FR

To be applied to all taus with gen_match==1 or 3.

The numbers are taken from this presentation https://indico.cern.ch/event/862376/contributions/3634526/attachments/1942589/3241485/DeepSFv2p1.pdf.

mu->tau ES

To be applied to all taus with gen_match==2 or 4. The numbers are given in % in the table. The MET should be corrected accordingly.

  2016 2017 2018
DM0 0.0 -0.2 -0.2
DM1 -0.5 -0.8 -1.0

e->tau ES

To be applied to all taus with gen_match==1 or 3. The numbers are given in % in the table. The MET should be corrected accordingly.

  2016 2017 2018
DM0 -0.5 -1.8 -3.2
DM1 6.0 1.8 2.6

Pileup reweighting

In 2017, a per-sample reweighting needs to be applied. In 2016 and 2018, the reweighting is identical for all the samples of the same year.

This is implemented in this part of code, and all relevant root files can be found from the same repository.

Recoil corrections

All the instructions are here. The recoil corrections depend on the year:

Year Correction Systematics
2016 TypeI -PFMet_Run2016BtoH.root PFMEtSys _2016.root
2017 TypeI -PFMet_Run2017.root PFMEtSys _2017.root
2018 TypeI -PFMet_Run2018.root PFMEtSys _2017.root

Prefiring

The correction and its uncertainty are taken from the CMSSW producer.

In case of FSA, the correction and corresponding systematics are stored as branches.

https://gitlab.cern.ch/KState-HEP-HTT/SMHTT_skimmersANDanalyzers/-/blob/master/namu_Skim_JECv19.h#L100-102

Other corrections

All other corrections (else ID/iso, muon ID/iso, tau trigger, ele trigger, muon trigger, Z pt reweighting, embedded weights, ...) can be found in the [[https://github.com/danielwinterbottom/LegacyCorrectionsWorkspace/tree/legacy_newrepo/output][HTT workspaces]. The names of the corrections can be taken from the CP analysis twiki.

Again, all these corrections and HTT workspaces can be found from here too.

Baseline selection

Pair Selection Algorithm

Following the ID, pt/eta cuts and $\Delta R$ condition there will be more than one possible candidate pair. We resolve this by selecting the pair with the two most isolated leptons, under the assumption that this gives the highest efficiency for selecting the correct pair in signal events.

The following is mandatory logic for comparing two pairs in a sorting algorithm that aims to resolve ambiguous cases (e.g. multiple candidates with the same isolation value) if trying to perform synchronization.

  • First prefer the pair with the most isolated candidate 1 (muon for $\mu\tau_{h}$ and $e\mu$, electron for $e\tau_{h}$ and either $\tau_{h}$ for $\tau_{h}\tau_{h}$).
  • If the isolation of candidate 1 is the same in both pairs, prefer the pair with the highest candidate 1 pt (for cases of genuinely the same isolation value but different possible candidate 1).
  • If the pt of candidate 1 in both pairs is the same (likely because it's the same object) then prefer the pair with the most isolated candidate 2 (tau for $e\tau_{h}$, $\mu\tau_{h}$, $\tau_{h}\tau_{h}$, electron for $e\mu$).
  • If the isolation of candidate 2 is the same, prefer the pair with highest candidate 2 pt (for cases of genuinely the same isolation value but different possible candidate 2).
For taus, sort by raw deep isolation.

Note: To use this logic in the $\tau_{h}\tau_{h}$ channel each possible pairing should appear twice in the collection of pairs, to account for each of the taus appearing as candidate 1 and the other as candidate 2.

*Hadronic Taus *: tau.pt() > 40 and fabs(tau.eta()) < 2.1 and medium deepVSjet and tau.tauID('decayModeFinding') > 0.5 and fabs(packedLeadTauCand->dz()) < 0.2 and fabs(charge)==1 and VLoose deepVSmu and VVVLoose deepVSe

Pair: DR > 0.5

Third lepton vetoes:

Electron

ele.pt()         > 10                            and
fabs(ele.eta()) < 2.5 and
fabs(dxy) < 0.045 and
fabs(dz) < 0.2 and
MVA ID 90% efficiency WP wo iso (Fall17-V2 training) and
elec.passConversionVeto() and
elec.gsfTrack()->hitPattern().numberOfHits(reco::HitPattern::MISSING_INNER_HITS))) <=1 and
iso < 0.3

Muon

muon.pt()        > 10                            and
fabs(muon.eta) < 2.4 and
fabs(dxy) < 0.045 and
fabs(dz) < 0.2 and
"Medium" (HIP safe) ID and
iso(cone size 0.4) < 0.3

Shape systematic uncertainties

Tau ID uncertainty

The tau ID uncertainty is treated as a shape uncertainty since there are separate uncertainties per DM bin and pt bin. Use the Tau POG tool to get the uncertainties.

TAU POG tool is available in https://github.com/cms-tau-pog/TauIDSFs.

Tau trigger uncertainty

The tau trigger uncertainties depend on the tau pt and DM and are therefore also treated as shape systematics. Use the Tau POG tool or the HTT workspace to get the shifts.

TAU POG tool is available in https://github.com/cms-tau-pog/TauIDSFs.

JES

The latest uncertainty files can be found here:

These uncertainties can be applied by following the recommendations here. More information on the JES uncertainty sources can be found here.

The merging proposed by JetMET is used: https://docs.google.com/spreadsheets/d/1Feuj1n0MdotcPq19Mht7SUIgvkXkA4hiB0BxEuBShLw/edit#gid=1345121349

If you use FSA, all branches are pre-stored with the postfixes you can find here.

Please, make sure, you get all branches for any jet-relevant variables: di-jet mass, leading jet and sub-leading jet pT, jet multiplicity.

JER

The uncertainties in the jet energy resolution are taken from the CMSSW module. They are propagated to the MET and to the mass, as usual.

If you use FSA, all branches are pre-stored with the postfixes you can find here.

Please, make sure, you get all branches for any jet-relevant variables: di-jet mass, leading jet and sub-leading jet pT, jet multiplicity.

MET uncertainties

For MC samples WITHOUT recoil corrections applied uncertainties due to the JES and unclustered energy corrections should be used. For the JES uncertainty see the instructions above. For the un-clustered energy uncertainty instruction on how to compute this shift can be found here. The naming convention for the MET unclustered energy scale uncertainty is CMS_scale_met_unclustered_2016(2017/2018)Up(Down).

For MC samples WITH recoil corrections applied the JES and unclustered energy uncertainties are not applied, instead the systematic shifts related to the recoil "response" and "resolution" uncertainties should be applied. The recoil corrections are derived in 3 N-jets bins (N-jets=0, N-jet=1, N-jets>1) meaning the uncertainties for each N-jets bin should be propagated as separate nuisance parameters giving a total of 6 nuisance parameters - 3-Njet bins X 2 (Recoil response, Recoil resolution). Remember when counting the N-jets for the W+jets MC N-jets should be increased by 1 to account for the additional jet that fakes the hadronic-tau (or electron in the case of the em channel) and therefore no N-jet=0 uncertainty need be applied for the W+jets MC. The MET uncertainties due to resolution should be named like:

  • CMS_htt_boson_reso_met_0Jet_2016(2017/2018)Up(Down)
  • CMS_htt_boson_reso_met_1Jet_2016(2017/2018)Up(Down)
  • CMS_htt_boson_reso_met_2Jet_2016(2017/2018)Up(Down)
And the MET uncertainties due to the response should be named like
  • CMS_htt_boson_scale_met_0Jet_2016(2017/2018)Up(Down)
  • CMS_htt_boson_scale_met_1Jet_2016(2017/2018)Up(Down)
  • CMS_htt_boson_scale_met_2Jet_2016(2017/2018)Up(Down)

Tau energy scale uncertainty

Uncorrelated between decay modes. Applied to reconstructed taus with gen_match==5.

Naming convention: CMS_scale_t_1prong(1prong1pizero/3prong/3prong1pizero)_2016(2017/2018)Up(Down).

See for the Tau ID twiki for the values.

Uncertainty in the e->tau and mu->tau energy scale corrections

Applied only to taus with gen_match=1 or 3, separately for DM0 and DM1. 1% in the tau energy scale. Naming convention: CMS_scale_efaket_1prong(1prong1pizero)_2016(2017/2018).

Applied only to taus with gen_match=2 or 4, separately for DM0 and DM1. 1% in the tau energy scale. Naming convention: CMS_scale_mfaket_1prong(1prong1pizero)_2016(2017/2018).



ggH theory uncertainties

This code can be used to compute the uncertainties starting from the Rivet quantities. The variations are obtained by calling: NumV WG1unc = qcd_ggF_uncert_2017(Rivet_nJets30, Rivet_higgsPt, Rivet_stage1_cat_pTjet30GeV);

The vector WG1unc has 9 elements; the event weight should be multiplied by 1+WG1unc[i] for the ith shape up, and 1-WG1unc[i] for the ith shape down. The uncertainty names are, in the good order: "_THU_ggH_Mu_13TeVUp","_THU_ggH_Mu_13TeVDown", "_THU_ggH_Res_13TeVUp","_THU_ggH_Res_13TeVDown", "_THU_ggH_Mig01_13TeVUp","_THU_ggH_Mig01_13TeVDown", "_THU_ggH_Mig12_13TeVUp","_THU_ggH_Mig12_13TeVDown", "_THU_ggH_VBF2j_13TeVUp","_THU_ggH_VBF2j_13TeVDown", "_THU_ggH_VBF3j_13TeVUp","_THU_ggH_VBF3j_13TeVDown", "_THU_ggH_PT60_13TeVUp","_THU_ggH_PT60_13TeVDown", "_THU_ggH_PT120_13TeVUp","_THU_ggH_PT120_13TeVDown", "_THU_ggH_qmtop_13TeVUp","_THU_ggH_qmtop_13TeVDown"

Uncertainty in the Z pT/mass reweighting

Apply 90% or 110% of the Z pT/mass correction.

https://gitlab.cern.ch/doyeong/ditau_analyzer/-/blob/master/src/corrections.cc#L165-178

Checklist for the shape systematics


Check that you have all these shape uncertainties in your datacards:

Name Processes Final state Notes
THU_ggH_Mu_13TeV ggH_htt All Does not affect m_tautau
THU_ggH_Res_13TeV ggH_htt All Does not affect m_tautau
THU_ggH_Mig01_13TeV ggH_htt All Does not affect m_tautau
THU_ggH_Mig12_13TeV ggH_htt All Does not affect m_tautau
THU_ggH_VBF2j_13TeV ggH_htt All Does not affect m_tautau
THU_ggH_VBF3j_13TeV ggH_htt All Does not affect m_tautau
THU_ggH_PT60_13TeV ggH_htt All Does not affect m_tautau
THU_ggH_PT120_13TeV ggH_htt All Does not affect m_tautau
THU_ggH_qmtop_13TeV ggH_htt All Does not affect m_tautau
CMS_htt_dyShape_201X ZL, ZTT All Does not affect m_tautau, applies only to DY MC
CMS_scale_m_etalt1p2_201X All processes from MC and embedding mutau and emu Affects m_tautau
CMS_scale_m_eta1p2to2p1_201X All processes from MC and embedding mutau and emu Affects m_tautau
CMS_scale_m_eta2p1to2p4_201X All processes from MC and embedding mutau and emu Affects m_tautau
CMS_scale_e_Scale_201X All processes from MC and embedding etau and emu Affects m_tautau
CMS_htt_boson_reso_met_0Jet_201X All processes with recoil corrections applied All Affects m_tautau
CMS_htt_boson_reso_met_1Jet_201X All processes with recoil corrections applied All Affects m_tautau
CMS_htt_boson_reso_met_2Jet_201X All processes with recoil corrections applied All Affects m_tautau
CMS_htt_boson_scale_met_0Jet_201X All processes with recoil corrections applied All Affects m_tautau
CMS_htt_boson_scale_met_1Jet_201X All processes with recoil corrections applied All Affects m_tautau
CMS_htt_boson_scale_met_2Jet_201X All processes with recoil corrections applied All Affects m_tautau
CMS_scale_efaket_1prong_201X All MC with gen_match_2==1 or 3 etau Affects m_tautau
CMS_scale_efaket_1prong1pizero_201X All MC with gen_match_2==1 or 3 etau Affects m_tautau
CMS_scale_mfaket_1prong_201X All MC with gen_match_2==2 or 4 mutau Affects m_tautau
CMS_scale_mfaket_1prong1pizero_201X All MC with gen_match_2==2 or 4 mutau Affects m_tautau
CMS_scale_t_1prong_201X All MC with gen_match==5 etau, mutau, tautau Affects m_tautau
CMS_scale_t_1prong1pizero_201X All MC with gen_match==5 etau, mutau, tautau Affects m_tautau
CMS_scale_t_3prong_201X All MC with gen_match==5 etau, mutau, tautau Affects m_tautau
CMS_scale_t_3prong1pizero_201X All MC with gen_match==5 etau, mutau, tautau Affects m_tautau
CMS_scale_jet_XXX_201X All MC All 11 shapes, affects m_tautau
CMS_scale_jet_JER_201X All MC All Affects m_tautau
CMS_scale_met_unclustered_201X All MC without recoil corrections applied All Affects m_tautau

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2022-10-05 - DoyeongKim1
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback