34 #ifndef G4VHadDecayAlgorithm_HH
35 #define G4VHadDecayAlgorithm_HH 1
46 :
name(algName), verboseLevel(verbose) {;}
51 const std::vector<G4double>& masses,
52 std::vector<G4LorentzVector>& finalState);
62 const std::vector<G4double>& masses,
63 std::vector<G4LorentzVector>& finalState) = 0;
66 const std::vector<G4double>& masses,
67 std::vector<G4LorentzVector>& finalState) = 0;
72 const std::vector<G4double>& masses)
const;
83 std::ostream& os)
const;
virtual void GenerateTwoBody(G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)=0
G4double UniformTheta() const
virtual ~G4VHadDecayAlgorithm()
virtual G4bool IsDecayAllowed(G4double initialMass, const std::vector< G4double > &masses) const
virtual void GenerateMultiBody(G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)=0
G4int GetVerboseLevel() const
G4VHadDecayAlgorithm(const G4String &algName, G4int verbose=0)
void Generate(G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
void PrintVector(const std::vector< G4double > &v, const G4String &name, std::ostream &os) const
virtual void SetVerboseLevel(G4int verbose)
const G4String & GetName() const
G4double UniformPhi() const
G4double TwoBodyMomentum(G4double M0, G4double M1, G4double M2) const