67 physicalTreatmentRoom(0), hadrontherapyDetectorConstruction(0),
 
   68 physiBeamLineSupport(0), physiBeamLineCover(0), physiBeamLineCover2(0), 
 
   70 physiFirstMonitorLayer1(0), physiFirstMonitorLayer2(0),
 
   71 physiFirstMonitorLayer3(0), physiFirstMonitorLayer4(0),
 
   72 physiNozzleSupport(0), physiHoleNozzleSupport(0),
 
   73 physiSecondHoleNozzleSupport(0),
 
   74 solidFinalCollimator(0),
 
   75 physiFinalCollimator(0)
 
   82   static G4String ROGeometryName = 
"DetectorROGeometry";
 
   87   G4cout << 
"Going to register Parallel world...";
 
  145         white -> SetVisibility(
true);
 
  146         white -> SetForceSolid(
true);
 
  149         blue -> SetVisibility(
true);
 
  150         blue -> SetForceSolid(
true);
 
  153         gray-> SetVisibility(
true);
 
  154         gray-> SetForceSolid(
true);
 
  157         red-> SetVisibility(
true);
 
  158         red-> SetForceSolid(
true);
 
  161         yellow-> SetVisibility(
true);
 
  162         yellow-> SetForceSolid(
true);
 
  165         green -> SetVisibility(
true);
 
  166         green -> SetForceSolid(
true);
 
  177         skyBlue -> SetVisibility(
true);
 
  178         skyBlue -> SetForceSolid(
true);
 
  183         G4double defaultVacuumZoneXSize = 80.5325 *
mm;
 
  193         G4double defaultVacuumZoneXPosition = -1855.5075 *
mm;
 
  207         G4double defaultKaptonWindowXPosition = 80.5075*
mm;
 
  212         G4double defaultFirstScatteringFoilXSize = 0.025 *
mm;
 
  215         G4double defaultFirstScatteringFoilYSize = 105.0   *
mm;
 
  218         G4double defaultFirstScatteringFoilZSize = 105   *
mm;
 
  221         G4double defaultFirstScatteringFoilXPosition = 0.0 *
mm;
 
  243         G4double defaultStopperXPosition = -1675.0 *
mm;
 
  258         G4double defaultSecondScatteringFoilXSize = 0.025 *
mm;  
 
  261         G4double defaultSecondScatteringFoilYSize = 105.0   *
mm;
 
  264         G4double defaultSecondScatteringFoilZSize = 105.0   *
mm;
 
  267         G4double defaultSecondScatteringFoilXPosition = defaultStopperXPosition + defaultHeightStopper + defaultSecondScatteringFoilXSize/2;
 
  270         G4double defaultSecondScatteringFoilYPosition =  0 *
mm;
 
  273         G4double defaultSecondScatteringFoilZPosition =  0 *
mm;
 
  279         G4double defaultinnerRadiusFinalCollimator = 12.5 *
mm;
 
  365         G4Box* treatmentRoom = 
new G4Box(
"TreatmentRoom",worldX,worldY,worldZ);
 
  368                                                                                                                           "logicTreatmentRoom", 
 
  372                                                                                           "physicalTreatmentRoom", 
 
  395         const G4double beamLineSupportXSize = 1.5*
m;
 
  397         const G4double beamLineSupportZSize = 600.*
mm;
 
  399         const G4double beamLineSupportXPosition = -1745.09 *
mm;
 
  400         const G4double beamLineSupportYPosition = -230. *
mm; 
 
  401         const G4double beamLineSupportZPosition = 0.*
mm;
 
  403         G4Box* beamLineSupport = 
new G4Box(
"BeamLineSupport", 
 
  404                                                                            beamLineSupportXSize, 
 
  405                                                                            beamLineSupportYSize, 
 
  406                                                                            beamLineSupportZSize);
 
  412                                                                                                                           beamLineSupportYPosition,
 
  413                                                                                                                           beamLineSupportZPosition),
 
  415                                                                                          logicBeamLineSupport, 
 
  420         logicBeamLineSupport -> SetVisAttributes(
gray);
 
  425         const G4double beamLineCoverXSize = 1.5*
m;
 
  429         const G4double beamLineCoverXPosition = -1745.09 *
mm;
 
  430         const G4double beamLineCoverYPosition = -980.*
mm; 
 
  431         const G4double beamLineCoverZPosition = 600.*
mm;
 
  433         G4Box* beamLineCover = 
new G4Box(
"BeamLineCover",
 
  443                                                                                                                         beamLineCoverYPosition,
 
  444                                                                                                                         beamLineCoverZPosition),
 
  456                                                                                                                          beamLineCoverYPosition,
 
  457                                                                                                                          - beamLineCoverZPosition),
 
  465         logicBeamLineCover -> SetVisAttributes(
blue);
 
  511                                                                                                                                         "FirstScatteringFoil");
 
  515                                                                                                  "FirstScatteringFoil", 
 
  516                                                                                                  logicFirstScatteringFoil, 
 
  520         logicFirstScatteringFoil -> SetVisAttributes(
skyBlue);
 
  529         G4Box* solidKaptonWindow = 
new G4Box(
"KaptonWindow", 
 
  539                                                                                   "KaptonWindow", logicKaptonWindow,
 
  540                                                                                   physiVacuumZone, 
false,       0); 
 
  542         logicKaptonWindow -> SetVisAttributes(
darkOrange3);
 
  597                                                                                                                                          "SecondScatteringFoil");
 
  602                                                                                                   "SeconScatteringFoil", 
 
  603                                                                                                   logicSecondScatteringFoil, 
 
  608         logicSecondScatteringFoil -> SetVisAttributes(
skyBlue);
 
  631         const G4double monitor1XPosition = -1450.474956 *
mm;
 
  632         const G4double monitor2XPosition = -4.500011*
mm;
 
  633         const G4double monitor4XPosition = 4.500011*
mm;
 
  635         G4Box* solidFirstMonitorLayer1 = 
new G4Box(
"FirstMonitorLayer1", 
 
  642                                                                                                                                    "FirstMonitorLayer1");
 
  646                                                                                                 "FirstMonitorLayer1", 
 
  647                                                                                                 logicFirstMonitorLayer1, 
 
  652         G4Box* solidFirstMonitorLayer2 = 
new G4Box(
"FirstMonitorLayer2", 
 
  659                                                                                                                                    "FirstMonitorLayer2");
 
  662                                                                                                 "FirstMonitorLayer2", 
 
  663                                                                                                 logicFirstMonitorLayer2, 
 
  668         G4Box* solidFirstMonitorLayer3 = 
new G4Box(
"FirstMonitorLayer3", 
 
  675                                                                                                                                    "FirstMonitorLayer3");
 
  680                                                                                                 logicFirstMonitorLayer3, 
 
  685         G4Box* solidFirstMonitorLayer4 = 
new G4Box(
"FirstMonitorLayer4", 
 
  692                                                                                                                                    "FirstMonitorLayer4");
 
  695                                                                                                 "FirstMonitorLayer4",
 
  696                                                                                                 logicFirstMonitorLayer4,
 
  699         logicFirstMonitorLayer3 -> SetVisAttributes(
white);
 
  723         const G4double nozzleSupportXPosition = -558. *
mm;
 
  730         G4Box* solidNozzleSupport = 
new G4Box(
"NozzleSupport", 
 
  746         logicNozzleSupport -> SetVisAttributes(
yellow);
 
  751         const G4double innerRadiusHoleNozzleSupport = 18.*
mm;
 
  752         const G4double outerRadiusHoleNozzleSupport = 21.5 *
mm;
 
  754         const G4double hightHoleNozzleSupport = 142.5*
mm;
 
  755         const G4double startAngleHoleNozzleSupport = 0.*
deg;
 
  756         const G4double spanningAngleHoleNozzleSupport = 360.*
deg;
 
  758         const G4double holeNozzleSupportXPosition = -462.50 *
mm;
 
  760         G4Tubs* solidHoleNozzleSupport = 
new G4Tubs(
"HoleNozzleSupport", 
 
  761                                                                                                 innerRadiusHoleNozzleSupport, 
 
  762                                                                                                 outerRadiusHoleNozzleSupport,
 
  763                                                                                                 hightHoleNozzleSupport, 
 
  764                                                                                                 startAngleHoleNozzleSupport, 
 
  765                                                                                                 spanningAngleHoleNozzleSupport);
 
  774                                                                                            logicHoleNozzleSupport, 
 
  777         logicHoleNozzleSupport -> SetVisAttributes(
darkOrange3);
 
  782         const G4double innerRadiusSecondHoleNozzleSupport = 0.*
mm;
 
  783         const G4double outerRadiusSecondHoleNozzleSupport = 18.*
mm;
 
  784         const G4double hightSecondHoleNozzleSupport = 29.5 *
mm;
 
  785         const G4double startAngleSecondHoleNozzleSupport = 0.*
deg;
 
  786         const G4double spanningAngleSecondHoleNozzleSupport = 360.*
deg;
 
  788         G4Tubs* solidSecondHoleNozzleSupport = 
new G4Tubs(
"SecondHoleNozzleSupport",
 
  789                                                                                                           innerRadiusSecondHoleNozzleSupport,
 
  790                                                                                                           outerRadiusSecondHoleNozzleSupport, 
 
  791                                                                                                           hightSecondHoleNozzleSupport,
 
  792                                                                                                           startAngleSecondHoleNozzleSupport, 
 
  793                                                                                                           spanningAngleSecondHoleNozzleSupport);
 
  797                                                                                                                                                 "SecondHoleNozzleSupport",
 
  803                                                                                                          "SecondHoleNozzleSupport",
 
  804                                                                                                          logicSecondHoleNozzleSupport, 
 
  809         logicHoleNozzleSupport -> SetVisAttributes(
darkOrange3); 
 
  818         const G4double outerRadiusFinalCollimator = 21.5*
mm;
 
  821         const G4double spanningAngleFinalCollimator = 360.*
deg;
 
  823         const G4double finalCollimatorXPosition = -323.50 *
mm;  
 
  833                                                                           outerRadiusFinalCollimator,
 
  834                                                                           hightFinalCollimator, 
 
  835                                                                           startAngleFinalCollimator, 
 
  836                                                                           spanningAngleFinalCollimator);
 
  848         logicFinalCollimator -> SetVisAttributes(
yellow); 
 
G4Material * finalCollimatorMaterial
 
G4double innerRadiusFinalCollimator
 
G4double kaptonWindowZSize
 
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
 
G4Material * holeNozzleSupportMaterial
 
CLHEP::Hep3Vector G4ThreeVector
 
CLHEP::HepRotation G4RotationMatrix
 
G4double secondScatteringFoilYPosition
 
G4Tubs * solidFinalCollimator
 
HadrontherapyDetectorConstruction * hadrontherapyDetectorConstruction
 
G4Material * layer2MonitorChamberMaterial
 
G4double firstScatteringFoilZSize
 
G4VPhysicalVolume * physiKaptonWindow
 
G4Material * layer3MonitorChamberMaterial
 
G4Material * seconHoleNozzleSupportMaterial
 
G4double firstScatteringFoilYSize
 
G4VPhysicalVolume * physiFirstMonitorLayer4
 
G4VPhysicalVolume * physiStopper
 
G4Material * beamLineSupportMaterial
 
G4VPhysicalVolume * Construct()
 
G4VPhysicalVolume * physiBeamLineSupport
 
G4VPhysicalVolume * physiHoleNozzleSupport
 
G4Material * firstScatteringFoilMaterial
 
G4double startAngleStopper
 
G4Material * secondScatteringFoilMaterial
 
void HadrontherapyBeamLineSupport()
 
static G4NistManager * Instance()
 
G4double secondScatteringFoilXSize
 
void HadrontherapyBeamNozzle()
 
void RegisterParallelWorld(G4VUserParallelWorld *)
 
G4double vacuumZoneXPosition
 
HadrontherapyDetectorROGeometry * RO
 
void SetDefaultDimensions()
 
G4double stopperZPosition
 
G4double firstScatteringFoilXSize
 
G4double secondScatteringFoilZPosition
 
G4double innerRadiusStopper
 
G4VPhysicalVolume * physicalTreatmentRoom
 
G4GLOB_DLL std::ostream G4cout
 
G4VisAttributes * darkGreen
 
G4Material * layer1MonitorChamberMaterial
 
G4double spanningAngleStopper
 
G4VPhysicalVolume * physiFinalCollimator
 
G4VPhysicalVolume * physiSecondScatteringFoil
 
G4VPhysicalVolume * physiBeamLineCover
 
static const double perCent
 
G4Box * firstScatteringFoil
 
G4VPhysicalVolume * physiFirstMonitorLayer3
 
void HadrontherapyBeamFinalCollimator()
 
G4VisAttributes * skyBlue
 
G4VisAttributes * darkOrange3
 
G4VPhysicalVolume * physiNozzleSupport
 
G4Material * layer4MonitorChamberMaterial
 
void HadrontherapyBeamMonitoring()
 
G4Material * kaptonWindowMaterial
 
G4Material * nozzleSupportMaterial
 
G4double kaptonWindowXSize
 
G4double outerRadiusStopper
 
static const G4VisAttributes Invisible
 
G4double kaptonWindowXPosition
 
void VacuumToAirInterface()
 
G4double secondScatteringFoilXPosition
 
G4double secondScatteringFoilYSize
 
G4Box * secondScatteringFoil
 
G4VPhysicalVolume * physiBeamLineCover2
 
G4VPhysicalVolume * physiFirstScatteringFoil
 
G4double kaptonWindowYSize
 
G4VPhysicalVolume * physiFirstMonitorLayer1
 
G4Material * stopperMaterial
 
void InitializeDetectorROGeometry(HadrontherapyDetectorROGeometry *, G4ThreeVector detectorToWorldPosition)
 
G4VPhysicalVolume * physiFirstMonitorLayer2
 
G4LogicalVolume * logicStopper
 
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
 
G4ThreeVector GetDetectorToWorldPosition()
 
G4double stopperYPosition
 
G4double stopperXPosition
 
G4VPhysicalVolume * physiSecondHoleNozzleSupport
 
G4double firstScatteringFoilXPosition
 
void ConstructPassiveCarbonBeamLine()
 
G4double secondScatteringFoilZSize
 
G4Material * vacuumZoneMaterial