CommonLephadAnalysisCode
This TWiki is designed to communicate for the common H/Z->tautau lephad final state analysis.
According to the meeting
IndicoCommonLephadAnalysisDisucssion
, the basic strategy to design a common lephad NTuple production code has been decided.
Planned time scale
Task |
Time scale |
Responsible persons |
Finished |
Create the common channel |
~14 Aug. |
Zinonas and Eric |
|
Implement the common part |
+1 or 2 days |
Lei |
|
Merge tagprobe channel |
+1 or 2 days |
Brian, Mark, Takashi, and Lei |
|
Merge BSM lephad channel |
~24/25 Aug. |
Pedro |
|
Merge SM lephad channel |
+1 or 2 days |
Clara, Muhammed, David, Dirk and Lei |
|
Merge eVeto channel |
~16 Aug. |
Eric |
|
Basic work flow
As the work flow demonstrated in the following figure:The preselection cuts applied are only: lepton requirement and tau candidate requirement, with full flexibility to configure the cuts by Job Option (JO). Then, the common object and event information will be stored. After that, with activiated by JO option, the specific analysis, e.g. tag-probe or Htautau, module will be performed.
- Work flow of the common lephad analysis code:
Common ntuple content
xFillEventInfo eventInfo { vlist }; //!< basic event information
xFillEventWeights eventWeights { vlist }; //!< MC event weights
xFillMultiplicities multiplicities { vlist }; //!< selected object multiplicities
xFillMuonTriggers trigger_mu { vlist }; //!< muon trigger signatures
xFillElectronTriggers trigger_el { vlist }; //!< el trigger signatures
xFillTauTriggers trigger_tau { vlist }; //!< tau trigger signatures
xFillJetTriggers trigger_jet { vlist }; //!< tau trigger signatures
xFillMuonTriggerMatch muTrig_0 { vlist, "trigMatch_mu_0" }; //!< leading muon trigger matching
xFillElectronTriggerMatch eleTrig_0 { vlist, "trigMatch_ele_0" }; //!< leading electron
//(Note: tau truth match will be updated with coming new class in xTauFW)
xFillMatchedParticle matchedTau0 { vlist, "tau_0_matched" }; //!< Finds and fills truth object matched to the particle
xFillMatchedParticle matchedLepton { vlist, "lep_0_matched" }; //!< Finds and fills truth object matched to the particle
xFillMET met_truth { vlist, "met_truth"}; //!< missing ET
xFillLepton lep_0 { vlist, "lep_0" }; //!< leading lepton
xFillLepton lep_1 { vlist, "lep_1" }; //!< sub-leading lepton
xFillTau tau_0 { vlist, "tau_0" }; //!< leading tau
xFillTau tau_1 { vlist, "tau_1" }; //!< sub-leading tau
xFillTau tau_2 { vlist, "tau_2" }; //!< sub-sub-leading tau
xFillJet jet_0 { vlist, "jet_0" }; //!< leading jet
xFillJet jet_1 { vlist, "jet_1" }; //!< sub-leading jet
xFillJet jet_2 { vlist, "jet_2" }; //!< sub-sub-leading jet
xFillJet jet_3 { vlist, "jet_3" }; //!< sub-sub-sub-leading jet
xFillDiTau lep_had { vlist, "lephad" }; //!< lepton-lepton pairs
xFillMET met_reco { vlist, "met" }; //!< missing ET
Ztautau tagprobe specific variables:
xFillTauID tau_0_id { vlist, "tau_0_id" }; //!< leading tauID var
xFillTauSub tau_0_sub { vlist, "tau_0_sub" }; //!< leading tauID var
xFillTauTrack tau_0_track { vlist, "tau_0_track" };
xFillTauTriggerMatch tauTrig_0 {vlist, "trigMatch_tau_0"}; //! leading tauTrigger matchings
xFillTauHLTInfo tauTrig1_0 { vlist, "trigInfoHlt_tau_0" }; //!< leading tauTrig1_0 HLT information
BSM Htautau specific variables:
xVarI nLooseElectrons { vlist, "nLooseElectrons"}; //!< number of Loose electrons
xVarI nLooseMuons { vlist, "nLooseMuons" }; //!< number of Loose muons
xVarI nLooseTaus { vlist, "nLooseTaus" }; //!< number of Loose taus
xFillMMC mmc { vlist, "lephad" }; //!< missing mass calculator variables
xFillMOSAIC mosaic { vlist, "lephad" }; //!< missing mass calculator variables
xVarI signal_region { vlist, "SignalRegion" }; //!< label for signal region events
xVarI antitau_region { vlist, "AntitauRegion" }; //!< label for antitau region events
xVarI tightVeto_region { vlist, "tightVeto" }; //!< label for tight veto region events (dilepton veto with leptons of any quality)
xVarI NoIso_region { vlist, "NoIso" }; //!< label for no isolation region events
xVarI FakeLep_region { vlist, "FakeLep" }; //!< label for fake lepton region events
SM Htautau specific variables:
(Except MMC, most of these variables can be reduced, or merge with BSM lephad content)
std::unique_ptr<xVarI> IsOneSelectedLepton;
std::unique_ptr<xVarI> IsOneSelectedTau;
std::unique_ptr<xVarI> LepIsEle;
std::unique_ptr<xVarI> LepIsMu;
std::unique_ptr<xVarD> Dilepton_mass;
std::unique_ptr<xVarI> IsDilepCR;
std::unique_ptr<xVarD> HiggsPt;
std::unique_ptr<xVarD> mt;
std::unique_ptr<xVarD> ScalarSumPt;
std::unique_ptr<xVarD> PtRatioLepTau;
std::unique_ptr<xVarD> pTtot;
std::unique_ptr<xVarI> IsBtagged;
std::unique_ptr<xVarD> ProdEtaJets;
std::unique_ptr<xVarI> IsOppositeJets;
std::unique_ptr<xVarI> IsJetCentrality;
std::unique_ptr<xVarD> LeptonEtaCentrality;
std::unique_ptr<xVarD> JetsVisibleMass;
std::unique_ptr<xVarD> JetsDeltaEta;
std::unique_ptr<xVarD> JetsSumPt;
std::unique_ptr<xVarI> IsVbfMVA;
std::unique_ptr<xVarI> IsVbfCB;
std::unique_ptr<xVarI> IsBoostedMVA;
std::unique_ptr<xVarI> IsBoostedCB;
std::unique_ptr<xFillTruthTau> m_tauSubTruth; //!< substructure truth var
std::unique_ptr<xFillTauID> m_tauID; //!< leading tauID var
std::unique_ptr<xFillMatchedTruthLeptonicTauDecay> m_LeptonicTauTruthMatching ; //!< for leptonic tau truth matching
std::unique_ptr<xFillTriggerMatch> m_tauTrig; //!< leading tauTrigger matchings
std::unique_ptr<xFillTauHLTInfo> m_tauTrig1; //!< leading tauTrig1_0 HLT information
Contents of variables:
* IsOneSelectedLepton: Exactly one tight electron or one loose muon and a dilepton veto on loose electron-muon.
* IsOneSelectedTau: Exactly one medium tau
* LepIsEle (lepIsMu): Lepton flavour
* IsDileptonCR: Flag for the event if it contain or not two (or more) leptons of the same flavour (electrons or muons) with loose selection for both lepton flavour. The two leptons have to have opposite charge and an invariant mass > 61 GeV and < 121 GeV
* Dilepton_mass: Mass of two leptons in the dilepton_CR
* HiggsPt: 4-vector sum of te lepton, tau and MET
* mt: transverse mass of lepton+MET
* ScalarSumPt: Scalar sum of pt of lepton + tau + all jets
* PtRatioLeptonTau: Ratio of pt between the lepton and the tau in a given event
* PtTot: Vectorial sum of pt for lepton + tau + MET + 2 leading jets
* IsBtagged: flag for each event if conatin or not a jet with the following definition
* discriminant_mv2c20 > -0.5517 (see this twiki: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/BTaggingBenchmarks#b_tagging_Benchmarks_for_tag_AN1
* jet_eta < 2.5 and jet_pt > 30 GeV
Now, flags and variables for events with more the one jet:
* ProdEtaJets: jets eta product between two leading jets
* IsOppositeJets: flag for each event if the ProdEtaJets is <0 or not
* IsJetCentrality: flag with following definition
* jetMinEta < lepEta && jetMinEta < tauEta And jetMaxEta > lepEta && jetMaxEta > tauEta
where jetMinEta and jetMaxEta are respectiveley the minimum and the maximum etas of the 2 jets
* LeptonEtaCentrality: variable that give an idea of the centrality of the lepton with respect to the 2 jets (you can find the formula of this variable in the note)
* JetVisibleMass: visible mass of the leading jets
* JetsDeltaEta: delta eta between two leading jets
* JetsSumPt: vectorial sum of pt of the 2 leading jets
* IsVBFMVA: flag for each event if it is VBF for MVA analysis or not with the following definition:
* pT of the leading jet > 50 GeV
* pT of the subleading jet > 30 GeV
* DeltaEta between the jets > 3
* TauLepVisMass > 40 GeV
* IsVBFCB: flag for each event if it is VBF for cutbased analysis or not with the following definition
* pT of the leading jt > 40 GeV
* pT of the subleading jet > 30 GeV
* DeltaEta between the jets > 3
* TauLepVisMass > 40 GeV
* Pass the "IsOppositeJets" flag
* Pass the "IsJetCentrality" flag
* jetsisibleMass > 300 GeV
* Dont pass IsBtagged flag
* MET> 20 GeV
* pTtot < 30 GeV
* IsBoostedMVA: flag for each event if it is boosted for MVA analysis or not with the following definition
* Not VBF_MVA
* pTHiggs > 100 GeV
* IsBoostedCB: flag for each event if it is boosted for cutbased analysis or not with the following definition
* Not VBF_CB
* pTHiggs > 100 GeV
* MET > 20 GeV
* tau_pT > 30 GeV
* Not btagged
Job Option format convention
To be flexible on configuration, each channel has their own JO script. However, in order to easily spot the mistake in JO, the format of JO should be kept consistent in terms of the order of the JO items. In xTauFramework, the JO can be divided into following blocks:
Channel name |
general job setting |
GRL |
PU |
trigger |
Truth |
Muon |
eletron |
tau |
jet |
MET |
di-tau (mass, etc) |
Systematics |
So the idea is that the order of the blocks are kept the same as above in each JO. Then, the order of the items in each block listed in alphabetic way.