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