27 #include "G4UserLimits.hh"
38 G4cout << G4endl <<
"###### Calling QweakSimBeamLine::QweakBeamLine() " << G4endl << G4endl;
85 G4cout << G4endl <<
"###### Calling QweakSimBeamLine::ConstructComponent() " << G4endl << G4endl;
89 G4ThreeVector positionBeamPipe = G4ThreeVector(0,0,0);
93 G4cout << G4endl <<
"###### QweakSimBeamLine: Define Beam Pipe" << G4endl << G4endl;
96 G4double collimator_center = -422.0195*cm;
97 G4Tubs* R1_Pipe_Solid =
new G4Tubs(
"R1_Pipe_Solid",
110 G4ThreeVector(0,0,collimator_center-115.4186*cm),
119 G4Tubs* R1_Flange_Solid =
new G4Tubs(
"R1_Flange_Solid",
132 G4ThreeVector(0,0,collimator_center-139.636*cm),
141 G4Tubs* DS_R1_Pipe_Solid =
new G4Tubs(
"DS_R1_Pipe_Solid",
154 G4ThreeVector(0,0,collimator_center-27.15035*cm),
163 G4Tubs* DS_R1_Flange_Solid =
new G4Tubs(
"DS_R1_Flange_Solid",
176 G4ThreeVector(0,0,collimator_center-90.0424*cm),
185 G4Tubs* DS_R1_Bellow_Solid =
new G4Tubs(
"DS_R1_Bellow_Solid",
198 G4ThreeVector(0,0,collimator_center+28.8*cm),
207 G4Tubs* R2_Pipe_Solid =
new G4Tubs(
"R2_Pipe_Solid",
220 G4ThreeVector(0,0,collimator_center+43.8005*cm),
229 G4Tubs* R2_Flange_Solid =
new G4Tubs(
"R2_Flange_Solid",
242 G4ThreeVector(0,0,collimator_center+43.8005*cm-7.0616*cm),
251 G4Tubs* DS_R2_Pipe_Solid =
new G4Tubs(
"DS_R2_Pipe_Solid",
264 G4ThreeVector(0,0,collimator_center+100.7305*cm),
273 G4Tubs* R2_RotatorPipe_Solid =
new G4Tubs(
"R2_RotatorPipe_Solid",
282 "R2_RotatorPipe_Log",
286 G4ThreeVector(0,0,collimator_center+107.7298*cm),
296 G4Tubs* R3_Pipe_Solid =
new G4Tubs(
"R3_Pipe_Solid",
309 G4ThreeVector(0,0,collimator_center+155.7755*cm),
318 G4Tubs* DS_R3_Pipe_Solid =
new G4Tubs(
"DS_R3_Pipe_Solid",
331 G4ThreeVector(0,0,-3.9065*cm),
340 G4Tubs* R3_Flange_Solid =
new G4Tubs(
"R3_Flange_Solid",
353 G4ThreeVector(0,0,251.5286*cm),
362 G4Tubs* R3_US_Wall_Pipe_Solid =
new G4Tubs(
"R3_US_Wall_Pipe_Solid",
371 "R3_US_Wall_Pipe_Log",
375 G4ThreeVector(0,0,276.4755*cm),
384 G4Box* LeadBox_in_Wall_Solid =
new G4Box(
"LeadBox_in_Wall_Solid",
389 G4Tubs* R3_Wall_Pipe_Vacuum_Solid =
new G4Tubs(
"R3_Wall_Pipe_Vacuum_Solid",
396 G4SubtractionSolid* Sub_LeadBox_in_Wall_Solid =
new G4SubtractionSolid(
"LeadBox_in_Wall_Solid - R3_Wall_Pipe_Vacuum_Solid",
397 LeadBox_in_Wall_Solid,
398 R3_Wall_Pipe_Vacuum_Solid);
402 "Sub_LeadBox_in_Wall_Log",
406 G4ThreeVector(0,0,340.0*cm),
407 "Sub_LeadBox_in_Wall",
415 G4Tubs* R3_Wall_Pipe_Solid =
new G4Tubs(
"R3_Wall_Pipe_Solid",
428 G4ThreeVector(0,0,340.0*cm),
437 G4Box* LeadBox_Extent_Solid =
new G4Box(
"LeadBox_Extent_Solid",
442 G4Tubs* DS_18inch_Pipe1_Vacuum_Solid =
new G4Tubs(
"DS_18inch_Pipe1_Vacuum_Solid",
449 G4SubtractionSolid* Sub_LeadBox_Extent_Solid =
new G4SubtractionSolid(
"LeadBox_Extent_Solid - DS_18inch_Pipe1_Vacuum_Solid",
450 LeadBox_Extent_Solid,
451 DS_18inch_Pipe1_Vacuum_Solid);
455 "Sub_LeadBox_Extent_Log",
459 G4ThreeVector(0,0,501.3125*cm),
460 "Sub_LeadBox_Extent",
469 G4Tubs* DS_18inch_Pipe1_Solid =
new G4Tubs(
"DS_18inch_Pipe1_Solid",
478 "DS_18inch_Pipe1_Log",
482 G4ThreeVector(0,0,501.3125*cm),
491 G4Tubs* DS_18inch_Pipe2_Solid =
new G4Tubs(
"DS_18inch_Pipe2_Solid",
500 "DS_18inch_Pipe2_Log",
504 G4ThreeVector(0,0,630.193*cm),
513 G4Tubs* DS_24inch_Pipe_Solid =
new G4Tubs(
"DS_24inch_Pipe_Solid",
522 "DS_24inch_Pipe_Log",
526 G4ThreeVector(0,0,668.8805*cm),
535 G4Tubs* DS_24inch_Pipe_Flange_Solid =
new G4Tubs(
"DS_24inch_Pipe_Flange_Solid",
544 "DS_24inch_Pipe_Flange_Log",
548 G4ThreeVector(0,0,(637.761+1.4224)*cm),
558 G4cout << G4endl <<
"###### QweakSimBeamLine: Setting Attributes " << G4endl << G4endl;
560 G4Colour red (1.,0.,0.);
561 G4Colour orange ( 255/255., 127/255., 0/255.);
562 G4Colour blue ( 0/255., 0/255., 255/255.);
563 G4Colour magenta ( 255/255., 0/255., 255/255.);
564 G4Colour grey ( 127/255., 127/255., 127/255.);
565 G4Colour lightgrey ( 220/255., 220/255., 220/255.);
566 G4Colour lightblue ( 139/255., 208/255., 255/255.);
567 G4Colour lightorange ( 255/255., 189/255., 165/255.);
568 G4Colour khaki3 ( 205/255., 198/255., 115/255.);
569 G4Colour brown (178/255., 102/255., 26/255.);
573 G4VisAttributes* Shield_VisAtt =
new G4VisAttributes(brown);
574 Shield_VisAtt -> SetVisibility(
true);
579 G4cout << G4endl <<
"###### Leaving QweakSimBeamLine::ConstructComponent() " << G4endl << G4endl;
581 G4VisAttributes* Pipe_VisAtt =
new G4VisAttributes(lightgrey);
582 Pipe_VisAtt -> SetVisibility(
true);
608 G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
611 G4cout <<
"==== Changing Beam Pipe Material: Looking up Material " << G4endl;
632 G4cout <<
"==== Changing Beam Pipe Material: Now the BeamLine is made of " << materialName << G4endl;
635 G4cerr <<
"==== ERROR: Changing Beam Pipe Material failed" << G4endl;
650 G4cout << G4endl <<
"###### Calling QweakSimBeamLine::SetBeamLineCenterPositionInZ() " << G4endl << G4endl;
658 G4cout << G4endl <<
"###### Calling QweakSimBeamLine::GetBeamLineCenterPositionInZ() " << G4endl << G4endl;
void ConstructComponent(G4VPhysicalVolume *)
G4Material * BeamPipe_Material
G4Material * Shield_Material
G4LogicalVolume * R1_Pipe_Logical
void SetBeamLineCenterPositionInZ(G4double)
static QweakSimMaterial * GetInstance()
G4LogicalVolume * R1_Flange_Logical
G4double GetBeamLineCenterPositionInZ()
QweakSimMaterial * pMaterial
G4LogicalVolume * Sub_LeadBox_in_Wall_Logical
G4LogicalVolume * R2_Pipe_Logical
G4LogicalVolume * R3_Flange_Logical
static const G4bool pSurfChk
G4LogicalVolume * DS_R1_Pipe_Logical
G4LogicalVolume * Sub_LeadBox_Extent_Logical
QweakSimBeamLine(QweakSimUserInformation *myUI)
QweakSimBeamLineMessenger(QweakSimBeamLine *)
Definition of elements and materials.
G4LogicalVolume * DS_24inch_Pipe_Logical
G4LogicalVolume * DS_R1_Bellow_Logical
Placeholder for a long explaination.
G4Material * GetMaterial(G4String material)
QweakSimBeamLineMessenger * beamlineMessenger
G4LogicalVolume * DS_18inch_Pipe1_Logical
G4LogicalVolume * DS_R3_Pipe_Logical
G4LogicalVolume * R2_RotatorPipe_Logical
G4LogicalVolume * R2_Flange_Logical
G4LogicalVolume * R3_Pipe_Logical
G4LogicalVolume * R3_US_Wall_Pipe_Logical
G4LogicalVolume * DS_R2_Pipe_Logical
QweakSimUserInformation * myUserInfo
G4LogicalVolume * DS_18inch_Pipe2_Logical
G4LogicalVolume * DS_R1_Flange_Logical
G4LogicalVolume * DS_24inch_Pipe_Flange_Logical
void SetBeamLineMaterial(G4String)
G4LogicalVolume * R3_Wall_Pipe_Logical