108 new TGeoManager(
"E03_geometry",
"E03 VMC example geometry");
121 new TGeoMaterial(
"Aluminium", a = 26.98, z = 13., density = 2.700);
123 new TGeoMaterial(
"liquidArgon", a = 39.95, z = 18., density = 1.390);
125 new TGeoMaterial(
"Lead", a = 207.19, z = 82., density = 11.35);
133 TGeoElement* elH =
new TGeoElement(
"Hydrogen",
"H", z = 1, a = 1.01);
134 TGeoElement* elC =
new TGeoElement(
"Carbon",
"C", z = 6., a = 12.01);
135 TGeoElement* elN =
new TGeoElement(
"Nitrogen",
"N", z = 7., a = 14.01);
136 TGeoElement* elO =
new TGeoElement(
"Oxygen",
"O", z = 8., a = 16.00);
137 TGeoElement* elSi =
new TGeoElement(
"Silicon",
"Si", z = 14., a = 28.09);
151 TGeoMixture* matH2O =
new TGeoMixture(
"Water", 2, density = 1.000);
152 matH2O->AddElement(elH, 2);
153 matH2O->AddElement(elO, 1);
158 TGeoMixture* matSci =
new TGeoMixture(
"Scintillator", 2, density = 1.032);
159 matSci->AddElement(elC, 9);
160 matSci->AddElement(elH, 10);
162 TGeoMixture* matMyl =
new TGeoMixture(
"Mylar", 3, density = 1.397);
163 matMyl->AddElement(elC, 10);
164 matMyl->AddElement(elH, 8);
165 matMyl->AddElement(elO, 4);
167 TGeoMixture* matSiO2 =
new TGeoMixture(
"quartz", 2, density = 2.200);
168 matSiO2->AddElement(elSi, 1);
169 matSiO2->AddElement(elO, 2);
175 TGeoMixture* matAir =
new TGeoMixture(
"Air", 2, density = 1.29e-03);
176 matAir->AddElement(elN, 0.7);
177 matAir->AddElement(elO, 0.3);
184 TGeoMixture* matAerog =
new TGeoMixture(
"Aerogel", 3, density = 0.200);
185 matAerog->AddElement(matSiO2, 0.625);
186 matAerog->AddElement(matH2O, 0.374);
187 matAerog->AddElement(elC, 0.001);
193 TGeoMixture* matCO2 =
new TGeoMixture(
"CarbonicGas", 2, density = 1.842e-03);
194 matCO2->AddElement(elC, 1);
195 matCO2->AddElement(elO, 2);
197 Double_t atmosphere = 6.32421e+08;
198 Double_t pressure = 50. * atmosphere;
199 Double_t temperature = 325.;
200 matCO2->SetPressure(pressure);
201 matCO2->SetTemperature(temperature);
202 matCO2->SetState(TGeoMaterial::kMatStateGas);
204 TGeoMixture* matSteam =
new TGeoMixture(
"WaterSteam", 1, density = 0.3e-03);
205 matSteam->AddElement(matH2O, 1.0);
207 pressure = 2. * atmosphere;
209 matSteam->SetPressure(pressure);
210 matSteam->SetTemperature(temperature);
211 matSteam->SetState(TGeoMaterial::kMatStateGas);
217 new TGeoMaterial(
"Galactic", a = 1.e-16, z = 1.e-16, density = 1.e-16);
219 TGeoMixture* matBeam =
new TGeoMixture(
"Beam", 1, density = 1.e-5);
220 matBeam->AddElement(matAir, 1.0);
222 pressure = 2. * atmosphere;
223 temperature = STP_temperature;
224 matBeam->SetPressure(pressure);
225 matBeam->SetTemperature(temperature);
226 matBeam->SetState(TGeoMaterial::kMatStateGas);
242 for (Int_t i = 8; i < 20; ++i) param[i] = 0.;
245 TList* materials = gGeoManager->GetListOfMaterials();
246 TIter next(materials);
247 while (
TObject* obj = next()) {
248 TGeoMaterial* material = (TGeoMaterial*)obj;
249 new TGeoMedium(material->GetName(), ++mediumId, material, param);
264 Int_t defaultMediumId =
266 Int_t absorberMediumId =
268 Int_t gapMediumId = gGeoManager->GetMedium(
fGapMaterial.Data())->GetId();
279 gGeoManager->Volume(
"WRLD",
"BOX", defaultMediumId, world, 3);
280 gGeoManager->SetTopVolume(top);
291 gGeoManager->Volume(
"CALO",
"BOX", defaultMediumId, calo, 3);
296 gGeoManager->Node(
"CALO", 1,
"WRLD", posX, posY, posZ, 0, kTRUE, ubuf);
300 Double_t start = -calo[0];
302 gGeoManager->Division(
"CELL",
"CALO", 1,
fNbOfLayers, start, width);
311 gGeoManager->Volume(
"LAYE",
"BOX", defaultMediumId, layer, 3);
316 gGeoManager->Node(
"LAYE", 1,
"CELL", posX, posY, posZ, 0, kTRUE, ubuf);
329 gGeoManager->Volume(
"ABSO",
"BOX", absorberMediumId, abso, 3);
334 gGeoManager->Node(
"ABSO", 1,
"LAYE", posX, posY, posZ, 0, kTRUE, ubuf);
347 gGeoManager->Volume(
"GAPX",
"BOX", gapMediumId, gap, 3);
352 gGeoManager->Node(
"GAPX", 1,
"LAYE", posX, posY, posZ, 0, kTRUE, ubuf);
367 gGeoManager->CloseGeometry();
382 std::set<TString> createdMaterials;
389 std::vector<MaterialCuts> materialCutsVector = {
390 MaterialCuts(
"Aluminium", 10.e-06, 10.e-06, 597.e-06, 597.e-06),
391 MaterialCuts(
"liquidArgon", 10.e-06, 10.e-06, 342.9e-06, 342.9e-06),
392 MaterialCuts(
"Lead", 100.5e-06, 100.5e-06, 1.378e-03, 1.378e-03),
393 MaterialCuts(
"Water", 10.e-06, 10.e-06, 347.2e-06, 347.2e-06),
394 MaterialCuts(
"Scintillator", 10.e-06, 10.e-06, 355.8e-06, 355.8e-06),
395 MaterialCuts(
"Mylar", 10.e-06, 10.e-06, 417.5e-06, 417.5e-06),
396 MaterialCuts(
"quartz", 10.e-06, 10.e-06, 534.1e-06, 534.1e-06),
397 MaterialCuts(
"Air", 10.e-06, 10.e-06, 10.e-06, 10.e-06),
398 MaterialCuts(
"Aerogel", 10.e-06, 10.e-06, 119.0e-06, 119.0e-06),
399 MaterialCuts(
"CarbonicGas", 10.e-09, 10.e-06, 10.e-06, 10.e-06),
400 MaterialCuts(
"WaterSteam", 10.e-06, 10.e-06, 10.e-06, 10.e-06),
401 MaterialCuts(
"Galactic", 10.e-06, 10.e-06, 10.e-06, 10.e-06),
402 MaterialCuts(
"Beam", 10.e-06, 10.e-06, 10.e-06, 10.e-06)
406 for (
auto materialCuts : materialCutsVector) {
408 if (createdMaterials.find(materialCuts.fName) == createdMaterials.end())
411 Int_t mediumId =
fMC->MediumId(materialCuts.fName);
420 Double_t cut = 100.e-06;
421 gMC->Gstpar(mediumId,
"CUTGAM", cut);
422 gMC->Gstpar(mediumId,
"BCUTE", cut);
423 gMC->Gstpar(mediumId,
"CUTELE", cut);
424 gMC->Gstpar(mediumId,
"DCUTE", cut);