/home/cern/BDSIM_new/src/BDSMaterials.cc

00001 /* BDSIM code.    Version 1.0
00002    Author: Grahame A. Blair, Royal Holloway, Univ. of London.
00003    Last modified 24.7.2002
00004    Copyright (c) 2002 by G.A.Blair.  ALL RIGHTS RESERVED. 
00005 
00006    Modified 22.03.05 by J.C.Carter, Royal Holloway, Univ. of London.
00007    Added GABs LCBeamGasPlugMat Material
00008    Added LCLead
00009 
00010    Modified 13.09.07 by S.P.Malton, Royal Holloway, Univ. of London.
00011    Created maps of materials and elements
00012    Added Initialise function
00013    Added Add/GetElement/Material functions
00014    Cleanup in destructor
00015    Added ListMaterials function
00016 */
00017 const int DEBUG = 0;
00018 
00019 #include "BDSGlobalConstants.hh" // must be first in include list
00020 
00021 #include "BDSMaterials.hh"
00022 
00023 using namespace std;
00024 
00025 BDSMaterials::BDSMaterials()
00026 {
00027   Initialise();
00028 }
00029 
00030 void BDSMaterials::Initialise()
00031 {
00032   G4String name, symbol;             //a=mass of a mole;
00033   G4double a, z, density;            //z=mean number of protons;
00034   //G4int iz, n;                       //iz=number of protons  in an isotope;
00035                                    // n=number of nucleons in an isotope;
00036 
00037   //G4double abundance;
00038   G4double fractionmass;
00039   //G4int ncomponents;
00040   G4double temperature, pressure;
00041 
00042   G4Material* tmpMaterial;
00043   G4Element* tmpElement;
00044 
00045   //
00046   // Define elements
00047   //
00048 
00049   tmpElement = new G4Element
00050     (name="Hydrogen"   , symbol="H" , z=  1., a=   1.00*g/mole);
00051   elements[symbol] = tmpElement;
00052 
00053   tmpElement = new G4Element
00054     (name="Helium"     , symbol="He", z=  2., a=   4.0026*g/mole);
00055   elements[symbol] = tmpElement;
00056 
00057   tmpElement = new G4Element
00058     (name="Beryllium"  , symbol="Be", z=  4., a=   9.0122*g/mole);
00059   elements[symbol] = tmpElement;
00060 
00061   tmpElement = new G4Element
00062     (name="Carbon"     , symbol="C" , z=  6., a=  12.00*g/mole);
00063   elements[symbol] = tmpElement;
00064 
00065   tmpElement = new G4Element
00066     (name="Nitrogen"   , symbol="N" , z=  7., a=  14.01*g/mole);
00067   elements[symbol] = tmpElement;
00068 
00069   tmpElement = new G4Element
00070     (name="Oxygen"     , symbol="O" , z=  8., a=  16.00*g/mole);
00071   elements[symbol] = tmpElement;
00072 
00073   tmpElement = new G4Element
00074     (name="Aluminium"  , symbol="Al", z= 13., a=  26.98*g/mole);
00075   elements[symbol] = tmpElement;
00076 
00077   tmpElement = new G4Element
00078     (name="Silicon"    , symbol="Si", z= 14., a=  28.09*g/mole);
00079   elements[symbol] = tmpElement;
00080 
00081   tmpElement = new G4Element
00082     (name="Phosphorous", symbol="P" , z= 15., a=  30.973762*g/mole);
00083   elements[symbol] = tmpElement;
00084 
00085   tmpElement = new G4Element
00086     (name="Sulphur"    , symbol="S" , z= 16., a=  32.066*g/mole);
00087   elements[symbol] = tmpElement;
00088 
00089   tmpElement = new G4Element
00090     (name="Calcium"    , symbol="Ca", z= 20., a=  40.078*g/mole);
00091   elements[symbol] = tmpElement;
00092 
00093   tmpElement = new G4Element
00094     (name="Titanium"   , symbol="Ti", z= 22., a=  47.867*g/mole);
00095   elements[symbol] = tmpElement;
00096 
00097   tmpElement = new G4Element
00098     (name="Vanadium"   , symbol="V" , z= 23., a=  50.9415*g/mole);
00099   elements[symbol] = tmpElement;
00100 
00101   tmpElement = new G4Element
00102     (name="Manganese"  , symbol="Mn", z= 25., a=  54.93805*g/mole);
00103   elements[symbol] = tmpElement;
00104 
00105   tmpElement = new G4Element
00106     (name="Iron"       , symbol="Fe", z= 26., a=  55.847*g/mole);
00107   elements[symbol] = tmpElement;
00108 
00109   tmpElement = new G4Element
00110     (name="Cobalt"     , symbol="Co", z= 27., a=  58.93*g/mole);
00111   elements[symbol] = tmpElement;
00112 
00113   tmpElement = new G4Element
00114     (name="Nickel"     , symbol="Ni", z= 28., a=  58.693*g/mole);
00115   elements[symbol] = tmpElement;
00116 
00117   tmpElement = new G4Element
00118     (name="Copper"     , symbol="Cu", z= 29., a=  63.546*g/mole);
00119   elements[symbol] = tmpElement;
00120 
00121   tmpElement = new G4Element
00122     (name="Niobium"    , symbol="Nb", z= 41., a=  92.906*g/mole);
00123   elements[symbol] = tmpElement;
00124 
00125   tmpElement = new G4Element
00126     (name="Samarium"   , symbol="Sm", z= 62., a= 150.4*g/mole);
00127   elements[symbol] = tmpElement;
00128 
00129   tmpElement = new G4Element
00130     (name="Tungsten"   , symbol="W" , z= 74., a= 183.84*g/mole);
00131   elements[symbol] = tmpElement;
00132 
00133   tmpElement = new G4Element
00134     (name="Lead"       , symbol="Pb", z= 82., a= 207.2*g/mole);
00135   elements[symbol] = tmpElement;
00136 
00137 
00138   //
00139   // Define materials
00140   //
00141 
00142   //default Geant4 temperature = 273.15 K
00143   //default Geant4 pressure = 1atm
00144 
00145   // solid materials
00146 
00147   tmpMaterial = new G4Material
00148     (name="Aluminium"     , density=  2.700*g/cm3, 1, kStateSolid);
00149   tmpMaterial->AddElement(elements["Al"],1);
00150   materials[name] = tmpMaterial;
00151 
00152   tmpMaterial = new G4Material
00153     (name="Vanadium"      , density=  5.800*g/cm3, 1, kStateSolid);
00154   tmpMaterial->AddElement(elements["V"],1);
00155   materials[name] = tmpMaterial;
00156 
00157   tmpMaterial = new G4Material
00158     (name="Tungsten"      , density= 19.3  *g/cm3, 1, kStateSolid);
00159   tmpMaterial->AddElement(elements["W"],1);
00160   materials[name] = tmpMaterial;
00161 
00162   tmpMaterial = new G4Material
00163     (name="Iron"          , density=  7.87 *g/cm3, 1, kStateSolid);
00164   tmpMaterial->AddElement(elements["Fe"],1);
00165   materials[name] = tmpMaterial;
00166 
00167   tmpMaterial = new G4Material
00168     (name="Copper"        , density=  8.96 *g/cm3, 1, kStateSolid);
00169   tmpMaterial->AddElement(elements["Cu"],1);
00170   materials[name] = tmpMaterial;
00171 
00172   tmpMaterial = new G4Material
00173     (name="WeightIron"    , density=  7.87 *g/cm3, 1, kStateSolid);
00174   tmpMaterial->AddElement(elements["Fe"],1);
00175   materials[name] = tmpMaterial;
00176 
00177   tmpMaterial = new G4Material
00178     (name="Titanium"      , density=  4.54 *g/cm3, 1, kStateSolid);
00179   tmpMaterial->AddElement(elements["Ti"],1);
00180   materials[name] = tmpMaterial;
00181 
00182   tmpMaterial = new G4Material
00183     (name="Graphite"      , density=  2.265*g/cm3, 1, kStateSolid);
00184   tmpMaterial->AddElement(elements["C"],1);
00185   materials[name] = tmpMaterial;
00186 
00187   tmpMaterial = new G4Material
00188     (name="Lead"          , density= 11.35 *g/cm3, 1, kStateSolid);
00189   tmpMaterial->AddElement(elements["Pb"],1);
00190   materials[name] = tmpMaterial;
00191 
00192   tmpMaterial = new G4Material
00193     (name="Silicon"       , density=  2.33 *g/cm3, 1, kStateSolid);
00194   tmpMaterial->AddElement(elements["Si"],1);
00195   materials[name] = tmpMaterial;
00196 
00197   tmpMaterial = new G4Material
00198     (name="Beryllium"     , density=  1.848*g/cm3, 1, kStateSolid);
00199   tmpMaterial->AddElement(elements["Be"],1);
00200   materials[name] = tmpMaterial;
00201 
00202   tmpMaterial = new G4Material
00203     (name="SmCo"          , density=  8.4  *g/cm3, 2, kStateSolid, 300*kelvin);
00204   tmpMaterial->AddElement(elements["Sm"],fractionmass=0.338);
00205   tmpMaterial->AddElement(elements["Co"],fractionmass=0.662);
00206   materials[name] = tmpMaterial;
00207 
00208   tmpMaterial = new G4Material
00209     (name="Niobium"       , density=  8.57 *g/cm3, 1, kStateSolid, 2*kelvin);
00210   tmpMaterial->AddElement(elements["Nb"],1);
00211   materials[name] = tmpMaterial;
00212 
00213   //Titanium alloy (BDS collimator material SLAC-TN-03-069 p25) deacon 15 Jun 2007
00214   tmpMaterial = new G4Material
00215     (name="TitaniumAlloy" , density=  4.48 *g/cm3, 3, kStateSolid, 300*kelvin);
00216   tmpMaterial->AddElement(elements["V"],  fractionmass=0.025);
00217   tmpMaterial->AddElement(elements["Al"], fractionmass=0.03 );
00218   tmpMaterial->AddElement(elements["Ti"], fractionmass=0.945);
00219   materials[name] = tmpMaterial;
00220 
00221   //Carbon Steel (shell of cryomodule). LDeacon 21 Feb 2006
00222   tmpMaterial = new G4Material
00223     (name="CarbonSteel"   , density=  7.87 *g/cm3, 5, kStateSolid, 100*kelvin);
00224   tmpMaterial->AddElement(elements["C"], fractionmass=0.0017);
00225   tmpMaterial->AddElement(elements["Mn"], fractionmass=0.0045);
00226   tmpMaterial->AddElement(elements["P"], fractionmass=0.0004);
00227   tmpMaterial->AddElement(elements["S"], fractionmass=0.0005);
00228   tmpMaterial->AddElement(elements["Fe"], fractionmass=0.9929);
00229   materials[name] = tmpMaterial;
00230 
00231   tmpMaterial = new G4Material
00232     (name="NbTi"          , density=  5.6  *g/cm3, 2, kStateSolid, 4*kelvin);
00233   tmpMaterial->AddElement(elements["Nb"], 1);
00234   tmpMaterial->AddElement(elements["Ti"], 1);
00235   materials[name] = tmpMaterial;
00236 
00237   tmpMaterial = new G4Material
00238     (name="Concrete"      , density=  2.3  *g/cm3, 6, kStateSolid, 300*kelvin);
00239   tmpMaterial->AddElement(elements["Si"], 0.227915);
00240   tmpMaterial->AddElement(elements["O"], 0.60541);
00241   tmpMaterial->AddElement(elements["H"], 0.09972);
00242   tmpMaterial->AddElement(elements["Ca"], 0.04986);
00243   tmpMaterial->AddElement(elements["Al"], 0.014245);
00244   tmpMaterial->AddElement(elements["Fe"], 0.00285);
00245   materials[name] = tmpMaterial;
00246 
00247   //Invar.Temperature 2 kelvin. LDeacon 6th Feburary 2006
00248   tmpMaterial = new G4Material
00249     (name="Invar"         , density=  8.1  *kg/m3, 2, kStateSolid, 2*kelvin);
00250   tmpMaterial->AddElement(elements["Ni"], fractionmass=0.35);
00251   tmpMaterial->AddElement(elements["Fe"], fractionmass=0.65);
00252   materials[name] = tmpMaterial;
00253 
00254   // "standard" soil (dry)
00255   tmpMaterial = new G4Material
00256     (name="Soil"          , density=  1.9  *g/cm3, 4, kStateSolid, 300*kelvin);
00257   tmpMaterial->AddElement(elements["Si"],0.33377483443708611 );
00258   tmpMaterial->AddElement(elements["O"], 0.57218543046357617);
00259   tmpMaterial->AddElement(elements["H"], 0.022516556291390728);
00260   tmpMaterial->AddElement(elements["Al"], 0.071523178807947022);
00261   materials[name] = tmpMaterial;
00262 
00263   tmpMaterial = new G4Material
00264     (name="LeadTungstate" , density=  8.27 *g/cm3, 3, kStateSolid);
00265   tmpMaterial->AddElement(elements["Pb"], 1);
00266   tmpMaterial->AddElement(elements["W"], 1);
00267   tmpMaterial->AddElement(elements["O"], 4);
00268   materials[name] = tmpMaterial;
00269 
00270 
00271   // liquid materials
00272 
00273   tmpMaterial = new G4Material
00274     (name="LiquidHelium"  , density=  0.12498*g/cm3, 1, kStateLiquid, 4.15*kelvin);
00275   tmpMaterial->AddElement(elements["He"],1);
00276   materials[name] = tmpMaterial;
00277 
00278   tmpMaterial=new G4Material
00279     (name="Water"         , density=  1.00 *g/cm3, 2, kStateLiquid, 300*kelvin);
00280   tmpMaterial->AddElement(elements["O"], 1);
00281   tmpMaterial->AddElement(elements["H"], 2);
00282   materials[name] = tmpMaterial;
00283 
00284 
00285   // gaseous materials
00286 
00287   pressure    = 1.e-9*(1.e-3*bar);
00288   // include scaling so that statistics are more reasonable:
00289   // (one bunch contains ~10^10 particles, so 1000 events (or whatever)
00290   //  should represent this number of particles - hence ~10^7:
00291   pressure*=BDSGlobals->GetBackgroundScaleFactor();
00292  
00293   // NB : temperature should be defined for individual elements
00294   // setting temporarily to 300K
00295   temperature = 300*kelvin;
00296 
00297   // For air: do we want it at p=1atm or at p inside beampipe?
00298   // 1st case:
00299   // tmpMaterial = new G4Material
00300   //    (name="Air"           , density=  1.205*g/dm3, 2, kStateGas, 300*kelvin);
00301   // 2nd case:
00302   // ideal gas: 
00303   //   1) density * temperature / pressure = constant
00304   //   2) at T=STP_Temperature, p=1*atmosphere, n=1mole occupies a volume
00305   //      V=22.4l=22.4e-3*m3 and therefore has density=molar weight/(22.4e-3*m3)
00306   density = (STP_Temperature/temperature) * (pressure/(1.*atmosphere))
00307     * 30*g/(22.4*1.e-3*m3) ;
00308   tmpMaterial = new G4Material
00309     (name="Air"           , density, 2, kStateGas, temperature, pressure);
00310   tmpMaterial->AddElement(elements["O"], fractionmass=0.2);
00311   tmpMaterial->AddElement(elements["N"], fractionmass=0.8);
00312   materials[name] = tmpMaterial;
00313 
00314   density = (STP_Temperature/temperature) * (pressure/(1.*atmosphere))
00315     * (12.+16.)*g/(22.4*1.e-3*m3) ;
00316   tmpMaterial =  new G4Material
00317     (name="CarbonMonoxide", density, 2, kStateGas, temperature, pressure);
00318   tmpMaterial->AddElement(elements["C"], 1);
00319   tmpMaterial->AddElement(elements["O"], 1);
00320   materials[name] = tmpMaterial;
00321 
00322   density = (STP_Temperature/temperature) * (pressure/(1.*atmosphere))
00323     // for H_2:
00324     //* 2*g/(22.4*1.e-3*m3) ;
00325     // for air:
00326     * 30*g/(22.4*1.e-3*m3) ;
00327   G4cout<< " ***************** defining Vacuum"<<G4endl;
00328   G4cout<< "pressure="<<pressure/bar<<" bar"<<G4endl;
00329   G4cout<< "temp="<<temperature/kelvin<<" K"<<G4endl;
00330   G4cout<< "density="<<density/(g/m3)<<"g/m^3"<<G4endl;
00331   tmpMaterial = new G4Material
00332     (name="Vacuum"        , density, 1, kStateGas, temperature, pressure);
00333   tmpMaterial->AddMaterial(materials["Air"], fractionmass=1.);
00334   materials[name] = tmpMaterial;
00335 
00336   tmpMaterial = new G4Material
00337     (name="LaserVac"      , density, 1, kStateGas, temperature, pressure);
00338   tmpMaterial->AddMaterial(materials["Air"], fractionmass=1.);
00339   materials[name] = tmpMaterial;
00340 
00341   density=37.403/10.*g/cm3;  //Choose such that 1mm length gives ~ one interaction
00342   //  density=1*g/cm3;
00343   tmpMaterial = new G4Material
00344     (name="BeamGasPlugMat", density, 2);
00345   //shouldn't it be a gas?
00346   //(name="BeamGasPlugMat", density, 2, kStateGas);
00347   tmpMaterial->AddElement(elements["C"], 1);
00348   tmpMaterial->AddElement(elements["O"], 1);
00349   materials[name] = tmpMaterial;
00350 
00351 }
00352 
00353 void BDSMaterials::AddMaterial(G4Material* aMaterial, G4String aName)
00354 {
00355   if(materials.insert(make_pair(aName,aMaterial)).second)
00356     G4cout << "New material : " << aName << " added to material table" << G4endl;
00357   else G4Exception("Material "+aName+" already exists\n");
00358 }
00359 
00360 // add material with default state (kSolidState), temperature (273.15K)
00361 // and pressure (1atm)
00362 void BDSMaterials::AddMaterial(G4String aName, G4double itsZ, G4double itsA, G4double itsDensity)
00363 {
00364   G4Material* tmpMaterial = new G4Material(aName, itsZ, itsA*g/mole, itsDensity*g/cm3);
00365   if(materials.insert(make_pair(aName,tmpMaterial)).second)
00366     G4cout << "New material : " << aName << " added to material table" << G4endl;
00367   else G4Exception("Material "+aName+" already exists\n");
00368 }
00369 
00370 void BDSMaterials::AddMaterial(G4String aName, G4double itsDensity, G4State itsState,
00371 G4double itsTemp, G4double itsPressure,
00372 list<char*> itsComponents, list<G4double> itsComponentsFractions)
00373 {
00374   G4Material* tmpMaterial = new G4Material(aName, itsDensity*g/cm3, 
00375                 (G4int)itsComponents.size(),itsState, itsTemp*kelvin, itsPressure*atmosphere);
00376   list<char*>::iterator sIter;
00377   list<G4double>::iterator dIter;
00378   for(sIter = itsComponents.begin(), dIter = itsComponentsFractions.begin();
00379         sIter != itsComponents.end();
00380         sIter++, dIter++)
00381   {
00382     tmpMaterial->AddElement(GetElement(*sIter),(*dIter));
00383   }
00384   if(materials.insert(make_pair(aName,tmpMaterial)).second)
00385     G4cout << "New material : " << aName << " added to material table" << G4endl;
00386   else G4Exception("Material "+aName+" already exists\n");
00387 }
00388 
00389 void BDSMaterials::AddMaterial(G4String aName, G4double itsDensity, G4State itsState,
00390 G4double itsTemp, G4double itsPressure,      
00391 list<char*> itsComponents, list<G4int> itsComponentsWeights)       
00392 {
00393   G4Material* tmpMaterial = new G4Material(aName, itsDensity*g/cm3, 
00394                 (G4int)itsComponents.size(),itsState, itsTemp*kelvin, itsPressure*atmosphere);
00395   list<char*>::iterator sIter;
00396   list<G4int>::iterator iIter;
00397   for(sIter = itsComponents.begin(), iIter = itsComponentsWeights.begin(); 
00398         sIter != itsComponents.end();
00399         sIter++, iIter++)
00400   {
00401     tmpMaterial->AddElement(GetElement(*sIter),(*iIter));
00402   }     
00403   if(materials.insert(make_pair(aName,tmpMaterial)).second)
00404     G4cout << "New material : " << aName << " added to material table" << G4endl;
00405   else G4Exception("Material "+aName+" already exists\n");
00406 }
00407 
00408 void BDSMaterials::AddElement(G4Element* aElement, G4String aSymbol)
00409 {
00410   if(elements.insert(make_pair(aSymbol,aElement)).second)
00411     G4cout << "New atom : " << aSymbol << G4endl;
00412   else G4Exception("Atom "+aSymbol+" already exists\n");
00413 }
00414 
00415 void BDSMaterials::AddElement(G4String aName, G4String aSymbol, G4double itsZ, G4double itsA)
00416 {
00417   G4Element* tmpElement = new G4Element(aName, aSymbol, itsZ, itsA*g/mole);
00418   if(elements.insert(make_pair(aSymbol,tmpElement)).second)
00419     G4cout << "New atom : " << aSymbol << G4endl;
00420   else G4Exception("Atom "+aSymbol+" already exists\n");
00421 }
00422 
00423 G4Material* BDSMaterials::GetMaterial(G4String aMaterial)
00424 {
00425   map<G4String,G4Material*>::iterator iter = materials.find(aMaterial);
00426   if(iter != materials.end()) return (*iter).second;
00427   else{
00428     G4Exception("Material "+aMaterial+" not known. Aborting.");
00429     exit(1);
00430   }
00431 }
00432 
00433 G4Element* BDSMaterials::GetElement(G4String aSymbol)
00434 {
00435   map<G4String,G4Element*>::iterator iter = elements.find(aSymbol);
00436   if(iter != elements.end()) return (*iter).second;
00437   else{
00438     G4Exception("Element "+aSymbol+" not known. Aborting.");
00439     exit(1);
00440   }
00441 }
00442 
00443 void BDSMaterials::ListMaterials(){
00444   G4cout << "Available elements are:" << G4endl;
00445   G4cout << "Aluminium  - Al" << G4endl;
00446   G4cout << "Calcium    - Ca" << G4endl;
00447   G4cout << "Carbon     - C" << G4endl;
00448   G4cout << "Cobalt     - Co" << G4endl;
00449   G4cout << "Helium     - He" << G4endl;
00450   G4cout << "Hydrogen   - H" << G4endl;
00451   G4cout << "Iron       - Fe" << G4endl;
00452   G4cout << "Lead       - Pb" << G4endl;
00453   G4cout << "Manganese  - Mn" << G4endl;
00454   G4cout << "Niobium    - Nb" << G4endl;
00455   G4cout << "Nitrogen   - N" << G4endl;
00456   G4cout << "Oxygen     - O" << G4endl;
00457   G4cout << "Phosphorus - P" << G4endl;
00458   G4cout << "Samarium   - Sm" << G4endl;
00459   G4cout << "Silicon    - Si" << G4endl;
00460   G4cout << "Sulphur    - S" << G4endl;
00461   G4cout << "Titanium   - Ti" << G4endl;
00462   G4cout << "Tungsten   - W" << G4endl;
00463   G4cout << "Vanadium   - V" << G4endl;
00464   G4cout << "***************" << G4endl;
00465   G4cout << "Available materials are:" << G4endl;
00466   G4cout << "Air" << G4endl;
00467   G4cout << "Aluminium" << G4endl;
00468   G4cout << "Beryllium" << G4endl;
00469   G4cout << "CarbonMonoxide" << G4endl;
00470   G4cout << "CarbonSteel" << G4endl;
00471   G4cout << "Concrete" << G4endl;
00472   G4cout << "Copper" << G4endl;
00473   G4cout << "Graphite" << G4endl;
00474   G4cout << "Invar" << G4endl;
00475   G4cout << "Iron" << G4endl;
00476   G4cout << "LaserVac" << G4endl;
00477   G4cout << "Lead" << G4endl;
00478   G4cout << "LeadTungstate" << G4endl;
00479   G4cout << "LiquidHelium" << G4endl;
00480   G4cout << "NbTi" << G4endl;
00481   G4cout << "Niobium" << G4endl;
00482   G4cout << "Silicon" << G4endl;
00483   G4cout << "SmCo" << G4endl;
00484   G4cout << "Soil" << G4endl;
00485   G4cout << "Titanium" << G4endl;
00486   G4cout << "TitaniumAlloy" << G4endl;
00487   G4cout << "Tungsten" << G4endl;
00488   G4cout << "Vacuum" << G4endl;
00489   G4cout << "Vanadium" << G4endl;
00490   G4cout << "Water" << G4endl;
00491   G4cout << "WeightIron" << G4endl;
00492 }
00493 
00494 BDSMaterials::~BDSMaterials(){
00495   map<G4String,G4Material*>::iterator mIter;
00496   for(mIter = materials.begin(); mIter!=materials.end(); mIter++)
00497     delete (*mIter).second;
00498   materials.clear();
00499 
00500   map<G4String,G4Element*>::iterator eIter;
00501   for(eIter = elements.begin(); eIter!=elements.end(); eIter++)
00502     delete (*eIter).second;
00503   elements.clear();
00504 }

Generated on Wed Mar 5 17:25:22 2008 for BDSIM by  doxygen 1.5.3