23 ClusterNumber= ExtClusterNumber;
24 StartClusterNumber = ExtClusterNumber;
26 NumberOfCryostatEdges =12;
27 NumberOfDifferentZValues = 5;
28 NumberOfXYInput = (NumberOfDifferentZValues*2-1)*2;
29 NumberOfFrontArb8 = 5;
30 NumberOfTopArb8 = NumberOfFrontArb8;
33 char* InputTitleBuffer;
34 ZValuesInputArray =
new Double_t[NumberOfDifferentZValues];
35 CoordinatesInputArray =
new Double_t[NumberOfCryostatEdges*NumberOfXYInput];
36 string Filename = getenv(
"VMCWORKDIR");
37 Filename +=
"/hypGe/geometry/PndGeoHypGeDEGASParfile.txt";
39 ParametersInputFile.open(Filename.data());
40 FillZValues(NumberOfDifferentZValues);
41 FillInputArray(NumberOfCryostatEdges,NumberOfXYInput);
42 ParametersInputFile.close();
44 CryostatFrontThickness= ZValuesInputArray[1]-ZValuesInputArray[0];
45 CryostatLowerArb8Heigt = ZValuesInputArray[2]-ZValuesInputArray[1];
46 CryostatMiddleArb8Heigt= ZValuesInputArray[3]-ZValuesInputArray[2];
47 CryostatUpperArb8Heigt= ZValuesInputArray[4]-ZValuesInputArray[3];
48 CryostatTopThickness=0.5;
54 cout <<
"Destrucor called" << endl;
58 delete Crystal1Rotation;
59 delete Crystal2Rotation;
60 delete Crystal3Rotation;
67 Crystal1Number = *CrystalNumber;
69 Crystal2Number = *CrystalNumber;
71 Crystal3Number = *CrystalNumber;
80 TripleCrystalXOffset = 3.5428;
81 TripleCrystalYOffset = 3.0682;
82 TripleCrystalZOffset = 0.7701;
84 Crystal1Rotation =
new TGeoRotation(
"Crystal1Rotation", -90,4.62,90);
85 Crystal1Rotation ->RegisterYourself();
86 Crystal2Rotation =
new TGeoRotation(
"Crystal2Rotation", 30,4.62,-30);
87 Crystal2Rotation ->RegisterYourself();
88 Crystal3Rotation =
new TGeoRotation(
"Crystal2Rotation", 150,+4.62,-30);
89 Crystal3Rotation ->RegisterYourself();
92 Crystal1Position =
new TGeoCombiTrans(TripleCrystalXOffset,0,-TripleCrystalZOffset,Crystal1Rotation);
93 Crystal1Position->RegisterYourself();
94 Crystal2Position =
new TGeoCombiTrans(-TripleCrystalXOffset/2,TripleCrystalYOffset,-TripleCrystalZOffset,Crystal2Rotation);
95 Crystal2Position->RegisterYourself();
96 Crystal3Position =
new TGeoCombiTrans(-TripleCrystalXOffset/2,-TripleCrystalYOffset,-TripleCrystalZOffset,Crystal3Rotation);
97 Crystal3Position->RegisterYourself();
104 Crystal1->PlaceCrystal(ClusterAssembly,Crystal1Position);
105 Crystal2->PlaceCrystal(ClusterAssembly,Crystal2Position);
106 Crystal3->PlaceCrystal(ClusterAssembly,Crystal3Position);
113 string CompositeShapeExpression;
116 CryostatFrontArb8XY_1 =
new Double_t[16];
117 BuildTArb8FrontArray(CryostatFrontArb8XY_1, 2,3,4,1, NumberOfXYInput);
118 CryostatFrontArb8XY_2 =
new Double_t[16];
119 BuildTArb8FrontArray(CryostatFrontArb8XY_2, 5,6,7,4, NumberOfXYInput);
120 CryostatFrontArb8XY_3 =
new Double_t[16];
121 BuildTArb8FrontArray(CryostatFrontArb8XY_3, 4,7,8,1, NumberOfXYInput);
122 CryostatFrontArb8XY_4 =
new Double_t[16];
123 BuildTArb8FrontArray(CryostatFrontArb8XY_4, 8,9,12,1, NumberOfXYInput);
124 CryostatFrontArb8XY_5 =
new Double_t[16];
125 BuildTArb8FrontArray(CryostatFrontArb8XY_5, 9,10,11,12, NumberOfXYInput);
127 CryostatFrontArb8_1 =
new TGeoArb8 (
"CryostatTripleFrontArb8_1",CryostatFrontThickness/2,CryostatFrontArb8XY_1);
128 CryostatFrontArb8_2 =
new TGeoArb8 (
"CryostatTripleFrontArb8_2",CryostatFrontThickness/2,CryostatFrontArb8XY_2);
129 CryostatFrontArb8_3 =
new TGeoArb8 (
"CryostatTripleFrontArb8_3",CryostatFrontThickness/2,CryostatFrontArb8XY_3);
130 CryostatFrontArb8_4 =
new TGeoArb8 (
"CryostatTripleFrontArb8_4",CryostatFrontThickness/2,CryostatFrontArb8XY_4);
131 CryostatFrontArb8_5 =
new TGeoArb8 (
"CryostatTripleFrontArb8_5",CryostatFrontThickness/2,CryostatFrontArb8XY_5);
133 CryostatFrontTranslation =
new TGeoTranslation(
"CryostatTripleFrontTranslation",0,0,CryostatFrontThickness/2);
134 CryostatFrontTranslation->RegisterYourself();
136 for (Int_t
i = 1;
i < NumberOfFrontArb8+1;
i++)
139 sprintf(buffer,
"CryostatTripleFrontArb8_%d : CryostatTripleFrontTranslation",
i);
140 CompositeShapeExpression += buffer;
141 CompositeShapeExpression +=
"+";
146 CryostatLowerArb8XY_1 =
new Double_t[16];
147 BuildTArb8Array(CryostatLowerArb8XY_1, 1,2,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
148 CryostatLowerArb8XY_2 =
new Double_t[16];
149 BuildTArb8Array(CryostatLowerArb8XY_2, 2,3,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
150 CryostatLowerArb8XY_3 =
new Double_t[16];
151 BuildTArb8Array(CryostatLowerArb8XY_3, 3,4,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
152 CryostatLowerArb8XY_4 =
new Double_t[16];
153 BuildTArb8Array(CryostatLowerArb8XY_4, 4,5,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
154 CryostatLowerArb8XY_5 =
new Double_t[16];
155 BuildTArb8Array(CryostatLowerArb8XY_5, 5,6,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
156 CryostatLowerArb8XY_6 =
new Double_t[16];
157 BuildTArb8Array(CryostatLowerArb8XY_6, 6,7,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
158 CryostatLowerArb8XY_7 =
new Double_t[16];
159 BuildTArb8Array(CryostatLowerArb8XY_7, 7,8,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
160 CryostatLowerArb8XY_8 =
new Double_t[16];
161 BuildTArb8Array(CryostatLowerArb8XY_8, 8,9,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
162 CryostatLowerArb8XY_9 =
new Double_t[16];
163 BuildTArb8Array(CryostatLowerArb8XY_9, 9,10,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
164 CryostatLowerArb8XY_10 =
new Double_t[16];
165 BuildTArb8Array(CryostatLowerArb8XY_10, 10,11,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
166 CryostatLowerArb8XY_11 =
new Double_t[16];
167 BuildTArb8Array(CryostatLowerArb8XY_11, 11,12,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
168 CryostatLowerArb8XY_12 =
new Double_t[16];
169 BuildTArb8Array(CryostatLowerArb8XY_12, 12,1,1,2, NumberOfDifferentZValues-1, NumberOfXYInput);
172 CryostatLowerArb8_1 =
new TGeoArb8 (
"CryostatTripleLowerArb8_1",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_1);
173 CryostatLowerArb8_2 =
new TGeoArb8 (
"CryostatTripleLowerArb8_2",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_2);
174 CryostatLowerArb8_3 =
new TGeoArb8 (
"CryostatTripleLowerArb8_3",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_3);
175 CryostatLowerArb8_4 =
new TGeoArb8 (
"CryostatTripleLowerArb8_4",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_4);
176 CryostatLowerArb8_5 =
new TGeoArb8 (
"CryostatTripleLowerArb8_5",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_5);
177 CryostatLowerArb8_6 =
new TGeoArb8 (
"CryostatTripleLowerArb8_6",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_6);
178 CryostatLowerArb8_7 =
new TGeoArb8 (
"CryostatTripleLowerArb8_7",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_7);
179 CryostatLowerArb8_8 =
new TGeoArb8 (
"CryostatTripleLowerArb8_8",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_8);
180 CryostatLowerArb8_9 =
new TGeoArb8 (
"CryostatTripleLowerArb8_9",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_9);
181 CryostatLowerArb8_10 =
new TGeoArb8 (
"CryostatTripleLowerArb8_10",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_10);
182 CryostatLowerArb8_11 =
new TGeoArb8 (
"CryostatTripleLowerArb8_11",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_11);
183 CryostatLowerArb8_12 =
new TGeoArb8 (
"CryostatTripleLowerArb8_12",CryostatLowerArb8Heigt/2,CryostatLowerArb8XY_12);
185 CryostatLowerTranslation =
new TGeoTranslation(
"CryostatTripleLowerTranslation",0,0,CryostatFrontThickness+CryostatLowerArb8Heigt/2);
186 CryostatLowerTranslation->RegisterYourself();
188 for (Int_t
i = 1;
i < NumberOfCryostatEdges+1;
i++)
191 sprintf(buffer,
"CryostatTripleLowerArb8_%d : CryostatTripleLowerTranslation",
i);
192 CompositeShapeExpression += buffer;
195 CompositeShapeExpression +=
"+";
201 CryostatMiddleArb8XY_1 =
new Double_t[16];
202 BuildTArb8Array(CryostatMiddleArb8XY_1, 1,2,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
203 CryostatMiddleArb8XY_2 =
new Double_t[16];
204 BuildTArb8Array(CryostatMiddleArb8XY_2, 2,3,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
205 CryostatMiddleArb8XY_3 =
new Double_t[16];
206 BuildTArb8Array(CryostatMiddleArb8XY_3, 3,4,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
207 CryostatMiddleArb8XY_4 =
new Double_t[16];
208 BuildTArb8Array(CryostatMiddleArb8XY_4, 4,5,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
209 CryostatMiddleArb8XY_5 =
new Double_t[16];
210 BuildTArb8Array(CryostatMiddleArb8XY_5, 5,6,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
211 CryostatMiddleArb8XY_6 =
new Double_t[16];
212 BuildTArb8Array(CryostatMiddleArb8XY_6, 6,7,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
213 CryostatMiddleArb8XY_7 =
new Double_t[16];
214 BuildTArb8Array(CryostatMiddleArb8XY_7, 7,8,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
215 CryostatMiddleArb8XY_8 =
new Double_t[16];
216 BuildTArb8Array(CryostatMiddleArb8XY_8, 8,9,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
217 CryostatMiddleArb8XY_9 =
new Double_t[16];
218 BuildTArb8Array(CryostatMiddleArb8XY_9, 9,10,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
219 CryostatMiddleArb8XY_10 =
new Double_t[16];
220 BuildTArb8Array(CryostatMiddleArb8XY_10, 10,11,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
221 CryostatMiddleArb8XY_11 =
new Double_t[16];
222 BuildTArb8Array(CryostatMiddleArb8XY_11, 11,12,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
223 CryostatMiddleArb8XY_12 =
new Double_t[16];
224 BuildTArb8Array(CryostatMiddleArb8XY_12, 12,1,2,3, NumberOfDifferentZValues-1, NumberOfXYInput);
227 CryostatMiddleArb8_1 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_1",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_1);
228 CryostatMiddleArb8_2 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_2",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_2);
229 CryostatMiddleArb8_3 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_3",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_3);
230 CryostatMiddleArb8_4 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_4",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_4);
231 CryostatMiddleArb8_5 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_5",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_5);
232 CryostatMiddleArb8_6 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_6",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_6);
233 CryostatMiddleArb8_7 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_7",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_7);
234 CryostatMiddleArb8_8 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_8",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_8);
235 CryostatMiddleArb8_9 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_9",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_9);
236 CryostatMiddleArb8_10 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_10",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_10);
237 CryostatMiddleArb8_11 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_11",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_11);
238 CryostatMiddleArb8_12 =
new TGeoArb8 (
"CryostatTripleMiddleArb8_12",CryostatMiddleArb8Heigt/2,CryostatMiddleArb8XY_12);
240 CryostatMiddleTranslation =
new TGeoTranslation(
"CryostatTripleMiddleTranslation",0,0,CryostatFrontThickness +CryostatLowerArb8Heigt+CryostatMiddleArb8Heigt/2);
241 CryostatMiddleTranslation->RegisterYourself();
243 for (Int_t
i = 1;
i < NumberOfCryostatEdges+1;
i++)
246 sprintf(buffer,
"CryostatTripleMiddleArb8_%d : CryostatTripleMiddleTranslation",
i);
247 CompositeShapeExpression += buffer;
248 CompositeShapeExpression +=
"+";
261 CryostatUpperArb8XY_1 =
new Double_t[16];
262 BuildTArb8Array(CryostatUpperArb8XY_1, 1,2,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
263 CryostatUpperArb8XY_2 =
new Double_t[16];
264 BuildTArb8Array(CryostatUpperArb8XY_2, 2,3,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
265 CryostatUpperArb8XY_3 =
new Double_t[16];
266 BuildTArb8Array(CryostatUpperArb8XY_3, 3,4,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
267 CryostatUpperArb8XY_4 =
new Double_t[16];
268 BuildTArb8Array(CryostatUpperArb8XY_4, 4,5,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
269 CryostatUpperArb8XY_5 =
new Double_t[16];
270 BuildTArb8Array(CryostatUpperArb8XY_5, 5,6,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
271 CryostatUpperArb8XY_6 =
new Double_t[16];
272 BuildTArb8Array(CryostatUpperArb8XY_6, 6,7,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
273 CryostatUpperArb8XY_7 =
new Double_t[16];
274 BuildTArb8Array(CryostatUpperArb8XY_7, 7,8,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
275 CryostatUpperArb8XY_8 =
new Double_t[16];
276 BuildTArb8Array(CryostatUpperArb8XY_8, 8,9,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
277 CryostatUpperArb8XY_9 =
new Double_t[16];
278 BuildTArb8Array(CryostatUpperArb8XY_9, 9,10,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
279 CryostatUpperArb8XY_10 =
new Double_t[16];
280 BuildTArb8Array(CryostatUpperArb8XY_10, 10,11,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
281 CryostatUpperArb8XY_11 =
new Double_t[16];
282 BuildTArb8Array(CryostatUpperArb8XY_11, 11,12,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
283 CryostatUpperArb8XY_12 =
new Double_t[16];
284 BuildTArb8Array(CryostatUpperArb8XY_12, 12,1,3,4, NumberOfDifferentZValues-1, NumberOfXYInput);
287 CryostatUpperArb8_1 =
new TGeoArb8 (
"CryostatTripleUpperArb8_1",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_1);
288 CryostatUpperArb8_2 =
new TGeoArb8 (
"CryostatTripleUpperArb8_2",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_2);
289 CryostatUpperArb8_3 =
new TGeoArb8 (
"CryostatTripleUpperArb8_3",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_3);
290 CryostatUpperArb8_4 =
new TGeoArb8 (
"CryostatTripleUpperArb8_4",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_4);
291 CryostatUpperArb8_5 =
new TGeoArb8 (
"CryostatTripleUpperArb8_5",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_5);
292 CryostatUpperArb8_6 =
new TGeoArb8 (
"CryostatTripleUpperArb8_6",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_6);
293 CryostatUpperArb8_7 =
new TGeoArb8 (
"CryostatTripleUpperArb8_7",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_7);
294 CryostatUpperArb8_8 =
new TGeoArb8 (
"CryostatTripleUpperArb8_8",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_8);
295 CryostatUpperArb8_9 =
new TGeoArb8 (
"CryostatTripleUpperArb8_9",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_9);
296 CryostatUpperArb8_10 =
new TGeoArb8 (
"CryostatTripleUpperArb8_10",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_10);
297 CryostatUpperArb8_11 =
new TGeoArb8 (
"CryostatTripleUpperArb8_11",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_11);
298 CryostatUpperArb8_12 =
new TGeoArb8 (
"CryostatTripleUpperArb8_12",CryostatUpperArb8Heigt/2,CryostatUpperArb8XY_12);
301 CryostatUpperTranslation =
new TGeoTranslation(
"CryostatTripleUpperTranslation",0,0,CryostatFrontThickness +CryostatLowerArb8Heigt+CryostatMiddleArb8Heigt+CryostatUpperArb8Heigt/2);
302 CryostatUpperTranslation->RegisterYourself();
304 for (Int_t
i = 1;
i < NumberOfCryostatEdges+1;
i++)
307 sprintf(buffer,
"CryostatTripleUpperArb8_%d : CryostatTripleUpperTranslation",
i);
308 CompositeShapeExpression += buffer;
310 if (
i<NumberOfCryostatEdges)
312 CompositeShapeExpression +=
"+";
314 if (
i==NumberOfCryostatEdges && MakeTop )
316 CompositeShapeExpression +=
"+";
322 CryostatTopArb8XY_1 =
new Double_t[16];
323 BuildTArb8TopArray(CryostatTopArb8XY_1, 2,3,4,1, NumberOfDifferentZValues-1, NumberOfXYInput);
324 CryostatTopArb8XY_2 =
new Double_t[16];
325 BuildTArb8TopArray(CryostatTopArb8XY_2, 5,6,7,4, NumberOfDifferentZValues-1, NumberOfXYInput);
326 CryostatTopArb8XY_3 =
new Double_t[16];
327 BuildTArb8TopArray(CryostatTopArb8XY_3, 4,7,8,1, NumberOfDifferentZValues-1, NumberOfXYInput);
328 CryostatTopArb8XY_4 =
new Double_t[16];
329 BuildTArb8TopArray(CryostatTopArb8XY_4, 8,9,12,1, NumberOfDifferentZValues-1, NumberOfXYInput);
330 CryostatTopArb8XY_5 =
new Double_t[16];
331 BuildTArb8TopArray(CryostatTopArb8XY_5, 9,10,11,12, NumberOfDifferentZValues-1, NumberOfXYInput);
333 CryostatTopArb8_1 =
new TGeoArb8 (
"CryostatTripleTopArb8_1",CryostatTopThickness/2,CryostatTopArb8XY_1);
334 CryostatTopArb8_2 =
new TGeoArb8 (
"CryostatTripleTopArb8_2",CryostatTopThickness/2,CryostatTopArb8XY_2);
335 CryostatTopArb8_3 =
new TGeoArb8 (
"CryostatTripleTopArb8_3",CryostatTopThickness/2,CryostatTopArb8XY_3);
336 CryostatTopArb8_4 =
new TGeoArb8 (
"CryostatTripleTopArb8_4",CryostatTopThickness/2,CryostatTopArb8XY_4);
337 CryostatTopArb8_5 =
new TGeoArb8 (
"CryostatTripleTopArb8_5",CryostatTopThickness/2,CryostatTopArb8XY_5);
339 CryostatTopTranslation =
new TGeoTranslation(
"CryostatTripleTopTranslation",0,0,CryostatFrontThickness +CryostatLowerArb8Heigt+CryostatMiddleArb8Heigt+CryostatUpperArb8Heigt+CryostatTopThickness/2);
340 CryostatTopTranslation->RegisterYourself();
345 for (Int_t
i = 1;
i < NumberOfTopArb8+1;
i++)
348 sprintf(buffer,
"CryostatTripleTopArb8_%d : CryostatTripleTopTranslation",
i);
349 CompositeShapeExpression += buffer;
350 if (
i<NumberOfTopArb8)
352 CompositeShapeExpression +=
"+";
361 CryostatShape =
new TGeoCompositeShape(
"CryostatShape",CompositeShapeExpression.data() );
362 Cryostat =
new TGeoVolume(
"Cryostat",CryostatShape,Al);
363 Cryostat->SetLineColor(kGreen);
364 Cryostat->SetFillColor(kGreen);
366 CryostatCombiTrans =
new TGeoCombiTrans(
"CryostatCombiTrans",0,0,0,
new TGeoRotation(
"CryostatRotation",0,180,0));
367 CryostatCombiTrans->RegisterYourself();
369 ClusterAssembly->AddNode(Cryostat,ClusterNumber,CryostatCombiTrans);
377 cout <<
"Nothing to Print, use higher number to go deeper in the tree." << endl;
381 cout <<
"Printing the content of the cluster assembly." << endl;
382 cout <<endl <<
"Number of Nodes in cluster assembly: " << ClusterAssembly->GetNdaughters() << endl;
383 ClusterAssembly->PrintNodes();
387 cout <<
"Printing the content of the crystal assemblies." << endl;
388 cout <<endl<<
"Number of Nodes in crystal assembly 1: " << Crystal1->GetNdaughters() << endl;
389 Crystal1->PrintNodes();
390 cout <<endl<<
"Number of Nodes in crystal assembly 2: " << Crystal2->GetNdaughters() << endl;
391 Crystal2->PrintNodes();
392 cout <<endl <<
"Number of Nodes in crystal assembly 3: " << Crystal3->GetNdaughters() << endl;
393 Crystal3->PrintNodes();
void PrintNodes(Int_t nLevels)
void BuildCrystals(Int_t *CrystalNumber)