ATLAS Offline Software
Loading...
Searching...
No Matches
LVL1::eFEXFormTOBs Class Reference

#include <eFEXFormTOBs.h>

Inheritance diagram for LVL1::eFEXFormTOBs:
Collaboration diagram for LVL1::eFEXFormTOBs:

Public Member Functions

 eFEXFormTOBs (const std::string &type, const std::string &name, const IInterface *parent)
 Constructors.
virtual StatusCode initialize ()
 standard Athena-Algorithm method
virtual ~eFEXFormTOBs ()
 Destructor.
virtual uint32_t formTauTOBWord (int, int, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) const
virtual std::vector< uint32_t > formTauxTOBWords (int, int, int, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) const
virtual uint32_t formEmTOBWord (int, int, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) const
virtual std::vector< uint32_t > formEmxTOBWords (int, int, int, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () 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
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.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

const unsigned int m_tobETshift = 2
 Internal data.
const unsigned int m_fpgaShift = 30
const unsigned int m_etaShift = 27
const unsigned int m_phiShift = 24
const unsigned int m_rhadShift = 22
const unsigned int m_wstotShift = 20
const unsigned int m_retaShift = 18
const unsigned int m_seedShift = 16
const unsigned int m_undShift = 15
const unsigned int m_seedMaxShift = 14
const unsigned int m_shelfShift = 24
const unsigned int m_efexShift = 20
const unsigned int m_taurhadShift = 20
const unsigned int m_taurcoreShift = 18
const unsigned int m_algoVersionShift = 12
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 24 of file eFEXFormTOBs.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

◆ eFEXFormTOBs()

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

Constructors.

Definition at line 18 of file eFEXFormTOBs.cxx.

18 :
19 AthAlgTool(type, name, parent)
20 {
21 declareInterface<eFEXFormTOBs>(this);
22 }
AthAlgTool()
Default constructor:

◆ ~eFEXFormTOBs()

LVL1::eFEXFormTOBs::~eFEXFormTOBs ( )
virtual

Destructor.

Desctructor.

Definition at line 25 of file eFEXFormTOBs.cxx.

26{
27}

Member Function Documentation

◆ declareGaudiProperty()

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

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

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

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

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

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

◆ evtStore()

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.

◆ 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

◆ formEmTOBWord()

uint32_t LVL1::eFEXFormTOBs::formEmTOBWord ( int fpga,
int eta,
int phi,
unsigned int rhad,
unsigned int wstot,
unsigned int reta,
unsigned int seed,
unsigned int und,
unsigned int et,
unsigned int ptMinTopo,
unsigned int algoVersion ) const
virtual

Definition at line 99 of file eFEXFormTOBs.cxx.

100{
101 uint32_t tobWord = 0;
102
103 // rescale from eFEX scale (25 MeV) to TOB scale (100 MeV)
104 // Do this using a bit shift to keep this 100% integer
105 unsigned int etTob = (et>>m_tobETshift);
106
107 // If ET < minimum value return empty TOB
108 if (etTob < ptMinTopo) return tobWord;
109
110 // Truncate at 12 bits, set to max value of 4095, 0xfff, or 111111111111
111 if (etTob > 0xfff) etTob = 0xfff;
112
113 // Create bare minimum tob word with et, eta, phi, and fpga index, bitshifted to the appropriate locations
114 tobWord = (fpga << m_fpgaShift) + (eta << m_etaShift) + (phi << m_phiShift) + (rhad << m_rhadShift) + (wstot << m_wstotShift) + (reta << m_retaShift) + (seed << m_seedShift) + (und << m_undShift) + (0x1 << m_seedMaxShift) + etTob + (algoVersion << m_algoVersionShift);
115
116 ATH_MSG_DEBUG("EM tobword: " << std::bitset<32>(tobWord) );
117
118 return tobWord;
119}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_MSG_DEBUG(x)
float et(const xAOD::jFexSRJetRoI *j)
const unsigned int m_seedShift
const unsigned int m_fpgaShift
const unsigned int m_etaShift
const unsigned int m_wstotShift
const unsigned int m_algoVersionShift
const unsigned int m_tobETshift
Internal data.
const unsigned int m_rhadShift
const unsigned int m_phiShift
const unsigned int m_retaShift
const unsigned int m_undShift
const unsigned int m_seedMaxShift
setEt setPhi setE277 setWeta2 setEta1 setE2tsts1 wstot
setEventNumber uint32_t

◆ formEmxTOBWords()

std::vector< uint32_t > LVL1::eFEXFormTOBs::formEmxTOBWords ( int efexid,
int fpga,
int eta,
int phi,
unsigned int rhad,
unsigned int wstot,
unsigned int reta,
unsigned int seed,
unsigned int und,
unsigned int et,
unsigned int ptMinTopo,
unsigned int algoVersion ) const
virtual

Definition at line 122 of file eFEXFormTOBs.cxx.

123{
124 std::vector<uint32_t> tobWords = {0, 0};
125
126 // If ET < minimum return empty xTOB. Threshold is at TOB scale, so rescale ET before applying
127 if ((et >> m_tobETshift) < ptMinTopo) return tobWords;
128
129 // Truncate ET at 16 bits, set to max value of 0xffff
130 unsigned int etTob = (et < 0xffff ? et : 0xffff);
131
132 // Calculate shelf and eFEX numbers from the efex index
133 uint8_t shelf = int(efexid/12);
134 uint8_t efex = efexid%12;
135
136 // Create tob word 0 with eta, phi, and fpga index, bitshifted to the appropriate locations
137 tobWords[0] = (fpga << m_fpgaShift) + (eta << m_etaShift) + (phi << m_phiShift) + (rhad << m_rhadShift) + (wstot << m_wstotShift) + (reta << m_retaShift) + (seed << m_seedShift) + (und << m_undShift) + (0x1 << m_seedMaxShift) + (algoVersion << m_algoVersionShift);
138
139 // Create tob word 1 with et, efex and shelf indices, bitshifted to the appropriate locations
140 tobWords[1] = (shelf << m_shelfShift) + (efex << m_efexShift) + etTob;
141
142 ATH_MSG_DEBUG("EM xtobwords: " << std::bitset<32>(tobWords[0]) << ", " << std::bitset<32>(tobWords[1]));
143
144 return tobWords;
145}
const unsigned int m_shelfShift
const unsigned int m_efexShift

◆ formTauTOBWord()

uint32_t LVL1::eFEXFormTOBs::formTauTOBWord ( int fpga,
int eta,
int phi,
unsigned int et,
unsigned int rhad,
unsigned int rcore,
unsigned int seed,
unsigned int und,
unsigned int ptMinTopo,
unsigned int algoVersion ) const
virtual

Definition at line 34 of file eFEXFormTOBs.cxx.

35{
36 uint32_t tobWord = 0;
37
38 if(algoVersion>0) {
39 und = 0; // no und bit in BDT TOBs
40 }
41
42 //rescale from eFEX scale (25 MeV) to TOB scale (100 MeV)
43 // Do this using a bit shift to keep this 100% integer
44 unsigned int etTob = (et>>m_tobETshift);
45
46 // If ET < minimum value return empty TOB
47 if (etTob < ptMinTopo) return tobWord;
48
49 // Truncate at 12 bits, set to max value of 4095, 0xfff, or 111111111111
50 if (etTob > 0xfff) etTob = 0xfff;
51
52 // Create tob word with et, eta, phi, and fpga index, bitshifted to the appropriate locations
53 tobWord = (fpga << m_fpgaShift) + (eta << m_etaShift) + (phi << m_phiShift) + (rhad << m_taurhadShift) + (rcore << m_taurcoreShift) + (seed << m_seedShift) + (und << m_undShift) + (0x1 << m_seedMaxShift) + etTob + (algoVersion << m_algoVersionShift);
54
55 if(algoVersion==0) {
56 ATH_MSG_DEBUG("Tau tobword: " << std::bitset<32>(tobWord));
57 } else {
58 ATH_MSG_DEBUG("Tau BDT tobword: " << std::bitset<32>(tobWord) );
59 }
60
61 return tobWord;
62}
const unsigned int m_taurcoreShift
const unsigned int m_taurhadShift

◆ formTauxTOBWords()

std::vector< uint32_t > LVL1::eFEXFormTOBs::formTauxTOBWords ( int efexid,
int fpga,
int eta,
int phi,
unsigned int et,
unsigned int rhad,
unsigned int rcore,
unsigned int seed,
unsigned int und,
unsigned int ptMinTopo,
unsigned int algoVersion,
unsigned int bdtScore ) const
virtual

Definition at line 64 of file eFEXFormTOBs.cxx.

65{
66 std::vector<uint32_t> tobWords = {0, 0};
67
68 // If ET < minimum return empty xTOB. Threshold is at TOB scale, so rescale ET before applying
69 if ((et >> m_tobETshift) < ptMinTopo) return tobWords;
70
71 if(algoVersion>0) {
72 und = 0; // no und bit in BDT xTOBs
73 }
74
75 // Truncate ET at 16 bits, set to max value of 0xffff
76 unsigned int etTob = (et < 0xffff ? et : 0xffff);
77
78 // Calculate shelf and eFEX numbers from the efex index
79 uint8_t shelf = int(efexid/12);
80 uint8_t efex = efexid%12;
81
82 // Create tob word 0 with eta, phi, and fpga index, bitshifted to the appropriate locations
83 tobWords[0] = (fpga << m_fpgaShift) + (eta << m_etaShift) + (phi << m_phiShift) + (rhad << m_taurhadShift) + (rcore << m_taurcoreShift) + (seed << m_seedShift) + (und << m_undShift) + (0x1 << m_seedMaxShift) + (algoVersion << m_algoVersionShift);
84
85 // Create tob word 1 with et, efex and shelf indices, bitshifted to the appropriate locations
86 tobWords[1] = (shelf << m_shelfShift) + (efex << m_efexShift) + etTob;
87
88 if (algoVersion == 0) {
89 ATH_MSG_DEBUG("Tau xtobwords: " << std::bitset<32>(tobWords[0]) << ", " << std::bitset<32>(tobWords[1]));
90 } else {
91 tobWords[0] += bdtScore; // put score in the LSBs of xtob word0
92 ATH_MSG_DEBUG("Tau BDT xtobwords: " << std::bitset<32>(tobWords[0]) << ", " << std::bitset<32>(tobWords[1]));
93 }
94
95 return tobWords;
96}

◆ initialize()

StatusCode LVL1::eFEXFormTOBs::initialize ( )
virtual

standard Athena-Algorithm method

Definition at line 29 of file eFEXFormTOBs.cxx.

30{
31 return StatusCode::SUCCESS;
32}

◆ 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::eFEXFormTOBs::interfaceID ( )
inlinestatic

Definition at line 27 of file eFEXFormTOBs.h.

27{ return IID_IeFEXFormTOBs; };
static const InterfaceID IID_IeFEXFormTOBs("LVL1::eFEXFormTOBs", 1, 0)
The eFEXFormTOBs class provides functions for creating TOBs for eFEX objects.

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ 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();
384 }
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)

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

◆ 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 asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ 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) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_algoVersionShift

const unsigned int LVL1::eFEXFormTOBs::m_algoVersionShift = 12
private

Definition at line 60 of file eFEXFormTOBs.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_efexShift

const unsigned int LVL1::eFEXFormTOBs::m_efexShift = 20
private

Definition at line 57 of file eFEXFormTOBs.h.

◆ m_etaShift

const unsigned int LVL1::eFEXFormTOBs::m_etaShift = 27
private

Definition at line 48 of file eFEXFormTOBs.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_fpgaShift

const unsigned int LVL1::eFEXFormTOBs::m_fpgaShift = 30
private

Definition at line 47 of file eFEXFormTOBs.h.

◆ m_phiShift

const unsigned int LVL1::eFEXFormTOBs::m_phiShift = 24
private

Definition at line 49 of file eFEXFormTOBs.h.

◆ m_retaShift

const unsigned int LVL1::eFEXFormTOBs::m_retaShift = 18
private

Definition at line 52 of file eFEXFormTOBs.h.

◆ m_rhadShift

const unsigned int LVL1::eFEXFormTOBs::m_rhadShift = 22
private

Definition at line 50 of file eFEXFormTOBs.h.

◆ m_seedMaxShift

const unsigned int LVL1::eFEXFormTOBs::m_seedMaxShift = 14
private

Definition at line 55 of file eFEXFormTOBs.h.

◆ m_seedShift

const unsigned int LVL1::eFEXFormTOBs::m_seedShift = 16
private

Definition at line 53 of file eFEXFormTOBs.h.

◆ m_shelfShift

const unsigned int LVL1::eFEXFormTOBs::m_shelfShift = 24
private

Definition at line 56 of file eFEXFormTOBs.h.

◆ m_taurcoreShift

const unsigned int LVL1::eFEXFormTOBs::m_taurcoreShift = 18
private

Definition at line 59 of file eFEXFormTOBs.h.

◆ m_taurhadShift

const unsigned int LVL1::eFEXFormTOBs::m_taurhadShift = 20
private

Definition at line 58 of file eFEXFormTOBs.h.

◆ m_tobETshift

const unsigned int LVL1::eFEXFormTOBs::m_tobETshift = 2
private

Internal data.

Definition at line 46 of file eFEXFormTOBs.h.

◆ m_undShift

const unsigned int LVL1::eFEXFormTOBs::m_undShift = 15
private

Definition at line 54 of file eFEXFormTOBs.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.

◆ m_wstotShift

const unsigned int LVL1::eFEXFormTOBs::m_wstotShift = 20
private

Definition at line 51 of file eFEXFormTOBs.h.


The documentation for this class was generated from the following files: