96 G4Box * solidWorld =
new G4Box(
"world_S", world_x, world_y, world_z );
102 logicalWorld -> SetVisAttributes(VisAttWorld);
117 ConstructTelescope();
118 ConstructFocalPlane();
120 return physicalWorld;
127 void XrayTelDetectorConstruction::ConstructTelescope()
145 G4Colour(255/255., 255/255., 0/255.));
147 G4Colour(128/255., 128/255., 128/255.));
151 rotateMatrix -> rotateY(90.*
deg);
155 G4double MirrorEnd[5] = { 34.9995975*
cm, 34.8277209*
cm, 34.6549918*
cm,
156 34.1347834*
cm, 33.6137753*
cm };
164 G4Cons* MirrorAuCoatingSolid[4];
171 for ( i=0; i<4; i++ ) {
174 MirrorSolid[i] =
new G4Cons(
"Mirror_S",
175 MirrorEnd[i], MirrorEnd[i] + MirrorNiThickness,
176 MirrorEnd[i+1], MirrorEnd[i+1] + MirrorNiThickness,
177 MirrorSectionLength/2, 0*
deg, 360.*
deg);
179 MirrorSolid[i], Ni,
"Mirror_L", 0, 0, 0 );
183 MirrorAuCoatingSolid[i] =
new G4Cons(
185 MirrorEnd[i] - MirrorAuCoating, MirrorEnd[i],
186 MirrorEnd[i+1] - MirrorAuCoating, MirrorEnd[i+1],
187 MirrorSectionLength/2, 0*
deg, 360.*
deg);
189 MirrorAuCoatingSolid[i],
196 BaffleSolid[i] =
new G4Cons(
"Baffle_S",
197 0, MirrorEnd[i] - BaffleGap,
198 0, MirrorEnd[i+1] - BaffleGap,
199 MirrorSectionLength/2, 0*
deg, 360.*
deg);
201 BaffleSolid[i], Al,
"Baffle_L", 0, 0, 0 );
202 BaffleLogicalVolume[i]-> SetVisAttributes(VisAttBaffle);
210 for ( i=0; i<4; i++ ) {
215 MirrorLogicalVolume[i],
216 physicalWorld,
false, 0 );
221 MirrorAuCoatingLogicalVolume[i],
222 physicalWorld,
false, 0 );
227 BaffleLogicalVolume[i],
228 physicalWorld,
false, 0 );
233 for ( i=0; i<4; i++ ) {
257 G4Colour(0/255., 200/255., 0/255.));
261 G4double BenchFrontEndMinRadiusOut = MirrorEnd[4] +
262 ( MirrorEnd[3] - MirrorEnd[4] )*7.5/15
264 G4double BenchFrontEndMinRadiusIn = MirrorEnd[4] +
265 ( MirrorEnd[3] - MirrorEnd[4] )*7.4/15
267 G4double BenchFrontEndMaxRadius = MirrorEnd[4] + MirrorNiThickness + 25.*
cm;
269 G4double BenchBackEndMaxRadius = MirrorEnd[4] + MirrorNiThickness + 5.*
cm;
272 BenchMainLength = MirrorPosition[3] - BenchThickness;
274 G4Cons* BenchFrontEndSolid;
275 G4Tubs* BenchBackEndSolid;
282 BenchFrontEndSolid =
new G4Cons(
"BenchFrontEnd_S",
283 BenchFrontEndMinRadiusOut, BenchFrontEndMaxRadius,
284 BenchFrontEndMinRadiusIn, BenchFrontEndMaxRadius,
285 BenchThickness/2, 0*
deg, 360.*
deg );
287 BenchFrontEndSolid, Al,
"BenchFrontEnd_L", 0, 0, 0 );
290 BenchBackEndSolid =
new G4Tubs(
"BenchBackEnd_S",
291 BenchBackEndMinRadius, BenchBackEndMaxRadius,
292 BenchThickness/2, 0*
deg, 360.*
deg );
294 BenchBackEndSolid, Al,
"BenchBackEnd_L", 0, 0, 0 );
297 BenchMainSolid =
new G4Cons(
"BenchMain_S",
298 BenchFrontEndMaxRadius - BenchThickness,
299 BenchFrontEndMaxRadius,
300 BenchBackEndMaxRadius - BenchThickness,
301 BenchBackEndMaxRadius,
302 BenchMainLength/2, 0*
deg, 360.*
deg);
304 BenchMainSolid, Cf,
"BenchMain_L", 0, 0, 0 );
305 BenchMainLogicalVolume -> SetVisAttributes(VisAttBench);
317 BenchFrontEndLogicalVolume,
318 physicalWorld,
false, 0 );
324 BenchBackEndLogicalVolume,
325 physicalWorld,
false, 0 );
331 BenchMainLogicalVolume,
332 physicalWorld,
false, 0 );
346 void XrayTelDetectorConstruction::ConstructFocalPlane()
355 G4Colour(190/255., 255/255., 0/255.) );
357 G4Colour(255/255., 0/255., 0/255.) );
361 rotateMatrix -> rotateY(90.*
deg);
365 G4double DetectorBaffleOuterRadiusIn = 7.1*
cm;
366 G4double DetectorBaffleOuterRadiusOut = 7.35*
cm;
367 G4double DetectorBaffleInnerRadiusIn = 4.55*
cm;
368 G4double DetectorBaffleInnerRadiusOut = 5.75*
cm;
370 G4Cons* DetectorBaffleSolid;
374 DetectorBaffleSolid =
new G4Cons(
"DetectorBaffle_S",
375 DetectorBaffleOuterRadiusIn,
376 DetectorBaffleOuterRadiusOut,
377 DetectorBaffleInnerRadiusIn,
378 DetectorBaffleInnerRadiusOut,
379 DetectorBaffleLength/2, 0*
deg, 360.*
deg);
381 DetectorBaffleSolid, Ti,
"DetectorBaffle_L", 0, 0, 0 );
382 DetectorBaffleLogicalVolume -> SetVisAttributes( VisDetectorBaffle );
391 DetectorBaffleLogicalVolume,
392 physicalWorld,
false, 0 );
407 DetectorSolid =
new G4Tubs(
"Detector_S",
409 DetectorThickness/2, 0*
deg, 360.*
deg);
411 DetectorSolid, Si,
"Detector_L", 0, 0, 0 );
412 DetectorLogicalVolume -> SetVisAttributes( VisDetector );
421 DetectorLogicalVolume,
422 physicalWorld,
false, 0 );
CLHEP::Hep3Vector G4ThreeVector
CLHEP::HepRotation G4RotationMatrix
XrayTelDetectorConstruction()
G4VPhysicalVolume * Construct()
static const G4VisAttributes Invisible
void AddElement(G4Element *element, G4int nAtoms)
~XrayTelDetectorConstruction()
void SetVisAttributes(const G4VisAttributes *pVA)