Geant4  10.02.p03
G4VAnnihilationCollision Class Referenceabstract

#include <G4VAnnihilationCollision.hh>

Inheritance diagram for G4VAnnihilationCollision:
Collaboration diagram for G4VAnnihilationCollision:

Public Member Functions

 G4VAnnihilationCollision ()
 
virtual ~G4VAnnihilationCollision ()
 
G4bool operator== (const G4VAnnihilationCollision &right) const
 
G4bool operator!= (const G4VAnnihilationCollision &right) const
 
virtual G4KineticTrackVectorFinalState (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
 
virtual const G4VAngularDistributionGetAngularDistribution () const
 
- Public Member Functions inherited from G4VCollision
 G4VCollision ()
 
void establish_G4MT_TLS_G4VCollision ()
 
 G4VCollision (void *s1, void *s2, void *s3, void *s4, void *s5, void *s6, void *s7)
 
virtual ~G4VCollision ()
 
G4bool operator== (const G4VCollision &right) const
 
G4bool operator!= (const G4VCollision &right) const
 
virtual G4double CrossSection (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
 
virtual G4bool IsInCharge (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const =0
 
virtual G4String GetName () const =0
 
virtual void Print () const
 
virtual void Print (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
 

Protected Member Functions

virtual const G4ParticleDefinitionGetOutgoingParticle (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const =0
 
- Protected Member Functions inherited from G4VCollision
G4int GetNumberOfPartons (const G4ParticleDefinition *aP) const
 
virtual const G4CollisionVectorGetComponents () const
 
virtual const G4VCrossSectionSourceGetCrossSectionSource () const =0
 
virtual const std::vector< G4String > & GetListOfColliders (G4int whichOne) const =0
 

Private Member Functions

double BrWigInt0 (const double x, const double gamma, const double m0) const
 
G4double BrWigInt1 (const G4double x, const G4double gamma, const G4double m0) const
 
double BrWigInv (const double x, const double gamma, const double m0) const
 
double SampleResonanceMass (const double poleMass, const double width, const double minMass, const double maxMass) const
 

Private Attributes

G4VAngularDistributiontheAngularDistribution
 

Detailed Description

Definition at line 56 of file G4VAnnihilationCollision.hh.

Constructor & Destructor Documentation

◆ G4VAnnihilationCollision()

G4VAnnihilationCollision::G4VAnnihilationCollision ( )

Definition at line 43 of file G4VAnnihilationCollision.cc.

44 {
46 }
G4VAngularDistribution * theAngularDistribution

◆ ~G4VAnnihilationCollision()

G4VAnnihilationCollision::~G4VAnnihilationCollision ( )
virtual

Definition at line 49 of file G4VAnnihilationCollision.cc.

50 {
54  }
55 }
G4VAngularDistribution * theAngularDistribution

Member Function Documentation

◆ BrWigInt0()

double G4VAnnihilationCollision::BrWigInt0 ( const double  x,
const double  gamma,
const double  m0 
) const
inlineprivate

Definition at line 82 of file G4VAnnihilationCollision.hh.

83  { return 2.0*gamma*std::atan( 2.0 * (x-m0)/ gamma ); }
Here is the caller graph for this function:

◆ BrWigInt1()

G4double G4VAnnihilationCollision::BrWigInt1 ( const G4double  x,
const G4double  gamma,
const G4double  m0 
) const
inlineprivate

Definition at line 85 of file G4VAnnihilationCollision.hh.

86  { return 0.5*gamma*gamma*G4Log( (x-m0)*(x-m0)+gamma*gamma/4.0 ) + m0*BrWigInt0(x,gamma,m0); }
double BrWigInt0(const double x, const double gamma, const double m0) const
G4double G4Log(G4double x)
Definition: G4Log.hh:230
Here is the call graph for this function:

◆ BrWigInv()

double G4VAnnihilationCollision::BrWigInv ( const double  x,
const double  gamma,
const double  m0 
) const
inlineprivate

Definition at line 88 of file G4VAnnihilationCollision.hh.

89  { return 0.5*gamma*std::tan( 0.5*x/gamma )+m0; }
Here is the call graph for this function:

◆ FinalState()

G4KineticTrackVector * G4VAnnihilationCollision::FinalState ( const G4KineticTrack trk1,
const G4KineticTrack trk2 
) const
virtual

Implements G4VCollision.

Definition at line 58 of file G4VAnnihilationCollision.cc.

60 {
61  G4LorentzVector p = trk1.Get4Momentum() + trk2.Get4Momentum();
62  G4double sqrtS = p.m();
63 // G4double s = sqrtS * sqrtS;
64 
65 // G4double m1 = trk1.GetActualMass();
66 // G4double m2 = trk2.GetActualMass();
67 
68 
69  // Unit vector of three-momentum
70 
71  G4ThreeVector pFinal(0.0, 0.0, 0.0);
72  G4double eFinal = sqrtS;
73 
74  G4LorentzVector p4Final(pFinal, eFinal);
75 
76  // Lorentz transformation
77  G4LorentzRotation toLabFrame(p.boostVector());
78  p4Final *= toLabFrame;
79 
80  const G4ParticleDefinition* OutputDefinition = GetOutgoingParticle(trk1,trk2);
81  G4KineticTrack* final = new G4KineticTrack(OutputDefinition, 0.0, trk1.GetPosition(), p4Final);
82 
83  G4KineticTrackVector* finalTracks = new G4KineticTrackVector;
84 
85  finalTracks->push_back(final);
86 
87  return finalTracks;
88 }
const G4ThreeVector & GetPosition() const
virtual const G4ParticleDefinition * GetOutgoingParticle(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const =0
Hep3Vector boostVector() const
double G4double
Definition: G4Types.hh:76
const G4LorentzVector & Get4Momentum() const
Here is the call graph for this function:

◆ GetAngularDistribution()

virtual const G4VAngularDistribution* G4VAnnihilationCollision::GetAngularDistribution ( ) const
inlinevirtual

Implements G4VCollision.

Definition at line 70 of file G4VAnnihilationCollision.hh.

71  {
73  }
G4VAngularDistribution * theAngularDistribution
Here is the call graph for this function:

◆ GetOutgoingParticle()

virtual const G4ParticleDefinition* G4VAnnihilationCollision::GetOutgoingParticle ( const G4KineticTrack trk1,
const G4KineticTrack trk2 
) const
protectedpure virtual

Implemented in G4ConcreteMesonBaryonToResonance.

Here is the caller graph for this function:

◆ operator!=()

G4bool G4VAnnihilationCollision::operator!= ( const G4VAnnihilationCollision right) const

◆ operator==()

G4bool G4VAnnihilationCollision::operator== ( const G4VAnnihilationCollision right) const

◆ SampleResonanceMass()

double G4VAnnihilationCollision::SampleResonanceMass ( const double  poleMass,
const double  width,
const double  minMass,
const double  maxMass 
) const
private
Here is the caller graph for this function:

Member Data Documentation

◆ theAngularDistribution

G4VAngularDistribution* G4VAnnihilationCollision::theAngularDistribution
private

Definition at line 97 of file G4VAnnihilationCollision.hh.


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