Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-27 09:15:56

0001 /**
0002  *  @file   PandoraSDK/include/Objects/TrackState.h
0003  * 
0004  *  @brief  Header file for the track state class.
0005  * 
0006  *  $Log: $
0007  */
0008 #ifndef PANDORA_TRACK_STATE_H
0009 #define PANDORA_TRACK_STATE_H 1
0010 
0011 #include "Objects/CartesianVector.h"
0012 
0013 #include <iostream>
0014 
0015 namespace pandora
0016 {
0017 
0018 /**
0019  *  @brief  TrackState class
0020  */
0021 class TrackState
0022 {
0023 public:
0024     /**
0025      *  @brief  Constructor, from position and momentum components
0026      *
0027      *  @param  x the x position coordinate
0028      *  @param  y the y position coordinate
0029      *  @param  z the z position coordinate
0030      *  @param  px the momentum x component
0031      *  @param  py the momentum y component
0032      *  @param  pz the momentum z component
0033      */
0034     TrackState(float x, float y, float z, float px, float py, float pz);
0035 
0036     /**
0037      *  @brief  Constructor, from position and momentum vectors
0038      *
0039      *  @param  position the track position space pointe
0040      *  @param  momentum the momentum vector
0041      */
0042     TrackState(const CartesianVector &position, const CartesianVector &momentum);
0043 
0044     /**
0045      *  @brief  Get the track position vector
0046      * 
0047      *  @return the track position vector
0048      */
0049     const CartesianVector &GetPosition() const;
0050 
0051     /**
0052      *  @brief  Get the track momentum vector
0053      * 
0054      *  @return the track momentum vector
0055      */
0056     const CartesianVector &GetMomentum() const;
0057 
0058 private:
0059     CartesianVector   m_position;     ///< The position space point
0060     CartesianVector   m_momentum;     ///< The momentum vector
0061 };
0062 
0063 /**
0064  *  @brief  Operator to dump track state properties to an ostream
0065  *
0066  *  @param  stream the target ostream
0067  *  @param  trackState the track state
0068  */
0069 std::ostream &operator<<(std::ostream &stream, const TrackState &trackState);
0070 
0071 //------------------------------------------------------------------------------------------------------------------------------------------
0072 
0073 inline const CartesianVector &TrackState::GetPosition() const
0074 {
0075     return m_position;
0076 }
0077 
0078 //------------------------------------------------------------------------------------------------------------------------------------------
0079 
0080 inline const CartesianVector &TrackState::GetMomentum() const
0081 {
0082     return m_momentum;
0083 }
0084 
0085 } // namespace pandora
0086 
0087 #endif // #ifndef PANDORA_TRACK_STATE_H