|
ATLAS Offline Software
|
Go to the documentation of this file.
28 return StatusCode::SUCCESS;
40 if (!caloClustersReadHandle.
isValid()){
41 ATH_MSG_WARNING(
" Invalid ReadHandle for xAOD::CaloCluster with key: " << caloClustersReadHandle.
key());
42 return StatusCode::SUCCESS;
48 calclusters = caloCalClustersReadHandle.
get();
55 unsigned int nClusters = caloClustersReadHandle->
size();
56 for (
unsigned int iCluster = 0; iCluster < nClusters; ++iCluster) {
61 std::map<IdentifierHash,double> cellsWeightMap;
62 retrieveLCCalCellWeight(caloClustersReadHandle->
at(iCluster)->e(), iCluster, cellsWeightMap, *calclusters,**caloMgrHandle);
70 std::string::size_type
pos = decorHandleName.find(
".");
71 std::string decorName = decorHandleName.substr(
pos+1);
74 accessor(*theCaloClusterContainer[iCluster]) =
accessor(*caloClustersReadHandle->
at(iCluster));
78 theEFlowRecClusterContainer.
push_back(std::move(thisEFRecCluster));
81 return StatusCode::SUCCESS;
85 return StatusCode::SUCCESS;
91 const unsigned&
index,
92 std::map<IdentifierHash, double>& cellsWeight,
102 if (matchedCalCluster){
103 if (!(fabs(
energy - matchedCalCluster->
rawE()) < 0.001)) {
104 matchedCalCluster =
nullptr;
105 for (
const auto *iCalCalCluster : caloCalClustersContainer) {
106 matchedCalCluster = iCalCalCluster;
107 if (fabs(
energy - matchedCalCluster->
rawE()) < 0.001) {
111 if (!matchedCalCluster)
ATH_MSG_WARNING(
"Invalid pointer to matched cluster - failed to find cluster match");
113 if (not matchedCalCluster){
114 throw std::runtime_error(
"matchedCluster is a null pointer in PFClusterSelectorTool::retrieveLCCalCellWeight");
120 for (; itCell != endCell; ++itCell) {
124 cellsWeight[myHashId] = itCell.
weight();
126 }
else ATH_MSG_WARNING(
"Invalid pointer to matched cluster - could not look up local hadron cell weights");
IdentifierHash calo_cell_hash(const Identifier cellId) const
create hash id from 'global' cell id
Helper class to provide type-safe access to aux data.
const std::string & key() const
Return the StoreGate ID for the referenced object.
weight_t weight() const
Accessor for weight associated to this cell.
Description of a calorimeter cluster.
::StatusCode StatusCode
StatusCode definition for legacy code.
const_pointer_type get() const
Dereference the pointer, but don't cache anything.
void setCellsWeight(std::map< IdentifierHash, double > &&cellsWeight)
Helper class for offline cell identifiers.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
ElementLink implementation for ROOT usage.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
StatusCode initialize(bool used=true)
Identifier ID() const
get ID (from cached data member) non-virtual and inline for fast access
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.
const AccessorWrapper< T > * accessor(xAOD::JetAttribute::AttributeID id)
Returns an attribute accessor corresponding to an AttributeID.
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)
const CaloCell_ID * getCaloCell_ID() const
get calo cell ID helper
const T * at(size_type n) const
Access an element, as an rvalue.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
const_iterator to loop over cells belonging to a cluster
size_type size() const noexcept
Returns the number of elements in the collection.
void setClusterId(int clusterId)