50 FairGeoMedium* mVacuum = geoMedia->getMedium(
"vacuum");
52 Fatal(
"Main",
"FairMedium vacuum not found");
53 geoBuild->createMedium(mVacuum);
56 Fatal(
"Main",
"Medium vacuum not found");
59 FairGeoMedium* mAir = geoMedia->getMedium(
"air");
61 Fatal(
"Main",
"FairMedium air not found");
62 geoBuild->createMedium(mAir);
65 Fatal(
"Main",
"Medium air not found");
68 FairGeoMedium* mIron = geoMedia->getMedium(
"iron");
70 Fatal(
"Main",
"FairMedium iron not found");
71 geoBuild->createMedium(mIron);
74 Fatal(
"Main",
"Medium iron not found");
77 FairGeoMedium* mTyvec = geoMedia->getMedium(
"tyvec_ZDC");
79 Fatal(
"Main",
"FairMedium tyvec not found");
80 geoBuild->createMedium(mTyvec);
83 Fatal(
"Main",
"Medium tyvec not found");
86 FairGeoMedium* mLead = geoMedia->getMedium(
"lead");
88 Fatal(
"Main",
"FairMedium lead not found");
89 geoBuild->createMedium(mLead);
92 Fatal(
"Main",
"Medium lead not found");
95 FairGeoMedium* mPolystyrene = geoMedia->getMedium(
"polystyrene");
97 Fatal(
"Main",
"FairMedium polystyrene not found");
98 geoBuild->createMedium(mPolystyrene);
101 Fatal(
"Main",
"Medium polystyrene not found");
104 FairGeoMedium* mPlastic = geoMedia->getMedium(
"plasticWLS_ZDC");
106 Fatal(
"Main",
"FairMedium plastic not found");
107 geoBuild->createMedium(mPlastic);
110 Fatal(
"Main",
"Medium plastic not found");
306 Double_t Zdc_Y_slot_position = 0.75;
328 TString Fe_name_NICA =
"Fe_NICA";
329 TString slot_Fe_name =
"Fe_slot";
330 TString Pb_name_NICA =
"zdc01a_NICA";
331 TString slot_Pb_name =
"Pb_slot";
332 TString SensitiveVolume_name_NICA =
"zdc01s_NICA";
333 TString slot_Sc_name =
"Sc_slot";
334 TString Tyvec_name_NICA =
"Tyvec_NICA";
335 TString slot_Tyvec_Y_name =
"Tyvec_slot_Y";
336 TString slot_Tyvec_A_name =
"Tyvec_slot_A";
339 TGeoShape* FeS_NICA =
new TGeoBBox(Fe_name_NICA, Zdc_Fe_X_size, Zdc_Fe_Y_size, Zdc_Fe_Z_size);
345 Fatal(
"Main",
"Invalid medium for Fe_NICA!");
347 TGeoShape* PbS_NICA =
new TGeoBBox(Pb_name_NICA, Zdc_Pb_X_size, Zdc_Pb_Y_size, Zdc_Pb_Z_size);
353 Fatal(
"Main",
"Invalid medium for Pb_NICA!");
356 new TGeoBBox(SensitiveVolume_name_NICA, Zdc_Sc_X_size, Zdc_Sc_Y_size, Zdc_Sc_Z_size);
357 TGeoVolume* zdcSensitiveVolumeV_NICA =
new TGeoVolume(SensitiveVolume_name_NICA, zdcSensitiveVolumeS_NICA);
360 zdcSensitiveVolumeV_NICA->
SetMedium(Sc_medium_NICA);
362 Fatal(
"Main",
"Invalid medium for Sc_NICA!");
364 TGeoShape* TyvecS_NICA =
new TGeoBBox(Tyvec_name_NICA, Zdc_Tyvec_X_size, Zdc_Tyvec_Y_size, Zdc_Tyvec_Z_size);
367 if (Tyvec_medium_NICA)
368 TyvecV_NICA->
SetMedium(Tyvec_medium_NICA);
370 Fatal(
"Main",
"Invalid medium for Tyvec_NICA!");
373 TGeoShape* slot_FeS =
new TGeoBBox(slot_Fe_name, Zdc_VRFM_X_size, Zdc_VRFM_Y_size, Zdc_VRFM_Z_size);
379 Fatal(
"Main",
"Invalid medium for slot_Fe!");
381 TGeoShape* slot_PbS =
new TGeoBBox(slot_Pb_name, Zdc_VRPM_X_size, Zdc_VRPM_Y_size, Zdc_VRPM_Z_size);
387 Fatal(
"Main",
"Invalid medium for slot_Pb!");
389 TGeoShape* slot_ScS =
new TGeoBBox(slot_Sc_name, Zdc_VRSM_X_size, Zdc_VRSM_Y_size, Zdc_VRSM_Z_size);
395 Fatal(
"Main",
"Invalid medium for slot_Sc!");
397 TGeoShape* slot_Tyvec_YS =
new TGeoBBox(slot_Tyvec_Y_name, Zdc_VRYM_X_size, Zdc_VRYM_Y_size, Zdc_VRYM_Z_size);
400 if (slot_Tyvec_Y_medium)
401 slot_Tyvec_YV->
SetMedium(slot_Tyvec_Y_medium);
403 Fatal(
"Main",
"Invalid medium for slot_Tyvec_Y!");
405 TGeoShape* slot_Tyvec_AS =
new TGeoBBox(slot_Tyvec_A_name, Zdc_VRAM_X_size, Zdc_VRAM_Y_size, Zdc_VRAM_Z_size);
408 if (slot_Tyvec_A_medium)
409 slot_Tyvec_AV->
SetMedium(slot_Tyvec_A_medium);
411 Fatal(
"Main",
"Invalid medium for slot_Tyvec_A!");
414 mother_volume_NICA->
AddNode(FeV_NICA, 1,
new TGeoTranslation(0, 0, -(Zdc_module_Z_size - Zdc_Fe_Z_size)));
415 FeV_NICA->
AddNode(slot_FeV, 1,
new TGeoTranslation(Zdc_Fe_X_size - Zdc_VRFM_X_size, Zdc_Y_slot_position, 0.));
420 TyvecV_NICA, 1,
new TGeoTranslation(0, 0, -(Zdc_module_Z_size - 2. * Zdc_Fe_Z_size - Zdc_Tyvec_Z_size)));
421 cout <<
"NICA tyvec 1 " << -(Zdc_module_Z_size - 2. * Zdc_Fe_Z_size - Zdc_Tyvec_Z_size) << endl;
422 TyvecV_NICA->
AddNode(slot_Tyvec_YV, 1,
423 new TGeoTranslation((Zdc_Tyvec_X_size - Zdc_VRYM_X_size), Zdc_Y_slot_position, 0));
424 TyvecV_NICA->
AddNode(slot_Tyvec_AV, 1,
425 new TGeoTranslation((Zdc_Tyvec_X_size - Zdc_VRAM_X_size - 2. * Zdc_VRYM_X_size),
426 Zdc_Y_slot_position, -(Zdc_Tyvec_Z_size - Zdc_VRAM_Z_size)));
427 TyvecV_NICA->
AddNode(slot_Tyvec_AV, 2,
428 new TGeoTranslation((Zdc_Tyvec_X_size - Zdc_VRAM_X_size - 2. * Zdc_VRYM_X_size),
429 Zdc_Y_slot_position, (Zdc_Tyvec_Z_size - Zdc_VRAM_Z_size)));
433 zdcSensitiveVolumeV_NICA->
AddNode(
435 new TGeoTranslation((Zdc_Tyvec_X_size - Zdc_VRAM_X_size - 2. * Zdc_VRYM_X_size), Zdc_Y_slot_position, 0));
440 new TGeoTranslation(0, 0, -(Zdc_module_Z_size - 2. * Zdc_Fe_Z_size - 2. * Zdc_Tyvec_Z_size - Zdc_Pb_Z_size)));
441 cout <<
"NICA Pb 2 " << -(Zdc_module_Z_size - 2. * Zdc_Fe_Z_size - 2. * Zdc_Tyvec_Z_size - Zdc_Pb_Z_size) << endl;
442 PbV_NICA->
AddNode(slot_PbV, 1,
new TGeoTranslation((Zdc_Pb_X_size - Zdc_VRPM_X_size), Zdc_Y_slot_position, 0));
446 Double_t itInit = -(Zdc_module_Z_size - 2. * Zdc_Fe_Z_size - Zdc_Tyvec_Z_size);
447 Double_t itCur = 0, itDelta = 2. * (Zdc_Pb_Z_size + Zdc_Tyvec_Z_size);
448 for (
Int_t it = 1 + 1; it < Zdc_NTyvec_in_module + 1; it++)
450 itCur = itInit + (it - 1) * itDelta;
452 cout <<
"NICA it,itCur Ty " << it <<
" " << itCur << endl;
456 itInit = -(Zdc_module_Z_size - 2. * Zdc_Fe_Z_size - 2. * Zdc_Tyvec_Z_size - Zdc_Pb_Z_size);
458 itDelta = 2. * (Zdc_Pb_Z_size + Zdc_Tyvec_Z_size);
459 for (
Int_t it = 1 + 2; it < Zdc_NPb_in_module + 2; it++) {
461 itCur = itInit + (it - 2) * itDelta;
463 cout <<
"NICA it,itCur Pb " << it <<
" " << itCur << endl;
466 cout <<
"Zdc_module_Z_size " << Zdc_module_Z_size << endl;