Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Data Structures | Public Member Functions
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 59 of file G4StatMFChannel.cc.

59  :
60  _NumOfNeutralFragments(0),
61  _NumOfChargedFragments(0)
62 {}
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

G4bool G4StatMFChannel::CheckFragments ( void  )

Definition at line 72 of file G4StatMFChannel.cc.

Referenced by G4StatMF::BreakItUp().

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:78
void G4StatMFChannel::CreateFragment ( G4int  A,
G4int  Z 
)

Definition at line 85 of file G4StatMFChannel.cc.

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

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 }
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
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: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 = (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 }
double G4double
Definition: G4Types.hh:76
size_t G4StatMFChannel::GetMultiplicity ( void  )
inline

Definition at line 65 of file G4StatMFChannel.hh.

Referenced by G4StatMF::BreakItUp().

65 { return _theFragments.size();}

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