34#ifndef G4CascadeFinalStateAlgorithm_hh
35#define G4CascadeFinalStateAlgorithm_hh 1
58 const std::vector<G4int>& particle_kinds);
63 const std::vector<G4double>& masses,
64 std::vector<G4LorentzVector>& finalState);
68 const std::vector<G4double>& masses,
69 std::vector<G4LorentzVector>& finalState);
80 const std::vector<G4double>& masses);
86 const std::vector<G4double>& masses,
87 std::vector<G4LorentzVector>& finalState);
90 const std::vector<G4double>& masses,
91 std::vector<G4LorentzVector>& finalState);
94 const std::vector<G4double>& masses,
95 std::vector<G4LorentzVector>& finalState);
101 const std::vector<G4double>& masses,
102 std::vector<G4LorentzVector>& finalState);
110 std::vector<G4int> kinds;
115 std::vector<G4double> modules;
121 static const G4int itry_max;
void FillDirThreeBody(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)
G4CascadeFinalStateAlgorithm()
virtual void SetVerboseLevel(G4int verbose)
void FillUsingKopylov(G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
virtual ~G4CascadeFinalStateAlgorithm()
void SaveKinematics(G4InuclElementaryParticle *bullet, G4InuclElementaryParticle *target)
void Configure(G4InuclElementaryParticle *bullet, G4InuclElementaryParticle *target, const std::vector< G4int > &particle_kinds)
G4double GenerateCosTheta(G4int ptype, G4double pmod) const
void FillDirManyBody(G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
void FillDirections(G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
virtual void GenerateTwoBody(G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
void ChooseGenerators(G4int is, G4int fs)
void FillMagnitudes(G4double initialMass, const std::vector< G4double > &masses)
G4bool satisfyTriangle(const std::vector< G4double > &pmod) const
G4double BetaKopylov(G4int K) const