G4tgbMaterialMixtureByNoAtoms Class Reference

#include <G4tgbMaterialMixtureByNoAtoms.hh>

Inheritance diagram for G4tgbMaterialMixtureByNoAtoms:

G4tgbMaterialMixture G4tgbMaterial

Public Member Functions

 G4tgbMaterialMixtureByNoAtoms (G4tgrMaterial *tgr)
 G4tgbMaterialMixtureByNoAtoms ()
 ~G4tgbMaterialMixtureByNoAtoms ()
G4MaterialBuildG4Material ()
void TransformToFractionsByWeight ()

Detailed Description

Definition at line 50 of file G4tgbMaterialMixtureByNoAtoms.hh.


Constructor & Destructor Documentation

G4tgbMaterialMixtureByNoAtoms::G4tgbMaterialMixtureByNoAtoms ( G4tgrMaterial tgr  ) 

Definition at line 58 of file G4tgbMaterialMixtureByNoAtoms.cc.

References G4tgbMaterial::theTgrMate.

00059 {
00060   theTgrMate = hg;
00061 }

G4tgbMaterialMixtureByNoAtoms::G4tgbMaterialMixtureByNoAtoms (  ) 

Definition at line 45 of file G4tgbMaterialMixtureByNoAtoms.cc.

00046 {
00047 }

G4tgbMaterialMixtureByNoAtoms::~G4tgbMaterialMixtureByNoAtoms (  ) 

Definition at line 51 of file G4tgbMaterialMixtureByNoAtoms.cc.

00052 {
00053 }


Member Function Documentation

G4Material * G4tgbMaterialMixtureByNoAtoms::BuildG4Material (  )  [virtual]

Implements G4tgbMaterial.

Definition at line 65 of file G4tgbMaterialMixtureByNoAtoms.cc.

References G4Material::AddElement(), FatalException, G4tgbMaterialMgr::FindOrBuildG4Element(), G4cout, G4endl, G4Exception(), G4tgbMaterialMixture::GetComponent(), G4tgrMaterial::GetDensity(), G4tgbMaterialMixture::GetFraction(), G4tgbMaterialMgr::GetInstance(), G4Element::GetName(), G4tgrMaterial::GetName(), G4tgrMaterial::GetNumberOfComponents(), G4tgrMaterial::GetPressure(), G4tgrMaterial::GetState(), G4tgrMaterial::GetTemperature(), G4tgrMessenger::GetVerboseLevel(), and G4tgbMaterial::theTgrMate.

00066 { 
00067   //----- construct new G4Material with components materials (a mixture)
00068 
00069   G4Material* mate = new G4Material( theTgrMate->GetName(),
00070                                      theTgrMate->GetDensity(),
00071                                      theTgrMate->GetNumberOfComponents(),
00072                                      theTgrMate->GetState(),
00073                                      theTgrMate->GetTemperature(),
00074                                      theTgrMate->GetPressure() );
00075  #ifdef G4VERBOSE
00076   if( G4tgrMessenger::GetVerboseLevel() >= 2 )
00077   {
00078     G4cout << " G4tgbMaterialMixtureByNoAtoms::BuildG4Material() -"
00079            << " Constructing new G4Material:"
00080            << " " << theTgrMate->GetName()
00081            << " " << theTgrMate->GetDensity()/g*cm3
00082            << " " << theTgrMate->GetNumberOfComponents()
00083            << " " << theTgrMate->GetState()
00084            << " " << theTgrMate->GetTemperature()
00085            << " " << theTgrMate->GetPressure() << G4endl;
00086   }
00087 #endif
00088 
00089   //--- add components
00090 
00091   G4Element* compElem;
00092   G4tgbMaterialMgr* mf = G4tgbMaterialMgr::GetInstance();
00093   for( G4int ii = 0; ii < theTgrMate->GetNumberOfComponents(); ii++)
00094   {
00095     // look if this component is an element
00096     compElem = mf->FindOrBuildG4Element( GetComponent(ii), false );
00097     if( compElem != 0 )
00098     {
00099 #ifdef G4VERBOSE
00100       if( G4tgrMessenger::GetVerboseLevel() >= 2 )
00101       {
00102         G4cout << " G4tgbMaterialMixtureByNoAtoms::BuildG4Material() -"
00103                << " Adding component element ..." << G4endl;
00104       }
00105 #endif
00106       // add it by number of atoms
00107       G4cout << compElem->GetName() << " BY NATOMS ele "
00108              << ii << " " << G4int(GetFraction(ii)) << G4endl;
00109       mate->AddElement( compElem, G4int(GetFraction(ii)) );
00110       // if it is not an element look if it is a material
00111     }
00112     else
00113     { 
00114       G4String ErrMessage = "Component " + GetComponent(ii)
00115                           + " of material " +  theTgrMate->GetName()
00116                           + "\n" + "is not an element !";
00117       G4Exception("G4tgbMaterialMixtureByWeight::buildG4Material()",
00118                   "InvalidSetup", FatalException, ErrMessage);
00119     } 
00120   }
00121 
00122 #ifdef G4VERBOSE
00123   if( G4tgrMessenger::GetVerboseLevel() >= 1 )
00124   {
00125     G4cout << " Constructing new G4Material by number of atoms: "
00126            << *mate << G4endl; 
00127   }
00128 #endif      
00129 
00130   return mate;
00131 }

void G4tgbMaterialMixtureByNoAtoms::TransformToFractionsByWeight (  )  [virtual]

Reimplemented from G4tgbMaterialMixture.

Definition at line 135 of file G4tgbMaterialMixtureByNoAtoms.cc.

00136 {
00137 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:29 2013 for Geant4 by  doxygen 1.4.7