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::gFEXJwoJAlgo Class Reference

#include <gFEXJwoJAlgo.h>

Inheritance diagram for LVL1::gFEXJwoJAlgo:
Collaboration diagram for LVL1::gFEXJwoJAlgo:

Public Member Functions

 gFEXJwoJAlgo (const std::string &type, const std::string &name, const IInterface *parent)
 Constructors. More...
 
virtual StatusCode initialize () override
 standard Athena-Algorithm method More...
 
virtual void setAlgoConstant (int aFPGA_A, int bFPGA_A, int aFPGA_B, int bFPGA_B, int aFPGA_C, int bFPGA_C, int gXE_seedThrA, int gXE_seedThrB, int gXE_seedThrC) override
 
virtual std::vector< std::unique_ptr< gFEXJwoJTOB > > jwojAlgo (const gTowersType &Atwr, const gTowersType &Btwr, const gTowersType &Ctwr, std::array< uint32_t, 4 > &outTOB) const 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 gBlockAB (const gTowersType &twrs, gTowersType &gBlkSum, gTowersType &hasSeed, int seedThreshold) const
 
void metFPGA (int FPGAnum, const gTowersType &twrs, const gTowersType &gBlkSum, int gBlockthreshold, int aFPGA, int bFPGA, int &MHT_x, int &MHT_y, int &MST_x, int &MST_y, int &MET_x, int &MET_y) const
 
void etFPGA (int FPGAnum, const gTowersType &twrs, gTowersType &gBlkSum, int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const
 
void metTotal (int A_MET_x, int A_MET_y, int B_MET_x, int B_MET_y, int C_MET_x, int C_MET_y, int &MET_x, int &MET_y) const
 
void etTotal (int A_ET, int B_ET, int C_ET, int &ET) const
 
float sinLUT (unsigned int phiIDX, unsigned int aw) const
 
float cosLUT (unsigned int phiIDX, unsigned int aw) const
 
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

float m_aFPGA_A
 
float m_bFPGA_A
 
float m_aFPGA_B
 
float m_bFPGA_B
 
float m_aFPGA_C
 
float m_bFPGA_C
 
float m_gBlockthresholdA
 
float m_gBlockthresholdB
 
float m_gBlockthresholdC
 
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 25 of file gFEXJwoJAlgo.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

◆ gFEXJwoJAlgo()

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

Constructors.

Definition at line 22 of file gFEXJwoJAlgo.cxx.

22  :
24  {
25  declareInterface<IgFEXJwoJAlgo>(this);
26  }

Member Function Documentation

◆ cosLUT()

float LVL1::gFEXJwoJAlgo::cosLUT ( unsigned int  phiIDX,
unsigned int  aw 
) const
private

Definition at line 540 of file gFEXJwoJAlgo.cxx.

541 {
542  float c = static_cast<float>(phiIDX)/std::pow(2,aw);
543  float rad = (2*M_PI) *c;
544  float rcos = std::cos(rad);
545  int icos = std::round(rcos*(std::pow(2,aw) - 1));
546  return icos;
547 }

◆ 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; }

◆ etFPGA()

void LVL1::gFEXJwoJAlgo::etFPGA ( int  FPGAnum,
const gTowersType twrs,
gTowersType gBlkSum,
int  gBlockthreshold,
int  A,
int  B,
int &  eth,
int &  ets,
int &  etw 
) const
private

Definition at line 422 of file gFEXJwoJAlgo.cxx.

423  {
424 
425 
426 
427  int64_t ethard_hi = 0;
428  int64_t etsoft_hi = 0;
429  int64_t ethard_lo = 0;
430  int64_t etsoft_lo = 0;
431 
432  int64_t ethard = 0.0;
433  int64_t etsoft = 0.0;
434 
435  int multiplicitiveFactor = 0;
436 
437  if(FPGAnum < 2 ) {
438  multiplicitiveFactor = cosLUT(0, 5);
439  } else{
440  multiplicitiveFactor = cosLUT(1, 5);
441  }
442 
443 // firmware treats upper and lower columns differnetly
444 
445  for( int irow = 0; irow < FEXAlgoSpaceDefs::ABCrows; irow++ ){
446  for(int jcolumn = 0; jcolumn<6; jcolumn++){
447  if(gBlkSum[irow][jcolumn] > gBlockthreshold){
448  ethard_lo = ethard_lo + twrs[irow][jcolumn]*multiplicitiveFactor;
449  } else {
450  etsoft_lo = etsoft_lo + twrs[irow][jcolumn]*multiplicitiveFactor;
451  }
452  }
453  }
454 
455  for( int irow = 0; irow < FEXAlgoSpaceDefs::ABCrows; irow++ ){
456  for(int jcolumn = 6; jcolumn<12; jcolumn++){
457  if(gBlkSum[irow][jcolumn] > gBlockthreshold){
458  ethard_hi = ethard_hi + twrs[irow][jcolumn]*multiplicitiveFactor;
459  } else {
460  etsoft_hi = etsoft_hi + twrs[irow][jcolumn]*multiplicitiveFactor;
461  }
462  }
463  }
464 
465  ethard = ethard_hi + ethard_lo;
466 
467  etsoft = etsoft_hi + etsoft_lo;
468 
469 
470  int64_t etsum_hi = ethard_hi*A + etsoft_hi*B ;
471  if ( etsum_hi < 0 ) etsum_hi = 0;
472 
473  int64_t etsum_lo = ethard_lo*A + etsoft_lo*B ;
474  if ( etsum_lo < 0 ) etsum_lo = 0;
475 
476  int64_t etsum = etsum_hi + etsum_lo;
477 
478 
479  // convert 200 MeV LSB here
480  eth = ethard>>3;
481  ets = etsoft>>3;
482  etw = (etsum >>13 ) ;
483 
484  if(msgLvl(MSG::DEBUG)) {
485  std::cout << "DMS FPGA gTEJWOJ " << std::hex << FPGAnum << "et sum hard " << eth << "etsum soft" << ets << " A " << A << " B " << B << " weighted term " << etw << std::endl << std::dec;
486  }
487 }

◆ etTotal()

void LVL1::gFEXJwoJAlgo::etTotal ( int  A_ET,
int  B_ET,
int  C_ET,
int &  ET 
) const
private

Definition at line 511 of file gFEXJwoJAlgo.cxx.

514  {
515 
516  // leave at 200 MeV scale
517  ET = (A_ET + B_ET + C_ET) ;
518 
519 
520  // main vlaue of ET is always positive
521  if( ET > 0x0000FFF) ET = 0x0000FFF;
522 
523 }

◆ 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

◆ gBlockAB()

void LVL1::gFEXJwoJAlgo::gBlockAB ( const gTowersType twrs,
gTowersType gBlkSum,
gTowersType hasSeed,
int  seedThreshold 
) const
private

Definition at line 280 of file gFEXJwoJAlgo.cxx.

280  {
281 
282  int rows = twrs.size();
283  int cols = twrs[0].size();
284  for( int irow = 0; irow < rows; irow++ ){
285  for(int jcolumn = 0; jcolumn<cols; jcolumn++){
286  // zero jet sum here
287  gBlkSum[irow][jcolumn] = 0;
288  int krowUp = (irow + 1)%32;
289  int krowDn = (irow - 1 +32)%32;
290  if( (jcolumn == 0) || (jcolumn == 6) ) {
291  //left edge case
292  gBlkSum[irow][jcolumn] =
293  twrs[irow][jcolumn] + twrs[krowUp][jcolumn] + twrs[krowDn][jcolumn] +
294  twrs[irow][jcolumn+1] + twrs[krowUp][jcolumn+1] + twrs[krowDn][jcolumn+1];
295  } else if( (jcolumn == 5) || (jcolumn == 11)) {
296  // right edge case
297  gBlkSum[irow][jcolumn] =
298  twrs[irow][jcolumn] + twrs[krowUp][jcolumn] + twrs[krowDn][jcolumn] +
299  twrs[irow][jcolumn-1] + twrs[krowUp][jcolumn-1] + twrs[krowDn][jcolumn-1];
300  } else{
301  // normal case
302  gBlkSum[irow][jcolumn] =
303  twrs[irow][jcolumn] + twrs[krowUp][jcolumn] + twrs[krowDn][jcolumn] +
304  twrs[irow][jcolumn-1] + twrs[krowUp][jcolumn-1] + twrs[krowDn][jcolumn-1] +
305  twrs[irow][jcolumn+1] + twrs[krowUp][jcolumn+1] + twrs[krowDn][jcolumn+1];
306  }
307 
308  if( gBlkSum[irow][jcolumn] > seedThreshold) {
309  hasSeed[irow][jcolumn] = 1;
310  } else {
311  hasSeed[irow][jcolumn] = 0;
312  }
313 
314  if ( gBlkSum[irow][jcolumn] < 0 )
315  gBlkSum[irow][jcolumn] = 0;
316 
317  // was bits 11+3 downto 3, now is 11 downto 0
318  if ( gBlkSum[irow][jcolumn] > FEXAlgoSpaceDefs::gBlockMax ) {
319  gBlkSum[irow][jcolumn] = FEXAlgoSpaceDefs::gBlockMax;
320  }
321  }
322  }
323 }

◆ initialize()

StatusCode LVL1::gFEXJwoJAlgo::initialize ( )
overridevirtual

standard Athena-Algorithm method

Definition at line 29 of file gFEXJwoJAlgo.cxx.

29  {
30 
31  return StatusCode::SUCCESS;
32 
33 }

◆ 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::IgFEXJwoJAlgo::interfaceID ( )
inlinestaticinherited

Definition at line 39 of file IgFEXJwoJAlgo.h.

40  {
41  return IID_IgFEXJwoJAlgo;
42  }

◆ jwojAlgo()

std::vector< std::unique_ptr< gFEXJwoJTOB > > LVL1::gFEXJwoJAlgo::jwojAlgo ( const gTowersType Atwr,
const gTowersType Btwr,
const gTowersType Ctwr,
std::array< uint32_t, 4 > &  outTOB 
) const
overridevirtual

Implements LVL1::IgFEXJwoJAlgo.

Definition at line 54 of file gFEXJwoJAlgo.cxx.

55  {
56 
57 
58  // input towers have 200 MeV LSB
59 
60  // find gBlocks
61  gTowersType AgBlk;
62  gTowersType Ascaled;
63 
64  gTowersType BgBlk;
65  gTowersType Bscaled;
66 
67  gTowersType CgBlk;
68  gTowersType Cscaled;
69 
70  gTowersType hasSeed;
71 
72  gBlockAB(Atwr, AgBlk, hasSeed, m_gBlockthresholdA);
73  gBlockAB(Btwr, BgBlk, hasSeed, m_gBlockthresholdB);
74  gBlockAB(Ctwr, CgBlk, hasSeed, m_gBlockthresholdC);
75 
76 
77  // switch to 10 bit number
78  // DMS -- do we eventaully need to check for overflows here?
79 
80  for(int irow = 0; irow<FEXAlgoSpaceDefs::ABCrows; irow++){
81  for(int jcolumn = 0; jcolumn<FEXAlgoSpaceDefs::ABcolumns; jcolumn++){
82  Ascaled[irow][jcolumn] = Atwr[irow][jcolumn] >> 2;
83  AgBlk[irow][jcolumn] = AgBlk[irow][jcolumn] >> 2;
84 
85  Bscaled[irow][jcolumn] = Btwr[irow][jcolumn] >> 2;
86  BgBlk[irow][jcolumn] = BgBlk[irow][jcolumn] >> 2;
87 
88  Cscaled[irow][jcolumn] = Ctwr[irow][jcolumn] >> 2;
89  CgBlk[irow][jcolumn] = CgBlk[irow][jcolumn] >> 2;
90 
91  }
92  }
93 
94 
95  //FPGA A observables
96  int A_MHT_x = 0x0;
97  int A_MHT_y = 0x0;
98  int A_MST_x = 0x0;
99  int A_MST_y = 0x0;
100  int A_MET_x = 0x0;
101  int A_MET_y = 0x0;
102 
103  int A_eth = 0x0;
104  int A_ets = 0x0;
105  int A_etw = 0x0;
106 
107  //FPGA B observables
108  int B_MHT_x = 0x0;
109  int B_MHT_y = 0x0;
110  int B_MST_x = 0x0;
111  int B_MST_y = 0x0;
112  int B_MET_x = 0x0;
113  int B_MET_y = 0x0;
114 
115  int B_eth = 0x0;
116  int B_ets = 0x0;
117  int B_etw = 0x0;
118 
119 
120  //FPGA C observables
121  int C_MHT_x = 0x0;
122  int C_MHT_y = 0x0;
123  int C_MST_x = 0x0;
124  int C_MST_y = 0x0;
125  int C_MET_x = 0x0;
126  int C_MET_y = 0x0;
127 
128  int C_eth = 0x0;
129  int C_ets = 0x0;
130  int C_etw = 0x0;
131 
132 
133  //Global observables
134  int MHT_x = 0x0;
135  int MHT_y = 0x0;
136  int MST_x = 0x0;
137  int MST_y = 0x0;
138  int MET_x = 0x0;
139  int MET_y = 0x0;
140 
141  int ETH = 0x0;
142  int ETS = 0x0;
143  int ETW = 0x0;
144 
145  int total_sumEt = 0x0;
146  int MET = 0x0;
147 
148 
149  // will need to hard code etFPGA ,a's and b's
150  int etBprime =0;
151 
152 
153  metFPGA(0, Ascaled, AgBlk, m_gBlockthresholdA, m_aFPGA_A, m_bFPGA_A, A_MHT_x, A_MHT_y, A_MST_x, A_MST_y, A_MET_x, A_MET_y);
154  etFPGA (0, Ascaled, AgBlk, m_gBlockthresholdA, m_aFPGA_A, etBprime, A_eth, A_ets, A_etw);
155 
156  metFPGA(1, Bscaled, BgBlk, m_gBlockthresholdB, m_aFPGA_B, m_bFPGA_B, B_MHT_x, B_MHT_y, B_MST_x, B_MST_y, B_MET_x, B_MET_y);
157  etFPGA (1, Bscaled, BgBlk, m_gBlockthresholdB, m_aFPGA_B, etBprime, B_eth, B_ets, B_etw);
158 
159  metFPGA(2, Cscaled, CgBlk, m_gBlockthresholdC, m_aFPGA_C, m_bFPGA_C, C_MHT_x, C_MHT_y, C_MST_x, C_MST_y, C_MET_x, C_MET_y);
160  etFPGA (2, Cscaled, CgBlk, m_gBlockthresholdC, m_aFPGA_C, etBprime, C_eth, C_ets, C_etw);
161 
162  metTotal(A_MHT_x, A_MHT_y, B_MHT_x, B_MHT_y, C_MHT_x, C_MHT_y, MHT_x, MHT_y);
163  metTotal(A_MST_x, A_MST_y, B_MST_x, B_MST_y, C_MST_x, C_MST_y, MST_x, MST_y);
164  metTotal(A_MET_x, A_MET_y, B_MET_x, B_MET_y, C_MET_x, C_MET_y, MET_x, MET_y);
165 
166  etTotal(A_eth, B_eth, C_eth, ETH);
167  etTotal(A_ets, B_ets, C_ets, ETS);
168  etTotal(A_etw, B_etw, C_etw, ETW);
169 
170  total_sumEt = ETW;
171 
172  // components should all be less than 12 bits at this point with 200 MeV LSB
173  int MET2 = MET_x * MET_x + MET_y * MET_y;
174 
175  if (MET2 > 0x0FFFFFF) {
176  MET = 0x000FFF;
177  } else {
178  // repeat the byte stream converter calculation here -- not what the hardware actually does
179  MET = std::sqrt(MET2);
180 
181 
182  // best guess at current hardware. Note that this is computed in the bytestream converter
183  // take most signficant 12 bits
184  //int MET12 = MET2 >> 12;
185  // simulate the look up -- only 6 most signficant bits currently set -- to be checked
186  //MET = ( (int)(std::sqrt(MET12)) << 6) & 0x00000FC0 ;
187  }
188 
189 
190  //Define a vector to be filled with all the TOBs of one event
191  std::vector<std::unique_ptr<gFEXJwoJTOB>> tobs_v;
192  tobs_v.resize(4);
193 
194 
195  // fill in TOBs
196  // The order of the TOBs is given according to the TOB ID (TODO: check how it's done in fw)
197 
198  // First TOB is (MET, SumEt)
199  outTOB[0] = (total_sumEt & 0x00000FFF) << 0; //set the Quantity2 to the corresponding slot (LSB)
200  outTOB[0] = outTOB[0] | (MET & 0x00000FFF) << 12;//Quantity 1 (in bit number 12)
201  if (total_sumEt != 0) outTOB[0] = outTOB[0] | 0x00000001 << 24;//Status bit for Quantity 2 (0 if quantity is null)
202  if (MET != 0) outTOB[0] = outTOB[0] | 0x00000001 << 25;//Status bit for Quantity 1 (0 if quantity is null)
203  outTOB[0] = outTOB[0] | (1 & 0x0000001F) << 26;//TOB ID is 1 for scalar values (5 bits starting at 26)
204 
205  // std::cout << "DMS MET " << std::hex << MET << " total_sumEt " << total_sumEt << std::endl << std::dec;
206 
207 // Second TOB is (MET_x, MET_y)
208  outTOB[1] = (MET_y & 0x00000FFF) << 0; //set the Quantity2 to the corresponding slot (LSB)
209  outTOB[1] = outTOB[1] | (MET_x & 0x00000FFF) << 12;//Quantity 1 (in bit number 12)
210  if (MET_y != 0) outTOB[1] = outTOB[1] | 0x00000001 << 24;//Status bit for Quantity 2 (0 if quantity is null)
211  if (MET_x != 0) outTOB[1] = outTOB[1] | 0x00000001 << 25;//Status bit for Quantity 1 (0 if quantity is null)
212  outTOB[1] = outTOB[1] | (2 & 0x0000001F) << 26;//TOB ID is 2 for MET_x, MET_y (5 bits starting at 26)
213 
214 // Third TOB is hard components (MHT_x, MHT_y)
215  outTOB[2] = (MHT_y & 0x00000FFF) << 0; //set the Quantity2 to the corresponding slot (LSB)
216  outTOB[2] = outTOB[2] | (MHT_x & 0x00000FFF) << 12;//Quantity 1 (in bit number 12)
217  if (MHT_y != 0) outTOB[2] = outTOB[2] | 0x00000001 << 24;//Status bit for Quantity 2 (0 if quantity is null)
218  if (MHT_x != 0) outTOB[2] = outTOB[2] | 0x00000001 << 25;//Status bit for Quantity 1 (0 if quantity is null)
219  outTOB[2] = outTOB[2] | (3 & 0x0000001F) << 26;//TOB ID is 3 for hard components (5 bits starting at 26)
220 
221  // Fourth TOB is hard components (MST_x, MST_y)
222  outTOB[3] = (MST_y & 0x00000FFF) << 0; //set the Quantity2 to the corresponding slot (LSB)
223  outTOB[3] = outTOB[3] | (MST_x & 0x00000FFF) << 12;//Quantity 1 (in bit number 12)
224  if (MST_y != 0) outTOB[3] = outTOB[3] | 0x00000001 << 24;//Status bit for Quantity 2 (0 if quantity is null)
225  if (MST_x != 0) outTOB[3] = outTOB[3] | 0x00000001 << 25;//Status bit for Quantity 1 (0 if quantity is null)
226  outTOB[3] = outTOB[3] | (4 & 0x0000001F) << 26;//TOB ID is 4 for soft components (5 bits starting at 26)
227 
228 
229  tobs_v[0] = std::make_unique<gFEXJwoJTOB>();
230  tobs_v[0]->setWord(outTOB[0]);
231  tobs_v[0]->setQuantity1(MET);
232  tobs_v[0]->setQuantity2(total_sumEt);
233  tobs_v[0]->setSaturation(0); //Always 0 for now, need a threshold?
234  tobs_v[0]->setTobID(1);
235  if( MET != 0 ) tobs_v[0]->setStatus1(1);
236  else tobs_v[0]->setStatus1(0);
237  if(total_sumEt!= 0) tobs_v[0]->setStatus2(1);
238  else tobs_v[0]->setStatus2(0);
239 
240  tobs_v[1] = std::make_unique<gFEXJwoJTOB>();
241  tobs_v[1]->setWord(outTOB[1]);
242  tobs_v[1]->setQuantity1(MET_x);
243  tobs_v[1]->setQuantity2(MET_y);
244  tobs_v[1]->setSaturation(0); //Always 0 for now, need a threshold?
245  tobs_v[1]->setTobID(2);
246  if( MET_x != 0 ) tobs_v[1]->setStatus1(1);
247  else tobs_v[1]->setStatus1(0);
248  if(MET_y!= 0) tobs_v[1]->setStatus2(1);
249  else tobs_v[1]->setStatus2(0);
250 
251  tobs_v[2] = std::make_unique<gFEXJwoJTOB>();
252  tobs_v[2]->setWord(outTOB[2]);
253  tobs_v[2]->setQuantity1(MHT_x);
254  tobs_v[2]->setQuantity2(MHT_y);
255  tobs_v[2]->setSaturation(0); //Always 0 for now, need a threshold?
256  tobs_v[2]->setTobID(3);
257  if( MHT_x != 0 ) tobs_v[2]->setStatus1(1);
258  else tobs_v[2]->setStatus1(0);
259  if(MHT_y!= 0) tobs_v[2]->setStatus2(1);
260  else tobs_v[2]->setStatus2(0);
261 
262  tobs_v[3] = std::make_unique<gFEXJwoJTOB>();
263  tobs_v[3]->setWord(outTOB[3]);
264  tobs_v[3]->setQuantity1(MST_x);
265  tobs_v[3]->setQuantity2(MST_y);
266  tobs_v[3]->setSaturation(0); //Always 0 for now, need a threshold?
267  tobs_v[3]->setTobID(4);
268  if( MST_x != 0 ) tobs_v[3]->setStatus1(1);
269  else tobs_v[2]->setStatus1(0);
270  if(MST_y!= 0) tobs_v[3]->setStatus2(1);
271  else tobs_v[3]->setStatus2(0);
272 
273 
274  return tobs_v;
275 
276 }

◆ metFPGA()

void LVL1::gFEXJwoJAlgo::metFPGA ( int  FPGAnum,
const gTowersType twrs,
const gTowersType gBlkSum,
int  gBlockthreshold,
int  aFPGA,
int  bFPGA,
int &  MHT_x,
int &  MHT_y,
int &  MST_x,
int &  MST_y,
int &  MET_x,
int &  MET_y 
) const
private

Definition at line 326 of file gFEXJwoJAlgo.cxx.

331  {
332 
333  // in the RTL code these are 19+ 5 = 24 bits
334  int64_t h_tx_hi = 0;
335  int64_t h_ty_hi = 0;
336  int64_t h_tx_lw = 0;
337  int64_t h_ty_lw = 0;
338 
339  int64_t e_tx_hi = 0;
340  int64_t e_ty_hi = 0;
341  int64_t e_tx_lw = 0;
342  int64_t e_ty_lw = 0;
343 
344  for( int irow = 0; irow < FEXAlgoSpaceDefs::ABCrows; irow++ ){
345  for(int jcolumn = 6; jcolumn<12; jcolumn++){
346  if( FPGAnum == 2){
347  int frow = 2*(irow/2) + 1;
348 
349  if(gBlkSum[irow][jcolumn] > gBlockthreshold){
350  h_tx_hi += (twrs[irow][jcolumn])*(cosLUT(frow, 5));
351  h_ty_hi += (twrs[irow][jcolumn])*(sinLUT(frow, 5));
352  } else {
353  e_tx_hi += (twrs[irow][jcolumn])*(cosLUT(frow, 5));
354  e_ty_hi += (twrs[irow][jcolumn])*(sinLUT(frow, 5));
355  }
356 
357  } else {
358 
359  if(gBlkSum[irow][jcolumn] > gBlockthreshold){
360  h_tx_hi += (twrs[irow][jcolumn])*(cosLUT(irow, 5));
361  h_ty_hi += (twrs[irow][jcolumn])*(sinLUT(irow, 5));
362  } else {
363  e_tx_hi += (twrs[irow][jcolumn])*(cosLUT(irow, 5));
364  e_ty_hi += (twrs[irow][jcolumn])*(sinLUT(irow, 5));
365  }
366  }
367  }
368 
369  for(int jcolumn = 0; jcolumn<6; jcolumn++){
370  if( FPGAnum == 2){
371  int frow = 2*(irow/2) + 1;
372 
373  if(gBlkSum[irow][jcolumn] > gBlockthreshold){
374  h_tx_lw += (twrs[irow][jcolumn])*(cosLUT(frow, 5));
375  h_ty_lw += (twrs[irow][jcolumn])*(sinLUT(frow, 5));
376  } else{
377  e_tx_lw += (twrs[irow][jcolumn])*(cosLUT(frow, 5));
378  e_ty_lw += (twrs[irow][jcolumn])*(sinLUT(frow, 5));
379  }
380  } else {
381 
382  if(gBlkSum[irow][jcolumn] > gBlockthreshold){
383  h_tx_lw += (twrs[irow][jcolumn])*(cosLUT(irow, 5));
384  h_ty_lw += (twrs[irow][jcolumn])*(sinLUT(irow, 5));
385  } else {
386  e_tx_lw += (twrs[irow][jcolumn])*(cosLUT(irow, 5));
387  e_ty_lw += (twrs[irow][jcolumn])*(sinLUT(irow, 5));
388  }
389  }
390  }
391  }
392 
393  // According to https://gitlab.cern.ch/atlas-l1calo/gfex/firmware/-/issues/406#note_5662344
394  // there is no division -- so LSB is indeed 25 MeV
395 
396  //but later changed to 200 MeV so divide by 8
397 
398  long int fMHT_x = (h_tx_hi + h_tx_lw) ;
399  long int fMHT_y = (h_ty_hi + h_ty_lw) ;
400  long int fMST_x = (e_tx_hi + e_tx_lw) ;
401  long int fMST_y = (e_ty_hi + e_ty_lw) ;
402 
403  MHT_x = (h_tx_hi + h_tx_lw) >> 3;
404  MHT_y = (h_ty_hi + h_ty_lw) >> 3;
405  MST_x = (e_tx_hi + e_tx_lw) >> 3;
406  MST_y = (e_ty_hi + e_ty_lw) >> 3;
407 
408  // a and b coffecients are 10 bits
409  // multiplication has an addtional 2^10
410  // constant JWJ_OW : integer := 35;--Out width
411  // values are 35 bits long and top 16 bits are taken -- so divide by 2^19
412  // 2^10/2^19 = 1/2^9 = 1/512
413 
414  long int fMET_x = ( aFPGA * (fMHT_x) + bFPGA * (fMST_x) ) >> 13 ;
415  long int fMET_y = ( aFPGA * (fMHT_y) + bFPGA * (fMST_y) ) >> 13 ;
416 
417  MET_x = fMET_x;
418  MET_y = fMET_y;
419 
420 }

◆ metTotal()

void LVL1::gFEXJwoJAlgo::metTotal ( int  A_MET_x,
int  A_MET_y,
int  B_MET_x,
int  B_MET_y,
int  C_MET_x,
int  C_MET_y,
int &  MET_x,
int &  MET_y 
) const
private

Definition at line 490 of file gFEXJwoJAlgo.cxx.

493  {
494 
495 
496  MET_x = A_MET_x + B_MET_x + C_MET_x;
497  MET_y = A_MET_y + B_MET_y+ C_MET_y;
498 
499  // Truncation of the result, as the individual quantities are 16 bits, while the TOB field is 12 bits
500  // MET_x = MET_x >> 4;
501  // MET_y = MET_y >> 4;
502 
503  if (MET_x < -0x008000) MET_x = -0x08000;
504  if (MET_y < -0x008000) MET_y = -0x00800;
505 
506  if (MET_x > 0x0007FF) MET_x = 0x0007FF;
507  if (MET_y > 0x0007FF) MET_y = 0x0007FF;
508 
509 }

◆ 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  }

◆ setAlgoConstant()

void LVL1::gFEXJwoJAlgo::setAlgoConstant ( int  aFPGA_A,
int  bFPGA_A,
int  aFPGA_B,
int  bFPGA_B,
int  aFPGA_C,
int  bFPGA_C,
int  gXE_seedThrA,
int  gXE_seedThrB,
int  gXE_seedThrC 
)
overridevirtual

Implements LVL1::IgFEXJwoJAlgo.

Definition at line 36 of file gFEXJwoJAlgo.cxx.

39  {
40  m_aFPGA_A = aFPGA_A;
41  m_bFPGA_A = bFPGA_A;
42  m_aFPGA_B = aFPGA_B;
43  m_bFPGA_B = bFPGA_B;
44  m_aFPGA_C = aFPGA_C;
45  m_bFPGA_C = bFPGA_C;
46  m_gBlockthresholdA = gXE_seedThrA;
47  m_gBlockthresholdB = gXE_seedThrB;
48  m_gBlockthresholdC = gXE_seedThrC;
49 
50 }

◆ sinLUT()

float LVL1::gFEXJwoJAlgo::sinLUT ( unsigned int  phiIDX,
unsigned int  aw 
) const
private

Definition at line 527 of file gFEXJwoJAlgo.cxx.

528 {
529  float c = static_cast<float>(phiIDX)/std::pow(2,aw);
530  float rad = (2*M_PI) *c;
531  float rsin = std::sin(rad);
532  int isin = std::round(rsin*(std::pow(2,aw) - 1));
533  return isin;
534 
535 }

◆ 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_aFPGA_A

float LVL1::gFEXJwoJAlgo::m_aFPGA_A
private

Definition at line 47 of file gFEXJwoJAlgo.h.

◆ m_aFPGA_B

float LVL1::gFEXJwoJAlgo::m_aFPGA_B
private

Definition at line 49 of file gFEXJwoJAlgo.h.

◆ m_aFPGA_C

float LVL1::gFEXJwoJAlgo::m_aFPGA_C
private

Definition at line 51 of file gFEXJwoJAlgo.h.

◆ m_bFPGA_A

float LVL1::gFEXJwoJAlgo::m_bFPGA_A
private

Definition at line 48 of file gFEXJwoJAlgo.h.

◆ m_bFPGA_B

float LVL1::gFEXJwoJAlgo::m_bFPGA_B
private

Definition at line 50 of file gFEXJwoJAlgo.h.

◆ m_bFPGA_C

float LVL1::gFEXJwoJAlgo::m_bFPGA_C
private

Definition at line 52 of file gFEXJwoJAlgo.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_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_gBlockthresholdA

float LVL1::gFEXJwoJAlgo::m_gBlockthresholdA
private

Definition at line 53 of file gFEXJwoJAlgo.h.

◆ m_gBlockthresholdB

float LVL1::gFEXJwoJAlgo::m_gBlockthresholdB
private

Definition at line 54 of file gFEXJwoJAlgo.h.

◆ m_gBlockthresholdC

float LVL1::gFEXJwoJAlgo::m_gBlockthresholdC
private

Definition at line 55 of file gFEXJwoJAlgo.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::gFEXJwoJAlgo::m_bFPGA_C
float m_bFPGA_C
Definition: gFEXJwoJAlgo.h:52
LVL1::gFEXJwoJAlgo::metTotal
void metTotal(int A_MET_x, int A_MET_y, int B_MET_x, int B_MET_y, int C_MET_x, int C_MET_y, int &MET_x, int &MET_y) const
Definition: gFEXJwoJAlgo.cxx:490
LVL1::gFEXJwoJAlgo::m_aFPGA_A
float m_aFPGA_A
Definition: gFEXJwoJAlgo.h:47
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
LVL1::gFEXJwoJAlgo::m_bFPGA_A
float m_bFPGA_A
Definition: gFEXJwoJAlgo.h:48
LVL1::gFEXJwoJAlgo::m_aFPGA_B
float m_aFPGA_B
Definition: gFEXJwoJAlgo.h:49
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
MuonGM::round
float round(const float toRound, const unsigned int decimals)
Definition: Mdt.cxx:27
M_PI
#define M_PI
Definition: ActiveFraction.h:11
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
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
LVL1::gFEXJwoJAlgo::m_gBlockthresholdB
float m_gBlockthresholdB
Definition: gFEXJwoJAlgo.h:54
LVL1::gFEXJwoJAlgo::metFPGA
void metFPGA(int FPGAnum, const gTowersType &twrs, const gTowersType &gBlkSum, int gBlockthreshold, int aFPGA, int bFPGA, int &MHT_x, int &MHT_y, int &MST_x, int &MST_y, int &MET_x, int &MET_y) const
Definition: gFEXJwoJAlgo.cxx:326
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
LVL1::gFEXJwoJAlgo::gBlockAB
void gBlockAB(const gTowersType &twrs, gTowersType &gBlkSum, gTowersType &hasSeed, int seedThreshold) const
Definition: gFEXJwoJAlgo.cxx:280
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
dqt_zlumi_alleff_HIST.A
A
Definition: dqt_zlumi_alleff_HIST.py:110
LVL1::gFEXJwoJAlgo::cosLUT
float cosLUT(unsigned int phiIDX, unsigned int aw) const
Definition: gFEXJwoJAlgo.cxx:540
beamspotnt.cols
list cols
Definition: bin/beamspotnt.py:1114
LVL1::gFEXJwoJAlgo::m_gBlockthresholdA
float m_gBlockthresholdA
Definition: gFEXJwoJAlgo.h:53
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LVL1::gFEXJwoJAlgo::etFPGA
void etFPGA(int FPGAnum, const gTowersType &twrs, gTowersType &gBlkSum, int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const
Definition: gFEXJwoJAlgo.cxx:422
LVL1::gFEXJwoJAlgo::m_aFPGA_C
float m_aFPGA_C
Definition: gFEXJwoJAlgo.h:51
TCS::MET
@ MET
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:16
test_pyathena.parent
parent
Definition: test_pyathena.py:15
beamspotnt.rows
list rows
Definition: bin/beamspotnt.py:1112
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
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::gFEXJwoJAlgo::etTotal
void etTotal(int A_ET, int B_ET, int C_ET, int &ET) const
Definition: gFEXJwoJAlgo.cxx:511
LVL1::FEXAlgoSpaceDefs::ABcolumns
constexpr static int ABcolumns
Definition: FEXAlgoSpaceDefs.h:156
LVL1::FEXAlgoSpaceDefs::gBlockMax
constexpr static int gBlockMax
Definition: FEXAlgoSpaceDefs.h:159
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
LVL1::FEXAlgoSpaceDefs::ABCrows
constexpr static int ABCrows
Definition: FEXAlgoSpaceDefs.h:155
dqt_zlumi_alleff_HIST.B
B
Definition: dqt_zlumi_alleff_HIST.py:110
a
TList * a
Definition: liststreamerinfos.cxx:10
h
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DEBUG
#define DEBUG
Definition: page_access.h:11
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
LVL1::gFEXJwoJAlgo::sinLUT
float sinLUT(unsigned int phiIDX, unsigned int aw) const
Definition: gFEXJwoJAlgo.cxx:527
LVL1::gTowersType
std::array< std::array< int, 12 >, 32 > gTowersType
Definition: IgFEXFPGA.h:25
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
LVL1::gFEXJwoJAlgo::m_gBlockthresholdC
float m_gBlockthresholdC
Definition: gFEXJwoJAlgo.h:55
python.compressB64.c
def c
Definition: compressB64.py:93
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
python.SystemOfUnits.rad
int rad
Definition: SystemOfUnits.py:111
LVL1::gFEXJwoJAlgo::m_bFPGA_B
float m_bFPGA_B
Definition: gFEXJwoJAlgo.h:50
fitman.k
k
Definition: fitman.py:528