Geant4  10.02.p01
LaserDrivenBeamLine.hh
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 // Hadrontherapy advanced example for Geant4
27 // See more at: https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamplesHadrontherapy
28 
29 #ifndef LaserDrivenBeamLine_H
30 #define LaserDrivenBeamLine_H 1
31 
32 #include "globals.hh"
34 #include "G4Box.hh"
35 #include "G4Tubs.hh"
36 #include "G4Sphere.hh"
37 #include "G4VisAttributes.hh"
38 #include "G4LogicalVolume.hh"
39 
40 class G4VPhysicalVolume;
43 class G4Mag_UsualEqRhs;
45 class G4ChordFinder;
46 class G4UniformMagField;
47 class G4MagInt_Driver;
49 //class G4TransportationManager;
50 class G4FieldManager;
51 class G4MagneticField;
54 
56 
57 
59 {
60 public:
61 
64 
66  void ConstructSDandField();
67 
68  void RemoveESS();
75  void SetThicknessSlit(G4double value);
76  void SetSlitHoleDimensionY(G4double value);
77  void SetSlitHoleDimensionZ(G4double value);
78  void SetSlitHolePositionZ(G4double value);
79  void RemoveQuads();
80 
81 private:
82  void SetDefaultDimensions();
84  void EnergySelectorChamber();
85  void Collimator();
86  void Magnet_1();
87  void Magnet_2();
88  void Magnet_3();
89  void Magnet_4();
90  void Slit();
91  void FinalCollimator();
92  void ExitPipe();
93  void ExitWindow();
94  void Exithole();
95  void Entrancehole();
96  void EntrancePipe();
97  void Quadrupole();
98  void FaradayCup();
99 
102 
104 
105  // Variables definition for the World
106  // (called treatment room)
110 
111  // Variables definition for the triplet of quadrupoles
113 
120 
142 
146 
150 
151  // Variables definition for the vacuum chamber containing
152  // the spectrometer
155 
159 
163 
165 
173 
178 
182 
189 
193 
200 
204 
214 
225 
229 
237 
245 
249 
250  // Variables definition of the collimator
253 
256 
259 
262 
265 
268 
271 
274 
277 
281 
285 
289 
292  // Variables definition of the final collimator
293 
296 
299 
302 
305 
308 
311 
314 
317 
321 
325 
329 
333 
336 
338 
340 
341 
342  // Variables definition of the magnetic component
344 
346 
356 
361 
366 
371 
376 
381 
386 
390 
394 
395 
399 
403 
407 
411 
415 
419 
423 
427 
431 
435 
439 
443 
447 
451 
456 
460 
464 
468 
472 
476 
480 
484 
488 
492 
496 
498 
499 
505 
509 
514 
518 
522 
526 
530 
534 
538 
542 
546 
550 
554 
555  // Colours
566 };
567 #endif
HadrontherapyDetectorROGeometry * RO
G4Material * externalMagnet_3Material
G4VPhysicalVolume * physicExitWindow
G4ChordFinder * pChordFinderQuadFourth
G4VPhysicalVolume * physicFaradayCupBottom
G4LogicalVolume * LFourthTriplet
G4LogicalVolume * logicMassRing
G4LogicalVolume * logicFaradayCupBottom
G4VPhysicalVolume * PQuadChamberWall
G4VPhysicalVolume * physicFinalCollimatorHole
G4double defaultStartAngleFinalCollimator
G4VPhysicalVolume * physicExitPipe
G4LogicalVolume * logicVirtualLateral
G4VPhysicalVolume * physicVirtualLateral
G4MagneticField * PurgMagFieldQuadSecond
G4VPhysicalVolume * physicInternalSlit
G4VPhysicalVolume * physicCollimator
G4VPhysicalVolume * physicVirtualBottom
G4LogicalVolume * logicEntrancehole
G4MagInt_Driver * pIntgrDriverQuadSecond
G4VPhysicalVolume * physicMagnet_4Left
LaserDrivenBeamLineMessenger * laserDrivenMessenger
G4VisAttributes * darkGreen
G4LogicalVolume * logicEntrancePipe
G4Material * internalSlitMaterial
G4VPhysicalVolume * physicMagnet_3Right
G4VPhysicalVolume * physicExternalMagnet_4Down
G4LogicalVolume * LThirdTriplet
G4LogicalVolume * logicExternalMagnet_3
G4VisAttributes * darkOrange3
void SetSecondCollimatorRadius(G4double value)
G4VPhysicalVolume * physicCollimatorHole
Definition: G4Box.hh:64
G4LogicalVolume * logicKaptonEntranceWindow
G4LogicalVolume * logicCollimatorHole
G4VPhysicalVolume * PThirdTriplet
G4LogicalVolume * logicExternalMagnet_4
G4double defaultInnerRadiusFinalCollimator
G4VPhysicalVolume * physicExternalSlit
G4LogicalVolume * logicExternalSlit
G4VPhysicalVolume * physicExternalChamber
Definition: G4Tubs.hh:85
G4double defaultFinalCollimatorThickness
G4LogicalVolume * logicVirtualOverBottom
HadrontherapyDetectorConstruction * hadrontherapydetectorconstruction
G4VPhysicalVolume * physicGuardRing
G4Material * collimatorHoleMaterial
G4LogicalVolume * logicVirtualMag
G4LogicalVolume * logicTreatmentRoom
G4Material * externalMagnet_2Material
G4VPhysicalVolume * physicVirtualMag
G4Mag_UsualEqRhs * fEquationQuadFourth
G4LogicalVolume * LSecondTriplet
G4VisAttributes * green
G4VisAttributes * white
G4VPhysicalVolume * physicMassRing
G4FieldManager * pFieldMgr
G4LogicalVolume * logicCup
G4Mag_UsualEqRhs * fEquationQuadFirst
G4LogicalVolume * logicInternalChamber
G4LogicalVolume * logicMagnet_1
G4double defaultFinalCollimatorXPosition
void SetSecondCollimatorThickness(G4double value)
G4LogicalVolume * logicFirstQuad
G4LogicalVolume * logicMagnet_4
G4MagInt_Driver * pIntgrDriverQuadThird
G4Mag_UsualEqRhs * fEquation
G4MagneticField * PurgMagFieldQuadFirst
G4LogicalVolume * LQuadChamberWall
void SetSlitHolePositionZ(G4double value)
G4VPhysicalVolume * physicMagnet_1Left
G4MagIntegratorStepper * fstepperQuadThird
G4VPhysicalVolume * physicMagnet_4Right
G4VisAttributes * skyBlue
G4ChordFinder * pChordFinderQuadSecond
G4LogicalVolume * logicVirtualBottom
G4MagIntegratorStepper * fstepperQuadSecond
G4LogicalVolume * logicExithole
G4double defaultOuterRadiusFinalCollimator
G4VPhysicalVolume * physicSecondQuad
G4Material * externalMagnet_4Material
G4LogicalVolume * logicFourthQuad
G4VPhysicalVolume * physicBeveledCylinder
G4LogicalVolume * logicMagnet_2
G4MagneticField * PurgMagField
void SetThicknessSlit(G4double value)
G4VPhysicalVolume * physicThirdQuad
G4VPhysicalVolume * physicEntranceholeESSChamber
G4Material * FinalcollimatorHoleMaterial
G4VPhysicalVolume * physicKaptonEntranceWindow
G4VPhysicalVolume * PFourthTriplet
G4LogicalVolume * logicExternalChamber
void SetSecondCollimatorPositionZ(G4double value)
G4FieldManager * pFieldMgrQuadFourth
G4VPhysicalVolume * physicVirtualOverBottom
G4MagIntegratorStepper * fstepper
G4MagneticField * PurgMagFieldQuadThird
G4VPhysicalVolume * physicExithole
G4MagInt_Driver * pIntgrDriverQuadFourth
G4VPhysicalVolume * PFirstTriplet
G4double defaultFinalCollimatorYPosition
void SetSlitHoleDimensionZ(G4double value)
G4ChordFinder * pChordFinder
G4LogicalVolume * logicMagnet_3
G4ChordFinder * pChordFinderQuadFirst
void SetFirstCollimatorPositionZ(G4double value)
G4VPhysicalVolume * Construct()
G4LogicalVolume * logicExitWindow
G4Material * KaptonEntranceWindowMaterial
G4Material * FinalcollimatorMaterial
G4LogicalVolume * logicFinalCollimator
G4VisAttributes * yellow
G4VisAttributes * black
G4VPhysicalVolume * physicMagnet_2Left
G4LogicalVolume * LFirstTriplet
G4MagInt_Driver * pIntgrDriver
G4VPhysicalVolume * physicVirtualWindow
G4FieldManager * pFieldMgrQuadThird
G4MagIntegratorStepper * fstepperQuadFirst
G4LogicalVolume * logicVirtualWindow
G4LogicalVolume * logicSecondQuad
G4Material * internalChamberMaterial
G4MagIntegratorStepper * fstepperQuadFourth
G4VPhysicalVolume * physicMagnet_3Left
void SetSlitHoleDimensionY(G4double value)
G4VPhysicalVolume * PSecondTriplet
G4VPhysicalVolume * physicExternalMagnet_2
G4LogicalVolume * LQuadChamber
G4MagInt_Driver * pIntgrDriverQuadFirst
G4VPhysicalVolume * physicMagnet_1Right
G4VPhysicalVolume * physicMagnet_2Right
G4VisAttributes * gray
G4Material * FaradayCupBottomMaterial
void SetFirstCollimatorThickness(G4double value)
G4double defaultSpanningAngleFinalCollimator
G4LogicalVolume * logicVirtualMiddle
G4LogicalVolume * logicInternalSlit
G4VPhysicalVolume * physicExternalMagnet_1Down
G4Material * externalMagnet_1Material
G4VPhysicalVolume * physicExternalMagnet_3Down
G4LogicalVolume * logicCollimator
G4VPhysicalVolume * physicInternalChamber
G4Material * externalChamberMaterial
G4VPhysicalVolume * physicEntrancehole
G4MagneticField * PurgMagFieldQuadFourth
G4Mag_UsualEqRhs * fEquationQuadSecond
G4VPhysicalVolume * physicVirtualMiddle
G4VPhysicalVolume * physicFinalCollimator
G4LogicalVolume * logicGuardRing
G4VPhysicalVolume * physicCup
G4VPhysicalVolume * physicFirstQuad
G4VisAttributes * blue
double G4double
Definition: G4Types.hh:76
G4LogicalVolume * logicExternalMagnet_1
G4LogicalVolume * logicFinalCollimatorHole
G4Mag_UsualEqRhs * fEquationQuadThird
G4LogicalVolume * logicThirdQuad
G4VPhysicalVolume * physicExternalMagnet_4
G4VPhysicalVolume * physicExternalMagnet_2Down
G4VPhysicalVolume * physicFourthQuad
G4LogicalVolume * logicExitPipe
G4LogicalVolume * logicExternalMagnet_2
void SetFirstCollimatorRadius(G4double value)
G4double defaultFinalCollimatorZPosition
G4ChordFinder * pChordFinderQuadThird
G4VPhysicalVolume * physicTreatmentRoom
G4VPhysicalVolume * physicExternalMagnet_1
G4VPhysicalVolume * physicExternalMagnet_3
G4Material * externalSlitMaterial
G4FieldManager * pFieldMgrQuadSecond
G4LogicalVolume * logicBeveledCylinder
G4VPhysicalVolume * PQuadChamber
G4VPhysicalVolume * physicEntrancePipe
G4FieldManager * pFieldMgrQuadFirst