12#ifndef EFLOWRECTRACK_H_
13#define EFLOWRECTRACK_H_
23#include "GaudiKernel/MsgStream.h"
24#include "GaudiKernel/ToolHandle.h"
28#include "AthLinks/ElementLink.h"
49 const ToolHandle<eflowTrackExtrapolatorBaseAlgTool>& theTrackExtrapolatorTool);
161 b->getTrack()->pt());
177 std::cerr <<
"eflowRecMatchTrack ERROR: Invalid pointer to eflowRecTrack " << std::endl;
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.
DataVector(SG::OwnershipPolicy ownPolicy=SG::OWN_ELEMENTS, SG::IndexTrackingPolicy trackIndices=SG::DEFAULT_TRACK_INDICES)
ElementLink implementation for ROOT usage.
virtual eflowEtaPhiPosition etaPhiInLayer(PFMatch::LayerType layer) const
eflowRecMatchTrack(const eflowRecTrack *efRecTrack)
const eflowRecTrack * m_efRecTrack
virtual ~eflowRecMatchTrack()
bool operator()(const eflowRecTrack *a, const eflowRecTrack *b)
This class extends the information about a xAOD::Track.
double getEExpect() const
std::vector< int > m_layerCellOrderVector
void addClusterMatch(eflowTrackClusterLink *clusterMatch)
void setEExpect(double eExpect, double varEExpect)
eflowRecTrack & operator=(const eflowRecTrack &originalEflowRecTrack)
void setLayerHED(int layerHED)
const std::vector< float > & getDRPrimes() const
std::vector< float > m_avgEdensityCellOrderVector
std::map< std::string, std::vector< eflowTrackClusterLink * > > m_alternativeClusterMatches
const std::vector< eflowTrackClusterLink * > & getClusterMatches() const
const std::vector< float > & getRadiusCellOrderVector() const
ElementLink< xAOD::TrackParticleContainer > m_trackElemLink
void setRadiusCellOrderVector(const std::vector< float > &radiusToStoreVector)
std::vector< double > m_caloDepthArray
std::vector< std::pair< ElementLink< CaloCellContainer >, double > > m_subtractedCells
const std::vector< double > & getCaloDepthArray() const
bool isSubtracted() const
void setHasBin(bool hasBin)
const xAOD::TrackParticle * getTrack() const
std::unique_ptr< eflowTrackCaloPoints > m_trackCaloPoints
const eflowTrackCaloPoints & getTrackCaloPoints() const
const std::vector< int > & getLayerCellOrderVector() const
bool m_isRecovered
Tells us whether this track underwent split shower revovery.
void setpull15(double pull15)
const std::vector< std::pair< ElementLink< CaloCellContainer >, double > > & getSubtractedCaloCells() const
void setIsInDenseEnvironment()
void setLayerCellOrderVector(const std::vector< int > &layerToStoreVector)
eflowRingSubtractionManager & getCellSubtractionManager()
void setAvgEDensityCellOrderVector(const std::vector< float > &avgEdensityToStoreVector)
void addDeltaRPrime(const float &dRPrime)
std::map< Identifier, double > m_cellTruthEnergyStore
void addSubtractedCaloCell(ElementLink< CaloCellContainer > theCellLink, const double &weight)
void insertTruthEnergyPair(const CaloCell *cell, double truthEnergy)
std::vector< float > m_radiusCellOrderVector
double getCellTruthEnergy(const CaloCell *cell) const
bool isInDenseEnvironment() const
std::vector< float > m_deltaRPrimes
List of distance measurements between track and cluster used in first pass matching - i....
eflowRecTrack(const ElementLink< xAOD::TrackParticleContainer > &trackElemLink, const ToolHandle< eflowTrackExtrapolatorBaseAlgTool > &theTrackExtrapolatorTool)
std::vector< eflowTrackClusterLink * > m_clusterMatches
void setCaloDepthArray(const double *depthArray)
eflowRingSubtractionManager m_ringSubtractionManager
void clearClusterMatches()
double getVarEExpect() const
std::vector< std::pair< const CaloCell *, double > > m_cellTruthEnergyList
const std::vector< float > & getAvgEDensityCellOrderVector() const
const std::vector< eflowTrackClusterLink * > * getAlternativeClusterMatches(const std::string &key) const
bool m_isInDenseEnvironment
ElementLink< xAOD::TrackParticleContainer > getTrackElemLink() const
const xAOD::TrackParticle * m_track
void setTrackId(int trackId)
void addAlternativeClusterMatch(eflowTrackClusterLink *clusterMatch, const std::string &key)
This stores information, a rank and ring thickness, about cell rings in an ordered way.
This class stores a map of calorimeter layers and track parameters (the result of the track extrapola...
Stores pointers to an eflowRecTrack and an eflowRecCluster.
Workaround x86 precision issues for FP inequality comparisons.
bool greater(double a, double b)
Compare two FP numbers, working around x87 precision issues.
eflowCalo::LAYER LayerType
TrackParticle_v1 TrackParticle
Reference the current persistent version: