GENIEGenerator
Loading...
Searching...
No Matches
genie::GHepParticle Class Reference

STDHEP-like event record entry that can fit a particle or a nucleus. More...

#include <GHepParticle.h>

Inheritance diagram for genie::GHepParticle:
[legend]
Collaboration diagram for genie::GHepParticle:
[legend]

Public Member Functions

 GHepParticle ()
 GHepParticle (const GHepParticle &particle)
 GHepParticle (int pdg, GHepStatus_t status, int mother1, int mother2, int daughter1, int daughter2, const TLorentzVector &p, const TLorentzVector &v)
 GHepParticle (int pdg, GHepStatus_t status, int mother1, int mother2, int daughter1, int daughter2, double px, double py, double pz, double E, double x, double y, double z, double t)
 GHepParticle (TRootIOCtor *)
 ~GHepParticle ()
int Pdg (void) const
GHepStatus_t Status (void) const
int RescatterCode (void) const
int FirstMother (void) const
int LastMother (void) const
int FirstDaughter (void) const
int LastDaughter (void) const
bool HasDaughters (void) const
bool IsBound (void) const
string Name (void) const
 Name that corresponds to the PDG code.
double Mass (void) const
 Mass that corresponds to the PDG code.
double Charge (void) const
 Chrg that corresponds to the PDG code.
const TLorentzVector * P4 (void) const
const TLorentzVector * X4 (void) const
TLorentzVector * P4 (void)
TLorentzVector * X4 (void)
TLorentzVector * GetP4 (void) const
TLorentzVector * GetX4 (void) const
double Px (void) const
 Get Px.
double Py (void) const
 Get Py.
double Pz (void) const
 Get Pz.
double E (void) const
 Get energy.
double Energy (void) const
 Get energy.
double KinE (bool mass_from_pdg=false) const
 Get kinetic energy.
double Vx (void) const
 Get production x.
double Vy (void) const
 Get production y.
double Vz (void) const
 Get production z.
double Vt (void) const
 Get production time.
double RemovalEnergy (void) const
 Get removal energy.
bool Compare (const GHepParticle *p) const
bool ComparePdgCodes (const GHepParticle *p) const
bool CompareStatusCodes (const GHepParticle *p) const
bool CompareFamily (const GHepParticle *p) const
bool CompareMomentum (const GHepParticle *p) const
bool IsOnMassShell (void) const
bool IsOffMassShell (void) const
int Z (void) const
int A (void) const
double PolzPolarAngle (void) const
double PolzAzimuthAngle (void) const
bool PolzIsSet (void) const
void GetPolarization (TVector3 &polz)
void SetPdgCode (int c)
void SetStatus (GHepStatus_t s)
void SetRescatterCode (int code)
void SetFirstMother (int m)
void SetLastMother (int m)
void SetFirstDaughter (int d)
void SetLastDaughter (int d)
void SetMomentum (const TLorentzVector &p4)
void SetPosition (const TLorentzVector &v4)
void SetMomentum (double px, double py, double pz, double E)
void SetPosition (double x, double y, double z, double t)
void SetEnergy (double E)
void SetPx (double px)
void SetPy (double py)
void SetPz (double pz)
void SetPolarization (double theta, double phi)
void SetPolarization (const TVector3 &polz)
void SetBound (bool bound)
void SetRemovalEnergy (double Erm)
void CleanUp (void)
void Reset (void)
void Clear (Option_t *option)
void Copy (const GHepParticle &particle)
void Print (ostream &stream) const
void Print (Option_t *opt) const
bool operator== (const GHepParticle &p) const
GHepParticleoperator= (const GHepParticle &p)

Private Member Functions

void Init (void)
void AssertIsKnownParticle (void) const

Private Attributes

int fPdgCode
 particle PDG code
GHepStatus_t fStatus
 particle status
int fRescatterCode
 rescattering code
int fFirstMother
 first mother idx
int fLastMother
 last mother idx
int fFirstDaughter
 first daughter idx
int fLastDaughter
 last daughter idx
TLorentzVector * fP4
 momentum 4-vector (GeV)
TLorentzVector * fX4
 position 4-vector (in the target nucleus coordinate system / x,y,z in fm / t from the moment of the primary interaction in ys(yocto second = 10^-24 s)
double fPolzTheta
 polar polarization angle (rad)
double fPolzPhi
 azimuthal polarization angle (rad)
double fRemovalEnergy
 removal energy for bound nucleons (GeV)
bool fIsBound
 'is it a bound particle?' flag

Friends

ostream & operator<< (ostream &stream, const GHepParticle &p)

Detailed Description

STDHEP-like event record entry that can fit a particle or a nucleus.

Author
Costas Andreopoulos <c.andreopoulos \at cern.ch> University of Liverpool
Created:\n November 18, 2004
License:\n Copyright (c) 2003-2025, The GENIE Collaboration
For the full text of the license visit http://copyright.genie-mc.org

Definition at line 39 of file GHepParticle.h.

Constructor & Destructor Documentation

◆ GHepParticle() [1/5]

GHepParticle::GHepParticle ( )

Definition at line 50 of file GHepParticle.cxx.

50 :
51TObject()
52{
53 this->Init();
54}

References Init().

Referenced by Compare(), CompareFamily(), CompareMomentum(), ComparePdgCodes(), CompareStatusCodes(), Copy(), GHepParticle(), operator<<, operator=(), and operator==().

◆ GHepParticle() [2/5]

GHepParticle::GHepParticle ( const GHepParticle & particle)

Definition at line 104 of file GHepParticle.cxx.

104 :
105TObject()
106{
107 this->Init();
108 this->Copy(particle);
109}
void Copy(const GHepParticle &particle)

References Copy(), GHepParticle(), and Init().

◆ GHepParticle() [3/5]

GHepParticle::GHepParticle ( int pdg,
GHepStatus_t status,
int mother1,
int mother2,
int daughter1,
int daughter2,
const TLorentzVector & p,
const TLorentzVector & v )

Definition at line 57 of file GHepParticle.cxx.

59 :
60TObject(),
61fStatus(status),
62fFirstMother(mother1),
63fLastMother(mother2),
64fFirstDaughter(daughter1),
65fLastDaughter(daughter2)
66{
67 this->SetPdgCode(pdg);
68
69 fP4 = new TLorentzVector(p);
70 fX4 = new TLorentzVector(v);
71
72 fRescatterCode = -1;
73 fPolzTheta = -999;
74 fPolzPhi = -999;
75 fIsBound = false;
76 fRemovalEnergy = 0.;
77}
GHepStatus_t fStatus
particle status
double fPolzPhi
azimuthal polarization angle (rad)
int fLastDaughter
last daughter idx
double fPolzTheta
polar polarization angle (rad)
int fFirstDaughter
first daughter idx
bool fIsBound
'is it a bound particle?' flag
TLorentzVector * fP4
momentum 4-vector (GeV)
TLorentzVector * fX4
position 4-vector (in the target nucleus coordinate system / x,y,z in fm / t from the moment of the p...
int fFirstMother
first mother idx
int fLastMother
last mother idx
double fRemovalEnergy
removal energy for bound nucleons (GeV)
int fRescatterCode
rescattering code

References fFirstDaughter, fFirstMother, fIsBound, fLastDaughter, fLastMother, fP4, fPolzPhi, fPolzTheta, fRemovalEnergy, fRescatterCode, fStatus, fX4, and SetPdgCode().

◆ GHepParticle() [4/5]

GHepParticle::GHepParticle ( int pdg,
GHepStatus_t status,
int mother1,
int mother2,
int daughter1,
int daughter2,
double px,
double py,
double pz,
double E,
double x,
double y,
double z,
double t )

Definition at line 80 of file GHepParticle.cxx.

83 :
84TObject(),
85fStatus(status),
86fFirstMother(mother1),
87fLastMother(mother2),
88fFirstDaughter(daughter1),
89fLastDaughter(daughter2)
90{
91 this->SetPdgCode(pdg);
92
93 fP4 = new TLorentzVector(px,py,pz,En);
94 fX4 = new TLorentzVector(x,y,z,t);
95
96 fRescatterCode = -1;
97 fPolzTheta = -999;
98 fPolzPhi = -999;
99 fIsBound = false;
100 fRemovalEnergy = 0.;
101}

References fFirstDaughter, fFirstMother, fIsBound, fLastDaughter, fLastMother, fP4, fPolzPhi, fPolzTheta, fRemovalEnergy, fRescatterCode, fStatus, fX4, and SetPdgCode().

◆ GHepParticle() [5/5]

GHepParticle::GHepParticle ( TRootIOCtor * )

Definition at line 111 of file GHepParticle.cxx.

111 :
112TObject(),
113fPdgCode(0),
116fFirstMother(-1),
117fLastMother(-1),
119fLastDaughter(-1),
120fP4(0),
121fX4(0),
122fPolzTheta(-999.),
123fPolzPhi(-999.),
125fIsBound(false)
126{
127
128}
int fPdgCode
particle PDG code
@ kIStUndefined
Definition GHepStatus.h:28

References fFirstDaughter, fFirstMother, fIsBound, fLastDaughter, fLastMother, fP4, fPdgCode, fPolzPhi, fPolzTheta, fRemovalEnergy, fRescatterCode, fStatus, fX4, and genie::kIStUndefined.

◆ ~GHepParticle()

GHepParticle::~GHepParticle ( )

Definition at line 130 of file GHepParticle.cxx.

131{
132 this->CleanUp();
133}

References CleanUp().

Member Function Documentation

◆ A()

int GHepParticle::A ( void ) const

Definition at line 184 of file GHepParticle.cxx.

185{
186// Decoding A from the PDG code
187
188 if(!pdg::IsIon(fPdgCode))
189 return -1;
190 else
192}
bool IsIon(int pdgc)
Definition PDGUtils.cxx:42
int IonPdgCodeToA(int pdgc)
Definition PDGUtils.cxx:63

References fPdgCode, genie::pdg::IonPdgCodeToA(), and genie::pdg::IsIon().

Referenced by genie::DMELEventGenerator::AddTargetNucleusRemnant(), genie::FermiMover::AddTargetNucleusRemnant(), genie::HadronicSystemGenerator::AddTargetNucleusRemnant(), genie::QELEventGenerator::AddTargetNucleusRemnant(), genie::QELEventGeneratorSM::AddTargetNucleusRemnant(), genie::QELEventGeneratorSuSA::AddTargetNucleusRemnant(), genie::AMNuGammaGenerator::AddTargetRemnant(), genie::MECGenerator::AddTargetRemnant(), genie::OutgoingDarkGenerator::AddToEventRecord(), genie::PrimaryLeptonGenerator::AddToEventRecord(), CheckForNumFinStateNucleonsInconsistentWithTarget(), CheckVertexDistribution(), ConvertToGHad(), genie::masterclass::MCTruthDisplay::DrawDiagram(), genie::HAIntranuke2018::ElasHA(), genie::HAIntranuke2025::ElasHA(), genie::HAIntranuke::ElasHA(), genie::NucleonDecayPrimaryVtxGenerator::GenerateDecayedNucleonPosition(), genie::NNBarOscPrimaryVtxGenerator::GenerateFermiMomentum(), genie::NucleonDecayPrimaryVtxGenerator::GenerateFermiMomentum(), genie::NNBarOscPrimaryVtxGenerator::GenerateOscillatingNeutronPosition(), genie::FermiMover::KickHitNucleon(), genie::DMELEventGenerator::ProcessEventRecord(), genie::INukeDeltaPropg::ProcessEventRecord(), genie::NucBindEnergyAggregator::ProcessEventRecord(), genie::QELEventGenerator::ProcessEventRecord(), genie::VertexGenerator::ProcessEventRecord(), genie::Intranuke2018::SetTrackingRadius(), genie::Intranuke2025::SetTrackingRadius(), genie::Intranuke::SetTrackingRadius(), genie::DISHadronicSystemGenerator::SimulateFormationZone(), genie::Intranuke2018::TransportHadrons(), genie::Intranuke2025::TransportHadrons(), and genie::Intranuke::TransportHadrons().

◆ AssertIsKnownParticle()

void GHepParticle::AssertIsKnownParticle ( void ) const
private

Definition at line 535 of file GHepParticle.cxx.

536{
537 TParticlePDG * p = PDGLibrary::Instance()->Find(fPdgCode);
538 if(!p) {
539 LOG("GHepParticle", pFATAL)
540 << "\n** You are attempting to insert particle with PDG code = "
541 << fPdgCode << " into the event record."
542 << "\n** This particle can not be found in "
543 << "$GENIE/data/evgen/catalogues/pdg/genie_pdg_table.txt";
544 gAbortingInErr = true;
545 exit(1);
546 }
547}
#define pFATAL
Definition Messenger.h:56
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Definition Messenger.h:96
static PDGLibrary * Instance(void)
TParticlePDG * Find(int pdgc, bool must_exist=true)
bool gAbortingInErr
Definition Messenger.cxx:34

References genie::PDGLibrary::Find(), fPdgCode, genie::gAbortingInErr, genie::PDGLibrary::Instance(), LOG, and pFATAL.

Referenced by Charge(), IsOnMassShell(), Mass(), Name(), and SetPdgCode().

◆ Charge()

double GHepParticle::Charge ( void ) const

Chrg that corresponds to the PDG code.

Definition at line 151 of file GHepParticle.cxx.

152{
153 this->AssertIsKnownParticle();
154
155 TParticlePDG * p = PDGLibrary::Instance()->Find(fPdgCode);
156 return p->Charge();
157}
void AssertIsKnownParticle(void) const

References AssertIsKnownParticle(), genie::PDGLibrary::Find(), fPdgCode, and genie::PDGLibrary::Instance().

Referenced by CheckChargeConservation().

◆ CleanUp()

void GHepParticle::CleanUp ( void )

Definition at line 405 of file GHepParticle.cxx.

406{
407// deallocate memory
408
409 if(fP4) delete fP4;
410 if(fX4) delete fX4;
411 fP4 = 0;
412 fX4 = 0;
413}

References fP4, and fX4.

Referenced by Clear(), Reset(), and ~GHepParticle().

◆ Clear()

void GHepParticle::Clear ( Option_t * option)

Definition at line 423 of file GHepParticle.cxx.

424{
425// implement the Clear(Option_t *) method so that the GHepParticle when is a
426// member of a GHepRecord, gets deleted properly when calling TClonesArray's
427// Clear("C")
428
429 this->CleanUp();
430}

References CleanUp().

◆ Compare()

bool GHepParticle::Compare ( const GHepParticle * p) const

Definition at line 463 of file GHepParticle.cxx.

464{
465// Do the comparisons in steps & put the ones that cost most
466// in the inner-most {}
467
468 bool same_particle = (this->fPdgCode == p->fPdgCode);
469 bool same_status = (this->fStatus == p->fStatus );
470
471 if( !same_particle || !same_status ) return false;
472 else {
473 if ( ! this->CompareFamily(p) ) return false;
474 else {
475 if( ! this->CompareMomentum(p) ) return false;
476 else return true;
477 }
478 }
479}
bool CompareFamily(const GHepParticle *p) const
bool CompareMomentum(const GHepParticle *p) const

References CompareFamily(), CompareMomentum(), fPdgCode, fStatus, and GHepParticle().

Referenced by operator==(), and genie::GHepRecord::ParticlePosition().

◆ CompareFamily()

bool GHepParticle::CompareFamily ( const GHepParticle * p) const

Definition at line 491 of file GHepParticle.cxx.

492{
493 bool same_family = (
494 this->fFirstMother == p->fFirstMother &&
495 this->fLastMother == p->fLastMother &&
496 this->fFirstDaughter == p->fFirstDaughter &&
497 this->fLastDaughter == p->fLastDaughter
498 );
499 return same_family;
500}

References fFirstDaughter, fFirstMother, fLastDaughter, fLastMother, and GHepParticle().

Referenced by Compare().

◆ CompareMomentum()

bool GHepParticle::CompareMomentum ( const GHepParticle * p) const

Definition at line 502 of file GHepParticle.cxx.

503{
504 double dE = TMath::Abs( this->E() - p->E() );
505 double dPx = TMath::Abs( this->Px() - p->Px() );
506 double dPy = TMath::Abs( this->Py() - p->Py() );
507 double dPz = TMath::Abs( this->Pz() - p->Pz() );
508
509 bool same_momentum =
510 (dE < kPCutOff && dPx < kPCutOff && dPy < kPCutOff && dPz < kPCutOff);
511
512 return same_momentum;
513}
const double kPCutOff
double Px(void) const
Get Px.
double E(void) const
Get energy.
double Pz(void) const
Get Pz.
double Py(void) const
Get Py.

References E(), GHepParticle(), kPCutOff, Px(), Py(), and Pz().

Referenced by Compare(), genie::utils::intranuke2018::PreEquilibrium(), genie::utils::intranuke2025::PreEquilibrium(), and genie::utils::intranuke::PreEquilibrium().

◆ ComparePdgCodes()

bool GHepParticle::ComparePdgCodes ( const GHepParticle * p) const

◆ CompareStatusCodes()

bool GHepParticle::CompareStatusCodes ( const GHepParticle * p) const

◆ Copy()

void GHepParticle::Copy ( const GHepParticle & particle)

Definition at line 515 of file GHepParticle.cxx.

516{
517 this->SetStatus (particle.Status() );
518 this->SetPdgCode (particle.Pdg() );
519 this->SetRescatterCode (particle.RescatterCode() );
520 this->SetFirstMother (particle.FirstMother() );
521 this->SetLastMother (particle.LastMother() );
522 this->SetFirstDaughter (particle.FirstDaughter() );
523 this->SetLastDaughter (particle.LastDaughter() );
524
525 this->SetMomentum (*particle.P4());
526 this->SetPosition (*particle.X4());
527
528 this->fPolzTheta = particle.fPolzTheta;
529 this->fPolzPhi = particle.fPolzPhi;
530
531 this->fIsBound = particle.fIsBound;
532 this->fRemovalEnergy = particle.fRemovalEnergy;
533}
int FirstMother(void) const
void SetPosition(const TLorentzVector &v4)
void SetLastDaughter(int d)
void SetMomentum(const TLorentzVector &p4)
void SetRescatterCode(int code)
int Pdg(void) const
void SetFirstMother(int m)
void SetLastMother(int m)
const TLorentzVector * P4(void) const
int LastMother(void) const
const TLorentzVector * X4(void) const
int LastDaughter(void) const
void SetStatus(GHepStatus_t s)
int RescatterCode(void) const
void SetFirstDaughter(int d)
GHepStatus_t Status(void) const
int FirstDaughter(void) const

References FirstDaughter(), FirstMother(), fIsBound, fPolzPhi, fPolzTheta, fRemovalEnergy, GHepParticle(), LastDaughter(), LastMother(), P4(), Pdg(), RescatterCode(), SetFirstDaughter(), SetFirstMother(), SetLastDaughter(), SetLastMother(), SetMomentum(), SetPdgCode(), SetPosition(), SetRescatterCode(), SetStatus(), Status(), and X4().

Referenced by GHepParticle(), operator=(), and genie::GHepRecord::SwapParticles().

◆ E()

double genie::GHepParticle::E ( void ) const
inline

Get energy.

Definition at line 91 of file GHepParticle.h.

References fP4.

Referenced by genie::HNIntranuke2018::AbsorbHN(), genie::HNIntranuke2025::AbsorbHN(), genie::CEvNSEventGenerator::AddFinalStateNeutrino(), genie::NucDeExcitationSim::AddPhoton(), genie::DMELEventGenerator::AddTargetNucleusRemnant(), genie::FermiMover::AddTargetNucleusRemnant(), genie::QELEventGenerator::AddTargetNucleusRemnant(), genie::QELEventGeneratorSM::AddTargetNucleusRemnant(), genie::QELEventGeneratorSuSA::AddTargetNucleusRemnant(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_AlvarezRuso(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_BergerSehgalFM(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_ReinSehgal(), CheckEnergyMomentumConservation(), CompareMomentum(), ConvertToGINuke(), ConvertToGXML(), Energy(), genie::hnl::Decayer::GenerateDecayProducts(), GenerateEvent(), genie::HAIntranuke::InelasticHA(), genie::INukeHadroData2018::IntBounce(), genie::INukeHadroData2025::IntBounce(), genie::INukeHadroData::IntBounce(), main(), genie::utils::intranuke2018::PhaseSpaceDecay(), genie::utils::intranuke2025::PhaseSpaceDecay(), genie::utils::intranuke::PhaseSpaceDecay(), genie::utils::intranuke2018::PreEquilibrium(), genie::utils::intranuke2025::PreEquilibrium(), genie::utils::intranuke::PreEquilibrium(), Print(), genie::GHepRecord::Print(), genie::DFRHadronicSystemGenerator::ProcessEventRecord(), genie::NucBindEnergyAggregator::ProcessEventRecord(), SetPx(), SetPy(), SetPz(), genie::utils::intranuke2018::ThreeBodyKinematics(), genie::utils::intranuke2025::ThreeBodyKinematics(), and genie::utils::intranuke::ThreeBodyKinematics().

◆ Energy()

◆ FirstDaughter()

◆ FirstMother()

int genie::GHepParticle::FirstMother ( void ) const
inline

Definition at line 66 of file GHepParticle.h.

66{ return fFirstMother; }

References fFirstMother.

Referenced by genie::HNIntranuke2018::AbsorbHN(), genie::HNIntranuke2025::AbsorbHN(), AcceptEvent(), genie::GHepRecord::CompactifyDaughterLists(), ConvertToGHad(), ConvertToGRooTracker(), ConvertToGST(), ConvertToGTracker(), ConvertToGXML(), Copy(), genie::GHepRecord::FinalizeDaughterLists(), GenerateEvent(), genie::GHepRecord::GetStableDescendants(), genie::AGCharmPythia6Hadro2023::HadronizeRemnant(), genie::HNIntranuke2018::HandleCompoundNucleusHN(), genie::HNIntranuke2025::HandleCompoundNucleusHN(), genie::GHepRecord::HasCompactDaughterList(), genie::HAIntranuke2018::Inelastic(), genie::HAIntranuke2025::Inelastic(), genie::HAIntranuke::Inelastic(), main(), genie::utils::ghep::NeutReactionCode(), Print(), genie::GHepRecord::Print(), genie::HAIntranuke2018::SimulateHadronicFinalState(), genie::HAIntranuke2025::SimulateHadronicFinalState(), genie::HAIntranuke::SimulateHadronicFinalState(), genie::HNIntranuke2018::SimulateHadronicFinalState(), genie::HNIntranuke2025::SimulateHadronicFinalState(), genie::HAIntranuke2018::SimulateHadronicFinalStateKinematics(), genie::HAIntranuke2025::SimulateHadronicFinalStateKinematics(), genie::HAIntranuke::SimulateHadronicFinalStateKinematics(), genie::utils::intranuke2018::ThreeBodyKinematics(), genie::utils::intranuke2025::ThreeBodyKinematics(), genie::utils::intranuke::ThreeBodyKinematics(), genie::Intranuke2018::TransportHadrons(), genie::Intranuke2025::TransportHadrons(), genie::Intranuke::TransportHadrons(), genie::utils::intranuke2018::TwoBodyCollision(), genie::utils::intranuke2025::TwoBodyCollision(), genie::utils::intranuke::TwoBodyCollision(), and genie::GHepRecord::UpdateDaughterLists().

◆ GetP4()

TLorentzVector * GHepParticle::GetP4 ( void ) const

Definition at line 194 of file GHepParticle.cxx.

195{
196// see GHepParticle::P4() for a method that does not create a new object and
197// transfers its ownership
198
199 if(fP4) {
200 TLorentzVector * p4 = new TLorentzVector(*fP4);
201#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
202 LOG("GHepParticle", pDEBUG)
203 << "Return vp = " << utils::print::P4AsShortString(p4);
204#endif
205 return p4;
206 } else {
207 LOG("GHepParticle", pWARN) << "NULL 4-momentum TLorentzVector";
208 return 0;
209 }
210}
#define pDEBUG
Definition Messenger.h:63
#define pWARN
Definition Messenger.h:60
string P4AsShortString(const TLorentzVector *p)

References fP4, LOG, genie::utils::print::P4AsShortString(), pDEBUG, and pWARN.

Referenced by genie::MECGenerator::AddFinalStateLepton(), genie::RSPPHadronicSystemGenerator::AddResonanceDecayProducts(), ConvertToGST(), genie::MECGenerator::DecayNucleonCluster(), genie::NNBarOscPrimaryVtxGenerator::GenerateDecayProducts(), genie::NucleonDecayPrimaryVtxGenerator::GenerateDecayProducts(), genie::NNBarOscPrimaryVtxGenerator::GenerateFermiMomentum(), genie::utils::intranuke2018::PhaseSpaceDecay(), genie::utils::intranuke2025::PhaseSpaceDecay(), genie::utils::intranuke::PhaseSpaceDecay(), genie::hnl::VertexGenerator::ProcessEventRecord(), genie::NormGenerator::ProcessEventRecord(), genie::OutgoingDarkGenerator::ProcessEventRecord(), genie::PrimaryLeptonGenerator::ProcessEventRecord(), genie::QELEventGeneratorSM::ProcessEventRecord(), and genie::MECGenerator::RecoilNucleonCluster().

◆ GetPolarization()

void GHepParticle::GetPolarization ( TVector3 & polz)

Definition at line 315 of file GHepParticle.cxx.

316{
317// gets the polarization vector
318
319 if(! this->PolzIsSet() ) {
320 polz.SetXYZ(0.,0.,0.);
321 return;
322 }
323 polz.SetX( TMath::Sin(fPolzTheta) * TMath::Cos(fPolzPhi) );
324 polz.SetY( TMath::Sin(fPolzTheta) * TMath::Sin(fPolzPhi) );
325 polz.SetZ( TMath::Cos(fPolzTheta) );
326}
bool PolzIsSet(void) const

References fPolzPhi, fPolzTheta, and PolzIsSet().

Referenced by genie::Pythia8Decayer2023::Decay(), and genie::GHepRecord::Print().

◆ GetX4()

TLorentzVector * GHepParticle::GetX4 ( void ) const

Definition at line 212 of file GHepParticle.cxx.

213{
214// see GHepParticle::X4() for a method that does not create a new object and
215// transfers its ownership
216
217 if(fX4) {
218 TLorentzVector * x4 = new TLorentzVector(*fX4);
219#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
220 LOG("GHepParticle", pDEBUG)
221 << "Return x4 = " << utils::print::X4AsString(x4);
222#endif
223 return x4;
224 } else {
225 LOG("GHepParticle", pWARN) << "NULL 4-position TLorentzVector";
226 return 0;
227 }
228}
string X4AsString(const TLorentzVector *x)

References fX4, LOG, pDEBUG, pWARN, and genie::utils::print::X4AsString().

Referenced by genie::MECGenerator::DecayNucleonCluster(), genie::NNBarOscPrimaryVtxGenerator::GenerateDecayProducts(), genie::NucleonDecayPrimaryVtxGenerator::GenerateDecayProducts(), genie::utils::intranuke2018::PhaseSpaceDecay(), genie::utils::intranuke2025::PhaseSpaceDecay(), genie::utils::intranuke::PhaseSpaceDecay(), and genie::hnl::FluxCreator::ProcessEventRecord().

◆ HasDaughters()

bool genie::GHepParticle::HasDaughters ( void ) const
inline

Definition at line 70 of file GHepParticle.h.

70{ return (fFirstDaughter!=-1); }

References fFirstDaughter.

Referenced by genie::GHepRecord::SwapParticles().

◆ Init()

void GHepParticle::Init ( void )
private

Definition at line 388 of file GHepParticle.cxx.

389{
390 fPdgCode = 0;
392 fRescatterCode = -1;
393 fFirstMother = -1;
394 fLastMother = -1;
395 fFirstDaughter = -1;
396 fLastDaughter = -1;
397 fPolzTheta = -999;
398 fPolzPhi = -999;
399 fIsBound = false;
400 fRemovalEnergy = 0.;
401 fP4 = new TLorentzVector(0,0,0,0);
402 fX4 = new TLorentzVector(0,0,0,0);
403}

References fFirstDaughter, fFirstMother, fIsBound, fLastDaughter, fLastMother, fP4, fPdgCode, fPolzPhi, fPolzTheta, fRemovalEnergy, fRescatterCode, fStatus, fX4, and genie::kIStUndefined.

Referenced by GHepParticle(), GHepParticle(), and Reset().

◆ IsBound()

bool genie::GHepParticle::IsBound ( void ) const
inline

Definition at line 71 of file GHepParticle.h.

71{ return fIsBound; }

References fIsBound.

◆ IsOffMassShell()

◆ IsOnMassShell()

bool GHepParticle::IsOnMassShell ( void ) const

Definition at line 289 of file GHepParticle.cxx.

290{
291 this->AssertIsKnownParticle();
292
293 TParticlePDG * p = PDGLibrary::Instance()->Find(fPdgCode);
294
295 double Mpdg = p->Mass();
296 double M4p = (fP4) ? fP4->M() : 0.;
297
298// return utils::math::AreEqual(Mpdg, M4p);
299
300 return (TMath::Abs(M4p-Mpdg) < kOffShellDm);
301}
const double kOffShellDm

References AssertIsKnownParticle(), genie::PDGLibrary::Find(), fP4, fPdgCode, genie::PDGLibrary::Instance(), and kOffShellDm.

Referenced by IsOffMassShell(), and genie::GHepRecord::Print().

◆ KinE()

double GHepParticle::KinE ( bool mass_from_pdg = false) const

Get kinetic energy.

Definition at line 159 of file GHepParticle.cxx.

160{
161 if(!fP4) {
162 LOG("GHepParticle", pWARN) << "4-momentum not yet set!";
163 return 0;
164 }
165
166 double En = fP4->Energy();
167 double M = ( (mass_from_pdg) ? this->Mass() : fP4->M() );
168 double K = En - M;
169
170 K = TMath::Max(K,0.);
171 return K;
172}
double Mass(void) const
Mass that corresponds to the PDG code.

References fP4, LOG, Mass(), and pWARN.

Referenced by genie::HNIntranuke2018::AbsorbHN(), genie::HNIntranuke2025::AbsorbHN(), ConvertToGST(), genie::utils::intranuke2018::Equilibrium(), genie::utils::intranuke2025::Equilibrium(), genie::utils::intranuke::Equilibrium(), FindhAFate(), genie::HNIntranuke2018::GammaInelasticHN(), genie::HNIntranuke2025::GammaInelasticHN(), genie::HAIntranuke2018::HadronFateHA(), genie::HAIntranuke2025::HadronFateHA(), genie::HAIntranuke::HadronFateHA(), genie::HNIntranuke2018::HadronFateHN(), genie::HNIntranuke2025::HadronFateHN(), genie::HNIntranuke2018::HandleCompoundNucleus(), genie::HNIntranuke2025::HandleCompoundNucleus(), genie::HAIntranuke2018::Inelastic(), genie::HAIntranuke2025::Inelastic(), genie::HAIntranuke::Inelastic(), genie::HAIntranuke2018::InelasticHA(), genie::HAIntranuke2025::InelasticHA(), genie::HAIntranuke::InelasticHA(), genie::utils::intranuke2018::PionProduction(), genie::utils::intranuke2025::PionProduction(), genie::utils::intranuke::PionProduction(), genie::utils::intranuke2018::PreEquilibrium(), genie::utils::intranuke2025::PreEquilibrium(), genie::utils::intranuke::PreEquilibrium(), genie::INukeDeltaPropg::ProcessEventRecord(), genie::Intranuke2018::TransportHadrons(), genie::Intranuke2025::TransportHadrons(), and genie::Intranuke::TransportHadrons().

◆ LastDaughter()

◆ LastMother()

◆ Mass()

double GHepParticle::Mass ( void ) const

Mass that corresponds to the PDG code.

Definition at line 143 of file GHepParticle.cxx.

144{
145 this->AssertIsKnownParticle();
146
147 TParticlePDG * p = PDGLibrary::Instance()->Find(fPdgCode);
148 return p->Mass();
149}

References AssertIsKnownParticle(), genie::PDGLibrary::Find(), fPdgCode, and genie::PDGLibrary::Instance().

Referenced by genie::DMELEventGenerator::AddTargetNucleusRemnant(), genie::FermiMover::AddTargetNucleusRemnant(), genie::QELEventGenerator::AddTargetNucleusRemnant(), genie::QELEventGeneratorSM::AddTargetNucleusRemnant(), genie::QELEventGeneratorSuSA::AddTargetNucleusRemnant(), ConvertToGINuke(), ConvertToGST(), genie::Pythia6Decayer2023::Decay(), genie::Pythia8Decayer2023::Decay(), genie::HAIntranuke2018::ElasHA(), genie::HAIntranuke2025::ElasHA(), genie::HAIntranuke::ElasHA(), genie::HNIntranuke2018::ElasHN(), genie::HNIntranuke2025::ElasHN(), genie::utils::intranuke::Equilibrium(), genie::HNIntranuke2018::GammaInelasticHN(), genie::HNIntranuke2025::GammaInelasticHN(), GenerateEvent(), genie::NNBarOscPrimaryVtxGenerator::GenerateFermiMomentum(), genie::HAIntranuke2018::InelasticHA(), genie::HAIntranuke2025::InelasticHA(), genie::HAIntranuke::InelasticHA(), genie::INukeHadroData2018::IntBounce(), genie::INukeHadroData2025::IntBounce(), genie::INukeHadroData::IntBounce(), genie::FermiMover::KickHitNucleon(), KinE(), main(), genie::utils::intranuke2018::PhaseSpaceDecay(), genie::utils::intranuke2025::PhaseSpaceDecay(), genie::utils::intranuke::PhaseSpaceDecay(), genie::utils::intranuke::PreEquilibrium(), Print(), genie::GHepRecord::Print(), genie::NucBindEnergyAggregator::ProcessEventRecord(), genie::DISHadronicSystemGenerator::SimulateFormationZone(), genie::utils::intranuke2018::TwoBodyCollision(), and genie::utils::intranuke2025::TwoBodyCollision().

◆ Name()

string GHepParticle::Name ( void ) const

Name that corresponds to the PDG code.

Definition at line 135 of file GHepParticle.cxx.

136{
137 this->AssertIsKnownParticle();
138
139 TParticlePDG * p = PDGLibrary::Instance()->Find(fPdgCode);
140 return p->GetName();
141}

References AssertIsKnownParticle(), genie::PDGLibrary::Find(), fPdgCode, and genie::PDGLibrary::Instance().

Referenced by genie::HNIntranuke2018::AbsorbHN(), genie::HNIntranuke2025::AbsorbHN(), ConvertToGST(), genie::DarkSectorDecayer::Decay(), genie::HAIntranuke2018::ElasHA(), genie::HAIntranuke2025::ElasHA(), genie::HAIntranuke::ElasHA(), genie::HNIntranuke2018::ElasHN(), genie::HNIntranuke2025::ElasHN(), genie::utils::intranuke2018::Equilibrium(), genie::utils::intranuke2025::Equilibrium(), genie::utils::intranuke::Equilibrium(), genie::HNIntranuke2018::GammaInelasticHN(), genie::HNIntranuke2025::GammaInelasticHN(), genie::HAIntranuke2018::HadronFateHA(), genie::HAIntranuke2025::HadronFateHA(), genie::HAIntranuke::HadronFateHA(), genie::HNIntranuke2018::HadronFateHN(), genie::HNIntranuke2025::HadronFateHN(), genie::HAIntranuke2018::Inelastic(), genie::HAIntranuke2025::Inelastic(), genie::HAIntranuke::Inelastic(), genie::HAIntranuke2018::InelasticHA(), genie::HAIntranuke2025::InelasticHA(), genie::HAIntranuke::InelasticHA(), main(), operator<<(), genie::utils::intranuke2018::PreEquilibrium(), genie::utils::intranuke2025::PreEquilibrium(), genie::utils::intranuke::PreEquilibrium(), Print(), genie::GHepRecord::Print(), genie::BaryonResonanceDecayer::ProcessEventRecord(), genie::DarkSectorDecayer::ProcessEventRecord(), genie::INukeDeltaPropg::ProcessEventRecord(), genie::Pythia6Decayer2023::ProcessEventRecord(), genie::Pythia8Decayer2023::ProcessEventRecord(), genie::VertexGenerator::ProcessEventRecord(), genie::GHepRecord::RemoveIntermediateParticles(), genie::OutgoingDarkGenerator::SetPolarization(), genie::utils::SetPrimaryLeptonPolarization(), genie::DISHadronicSystemGenerator::SimulateFormationZone(), genie::HAIntranuke2018::SimulateHadronicFinalState(), genie::HAIntranuke2025::SimulateHadronicFinalState(), genie::HAIntranuke::SimulateHadronicFinalState(), genie::HNIntranuke2018::SimulateHadronicFinalState(), genie::HNIntranuke2025::SimulateHadronicFinalState(), genie::HAIntranuke2018::SimulateHadronicFinalStateKinematics(), genie::HAIntranuke2025::SimulateHadronicFinalStateKinematics(), genie::HAIntranuke::SimulateHadronicFinalStateKinematics(), genie::utils::intranuke2018::StepParticle(), genie::utils::intranuke2025::StepParticle(), genie::utils::intranuke::StepParticle(), genie::GHepRecord::SwapParticles(), genie::Intranuke2018::TransportHadrons(), genie::Intranuke2025::TransportHadrons(), genie::Intranuke::TransportHadrons(), and genie::HadronTransporter::TransportInTransparentNuc().

◆ operator=()

GHepParticle & GHepParticle::operator= ( const GHepParticle & p)

Definition at line 554 of file GHepParticle.cxx.

555{
556 this->Copy(p);
557 return (*this);
558}

References Copy(), and GHepParticle().

◆ operator==()

bool GHepParticle::operator== ( const GHepParticle & p) const

Definition at line 549 of file GHepParticle.cxx.

550{
551 return (this->Compare(&p));
552}
bool Compare(const GHepParticle *p) const

References Compare(), and GHepParticle().

◆ P4() [1/2]

TLorentzVector * genie::GHepParticle::P4 ( void )
inline

Definition at line 80 of file GHepParticle.h.

80{ return fP4; }

References fP4.

◆ P4() [2/2]

const TLorentzVector * genie::GHepParticle::P4 ( void ) const
inline

Definition at line 78 of file GHepParticle.h.

78{ return fP4; }

References fP4.

Referenced by genie::HNIntranuke2018::AbsorbHN(), genie::HNIntranuke2025::AbsorbHN(), genie::BaryonResonanceDecayer::AcceptPionDecay(), genie::DMETargetRemnantGenerator::AddElectronNeutrino(), genie::NuETargetRemnantGenerator::AddElectronNeutrino(), genie::AMNuGammaGenerator::AddFinalStateNeutrino(), genie::CEvNSEventGenerator::AddFinalStateNeutrino(), genie::AMNuGammaGenerator::AddPhoton(), genie::HEDISGenerator::AddPrimaryLepton(), genie::AMNuGammaGenerator::AddRecoilNucleon(), genie::HadronicSystemGenerator::AddTargetNucleusRemnant(), genie::AMNuGammaGenerator::AddTargetRemnant(), genie::MECGenerator::AddTargetRemnant(), genie::SKHadronicSystemGenerator::CalculateHadronicSystem_AtharSingleKaon(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_BergerSehgalFM(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_ReinSehgal(), genie::GMCJDriver::ComputeEventProbability(), ConvertToGHad(), ConvertToGHepMock(), ConvertToGRooTracker(), ConvertToGST(), ConvertToGTracker(), Copy(), genie::DarkSectorDecayer::Decay(), genie::Pythia6Decayer2023::Decay(), genie::Pythia8Decayer2023::Decay(), genie::BaryonResonanceDecayer::DecayExclusive(), genie::HAIntranuke2018::ElasHA(), genie::HAIntranuke2025::ElasHA(), genie::HAIntranuke::ElasHA(), genie::utils::intranuke::Equilibrium(), genie::COHDNuEventGenerator::GenerateKinematics(), genie::MECGenerator::GenerateNSVInitialHadrons(), genie::QELEventGeneratorSuSA::GenerateNucleon(), genie::Intranuke::GenerateStep(), genie::Intranuke2018::GenerateVertex(), genie::Intranuke2025::GenerateVertex(), genie::Intranuke::GenerateVertex(), genie::HadronicSystemGenerator::Hadronic4pLAB(), genie::HAIntranuke2018::Inelastic(), genie::HAIntranuke2025::Inelastic(), genie::HAIntranuke::Inelastic(), genie::HAIntranuke2018::InelasticHA(), genie::HAIntranuke2025::InelasticHA(), genie::HAIntranuke::InelasticHA(), genie::INukeHadroData2018::IntBounce(), genie::INukeHadroData2025::IntBounce(), genie::INukeHadroData::IntBounce(), main(), genie::HadronicSystemGenerator::MomentumTransferLAB(), genie::utils::intranuke2018::PionProduction(), genie::utils::intranuke2025::PionProduction(), genie::utils::intranuke::PionProduction(), genie::utils::intranuke::PreEquilibrium(), genie::GHepRecord::Print(), genie::DFRHadronicSystemGenerator::ProcessEventRecord(), genie::DMEOutgoingDarkGenerator::ProcessEventRecord(), genie::evtlib::EventLibraryInterface::ProcessEventRecord(), genie::HENuElGenerator::ProcessEventRecord(), genie::INukeDeltaPropg::ProcessEventRecord(), genie::NucBindEnergyAggregator::ProcessEventRecord(), genie::NuEPrimaryLeptonGenerator::ProcessEventRecord(), genie::PauliBlocker::ProcessEventRecord(), genie::MECGenerator::RecoilNucleonCluster(), genie::BaryonResonanceDecayer::SelectDecayChannel(), genie::DarkSectorDecayer::SetSpaceTime(), genie::DISHadronicSystemGenerator::SimulateFormationZone(), genie::SRCNuclearRecoil::SRCRecoilPDG(), genie::utils::intranuke2018::StepParticle(), genie::utils::intranuke2025::StepParticle(), genie::utils::intranuke::StepParticle(), genie::utils::intranuke2018::ThreeBodyKinematics(), genie::utils::intranuke2025::ThreeBodyKinematics(), genie::utils::intranuke::ThreeBodyKinematics(), genie::Intranuke2018::TransportHadrons(), genie::Intranuke2025::TransportHadrons(), genie::Intranuke::TransportHadrons(), genie::utils::intranuke2018::TwoBodyCollision(), genie::utils::intranuke2025::TwoBodyCollision(), genie::utils::intranuke::TwoBodyCollision(), genie::GLRESWdecPythia6::Wdecay(), genie::GLRESWdecPythia8::Wdecay(), genie::PhotonCOHWdecPythia6::Wdecay(), genie::PhotonCOHWdecPythia8::Wdecay(), genie::PhotonRESWdecPythia6::Wdecay(), and genie::PhotonRESWdecPythia8::Wdecay().

◆ Pdg()

int genie::GHepParticle::Pdg ( void ) const
inline

Definition at line 63 of file GHepParticle.h.

63{ return fPdgCode; }

References fPdgCode.

Referenced by genie::HNIntranuke2018::AbsorbHN(), genie::HNIntranuke2025::AbsorbHN(), AcceptEvent(), genie::AMNuGammaGenerator::AddFinalStateNeutrino(), genie::CEvNSEventGenerator::AddFinalStateNeutrino(), genie::GHepRecord::AddParticle(), genie::NucDeExcitationSim::AddPhoton(), genie::AMNuGammaGenerator::AddRecoilNucleon(), genie::CEvNSEventGenerator::AddRecoilNucleus(), genie::COHDNuEventGenerator::AddRecoilNucleus(), genie::DMELEventGenerator::AddTargetNucleusRemnant(), genie::FermiMover::AddTargetNucleusRemnant(), genie::HadronicSystemGenerator::AddTargetNucleusRemnant(), genie::QELEventGenerator::AddTargetNucleusRemnant(), genie::QELEventGeneratorSM::AddTargetNucleusRemnant(), genie::QELEventGeneratorSuSA::AddTargetNucleusRemnant(), genie::AMNuGammaGenerator::AddTargetRemnant(), genie::MECGenerator::AddTargetRemnant(), genie::NucDeExcitationSim::ArgonTargetSim(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_AlvarezRuso(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_BergerSehgalFM(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_ReinSehgal(), genie::Intranuke2018::CanRescatter(), genie::Intranuke2025::CanRescatter(), genie::Intranuke::CanRescatter(), CheckDecayerConsistency(), CheckForNumFinStateNucleonsInconsistentWithTarget(), CheckForPseudoParticlesInFinState(), genie::GMCJDriver::ComputeEventProbability(), ConvertToGHad(), ConvertToGHepMock(), ConvertToGINuke(), ConvertToGRooTracker(), ConvertToGST(), ConvertToGTracker(), ConvertToGXML(), Copy(), genie::Pythia6Decayer2023::Decay(), genie::Pythia8Decayer2023::Decay(), genie::AGKYLowW2019::DecayBackToBack(), genie::BaryonResonanceDecayer::DecayExclusive(), genie::MECGenerator::DecayNucleonCluster(), genie::HAIntranuke2018::ElasHA(), genie::HAIntranuke2025::ElasHA(), genie::HAIntranuke::ElasHA(), genie::HNIntranuke2018::ElasHN(), genie::HNIntranuke2025::ElasHN(), genie::utils::intranuke2018::Equilibrium(), genie::utils::intranuke2025::Equilibrium(), genie::utils::intranuke::Equilibrium(), genie::GHepRecord::EventGenerationMode(), FindhAFate(), genie::GHepRecord::FindParticle(), genie::HNIntranuke2018::GammaInelasticHN(), genie::HNIntranuke2025::GammaInelasticHN(), genie::NNBarOscPrimaryVtxGenerator::GenerateDecayProducts(), GenerateEvent(), genie::MECGenerator::GenerateFermiMomentum(), genie::NNBarOscPrimaryVtxGenerator::GenerateFermiMomentum(), genie::NucleonDecayPrimaryVtxGenerator::GenerateFermiMomentum(), genie::MECGenerator::GenerateNSVInitialHadrons(), genie::QELEventGeneratorSuSA::GenerateNucleon(), genie::Intranuke::GenerateStep(), genie::Intranuke2018::GenerateVertex(), genie::Intranuke2025::GenerateVertex(), genie::Intranuke::GenerateVertex(), genie::CascadeReweight::GetEventWeight(), genie::HAIntranuke2018::HadronFateHA(), genie::HAIntranuke2025::HadronFateHA(), genie::HAIntranuke::HadronFateHA(), genie::HNIntranuke2018::HadronFateHN(), genie::HNIntranuke2025::HadronFateHN(), genie::Pythia6Hadro2019::Hadronize(), genie::Pythia8Hadro2019::Hadronize(), genie::HNIntranuke2018::HandleCompoundNucleus(), genie::HNIntranuke2025::HandleCompoundNucleus(), genie::GHepRecord::HitElectronPosition(), genie::GHepRecord::HitNucleonPosition(), genie::HAIntranuke2018::Inelastic(), genie::HAIntranuke2025::Inelastic(), genie::HAIntranuke::Inelastic(), genie::HAIntranuke2018::InelasticHA(), genie::HAIntranuke2025::InelasticHA(), genie::HAIntranuke::InelasticHA(), genie::INukeHadroData2018::IntBounce(), genie::INukeHadroData2025::IntBounce(), genie::INukeHadroData::IntBounce(), genie::FermiMover::KickHitNucleon(), main(), genie::Intranuke2018::NeedsRescattering(), genie::Intranuke2025::NeedsRescattering(), genie::Intranuke::NeedsRescattering(), genie::GHepRecord::NEntries(), genie::GHepRecord::NEntries(), genie::utils::ghep::NeutReactionCode(), genie::utils::ghep::NuanceReactionCode(), operator<<(), genie::NucDeExcitationSim::OxygenTargetSim(), genie::GHepRecord::ParticlePosition(), genie::utils::intranuke2018::PhaseSpaceDecay(), genie::utils::intranuke2025::PhaseSpaceDecay(), genie::utils::intranuke::PhaseSpaceDecay(), genie::utils::intranuke2018::PionProduction(), genie::utils::intranuke2025::PionProduction(), genie::utils::intranuke::PionProduction(), genie::utils::intranuke2018::PreEquilibrium(), genie::utils::intranuke2025::PreEquilibrium(), genie::utils::intranuke::PreEquilibrium(), Print(), genie::GHepRecord::Print(), genie::BaryonResonanceDecayer::ProcessEventRecord(), genie::DarkSectorDecayer::ProcessEventRecord(), genie::DFRHadronicSystemGenerator::ProcessEventRecord(), genie::DMELEventGenerator::ProcessEventRecord(), genie::HENuElGenerator::ProcessEventRecord(), genie::INukeDeltaPropg::ProcessEventRecord(), genie::NormGenerator::ProcessEventRecord(), genie::NucBindEnergyAggregator::ProcessEventRecord(), genie::PauliBlocker::ProcessEventRecord(), genie::Pythia6Decayer2023::ProcessEventRecord(), genie::Pythia8Decayer2023::ProcessEventRecord(), genie::QELEventGenerator::ProcessEventRecord(), genie::SpectralFunction2p2h::ProcessEventRecord(), genie::VertexGenerator::ProcessEventRecord(), genie::GHepRecord::RemnantNucleusPosition(), genie::BaryonResonanceDecayer::SelectDecayChannel(), genie::OutgoingDarkGenerator::SetPolarization(), genie::utils::SetPrimaryLeptonPolarization(), genie::Intranuke2018::SetTrackingRadius(), genie::Intranuke2025::SetTrackingRadius(), genie::Intranuke::SetTrackingRadius(), genie::DISHadronicSystemGenerator::SimulateFormationZone(), genie::HAIntranuke2018::SimulateHadronicFinalState(), genie::HAIntranuke2025::SimulateHadronicFinalState(), genie::HAIntranuke::SimulateHadronicFinalState(), genie::HNIntranuke2018::SimulateHadronicFinalState(), genie::HNIntranuke2025::SimulateHadronicFinalState(), genie::SRCNuclearRecoil::SRCRecoilPDG(), genie::GHepRecord::TargetNucleusPosition(), genie::utils::intranuke2018::ThreeBodyKinematics(), genie::utils::intranuke2025::ThreeBodyKinematics(), genie::utils::intranuke::ThreeBodyKinematics(), genie::DarkSectorDecayer::ToBeDecayed(), genie::utils::intranuke2018::TwoBodyCollision(), genie::utils::intranuke2025::TwoBodyCollision(), genie::utils::intranuke::TwoBodyCollision(), genie::GLRESWdecPythia6::Wdecay(), genie::GLRESWdecPythia8::Wdecay(), genie::PhotonCOHWdecPythia6::Wdecay(), genie::PhotonCOHWdecPythia8::Wdecay(), genie::PhotonRESWdecPythia6::Wdecay(), and genie::PhotonRESWdecPythia8::Wdecay().

◆ PolzAzimuthAngle()

double genie::GHepParticle::PolzAzimuthAngle ( void ) const
inline

◆ PolzIsSet()

bool GHepParticle::PolzIsSet ( void ) const

Definition at line 308 of file GHepParticle.cxx.

309{
310// checks whether the polarization angles have been set
311
312 return (fPolzTheta > -999 && fPolzPhi > -999);
313}

References fPolzPhi, and fPolzTheta.

Referenced by ConvertToGRooTracker(), ConvertToGTracker(), ConvertToGXML(), GetPolarization(), genie::GHepRecord::Print(), genie::OutgoingDarkGenerator::SetPolarization(), and genie::utils::SetPrimaryLeptonPolarization().

◆ PolzPolarAngle()

double genie::GHepParticle::PolzPolarAngle ( void ) const
inline

◆ Print() [1/2]

void GHepParticle::Print ( Option_t * opt) const

Definition at line 456 of file GHepParticle.cxx.

457{
458// implement the TObject's Print(Option_t *) method
459
460 this->Print(cout);
461}
void Print(ostream &stream) const

References Print().

◆ Print() [2/2]

void GHepParticle::Print ( ostream & stream) const

Definition at line 432 of file GHepParticle.cxx.

433{
434 stream << "\n |";
435 stream << setfill(' ') << setw(14) << this->Name() << " | ";
436 stream << setfill(' ') << setw(14) << this->Pdg() << " | ";
437 stream << setfill(' ') << setw(6) << this->Status() << " | ";
438 stream << setfill(' ') << setw(3) << this->FirstMother() << " | ";
439 stream << setfill(' ') << setw(3) << this->LastMother() << " | ";
440 stream << setfill(' ') << setw(3) << this->FirstDaughter() << " | ";
441 stream << setfill(' ') << setw(3) << this->LastDaughter() << " | ";
442 stream << std::fixed << setprecision(3);
443 stream << setfill(' ') << setw(6) << this->Px() << " | ";
444 stream << setfill(' ') << setw(6) << this->Py() << " | ";
445 stream << setfill(' ') << setw(6) << this->Pz() << " | ";
446 stream << setfill(' ') << setw(6) << this->E() << " | ";
447 stream << setfill(' ') << setw(6) << this->Mass() << " | ";
448
449 int rescat_code = this->RescatterCode();
450 if( rescat_code != -1 )
451 {
452 stream << setfill(' ') << setw(5) << rescat_code << " | ";
453 }
454}
string Name(void) const
Name that corresponds to the PDG code.

References E(), FirstDaughter(), FirstMother(), LastDaughter(), LastMother(), Mass(), Name(), Pdg(), Px(), Py(), Pz(), RescatterCode(), and Status().

Referenced by ClassImp(), and Print().

◆ Px()

double genie::GHepParticle::Px ( void ) const
inline

Get Px.

Definition at line 88 of file GHepParticle.h.

References fP4.

Referenced by genie::NucDeExcitationSim::AddPhoton(), genie::DMELEventGenerator::AddTargetNucleusRemnant(), genie::FermiMover::AddTargetNucleusRemnant(), genie::HadronicSystemGenerator::AddTargetNucleusRemnant(), genie::QELEventGenerator::AddTargetNucleusRemnant(), genie::QELEventGeneratorSM::AddTargetNucleusRemnant(), genie::QELEventGeneratorSuSA::AddTargetNucleusRemnant(), genie::AMNuGammaGenerator::AddTargetRemnant(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_AlvarezRuso(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_BergerSehgalFM(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_ReinSehgal(), CheckEnergyMomentumConservation(), CompareMomentum(), ConvertToGINuke(), ConvertToGST(), ConvertToGXML(), genie::Pythia6Decayer2023::Decay(), genie::AGKYLowW2019::DecayBackToBack(), genie::SecondNucleonEmissionI::EmitSecondNucleon(), FindhAFate(), GenerateEvent(), genie::HAIntranuke2018::InelasticHA(), genie::HAIntranuke2025::InelasticHA(), genie::HAIntranuke::InelasticHA(), main(), operator<<(), genie::utils::intranuke2018::PhaseSpaceDecay(), genie::utils::intranuke2025::PhaseSpaceDecay(), genie::utils::intranuke::PhaseSpaceDecay(), Print(), genie::GHepRecord::Print(), genie::DFRHadronicSystemGenerator::ProcessEventRecord(), genie::NucBindEnergyAggregator::ProcessEventRecord(), SetEnergy(), genie::OutgoingDarkGenerator::SetPolarization(), genie::utils::SetPrimaryLeptonPolarization(), SetPy(), and SetPz().

◆ Py()

double genie::GHepParticle::Py ( void ) const
inline

Get Py.

Definition at line 89 of file GHepParticle.h.

References fP4.

Referenced by genie::NucDeExcitationSim::AddPhoton(), genie::DMELEventGenerator::AddTargetNucleusRemnant(), genie::FermiMover::AddTargetNucleusRemnant(), genie::HadronicSystemGenerator::AddTargetNucleusRemnant(), genie::QELEventGenerator::AddTargetNucleusRemnant(), genie::QELEventGeneratorSM::AddTargetNucleusRemnant(), genie::QELEventGeneratorSuSA::AddTargetNucleusRemnant(), genie::AMNuGammaGenerator::AddTargetRemnant(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_AlvarezRuso(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_BergerSehgalFM(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_ReinSehgal(), CheckEnergyMomentumConservation(), CompareMomentum(), ConvertToGINuke(), ConvertToGST(), ConvertToGXML(), genie::Pythia6Decayer2023::Decay(), genie::AGKYLowW2019::DecayBackToBack(), genie::SecondNucleonEmissionI::EmitSecondNucleon(), FindhAFate(), GenerateEvent(), genie::HAIntranuke2018::InelasticHA(), genie::HAIntranuke2025::InelasticHA(), genie::HAIntranuke::InelasticHA(), main(), operator<<(), genie::utils::intranuke2018::PhaseSpaceDecay(), genie::utils::intranuke2025::PhaseSpaceDecay(), genie::utils::intranuke::PhaseSpaceDecay(), Print(), genie::GHepRecord::Print(), genie::DFRHadronicSystemGenerator::ProcessEventRecord(), genie::NucBindEnergyAggregator::ProcessEventRecord(), SetEnergy(), genie::OutgoingDarkGenerator::SetPolarization(), genie::utils::SetPrimaryLeptonPolarization(), SetPx(), and SetPz().

◆ Pz()

double genie::GHepParticle::Pz ( void ) const
inline

Get Pz.

Definition at line 90 of file GHepParticle.h.

References fP4.

Referenced by genie::NucDeExcitationSim::AddPhoton(), genie::DMELEventGenerator::AddTargetNucleusRemnant(), genie::FermiMover::AddTargetNucleusRemnant(), genie::HadronicSystemGenerator::AddTargetNucleusRemnant(), genie::QELEventGenerator::AddTargetNucleusRemnant(), genie::QELEventGeneratorSM::AddTargetNucleusRemnant(), genie::QELEventGeneratorSuSA::AddTargetNucleusRemnant(), genie::AMNuGammaGenerator::AddTargetRemnant(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_AlvarezRuso(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_BergerSehgalFM(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_ReinSehgal(), CheckEnergyMomentumConservation(), CompareMomentum(), ConvertToGINuke(), ConvertToGST(), ConvertToGXML(), genie::Pythia6Decayer2023::Decay(), genie::AGKYLowW2019::DecayBackToBack(), genie::SecondNucleonEmissionI::EmitSecondNucleon(), FindhAFate(), GenerateEvent(), genie::HAIntranuke2018::InelasticHA(), genie::HAIntranuke2025::InelasticHA(), genie::HAIntranuke::InelasticHA(), main(), operator<<(), genie::utils::intranuke2018::PhaseSpaceDecay(), genie::utils::intranuke2025::PhaseSpaceDecay(), genie::utils::intranuke::PhaseSpaceDecay(), Print(), genie::GHepRecord::Print(), genie::DFRHadronicSystemGenerator::ProcessEventRecord(), genie::NucBindEnergyAggregator::ProcessEventRecord(), SetEnergy(), genie::OutgoingDarkGenerator::SetPolarization(), genie::utils::SetPrimaryLeptonPolarization(), SetPx(), and SetPy().

◆ RemovalEnergy()

double genie::GHepParticle::RemovalEnergy ( void ) const
inline

◆ RescatterCode()

◆ Reset()

void GHepParticle::Reset ( void )

Definition at line 415 of file GHepParticle.cxx.

416{
417// deallocate memory + initialize
418
419 this->CleanUp();
420 this->Init();
421}

References CleanUp(), and Init().

Referenced by main().

◆ SetBound()

void GHepParticle::SetBound ( bool bound)

Definition at line 361 of file GHepParticle.cxx.

362{
363 // only set it for p or n
364 bool is_nucleon = pdg::IsNeutronOrProton(fPdgCode);
365 if(!is_nucleon && bound) {
366 LOG("GHepParticle", pERROR)
367 << "Refusing to set the bound flag for particles other than nucleons";
368 LOG("GHepParticle", pERROR)
369 << "(Requested for pdg = " << fPdgCode << ")";
370 return;
371 }
372 // if the particles isn't bound then make sure that its removal energy = 0
373 if(!bound) {
374 fRemovalEnergy = 0;
375 }
376 // set the flag
377 fIsBound = bound;
378}
#define pERROR
Definition Messenger.h:59
bool IsNeutronOrProton(int pdgc)
Definition PDGUtils.cxx:351

References fIsBound, fPdgCode, fRemovalEnergy, genie::pdg::IsNeutronOrProton(), LOG, and pERROR.

Referenced by SetRemovalEnergy().

◆ SetEnergy()

void GHepParticle::SetEnergy ( double E)

Definition at line 269 of file GHepParticle.cxx.

270{
271 this->SetMomentum(this->Px(), this->Py(), this->Pz(), En);
272}

References Px(), Py(), Pz(), and SetMomentum().

Referenced by genie::NucDeExcitationSim::AddPhoton(), and genie::NucBindEnergyAggregator::ProcessEventRecord().

◆ SetFirstDaughter()

void genie::GHepParticle::SetFirstDaughter ( int d)
inline

◆ SetFirstMother()

◆ SetLastDaughter()

void genie::GHepParticle::SetLastDaughter ( int d)
inline

◆ SetLastMother()

◆ SetMomentum() [1/2]

void GHepParticle::SetMomentum ( const TLorentzVector & p4)

Definition at line 236 of file GHepParticle.cxx.

237{
238 if(fP4)
239 fP4->SetPxPyPzE( p4.Px(), p4.Py(), p4.Pz(), p4.Energy() );
240 else
241 fP4 = new TLorentzVector(p4);
242}

References fP4.

Referenced by genie::HNIntranuke2018::AbsorbHN(), genie::HNIntranuke2025::AbsorbHN(), Copy(), genie::HAIntranuke2018::ElasHA(), genie::HAIntranuke2025::ElasHA(), genie::HAIntranuke::ElasHA(), genie::HNIntranuke2018::ElasHN(), genie::HNIntranuke2025::ElasHN(), genie::utils::intranuke::Equilibrium(), genie::HNIntranuke2018::GammaInelasticHN(), genie::HNIntranuke2025::GammaInelasticHN(), genie::MECGenerator::GenerateFermiMomentum(), genie::NNBarOscPrimaryVtxGenerator::GenerateFermiMomentum(), genie::NucleonDecayPrimaryVtxGenerator::GenerateFermiMomentum(), genie::MECGenerator::GenerateNSVInitialHadrons(), genie::QELEventGeneratorSuSA::GenerateNucleon(), genie::HAIntranuke2018::Inelastic(), genie::HAIntranuke2025::Inelastic(), genie::HAIntranuke::Inelastic(), genie::HAIntranuke2018::InelasticHA(), genie::HAIntranuke2025::InelasticHA(), genie::HAIntranuke::InelasticHA(), genie::FermiMover::KickHitNucleon(), genie::utils::intranuke::PreEquilibrium(), genie::DMELEventGenerator::ProcessEventRecord(), genie::NucBindEnergyAggregator::ProcessEventRecord(), genie::QELEventGenerator::ProcessEventRecord(), genie::QELEventGeneratorSM::ProcessEventRecord(), SetEnergy(), SetPx(), SetPy(), SetPz(), genie::utils::intranuke2018::ThreeBodyKinematics(), genie::utils::intranuke2025::ThreeBodyKinematics(), genie::utils::intranuke::ThreeBodyKinematics(), genie::utils::intranuke2018::TwoBodyCollision(), genie::utils::intranuke2025::TwoBodyCollision(), and genie::utils::intranuke::TwoBodyCollision().

◆ SetMomentum() [2/2]

void GHepParticle::SetMomentum ( double px,
double py,
double pz,
double E )

Definition at line 244 of file GHepParticle.cxx.

245{
246 if(fP4)
247 fP4->SetPxPyPzE(px, py, pz, En);
248 else
249 fP4 = new TLorentzVector(px, py, pz, En);
250}

References fP4.

◆ SetPdgCode()

◆ SetPolarization() [1/2]

void GHepParticle::SetPolarization ( const TVector3 & polz)

Definition at line 344 of file GHepParticle.cxx.

345{
346// sets the polarization angles
347
348 double p = polz.Mag();
349 if(! (p>0) ) {
350 LOG("GHepParticle", pERROR)
351 << "Input polarization vector has non-positive norm! Ignoring it";
352 return;
353 }
354
355 double theta = TMath::ACos(polz.z()/p);
356 double phi = kPi + TMath::ATan2(-polz.y(), -polz.x());
357
358 this->SetPolarization(theta,phi);
359}
void SetPolarization(double theta, double phi)

References genie::constants::kPi, LOG, pERROR, and SetPolarization().

◆ SetPolarization() [2/2]

void GHepParticle::SetPolarization ( double theta,
double phi )

Definition at line 328 of file GHepParticle.cxx.

329{
330// sets the polarization angles
331
332 if(theta>=0 && theta<=kPi && phi>=0 && phi<2*kPi)
333 {
334 fPolzTheta = theta;
335 fPolzPhi = phi;
336
337 } else {
338 LOG("GHepParticle", pERROR)
339 << "Invalid polarization angles (polar = " << theta
340 << ", azimuthal = " << phi << ")";
341 }
342}

References fPolzPhi, fPolzTheta, genie::constants::kPi, LOG, and pERROR.

Referenced by SetPolarization(), genie::OutgoingDarkGenerator::SetPolarization(), and genie::utils::SetPrimaryLeptonPolarization().

◆ SetPosition() [1/2]

◆ SetPosition() [2/2]

void GHepParticle::SetPosition ( double x,
double y,
double z,
double t )

Definition at line 257 of file GHepParticle.cxx.

258{
259#ifdef __GENIE_LOW_LEVEL_MESG_ENABLED__
260 LOG("GHepParticle", pDEBUG)
261 << "Setting position to (x = " << x << ", y = "
262 << y << ", z = " << z << ", t = " << t << ")";
263#endif
264
265 if(fX4) fX4->SetXYZT(x,y,z,t);
266 else fX4 = new TLorentzVector(x,y,z,t);
267}

References fX4, LOG, and pDEBUG.

◆ SetPx()

void GHepParticle::SetPx ( double px)

Definition at line 274 of file GHepParticle.cxx.

275{
276 this->SetMomentum(px, this->Py(), this->Pz(), this->E());
277}

References E(), Py(), Pz(), and SetMomentum().

Referenced by genie::NucDeExcitationSim::AddPhoton(), and genie::NucBindEnergyAggregator::ProcessEventRecord().

◆ SetPy()

void GHepParticle::SetPy ( double py)

Definition at line 279 of file GHepParticle.cxx.

280{
281 this->SetMomentum(this->Px(), py, this->Pz(), this->E());
282}

References E(), Px(), Pz(), and SetMomentum().

Referenced by genie::NucDeExcitationSim::AddPhoton(), and genie::NucBindEnergyAggregator::ProcessEventRecord().

◆ SetPz()

void GHepParticle::SetPz ( double pz)

Definition at line 284 of file GHepParticle.cxx.

285{
286 this->SetMomentum(this->Px(), this->Py(), pz, this->E());
287}

References E(), Px(), Py(), and SetMomentum().

Referenced by genie::NucDeExcitationSim::AddPhoton(), and genie::NucBindEnergyAggregator::ProcessEventRecord().

◆ SetRemovalEnergy()

◆ SetRescatterCode()

◆ SetStatus()

void genie::GHepParticle::SetStatus ( GHepStatus_t s)
inline

Definition at line 126 of file GHepParticle.h.

126{ fStatus = s; }

References fStatus.

Referenced by genie::HNIntranuke2018::AbsorbHN(), genie::HNIntranuke2025::AbsorbHN(), genie::RSPPHadronicSystemGenerator::AddResonanceDecayProducts(), Copy(), genie::BaryonResonanceDecayer::Decay(), genie::Pythia6Decayer2023::Decay(), genie::Pythia8Decayer2023::Decay(), genie::HAIntranuke2018::ElasHA(), genie::HAIntranuke2025::ElasHA(), genie::HAIntranuke::ElasHA(), genie::HNIntranuke2018::ElasHN(), genie::HNIntranuke2025::ElasHN(), genie::HNIntranuke2018::HandleCompoundNucleus(), genie::HNIntranuke2025::HandleCompoundNucleus(), genie::HAIntranuke2018::Inelastic(), genie::HAIntranuke2025::Inelastic(), genie::HAIntranuke::Inelastic(), genie::HAIntranuke2018::InelasticHA(), genie::HAIntranuke2025::InelasticHA(), genie::HAIntranuke::InelasticHA(), genie::HNIntranuke2018::InelasticHN(), genie::HNIntranuke2025::InelasticHN(), genie::utils::intranuke2018::PhaseSpaceDecay(), genie::utils::intranuke2025::PhaseSpaceDecay(), genie::utils::intranuke::PhaseSpaceDecay(), genie::utils::intranuke2018::PionProduction(), genie::utils::intranuke2025::PionProduction(), genie::utils::intranuke::PionProduction(), genie::utils::intranuke::PreEquilibrium(), genie::HEDISGenerator::ProcessEventRecord(), genie::INukeDeltaPropg::ProcessEventRecord(), genie::HAIntranuke2018::SimulateHadronicFinalState(), genie::HAIntranuke2025::SimulateHadronicFinalState(), genie::HAIntranuke::SimulateHadronicFinalState(), genie::HNIntranuke2018::SimulateHadronicFinalState(), genie::HNIntranuke2025::SimulateHadronicFinalState(), genie::utils::intranuke2018::ThreeBodyKinematics(), genie::utils::intranuke2025::ThreeBodyKinematics(), genie::utils::intranuke::ThreeBodyKinematics(), genie::Intranuke2018::TransportHadrons(), genie::Intranuke2025::TransportHadrons(), genie::Intranuke::TransportHadrons(), genie::HadronTransporter::TransportInTransparentNuc(), genie::utils::intranuke2018::TwoBodyCollision(), genie::utils::intranuke2025::TwoBodyCollision(), and genie::utils::intranuke::TwoBodyCollision().

◆ Status()

GHepStatus_t genie::GHepParticle::Status ( void ) const
inline

Definition at line 64 of file GHepParticle.h.

64{ return fStatus; }

References fStatus.

Referenced by AcceptEvent(), CheckChargeConservation(), CheckDecayerConsistency(), CheckEnergyMomentumConservation(), CheckForNumFinStateNucleonsInconsistentWithTarget(), CheckForOffMassShellParticlesInFinState(), CheckForPseudoParticlesInFinState(), ConvertToGHad(), ConvertToGHepMock(), ConvertToGINuke(), ConvertToGRooTracker(), ConvertToGST(), ConvertToGTracker(), ConvertToGXML(), Copy(), genie::Pythia6Decayer2023::Decay(), genie::GHepRecord::EventGenerationMode(), FindhAFate(), genie::GHepRecord::FindParticle(), genie::GHepRecord::FirstNonInitStateEntry(), genie::hnl::Decayer::GenerateDecayProducts(), GenerateEvent(), genie::CascadeReweight::GetEventWeight(), genie::GHepRecord::GetStableDescendants(), genie::Pythia6Hadro2019::Hadronize(), genie::Pythia8Hadro2019::Hadronize(), genie::GHepRecord::HitElectronPosition(), genie::GHepRecord::HitNucleonPosition(), main(), genie::Intranuke2018::NeedsRescattering(), genie::Intranuke2025::NeedsRescattering(), genie::Intranuke::NeedsRescattering(), genie::GHepRecord::NEntries(), genie::utils::ghep::NeutReactionCode(), genie::utils::ghep::NuanceReactionCode(), operator<<(), genie::GHepRecord::ParticlePosition(), Print(), genie::GHepRecord::Print(), genie::BaryonResonanceDecayer::ProcessEventRecord(), genie::INukeDeltaPropg::ProcessEventRecord(), genie::NucBindEnergyAggregator::ProcessEventRecord(), genie::Pythia6Decayer2023::ProcessEventRecord(), genie::Pythia8Decayer2023::ProcessEventRecord(), genie::GHepRecord::RemnantNucleusPosition(), genie::GHepRecord::RemoveIntermediateParticles(), genie::DISHadronicSystemGenerator::SimulateFormationZone(), genie::GHepRecord::TargetNucleusPosition(), genie::DarkSectorDecayer::ToBeDecayed(), and genie::HadronTransporter::TransportInTransparentNuc().

◆ Vt()

double genie::GHepParticle::Vt ( void ) const
inline

Get production time.

Definition at line 97 of file GHepParticle.h.

References fX4.

Referenced by ConvertToGXML(), GenerateEvent(), operator<<(), genie::GHepRecord::Print(), and genie::hnl::VertexGenerator::ProcessEventRecord().

◆ Vx()

double genie::GHepParticle::Vx ( void ) const
inline

◆ Vy()

double genie::GHepParticle::Vy ( void ) const
inline

◆ Vz()

double genie::GHepParticle::Vz ( void ) const
inline

◆ X4() [1/2]

TLorentzVector * genie::GHepParticle::X4 ( void )
inline

Definition at line 81 of file GHepParticle.h.

81{ return fX4; }

References fX4.

◆ X4() [2/2]

const TLorentzVector * genie::GHepParticle::X4 ( void ) const
inline

Definition at line 79 of file GHepParticle.h.

79{ return fX4; }

References fX4.

Referenced by genie::DMETargetRemnantGenerator::AddElectronNeutrino(), genie::NuETargetRemnantGenerator::AddElectronNeutrino(), genie::COHDNuEventGenerator::AddFinalStateDarkNeutrino(), genie::MECGenerator::AddFinalStateLepton(), genie::AMNuGammaGenerator::AddFinalStateNeutrino(), genie::CEvNSEventGenerator::AddFinalStateNeutrino(), genie::AMNuGammaGenerator::AddPhoton(), genie::HEDISGenerator::AddPrimaryLepton(), genie::IBDHadronicSystemGenerator::AddRecoilBaryon(), genie::QELHadronicSystemGenerator::AddRecoilBaryon(), genie::AMNuGammaGenerator::AddRecoilNucleon(), genie::CEvNSEventGenerator::AddRecoilNucleus(), genie::COHDNuEventGenerator::AddRecoilNucleus(), genie::RESHadronicSystemGenerator::AddResonance(), genie::RSPPHadronicSystemGenerator::AddResonanceDecayProducts(), genie::OutgoingDarkGenerator::AddToEventRecord(), genie::PrimaryLeptonGenerator::AddToEventRecord(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_AlvarezRuso(), genie::SKHadronicSystemGenerator::CalculateHadronicSystem_AtharSingleKaon(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_BergerSehgalFM(), genie::COHHadronicSystemGenerator::CalculateHadronicSystem_ReinSehgal(), CheckVertexDistribution(), ConvertToGHepMock(), ConvertToGRooTracker(), ConvertToGTracker(), Copy(), genie::Pythia6Decayer2023::Decay(), genie::Pythia8Decayer2023::Decay(), genie::BaryonResonanceDecayer::DecayExclusive(), genie::MECGenerator::GenerateNSVInitialHadrons(), genie::QELEventGeneratorSuSA::GenerateNucleon(), genie::Intranuke::GenerateStep(), genie::Pythia6Hadro2019::Hadronize(), genie::Pythia8Hadro2019::Hadronize(), genie::HAIntranuke2018::Inelastic(), genie::HAIntranuke2025::Inelastic(), genie::HAIntranuke::Inelastic(), genie::Intranuke2018::IsInNucleus(), genie::Intranuke2025::IsInNucleus(), genie::Intranuke::IsInNucleus(), genie::FermiMover::KickHitNucleon(), genie::AGCharmPythiaBaseHadro2023::ProcessEventRecord(), genie::AGKYLowW2019::ProcessEventRecord(), genie::DFRHadronicSystemGenerator::ProcessEventRecord(), genie::DMELEventGenerator::ProcessEventRecord(), genie::DMELKinematicsGenerator::ProcessEventRecord(), genie::HENuElGenerator::ProcessEventRecord(), genie::INukeDeltaPropg::ProcessEventRecord(), genie::NormGenerator::ProcessEventRecord(), genie::PauliBlocker::ProcessEventRecord(), genie::QELEventGenerator::ProcessEventRecord(), genie::QELEventGeneratorSM::ProcessEventRecord(), genie::QELKinematicsGenerator::ProcessEventRecord(), genie::MECGenerator::RecoilNucleonCluster(), genie::QELEventGeneratorSuSA::SelectLeptonKinematics(), genie::MECGenerator::SelectNSVLeptonKinematics(), genie::MECGenerator::SelectSuSALeptonKinematics(), genie::DarkSectorDecayer::SetSpaceTime(), genie::DISHadronicSystemGenerator::SimulateFormationZone(), genie::DMELKinematicsGenerator::SpectralFuncExperimentalCode(), genie::QELKinematicsGenerator::SpectralFuncExperimentalCode(), genie::SRCNuclearRecoil::SRCRecoilPDG(), genie::utils::intranuke2018::StepParticle(), genie::utils::intranuke2025::StepParticle(), genie::utils::intranuke::StepParticle(), genie::Intranuke2018::TransportHadrons(), genie::Intranuke2025::TransportHadrons(), genie::Intranuke::TransportHadrons(), genie::GLRESWdecPythia6::Wdecay(), genie::GLRESWdecPythia8::Wdecay(), genie::PhotonCOHWdecPythia6::Wdecay(), genie::PhotonCOHWdecPythia8::Wdecay(), genie::PhotonRESWdecPythia6::Wdecay(), and genie::PhotonRESWdecPythia8::Wdecay().

◆ Z()

◆ operator<<

ostream & operator<< ( ostream & stream,
const GHepParticle & p )
friend

References GHepParticle().

Member Data Documentation

◆ fFirstDaughter

int genie::GHepParticle::fFirstDaughter
private

◆ fFirstMother

int genie::GHepParticle::fFirstMother
private

first mother idx

Definition at line 177 of file GHepParticle.h.

Referenced by CompareFamily(), FirstMother(), GHepParticle(), GHepParticle(), GHepParticle(), Init(), and SetFirstMother().

◆ fIsBound

bool genie::GHepParticle::fIsBound
private

'is it a bound particle?' flag

Definition at line 186 of file GHepParticle.h.

Referenced by Copy(), GHepParticle(), GHepParticle(), GHepParticle(), Init(), IsBound(), and SetBound().

◆ fLastDaughter

int genie::GHepParticle::fLastDaughter
private

last daughter idx

Definition at line 180 of file GHepParticle.h.

Referenced by CompareFamily(), GHepParticle(), GHepParticle(), GHepParticle(), Init(), LastDaughter(), and SetLastDaughter().

◆ fLastMother

int genie::GHepParticle::fLastMother
private

last mother idx

Definition at line 178 of file GHepParticle.h.

Referenced by CompareFamily(), GHepParticle(), GHepParticle(), GHepParticle(), Init(), LastMother(), and SetLastMother().

◆ fP4

TLorentzVector* genie::GHepParticle::fP4
private

momentum 4-vector (GeV)

Definition at line 181 of file GHepParticle.h.

Referenced by CleanUp(), E(), GetP4(), GHepParticle(), GHepParticle(), GHepParticle(), Init(), IsOnMassShell(), KinE(), P4(), P4(), Px(), Py(), Pz(), SetMomentum(), and SetMomentum().

◆ fPdgCode

int genie::GHepParticle::fPdgCode
private

◆ fPolzPhi

double genie::GHepParticle::fPolzPhi
private

azimuthal polarization angle (rad)

Definition at line 184 of file GHepParticle.h.

Referenced by Copy(), GetPolarization(), GHepParticle(), GHepParticle(), GHepParticle(), Init(), PolzAzimuthAngle(), PolzIsSet(), and SetPolarization().

◆ fPolzTheta

double genie::GHepParticle::fPolzTheta
private

polar polarization angle (rad)

Definition at line 183 of file GHepParticle.h.

Referenced by Copy(), GetPolarization(), GHepParticle(), GHepParticle(), GHepParticle(), Init(), PolzIsSet(), PolzPolarAngle(), and SetPolarization().

◆ fRemovalEnergy

double genie::GHepParticle::fRemovalEnergy
private

removal energy for bound nucleons (GeV)

Definition at line 185 of file GHepParticle.h.

Referenced by Copy(), GHepParticle(), GHepParticle(), GHepParticle(), Init(), RemovalEnergy(), SetBound(), and SetRemovalEnergy().

◆ fRescatterCode

int genie::GHepParticle::fRescatterCode
private

rescattering code

Definition at line 176 of file GHepParticle.h.

Referenced by GHepParticle(), GHepParticle(), GHepParticle(), Init(), RescatterCode(), and SetRescatterCode().

◆ fStatus

GHepStatus_t genie::GHepParticle::fStatus
private

particle status

Definition at line 175 of file GHepParticle.h.

Referenced by Compare(), CompareStatusCodes(), GHepParticle(), GHepParticle(), GHepParticle(), Init(), SetStatus(), and Status().

◆ fX4

TLorentzVector* genie::GHepParticle::fX4
private

position 4-vector (in the target nucleus coordinate system / x,y,z in fm / t from the moment of the primary interaction in ys(yocto second = 10^-24 s)

Definition at line 182 of file GHepParticle.h.

Referenced by CleanUp(), GetX4(), GHepParticle(), GHepParticle(), GHepParticle(), Init(), SetPosition(), Vt(), Vx(), Vy(), Vz(), X4(), and X4().


The documentation for this class was generated from the following files: