File indexing completed on 2025-12-10 10:18:06
0001 #pragma once
0002
0003 #include <TObject.h>
0004 #include <TVector3.h>
0005
0006 namespace IRT2 {
0007
0008
0009 class TransientParticle: public TObject {
0010 public:
0011 TransientParticle(int pdg, bool primary = true): m_PDG(pdg), m_VertexTime(0.0),
0012 m_PrimaryParticle(primary) {};
0013 ~TransientParticle() {};
0014
0015 virtual bool IsCharged( void ) const = 0;
0016 int GetPDG( void ) const { return m_PDG; };
0017
0018 inline void SetVertexPosition(const TVector3 &position) { m_VertexPosition = position; };
0019 inline void SetVertexMomentum(const TVector3 &momentum) { m_VertexMomentum = momentum; };
0020 inline void SetVertexTime(double value) { m_VertexTime = value; };
0021 inline const TVector3 &GetVertexPosition( void ) const { return m_VertexPosition; };
0022 inline const TVector3 &GetVertexMomentum( void ) const { return m_VertexMomentum; };
0023 inline double GetVertexTime( void ) const { return m_VertexTime; };
0024 inline bool IsPrimary( void ) const { return m_PrimaryParticle; };
0025
0026 private:
0027 int m_PDG;
0028
0029 TVector3 m_VertexPosition, m_VertexMomentum;
0030
0031
0032 double m_VertexTime;
0033
0034 bool m_PrimaryParticle;
0035
0036 #ifndef DISABLE_ROOT_IO
0037 ClassDef(TransientParticle, 4);
0038 #endif
0039 };
0040
0041 }