ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
LVL1::jFEXPileupAndNoise Class Reference

#include <jFEXPileupAndNoise.h>

Inheritance diagram for LVL1::jFEXPileupAndNoise:
Collaboration diagram for LVL1::jFEXPileupAndNoise:

Public Member Functions

 jFEXPileupAndNoise (const std::string &type, const std::string &name, const IInterface *parent)
 Constructors. More...
 
virtual StatusCode initialize () override
 standard Athena-Algorithm method More...
 
virtual StatusCode safetyTest () override
 
virtual StatusCode reset () override
 
virtual void setup (int FPGA[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width]) override
 
virtual void setup (int FPGA[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]) override
 
virtual std::unordered_map< int, std::vector< int > > GetEt_values () override
 
virtual std::unordered_map< int, std::vector< int > > Get_EM_Et_values () override
 
virtual std::unordered_map< int, std::vector< int > > Get_HAD_Et_values () override
 
virtual ~jFEXPileupAndNoise ()
 Destructor. More...
 
virtual std::vector< int > CalculatePileup () override
 
virtual StatusCode ApplyPileup () override
 
virtual void ApplyNoise2Jets (bool b) override
 
virtual void ApplyNoise2Met (bool b) override
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void reset_conters ()
 
void SubtractPileup ()
 
void ApplyNoiseCuts (std::unordered_map< int, std::vector< int > > &map_Etvalues, int layer)
 
int rhoDivLUT (int ntowers)
 
int getTTowerEta (const LVL1::jTower *tmpTower)
 
int getTTowerET (const LVL1::jTower *tmpTower)
 
int getET_EM (const LVL1::jTower *tmpTower)
 
int getET_HAD (const LVL1::jTower *tmpTower)
 
int getTTArea_EM (const LVL1::jTower *tmpTower)
 
int getTTArea_HAD (const LVL1::jTower *tmpTower)
 
int getTTAreaINV_EM (const LVL1::jTower *tmpTower)
 
int getTTAreaINV_HAD (const LVL1::jTower *tmpTower)
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

SG::ReadHandleKey< LVL1::jTowerContainerm_jTowerContainerKey {this, "MyjTowers", "jTowerContainer", "Input container for jTowers"}
 
SG::ReadHandle< jTowerContainerm_jTowerContainer
 
SG::ReadCondHandleKey< jFEXDBCondDatam_BDToolKey {this, "BDToolKey", "jFEXDBParams", "DB tool key"}
 
int m_FPGA_central [FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width] ={{0}}
 
int m_FPGA_forward [FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width] ={{0}}
 
int m_etaMAX =0
 
std::unordered_map< int, int > m_FPGA_ET_EM
 
std::unordered_map< int, int > m_FPGA_ET_HAD
 
int m_rho_EM = 0
 
int m_rho_HAD1 = 0
 
int m_rho_HAD2 = 0
 
int m_rho_HAD3 = 0
 
int m_rho_FCAL = 0
 
int m_count_rho_EM = 0
 
int m_count_rho_HAD1 = 0
 
int m_count_rho_HAD2 = 0
 
int m_count_rho_HAD3 = 0
 
int m_count_rho_FCAL = 0
 
bool m_is_FWD = false
 
bool m_apply_pileup2jets = false
 
bool m_apply_pileup2met = false
 
bool m_apply_noise2jets = false
 
bool m_apply_noise2met = false
 
std::unordered_map< int, std::vector< int > > m_map_Etvalues_EM
 
std::unordered_map< int, std::vector< int > > m_map_Etvalues_HAD
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 31 of file jFEXPileupAndNoise.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ jFEXPileupAndNoise()

LVL1::jFEXPileupAndNoise::jFEXPileupAndNoise ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Constructors.

Definition at line 27 of file jFEXPileupAndNoise.cxx.

27  : AthAlgTool(type, name, parent) {
28  declareInterface<IjFEXPileupAndNoise>(this);
29 }

◆ ~jFEXPileupAndNoise()

LVL1::jFEXPileupAndNoise::~jFEXPileupAndNoise ( )
virtual

Destructor.

Definition at line 32 of file jFEXPileupAndNoise.cxx.

32  {
33 }

Member Function Documentation

◆ ApplyNoise2Jets()

void LVL1::jFEXPileupAndNoise::ApplyNoise2Jets ( bool  b)
overridevirtual

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 289 of file jFEXPileupAndNoise.cxx.

289  {
291 }

◆ ApplyNoise2Met()

void LVL1::jFEXPileupAndNoise::ApplyNoise2Met ( bool  b)
overridevirtual

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 293 of file jFEXPileupAndNoise.cxx.

293  {
295 }

◆ ApplyNoiseCuts()

void LVL1::jFEXPileupAndNoise::ApplyNoiseCuts ( std::unordered_map< int, std::vector< int > > &  map_Etvalues,
int  layer 
)
private

Definition at line 403 of file jFEXPileupAndNoise.cxx.

403  {
404 
405  const LVL1::jTower *tmpTower;
406 
407  for(auto [key,vec] : map_Etvalues){
408 
409  tmpTower = m_jTowerContainer->findTower(key);
410  int Jet_NoiseCut = tmpTower->getNoiseForJet(layer);
411  int Met_NoiseCut = tmpTower->getNoiseForMet(layer);
412 
413  if(m_apply_noise2jets && map_Etvalues[key][0]<=Jet_NoiseCut){ // Et for jets
414  map_Etvalues[key][0]=0.;
415  }
416  if(m_apply_noise2met && map_Etvalues[key][1]<=Met_NoiseCut){ // Et for Met
417  map_Etvalues[key][1]=0.;
418  }
419 
420  }
421 
422 }

◆ ApplyPileup()

StatusCode LVL1::jFEXPileupAndNoise::ApplyPileup ( )
overridevirtual

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 276 of file jFEXPileupAndNoise.cxx.

276  {
278  if(! myDBTool.isValid()) {
279  ATH_MSG_ERROR("Could not retrieve DB tool " << m_BDToolKey);
280  return StatusCode::FAILURE;
281  }
282 
283  m_apply_pileup2jets = myDBTool->get_doPileUpJet();
284  m_apply_pileup2met = myDBTool->get_doPileUpMet();
285 
286  return StatusCode::SUCCESS;
287 }

◆ CalculatePileup()

std::vector< int > LVL1::jFEXPileupAndNoise::CalculatePileup ( )
overridevirtual

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 106 of file jFEXPileupAndNoise.cxx.

106  {
107 
108  reset_conters();
109 
111  if(! myDBTool.isValid()) {
112  ATH_MSG_ERROR("Could not retrieve DB tool " << m_BDToolKey);
113  }
114 
115  for(int iphi=0;iphi<FEXAlgoSpaceDefs::jFEX_algoSpace_height;iphi++){
116  for(int ieta=0;ieta<m_etaMAX;ieta++){
117 
118  int TTID = 0;
119 
120  if(m_is_FWD){
121  TTID = m_FPGA_forward[iphi][ieta];
122  }
123  else{
124  TTID = m_FPGA_central[iphi][ieta];
125  }
126 
127  if(TTID == 0){
128  continue; //skipping TTID iqual to 0
129  }
130 
131  const LVL1::jTower *tmpTower = m_jTowerContainer->findTower(TTID);
132 
133  int tmp_eta = getTTowerEta(tmpTower);
134  // energies used below are in MeV, but to reproduce firmware behavior we need to truncate at the same position,
135  // i.e., temporarily go back to the granularity used in firmware!
136  int em_granularity = 25;
137  int had_granularity = tmp_eta < 15 ? 500 : 25; //For Tile inputs granularity is 500MeV, for LAr 25MeV
138  //storing the energies
139  int tmp_energy_EM = getET_EM(tmpTower)/em_granularity;
140  int tmp_energy_HAD = getET_HAD(tmpTower)/had_granularity;
141  int tmp_EM_AreaINV = getTTAreaINV_EM(tmpTower);
142  int tmp_HD_AreaINV = getTTAreaINV_HAD(tmpTower);
143  m_FPGA_ET_EM[TTID] = getET_EM(tmpTower);
144  m_FPGA_ET_HAD[TTID] = getET_HAD(tmpTower);
145 
146  tmp_energy_EM = (tmp_energy_EM * tmp_EM_AreaINV)/(1<<FEXAlgoSpaceDefs::pu_AreaINV);
147  tmp_energy_HAD= (tmp_energy_HAD* tmp_HD_AreaINV)/(1<<FEXAlgoSpaceDefs::pu_AreaINV);
148 
149  //calculating rho's
150 
151  // EM layer ( not EM FCAL!! )
152 
153  if(tmp_eta < 32 ){
154  if(tmp_energy_EM > myDBTool->get_PUThrLowEm() and tmp_energy_EM < myDBTool->get_PUThrHighEm()) {
155  m_rho_EM += tmp_energy_EM;
156  m_count_rho_EM++;
157  }
158  }
159 
160  // Tile layer
161  if(tmp_eta < 15){
162  if(tmp_energy_HAD > myDBTool->get_PUThrLowHadTrex() and tmp_energy_HAD < myDBTool->get_PUThrHighHadTrex()){
163  m_rho_HAD1 += tmp_energy_HAD;
165  }
166  }
167  // HEC Overlap layer!
168  else if(tmp_eta < 16 ){
169  if(tmp_energy_HAD > myDBTool->get_PUThrLowHadHecOverlap() and tmp_energy_HAD < myDBTool->get_PUThrHighHadHecOverlap()){
170  m_rho_HAD2 += tmp_energy_HAD;
172  }
173  }
174  // Rest of HEC without overlap
175  else if(tmp_eta < 32 ){
176  if(tmp_energy_HAD > myDBTool->get_PUThrLowHadLar() and tmp_energy_HAD < myDBTool->get_PUThrHighHadLar()){
177  m_rho_HAD3 += tmp_energy_HAD;
179  }
180  }
181  // FCAL is treated here!
182  else if(tmp_eta >= 32){
183 
184  // Contributes the HAD layer (FCAL2 and FCAL3)
186  if(tmp_energy_HAD > myDBTool->get_PUThrLowFcal() and tmp_energy_HAD < myDBTool->get_PUThrHighFcal()){
187  m_rho_FCAL += tmp_energy_HAD;
189  }
190  }
191  // FCAL1 is EM layer so the energy is suposed to be in the EM layer
192  else{
193  if(tmp_energy_EM > myDBTool->get_PUThrLowFcal() and tmp_energy_EM < myDBTool->get_PUThrHighFcal()){
194  m_rho_FCAL += tmp_energy_EM;
196  }
197  }
198  }
199  }
200  }//end of iphi loop
201 
202  //calculating rho values for each region
208 
209  //return values in MeV -> m_rho_HAD1 corresponds to TileCal, so 500MeV/count, rest is 25MeV/count
210  //note: do not convert the internal values yet, this needs to happen after the PU correction is applied
211  // to fully reproduce FW behavior!
212  std::vector<int> rho_values {m_rho_EM*25,m_rho_HAD1*500,m_rho_HAD2*25,m_rho_HAD3*25,m_rho_FCAL*25};
213 
214  SubtractPileup();
215 
216  return rho_values;
217 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ Get_EM_Et_values()

std::unordered_map< int, std::vector< int > > LVL1::jFEXPileupAndNoise::Get_EM_Et_values ( )
overridevirtual

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 299 of file jFEXPileupAndNoise.cxx.

299  {
300 
301  // map for energies sent to the FPGA
302  m_map_Etvalues_EM.clear();
303 
304 
305  for(int iphi=0; iphi<FEXAlgoSpaceDefs::jFEX_algoSpace_height; iphi++) {
306  for(int ieta=0; ieta<m_etaMAX; ieta++) {
307 
308  int TTID = 0;
309 
310  if(m_is_FWD) {
311  TTID = m_FPGA_forward[iphi][ieta];
312  }
313  else {
314  TTID = m_FPGA_central[iphi][ieta];
315  }
316 
317  if(TTID == 0) continue; //skipping TTID iqual to 0
318  const LVL1::jTower *tmpTower = m_jTowerContainer->findTower(TTID);
319 
320  // tmp variable to fill the map
321  std::vector<int> v_energies;
322  v_energies.clear();
323  v_energies.resize(2,0);
324 
325  //saving the SG energy
326  int tmp_TotalEt_jet=getET_EM(tmpTower);
327  int tmp_TotalEt_met=getET_EM(tmpTower);
328 
329  // if true changing the raw energy to the pileup subtracted energy for jets
331  tmp_TotalEt_jet = m_FPGA_ET_EM[TTID];
332  }
333 
334  // if true changing the raw energy to the pileup subtracted energy for met
335  if(m_apply_pileup2met){
336  tmp_TotalEt_met = m_FPGA_ET_EM[TTID];
337  }
338 
339  v_energies[0]=tmp_TotalEt_jet;
340  v_energies[1]=tmp_TotalEt_met;
341 
342  m_map_Etvalues_EM.insert(std::make_pair(TTID, v_energies));
343  }
344  }
345 
347 
348  return m_map_Etvalues_EM;
349 }

◆ Get_HAD_Et_values()

std::unordered_map< int, std::vector< int > > LVL1::jFEXPileupAndNoise::Get_HAD_Et_values ( )
overridevirtual

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 351 of file jFEXPileupAndNoise.cxx.

351  {
352 
353  // map for energies sent to the FPGA
354  m_map_Etvalues_HAD.clear();
355 
356 
357  for(int iphi=0; iphi<FEXAlgoSpaceDefs::jFEX_algoSpace_height; iphi++) {
358  for(int ieta=0; ieta<m_etaMAX; ieta++) {
359 
360  int TTID = 0;
361 
362  if(m_is_FWD) {
363  TTID = m_FPGA_forward[iphi][ieta];
364  }
365  else {
366  TTID = m_FPGA_central[iphi][ieta];
367  }
368 
369  if(TTID == 0) continue; //skipping TTID iqual to 0
370  const LVL1::jTower *tmpTower = m_jTowerContainer->findTower(TTID);
371 
372  // tmp variable to fill the map
373  std::vector<int> v_energies;
374  v_energies.clear();
375  v_energies.resize(2,0);
376 
377  //saving the SG energy
378  int tmp_TotalEt_jet=getET_HAD(tmpTower);
379  int tmp_TotalEt_met=getET_HAD(tmpTower);
380 
381  // if true changing the raw energy to the pileup subtracted energy for jets
383  tmp_TotalEt_jet = m_FPGA_ET_HAD[TTID];
384  }
385 
386  // if true changing the raw energy to the pileup subtracted energy for met
387  if(m_apply_pileup2met){
388  tmp_TotalEt_met = m_FPGA_ET_HAD[TTID];
389  }
390 
391  v_energies[0]=tmp_TotalEt_jet;
392  v_energies[1]=tmp_TotalEt_met;
393 
394  m_map_Etvalues_HAD.insert(std::make_pair(TTID, v_energies));
395  }
396  }
397 
399 
400  return m_map_Etvalues_HAD;
401 }

◆ getET_EM()

int LVL1::jFEXPileupAndNoise::getET_EM ( const LVL1::jTower tmpTower)
private

Definition at line 460 of file jFEXPileupAndNoise.cxx.

460  {
461  return tmpTower->getET_EM();
462 }

◆ getET_HAD()

int LVL1::jFEXPileupAndNoise::getET_HAD ( const LVL1::jTower tmpTower)
private

Definition at line 464 of file jFEXPileupAndNoise.cxx.

464  {
465  return tmpTower->getET_HAD();
466 }

◆ GetEt_values()

std::unordered_map< int, std::vector< int > > LVL1::jFEXPileupAndNoise::GetEt_values ( )
overridevirtual

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 424 of file jFEXPileupAndNoise.cxx.

424  {
425 
426  // map for energies sent to the FPGA
427  std::unordered_map<int,std::vector<int> > map_Etvalues;
428  map_Etvalues.clear();
429 
430 
431  /*
432  * The vector Et_energy has size 2
433  * Et_energy[0] is used un the Jet algos
434  * Et_energy[1] is used un the Met/SumEt algos
435  */
436  std::vector<int> Et_energy;
437 
438  for(auto [key,vec] : m_map_Etvalues_EM){
439 
440  Et_energy.clear();
441  Et_energy.resize(2,0);
442 
443  Et_energy[0]=m_map_Etvalues_EM[key][0]+m_map_Etvalues_HAD[key][0];
444  Et_energy[1]=m_map_Etvalues_EM[key][1]+m_map_Etvalues_HAD[key][1];
445  map_Etvalues[key] = Et_energy;
446  }
447  return map_Etvalues;
448 }

◆ getTTArea_EM()

int LVL1::jFEXPileupAndNoise::getTTArea_EM ( const LVL1::jTower tmpTower)
private

Definition at line 469 of file jFEXPileupAndNoise.cxx.

469  {
470  return tmpTower->getTTowerArea(0);
471 }

◆ getTTArea_HAD()

int LVL1::jFEXPileupAndNoise::getTTArea_HAD ( const LVL1::jTower tmpTower)
private

Definition at line 474 of file jFEXPileupAndNoise.cxx.

474  {
475  return tmpTower->getTTowerArea(1);
476 }

◆ getTTAreaINV_EM()

int LVL1::jFEXPileupAndNoise::getTTAreaINV_EM ( const LVL1::jTower tmpTower)
private

Definition at line 479 of file jFEXPileupAndNoise.cxx.

479  {
480  return tmpTower->getTTowerAreaInv(0);
481 }

◆ getTTAreaINV_HAD()

int LVL1::jFEXPileupAndNoise::getTTAreaINV_HAD ( const LVL1::jTower tmpTower)
private

Definition at line 484 of file jFEXPileupAndNoise.cxx.

484  {
485  return tmpTower->getTTowerAreaInv(1);
486 }

◆ getTTowerET()

int LVL1::jFEXPileupAndNoise::getTTowerET ( const LVL1::jTower tmpTower)
private

Definition at line 456 of file jFEXPileupAndNoise.cxx.

456  {
457  return tmpTower->getTotalET();
458 }

◆ getTTowerEta()

int LVL1::jFEXPileupAndNoise::getTTowerEta ( const LVL1::jTower tmpTower)
private

Definition at line 452 of file jFEXPileupAndNoise.cxx.

452  {
453  return tmpTower->iEta() < 0 ? std::abs(tmpTower->iEta()+1) : tmpTower->iEta() ;
454 }

◆ initialize()

StatusCode LVL1::jFEXPileupAndNoise::initialize ( )
overridevirtual

standard Athena-Algorithm method

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 35 of file jFEXPileupAndNoise.cxx.

35  {
36 
38  ATH_CHECK( m_BDToolKey.initialize() );
39 
40 
41  return StatusCode::SUCCESS;
42 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & LVL1::IjFEXPileupAndNoise::interfaceID ( )
inlinestaticinherited

Definition at line 45 of file IjFEXPileupAndNoise.h.

46 {
47  return IID_IjFEXPileupAndNoise;
48 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ reset()

StatusCode LVL1::jFEXPileupAndNoise::reset ( )
overridevirtual

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 56 of file jFEXPileupAndNoise.cxx.

56  {
57 
58  m_is_FWD=0;
63 
64  reset_conters();
65 
66  return StatusCode::SUCCESS;
67 }

◆ reset_conters()

void LVL1::jFEXPileupAndNoise::reset_conters ( )
private

Definition at line 69 of file jFEXPileupAndNoise.cxx.

69  {
70 
71  m_rho_EM = 0;
72  m_rho_HAD1 = 0;
73  m_rho_HAD2 = 0;
74  m_rho_HAD3 = 0;
75  m_rho_FCAL = 0;
76 
77  m_count_rho_EM = 0;
78  m_count_rho_HAD1 = 0;
79  m_count_rho_HAD2 = 0;
80  m_count_rho_HAD3 = 0;
81  m_count_rho_FCAL = 0;
82 
83 }

◆ rhoDivLUT()

int LVL1::jFEXPileupAndNoise::rhoDivLUT ( int  ntowers)
private

Definition at line 219 of file jFEXPileupAndNoise.cxx.

219  {
220 
221  //This is to save one bit in the firmware (19 bit will set be set to 1 instead of the 20th bit and rest are 0)
222  if(ntowers == 1) return ((1<<FEXAlgoSpaceDefs::pu_rhoLUT) - 1);
223  return static_cast<int>((1.0/ntowers)*(1<<FEXAlgoSpaceDefs::pu_rhoLUT) );
224 }

◆ safetyTest()

StatusCode LVL1::jFEXPileupAndNoise::safetyTest ( )
overridevirtual

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 45 of file jFEXPileupAndNoise.cxx.

45  {
46 
48  if(! m_jTowerContainer.isValid()) {
49  ATH_MSG_ERROR("Could not retrieve jTowerContainer " << m_jTowerContainerKey.key());
50  return StatusCode::FAILURE;
51  }
52 
53  return StatusCode::SUCCESS;
54 }

◆ setup() [1/2]

void LVL1::jFEXPileupAndNoise::setup ( int  FPGA[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width])
overridevirtual

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 87 of file jFEXPileupAndNoise.cxx.

87  {
88 
89  ATH_MSG_DEBUG("---------------- jFEXPileupAndNoise::setup ----------------");
90  m_is_FWD = 0; //central region
93 }

◆ setup() [2/2]

void LVL1::jFEXPileupAndNoise::setup ( int  FPGA[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width])
overridevirtual

Implements LVL1::IjFEXPileupAndNoise.

Definition at line 97 of file jFEXPileupAndNoise.cxx.

97  {
98 
99  ATH_MSG_DEBUG("---------------- jFEXPileupAndNoise::setup ----------------");
100  m_is_FWD = 1; //forward region
103 }

◆ SubtractPileup()

void LVL1::jFEXPileupAndNoise::SubtractPileup ( )
private

Definition at line 226 of file jFEXPileupAndNoise.cxx.

226  {
227 
228  for(int iphi=0; iphi<FEXAlgoSpaceDefs::jFEX_algoSpace_height; iphi++) {
229  for(int ieta=0; ieta<m_etaMAX; ieta++) {
230 
231  int TTID = 0;
232 
233  if(m_is_FWD) {
234  TTID = m_FPGA_forward[iphi][ieta];
235  }
236  else {
237  TTID = m_FPGA_central[iphi][ieta];
238  }
239 
240  if(TTID == 0) continue; //skipping TTID iqual to 0
241 
242  const LVL1::jTower *tmpTower = m_jTowerContainer->findTower(TTID);
243  int tmp_eta = getTTowerEta(tmpTower);
244  int tmp_EM_Area = getTTArea_EM(tmpTower);
245  int tmp_HD_Area = getTTArea_HAD(tmpTower);
246 
247  if(tmp_eta < 32) {
248  m_FPGA_ET_EM[TTID] =m_FPGA_ET_EM[TTID] - ((m_rho_EM * tmp_EM_Area)/(1<<FEXAlgoSpaceDefs::pu_Area)) * 25; //factor 25: jFEX internal counts -> MeV (LAr)
249  }
250 
251  if(tmp_eta < 15) {
252  m_FPGA_ET_HAD[TTID]=m_FPGA_ET_HAD[TTID] - ((m_rho_HAD1 * tmp_HD_Area)/(1<<FEXAlgoSpaceDefs::pu_Area)) * 500; //factor 500: jFEX internal counts -> MeV (Tile)
253  }
254  else if(tmp_eta < 16 ) {
255  m_FPGA_ET_HAD[TTID]=m_FPGA_ET_HAD[TTID] - ((m_rho_HAD2 * tmp_HD_Area)/(1<<FEXAlgoSpaceDefs::pu_Area)) * 25; //factor 25: jFEX internal counts -> MeV (LAr)
256  }
257  else if(tmp_eta < 32 ) {
258  m_FPGA_ET_HAD[TTID]=m_FPGA_ET_HAD[TTID] - ((m_rho_HAD3 * tmp_HD_Area)/(1<<FEXAlgoSpaceDefs::pu_Area)) * 25; //factor 25: jFEX internal counts -> MeV (LAr)
259  }
260  else if(tmp_eta >= 32) {
261  // Contributes the HAD layer (FCAL2 and FCAL3)
263  m_FPGA_ET_HAD[TTID] = m_FPGA_ET_HAD[TTID] - ((m_rho_FCAL * (tmp_HD_Area))/(1<<FEXAlgoSpaceDefs::pu_Area)) * 25; //factor 25: jFEX internal counts -> MeV (LAr)
264  }
265  // FCAL1 is EM layer so the energy is suposed to be in the EM layer
266  else{
267  m_FPGA_ET_EM[TTID] = m_FPGA_ET_EM[TTID] - ((m_rho_FCAL * (tmp_EM_Area))/(1<<FEXAlgoSpaceDefs::pu_Area)) * 25; //factor 25: jFEX internal counts -> MeV (LAr)
268  }
269  }
270  }
271  }
272 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_apply_noise2jets

bool LVL1::jFEXPileupAndNoise::m_apply_noise2jets = false
private

Definition at line 93 of file jFEXPileupAndNoise.h.

◆ m_apply_noise2met

bool LVL1::jFEXPileupAndNoise::m_apply_noise2met = false
private

Definition at line 94 of file jFEXPileupAndNoise.h.

◆ m_apply_pileup2jets

bool LVL1::jFEXPileupAndNoise::m_apply_pileup2jets = false
private

Definition at line 91 of file jFEXPileupAndNoise.h.

◆ m_apply_pileup2met

bool LVL1::jFEXPileupAndNoise::m_apply_pileup2met = false
private

Definition at line 92 of file jFEXPileupAndNoise.h.

◆ m_BDToolKey

SG::ReadCondHandleKey<jFEXDBCondData> LVL1::jFEXPileupAndNoise::m_BDToolKey {this, "BDToolKey", "jFEXDBParams", "DB tool key"}
private

Definition at line 65 of file jFEXPileupAndNoise.h.

◆ m_count_rho_EM

int LVL1::jFEXPileupAndNoise::m_count_rho_EM = 0
private

Definition at line 83 of file jFEXPileupAndNoise.h.

◆ m_count_rho_FCAL

int LVL1::jFEXPileupAndNoise::m_count_rho_FCAL = 0
private

Definition at line 87 of file jFEXPileupAndNoise.h.

◆ m_count_rho_HAD1

int LVL1::jFEXPileupAndNoise::m_count_rho_HAD1 = 0
private

Definition at line 84 of file jFEXPileupAndNoise.h.

◆ m_count_rho_HAD2

int LVL1::jFEXPileupAndNoise::m_count_rho_HAD2 = 0
private

Definition at line 85 of file jFEXPileupAndNoise.h.

◆ m_count_rho_HAD3

int LVL1::jFEXPileupAndNoise::m_count_rho_HAD3 = 0
private

Definition at line 86 of file jFEXPileupAndNoise.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_etaMAX

int LVL1::jFEXPileupAndNoise::m_etaMAX =0
private

Definition at line 70 of file jFEXPileupAndNoise.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_FPGA_central

int LVL1::jFEXPileupAndNoise::m_FPGA_central[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width] ={{0}}
private

Definition at line 67 of file jFEXPileupAndNoise.h.

◆ m_FPGA_ET_EM

std::unordered_map<int,int > LVL1::jFEXPileupAndNoise::m_FPGA_ET_EM
private

Definition at line 72 of file jFEXPileupAndNoise.h.

◆ m_FPGA_ET_HAD

std::unordered_map<int,int > LVL1::jFEXPileupAndNoise::m_FPGA_ET_HAD
private

Definition at line 73 of file jFEXPileupAndNoise.h.

◆ m_FPGA_forward

int LVL1::jFEXPileupAndNoise::m_FPGA_forward[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width] ={{0}}
private

Definition at line 68 of file jFEXPileupAndNoise.h.

◆ m_is_FWD

bool LVL1::jFEXPileupAndNoise::m_is_FWD = false
private

Definition at line 90 of file jFEXPileupAndNoise.h.

◆ m_jTowerContainer

SG::ReadHandle<jTowerContainer> LVL1::jFEXPileupAndNoise::m_jTowerContainer
private

Definition at line 63 of file jFEXPileupAndNoise.h.

◆ m_jTowerContainerKey

SG::ReadHandleKey<LVL1::jTowerContainer> LVL1::jFEXPileupAndNoise::m_jTowerContainerKey {this, "MyjTowers", "jTowerContainer", "Input container for jTowers"}
private

Definition at line 62 of file jFEXPileupAndNoise.h.

◆ m_map_Etvalues_EM

std::unordered_map<int,std::vector<int> > LVL1::jFEXPileupAndNoise::m_map_Etvalues_EM
private

Definition at line 111 of file jFEXPileupAndNoise.h.

◆ m_map_Etvalues_HAD

std::unordered_map<int,std::vector<int> > LVL1::jFEXPileupAndNoise::m_map_Etvalues_HAD
private

Definition at line 112 of file jFEXPileupAndNoise.h.

◆ m_rho_EM

int LVL1::jFEXPileupAndNoise::m_rho_EM = 0
private

Definition at line 76 of file jFEXPileupAndNoise.h.

◆ m_rho_FCAL

int LVL1::jFEXPileupAndNoise::m_rho_FCAL = 0
private

Definition at line 80 of file jFEXPileupAndNoise.h.

◆ m_rho_HAD1

int LVL1::jFEXPileupAndNoise::m_rho_HAD1 = 0
private

Definition at line 77 of file jFEXPileupAndNoise.h.

◆ m_rho_HAD2

int LVL1::jFEXPileupAndNoise::m_rho_HAD2 = 0
private

Definition at line 78 of file jFEXPileupAndNoise.h.

◆ m_rho_HAD3

int LVL1::jFEXPileupAndNoise::m_rho_HAD3 = 0
private

Definition at line 79 of file jFEXPileupAndNoise.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
LVL1::jFEXPileupAndNoise::ApplyNoiseCuts
void ApplyNoiseCuts(std::unordered_map< int, std::vector< int > > &map_Etvalues, int layer)
Definition: jFEXPileupAndNoise.cxx:403
LVL1::jFEXPileupAndNoise::getTTowerEta
int getTTowerEta(const LVL1::jTower *tmpTower)
Definition: jFEXPileupAndNoise.cxx:452
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
LVL1::jFEXPileupAndNoise::m_apply_pileup2jets
bool m_apply_pileup2jets
Definition: jFEXPileupAndNoise.h:91
LVL1::jFEXPileupAndNoise::m_rho_FCAL
int m_rho_FCAL
Definition: jFEXPileupAndNoise.h:80
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
LVL1::jTower::iEta
int iEta() const
Get coordinates of tower.
Definition: jTower.cxx:169
LVL1::FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width
constexpr static int jFEX_thin_algoSpace_width
Definition: FEXAlgoSpaceDefs.h:26
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
LVL1::jFEXPileupAndNoise::getTTAreaINV_HAD
int getTTAreaINV_HAD(const LVL1::jTower *tmpTower)
Definition: jFEXPileupAndNoise.cxx:484
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LVL1::jFEXPileupAndNoise::m_count_rho_HAD1
int m_count_rho_HAD1
Definition: jFEXPileupAndNoise.h:84
LVL1::jFEXPileupAndNoise::m_apply_noise2jets
bool m_apply_noise2jets
Definition: jFEXPileupAndNoise.h:93
LVL1::jFEXPileupAndNoise::getET_EM
int getET_EM(const LVL1::jTower *tmpTower)
Definition: jFEXPileupAndNoise.cxx:460
LVL1::jFEXPileupAndNoise::m_FPGA_ET_EM
std::unordered_map< int, int > m_FPGA_ET_EM
Definition: jFEXPileupAndNoise.h:72
LVL1::jFEXPileupAndNoise::reset_conters
void reset_conters()
Definition: jFEXPileupAndNoise.cxx:69
SG::ReadCondHandle::isValid
bool isValid()
Definition: ReadCondHandle.h:205
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
LVL1::FEXAlgoSpaceDefs::pu_Area
constexpr static unsigned int pu_Area
Definition: FEXAlgoSpaceDefs.h:38
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_height
constexpr static int jFEX_algoSpace_height
Definition: FEXAlgoSpaceDefs.h:27
LVL1::jFEXPileupAndNoise::m_BDToolKey
SG::ReadCondHandleKey< jFEXDBCondData > m_BDToolKey
Definition: jFEXPileupAndNoise.h:65
LVL1::FEXAlgoSpaceDefs::pu_rhoLUT
constexpr static unsigned int pu_rhoLUT
Definition: FEXAlgoSpaceDefs.h:39
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
LVL1::jFEXPileupAndNoise::m_FPGA_central
int m_FPGA_central[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width]
Definition: jFEXPileupAndNoise.h:67
LVL1::jTower::getTTowerAreaInv
int getTTowerAreaInv(int layer) const
Definition: jTower.cxx:332
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
LVL1::jFEXPileupAndNoise::m_rho_HAD1
int m_rho_HAD1
Definition: jFEXPileupAndNoise.h:77
LVL1::jFEXPileupAndNoise::m_count_rho_EM
int m_count_rho_EM
Definition: jFEXPileupAndNoise.h:83
LVL1::jFEXPileupAndNoise::m_map_Etvalues_EM
std::unordered_map< int, std::vector< int > > m_map_Etvalues_EM
Definition: jFEXPileupAndNoise.h:111
LVL1::jFEXPileupAndNoise::getTTArea_HAD
int getTTArea_HAD(const LVL1::jTower *tmpTower)
Definition: jFEXPileupAndNoise.cxx:474
LVL1::jFEXPileupAndNoise::m_rho_HAD3
int m_rho_HAD3
Definition: jFEXPileupAndNoise.h:79
LVL1::jTower::getNoiseForJet
int getNoiseForJet(int layer) const
Definition: jTower.cxx:350
LVL1::jFEXPileupAndNoise::getTTAreaINV_EM
int getTTAreaINV_EM(const LVL1::jTower *tmpTower)
Definition: jFEXPileupAndNoise.cxx:479
LVL1::jFEXPileupAndNoise::m_map_Etvalues_HAD
std::unordered_map< int, std::vector< int > > m_map_Etvalues_HAD
Definition: jFEXPileupAndNoise.h:112
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LVL1::jFEXPileupAndNoise::m_apply_noise2met
bool m_apply_noise2met
Definition: jFEXPileupAndNoise.h:94
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
LVL1::jFEXPileupAndNoise::SubtractPileup
void SubtractPileup()
Definition: jFEXPileupAndNoise.cxx:226
LVL1::jFEXPileupAndNoise::m_jTowerContainerKey
SG::ReadHandleKey< LVL1::jTowerContainer > m_jTowerContainerKey
Definition: jFEXPileupAndNoise.h:62
LVL1::FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width
constexpr static int jFEX_wide_algoSpace_width
Definition: FEXAlgoSpaceDefs.h:25
LVL1::jFEXPileupAndNoise::m_is_FWD
bool m_is_FWD
Definition: jFEXPileupAndNoise.h:90
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1::jTower::getTotalET
int getTotalET() const
Get ET sum of all cells in the jTower in MeV.
Definition: jTower.cxx:201
LVL1::jFEXPileupAndNoise::rhoDivLUT
int rhoDivLUT(int ntowers)
Definition: jFEXPileupAndNoise.cxx:219
LVL1::jFEXPileupAndNoise::m_apply_pileup2met
bool m_apply_pileup2met
Definition: jFEXPileupAndNoise.h:92
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
LVL1::FEXAlgoSpaceDefs::pu_AreaINV
constexpr static unsigned int pu_AreaINV
Definition: FEXAlgoSpaceDefs.h:37
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
LVL1::jFEXPileupAndNoise::m_rho_EM
int m_rho_EM
Definition: jFEXPileupAndNoise.h:76
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
LVL1::jFEXPileupAndNoise::m_count_rho_HAD3
int m_count_rho_HAD3
Definition: jFEXPileupAndNoise.h:86
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
LVL1::jTower::getET_EM
int getET_EM() const
Get EM ET value in MeV.
Definition: jTower.h:135
LVL1::jFEXPileupAndNoise::m_jTowerContainer
SG::ReadHandle< jTowerContainer > m_jTowerContainer
Definition: jFEXPileupAndNoise.h:63
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
LVL1::jTower::getET_HAD
int getET_HAD() const
Get HAD ET value in MeV.
Definition: jTower.h:138
LVL1::jFEXPileupAndNoise::m_count_rho_FCAL
int m_count_rho_FCAL
Definition: jFEXPileupAndNoise.h:87
LVL1::jTower::getTTowerArea
int getTTowerArea(int layer) const
Definition: jTower.cxx:324
a
TList * a
Definition: liststreamerinfos.cxx:10
h
LVL1::jFEXPileupAndNoise::m_etaMAX
int m_etaMAX
Definition: jFEXPileupAndNoise.h:70
LVL1::jFEXPileupAndNoise::getET_HAD
int getET_HAD(const LVL1::jTower *tmpTower)
Definition: jFEXPileupAndNoise.cxx:464
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::jFEXPileupAndNoise::getTTArea_EM
int getTTArea_EM(const LVL1::jTower *tmpTower)
Definition: jFEXPileupAndNoise.cxx:469
LVL1::FEXAlgoSpaceDefs::jFEX_FCAL2_start
constexpr static int jFEX_FCAL2_start
Definition: FEXAlgoSpaceDefs.h:33
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
LVL1::jTower
The jTower class is an interface object for jFEX trigger algorithms The purposes are twofold:
Definition: jTower.h:40
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
LVL1::jFEXPileupAndNoise::m_FPGA_forward
int m_FPGA_forward[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]
Definition: jFEXPileupAndNoise.h:68
LVL1::jFEXPileupAndNoise::m_FPGA_ET_HAD
std::unordered_map< int, int > m_FPGA_ET_HAD
Definition: jFEXPileupAndNoise.h:73
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
LVL1::gFEX::FPGA
FPGA
Definition: GTowerHelpers.h:17
calibdata.copy
bool copy
Definition: calibdata.py:27
LVL1::jTower::getNoiseForMet
int getNoiseForMet(int layer) const
Definition: jTower.cxx:341
xAOD::iEta
setScale setgFexType iEta
Definition: gFexJetRoI_v1.cxx:74
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
LVL1::jFEXPileupAndNoise::m_rho_HAD2
int m_rho_HAD2
Definition: jFEXPileupAndNoise.h:78
fitman.k
k
Definition: fitman.py:528
LVL1::jFEXPileupAndNoise::m_count_rho_HAD2
int m_count_rho_HAD2
Definition: jFEXPileupAndNoise.h:85
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37