File indexing completed on 2025-01-18 09:16:57
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054 #include "FCALMaterialConsultant.hh"
0055
0056 #include "globals.hh"
0057 #include "G4PhysicalConstants.hh"
0058 #include "G4SystemOfUnits.hh"
0059
0060 FCALMaterialConsultant *FCALMaterialConsultant::theFCALMaterialConsultant = NULL;
0061
0062 FCALMaterialConsultant::FCALMaterialConsultant()
0063 {
0064 G4double a,z,density,fractionmass;
0065 G4String name,symbol;
0066 G4int nel,natoms;
0067
0068
0069
0070
0071
0072 a=1.01*g/mole;
0073 elH=new G4Element(name="Hydrogen",symbol="H2",z=1.,a);
0074
0075 a=2.01*g/mole;
0076 elD=new G4Element(name="Deuterium",symbol="D",z=1.,a);
0077
0078 a=4.*g/mole;
0079 elHe=new G4Element(name="Helium",symbol="He",z=2.,a);
0080
0081 a=6.94*g/mole;
0082 elLi=new G4Element(name="Lithium",symbol="Li",z=3.,a);
0083
0084 a=9.01*g/mole;
0085 elBe=new G4Element(name="Berillium",symbol="Be",z=4.,a);
0086
0087 a=12.01*g/mole;
0088 elC=new G4Element(name="Carbon",symbol="C",z=6.,a);
0089
0090 a=14.01*g/mole;
0091 elN=new G4Element(name="Nitrogen",symbol="N2",z=7.,a);
0092
0093 a=16.*g/mole;
0094 elO=new G4Element(name="Oxygen",symbol="O2",z=8.,a);
0095
0096 a=20.18*g/mole;
0097 elNe=new G4Element(name="Neon",symbol="Ne",z=10.,a);
0098
0099 a=22.99*g/mole;
0100 elNa=new G4Element(name="Sodium",symbol="Na",z=11.,a);
0101
0102 a=26.98*g/mole;
0103 elAl=new G4Element(name="Aluminium",symbol="Al",z=13.,a);
0104
0105 a=28.085*g/mole;
0106 elSi=new G4Element(name="Silicon",symbol="Si",z=14.,a);
0107
0108 a=40.08*g/mole;
0109 elCa=new G4Element(name="Calcium",symbol="Ca",z=20.,a);
0110
0111 a=55.850*g/mole;
0112 elFe=new G4Element(name="Iron",symbol="Fe",z=26.,a);
0113
0114 a=63.54*g/mole;
0115 elCu=new G4Element(name="Copper",symbol="Cu",z=29.,a);
0116
0117 a=183.85*g/mole;
0118 elW=new G4Element(name="Tungstenm",symbol="W",z=74.,a);
0119
0120 a=207.19*g/mole;
0121 elPb=new G4Element(name="Lead",symbol="Pb",z=82.,a);
0122
0123 a=238.03*g/mole;
0124 elU=new G4Element(name="Uranium",symbol="U",z=92.,a);
0125
0126
0127
0128
0129
0130
0131 density = 2.7*g/cm3;
0132 a = 26.98*g/mole;
0133 Aluminium = new G4Material(name="Aluminium",z=13.,a,density);
0134
0135 density = 7.87*g/cm3;
0136 a = 55.85*g/mole;
0137 Iron = new G4Material(name="Iron",z=26.,a,density);
0138
0139 density = 8.96*g/cm3;
0140 a = 63.54*g/mole;
0141 Copper = new G4Material(name="Copper",z=29.,a,density);
0142
0143 density = 19.3*g/cm3;
0144 a = 183.85*g/mole;
0145 Tungsten = new G4Material(name="Tungsten",z=74.,a,density);
0146
0147 density = 11.35*g/cm3;
0148 a = 207.19*g/mole;
0149 Lead = new G4Material(name="Lead",z=82.,a,density);
0150
0151 density = 1.4*g/cm3;
0152 a = 39.95*g/mole;
0153 LiquidArgon = new G4Material(name="LiquidArgon",z=18.,a,density);
0154
0155 density = 0.002*g/cm3;
0156 a = 39.95*g/mole;
0157 ArgonGas = new G4Material(name="ArgonGas",z=18.,a,density);
0158
0159 density = 8.96*g/cm3;
0160 a = 58.69*g/mole;
0161 Nickel = new G4Material(name="Nickel",z=28.,a,density);
0162
0163
0164
0165
0166
0167
0168 density = 1.290*mg/cm3;
0169 Air = new G4Material(name="Air",density, nel=2);
0170 Air->AddElement(elN, 0.7);
0171 Air->AddElement(elO, 0.3);
0172
0173 RhoaCell = Air;
0174
0175
0176 density = 1.e-5*g/cm3;
0177 G4double pressure = 2.e-2*bar;
0178 G4double temperature = STP_Temperature;
0179 Vacuum = new G4Material(name="Vacuum", density, nel=1,
0180 kStateGas,temperature,pressure);
0181 Vacuum->AddMaterial(Air, fractionmass=1.);
0182
0183
0184 density = 0.002*g/cm3;
0185 CO2 = new G4Material(name="CO2",density,nel=2);
0186 CO2->AddElement(elC, natoms=1);
0187 CO2->AddElement(elO, natoms=2);
0188
0189 density = 1.42*g/cm3;
0190 Kapton = new G4Material(name="Kapton",density, nel=4);
0191 Kapton->AddElement(elH, fractionmass = 0.0273);
0192 Kapton->AddElement(elC, fractionmass = 0.7213);
0193 Kapton->AddElement(elN, fractionmass = 0.0765);
0194 Kapton->AddElement(elO, fractionmass = 0.1749);
0195
0196 density = 1.032*g/cm3;
0197 Polystyrene = new G4Material(name="Polystyrene",density,nel=2);
0198 Polystyrene->AddElement(elC, natoms=8);
0199 Polystyrene->AddElement(elH, natoms=8);
0200
0201 density = 5.185*g/cm3;
0202 FCAL1CuArKap = new G4Material(name="FCAL1CuArKap",density,nel=3);
0203 FCAL1CuArKap->AddMaterial(Copper, fractionmass = 0.864);
0204 FCAL1CuArKap->AddMaterial(Kapton, fractionmass = 0.068);
0205 FCAL1CuArKap->AddMaterial(LiquidArgon, fractionmass = 0.068);
0206
0207 density = 8.701*g/cm3;
0208 FCAL1CuAr = new G4Material(name="FCAL1CuAr",density,nel=2);
0209 FCAL1CuAr->AddMaterial(Copper, fractionmass = 0.994);
0210 FCAL1CuAr->AddMaterial(LiquidArgon, fractionmass = 0.006);
0211
0212 density = 5.185*g/cm3;
0213 FCAL2CuArKap = new G4Material(name="FCAL2CuArKap",density,nel=3);
0214 FCAL2CuArKap->AddMaterial(Copper, fractionmass = 0.864);
0215 FCAL2CuArKap->AddMaterial(Kapton, fractionmass = 0.068);
0216 FCAL2CuArKap->AddMaterial(LiquidArgon, fractionmass = 0.068);
0217
0218 density = 18.6*g/cm3;
0219 FCAL2WFeNi = new G4Material(name="FCAL2WFeNi",density,nel=3);
0220 FCAL2WFeNi->AddMaterial(Tungsten, fractionmass = 0.97);
0221 FCAL2WFeNi->AddMaterial(Iron, fractionmass = 0.01);
0222 FCAL2WFeNi->AddMaterial(Nickel, fractionmass = 0.02);
0223
0224 density = 15.366*g/cm3;
0225 FCAL2WFeNiCuAr = new G4Material(name="FCAL2WFeNiCuAr",density,nel=3);
0226 FCAL2WFeNiCuAr->AddMaterial(FCAL2WFeNi, fractionmass = 0.913);
0227 FCAL2WFeNiCuAr->AddMaterial(Copper, fractionmass = 0.077);
0228 FCAL2WFeNiCuAr->AddMaterial(LiquidArgon, fractionmass = 0.01);
0229
0230 density = 0.002*g/cm3;
0231 MWPCArCO2 = new G4Material(name="MWPCArCO2",density,nel=2);
0232 MWPCArCO2->AddMaterial(CO2, fractionmass = 0.2);
0233 MWPCArCO2->AddMaterial(ArgonGas, fractionmass = 0.8);
0234
0235
0236
0237
0238 density = 2.5*g/cm3;
0239 ShieldingConcrete = new G4Material(name="ShieldingConcrete",density,nel=6);
0240 ShieldingConcrete->AddElement(elO, fractionmass = 0.52);
0241 ShieldingConcrete->AddElement(elSi, fractionmass = 0.325);
0242 ShieldingConcrete->AddElement(elCa, fractionmass = 0.06);
0243 ShieldingConcrete->AddElement(elNa, fractionmass = 0.015);
0244 ShieldingConcrete->AddElement(elFe, fractionmass = 0.04);
0245 ShieldingConcrete->AddElement(elAl, fractionmass = 0.04);
0246
0247
0248
0249 density = 8.96*g/cm3;
0250 StainlessSteel = new G4Material(name="StainlessSteel",density,nel=1);
0251 StainlessSteel->AddElement(elO, fractionmass = 1.);
0252
0253 }
0254
0255 FCALMaterialConsultant * FCALMaterialConsultant::GetInstance()
0256 {
0257 if (theFCALMaterialConsultant == NULL) {
0258 theFCALMaterialConsultant = new FCALMaterialConsultant();
0259 }
0260 return theFCALMaterialConsultant;
0261 }
0262
0263 G4Material * FCALMaterialConsultant::Material(G4String what)
0264 {
0265 G4Material* material = 0;
0266 if(what == "Air") material = Air;
0267 if(what == "Vacuum") material = Vacuum;
0268 if(what == "LiquidArgon") material = LiquidArgon;
0269 if(what == "Aluminium") material = Aluminium;
0270 if(what == "Iron") material = Iron;
0271 if(what == "Copper") material = Copper;
0272 if(what == "Tungsten") material = Tungsten;
0273 if(what == "Lead") material = Lead;
0274 if(what == "CO2") material = CO2;
0275 if(what == "ArgonGas") material = ArgonGas;
0276 if(what == "ShieldingConcrete") material = ShieldingConcrete;
0277 if(what == "Polystyrene") material = Polystyrene;
0278 if(what == "StainlessSteel") material = StainlessSteel;
0279 if(what == "Nickel") material = Nickel;
0280 if(what == "FCAL1CuArKap") material = FCAL1CuArKap;
0281 if(what == "FCAL1CuAr") material = FCAL1CuAr;
0282 if(what == "FCAL2CuArKap") material = FCAL2CuArKap;
0283 if(what == "FCAL2WFeNi") material = FCAL2WFeNi;
0284 if(what == "FCAL2WFeNiCuAr") material = FCAL2WFeNiCuAr;
0285 if(what == "MWPCArCO2") material = MWPCArCO2;
0286 if(what == "RhoaCell") material = RhoaCell;
0287
0288 return material;
0289 }
0290