12#ifndef EFLOWRECCLUSTER_H_
13#define EFLOWRECCLUSTER_H_
21#include "AthLinks/ElementLink.h"
67 bool isEOverPFail(
bool consistencySigmaCut,
bool useGoldenMode);
129 b->getCluster()->pt());
192 const xAOD::CaloCluster* thisCluster = std::as_const(*m_efRecCluster).getCluster();
194 return thisCluster->
size();
199 <<
"eflowMatchCluster ERROR: No valid link to xAOD::CaloCluster"
207 std::cerr <<
"eflowMatchCluster ERROR: No valid link to eflowRecCluster"
212 virtual const std::vector<double>&
cellEta()
const
219 virtual const std::vector<double>&
cellPhi()
const
230 std::vector<double> tmp_cellEta;
231 std::vector<double> tmp_cellPhi;
233 const xAOD::CaloCluster* thisCluster = std::as_const(*m_efRecCluster).getCluster();
239 for (; itCell != endCell; ++itCell) {
241 tmp_cellEta.push_back(thisCell->
eta());
242 tmp_cellPhi.push_back(thisCell->
phi());
246 <<
"eflowMatchCluster ERROR: No valid link to xAOD::CaloCluster"
250 std::cerr <<
"eflowMatchCluster ERROR: No valid link to eflowRecCluster"
Cached value with atomic update.
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
An STL vector of pointers that by default owns its pointed-to elements.
Data object for each calorimeter readout cell.
virtual double phi() const override final
get phi (through CaloDetDescrElement)
virtual double eta() const override final
get eta (through CaloDetDescrElement)
const_iterator to loop over cells belonging to a cluster
Bookkeeping of cells that make up a cluster Simplified replacement for CaloCellLink,...
const_iterator end() const
const end method
const_iterator begin() const
const begin method
Cached value with atomic update.
DataVector(SG::OwnershipPolicy ownPolicy=SG::OWN_ELEMENTS, SG::IndexTrackingPolicy trackIndices=SG::DEFAULT_TRACK_INDICES)
ElementLink implementation for ROOT usage.
This class, which inherits from the pure virtual ICluster, stores a pointer to an eflowRecCluster.
CxxUtils::CachedValue< std::vector< double > > m_cellEta
virtual double eta() const
void initCellPositions() const
double m_clusterEtaVariance
double m_clusterPhiVariance
virtual double phiMean() const
virtual ~eflowMatchCluster()
virtual void setCalVarianceStatus()
virtual const std::vector< double > & cellEta() const
virtual unsigned int nCells() const
eflowRecCluster * getEfRecCluster()
virtual void phiMean(double clusterPhiMean)
virtual double phi() const
CxxUtils::CachedValue< std::vector< double > > m_cellPhi
virtual double etaMean() const
virtual double etaVariance() const
const eflowRecCluster * getEfRecCluster() const
eflowMatchCluster(eflowRecCluster *efRecCluster)
virtual const std::vector< double > & cellPhi() const
virtual void etaVariance(double clusterEtaVariance)
virtual void phiVariance(double clusterPhiVariance)
virtual double phiVariance() const
eflowRecCluster * m_efRecCluster
virtual bool calVarianceStatus() const
virtual void etaMean(double clusterEtaMean)
bool operator()(const eflowRecCluster *a, const eflowRecCluster *b)
This class extends the information about a xAOD::CaloCluster.
eflowRecCluster & operator=(const eflowRecCluster &originalEflowRecCluster)=delete
ElementLink< xAOD::CaloClusterContainer > m_originalClusElementLink
eflowRecCluster(const ElementLink< xAOD::CaloClusterContainer > &clusElementLink, xAOD::CaloClusterContainer &newClusContainer)
std::unique_ptr< eflowMatchCluster > m_matchCluster
bool isEOverPFail(bool consistencySigmaCut, bool useGoldenMode)
double getVarianceOfSumExpectedEnergy()
void addTrackMatch(eflowTrackClusterLink *trackMatch)
const xAOD::CaloCluster * getCluster() const
void setClusterId(int clusterId)
ElementLink< xAOD::CaloClusterContainer > getOriginalClusElementLink() const
virtual ~eflowRecCluster()
eflowMatchCluster * getMatchCluster() const
xAOD::CaloCluster * getCluster()
ElementLink< xAOD::CaloClusterContainer > getClusElementLink() const
int getClusterType() const
Specifies if we have a cluster mainly in ECAL, HCAL or FCAL.
CalorimeterType
ENUM that defines calorimeter regions as ECAL, HCAL or FCAL.
std::map< IdentifierHash, double > m_cellsWeightMap
std::vector< eflowTrackClusterLink * > m_trackMatches
double getSumExpectedEnergy()
xAOD::CaloCluster * m_cluster
ElementLink< xAOD::CaloClusterContainer > m_clusElementLink
const std::vector< eflowTrackClusterLink * > & getTrackMatches() const
void setCellsWeight(std::map< IdentifierHash, double > &&cellsWeight)
const std::map< IdentifierHash, double > & getCellsWeight() const
Stores pointers to an eflowRecTrack and an eflowRecCluster.
const CaloClusterCellLink * getCellLinks() const
Get a pointer to the CaloClusterCellLink object (const version)
size_t size() const
size method (forwarded from CaloClusterCellLink obj)
Workaround x86 precision issues for FP inequality comparisons.
bool greater(double a, double b)
Compare two FP numbers, working around x87 precision issues.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.