Skip to content
Snippets Groups Projects
Commit 25cb389e authored by Nicola Orlando's avatar Nicola Orlando :no_mouth:
Browse files

jtau isolation information

parent fb8de388
5 merge requests!69091Fix correlated smearing bug in JER in JetUncertainties in 22.0,!58791DataQualityConfigurations: Modify L1Calo config for web display,!51674Fixing hotSpotInHIST for Run3 HIST,!50012RecExConfig: Adjust log message levels from GetRunNumber and GetLBNumber,!48102Add jtau isolation in L1Topo EDM
......@@ -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 };
......
......@@ -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)
{}
......
......@@ -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() ;
}
......@@ -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
......
......@@ -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"};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment