|
ATLAS Offline Software
|
#include <gFEXFPGA.h>
|
| gFEXFPGA (const std::string &type, const std::string &name, const IInterface *parent) |
| Constructors. More...
|
|
virtual StatusCode | initialize () override |
| standard Athena-Algorithm method More...
|
|
virtual | ~gFEXFPGA () |
| Destructor. More...
|
|
virtual StatusCode | init (int id) override |
|
virtual void | reset () override |
|
virtual int | getID () const override |
|
virtual void | FillgTowerEDMCentral (SG::WriteHandle< xAOD::gFexTowerContainer > &, gTowersCentral &, gTowersType &, gTowersType &, gTowersType &) override |
|
virtual void | FillgTowerEDMForward (SG::WriteHandle< xAOD::gFexTowerContainer > &, gTowersForward &, gTowersForward &, gTowersType &, gTowersType &, gTowersType &) 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 |
|
|
void | gtCalib (gTowersType &twrs, const gTowersType &offsets, const gTowersType &noiseCuts, const gTowersType &slopes) const |
|
void | calLookup (int *tower, const int offset, const int noiseCut, const int slope) const |
|
void | calExpand (gTowersType &offsets, gTowersType &noiseCuts, gTowersType &slopes, const int offset, const std::array< int, 12 > columnNoiseCuts, const std::array< int, 12 > columnSlopes) 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...
|
|
Definition at line 25 of file gFEXFPGA.h.
◆ StoreGateSvc_t
◆ gFEXFPGA()
LVL1::gFEXFPGA::gFEXFPGA |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
Constructors.
Definition at line 22 of file gFEXFPGA.cxx.
24 declareInterface<IgFEXFPGA>(
this);
◆ ~gFEXFPGA()
LVL1::gFEXFPGA::~gFEXFPGA |
( |
| ) |
|
|
virtual |
◆ calExpand()
Definition at line 309 of file gFEXFPGA.cxx.
312 int rows = offsets.size();
313 int cols = offsets[0].size();
314 for (
int irow = 0; irow <
rows; irow++)
316 for (
int jcolumn = 0; jcolumn <
cols; jcolumn++)
318 offsets[irow][jcolumn] =
offset;
319 noiseCuts[irow][jcolumn] = columnNoiseCuts[jcolumn];
320 slopes[irow][jcolumn] = columnSlopes[jcolumn];
◆ calLookup()
void LVL1::gFEXFPGA::calLookup |
( |
int * |
tower, |
|
|
const int |
offset, |
|
|
const int |
noiseCut, |
|
|
const int |
slope |
|
) |
| const |
|
private |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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
◆ FillgTowerEDMCentral()
Implements LVL1::IgFEXFPGA.
Definition at line 57 of file gFEXFPGA.cxx.
84 if (!gFEXFPGA_gTower50Container.isValid())
89 int rows = gTowersIDs_central.size();
90 int cols = gTowersIDs_central[0].size();
92 for (
int myrow = 0; myrow <
rows; myrow++)
94 for (
int mycol = 0; mycol <
cols; mycol++)
97 output_gTower_energies[myrow][mycol] = 0;
98 output_gTower50_energies[myrow][mycol] = 0;
99 output_saturation[myrow][mycol] = 0;
101 int towerID = gTowersIDs_central[myrow][mycol];
105 const LVL1::gTower *tmpTower = gFEXFPGA_gTowerContainer->findTower(towerID);
109 tmpTower50 = gFEXFPGA_gTower50Container->findTower(towerID);
112 if (tmpTower ==
nullptr)
115 TowerEt = tmpTower->
getET();
125 gTowersContainer->
push_back(std::move(gTowerEDM));
126 gTowersContainer->
back()->initialize(iEtaFW, iPhiFW,
Eta, Phi, TowerEt, Fpga, IsSaturated, gFEXtowerID);
128 output_gTower_energies[myrow][mycol] = tmpTower->
getET();
129 output_gTower50_energies[myrow][mycol] = is_mc ? tmpTower50->
getET() * 4. : tmpTower50->
getET();
130 output_saturation[myrow][mycol] = tmpTower->
isSaturated();
◆ FillgTowerEDMForward()
Implements LVL1::IgFEXFPGA.
Definition at line 151 of file gFEXFPGA.cxx.
165 char IsSaturated = 0;
171 if (!gFEXFPGA_gTower50Container.isValid())
179 int rows = gTowersIDs_forward_n.size();
180 int cols = gTowersIDs_forward_n[0].size();
182 for (
int myrow = 0; myrow <
rows; myrow++)
184 for (
int mycol = 0; mycol <
cols; mycol++)
187 int towerID = gTowersIDs_forward_n[myrow][mycol];
191 const LVL1::gTower *tmpTower = gFEXFPGA_gTowerContainer->findTower(towerID);
195 tmpTower50 = gFEXFPGA_gTower50Container->findTower(towerID);
198 if (tmpTower ==
nullptr)
201 int TowerEt = tmpTower->
getET();
202 float Eta = tmpTower->
eta();
203 float Phi = tmpTower->
phi();
209 gTowersContainer->
push_back(std::move(gTowerEDM));
210 gTowersContainer->
back()->initialize(iEtaFW, iPhiFW,
Eta, Phi, TowerEt, Fpga, IsSaturated, gFEXtowerID);
212 output_gTower_energies[iPhiFW][iEtaFW - 2] = tmpTower->
getET();
213 output_gTower50_energies[iPhiFW][iEtaFW - 2] = is_mc ? tmpTower50->
getET() * 4. : tmpTower50->
getET();
214 output_saturation[iPhiFW][iEtaFW - 2] = tmpTower->
isSaturated();
221 rows = gTowersIDs_forward_p.size();
222 cols = gTowersIDs_forward_p[0].size();
224 for (
int myrow = 0; myrow <
rows; myrow++)
226 for (
int mycol = 0; mycol <
cols; mycol++)
229 int towerID = gTowersIDs_forward_p[myrow][mycol];
233 const LVL1::gTower *tmpTower = gFEXFPGA_gTowerContainer->findTower(towerID);
237 tmpTower50 = gFEXFPGA_gTower50Container->findTower(towerID);
240 if (tmpTower ==
nullptr)
243 int TowerEt = tmpTower->
getET();
244 float Eta = tmpTower->
eta();
245 float Phi = tmpTower->
phi();
251 gTowersContainer->
push_back(std::move(gTowerEDM));
252 gTowersContainer->
back()->initialize(iEtaFW, iPhiFW,
Eta, Phi, TowerEt, Fpga, IsSaturated, gFEXtowerID);
254 output_gTower_energies[iPhiFW][iEtaFW - 32 + 6] = tmpTower->
getET();
255 output_gTower50_energies[iPhiFW][iEtaFW - 32 + 6] = is_mc ? tmpTower50->
getET() * 4. : tmpTower50->
getET();
256 output_saturation[iPhiFW][iEtaFW - 32 + 6] = tmpTower->
isSaturated();
◆ getID()
virtual int LVL1::gFEXFPGA::getID |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ gtCalib()
Definition at line 266 of file gFEXFPGA.cxx.
268 int rows = twrs.size();
269 int cols = twrs[0].size();
270 for (
int irow = 0; irow <
rows; irow++)
272 for (
int jcolumn = 0; jcolumn <
cols; jcolumn++)
274 twrs[irow][jcolumn] = twrs[irow][jcolumn] + offsets[irow][jcolumn];
275 calLookup(&twrs[irow][jcolumn], offsets[irow][jcolumn], noiseCuts[irow][jcolumn], slopes[irow][jcolumn]);
◆ init()
StatusCode LVL1::gFEXFPGA::init |
( |
int |
id | ) |
|
|
overridevirtual |
◆ initialize()
StatusCode LVL1::gFEXFPGA::initialize |
( |
| ) |
|
|
overridevirtual |
standard Athena-Algorithm method
Definition at line 34 of file gFEXFPGA.cxx.
41 return StatusCode::SUCCESS;
◆ inputHandles()
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::IgFEXFPGA::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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()
◆ renounceArray()
◆ reset()
void LVL1::gFEXFPGA::reset |
( |
| ) |
|
|
overridevirtual |
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_DBToolKey
◆ m_detStore
◆ m_evtStore
◆ m_fpgaId
int LVL1::gFEXFPGA::m_fpgaId = -1 |
|
private |
◆ m_gFEXFPGA_gTower50ContainerKey
◆ m_gFEXFPGA_gTowerContainerKey
◆ m_noiseCutsDefaultA
gTowersType LVL1::gFEXFPGA::m_noiseCutsDefaultA = {{{0}}} |
|
private |
◆ m_noiseCutsDefaultB
gTowersType LVL1::gFEXFPGA::m_noiseCutsDefaultB = {{{0}}} |
|
private |
◆ m_noiseCutsDefaultC
gTowersType LVL1::gFEXFPGA::m_noiseCutsDefaultC = {{{0}}} |
|
private |
◆ m_offsetsDefaultA
gTowersType LVL1::gFEXFPGA::m_offsetsDefaultA = {{{0}}} |
|
private |
◆ m_offsetsDefaultB
gTowersType LVL1::gFEXFPGA::m_offsetsDefaultB = {{{0}}} |
|
private |
◆ m_offsetsDefaultC
gTowersType LVL1::gFEXFPGA::m_offsetsDefaultC = {{{0}}} |
|
private |
◆ m_slopesDefaultA
◆ m_slopesDefaultB
◆ m_slopesDefaultC
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
gTowersType m_slopesDefaultB
int getFWID(int &iPhiFW, int &iEtaFW) const
Calculates and returns the firmware ID, as well as iPhi and iEta in FT/global scheme.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
gTowersType m_slopesDefaultC
char isSaturated() const
Returns true if is saturated.
The gTower class is an interface object for gFEX trigger algorithms The purposes are twofold:
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
virtual void setOwner(IDataHandleHolder *o)=0
int getET() const
Get ET (total) in MeV.
void calExpand(gTowersType &offsets, gTowersType &noiseCuts, gTowersType &slopes, const int offset, const std::array< int, 12 > columnNoiseCuts, const std::array< int, 12 > columnSlopes) const
gTowersType m_noiseCutsDefaultB
void gtCalib(gTowersType &twrs, const gTowersType &offsets, const gTowersType &noiseCuts, const gTowersType &slopes) const
void calLookup(int *tower, const int offset, const int noiseCut, const int slope) const
gTowersType m_offsetsDefaultC
SG::ReadHandleKey< LVL1::gTowerContainer > m_gFEXFPGA_gTower50ContainerKey
SG::ReadCondHandleKey< gFEXDBCondData > m_DBToolKey
Internal data.
gTowersType m_noiseCutsDefaultC
Class describing input data of a LVL1 eFEX.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
const T * back() const
Access the last element in the collection as an rvalue.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
gTowersType m_offsetsDefaultA
value_type push_back(value_type pElem)
Add an element to the end of the collection.
SG::ReadHandleKey< LVL1::gTowerContainer > m_gFEXFPGA_gTowerContainerKey
gTowersType m_slopesDefaultA
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
gTowersType m_offsetsDefaultB
gTowersType m_noiseCutsDefaultA
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>