Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4StatMFChannel Class Reference

#include <G4StatMFChannel.hh>

Public Member Functions

 G4StatMFChannel ()
 
 ~G4StatMFChannel ()
 
void CreateFragment (G4int A, G4int Z)
 
size_t GetMultiplicity (void)
 
G4bool CheckFragments (void)
 
G4double GetFragmentsCoulombEnergy (void)
 
G4double GetFragmentsEnergy (G4double T) const
 
G4FragmentVectorGetFragments (G4int anA, G4int anZ, G4double T)
 

Detailed Description

Definition at line 41 of file G4StatMFChannel.hh.

Constructor & Destructor Documentation

◆ G4StatMFChannel()

G4StatMFChannel::G4StatMFChannel ( )

Definition at line 59 of file G4StatMFChannel.cc.

59 :
60 _NumOfNeutralFragments(0),
61 _NumOfChargedFragments(0)
62{}

◆ ~G4StatMFChannel()

G4StatMFChannel::~G4StatMFChannel ( )

Definition at line 64 of file G4StatMFChannel.cc.

65{
66 if (!_theFragments.empty()) {
67 std::for_each(_theFragments.begin(),_theFragments.end(),
68 DeleteFragment());
69 }
70}

Member Function Documentation

◆ CheckFragments()

G4bool G4StatMFChannel::CheckFragments ( void  )

Definition at line 72 of file G4StatMFChannel.cc.

73{
74 std::deque<G4StatMFFragment*>::iterator i;
75 for (i = _theFragments.begin();
76 i != _theFragments.end(); ++i)
77 {
78 G4int A = (*i)->GetA();
79 G4int Z = (*i)->GetZ();
80 if ( (A > 1 && (Z > A || Z <= 0)) || (A==1 && Z > A) || A <= 0 ) return false;
81 }
82 return true;
83}
int G4int
Definition: G4Types.hh:66

Referenced by G4StatMF::BreakItUp().

◆ CreateFragment()

void G4StatMFChannel::CreateFragment ( G4int  A,
G4int  Z 
)

Definition at line 85 of file G4StatMFChannel.cc.

89{
90 if (Z <= 0.5) {
91 _theFragments.push_back(new G4StatMFFragment(A,Z));
92 _NumOfNeutralFragments++;
93 } else {
94 _theFragments.push_front(new G4StatMFFragment(A,Z));
95 _NumOfChargedFragments++;
96 }
97
98 return;
99}

Referenced by G4StatMFMicroCanonical::ChooseAandZ(), and G4StatMFMicroPartition::ChooseZ().

◆ GetFragments()

G4FragmentVector * G4StatMFChannel::GetFragments ( G4int  anA,
G4int  anZ,
G4double  T 
)

Definition at line 127 of file G4StatMFChannel.cc.

131{
132 // calculate momenta of charged fragments
133 CoulombImpulse(anA,anZ,T);
134
135 // calculate momenta of neutral fragments
136 FragmentsMomenta(_NumOfNeutralFragments, _NumOfChargedFragments, T);
137
138 G4FragmentVector * theResult = new G4FragmentVector;
139 std::deque<G4StatMFFragment*>::iterator i;
140 for (i = _theFragments.begin(); i != _theFragments.end(); ++i)
141 theResult->push_back((*i)->GetFragment(T));
142
143 return theResult;
144}
std::vector< G4Fragment * > G4FragmentVector
Definition: G4Fragment.hh:65

◆ GetFragmentsCoulombEnergy()

G4double G4StatMFChannel::GetFragmentsCoulombEnergy ( void  )

Definition at line 101 of file G4StatMFChannel.cc.

102{
103 G4double Coulomb = std::accumulate(_theFragments.begin(),_theFragments.end(),
104 0.0,SumCoulombEnergy());
105// G4double Coulomb = 0.0;
106// for (unsigned int i = 0;i < _theFragments.size(); i++)
107// Coulomb += _theFragments[i]->GetCoulombEnergy();
108 return Coulomb;
109}
double G4double
Definition: G4Types.hh:64

◆ GetFragmentsEnergy()

G4double G4StatMFChannel::GetFragmentsEnergy ( G4double  T) const

Definition at line 113 of file G4StatMFChannel.cc.

114{
115 G4double Energy = 0.0;
116
117 G4double TranslationalEnergy = (3./2.)*T*static_cast<G4double>(_theFragments.size());
118
119 std::deque<G4StatMFFragment*>::const_iterator i;
120 for (i = _theFragments.begin(); i != _theFragments.end(); ++i)
121 {
122 Energy += (*i)->GetEnergy(T);
123 }
124 return Energy + TranslationalEnergy;
125}

◆ GetMultiplicity()

size_t G4StatMFChannel::GetMultiplicity ( void  )
inline

Definition at line 65 of file G4StatMFChannel.hh.

65{ return _theFragments.size();}

Referenced by G4StatMF::BreakItUp().


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