|
ATLAS Offline Software
|
Concrete tool for CaloTower building in LAr.
More...
#include <LArTowerBuilderTool.h>
|
| LArTowerBuilderTool (const std::string &name, const std::string &type, const IInterface *parent) |
| AlgTool constructor. More...
|
|
virtual | ~LArTowerBuilderTool () |
|
virtual StatusCode | execute (const EventContext &ctx, CaloTowerContainer *theContainer, const CaloCellContainer *theCell=0, const CaloTowerSeg::SubSeg *subseg=0) const override |
| Run tower building and add results to the tower container. More...
|
|
virtual StatusCode | execute (const EventContext &ctx, CaloTowerContainer *theContainer) override |
| Run tower building and add results to the tower container. More...
|
|
virtual void | setCalos (const std::vector< CaloCell_ID::SUBCALO > &v) |
|
virtual StatusCode | initializeTool () override |
|
virtual StatusCode initialize | ATLAS_NOT_THREAD_SAFE () override |
| common initialization More...
|
|
virtual void | setTowerSeg (const CaloTowerSeg &theTowerSeg) 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 |
|
Concrete tool for CaloTower building in LAr.
LArTowerBuilderTool fills CaloCells into CaloTowers for the LAr Calorimeters. Note that this is not the appropriate tool for the FCal, which is by default excluded.
- Author
- Peter Loch loch@.nosp@m.phys.nosp@m.ics.a.nosp@m.rizo.nosp@m.na.ed.nosp@m.u
- Date
- April 30, 2004 - first implementation
Definition at line 25 of file LArTowerBuilderTool.h.
◆ StoreGateSvc_t
◆ LArTowerBuilderTool()
LArTowerBuilderTool::LArTowerBuilderTool |
( |
const std::string & |
name, |
|
|
const std::string & |
type, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~LArTowerBuilderTool()
LArTowerBuilderTool::~LArTowerBuilderTool |
( |
| ) |
|
|
virtual |
◆ addTower()
|
inlinestaticprivateinherited |
Definition at line 64 of file CaloTowerBuilderTool.cxx.
73 for (; firstC != lastC; ++firstC) {
75 unsigned int ci = firstC.
hash();
76 double weightC = firstC.
weight();
77 int cndx =
cells->findIndex(ci);
80 cellPtr = (*cells)[cndx];
83 wsumE += weightC * cellPtr->
e();
◆ ATLAS_NOT_THREAD_SAFE()
virtual StatusCode initialize CaloTowerBuilderToolBase::ATLAS_NOT_THREAD_SAFE |
( |
| ) |
|
|
overridevirtualinherited |
◆ checkSetup()
StatusCode CaloTowerBuilderTool::checkSetup |
( |
MsgStream & |
log | ) |
|
|
privatevirtualinherited |
◆ 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]
◆ execute() [1/2]
Run tower building and add results to the tower container.
- Parameters
-
ctx | The current event context. |
theContainer | The tower container to fill. |
If the segmentation hasn't been set, take it from the tower container. This is for use by converters.
Implements CaloTowerBuilderToolBase.
Definition at line 227 of file CaloTowerBuilderTool.cxx.
235 return execute (ctx, theContainer,
nullptr,
nullptr);
◆ execute() [2/2]
Run tower building and add results to the tower container.
If a cell container is provided, use that; otherwise, fetch from SG (the key is given by a job property). If subseg
is provided, then we do the building only within the rectangular region that it describes. The segmentation of the tower container must match the region over which we're running the tower building.
- Parameters
-
ctx | The current event context. |
theContainer | The tower container to fill. |
theCell | The cell container to read. If null, we fetch from SG. |
subseg | If provided, run tower building only within this window. The tower container segmentation must match. |
Implements CaloTowerBuilderToolBase.
Definition at line 165 of file CaloTowerBuilderTool.cxx.
187 return StatusCode::SUCCESS;
215 return StatusCode::SUCCESS;
◆ 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
◆ getCells()
◆ initializeTool()
StatusCode CaloTowerBuilderTool::initializeTool |
( |
| ) |
|
|
overridevirtualinherited |
◆ 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()
static const InterfaceID& ICaloTowerBuilderToolBase::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ iterateFull()
◆ iterateSubSeg()
◆ 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.
◆ parseCalos()
std::vector< CaloCell_ID::SUBCALO > LArTowerBuilderTool::parseCalos |
( |
const std::vector< std::string > & |
includedCalos | ) |
const |
|
overrideprotectedvirtual |
Convert calorimeter strings to enums.
- Parameters
-
includedCalos | Property with calorimeter strings. |
Reimplemented from CaloTowerBuilderTool.
Definition at line 31 of file LArTowerBuilderTool.cxx.
35 std::vector<CaloCell_ID::SUBCALO>
indices;
37 for (
const std::string&
s : includedCalos) {
41 else if (
s ==
"LARHEC" ) {
44 else if (
s ==
"LARFCAL" ) {
45 ATH_MSG_INFO(
"use LArFCalTowerBuilderTool for the FCal - request ignored" );
◆ rebuildLookup()
StatusCode CaloTowerBuilderTool::rebuildLookup |
( |
const EventContext & |
ctx | ) |
|
|
privateinherited |
Rebuild the cell lookup table.
Definition at line 307 of file CaloTowerBuilderTool.cxx.
313 return StatusCode::SUCCESS;
316 return StatusCode::FAILURE;
◆ renounce()
◆ renounceArray()
◆ setCalos()
◆ setTowerSeg()
◆ 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.
◆ towerSeg()
◆ updateVHKA()
◆ m_caloIndices
◆ m_caloMgrKey
◆ m_cellContainerName
◆ m_cellStore
◆ m_cellStoreInit
std::atomic_bool CaloTowerBuilderTool::m_cellStoreInit {false} |
|
mutableprivateinherited |
◆ m_cellStoreMutex
std::mutex CaloTowerBuilderTool::m_cellStoreMutex |
|
mutableprivateinherited |
◆ m_detStore
◆ m_evtStore
◆ m_includedCalos
std::vector<std::string> CaloTowerBuilderTool::m_includedCalos |
|
privateinherited |
◆ m_theTowerSeg
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
Iterator over a rectangular window of towers.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::pair< long int, long int > indices
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
const_pointer getDataPtr() const
Return a pointer to the currently-referenced container object.
virtual double e() const override final
get energy (data member) (synonym to method energy()
index_t neta() const
Retrieve number of bins.
const std::string & key() const
Return the StoreGate ID for the referenced object.
void addUniqueCellNoKine(const CaloCellContainer *theContainer, index_type theIndex, double weight, size_t size_hint=0)
Add a cell (very fast)
index_t nphi() const
Retrieve number of bins.
virtual void setOwner(IDataHandleHolder *o)=0
cell_iterator firstCell() const
size_t itower() const
The tower index to which the iterator is referring.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual void renounce()=0
Data class for calorimeter cell towers.
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
cell_iterator lastCell() const
double etamax() const
Retrieve upper boundary value range.
const CaloTowerSeg & towerseg() const
Return a copy of the attached CaloTowerSeg.
Container class for CaloCell.
double etamin() const
Retrieve lower boundary value range.
This class provides the client interface for accessing the detector description information common to...
Data object for each calorimeter readout cell.
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual void setE(double theE)
set energy data member
tower_iterator towers() const
size_t size() const
The number of towers in this window.
#define ATLAS_THREAD_SAFE
const T * get(const ReadHandleKey< T > &key)
Convenience function to retrieve an object given a ReadHandleKey.
bool buildLookUp(const CaloDetDescrManager &theManager, const CaloTowerSeg &theTowerSeg, const std::vector< CaloCell_ID::SUBCALO > &theCalos)
setup trigger
void setCalo(const CaloCell_ID::SUBCALO &nCalo)
Adds a calorimeter index to the tower.
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
virtual double getBasicEnergy() const override
Basic signal getter.