60 G4cerr <<
"ERROR: Trying to get materials from " << matfile <<
" and "
61 << mixfile <<
" while previously were retrieved from "
81 G4cerr <<
"ERROR: You haven't defined files to be used for materials in "
82 <<
"CCalMaterialFactory::getInstance(const G4String&,const G4String&)"
97 CCalMaterialTable::iterator ite;
102 CCalAMaterialTable::iterator itea;
116 G4cout <<
"Material " << mat <<
" already defined. Returning previous "
129 G4cerr <<
" Could not build material " << mat <<
"." <<
G4endl;
135 G4cout <<
"Material " << mat <<
" has been built successfully." <<
G4endl;
139 G4cerr <<
"ERROR: Material " << mat <<
" not found in CCal database!!!"
149 for (
unsigned int i=0; i<theElements.size(); i++)
150 if (theElements[i]->GetName()==mat){
154 return theElements[i];
190 G4String path = getenv(
"CCAL_GLOBALPATH");
191 G4cout <<
" ==> Opening file " << matfile <<
" to read elements..." <<
G4endl;
195 G4cerr <<
"ERROR: Could not open file " << matfile <<
G4endl;
210 G4String path = getenv(
"CCAL_GLOBALPATH");
211 G4cout <<
" ==> Opening file " << matfile <<
" to read materials..." <<
G4endl;
215 G4cerr <<
"ERROR: Could not open file " << matfile <<
G4endl;
234 for (
unsigned int i=0; i<theG4Materials.size(); i++) {
235 if (theG4Materials[i]->GetName()==mat){
236 return theG4Materials[i];
248 G4cout <<
"CCalMaterial " << mat <<
" found!" <<
G4endl;
261 G4cout <<
"CCalMaterial " << mat <<
" found!" <<
G4endl;
283 for (
G4int i=0; i<nconst; i++){
289 G4cerr <<
"ERROR: Trying to build" << name <<
" out of unknown "
290 << mats[i] <<
"." <<
G4endl
291 <<
"Skiping this material!" <<
G4endl;
301 G4cerr <<
"ERROR: Trying to build" <<name <<
" out of unknown "
302 << mats[i] <<
"." <<
G4endl
303 <<
"Skiping this material!" <<
G4endl;
343 G4cout <<
" Element \tsymbol\tA\tZ\tdensity\tX_0 abs_l"<<
G4endl;
349 while (name !=
"*ENDDO") {
352 is >> symbol >> A >> Z >> density >>
jump;
354 G4cout <<
" " << name <<
" \t" << symbol <<
"\t"
355 << A <<
"\t" << Z <<
"\t" << density <<
G4endl;
361 <<
" elements read from file" << G4endl <<
G4endl;
378 density,
kStateGas, temperature, pressure);
383 while (name !=
"*ENDDO") {
388 is >> nElem >> dens >>
jump;
392 <<
" made of " << nElem
393 <<
" elements. Density=" << dens
397 G4int absnelem = std::abs(nElem);
403 for(
int i=0; i<absnelem; i++) {
407 weights[i]=std::abs(prop);
410 if (nElem>0 && prop<0)
static G4String mixturefile
void readElements(const G4String &)
CCalMaterial * ptrCCalMaterial
double Weight(int i) const
bool openGeomFile(std::ifstream &is, const G4String &pathname, const G4String &filename)
CCalAMaterial * ptrCCalAMaterial
static G4MaterialTable * GetMaterialTable()
std::vector< G4Material * > G4MaterialTable
static CCalMaterialFactory * instance
G4Element * addElement(const G4String &, const G4String &, G4double, G4double, G4double)
std::istream & jump(std::istream &)
std::ifstream & findDO(std::ifstream &, const G4String &)
CCalAMaterialTable theCCalAMaterials
std::ifstream & readName(std::ifstream &, G4String &)
G4GLOB_DLL std::ostream G4cout
G4Material * addMaterial(const G4String &nam, G4double density, G4int nconst, G4String mats[], G4double prop[], MatDescription md=byWeight)
G4Material * findMaterial(const G4String &) const
static G4String elementfile
CCalMaterial * addCCalMaterial(const G4String &nam, G4double density, G4int nconst, G4String mats[], G4double prop[], MatDescription md=byWeight)
static const G4double A[nN]
static const double kelvin
CCalAMaterial * findCCalAMaterial(const G4String &) const
CCalMaterialTable theCCalMaterials
G4Material * findG4Material(const G4String &) const
G4String Element(int i) const
void readMaterials(const G4String &)
void AddElement(G4Element *element, G4int nAtoms)
static CCalMaterialFactory * getInstance()
std::vector< G4Element * > G4ElementTable
static G4ElementTable * GetElementTable()
CCalMaterial * findCCalMaterial(const G4String &) const
G4Element * findElement(const G4String &) const
G4GLOB_DLL std::ostream G4cerr