|
ATLAS Offline Software
|
special tower builder for FCal
More...
#include <LArFCalTowerBuilderTool.h>
|
| LArFCalTowerBuilderTool (const LArFCalTowerBuilderTool &)=delete |
|
LArFCalTowerBuilderTool & | operator= (const LArFCalTowerBuilderTool &)=delete |
|
| LArFCalTowerBuilderTool (const std::string &name, const std::string &type, const IInterface *parent) |
| AlgTool constructor. More...
|
|
virtual | ~LArFCalTowerBuilderTool () |
|
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 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 |
|
special tower builder for FCal
LArFCalTowerBuilderTool is FCal specific. It first produces "mini-cells", which are FCal cell fragments defining the overlap between the (eta,phi) tower grid and the rectangular FCal cell. These mini-cells are then collected onto the tower grid.
- Author
- Peter Loch loch@.nosp@m.phsy.nosp@m.ics.a.nosp@m.rizo.nosp@m.na.ed.nosp@m.u
- Date
- April 30, 2004 - first implementation
Definition at line 35 of file LArFCalTowerBuilderTool.h.
◆ StoreGateSvc_t
◆ tower_iterator
◆ LArFCalTowerBuilderTool() [1/2]
◆ LArFCalTowerBuilderTool() [2/2]
LArFCalTowerBuilderTool::LArFCalTowerBuilderTool |
( |
const std::string & |
name, |
|
|
const std::string & |
type, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~LArFCalTowerBuilderTool()
LArFCalTowerBuilderTool::~LArFCalTowerBuilderTool |
( |
| ) |
|
|
virtual |
◆ addTower()
Definition at line 62 of file LArFCalTowerBuilderTool.cxx.
72 for (; firstC != lastC; ++firstC) {
74 unsigned int ci = firstC->first;
75 double weightC = firstC->second;
76 int cndx =
cells->findIndex(ci);
79 cellPtr = (*cells)[cndx];
82 wsumE += weightC * cellPtr->
e();
◆ ATLAS_NOT_THREAD_SAFE()
virtual StatusCode initialize CaloTowerBuilderToolBase::ATLAS_NOT_THREAD_SAFE |
( |
| ) |
|
|
overridevirtualinherited |
◆ 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 189 of file LArFCalTowerBuilderTool.cxx.
197 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 135 of file LArFCalTowerBuilderTool.cxx.
147 return StatusCode::FAILURE;
154 return StatusCode::SUCCESS;
160 ATH_MSG_DEBUG(
"no FCal cells in CaloCellContainer, skip tool!" );
161 return StatusCode::SUCCESS;
177 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 LArFCalTowerBuilderTool::initializeTool |
( |
| ) |
|
|
overrideprivatevirtual |
◆ 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()
◆ operator=()
◆ 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.
◆ rebuildLookup()
StatusCode LArFCalTowerBuilderTool::rebuildLookup |
( |
const EventContext & |
ctx | ) |
|
|
private |
Rebuild the cell lookup table.
Definition at line 205 of file LArFCalTowerBuilderTool.cxx.
216 return StatusCode::SUCCESS;
218 return StatusCode::FAILURE;
◆ renounce()
◆ renounceArray()
◆ runTimeInit()
void LArFCalTowerBuilderTool::runTimeInit |
( |
const EventContext & |
ctx | ) |
const |
|
private |
Definition at line 127 of file LArFCalTowerBuilderTool.cxx.
130 if( thisNC->rebuildLookup(ctx)!=StatusCode::SUCCESS )
131 throw std::runtime_error(
"LArFCalTowerBuilderTool::runTimeInit rebuildLookup table failed");
◆ 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_caloIndex
◆ m_caloMgrKey
◆ m_cellContainerName
◆ m_cellIdHelper
◆ m_cellStore
◆ m_detStore
◆ m_evtStore
◆ m_larFCalId
◆ m_minEt
double LArFCalTowerBuilderTool::m_minEt |
|
private |
◆ m_onceFlag
std::once_flag LArFCalTowerBuilderTool::m_onceFlag |
|
mutableprivate |
◆ m_theTowerSeg
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
tower_data_t::const_iterator cell_iterator
Iterator over a rectangular window of towers.
size_t size() const
size of internal data store
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
tower_iterator towers() const
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.
cell_iterator lastCellofTower(tower_iterator t) const
const std::string & key() const
Return the StoreGate ID for the referenced object.
cell_iterator firstCellofTower(tower_iterator t) const
iterators: cells
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.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
Storable container class for CaloTower.
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
double etamax() const
Retrieve upper boundary value range.
const CaloTowerSeg & towerseg() const
Return a copy of the attached CaloTowerSeg.
unsigned int towerSize(tower_iterator t) const
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
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.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
const LArFCAL_ID * fcal_idHelper() const
access to FCAL idHelper
bool buildLookUp(const CaloCell_ID &cellIdHelper, const CaloDetDescrManager &theManager, CaloTowerContainer *theTowers)
setup trigger
virtual double getBasicEnergy() const override
Basic signal getter.