From 25cb389e9187bcb8584e655c6a9f7098ee4c6d77 Mon Sep 17 00:00:00 2001 From: Nicola Orlando <Nicola.Orlando@cern.ch> Date: Tue, 9 Nov 2021 16:15:23 +0100 Subject: [PATCH] jtau isolation information --- .../L1TopoEvent/L1TopoEvent/GenericTOB.h | 5 ++++ .../L1Topo/L1TopoEvent/Root/GenericTOB.cxx | 1 + .../L1Topo/L1TopoEvent/Root/jTauTOB.cxx | 2 +- .../src/JetInputProviderFEX.cxx | 29 ++++++++++++++++--- .../src/JetInputProviderFEX.h | 6 ++-- 5 files changed, 36 insertions(+), 7 deletions(-) diff --git a/Trigger/TrigT1/L1Topo/L1TopoEvent/L1TopoEvent/GenericTOB.h b/Trigger/TrigT1/L1Topo/L1TopoEvent/L1TopoEvent/GenericTOB.h index 85815f25ba6c..e294dfa987d1 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoEvent/L1TopoEvent/GenericTOB.h +++ b/Trigger/TrigT1/L1Topo/L1TopoEvent/L1TopoEvent/GenericTOB.h @@ -119,6 +119,9 @@ namespace TCS { double etaDouble() const { return m_etaDouble; } double phiDouble() const { return m_phiDouble; } + //jtau isolation + unsigned int jtauiso() const { return m_jtauiso; } + virtual void print(std::ostream &o) const; void setTobType(inputTOBType_t tobType) { m_tobType = tobType; } @@ -149,6 +152,8 @@ namespace TCS { unsigned int m_reta {0}; unsigned int m_rhad {0}; unsigned int m_wstot {0}; + + unsigned int m_jtauiso {0}; inputTOBType_t m_tobType { NONE }; diff --git a/Trigger/TrigT1/L1Topo/L1TopoEvent/Root/GenericTOB.cxx b/Trigger/TrigT1/L1Topo/L1TopoEvent/Root/GenericTOB.cxx index 4b5af3de0e56..cab48f5dc877 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoEvent/Root/GenericTOB.cxx +++ b/Trigger/TrigT1/L1Topo/L1TopoEvent/Root/GenericTOB.cxx @@ -48,6 +48,7 @@ TCS::GenericTOB::GenericTOB(const jTauTOB & tau) : , m_EtDouble(tau.EtDouble()) , m_etaDouble(tau.etaDouble()) , m_phiDouble(tau.phiDouble()) + , m_jtauiso(tau.isolation()) , m_tobType(JET) {} diff --git a/Trigger/TrigT1/L1Topo/L1TopoEvent/Root/jTauTOB.cxx b/Trigger/TrigT1/L1Topo/L1TopoEvent/Root/jTauTOB.cxx index fd256c41426a..66e6ac55b5eb 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoEvent/Root/jTauTOB.cxx +++ b/Trigger/TrigT1/L1Topo/L1TopoEvent/Root/jTauTOB.cxx @@ -39,5 +39,5 @@ TCS::jTauTOB::clearHeap() { void TCS::jTauTOB::print(std::ostream &o) const { - o << "jTau energy: " << Et() << ", eta: " << eta() << ", phi: " << phi(); + o << "jTau energy: " << Et() << ", eta: " << eta() << ", phi: " << phi() << ", isolation: " << isolation() ; } diff --git a/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/JetInputProviderFEX.cxx b/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/JetInputProviderFEX.cxx index e23212b05dd0..4d3e9fd3db0b 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/JetInputProviderFEX.cxx +++ b/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/JetInputProviderFEX.cxx @@ -118,10 +118,16 @@ JetInputProviderFEX::handle(const Incident& incident) { auto hjTauPt = std::make_unique<TH1I>( "jTauTOBPt", "jTau TOB Pt", 40, 0, 200); hjTauPt->SetXTitle("p_{T}"); + auto hjTauIsolation = std::make_unique<TH1I>( "jTauTOBIsolation", "jTau TOB Isolation", 200, 0, 2000); + hjTauIsolation->SetXTitle("Isolation"); + auto hjTauEtaPhi = std::make_unique<TH2I>( "jTauTOBPhiEta", "jTau TOB Location", 220, -110, 110, 128, 0, 128); hjTauEtaPhi->SetXTitle("#eta"); hjTauEtaPhi->SetYTitle("#phi"); + auto hjTauEtaIsolation = std::make_unique<TH2I>( "jTauTOBEtaIsolation", "jTau TOB Isolation vs eta", 220, -110, 110, 200, 0, 2000); + hjTauEtaPhi->SetXTitle("#eta"); + hjTauEtaPhi->SetYTitle("Isolation"); if (m_histSvc->regShared( histPath + "jTauTOBPt", std::move(hjTauPt), m_hjTauPt ).isSuccess()){ ATH_MSG_DEBUG("jTauTOB Pt histogram has been registered successfully from JetProviderFEX."); @@ -130,13 +136,24 @@ JetInputProviderFEX::handle(const Incident& incident) { ATH_MSG_WARNING("Could not register jTauTOB Pt histogram from JetProviderFEX"); } + if (m_histSvc->regShared( histPath + "jTauTOBIsolation", std::move(hjTauIsolation), m_hjTauIsolation ).isSuccess()){ + ATH_MSG_DEBUG("jTauTOB Isolation histogram has been registered successfully from JetProviderFEX."); + } + else{ + ATH_MSG_WARNING("Could not register jTauTOB Isolation histogram from JetProviderFEX"); + } if (m_histSvc->regShared( histPath + "jTauTOBPhiEta", std::move(hjTauEtaPhi), m_hjTauEtaPhi ).isSuccess()){ ATH_MSG_DEBUG("jTauTOB PhiEta histogram has been registered successfully from JetProviderFEX."); } else{ ATH_MSG_WARNING("Could not register jTauTOB PhiEta histogram from JetProviderFEX"); } - + if (m_histSvc->regShared( histPath + "jTauTOBEtaIsolation", std::move(hjTauEtaIsolation), m_hjTauEtaIsolation ).isSuccess()){ + ATH_MSG_DEBUG("jTauTOB Eta/Isolation histogram has been registered successfully from JetProviderFEX."); + } + else{ + ATH_MSG_WARNING("Could not register jTauTOB Eta/Isolation histogram from JetProviderFEX"); + } } @@ -178,6 +195,8 @@ JetInputProviderFEX::fillTopoInputEvent(TCS::TopoInputEvent& inputEvent) const { << jFexRoI->tobEt() // returns the et value of the jet in units of 200 MeV << " globalEta: " << jFexRoI->globalEta() // returns global eta in units of 0.1 + << " isolation: " + << jFexRoI->iso() // returns isolation value in units of 200 MeV << " globalPhi: " << jFexRoI->globalPhi() // returns global phi in units of 0.1 ); @@ -185,11 +204,12 @@ JetInputProviderFEX::fillTopoInputEvent(TCS::TopoInputEvent& inputEvent) const { unsigned int EtTopo = jFexRoI->tobEt()*2; // Convert Et to 100 MeV unit unsigned int phiTopo = jFexRoI->globalPhi()*2; // Convert to 0.05 granularity int etaTopo = jFexRoI->globalEta()*4; // Convert to 0.025 granularity + unsigned int isolation = jFexRoI->iso(); // isolation value in units of 200 MeV // Avoid the events with 0 Et (events below threshold) if (EtTopo==0) continue; - TCS::jTauTOB jtau( EtTopo, 0, etaTopo, phiTopo ); + TCS::jTauTOB jtau( EtTopo, isolation, etaTopo, phiTopo ); jtau.setEtDouble( static_cast<double>(EtTopo/10.) ); jtau.setEtaDouble( static_cast<double>(etaTopo/40.) ); jtau.setPhiDouble( static_cast<double>(phiTopo/20.) ); @@ -198,14 +218,15 @@ JetInputProviderFEX::fillTopoInputEvent(TCS::TopoInputEvent& inputEvent) const { inputEvent.addcTau( jtau ); m_hjTauPt->Fill(jtau.EtDouble()); + m_hjTauPt->Fill(jtau.isolation()); m_hjTauEtaPhi->Fill(jtau.eta(),jtau.phi()); + m_hjTauEtaIsolation->Fill(jtau.eta(),jtau.isolation()); } for(const auto it : * JContainer) { const xAOD::jFexLRJetRoI* jFexRoI = it; ATH_MSG_DEBUG( "EDM jFex jJet Number: " - << +jFexRoI->jFexNumber() // returns an 8 bit unsigned integer referring to the jFEX number - << " et: " + << +jFexRoI->jFexNumber() // returns an 8 bit unsigned integer referring to the jFEX number << " et: " << jFexRoI->et() // returns the et value of the jet in MeV unit << " tobEt: " << jFexRoI->tobEt() // returns the et value of the jet in units of 200 MeV diff --git a/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/JetInputProviderFEX.h b/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/JetInputProviderFEX.h index 3df6fdfd0c3a..9fbff8e59adf 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/JetInputProviderFEX.h +++ b/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/JetInputProviderFEX.h @@ -13,7 +13,7 @@ #include "xAODTrigger/jFexSRJetRoIContainer.h" //small R jets from jFEX #include "xAODTrigger/jFexLRJetRoIContainer.h" //large R jets from jFEX -#include "xAODTrigger/jFexTauRoIContainer.h" //large R jets from jFEX +#include "xAODTrigger/jFexTauRoIContainer.h" //taus from jFEX #include "TH1.h" #include "TH2.h" @@ -47,8 +47,10 @@ namespace LVL1 { mutable LockedHandle<TH2> m_hjLargeRJetEtaPhi ATLAS_THREAD_SAFE; mutable LockedHandle<TH1> m_hjTauPt ATLAS_THREAD_SAFE; + mutable LockedHandle<TH1> m_hjTauIsolation ATLAS_THREAD_SAFE; mutable LockedHandle<TH2> m_hjTauEtaPhi ATLAS_THREAD_SAFE; - + mutable LockedHandle<TH2> m_hjTauEtaIsolation ATLAS_THREAD_SAFE; + SG::ReadHandleKey<xAOD::jFexSRJetRoIContainer> m_jEDMKey {this, "L1_jFexSRJetRoI", "L1_jFexSRJetRoI", "jFEX EDM"}; SG::ReadHandleKey<xAOD::jFexLRJetRoIContainer> m_JEDMKey {this, "L1_jFexLRJetRoI", "L1_jFexLRJetRoI", "JFEX EDM"}; SG::ReadHandleKey<xAOD::jFexTauRoIContainer> m_jTauEDMKey {this, "L1_jFexTauRoI", "L1_jFexTauRoI", "JFEX EDM"}; -- GitLab