5#ifndef SHIPDATA_SHIPPARTICLE_H_
6#define SHIPDATA_SHIPPARTICLE_H_
12#include "TDatabasePDG.h"
13#include "TLorentzVector.h"
22 ShipParticle(Int_t pdg, Int_t status, Int_t mother1, Int_t mother2,
23 Int_t daughter1, Int_t daughter2, Double_t px, Double_t py,
24 Double_t pz, Double_t etot, Double_t vx, Double_t vy,
25 Double_t vz, Double_t time);
26 ShipParticle(Int_t pdg, Int_t status, Int_t mother1, Int_t mother2,
27 Int_t daughter1, Int_t daughter2,
const TLorentzVector& p,
28 const TLorentzVector& v);
37 void Print(Int_t iTrack = 0)
const;
48 const char*
GetName()
const override;
51 Double_t
Px()
const {
return fPx; }
52 Double_t
Py()
const {
return fPy; }
53 Double_t
Pz()
const {
return fPz; }
65 Double_t
Vx()
const {
return fVx; }
66 Double_t
Vy()
const {
return fVy; }
67 Double_t
Vz()
const {
return fVz; }
68 Double_t
T()
const {
return fVt; }
78 void SetCovP(
const Double_t* covElements);
79 void SetCovP(
const std::array<Double_t, 10>& covElements) {
85 void SetCovV(
const Double_t* covElements);
86 void SetCovV(
const std::array<Double_t, 6>& covElements) {
const std::array< Double_t, 6 > & GetCovV() const
TLorentzVector GetMomentum() const
void Momentum(TLorentzVector &momentum) const
Int_t GetFirstDaughter() const
Int_t GetDaughter(Int_t i) const
void SetCovP(const Double_t *covElements)
ShipParticle & operator=(const ShipParticle &particle)=default
std::array< Double_t, 10 > fCovP
Int_t GetLastDaughter() const
Int_t GetSecondMother() const
Int_t GetMother(Int_t i) const
TVector3 GetVertex() const
const std::array< Double_t, 10 > & GetCovP() const
void ProductionVertex(TLorentzVector &vertex) const
void SetCovP(const std::array< Double_t, 10 > &covElements)
Int_t GetStatusCode() const
std::array< Double_t, 6 > fCovV
void SetCovV(const Double_t *covElements)
Int_t GetFirstMother() const
ShipParticle(const ShipParticle &particle)=default
ClassDefOverride(ShipParticle, 3)
void SetCovV(const std::array< Double_t, 6 > &covElements)
void Print(Int_t iTrack=0) const
const char * GetName() const override