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