9#define PANDORA_TRACK_H 1
17template<
typename T>
class InputObjectManager;
18template<
typename T,
typename S>
class PandoraObjectFactory;
Header file for pandora object creation classes.
Header file defining status codes and relevant preprocessor macros.
PandoraObjectFactory class.
bool CanFormClusterlessPfo() const
Whether track should form a pfo, even if it has no associated cluster.
MCParticleWeightMap m_mcParticleWeightMap
The mc particle weight map.
float GetZ0() const
Get the z coordinate at the 2D distance of closest approach.
const TrackState & GetTrackStateAtStart() const
Get the track state at the start of the track.
StatusCode SetAssociatedCluster(const Cluster *const pCluster)
Set the cluster associated with the track.
void SetMCParticleWeightMap(const MCParticleWeightMap &mcParticleWeightMap)
Set the mc particles associated with the track.
float GetEnergyAtDca() const
Get the track energy at the 2D distance of closest approach.
const int m_charge
The charge of the tracked particle.
bool ReachesCalorimeter() const
Whether the track reaches the calorimeter.
const float m_d0
The 2D impact parameter wrt (0,0), units mm.
bool IsProjectedToEndCap() const
Whether the calorimeter projection is to an endcap.
bool HasAssociatedCluster() const
Whether the track has an associated cluster.
const void * m_pParentAddress
The address of the parent track in the user framework.
StatusCode AddSibling(const Track *const pTrack)
Add a sibling track to the sibling track list.
const bool m_isProjectedToEndCap
Whether the calorimeter projection is to an endcap.
bool operator<(const Track &rhs) const
operator< sorting by position at calorimeter, then energy at the 2D distance of closest approach
const CartesianVector & GetMomentumAtDca() const
Get the track momentum at the 2D distance of closest approach.
int GetParticleId() const
Get the PDG code of the tracked particle.
const float m_energyAtDca
The track energy at the 2D distance of closest approach, units GeV.
const TrackState & GetTrackStateAtEnd() const
Get the track state at the end of the track.
const float m_timeAtCalorimeter
The (sometimes projected) time at the calorimeter, units ns.
const Cluster * GetAssociatedCluster() const
Get address of the cluster associated with the track.
const float m_z0
The z coordinate at the 2D distance of closest approach, units mm.
const CartesianVector m_momentumAtDca
The momentum vector at the 2D distance of closest approach, units GeV.
const TrackList & GetParentList() const
Get the parent track list.
void RemoveMCParticles()
Remove the mc particles associated with the track.
StatusCode AddDaughter(const Track *const pTrack)
Add a daughter track to the daughter track list.
bool IsAvailable() const
Whether the track is available to be added to a particle flow object.
const TrackState m_trackStateAtStart
The track state at the start of the track, units mm and GeV.
const bool m_canFormPfo
Whether track should form a pfo, if it has an associated cluster.
virtual ~Track()
Destructor.
float GetTimeAtCalorimeter() const
Get the (sometimes projected) time at the calorimeter.
void SetAvailability(bool isAvailable)
Set availability of track to be added to a particle flow object.
StatusCode RemoveAssociatedCluster(const Cluster *const pCluster)
Remove the association with a cluster.
const TrackState m_trackStateAtCalorimeter
The (sometimes projected) track state at the calorimeter, units mm and GeV.
bool CanFormPfo() const
Whether track should form a pfo, if it has an associated cluster.
int GetCharge() const
Get the charge of the tracked particle.
const float m_mass
The mass of the tracked particle, units GeV.
TrackList m_siblingTrackList
The list of sibling track addresses.
float GetD0() const
Get the 2D impact parameter wrt (0,0)
const TrackState m_trackStateAtEnd
The track state at the end of the track, units mm and GeV.
const int m_particleId
The PDG code of the tracked particle.
const TrackList & GetDaughterList() const
Get the daughter track list.
StatusCode AddParent(const Track *const pTrack)
Add a parent track to the parent track list.
TrackList m_parentTrackList
The list of parent track addresses.
const TrackState & GetTrackStateAtCalorimeter() const
Get the (sometimes projected) track state at the calorimeter.
float GetMass() const
Get the mass of the tracked particle, units GeV.
const MCParticleWeightMap & GetMCParticleWeightMap() const
Get mc particle weight map for the track.
const TrackList & GetSiblingList() const
Get the sibling track list.
const void * GetParentAddress() const
Get the address of the parent track in the user framework.
bool m_isAvailable
Whether the track is available to be added to a particle flow object.
TrackList m_daughterTrackList
The list of daughter track addresses.
const Cluster * m_pAssociatedCluster
The address of an associated cluster.
const bool m_canFormClusterlessPfo
Whether track should form a pfo, even if it has no associated cluster.
const bool m_reachesCalorimeter
Whether the track actually reaches the calorimeter.
std::unordered_map< const MCParticle *, float > MCParticleWeightMap
MANAGED_CONTAINER< const Track * > TrackList
StatusCode
The StatusCode enum.