64 float asteel[4] = {55.847, 51.9961, 58.6934, 28.0855};
65 float zsteel[4] = {26., 24., 28., 14.};
66 float wsteel[4] = {.715, .18, .1, .005};
69 float airon[2] = {55.845, 56.};
70 float ziron[2] = {26., 26.};
71 float wiron[2] = {.923, .077};
76 float aAir[4] = {12.0107, 14.0067, 15.9994, 39.948};
77 float zAir[4] = {6., 7., 8., 18.};
78 float wAir[4] = {0.000124, 0.755267, 0.231781, 0.012827};
79 float dAir = 1.20479E-3;
80 float dAir1 = 1.20479E-11;
85 float epsil, stmin, tmaxfd, deemax, stemax;
94 matmgr.Mixture(
"ALICE3_ABSORBER", 16,
"VACUUM$", aAir, zAir, dAir1, 4, wAir);
95 matmgr.Medium(
"ALICE3_ABSORBER", 16,
"VA_C0", 16, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
104 matmgr.Material(
"ALICE3_ABSORBER", 26,
"IRON$", 55.845, 26., 7.874, 1.757, 17.1);
105 matmgr.Medium(
"ALICE3_ABSORBER", 26,
"FE", 26, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
123 auto kMedVac = matmgr.getTGeoMedium(
"ALICE3_ABSORBER_VA_C0");
124 auto kMedIron = matmgr.getTGeoMedium(
"ALICE3_ABSORBER_FE");
127 TGeoVolume*
top = gGeoManager->GetVolume(
"cave");
128 TGeoVolume* barrel = gGeoManager->GetVolume(
"barrel");
130 LOG(fatal) <<
"Could not find the barrel volume while constructing absorber geometry";
133 TGeoPcon* absorings =
new TGeoPcon(0., 360., 18);
135 switch (passiveBaseParam.mDetLayout) {
137 absorings->DefineSection(0, 500, 236, 274);
138 absorings->DefineSection(1, 400, 236, 274);
139 absorings->DefineSection(2, 400, 232.5, 277.5);
140 absorings->DefineSection(3, 300, 232.5, 277.5);
141 absorings->DefineSection(4, 300, 227.5, 282.5);
142 absorings->DefineSection(5, 200, 227.5, 282.5);
143 absorings->DefineSection(6, 200, 222.5, 287.5);
144 absorings->DefineSection(7, 100, 222.5, 287.5);
145 absorings->DefineSection(8, 100, 220, 290);
146 absorings->DefineSection(9, -100, 220, 290);
147 absorings->DefineSection(10, -100, 222.5, 287.5);
148 absorings->DefineSection(11, -200, 222.5, 287.5);
149 absorings->DefineSection(12, -200, 227.5, 282.5);
150 absorings->DefineSection(13, -300, 227.5, 282.5);
151 absorings->DefineSection(14, -300, 232.5, 277.5);
152 absorings->DefineSection(15, -400, 232.5, 277.5);
153 absorings->DefineSection(16, -400, 236, 274);
154 absorings->DefineSection(17, -500, 236, 274);
157 absorings->DefineSection(0, 500, 201, 239);
158 absorings->DefineSection(1, 400, 201, 239);
159 absorings->DefineSection(2, 400, 197.5, 242.5);
160 absorings->DefineSection(3, 300, 197.5, 242.5);
161 absorings->DefineSection(4, 300, 192.5, 247.5);
162 absorings->DefineSection(5, 200, 192.5, 247.5);
163 absorings->DefineSection(6, 200, 187.5, 252.5);
164 absorings->DefineSection(7, 100, 187.5, 252.5);
165 absorings->DefineSection(8, 100, 185, 255);
166 absorings->DefineSection(9, -100, 185, 255);
167 absorings->DefineSection(10, -100, 187.5, 252.5);
168 absorings->DefineSection(11, -200, 187.5, 252.5);
169 absorings->DefineSection(12, -200, 192.5, 247.5);
170 absorings->DefineSection(13, -300, 192.5, 247.5);
171 absorings->DefineSection(14, -300, 197.5, 242.5);
172 absorings->DefineSection(15, -400, 197.5, 242.5);
173 absorings->DefineSection(16, -400, 201, 239);
174 absorings->DefineSection(17, -500, 201, 239);
177 LOG(fatal) <<
"Unknown detector layout " << passiveBaseParam.mDetLayout;
182 absorings->SetName(
"absorings");
184 TGeoVolume* abso =
new TGeoVolume(
"Absorber", absorings, kMedIron);
186 abso->SetVisibility(1);
187 abso->SetLineColor(kGray + 3);
193 barrel->AddNode(abso, 1,
new TGeoTranslation(0, 30.f, 0));