Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LaserDrivenBeamLine Class Reference

#include <LaserDrivenBeamLine.hh>

Inheritance diagram for LaserDrivenBeamLine:
Collaboration diagram for LaserDrivenBeamLine:

Public Member Functions

 LaserDrivenBeamLine ()
 
 ~LaserDrivenBeamLine ()
 
G4VPhysicalVolumeConstruct ()
 
void ConstructSDandField ()
 
void RemoveESS ()
 
void SetFirstCollimatorRadius (G4double value)
 
void SetFirstCollimatorThickness (G4double value)
 
void SetFirstCollimatorPositionZ (G4double value)
 
void SetSecondCollimatorRadius (G4double value)
 
void SetSecondCollimatorThickness (G4double value)
 
void SetSecondCollimatorPositionZ (G4double value)
 
void SetThicknessSlit (G4double value)
 
void SetSlitHoleDimensionY (G4double value)
 
void SetSlitHoleDimensionZ (G4double value)
 
void SetSlitHolePositionZ (G4double value)
 
void RemoveQuads ()
 
- Public Member Functions inherited from G4VUserDetectorConstruction
 G4VUserDetectorConstruction ()
 
virtual ~G4VUserDetectorConstruction ()
 
virtual void CloneSD ()
 
virtual void CloneF ()
 
void RegisterParallelWorld (G4VUserParallelWorld *)
 
G4int ConstructParallelGeometries ()
 
void ConstructParallelSD ()
 
G4int GetNumberOfParallelWorld () const
 
G4VUserParallelWorldGetParallelWorld (G4int i) const
 

Additional Inherited Members

- Protected Member Functions inherited from G4VUserDetectorConstruction
void SetSensitiveDetector (const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
 
void SetSensitiveDetector (G4LogicalVolume *logVol, G4VSensitiveDetector *aSD)
 

Detailed Description

Definition at line 58 of file LaserDrivenBeamLine.hh.

Constructor & Destructor Documentation

LaserDrivenBeamLine::LaserDrivenBeamLine ( )

Definition at line 82 of file LaserDrivenBeamLine.cc.

82  :
83  hadrontherapydetectorconstruction(0), physicTreatmentRoom(0),
84 PFirstTriplet(0),PSecondTriplet(0),PThirdTriplet(0),PFourthTriplet(0), physicFirstQuad(0),physicSecondQuad(0),physicThirdQuad(0),physicFourthQuad(0),
85 solidExternalChamber(0),logicExternalChamber(0),physicExternalChamber(0),
86 solidInternalChamber(0),logicInternalChamber(0),physicInternalChamber(0),
87 solidCollimator(0),logicCollimator(0),physicCollimator(0),
88 solidCollimatorHole(0),logicCollimatorHole(0),physicCollimatorHole(0),
89 solidFinalCollimator(0), logicFinalCollimator(0),physicFinalCollimator(0),
90 solidFinalCollimatorHole(0),logicFinalCollimatorHole(0),physicFinalCollimatorHole(0),
91 solidExternalMagnet_1(0),logicExternalMagnet_1(0),physicExternalMagnet_1(0), physicExternalMagnet_1Down(0),
92 solidMagnet_1(0),logicMagnet_1(0),physicMagnet_1Right(0),physicMagnet_1Left(0), solidExternalMagnet_2(0),logicExternalMagnet_2(0),
93 physicExternalMagnet_2(0),physicExternalMagnet_2Down(0),solidMagnet_2(0),logicMagnet_2(0),physicMagnet_2Right(0),physicMagnet_2Left(0), solidExternalMagnet_3(0),logicExternalMagnet_3(0),physicExternalMagnet_3(0),physicExternalMagnet_3Down(0),
94 solidMagnet_3(0),logicMagnet_3(0),physicMagnet_3Right(0),physicMagnet_3Left(0),
95 solidExternalMagnet_4(0),logicExternalMagnet_4(0),physicExternalMagnet_4(0),physicExternalMagnet_4Down(0),
96 solidMagnet_4(0),logicMagnet_4(0),physicMagnet_4Right(0),physicMagnet_4Left(0),
97 solidExternalSlit(0), logicExternalSlit(0), physicExternalSlit(0),
98 solidInternalSlit(0),logicInternalSlit(0),physicInternalSlit(0),
99  physicExitPipe(0),physicExitWindow(0),physicExithole(0),physicEntrancePipe(0),physicEntrancehole(0)
100 {
101  laserDrivenMessenger = new LaserDrivenBeamLineMessenger(this);
102 
103  //***************************** PW ***************************************
104 
105  static G4String ROGeometryName = "DetectorROGeometry";
106  RO = new HadrontherapyDetectorROGeometry(ROGeometryName);
107 
108  G4cout << "Going to register Parallel world...";
110  G4cout << "... done" << G4endl;
111  //***************************** PW ***************************************
112 }
void RegisterParallelWorld(G4VUserParallelWorld *)
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

LaserDrivenBeamLine::~LaserDrivenBeamLine ( )

Definition at line 115 of file LaserDrivenBeamLine.cc.

116 {
117  //delete laserDrivenMessenger;
118  delete hadrontherapydetectorconstruction;
119 }

Member Function Documentation

G4VPhysicalVolume * LaserDrivenBeamLine::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 122 of file LaserDrivenBeamLine.cc.

123 {
124  // Sets default geometry and materials
125  SetDefaultDimensions();
126 
127  // Construct the energyselector (magnetic part and slit) and detector plane
128  ConstructLaserDrivenBeamLine();
129 
130  //***************************** PW ***************************************
131  if (!hadrontherapydetectorconstruction)
132 
133  //***************************** PW ***************************************
134 
135  // HadrontherapyDetectorConstruction builds ONLY the phantom and the detector with its associated ROGeometry
136  hadrontherapydetectorconstruction = new HadrontherapyDetectorConstruction(physicTreatmentRoom);
137  G4cout<<"HadrontherapyDetectorConstruction"<<G4endl;
138  //***************************** PW ***************************************
139 
140  hadrontherapydetectorconstruction->InitializeDetectorROGeometry(RO,hadrontherapydetectorconstruction->GetDetectorToWorldPosition());
141 
142  //***************************** PW ***************************************
143  return physicTreatmentRoom;
144 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
void InitializeDetectorROGeometry(HadrontherapyDetectorROGeometry *, G4ThreeVector detectorToWorldPosition)

Here is the call graph for this function:

void LaserDrivenBeamLine::ConstructSDandField ( )
virtual

Reimplemented from G4VUserDetectorConstruction.

Definition at line 779 of file LaserDrivenBeamLine.cc.

780 {
781  G4double minEps=1.0e-5; // Minimum & value for smallest steps
782  G4double maxEps=1.0e-4;
783  G4bool allLocal = true;
784  // G4int nvar = 8; For pure magnetic field, the number of integration variables is the default!
785 
786  //....oooOO0OOooo..........ENERGY SELECTOR SYSTEM FIELD..........oooOO0OOooo....
787  if(logicInternalChamber){G4double xOffset =(internalChamberXSize/2.0)+externalSlitXPosition;
788  PurgMagField = new HadrontherapyMagneticField3D("field/ESSMagneticField.TABLE", xOffset);
789  pFieldMgr =new G4FieldManager();
790  pFieldMgr -> SetDetectorField(PurgMagField);
791  G4cout << "DeltaStep "<< pFieldMgr -> GetDeltaOneStep()/mm <<"mm" <<endl;
792  pFieldMgr -> CreateChordFinder(PurgMagField);
793  fEquation = new G4Mag_UsualEqRhs(PurgMagField);
794  fstepper = new G4ClassicalRK4(fEquation);
796  pIntgrDriver = new G4MagInt_Driver(1*mm,fstepper,fstepper-> GetNumberOfVariables());
797  //the first parameter is the minimum step
798  pChordFinder = new G4ChordFinder(pIntgrDriver);
799  pFieldMgr->SetChordFinder(pChordFinder);
800  pFieldMgr->SetMinimumEpsilonStep(minEps);
801  pFieldMgr->SetMaximumEpsilonStep(maxEps);
802  pFieldMgr->SetDeltaOneStep(0.5e-3*mm);//default value of DeltaChord is 0.25 mm
803  logicInternalChamber -> SetFieldManager(pFieldMgr, allLocal);}
804  //....oooOO0OOooo..........QUADS FIELDS..........oooOO0OOooo....
805  //....oooOO0OOooo..........FOURTH QUAD FIELD..........oooOO0OOooo....
806  if(LFourthTriplet){G4double xOffsetFQ =-(QuadChamberWallPosX+FourthQuadXPosition);
807  PurgMagFieldQuadFourth = new HadrontherapyMagneticField3D("field/Quad80MagneticField.TABLE", xOffsetFQ);
808  pFieldMgrQuadFourth = new G4FieldManager();
809  pFieldMgrQuadFourth -> SetDetectorField(PurgMagFieldQuadFourth);
810 
811  pFieldMgrQuadFourth -> CreateChordFinder(PurgMagFieldQuadFourth);
812  fEquationQuadFourth = new G4Mag_UsualEqRhs(PurgMagFieldQuadFourth);
813  fstepperQuadFourth = new G4ClassicalRK4(fEquationQuadFourth);
814  pIntgrDriverQuadFourth = new G4MagInt_Driver(1*mm,fstepperQuadFourth,fstepperQuadFourth-> GetNumberOfVariables());
815  //the first parameter is the minimum step
816  pChordFinderQuadFourth = new G4ChordFinder(pIntgrDriverQuadFourth);
817  pFieldMgrQuadFourth->SetChordFinder(pChordFinderQuadFourth);
818  pFieldMgrQuadFourth->SetMinimumEpsilonStep(minEps);
819  pFieldMgrQuadFourth->SetMaximumEpsilonStep(maxEps);
820  pFieldMgrQuadFourth->SetDeltaOneStep(0.5e-3*mm);//default value of DeltaChord is 0.25 mm
821  LFourthTriplet -> SetFieldManager(pFieldMgrQuadFourth, allLocal);}
822  //....oooOO0OOooo..........THIRD QUAD FIELD..........oooOO0OOooo....
823  if(LThirdTriplet){ G4double xOffsetTQ =-(QuadChamberWallPosX+ThirdQuadXPosition);
824  PurgMagFieldQuadThird = new HadrontherapyMagneticField3D("field/Quad40MagneticField.TABLE", xOffsetTQ);
825  pFieldMgrQuadThird = new G4FieldManager();
826  pFieldMgrQuadThird -> SetDetectorField(PurgMagFieldQuadThird);
827  pFieldMgrQuadThird -> CreateChordFinder(PurgMagFieldQuadThird);
828  fEquationQuadThird = new G4Mag_UsualEqRhs(PurgMagFieldQuadThird);
829  fstepperQuadThird = new G4ClassicalRK4(fEquationQuadThird);
830  pIntgrDriverQuadThird = new G4MagInt_Driver(1*mm,fstepperQuadThird,fstepperQuadThird-> GetNumberOfVariables());
831  //the first parameter is the minimum step
832  pChordFinderQuadThird = new G4ChordFinder(pIntgrDriverQuadThird);
833  pFieldMgrQuadThird->SetChordFinder(pChordFinderQuadThird);
834  pFieldMgrQuadThird->SetMinimumEpsilonStep(minEps);
835  pFieldMgrQuadThird->SetMaximumEpsilonStep(maxEps);
836  pFieldMgrQuadThird->SetDeltaOneStep(0.5e-3*mm);//default value of DeltaChord is 0.25 mm
837  LThirdTriplet -> SetFieldManager(pFieldMgrQuadThird, allLocal);}
838  //....oooOO0OOooo..........SECOND QUAD FIELD..........oooOO0OOooo....
839  if(LSecondTriplet){G4double xOffsetSQ =-(QuadChamberWallPosX+SecondQuadXPosition);
840  PurgMagFieldQuadSecond = new HadrontherapyMagneticField3D("field/Quad40MagneticField.TABLE", xOffsetSQ);
841  pFieldMgrQuadSecond = new G4FieldManager();
842  pFieldMgrQuadSecond -> SetDetectorField(PurgMagFieldQuadSecond);
843  pFieldMgrQuadSecond -> CreateChordFinder(PurgMagFieldQuadSecond);
844  fEquationQuadSecond = new G4Mag_UsualEqRhs(PurgMagFieldQuadSecond);
845  fstepperQuadSecond = new G4ClassicalRK4(fEquationQuadSecond);
846  pIntgrDriverQuadSecond = new G4MagInt_Driver(1*mm,fstepperQuadSecond,fstepperQuadSecond-> GetNumberOfVariables());
847  //the first parameter is the minimum step
848  pChordFinderQuadSecond = new G4ChordFinder(pIntgrDriverQuadSecond);
849  pFieldMgrQuadSecond->SetChordFinder(pChordFinderQuadSecond);
850  pFieldMgrQuadSecond->SetMinimumEpsilonStep(minEps);
851  pFieldMgrQuadSecond->SetMaximumEpsilonStep(maxEps);
852  pFieldMgrQuadSecond->SetDeltaOneStep(0.5e-3*mm);//default value of DeltaChord is 0.25 mm
853  LSecondTriplet -> SetFieldManager(pFieldMgrQuadSecond, allLocal);}
854  //....oooOO0OOooo..........FIRST QUAD FIELD..........oooOO0OOooo....
855  if(LFirstTriplet) {G4double xOffsetFirstQ =-(QuadChamberWallPosX+FirstQuadXPosition);
856  PurgMagFieldQuadFirst = new HadrontherapyMagneticField3D("field/Quad80MagneticField.TABLE", xOffsetFirstQ);
857  pFieldMgrQuadFirst = new G4FieldManager();
858  pFieldMgrQuadFirst -> SetDetectorField(PurgMagFieldQuadFirst);
859  pFieldMgrQuadFirst -> CreateChordFinder(PurgMagFieldQuadFirst);
860  fEquationQuadFirst = new G4Mag_UsualEqRhs(PurgMagFieldQuadFirst);
861  fstepperQuadFirst = new G4ClassicalRK4(fEquationQuadFirst);
862  pIntgrDriverQuadFirst = new G4MagInt_Driver(1*mm,fstepperQuadFirst,fstepperQuadFirst-> GetNumberOfVariables());
863  //the first parameter is the minimum step
864  pChordFinderQuadFirst = new G4ChordFinder(pIntgrDriverQuadFirst);
865  pFieldMgrQuadFirst->SetChordFinder(pChordFinderQuadFirst);
866  pFieldMgrQuadFirst->SetMinimumEpsilonStep(minEps);
867  pFieldMgrQuadFirst->SetMaximumEpsilonStep(maxEps);
868  pFieldMgrQuadFirst->SetDeltaOneStep(0.5e-3*mm);//default value of DeltaChord is 0.25 mm
869  LFirstTriplet -> SetFieldManager(pFieldMgrQuadFirst, allLocal);}
870  //....oooOO0OOooo..........FARADAY CUP FIELD..........oooOO0OOooo....
871  if(logicVirtualMag) {G4double exOffset= -20*cm;
872  G4double eyOffset= 0*cm;
873  G4double ezOffset= 0*cm;
874  G4FieldManager *pEFieldmanager = new G4FieldManager();
875  G4ElectricField *ElectricField = new HadrontherapyElectricTabulatedField3D("field/ElectricFieldFC-600V.TABLE", exOffset, eyOffset, ezOffset);
876  // UNIFORM FIELD
877  // G4ElectroMagneticField* ElectricField = new G4UniformElectricField(G4ThreeVector(0.0, 10.0*volt/m, 0.0)); //G4UniformElectricField
878  // The following is only for global field in the whole geometry
879  //pEFieldmanager = G4TransportationManager::GetTransportationManager() -> GetFieldManager();
880 
881  const G4int nvarElectric=8; // The Equation of motion for Electric (or combined Electric/Magnetic)
882  // field requires 8 integration variables
883 
884  G4EqMagElectricField *fLocalEquation = new G4EqMagElectricField(ElectricField);
885  G4MagIntegratorStepper* fLocalStepper = new G4ClassicalRK4(fLocalEquation, nvarElectric);
886  G4MagInt_Driver *pIntgrDriver_E = new G4MagInt_Driver(0.02*mm, fLocalStepper, fLocalStepper -> GetNumberOfVariables() );
887  G4ChordFinder *fLocalChordFinder = new G4ChordFinder(pIntgrDriver_E);
888  pEFieldmanager -> SetDetectorField(ElectricField);
889  pEFieldmanager -> SetChordFinder(fLocalChordFinder);
890  //G4double deltainter=0.0001*mm;
891  //G4double missdist=0.1*mm;
892  //pEFieldmanager->SetDeltaIntersection(deltainter);
893  //fLocalChordFinder->SetDeltaChord(missdist);
894  pEFieldmanager->SetMinimumEpsilonStep(minEps);
895  pEFieldmanager->SetMaximumEpsilonStep(maxEps);
896  pEFieldmanager->SetDeltaOneStep( 0.5e-3 * mm );
897  //pEFieldmanager -> SetFieldChangesEnergy(true);
898  logicVirtualMag -> SetFieldManager(pEFieldmanager, allLocal);}
899  //....oooOO0OOooo....................oooOO0OOooo....
900  G4cout<<" //....oooOO0OOooo.......... FIELDS HAVE BEEN IMPLEMENTED..........oooOO0OOooo...."<<G4endl;
901  return;
902 }
static constexpr double mm
Definition: G4SIunits.hh:115
void SetChordFinder(G4ChordFinder *aChordFinder)
int G4int
Definition: G4Types.hh:78
void SetMinimumEpsilonStep(G4double newEpsMin)
G4GLOB_DLL std::ostream G4cout
#define minEps
bool G4bool
Definition: G4Types.hh:79
static constexpr double cm
Definition: G4SIunits.hh:119
#define G4endl
Definition: G4ios.hh:61
void SetMaximumEpsilonStep(G4double newEpsMax)
double G4double
Definition: G4Types.hh:76
void SetDeltaOneStep(G4double valueD1step)

Here is the call graph for this function:

void LaserDrivenBeamLine::RemoveESS ( )

Definition at line 1970 of file LaserDrivenBeamLine.cc.

1971 {
1972  if(physicMagnet_1Left) {delete physicMagnet_1Left; delete physicMagnet_1Right; delete logicMagnet_1; delete solidMagnet_1;}
1973  if(physicExternalMagnet_1Down){delete physicExternalMagnet_1Down; delete physicExternalMagnet_1; delete logicExternalMagnet_1; delete solidExternalMagnet_1;}
1974  if(physicMagnet_2Left){delete physicMagnet_2Left; delete physicMagnet_2Right; delete logicMagnet_2; delete solidMagnet_2;}
1975  if(physicExternalMagnet_2Down){ delete physicExternalMagnet_2Down; delete physicExternalMagnet_2; delete logicExternalMagnet_2; delete solidExternalMagnet_2; }
1976  if(physicMagnet_3Left){delete physicMagnet_3Left; delete physicMagnet_3Right; delete logicMagnet_3; delete solidMagnet_3; }
1977  if(physicExternalMagnet_3Down){delete physicExternalMagnet_3Down; delete physicExternalMagnet_3; delete logicExternalMagnet_3; delete solidExternalMagnet_3; }
1978  if(physicMagnet_4Left) {delete physicMagnet_4Left; delete physicMagnet_4Right; delete logicMagnet_4; delete solidMagnet_4; }
1979  if(physicExternalMagnet_4Down){delete physicExternalMagnet_4Down; delete physicExternalMagnet_4; delete logicExternalMagnet_4; delete solidExternalMagnet_4; }
1980  if(physicCollimatorHole){delete physicCollimatorHole; delete logicCollimatorHole; delete solidCollimatorHole; }
1981  if(physicCollimator) {delete physicCollimator; delete logicCollimator; delete solidCollimator; }
1982  if(physicFinalCollimatorHole) {delete physicFinalCollimatorHole; delete logicFinalCollimatorHole; delete solidFinalCollimatorHole; }
1983  if(physicFinalCollimator){delete physicFinalCollimator; delete logicFinalCollimator; delete solidFinalCollimator; }
1984  if(physicInternalSlit){ delete physicInternalSlit; delete logicInternalSlit; delete solidInternalSlit; }
1985  if(physicExternalSlit){delete physicExternalSlit; delete logicExternalSlit; delete solidExternalSlit; }
1986  if(physicExithole){delete physicExithole; delete logicExithole; delete solidExithole;}
1987  if(physicExitWindow){delete physicExitWindow; delete logicExitWindow; delete solidExitWindow;}
1988  if(physicExitPipe){delete physicExitPipe; delete logicExitPipe; delete solidExitPipe;}
1989  if(physicEntranceholeESSChamber){delete physicEntranceholeESSChamber;}
1990  if(physicInternalChamber){delete physicInternalChamber; delete logicInternalChamber; delete solidInternalChamber;}
1991  if(physicExternalChamber) {delete physicExternalChamber; delete logicExternalChamber; delete solidExternalChamber;}
1992  if(pFieldMgr) {delete pFieldMgr;}
1993 
1994 
1995 
1996  G4cout << "****************************************************" << G4endl;
1997  G4cout << "************ The ESS has been disabled *************" << G4endl;
1998  G4cout << "****************************************************" << G4endl;
2000  #ifdef G4VIS_USE
2001  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2002  #endif
2003 }
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

void LaserDrivenBeamLine::RemoveQuads ( )

Definition at line 2143 of file LaserDrivenBeamLine.cc.

2144 {
2145  if(physicFirstQuad)
2146  {delete solidFirstQuad; delete logicFirstQuad; delete physicFirstQuad;delete SFirstTriplet; delete LFirstTriplet; delete PFirstTriplet;}
2147  if(physicSecondQuad)
2148  {delete solidSecondQuad; delete logicSecondQuad; delete physicSecondQuad;delete SSecondTriplet; delete LSecondTriplet; delete PSecondTriplet;}
2149  if(physicThirdQuad)
2150 {delete solidThirdQuad; delete logicThirdQuad; delete physicThirdQuad;delete SThirdTriplet; delete LThirdTriplet; delete PThirdTriplet;}
2151  if(physicFourthQuad)
2152  {delete solidFourthQuad; delete logicFourthQuad; delete physicFourthQuad;delete SFourthTriplet; delete LFourthTriplet; delete PFourthTriplet;}
2153  if(pFieldMgrQuadFourth) {delete pFieldMgrQuadFourth;}
2154  if(pFieldMgrQuadThird) {delete pFieldMgrQuadThird;}
2155  if(pFieldMgrQuadSecond) {delete pFieldMgrQuadSecond;}
2156  if(pFieldMgrQuadFirst) {delete pFieldMgrQuadFirst;}
2157 
2158 
2159  G4cout << "******************************************************************" << G4endl;
2160  G4cout << "************ The Quadrupoles system has been disabled *************" << G4endl;
2161  G4cout << "******************************************************************" << G4endl;
2163  #ifdef G4VIS_USE
2164  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2165  #endif
2166 }
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

void LaserDrivenBeamLine::SetFirstCollimatorPositionZ ( G4double  value)

Definition at line 2030 of file LaserDrivenBeamLine.cc.

2031 {
2032  physicCollimatorHole -> SetTranslation(G4ThreeVector(0., 0., valueQ));
2034  #ifdef G4VIS_USE
2035  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2036  #endif
2037  G4cout << "The first collimator has been translated to "<< valueQ/mm <<"mm (along the z axis)" << G4endl;
2038 }
static constexpr double mm
Definition: G4SIunits.hh:115
CLHEP::Hep3Vector G4ThreeVector
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

void LaserDrivenBeamLine::SetFirstCollimatorRadius ( G4double  value)

Definition at line 2005 of file LaserDrivenBeamLine.cc.

2006 {
2007  G4double radius = valueR;
2008  solidCollimatorHole -> SetOuterRadius(radius);
2010  #ifdef G4VIS_USE
2011  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2012  #endif
2013  G4cout << "The first collimator aperture has been modified to "<< valueR/mm <<"mm in diameter" << G4endl;
2014 }
static constexpr double mm
Definition: G4SIunits.hh:115
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

void LaserDrivenBeamLine::SetFirstCollimatorThickness ( G4double  value)

Definition at line 2017 of file LaserDrivenBeamLine.cc.

2018 {
2019  G4double thickness = valueC/2;
2020  solidCollimator -> SetXHalfLength(thickness);
2021  solidCollimatorHole -> SetZHalfLength(thickness);
2023  #ifdef G4VIS_USE
2024  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2025  #endif
2026  G4cout << "The first collimator thickness has been modified to "<< valueC/mm <<" mm in thickness" << G4endl;
2027 }
static constexpr double mm
Definition: G4SIunits.hh:115
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

void LaserDrivenBeamLine::SetSecondCollimatorPositionZ ( G4double  value)

Definition at line 2067 of file LaserDrivenBeamLine.cc.

2068 {
2069  physicFinalCollimatorHole -> SetTranslation(G4ThreeVector(0., 0., value));
2071  #ifdef G4VIS_USE
2072  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2073  #endif
2074  G4cout << "The second collimator has been translated to "<< value/mm <<"mm (along the z axis)" << G4endl;
2075 }
static constexpr double mm
Definition: G4SIunits.hh:115
CLHEP::Hep3Vector G4ThreeVector
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
Definition: expat.h:331
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

void LaserDrivenBeamLine::SetSecondCollimatorRadius ( G4double  value)

Definition at line 2041 of file LaserDrivenBeamLine.cc.

2042 {
2043  G4double radius = value;
2044  solidFinalCollimatorHole -> SetOuterRadius(radius);
2046  #ifdef G4VIS_USE
2047  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2048  #endif
2049  G4cout << "The second collimator aperture has been modified to "<< value/mm <<"mm in diameter" << G4endl;
2050 }
static constexpr double mm
Definition: G4SIunits.hh:115
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
Definition: expat.h:331
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

void LaserDrivenBeamLine::SetSecondCollimatorThickness ( G4double  value)

Definition at line 2054 of file LaserDrivenBeamLine.cc.

2055 {
2056  G4double thickness = value/2;
2057  solidFinalCollimator -> SetXHalfLength(thickness);
2058  solidFinalCollimatorHole -> SetZHalfLength(thickness);
2060  #ifdef G4VIS_USE
2061  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2062  #endif
2063  G4cout << "The second collimator thickness has been modified to "<< value/mm <<" mm in thickness" << G4endl;
2064 }
static constexpr double mm
Definition: G4SIunits.hh:115
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
Definition: expat.h:331
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

void LaserDrivenBeamLine::SetSlitHoleDimensionY ( G4double  value)

Definition at line 2105 of file LaserDrivenBeamLine.cc.

2106 {
2107  G4double hole = value/2;
2108  solidInternalSlit -> SetYHalfLength(hole);
2110  #ifdef G4VIS_USE
2111  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2112  #endif
2113  G4cout << "The hole of the Slit has been changed in the Y direction to "<< value/mm <<" mm" <<G4endl;
2114 }
static constexpr double mm
Definition: G4SIunits.hh:115
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
Definition: expat.h:331
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

void LaserDrivenBeamLine::SetSlitHoleDimensionZ ( G4double  value)

Definition at line 2118 of file LaserDrivenBeamLine.cc.

2119 {
2120  G4double hole = value/2;
2121  solidInternalSlit -> SetZHalfLength(hole);
2123  #ifdef G4VIS_USE
2124  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2125  #endif
2126  G4cout << "The hole of the Slit has been changed in the Z direction to "<< value/mm <<" mm" <<G4endl;
2127 }
static constexpr double mm
Definition: G4SIunits.hh:115
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
Definition: expat.h:331
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

void LaserDrivenBeamLine::SetSlitHolePositionZ ( G4double  value)

Definition at line 2130 of file LaserDrivenBeamLine.cc.

2131 {
2132  physicInternalSlit -> SetTranslation(G4ThreeVector(0., 0., value));
2134  #ifdef G4VIS_USE
2135  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2136  #endif
2137  G4cout << "The hole of the slit has been translated to "<< value/mm <<" mm (along the Z axis)" <<G4endl;
2138 }
static constexpr double mm
Definition: G4SIunits.hh:115
CLHEP::Hep3Vector G4ThreeVector
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
Definition: expat.h:331
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

void LaserDrivenBeamLine::SetThicknessSlit ( G4double  value)

Definition at line 2079 of file LaserDrivenBeamLine.cc.

2080 {
2081  if (value >(10.0*mm)) {
2082  G4cout <<"***************************************"<< G4endl;
2083  G4cout <<"******This is a warning messenger******"<< G4endl;
2084  G4cout <<"***************************************"<< G4endl;
2085  G4cout <<"The maximum value of the thickness of the slit is 10 mm, your value is >10 mm." << G4endl;
2086  G4cout <<"The default thickness value is used, it is: " << ((solidExternalSlit -> GetXHalfLength())*2.)/mm
2087  << G4endl;
2088  G4cout <<"***************************************"<< G4endl;
2089 
2090  }
2091  else {
2092  G4double dimension = value/2;
2093  solidExternalSlit -> SetXHalfLength(dimension);
2094  solidInternalSlit -> SetXHalfLength(dimension);
2096  #ifdef G4VIS_USE
2097  G4UImanager::GetUIpointer() -> ApplyCommand("/vis/viewer/flush");
2098  #endif
2099  G4cout <<"The thickness of the slit is:" << ((solidExternalSlit -> GetXHalfLength())*2.)/mm
2100  << G4endl;
2101  }
2102 }
static constexpr double mm
Definition: G4SIunits.hh:115
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
Definition: expat.h:331
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:


The documentation for this class was generated from the following files: