35 #ifndef G4KineticTrack_h
36 #define G4KineticTrack_h 1
38 #include <CLHEP/Units/PhysicalConstants.h>
273 if (
sqr(aEnergy) > mass2 )
275 newP = std::sqrt(
sqr(aEnergy) - mass2 );
278 aEnergy=std::sqrt(mass2);
309 if (
sqr(aEnergy) > mass2 )
311 newP = std::sqrt(
sqr(aEnergy) - mass2 );
314 aEnergy=std::sqrt(mass2);
365 for (index =
nChannels - 1; index >= 0; index--)
369 return theTotalActualWidth;
377 G4double tau = CLHEP::hbar_Planck * (-1.0 / theTotalActualWidth);
388 if((m_ij[0]+m_ij[1])<mass)
389 theCMMomentum = 1 / (2 * mass) *
390 std::sqrt (((mass * mass) - (m_ij[0] + m_ij[1]) * (m_ij[0] + m_ij[1])) *
391 ((mass * mass) - (m_ij[0] - m_ij[1]) * (m_ij[0] - m_ij[1])));
395 return theCMMomentum;
401 return (Gamma/((mass-rmass)*(mass-rmass)+Gamma*Gamma/4.))/Norm;
G4bool IsParticipant() const
void Update4Momentum(G4double aEnergy)
G4double IntegrateCMMomentum2() const
G4int operator==(const G4KineticTrack &right) const
CascadeState GetState() const
G4double theFormationTime
G4int GetnChannels() const
G4LorentzVector theTotal4Momentum
CLHEP::Hep3Vector G4ThreeVector
G4double * theDaughterWidth
const G4ThreeVector & GetPosition() const
G4ParticleDefinition * theDefinition
G4KineticTrackVector * Decay()
void SetFormationTime(G4double aFormationTime)
void UpdateTrackingMomentum(G4double aEnergy)
void SetDefinition(G4ParticleDefinition *aDefinition)
G4double GetActualMass() const
G4ThreeVector thePosition
void SetProjectilePotential(const G4double aPotential)
G4double IntegrateCMMomentum(const G4double lowerLimit) const
G4double IntegrandFunction3(G4double xmass) const
G4double * theDaughterMass
G4LorentzVector theFermi3Momentum
G4double IntegrandFunction2(G4double xmass) const
G4double * GetActualWidth() const
G4int operator!=(const G4KineticTrack &right) const
G4ParticleDefinition * GetDefinition() const
void SetActualWidth(G4double *anActualWidth)
CascadeState SetState(const CascadeState new_state)
G4double IntegrandFunction4(G4double xmass) const
G4bool nucleon(G4int ityp)
G4double GetFormationTime() const
G4LorentzVector the4Momentum
void SetNucleon(G4Nucleon *aN)
void SetPosition(const G4ThreeVector aPosition)
G4double EvaluateTotalActualWidth()
G4KineticTrack & operator=(const G4KineticTrack &right)
void Set4Momentum(const G4LorentzVector &a4Momentum)
void SetnChannels(const G4int aChannel)
G4double EvaluateCMMomentum(const G4double mass, const G4double *m_ij) const
const G4LorentzVector & GetTrackingMomentum() const
G4double * theActualWidth
G4double IntegrandFunction1(G4double xmass) const
void SetTrackingMomentum(const G4LorentzVector &a4Momentum)
void Hit(G4VSplitableHadron *aHit)
const G4LorentzVector & Get4Momentum() const
G4double theProjectilePotential
G4double SampleResidualLifetime()
G4double BrWig(const G4double Gamma, const G4double rmass, const G4double mass) const
G4double GetProjectilePotential() const
CLHEP::HepLorentzVector G4LorentzVector
CascadeState theStateToNucleus