#include <G4HadPhaseSpaceGenbod.hh>
|
virtual void | GenerateMultiBody (G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState) |
|
void | Initialize (G4double initialMass, const std::vector< G4double > &masses) |
|
void | FillRandomBuffer () |
|
void | ComputeWeightScale (const std::vector< G4double > &masses) |
|
void | FillEnergySteps (G4double initialMass, const std::vector< G4double > &masses) |
|
void | GenerateMomenta (const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState) |
|
void | AccumulateFinalState (size_t i, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState) |
|
G4bool | AcceptEvent () const |
|
G4double | ComputeWeight () const |
|
virtual void | GenerateTwoBody (G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState) |
|
G4ThreeVector | UniformVector (G4double mag=1.) const |
|
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 |
|
Definition at line 38 of file G4HadPhaseSpaceGenbod.hh.
◆ G4HadPhaseSpaceGenbod()
G4HadPhaseSpaceGenbod::G4HadPhaseSpaceGenbod |
( |
G4int |
verbose = 0 | ) |
|
◆ ~G4HadPhaseSpaceGenbod()
virtual G4HadPhaseSpaceGenbod::~G4HadPhaseSpaceGenbod |
( |
| ) |
|
|
inlinevirtual |
◆ AcceptEvent()
G4bool G4HadPhaseSpaceGenbod::AcceptEvent |
( |
| ) |
const |
|
protected |
Definition at line 171 of file G4HadPhaseSpaceGenbod.cc.
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
G4int GetVerboseLevel() const
G4double ComputeWeight() const
◆ AccumulateFinalState()
void G4HadPhaseSpaceGenbod::AccumulateFinalState |
( |
size_t |
i, |
|
|
const std::vector< G4double > & |
masses, |
|
|
std::vector< G4LorentzVector > & |
finalState |
|
) |
| |
|
protected |
Definition at line 198 of file G4HadPhaseSpaceGenbod.cc.
214 G4cout <<
" initialized Py " << -
pd[i-1] <<
" phi " << phi
215 <<
" theta " << theta <<
G4endl;
222 gamma = esys /
meff[i];
225 G4cout <<
" esys " << esys <<
" beta " << beta <<
" gamma " << gamma
229 for (
size_t j=0; j<=i; j++) {
230 finalState[j].rotateZ(theta).rotateY(phi);
231 finalState[j].setY(gamma*(finalState[j].
y() + beta*finalState[j].
e()));
CLHEP::Hep3Vector G4ThreeVector
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
static const double twopi
std::vector< G4double > pd
G4int GetVerboseLevel() const
std::vector< G4double > meff
◆ ComputeWeight()
G4double G4HadPhaseSpaceGenbod::ComputeWeight |
( |
| ) |
const |
|
protected |
Definition at line 164 of file G4HadPhaseSpaceGenbod.cc.
168 std::multiplies<G4double>()));
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
std::vector< G4double > pd
G4int GetVerboseLevel() const
◆ ComputeWeightScale()
void G4HadPhaseSpaceGenbod::ComputeWeightScale |
( |
const std::vector< G4double > & |
masses | ) |
|
|
protected |
Definition at line 149 of file G4HadPhaseSpaceGenbod.cc.
154 for (
size_t i=1; i<
nFinal; i++) {
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
std::vector< G4double > msum
G4int GetVerboseLevel() const
G4double TwoBodyMomentum(G4double M0, G4double M1, G4double M2) const
◆ FillEnergySteps()
void G4HadPhaseSpaceGenbod::FillEnergySteps |
( |
G4double |
initialMass, |
|
|
const std::vector< G4double > & |
masses |
|
) |
| |
|
protected |
Definition at line 124 of file G4HadPhaseSpaceGenbod.cc.
131 meff.push_back(masses[0]);
132 for (
size_t i=1; i<
nFinal-1; i++) {
136 meff.push_back(initialMass);
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
std::vector< G4double > pd
std::vector< G4double > rndm
std::vector< G4double > msum
G4int GetVerboseLevel() const
std::vector< G4double > meff
void PrintVector(const std::vector< G4double > &v, const G4String &name, std::ostream &os) const
G4double TwoBodyMomentum(G4double M0, G4double M1, G4double M2) const
◆ FillRandomBuffer()
void G4HadPhaseSpaceGenbod::FillRandomBuffer |
( |
| ) |
|
|
protected |
Definition at line 111 of file G4HadPhaseSpaceGenbod.cc.
116 std::sort(
rndm.begin(),
rndm.end());
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
void generate(const G4double sqrtS, ParticleList &particles)
Generate an event in the CM system.
std::vector< G4double > rndm
G4int GetVerboseLevel() const
void PrintVector(const std::vector< G4double > &v, const G4String &name, std::ostream &os) const
◆ GenerateMomenta()
void G4HadPhaseSpaceGenbod::GenerateMomenta |
( |
const std::vector< G4double > & |
masses, |
|
|
std::vector< G4LorentzVector > & |
finalState |
|
) |
| |
|
protected |
Definition at line 182 of file G4HadPhaseSpaceGenbod.cc.
186 finalState.resize(
nFinal);
188 for (
size_t i=0; i<
nFinal; i++) {
191 G4cout <<
" finalState[" << i <<
"] " << finalState[i] <<
G4endl;
const G4String & GetName() const
void AccumulateFinalState(size_t i, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
G4GLOB_DLL std::ostream G4cout
G4int GetVerboseLevel() const
◆ GenerateMultiBody()
void G4HadPhaseSpaceGenbod::GenerateMultiBody |
( |
G4double |
initialMass, |
|
|
const std::vector< G4double > & |
masses, |
|
|
std::vector< G4LorentzVector > & |
finalState |
|
) |
| |
|
protectedvirtual |
Implements G4VHadDecayAlgorithm.
Definition at line 60 of file G4HadPhaseSpaceGenbod.cc.
69 const G4int maxNumberOfLoops = 10000;
76 if (
nTrials >= maxNumberOfLoops ) {
78 ed <<
" Failed sampling after maxNumberOfLoops attempts : forced exit" <<
G4endl;
std::ostringstream G4ExceptionDescription
void FillEnergySteps(G4double initialMass, const std::vector< G4double > &masses)
void GenerateMomenta(const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void Initialize(G4double initialMass, const std::vector< G4double > &masses)
G4int GetVerboseLevel() const
G4bool AcceptEvent() const
◆ Initialize()
void G4HadPhaseSpaceGenbod::Initialize |
( |
G4double |
initialMass, |
|
|
const std::vector< G4double > & |
masses |
|
) |
| |
|
protected |
Definition at line 85 of file G4HadPhaseSpaceGenbod.cc.
92 std::partial_sum(masses.begin(), masses.end(),
msum.begin());
93 std::transform(masses.begin(), masses.end(), masses.begin(),
msq.begin(),
94 std::multiplies<G4double>());
void ComputeWeightScale(const std::vector< G4double > &masses)
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
std::vector< G4double > msq
std::vector< G4double > msum
G4int GetVerboseLevel() const
void PrintVector(const std::vector< G4double > &v, const G4String &name, std::ostream &os) const
◆ massExcess
G4double G4HadPhaseSpaceGenbod::massExcess |
|
private |
◆ meff
std::vector<G4double> G4HadPhaseSpaceGenbod::meff |
|
private |
◆ msq
std::vector<G4double> G4HadPhaseSpaceGenbod::msq |
|
private |
◆ msum
std::vector<G4double> G4HadPhaseSpaceGenbod::msum |
|
private |
◆ nFinal
size_t G4HadPhaseSpaceGenbod::nFinal |
|
private |
◆ nTrials
G4int G4HadPhaseSpaceGenbod::nTrials |
|
private |
◆ pd
std::vector<G4double> G4HadPhaseSpaceGenbod::pd |
|
private |
◆ rndm
std::vector<G4double> G4HadPhaseSpaceGenbod::rndm |
|
private |
◆ totalMass
G4double G4HadPhaseSpaceGenbod::totalMass |
|
private |
◆ weightMax
G4double G4HadPhaseSpaceGenbod::weightMax |
|
private |
The documentation for this class was generated from the following files: