Geant4  10.01.p02
G4CascadeFinalStateAlgorithm Class Reference

#include <G4CascadeFinalStateAlgorithm.hh>

+ Inheritance diagram for G4CascadeFinalStateAlgorithm:
+ Collaboration diagram for G4CascadeFinalStateAlgorithm:

Public Member Functions

 G4CascadeFinalStateAlgorithm ()
 
virtual ~G4CascadeFinalStateAlgorithm ()
 
virtual void SetVerboseLevel (G4int verbose)
 
void Configure (G4InuclElementaryParticle *bullet, G4InuclElementaryParticle *target, const std::vector< G4int > &particle_kinds)
 
- Public Member Functions inherited from G4VHadDecayAlgorithm
 G4VHadDecayAlgorithm (const G4String &algName, G4int verbose=0)
 
virtual ~G4VHadDecayAlgorithm ()
 
void Generate (G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
 
G4int GetVerboseLevel () const
 
const G4StringGetName () const
 

Protected Member Functions

virtual void GenerateTwoBody (G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
 
virtual void GenerateMultiBody (G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
 
void SaveKinematics (G4InuclElementaryParticle *bullet, G4InuclElementaryParticle *target)
 
void ChooseGenerators (G4int is, G4int fs)
 
void FillMagnitudes (G4double initialMass, const std::vector< G4double > &masses)
 
G4bool satisfyTriangle (const std::vector< G4double > &pmod) const
 
void FillDirections (G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
 
void FillDirThreeBody (G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
 
void FillDirManyBody (G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
 
G4double GenerateCosTheta (G4int ptype, G4double pmod) const
 
void FillUsingKopylov (G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
 
G4double BetaKopylov (G4int K) const
 
- Protected Member Functions inherited from G4VHadDecayAlgorithm
virtual G4bool IsDecayAllowed (G4double initialMass, const std::vector< G4double > &masses) const
 
G4double TwoBodyMomentum (G4double M0, G4double M1, G4double M2) const
 
G4double UniformTheta () const
 
G4double UniformPhi () const
 
void PrintVector (const std::vector< G4double > &v, const G4String &name, std::ostream &os) const
 

Private Attributes

const G4VMultiBodyMomDstmomDist
 
const G4VTwoBodyAngDstangDist
 
std::vector< G4intkinds
 
G4int multiplicity
 
G4double bullet_ekin
 
G4LorentzConvertor toSCM
 
std::vector< G4doublemodules
 
G4ThreeVector mom
 

Static Private Attributes

static const G4double maxCosTheta = 0.9999
 
static const G4double oneOverE = 0.3678794
 
static const G4double small = 1.e-10
 
static const G4int itry_max = 10
 

Detailed Description

Definition at line 49 of file G4CascadeFinalStateAlgorithm.hh.

Constructor & Destructor Documentation

G4CascadeFinalStateAlgorithm::G4CascadeFinalStateAlgorithm ( )

Definition at line 73 of file G4CascadeFinalStateAlgorithm.cc.

G4CascadeFinalStateAlgorithm::~G4CascadeFinalStateAlgorithm ( )
virtual

Definition at line 77 of file G4CascadeFinalStateAlgorithm.cc.

Member Function Documentation

G4double G4CascadeFinalStateAlgorithm::BetaKopylov ( G4int  K) const
protected

Definition at line 505 of file G4CascadeFinalStateAlgorithm.cc.

References G4UniformRand, G4Pow::GetInstance(), and G4Pow::powN().

Referenced by FillUsingKopylov().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4CascadeFinalStateAlgorithm::ChooseGenerators ( G4int  is,
G4int  fs 
)
protected

Definition at line 134 of file G4CascadeFinalStateAlgorithm.cc.

References angDist, G4cout, G4endl, G4MultiBodyMomentumDist::GetDist(), G4TwoBodyAngularDist::GetDist(), G4VMultiBodyMomDst::GetName(), G4VTwoBodyAngDst::GetName(), G4VHadDecayAlgorithm::GetName(), G4VHadDecayAlgorithm::GetVerboseLevel(), momDist, multiplicity, and G4CascadeParameters::usePhaseSpace().

Referenced by Configure().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4CascadeFinalStateAlgorithm::Configure ( G4InuclElementaryParticle bullet,
G4InuclElementaryParticle target,
const std::vector< G4int > &  particle_kinds 
)

Definition at line 90 of file G4CascadeFinalStateAlgorithm.cc.

References ChooseGenerators(), G4cout, G4endl, G4VHadDecayAlgorithm::GetName(), G4VHadDecayAlgorithm::GetVerboseLevel(), kinds, multiplicity, SaveKinematics(), and G4InuclElementaryParticle::type().

Referenced by G4CascadeFinalStateGenerator::Configure().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4CascadeFinalStateAlgorithm::FillDirections ( G4double  initialMass,
const std::vector< G4double > &  masses,
std::vector< G4LorentzVector > &  finalState 
)
protected

Definition at line 311 of file G4CascadeFinalStateAlgorithm.cc.

References FillDirManyBody(), FillDirThreeBody(), G4cout, G4endl, G4VHadDecayAlgorithm::GetName(), G4VHadDecayAlgorithm::GetVerboseLevel(), modules, and multiplicity.

Referenced by GenerateMultiBody().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4CascadeFinalStateAlgorithm::FillDirManyBody ( G4double  initialMass,
const std::vector< G4double > &  masses,
std::vector< G4LorentzVector > &  finalState 
)
protected

Definition at line 360 of file G4CascadeFinalStateAlgorithm.cc.

References G4cout, G4endl, GenerateCosTheta(), G4InuclSpecialFunctions::generateWithFixedTheta(), G4VHadDecayAlgorithm::GetName(), G4VHadDecayAlgorithm::GetVerboseLevel(), kinds, maxCosTheta, modules, multiplicity, G4LorentzConvertor::rotate(), and toSCM.

Referenced by FillDirections().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4CascadeFinalStateAlgorithm::FillDirThreeBody ( G4double  initialMass,
const std::vector< G4double > &  masses,
std::vector< G4LorentzVector > &  finalState 
)
protected

Definition at line 327 of file G4CascadeFinalStateAlgorithm.cc.

References G4cout, G4endl, GenerateCosTheta(), G4InuclSpecialFunctions::generateWithFixedTheta(), G4VHadDecayAlgorithm::GetName(), G4VHadDecayAlgorithm::GetVerboseLevel(), kinds, maxCosTheta, modules, G4LorentzConvertor::rotate(), and toSCM.

Referenced by FillDirections().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4CascadeFinalStateAlgorithm::FillMagnitudes ( G4double  initialMass,
const std::vector< G4double > &  masses 
)
protected

Definition at line 226 of file G4CascadeFinalStateAlgorithm.cc.

References bullet_ekin, G4cerr, G4cout, G4endl, G4VMultiBodyMomDst::GetMomentum(), G4VHadDecayAlgorithm::GetName(), G4VHadDecayAlgorithm::GetVerboseLevel(), itry_max, kinds, modules, momDist, multiplicity, satisfyTriangle(), and small.

Referenced by GenerateMultiBody().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4CascadeFinalStateAlgorithm::FillUsingKopylov ( G4double  initialMass,
const std::vector< G4double > &  masses,
std::vector< G4LorentzVector > &  finalState 
)
protected

Definition at line 462 of file G4CascadeFinalStateAlgorithm.cc.

References BetaKopylov(), G4cout, G4endl, G4VHadDecayAlgorithm::GetName(), G4VHadDecayAlgorithm::GetVerboseLevel(), G4VHadDecayAlgorithm::TwoBodyMomentum(), G4VHadDecayAlgorithm::UniformPhi(), and G4VHadDecayAlgorithm::UniformTheta().

Referenced by GenerateMultiBody().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4CascadeFinalStateAlgorithm::GenerateCosTheta ( G4int  ptype,
G4double  pmod 
) const
protected

Definition at line 411 of file G4CascadeFinalStateAlgorithm.cc.

References angDist, bullet_ekin, G4cout, G4endl, G4VTwoBodyAngDst::GetCosTheta(), G4VHadDecayAlgorithm::GetName(), G4VHadDecayAlgorithm::GetVerboseLevel(), G4InuclSpecialFunctions::inuclRndm(), itry_max, maxCosTheta, multiplicity, oneOverE, and p0.

Referenced by FillDirManyBody(), and FillDirThreeBody().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4CascadeFinalStateAlgorithm::GenerateMultiBody ( G4double  initialMass,
const std::vector< G4double > &  masses,
std::vector< G4LorentzVector > &  finalState 
)
protectedvirtual

Implements G4VHadDecayAlgorithm.

Definition at line 203 of file G4CascadeFinalStateAlgorithm.cc.

References FillDirections(), FillMagnitudes(), FillUsingKopylov(), G4cout, G4endl, G4VHadDecayAlgorithm::GetName(), G4VHadDecayAlgorithm::GetVerboseLevel(), itry_max, momDist, multiplicity, and G4CascadeParameters::usePhaseSpace().

+ Here is the call graph for this function:

void G4CascadeFinalStateAlgorithm::GenerateTwoBody ( G4double  initialMass,
const std::vector< G4double > &  masses,
std::vector< G4LorentzVector > &  finalState 
)
protectedvirtual

Implements G4VHadDecayAlgorithm.

Definition at line 162 of file G4CascadeFinalStateAlgorithm.cc.

References angDist, bullet_ekin, G4cout, G4endl, G4UniformRand, G4VTwoBodyAngDst::GetCosTheta(), G4VHadDecayAlgorithm::GetName(), G4VHadDecayAlgorithm::GetVerboseLevel(), kinds, mom, multiplicity, G4LorentzConvertor::rotate(), toSCM, G4VHadDecayAlgorithm::TwoBodyMomentum(), and G4VHadDecayAlgorithm::UniformPhi().

+ Here is the call graph for this function:

G4bool G4CascadeFinalStateAlgorithm::satisfyTriangle ( const std::vector< G4double > &  pmod) const
protected

Definition at line 294 of file G4CascadeFinalStateAlgorithm.cc.

References G4cout, G4endl, G4VHadDecayAlgorithm::GetName(), and G4VHadDecayAlgorithm::GetVerboseLevel().

Referenced by FillMagnitudes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4CascadeFinalStateAlgorithm::SaveKinematics ( G4InuclElementaryParticle bullet,
G4InuclElementaryParticle target 
)
protected

Definition at line 113 of file G4CascadeFinalStateAlgorithm.cc.

References bullet_ekin, G4cout, G4endl, G4LorentzConvertor::getKinEnergyInTheTRS(), G4VHadDecayAlgorithm::GetName(), G4VHadDecayAlgorithm::GetVerboseLevel(), G4InuclElementaryParticle::nucleon(), G4LorentzConvertor::setBullet(), G4LorentzConvertor::setTarget(), toSCM, and G4LorentzConvertor::toTheCenterOfMass().

Referenced by Configure().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4CascadeFinalStateAlgorithm::SetVerboseLevel ( G4int  verbose)
virtual

Reimplemented from G4VHadDecayAlgorithm.

Definition at line 79 of file G4CascadeFinalStateAlgorithm.cc.

References G4LorentzConvertor::setVerbose(), G4VHadDecayAlgorithm::SetVerboseLevel(), G4MultiBodyMomentumDist::setVerboseLevel(), G4TwoBodyAngularDist::setVerboseLevel(), and toSCM.

+ Here is the call graph for this function:

Member Data Documentation

const G4VTwoBodyAngDst* G4CascadeFinalStateAlgorithm::angDist
private
G4double G4CascadeFinalStateAlgorithm::bullet_ekin
private
const G4int G4CascadeFinalStateAlgorithm::itry_max = 10
staticprivate
std::vector<G4int> G4CascadeFinalStateAlgorithm::kinds
private
const G4double G4CascadeFinalStateAlgorithm::maxCosTheta = 0.9999
staticprivate
std::vector<G4double> G4CascadeFinalStateAlgorithm::modules
private
G4ThreeVector G4CascadeFinalStateAlgorithm::mom
private

Definition at line 117 of file G4CascadeFinalStateAlgorithm.hh.

Referenced by GenerateTwoBody().

const G4VMultiBodyMomDst* G4CascadeFinalStateAlgorithm::momDist
private
G4int G4CascadeFinalStateAlgorithm::multiplicity
private
const G4double G4CascadeFinalStateAlgorithm::oneOverE = 0.3678794
staticprivate

Definition at line 120 of file G4CascadeFinalStateAlgorithm.hh.

Referenced by GenerateCosTheta().

const G4double G4CascadeFinalStateAlgorithm::small = 1.e-10
staticprivate

Definition at line 121 of file G4CascadeFinalStateAlgorithm.hh.

Referenced by FillMagnitudes().

G4LorentzConvertor G4CascadeFinalStateAlgorithm::toSCM
private

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