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

The eFEXtauAlgo class calculates the tau TOB variables. More...

#include <eFEXtauAlgo.h>

Inheritance diagram for LVL1::eFEXtauAlgo:
Collaboration diagram for LVL1::eFEXtauAlgo:

Public Member Functions

 eFEXtauAlgo (const std::string &type, const std::string &name, const IInterface *parent)
 Constructors.
virtual StatusCode initialize () override
 standard Athena-Algorithm method
virtual ~eFEXtauAlgo ()
 Destructor.
virtual void setup (int inputTable[3][3], int efex_id, int fpga_id, int central_eta) override
virtual std::unique_ptr< eFEXtauTOBgetTauTOB () const override
virtual unsigned int rCoreCore () const override
virtual unsigned int rCoreEnv () const override
virtual unsigned int rHadCore () const override
virtual unsigned int rHadEnv () const override
virtual void getSums (unsigned int seed, bool UnD, std::vector< unsigned int > &RcoreSums, std::vector< unsigned int > &Remums) override
virtual unsigned int getEt () const override
virtual unsigned int getBitwiseEt () const override
virtual void setAlgoVersion (unsigned int ver) override
virtual StatusCode safetyTest ()
virtual void compute ()
virtual bool isCentralTowerSeed () const
virtual bool isBDT () const
virtual void setThresholds (const std::vector< unsigned int > &, const std::vector< unsigned int > &, unsigned int, unsigned int, unsigned int, unsigned int)
virtual void getRCore (std::vector< unsigned int > &rCoreVec) const
virtual float getRealRCore () const
virtual void getRHad (std::vector< unsigned int > &rHadVec) const
virtual float getRealRHad () const
virtual unsigned int getBDTScore () const
virtual unsigned int getBDTCondition () const
virtual unsigned int getBDTHadFracCondition () const
void setSCellEncoder (LVL1::eFEXtauTOB *tob) 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 buildLayers (int efex_id, int fpga_id, int central_eta)
void setSCellPointers ()
void setSuperCells (eFEXtauTOB *tob, bool withSupercells)
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.

Protected Attributes

SG::ReadHandleKey< LVL1::eTowerContainerm_eTowerContainerKey
bool m_cellsSet = false
int m_eFexalgoTowerID [3][3] {}
unsigned int m_em0cells [3][3] {}
unsigned int m_em1cells [12][3] {}
unsigned int m_em2cells [12][3] {}
unsigned int m_em3cells [3][3] {}
unsigned int m_hadcells [3][3] {}
unsigned int m_twrcells [3][3] {}

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

virtual void setSupercellSeed () override
virtual void setUnDAndOffPhi () override
virtual bool getUnD () const override
virtual unsigned int getSeed () const override
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

unsigned int m_seed = 0
bool m_und = false
unsigned int m_offPhi = 0
unsigned int m_AlgoVersion = 0
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

The eFEXtauAlgo class calculates the tau TOB variables.

Definition at line 27 of file eFEXtauAlgo.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

◆ eFEXtauAlgo()

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

Constructors.

Definition at line 19 of file eFEXtauAlgo.cxx.

21 : eFEXtauAlgoBase(type, name, parent) {
22
23}
eFEXtauAlgoBase(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.

◆ ~eFEXtauAlgo()

LVL1::eFEXtauAlgo::~eFEXtauAlgo ( )
virtual

Destructor.

Definition at line 26 of file eFEXtauAlgo.cxx.

26{}

Member Function Documentation

◆ buildLayers()

void LVL1::eFEXtauAlgoBase::buildLayers ( int efex_id,
int fpga_id,
int central_eta )
protectedinherited

Definition at line 37 of file eFEXtauAlgoBase.cxx.

38 {
39
40 SG::ReadHandle<eTowerContainer> eTowerContainer(
41 m_eTowerContainerKey /*,ctx*/);
42
43 for (unsigned int ieta = 0; ieta < 3; ieta++) {
44 for (unsigned int iphi = 0; iphi < 3; iphi++) {
45 if (((efex_id % 3 == 0) && (fpga_id == 0) && (central_eta == 0) &&
46 (ieta == 0)) ||
47 ((efex_id % 3 == 2) && (fpga_id == 3) && (central_eta == 5) &&
48 (ieta == 2))) {
49 m_twrcells[ieta][iphi] = 0;
50 m_em0cells[ieta][iphi] = 0;
51 m_em3cells[ieta][iphi] = 0;
52 m_hadcells[ieta][iphi] = 0;
53 for (unsigned int i = 0; i < 4; i++) {
54 m_em1cells[4 * ieta + i][iphi] = 0;
55 m_em2cells[4 * ieta + i][iphi] = 0;
56 }
57 } else {
58 const LVL1::eTower *tmpTower =
59 eTowerContainer->findTower(m_eFexalgoTowerID[iphi][ieta]);
60 m_twrcells[ieta][iphi] = tmpTower->getTotalET();
61 m_em0cells[ieta][iphi] = tmpTower->getLayerTotalET(0);
62 m_em3cells[ieta][iphi] = tmpTower->getLayerTotalET(3);
63 m_hadcells[ieta][iphi] = tmpTower->getLayerTotalET(4);
64 for (unsigned int i = 0; i < 4; i++) {
65 m_em1cells[4 * ieta + i][iphi] = tmpTower->getET(1, i);
66 m_em2cells[4 * ieta + i][iphi] = tmpTower->getET(2, i);
67 }
68 }
69 }
70 }
71 m_cellsSet = true;
72}
unsigned int m_em1cells[12][3]
SG::ReadHandleKey< LVL1::eTowerContainer > m_eTowerContainerKey
unsigned int m_twrcells[3][3]
unsigned int m_hadcells[3][3]
unsigned int m_em0cells[3][3]
unsigned int m_em2cells[12][3]
unsigned int m_em3cells[3][3]
int getLayerTotalET(unsigned int layer) const
Get total ET sum of all cells in a given layer in MeV.
Definition eTower.cxx:249
int getET(unsigned int layer, int cell=0) const
Get ET of a specified cell in MeV.
Definition eTower.cxx:172
int getTotalET() const
Get ET sum of all cells in the eTower in MeV.
Definition eTower.cxx:194

◆ compute()

virtual void LVL1::eFEXtauAlgoBase::compute ( )
inlinevirtualinherited

Reimplemented in LVL1::eFEXtauBDTAlgo.

Definition at line 41 of file eFEXtauAlgoBase.h.

41{};

◆ 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

◆ getBDTCondition()

virtual unsigned int LVL1::eFEXtauAlgoBase::getBDTCondition ( ) const
inlinevirtualinherited

Reimplemented in LVL1::eFEXtauBDTAlgo.

Definition at line 63 of file eFEXtauAlgoBase.h.

63{ return 0; }

◆ getBDTHadFracCondition()

virtual unsigned int LVL1::eFEXtauAlgoBase::getBDTHadFracCondition ( ) const
inlinevirtualinherited

Reimplemented in LVL1::eFEXtauBDTAlgo.

Definition at line 64 of file eFEXtauAlgoBase.h.

64{ return 0; }

◆ getBDTScore()

virtual unsigned int LVL1::eFEXtauAlgoBase::getBDTScore ( ) const
inlinevirtualinherited

Reimplemented in LVL1::eFEXtauBDTAlgo.

Definition at line 62 of file eFEXtauAlgoBase.h.

62{ return 0; }

◆ getBitwiseEt()

unsigned int LVL1::eFEXtauAlgo::getBitwiseEt ( ) const
overridevirtual

Implements LVL1::eFEXtauAlgoBase.

Definition at line 281 of file eFEXtauAlgo.cxx.

281 {
282 unsigned int out = 0;
283 return out;
284}

◆ getEt()

unsigned int LVL1::eFEXtauAlgo::getEt ( ) const
overridevirtual

Implements LVL1::eFEXtauAlgoBase.

Definition at line 62 of file eFEXtauAlgo.cxx.

62 {
63 if (m_cellsSet == false) {
64 ATH_MSG_DEBUG("Layers not built, cannot accurately calculate Et.");
65 }
66
67 unsigned int out = 0;
68
69 out += m_em0cells[0][1];
70
71 if (m_AlgoVersion==0){
72 out += m_em0cells[1][1];
73 out += m_em0cells[2][1];
74 out += m_em0cells[0][m_offPhi];
75 out += m_em0cells[1][m_offPhi];
76 out += m_em0cells[2][m_offPhi];
77 }
78
79 out += m_em1cells[m_seed][1];
80 out += m_em1cells[m_seed + 1][1];
81 out += m_em1cells[m_seed + 2][1];
82 out += m_em1cells[m_seed - 1][1];
83 out += m_em1cells[m_seed - 2][1];
89
90 out += m_em2cells[m_seed][1];
91 out += m_em2cells[m_seed + 1][1];
92 out += m_em2cells[m_seed + 2][1];
93 out += m_em2cells[m_seed - 1][1];
94 out += m_em2cells[m_seed - 2][1];
100
101 out += m_em3cells[0][1];
102 out += m_em3cells[1][1];
103 out += m_em3cells[2][1];
104 out += m_em3cells[0][m_offPhi];
105 out += m_em3cells[1][m_offPhi];
106 out += m_em3cells[2][m_offPhi];
107
108 out += m_hadcells[0][1];
109 out += m_hadcells[1][1];
110 out += m_hadcells[2][1];
111 out += m_hadcells[0][m_offPhi];
112 out += m_hadcells[1][m_offPhi];
113 out += m_hadcells[2][m_offPhi];
114
115 // Overflow handling
116 if (out > 0xffff)
117 out = 0xffff;
118
119 return out;
120}
#define ATH_MSG_DEBUG(x)
unsigned int m_seed
Definition eFEXtauAlgo.h:63
unsigned int m_offPhi
Definition eFEXtauAlgo.h:65
unsigned int m_AlgoVersion
Definition eFEXtauAlgo.h:66

◆ getRCore()

void LVL1::eFEXtauAlgoBase::getRCore ( std::vector< unsigned int > & rCoreVec) const
virtualinherited

Definition at line 120 of file eFEXtauAlgoBase.cxx.

121 {
122 unsigned int core = rCoreCore();
123 unsigned int env = rCoreEnv();
124
125 rCoreVec.push_back(core);
126 rCoreVec.push_back(env);
127}
virtual unsigned int rCoreEnv() const
virtual unsigned int rCoreCore() const

◆ getRealRCore()

float LVL1::eFEXtauAlgoBase::getRealRCore ( ) const
virtualinherited

Definition at line 96 of file eFEXtauAlgoBase.cxx.

96 {
97 unsigned int core = rCoreCore();
98 unsigned int env = rCoreEnv();
99
100 unsigned int num = core;
101 unsigned int denom = core + env;
102
103 float out = denom ? static_cast<float>(num) / static_cast<float>(denom) : 0;
104
105 return out;
106}

◆ getRealRHad()

float LVL1::eFEXtauAlgoBase::getRealRHad ( ) const
virtualinherited

Definition at line 108 of file eFEXtauAlgoBase.cxx.

108 {
109 unsigned int core = rHadCore();
110 unsigned int env = rHadEnv();
111
112 unsigned int num = core;
113 unsigned int denom = core + env;
114
115 float out = denom ? static_cast<float>(num) / static_cast<float>(denom) : 0;
116
117 return out;
118}
virtual unsigned int rHadEnv() const =0
virtual unsigned int rHadCore() const =0

◆ getRHad()

void LVL1::eFEXtauAlgoBase::getRHad ( std::vector< unsigned int > & rHadVec) const
virtualinherited

Definition at line 87 of file eFEXtauAlgoBase.cxx.

87 {
88 unsigned int core = rHadCore();
89 unsigned int env = rHadEnv();
90
91 rHadVec.push_back(core);
92 rHadVec.push_back(env);
93}

◆ getSeed()

unsigned int LVL1::eFEXtauAlgo::getSeed ( ) const
overrideprivatevirtual

Implements LVL1::eFEXtauAlgoBase.

Definition at line 288 of file eFEXtauAlgo.cxx.

288{ return m_seed; }

◆ getSums()

void LVL1::eFEXtauAlgo::getSums ( unsigned int seed,
bool UnD,
std::vector< unsigned int > & RcoreSums,
std::vector< unsigned int > & Remums )
overridevirtual

Reimplemented from LVL1::eFEXtauAlgoBase.

Definition at line 247 of file eFEXtauAlgo.cxx.

249 {
250 // Set seed parameters to supplied values
251 m_und = UnD;
252 m_seed = seed + 4; // In this function seed has range 4-7
253
254 // Now just call the 2 discriminant calculation methods
255 getRCore(RcoreSums);
256 getRHad(RemSums);
257}
virtual void getRHad(std::vector< unsigned int > &rHadVec) const
virtual void getRCore(std::vector< unsigned int > &rCoreVec) const

◆ getTauTOB()

std::unique_ptr< LVL1::eFEXtauTOB > LVL1::eFEXtauAlgo::getTauTOB ( ) const
overridevirtual

Implements LVL1::eFEXtauAlgoBase.

Definition at line 45 of file eFEXtauAlgo.cxx.

45 {
46 std::unique_ptr<eFEXtauTOB> tob = std::make_unique<eFEXtauTOB>();
47 unsigned int et = getEt();
48 tob->setEt(et);
49 tob->setRcoreCore(rCoreCore());
50 tob->setRcoreEnv(rCoreEnv());
51 tob->setRhadCore(rHadCore());
52 tob->setRhadEnv(rHadEnv());
53 tob->setBitwiseEt(getBitwiseEt());
54 tob->setIso(getRealRCore());
55 tob->setSeedUnD(getUnD());
56 tob->setBDTScore(0);
57 tob->setIsBDTAlgo(0);
58 return tob;
59}
float et(const xAOD::jFexSRJetRoI *j)
virtual float getRealRCore() const
virtual unsigned int rCoreCore() const override
virtual unsigned int rHadCore() const override
virtual bool getUnD() const override
virtual unsigned int getBitwiseEt() const override
virtual unsigned int rHadEnv() const override
virtual unsigned int rCoreEnv() const override
virtual unsigned int getEt() const override

◆ getUnD()

bool LVL1::eFEXtauAlgo::getUnD ( ) const
overrideprivatevirtual

Reimplemented from LVL1::eFEXtauAlgoBase.

Definition at line 286 of file eFEXtauAlgo.cxx.

286{ return m_und; }

◆ initialize()

StatusCode LVL1::eFEXtauAlgo::initialize ( )
overridevirtual

standard Athena-Algorithm method

Definition at line 28 of file eFEXtauAlgo.cxx.

28 {
29 ATH_CHECK(m_eTowerContainerKey.initialize());
30
31 ATH_MSG_INFO("tau Algorithm version: heuristic");
32 return StatusCode::SUCCESS;
33}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)

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

Definition at line 31 of file eFEXtauAlgoBase.h.

31{ return IID_IeFEXtauAlgoBase; };
static const InterfaceID IID_IeFEXtauAlgoBase("LVL1::eFEXtauAlgoBase", 1, 0)
The eFEXtauBDTAlgo class calculates the tau BDT TOB variables.

◆ isBDT()

virtual bool LVL1::eFEXtauAlgoBase::isBDT ( ) const
inlinevirtualinherited

Reimplemented in LVL1::eFEXtauBDTAlgo.

Definition at line 43 of file eFEXtauAlgoBase.h.

43{return false;}

◆ isCentralTowerSeed()

bool LVL1::eFEXtauAlgoBase::isCentralTowerSeed ( ) const
virtualinherited

Definition at line 130 of file eFEXtauAlgoBase.cxx.

130 {
131 // Need layer cell ET arrays to be built
132 if (m_cellsSet == false) {
134 "Layers not built, cannot accurately determine if a seed tower.");
135 }
136
137 bool out = true;
138
139 // Get central tower ET
140 unsigned int centralET = m_twrcells[1][1];
141
142 // Loop over all cells and check that the central tower is a local maximum
143 for (unsigned int beta = 0; beta < 3; beta++) {
144 for (unsigned int bphi = 0; bphi < 3; bphi++) {
145 // Don't need to compare central cell with itself
146 if ((beta == 1) && (bphi == 1)) {
147 continue;
148 }
149
150 // Cells to the up and right must have strictly lesser ET
151 if (beta == 2 || (beta == 1 && bphi == 2)) {
152 if (centralET <= m_twrcells[beta][bphi]) {
153 out = false;
154 }
155 }
156 // Cells down and to the left must have lesser or equal ET. If strictly
157 // lesser would create zero TOB if two adjacent cells had equal energy
158 else if (beta == 0 || (beta == 1 && bphi == 0)) {
159 if (centralET < m_twrcells[beta][bphi]) {
160 out = false;
161 }
162 }
163 }
164 }
165
166 return out;
167}

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

◆ rCoreCore()

unsigned int LVL1::eFEXtauAlgo::rCoreCore ( ) const
overridevirtual

Reimplemented from LVL1::eFEXtauAlgoBase.

Definition at line 122 of file eFEXtauAlgo.cxx.

122 {
123 if (m_cellsSet == false) {
124 ATH_MSG_DEBUG("Layers not built, cannot calculate rCore core value");
125 }
126
127 unsigned int out = 0;
128
129 out += m_em2cells[m_seed][1];
130 out += m_em2cells[m_seed + 1][1];
131 out += m_em2cells[m_seed - 1][1];
133 out += m_em2cells[m_seed + 1][m_offPhi];
134 out += m_em2cells[m_seed - 1][m_offPhi];
135
136 // Overflow handling
137 if (out > 0xffff)
138 out = 0xffff;
139
140 return out;
141}

◆ rCoreEnv()

unsigned int LVL1::eFEXtauAlgo::rCoreEnv ( ) const
overridevirtual

Reimplemented from LVL1::eFEXtauAlgoBase.

Definition at line 143 of file eFEXtauAlgo.cxx.

143 {
144 if (m_cellsSet == false) {
145 ATH_MSG_DEBUG("Layers not built, cannot calculate rCore environment value");
146 }
147
148 unsigned int out = 0;
149
150 out += m_em2cells[m_seed + 2][1];
151 out += m_em2cells[m_seed - 2][1];
152 out += m_em2cells[m_seed + 3][1];
153 out += m_em2cells[m_seed - 3][1];
154 out += m_em2cells[m_seed + 4][1];
155 out += m_em2cells[m_seed - 4][1];
156 out += m_em2cells[m_seed + 2][m_offPhi];
157 out += m_em2cells[m_seed - 2][m_offPhi];
158 out += m_em2cells[m_seed + 3][m_offPhi];
159 out += m_em2cells[m_seed - 3][m_offPhi];
160 out += m_em2cells[m_seed + 4][m_offPhi];
161 out += m_em2cells[m_seed - 4][m_offPhi];
162
163 // Overflow handling
164 if (out > 0xffff)
165 out = 0xffff;
166
167 return out;
168}

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

◆ rHadCore()

unsigned int LVL1::eFEXtauAlgo::rHadCore ( ) const
overridevirtual

Implements LVL1::eFEXtauAlgoBase.

Definition at line 170 of file eFEXtauAlgo.cxx.

170 {
171 if (m_cellsSet == false) {
172 ATH_MSG_DEBUG("Layers not built, cannot calculate rHad core value");
173 }
174
175 unsigned int out = 0;
176
177 out += m_hadcells[0][1];
178 out += m_hadcells[1][1];
179 out += m_hadcells[2][1];
180 out += m_hadcells[0][m_offPhi];
181 out += m_hadcells[1][m_offPhi];
182 out += m_hadcells[2][m_offPhi];
183
184 // Overflow handling
185 if (out > 0xffff)
186 out = 0xffff;
187
188 return out;
189}

◆ rHadEnv()

unsigned int LVL1::eFEXtauAlgo::rHadEnv ( ) const
overridevirtual

Implements LVL1::eFEXtauAlgoBase.

Definition at line 191 of file eFEXtauAlgo.cxx.

191 {
192 if (m_cellsSet == false) {
193 ATH_MSG_DEBUG("Layers not built, cannot calculate rHad environment value");
194 }
195
196 unsigned int out = 0;
197
198 out += m_em2cells[m_seed][1];
199 out += m_em2cells[m_seed - 1][1];
200 out += m_em2cells[m_seed + 1][1];
201 out += m_em2cells[m_seed - 2][1];
202 out += m_em2cells[m_seed + 2][1];
204 out += m_em2cells[m_seed - 1][m_offPhi];
205 out += m_em2cells[m_seed + 1][m_offPhi];
206 out += m_em2cells[m_seed - 2][m_offPhi];
207 out += m_em2cells[m_seed + 2][m_offPhi];
208 out += m_em1cells[m_seed][1];
209 out += m_em1cells[m_seed - 1][1];
210 out += m_em1cells[m_seed + 1][1];
212 out += m_em1cells[m_seed - 1][m_offPhi];
213 out += m_em1cells[m_seed + 1][m_offPhi];
214
215 // Overflow handling
216 if (out > 0xffff)
217 out = 0xffff;
218
219 return out;
220}

◆ safetyTest()

StatusCode LVL1::eFEXtauAlgoBase::safetyTest ( )
virtualinherited

Definition at line 24 of file eFEXtauAlgoBase.cxx.

24 {
25
26 SG::ReadHandle<eTowerContainer> eTowerContainer(
27 m_eTowerContainerKey /*,ctx*/);
28 if (!eTowerContainer.isValid()) {
29 ATH_MSG_FATAL("Could not retrieve eTowerContainer "
30 << m_eTowerContainerKey.key());
31 return StatusCode::FAILURE;
32 }
33 return StatusCode::SUCCESS;
34}
#define ATH_MSG_FATAL(x)

◆ setAlgoVersion()

void LVL1::eFEXtauAlgo::setAlgoVersion ( unsigned int ver)
overridevirtual

◆ setSCellEncoder()

void LVL1::eFEXtauAlgoBase::setSCellEncoder ( LVL1::eFEXtauTOB * tob) const
inherited

◆ setSCellPointers()

void LVL1::eFEXtauAlgoBase::setSCellPointers ( )
protectedinherited

◆ setSuperCells()

void LVL1::eFEXtauAlgoBase::setSuperCells ( eFEXtauTOB * tob,
bool withSupercells )
protectedinherited

◆ setSupercellSeed()

void LVL1::eFEXtauAlgo::setSupercellSeed ( )
overrideprivatevirtual

Reimplemented from LVL1::eFEXtauAlgoBase.

Definition at line 261 of file eFEXtauAlgo.cxx.

261 {
262 unsigned int seed = 7;
263 int max_et = 0;
264 int cell_et = 0;
265 for (unsigned int i = 7; i > 3; --i) {
266 cell_et = m_em2cells[i][1];
267
268 if (m_AlgoVersion==3){
269 cell_et = m_em1cells[i][1];
270 }
271 if (cell_et > max_et) {
272 seed = i;
273 max_et = cell_et;
274 }
275 }
276 m_seed = seed;
277}

◆ setThresholds()

virtual void LVL1::eFEXtauAlgoBase::setThresholds ( const std::vector< unsigned int > & ,
const std::vector< unsigned int > & ,
unsigned int ,
unsigned int ,
unsigned int ,
unsigned int  )
inlinevirtualinherited

Reimplemented in LVL1::eFEXtauBDTAlgo.

Definition at line 45 of file eFEXtauAlgoBase.h.

49 {};

◆ setUnDAndOffPhi()

void LVL1::eFEXtauAlgo::setUnDAndOffPhi ( )
overrideprivatevirtual

Reimplemented from LVL1::eFEXtauAlgoBase.

Definition at line 223 of file eFEXtauAlgo.cxx.

223 {
224 if (m_cellsSet == false) {
225 ATH_MSG_DEBUG("Layers not built, cannot accurately set phi direction.");
226 }
227
228 unsigned int upwardEt = m_em2cells[m_seed][2];
229 unsigned int downwardEt = m_em2cells[m_seed][0];
230
231 if (m_AlgoVersion==3){
232 upwardEt = m_em1cells[m_seed][2];
233 downwardEt = m_em1cells[m_seed][0];
234 }
235
236 if (downwardEt > upwardEt) {
237 m_offPhi = 0;
238 m_und = false;
239 } else {
240 m_offPhi = 2;
241 m_und = true;
242 }
243}

◆ setup()

void LVL1::eFEXtauAlgo::setup ( int inputTable[3][3],
int efex_id,
int fpga_id,
int central_eta )
overridevirtual

Implements LVL1::eFEXtauAlgoBase.

Definition at line 35 of file eFEXtauAlgo.cxx.

36 {
37
38 std::copy(&inputTable[0][0], &inputTable[0][0] + 9, &m_eFexalgoTowerID[0][0]);
39
40 buildLayers(efex_id, fpga_id, central_eta);
43}
void buildLayers(int efex_id, int fpga_id, int central_eta)
virtual void setSupercellSeed() override
virtual void setUnDAndOffPhi() override

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

unsigned int LVL1::eFEXtauAlgo::m_AlgoVersion = 0
private

Definition at line 66 of file eFEXtauAlgo.h.

◆ m_cellsSet

bool LVL1::eFEXtauAlgoBase::m_cellsSet = false
protectedinherited

Definition at line 75 of file eFEXtauAlgoBase.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_eFexalgoTowerID

int LVL1::eFEXtauAlgoBase::m_eFexalgoTowerID[3][3] {}
protectedinherited

Definition at line 77 of file eFEXtauAlgoBase.h.

77{};

◆ m_em0cells

unsigned int LVL1::eFEXtauAlgoBase::m_em0cells[3][3] {}
protectedinherited

Definition at line 88 of file eFEXtauAlgoBase.h.

88{};

◆ m_em1cells

unsigned int LVL1::eFEXtauAlgoBase::m_em1cells[12][3] {}
protectedinherited

Definition at line 89 of file eFEXtauAlgoBase.h.

89{};

◆ m_em2cells

unsigned int LVL1::eFEXtauAlgoBase::m_em2cells[12][3] {}
protectedinherited

Definition at line 90 of file eFEXtauAlgoBase.h.

90{};

◆ m_em3cells

unsigned int LVL1::eFEXtauAlgoBase::m_em3cells[3][3] {}
protectedinherited

Definition at line 91 of file eFEXtauAlgoBase.h.

91{};

◆ m_eTowerContainerKey

SG::ReadHandleKey<LVL1::eTowerContainer> LVL1::eFEXtauAlgoBase::m_eTowerContainerKey
protectedinherited
Initial value:
{
this, "MyETowers", "eTowerContainer", "Input container for eTowers"}

Definition at line 73 of file eFEXtauAlgoBase.h.

73 {
74 this, "MyETowers", "eTowerContainer", "Input container for eTowers"};

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

unsigned int LVL1::eFEXtauAlgoBase::m_hadcells[3][3] {}
protectedinherited

Definition at line 92 of file eFEXtauAlgoBase.h.

92{};

◆ m_offPhi

unsigned int LVL1::eFEXtauAlgo::m_offPhi = 0
private

Definition at line 65 of file eFEXtauAlgo.h.

◆ m_seed

unsigned int LVL1::eFEXtauAlgo::m_seed = 0
private

Definition at line 63 of file eFEXtauAlgo.h.

◆ m_twrcells

unsigned int LVL1::eFEXtauAlgoBase::m_twrcells[3][3] {}
protectedinherited

Definition at line 93 of file eFEXtauAlgoBase.h.

93{};

◆ m_und

bool LVL1::eFEXtauAlgo::m_und = false
private

Definition at line 64 of file eFEXtauAlgo.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: