Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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
 
G4FragmentVector * GetFragments (G4int anA, G4int anZ, G4double T)
 

Detailed Description

Definition at line 41 of file G4StatMFChannel.hh.

Constructor & Destructor Documentation

G4StatMFChannel::G4StatMFChannel ( )

Definition at line 61 of file G4StatMFChannel.cc.

61  :
62  _NumOfNeutralFragments(0),
63  _NumOfChargedFragments(0)
64 {}
G4StatMFChannel::~G4StatMFChannel ( )

Definition at line 66 of file G4StatMFChannel.cc.

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

Member Function Documentation

G4bool G4StatMFChannel::CheckFragments ( void  )

Definition at line 74 of file G4StatMFChannel.cc.

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

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 87 of file G4StatMFChannel.cc.

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

Here is the caller graph for this function:

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

Definition at line 127 of file G4StatMFChannel.cc.

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

Definition at line 103 of file G4StatMFChannel.cc.

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

Definition at line 113 of file G4StatMFChannel.cc.

114 {
115  G4double Energy = 0.0;
116 
117  G4double TranslationalEnergy = 1.5*T*_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 }
double G4double
Definition: G4Types.hh:76
size_t G4StatMFChannel::GetMultiplicity ( void  )
inline

Definition at line 65 of file G4StatMFChannel.hh.

65 { return _theFragments.size();}

Here is the caller graph for this function:


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