ATLAS Offline Software
Loading...
Searching...
No Matches
jFEXDBCondData.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4//***************************************************************************
5// Interface for jFEXBDTool - Tool to read the COOL DB for jFEX
6// -------------------
7// begin : 01 08 2023
8// email : Sergi.Rodriguez@cern.ch
9//***************************************************************************
11
12namespace LVL1 {
13
14
15int jFEXDBCondData::get_jJCalibParam(int module, int range) const {
16 return m_jJCalibParams[module][range];
17}
18
19const std::vector<int>& jFEXDBCondData::get_jJCalibParams(int module) const {
20 return m_jJCalibParams[module];
21}
22
26
30
34
38
42
46
50
54
58
62
66
70
71std::array<uint16_t,4> jFEXDBCondData::get_NoiseCuts(uint16_t onlineID) const {
72
74 //Sending default values!
75 auto [gEta, gPhi] = DecodeOnlineID(onlineID);
76 gEta = gEta < 0 ? std::abs(gEta+1) : gEta;
77 if(gEta < 15){ // This is LATOME and Tile towers ( |eta| < 1.5 )
78 //{CutJetEM, CutJetHad, CutMetEM, CutMetHad}
79 auto p = m_NoiseCuts.find(0x00f0);
80 if (p != m_NoiseCuts.end()) return p->second;
82 }
83 else if (gEta < 32){ // This is LATOME EMB/EMEC and HEC towers (1.5 < |eta| < 3.1)
84 auto p = m_NoiseCuts.find(0x0f00);
85 if (p != m_NoiseCuts.end()) return p->second;
87 }
88 else{ // This is FCAL towers (|eta| > 3.1)
89 auto p = m_NoiseCuts.find(0xf000);
90 if (p != m_NoiseCuts.end()) return p->second;
92 }
93 } else {
94 auto itr = m_NoiseCuts.find(onlineID);
95 if(itr == m_NoiseCuts.end()) {
97 }
98
99 return itr->second;
100 }
101}
102
103std::array<uint16_t,4> jFEXDBCondData::get_PileUpValues(uint16_t onlineID) const {
104
105 if(m_sendDefaults){
106 auto p = m_PileUpWeight.find(0x0000);
107 if (p!= m_PileUpWeight.end()) return p->second;
109 }
110 else{
111 auto itr = m_PileUpWeight.find(onlineID);
112
113 if(itr == m_PileUpWeight.end()) {
115 }
116
117 return itr->second;
118 }
119}
120
121void jFEXDBCondData::set_jJCalibParam(const std::vector<std::vector<int>>& params){
122 m_jJCalibParams = params;
123}
124
125void jFEXDBCondData::set_doPileUpJet(bool PileUpCorrectionJet){
126 m_PileUpCorrectionJet = PileUpCorrectionJet;
127}
128
129void jFEXDBCondData::set_doPileUpMet(bool PileUpCorrectionMET){
130 m_PileUpCorrectionMET = PileUpCorrectionMET;
131}
132
133void jFEXDBCondData::set_PUThrLowEm(int PileUpThresholdLowEm){
134 m_PileUpThresholdLowEm = PileUpThresholdLowEm;
135}
136
137void jFEXDBCondData::set_PUThrHighEm(int PileUpThresholdHighEm){
138 m_PileUpThresholdHighEm = PileUpThresholdHighEm;
139}
140
141void jFEXDBCondData::set_PUThrLowHadLar(int PileUpThresholdLowHadLar){
142 m_PileUpThresholdLowHadLar = PileUpThresholdLowHadLar;
143}
144
145void jFEXDBCondData::set_PUThrHighHadLar(int PileUpThresholdHighHadLar){
146 m_PileUpThresholdHighHadLar = PileUpThresholdHighHadLar;
147}
148
149void jFEXDBCondData::set_PUThrLowHadHecOverlap(int PileUpThresholdLowHadHecOverlap){
150 m_PileUpThresholdLowHadHecOverlap = PileUpThresholdLowHadHecOverlap;
151}
152
153void jFEXDBCondData::set_PUThrHighHadHecOverlap(int PileUpThresholdHighHadHecOverlap){
154 m_PileUpThresholdHighHadHecOverlap = PileUpThresholdHighHadHecOverlap;
155}
156
157void jFEXDBCondData::set_PUThrLowHadTrex(int PileUpThresholdLowHadTrex){
158 m_PileUpThresholdLowHadTrex = PileUpThresholdLowHadTrex;
159}
160
161void jFEXDBCondData::set_PUThrHighHadTrex(int PileUpThresholdHighHadTrex){
162 m_PileUpThresholdHighHadTrex = PileUpThresholdHighHadTrex;
163}
164
165void jFEXDBCondData::set_PUThrLowFcal(int PileUpThresholdLowFcal){
166 m_PileUpThresholdLowFcal = PileUpThresholdLowFcal;
167}
168
169void jFEXDBCondData::set_PUThrHighFcal(int PileUpThresholdHighFcal){
170 m_PileUpThresholdHighFcal = PileUpThresholdHighFcal;
171}
172
173void jFEXDBCondData::set_NoiseCuts(const std::unordered_map< uint16_t, std::array<uint16_t,4> >& NoiseCuts){
174
175 for(auto const& [key, array] : NoiseCuts){
176 m_NoiseCuts[key]=array;
177 }
178}
179void jFEXDBCondData::set_PileUpValues(const std::unordered_map< uint16_t, std::array<uint16_t,4> >& PileUpWeight){
180
181 for(auto const& [key, array] : PileUpWeight){
182 m_PileUpWeight[key]=array;
183 }
184}
185
186void jFEXDBCondData::set_sendDefaults(bool sendDefaults){
187 m_sendDefaults = sendDefaults;
188}
189
190 // It returns the GlobalEta and GlobalPhi
191std::array<int,2> jFEXDBCondData::DecodeOnlineID(uint16_t onlineID) const{
192
193 int global_eta = (onlineID >> 8) - 0x80;
194 int global_phi = onlineID & 0xff;
195 return {global_eta, global_phi};
196}
197
198}// end of namespace LVL1
int get_PUThrHighHadHecOverlap() const
void set_PUThrHighHadLar(int PileUpThresholdHighHadLar)
void set_jJCalibParam(const std::vector< std::vector< int > > &params)
Setters.
std::array< int, 2 > DecodeOnlineID(uint16_t onlineID) const
void set_PUThrLowHadLar(int PileUpThresholdLowHadLar)
void set_PUThrHighEm(int PileUpThresholdHighEm)
std::array< uint16_t, 4 > m_PileUpWeight_default
void set_NoiseCuts(const std::unordered_map< uint16_t, std::array< uint16_t, 4 > > &NoiseCuts)
std::unordered_map< uint16_t, std::array< uint16_t, 4 > > m_PileUpWeight
void set_PUThrLowHadHecOverlap(int PileUpThresholdLowHadHecOverlap)
void set_sendDefaults(bool sendDefaults)
int get_PUThrHighFcal() const
int get_PUThrHighHadTrex() const
std::array< uint16_t, 4 > m_NoiseCuts_default
const std::vector< int > & get_jJCalibParams(int module) const
void set_PUThrHighHadTrex(int PileUpThresholdHighHadTrex)
void set_PUThrLowFcal(int PileUpThresholdLowFcal)
void set_PUThrHighFcal(int PileUpThresholdHighFcal)
void set_PUThrLowHadTrex(int PileUpThresholdLowHadTrex)
bool get_doPileUpJet() const
std::vector< std::vector< int > > m_jJCalibParams
int get_jJCalibParam(int module, int range) const
Getters.
void set_doPileUpMet(bool PileUpCorrectionMET)
std::array< uint16_t, 4 > get_NoiseCuts(uint16_t onlineID) const
std::unordered_map< uint16_t, std::array< uint16_t, 4 > > m_NoiseCuts
int get_PUThrHighHadLar() const
void set_PUThrHighHadHecOverlap(int PileUpThresholdHighHadHecOverlap)
bool get_doPileUpMet() const
int get_PUThrLowHadHecOverlap() const
void set_doPileUpJet(bool PileUpCorrectionJet)
void set_PUThrLowEm(int PileUpThresholdLowEm)
int get_PUThrLowHadTrex() const
int get_PUThrLowHadLar() const
std::array< uint16_t, 4 > get_PileUpValues(uint16_t onlineID) const
void set_PileUpValues(const std::unordered_map< uint16_t, std::array< uint16_t, 4 > > &PileUpWeight)
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...