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
 
G4FragmentVectorGetFragments (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: