13 #ifndef ROOT_TMCParticleStatus 
   14 #define ROOT_TMCParticleStatus 
   28 struct TMCParticleStatus {
 
   31    TMCParticleStatus() = 
default;
 
   34    void InitFromParticle(
const TParticle *particle)
 
   36       particle->ProductionVertex(fPosition);
 
   37       particle->Momentum(fMomentum);
 
   38       particle->GetPolarisation(fPolarization);
 
   39       fWeight = particle->GetWeight();
 
   42    virtual ~TMCParticleStatus() = 
default;
 
   51       ::Info(
"Print", 
"Status of track");
 
   53                 << 
"ID: " << fId << 
"\n" 
   55                 << 
"parentID: " << fParentId << 
"\n" 
   57                 << 
"weight: " << fWeight << 
"\n" 
   59                 << 
"geo state index: " << fGeoStateIndex << 
"\n" 
   61                 << 
"step number: " << fStepNumber << 
"\n" 
   63                 << 
"track length: " << fTrackLength << 
"\n" 
   65                 << 
"position" << std::endl;
 
   68                 << 
"momentum" << std::endl;
 
   71                 << 
"polarization" << std::endl;
 
   72       fPolarization.Print();
 
   76    Int_t fStepNumber = 0;
 
   78    Double_t fTrackLength = 0.;
 
   80    TLorentzVector fPosition;
 
   82    TLorentzVector fMomentum;
 
   84    TVector3 fPolarization;
 
   86    Double_t fWeight = 1.;
 
   88    UInt_t fGeoStateIndex = 0;
 
   98    TMCParticleStatus(
const TMCParticleStatus &);
 
  100    TMCParticleStatus &operator=(
const TMCParticleStatus &);
 
  102    ClassDef(TMCParticleStatus, 1)