ATLAS Offline Software
Loading...
Searching...
No Matches
jFEXDBCondData.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 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 return m_NoiseCuts.find(0x00f0)->second;
80 }
81 else if (gEta < 32){ // This is LATOME EMB/EMEC and HEC towers (1.5 < |eta| < 3.1)
82 return m_NoiseCuts.find(0x0f00)->second;
83 }
84 else{ // This is FCAL towers (|eta| > 3.1)
85 return m_NoiseCuts.find(0xf000)->second;
86 }
87 }
88 else{
89 auto itr = m_NoiseCuts.find(onlineID);
90 if(itr == m_NoiseCuts.end()) {
92 }
93
94 return itr->second;
95 }
96}
97
98std::array<uint16_t,4> jFEXDBCondData::get_PileUpValues(uint16_t onlineID) const {
99
100 if(m_sendDefaults){
101 return m_PileUpWeight.find(0x0000)->second;
102 }
103 else{
104 auto itr = m_PileUpWeight.find(onlineID);
105
106 if(itr == m_PileUpWeight.end()) {
108 }
109
110 return itr->second;
111 }
112}
113
114void jFEXDBCondData::set_jJCalibParam(const std::vector<std::vector<int>>& params){
115 m_jJCalibParams = params;
116}
117
118void jFEXDBCondData::set_doPileUpJet(bool PileUpCorrectionJet){
119 m_PileUpCorrectionJet = PileUpCorrectionJet;
120}
121
122void jFEXDBCondData::set_doPileUpMet(bool PileUpCorrectionMET){
123 m_PileUpCorrectionMET = PileUpCorrectionMET;
124}
125
126void jFEXDBCondData::set_PUThrLowEm(int PileUpThresholdLowEm){
127 m_PileUpThresholdLowEm = PileUpThresholdLowEm;
128}
129
130void jFEXDBCondData::set_PUThrHighEm(int PileUpThresholdHighEm){
131 m_PileUpThresholdHighEm = PileUpThresholdHighEm;
132}
133
134void jFEXDBCondData::set_PUThrLowHadLar(int PileUpThresholdLowHadLar){
135 m_PileUpThresholdLowHadLar = PileUpThresholdLowHadLar;
136}
137
138void jFEXDBCondData::set_PUThrHighHadLar(int PileUpThresholdHighHadLar){
139 m_PileUpThresholdHighHadLar = PileUpThresholdHighHadLar;
140}
141
142void jFEXDBCondData::set_PUThrLowHadHecOverlap(int PileUpThresholdLowHadHecOverlap){
143 m_PileUpThresholdLowHadHecOverlap = PileUpThresholdLowHadHecOverlap;
144}
145
146void jFEXDBCondData::set_PUThrHighHadHecOverlap(int PileUpThresholdHighHadHecOverlap){
147 m_PileUpThresholdHighHadHecOverlap = PileUpThresholdHighHadHecOverlap;
148}
149
150void jFEXDBCondData::set_PUThrLowHadTrex(int PileUpThresholdLowHadTrex){
151 m_PileUpThresholdLowHadTrex = PileUpThresholdLowHadTrex;
152}
153
154void jFEXDBCondData::set_PUThrHighHadTrex(int PileUpThresholdHighHadTrex){
155 m_PileUpThresholdHighHadTrex = PileUpThresholdHighHadTrex;
156}
157
158void jFEXDBCondData::set_PUThrLowFcal(int PileUpThresholdLowFcal){
159 m_PileUpThresholdLowFcal = PileUpThresholdLowFcal;
160}
161
162void jFEXDBCondData::set_PUThrHighFcal(int PileUpThresholdHighFcal){
163 m_PileUpThresholdHighFcal = PileUpThresholdHighFcal;
164}
165
166void jFEXDBCondData::set_NoiseCuts(const std::unordered_map< uint16_t, std::array<uint16_t,4> >& NoiseCuts){
167
168 for(auto const& [key, array] : NoiseCuts){
169 m_NoiseCuts[key]=array;
170 }
171}
172void jFEXDBCondData::set_PileUpValues(const std::unordered_map< uint16_t, std::array<uint16_t,4> >& PileUpWeight){
173
174 for(auto const& [key, array] : PileUpWeight){
175 m_PileUpWeight[key]=array;
176 }
177}
178
179void jFEXDBCondData::set_sendDefaults(bool sendDefaults){
180 m_sendDefaults = sendDefaults;
181}
182
183 // It returns the GlobalEta and GlobalPhi
184std::array<int,2> jFEXDBCondData::DecodeOnlineID(uint16_t onlineID) const{
185
186 int global_eta = (onlineID >> 8) - 0x80;
187 int global_phi = onlineID & 0xff;
188 return {global_eta, global_phi};
189}
190
191}// 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...