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

#include <F04DetectorConstruction.hh>

Inheritance diagram for F04DetectorConstruction:
Collaboration diagram for F04DetectorConstruction:

Public Member Functions

 F04DetectorConstruction ()
 
virtual ~F04DetectorConstruction ()
 
virtual G4VPhysicalVolumeConstruct ()
 
G4VPhysicalVolumeConstructDetector ()
 
virtual void ConstructSDandField ()
 
void SetWorldMaterial (G4String)
 
void SetWorldSizeZ (G4double)
 
void SetWorldSizeR (G4double)
 
void SetCaptureMgntRadius (G4double)
 
void SetCaptureMgntLength (G4double)
 
void SetCaptureMgntB1 (G4double)
 
void SetCaptureMgntB2 (G4double)
 
void SetTransferMgntRadius (G4double)
 
void SetTransferMgntLength (G4double)
 
void SetTransferMgntB (G4double)
 
void SetTransferMgntPos (G4double)
 
void SetTargetMaterial (G4String)
 
void SetTargetThickness (G4double)
 
void SetTargetRadius (G4double)
 
void SetTargetPos (G4double)
 
void SetTargetAngle (G4int)
 
void SetDegraderMaterial (G4String)
 
void SetDegraderThickness (G4double)
 
void SetDegraderRadius (G4double)
 
void SetDegraderPos (G4double)
 
G4MaterialGetWorldMaterial ()
 
G4double GetWorldSizeZ ()
 
G4double GetWorldSizeR ()
 
G4LogicalVolumeGetCaptureMgnt ()
 
G4double GetCaptureMgntRadius ()
 
G4double GetCaptureMgntLength ()
 
G4double GetCaptureMgntB1 ()
 
G4double GetCaptureMgntB2 ()
 
G4ThreeVector GetCaptureMgntCenter ()
 
G4LogicalVolumeGetTransferMgnt ()
 
G4double GetTransferMgntRadius ()
 
G4double GetTransferMgntLength ()
 
G4double GetTransferMgntB ()
 
G4double GetTransferMgntPos ()
 
G4ThreeVector GetTransferMgntCenter ()
 
G4MaterialGetTargetMaterial ()
 
G4double GetTargetRadius ()
 
G4double GetTargetThickness ()
 
G4double GetTargetPos ()
 
G4int GetTargetAngle ()
 
G4MaterialGetDegraderMaterial ()
 
G4double GetDegraderRadius ()
 
G4double GetDegraderThickness ()
 
G4double GetDegraderPos ()
 
- 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
 

Static Public Member Functions

static G4RotationMatrix StringToRotationMatrix (G4String rotation)
 

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 54 of file F04DetectorConstruction.hh.

Constructor & Destructor Documentation

F04DetectorConstruction::F04DetectorConstruction ( )

Definition at line 69 of file F04DetectorConstruction.cc.

71  fDetectorMessenger(0),
72  fSolidWorld(0), fLogicWorld(0), fPhysiWorld(0),
73  fSolidTarget(0), fLogicTarget(0), fPhysiTarget(0),
74  fSolidDegrader(0), fLogicDegrader(0), fPhysiDegrader(0),
75  fSolidCaptureMgnt(0), fLogicCaptureMgnt(0), fPhysiCaptureMgnt(0),
76  fSolidTransferMgnt(0), fLogicTransferMgnt(0), fPhysiTransferMgnt(0),
77  fWorldMaterial(0), fTargetMaterial(0), fDegraderMaterial(0)
78 {
79  fWorldSizeZ = 50.*m;
80  fWorldSizeR = 5.*m;
81 
82  fTargetRadius = 0.4*cm;
83  fTargetThickness = 16.0*cm;
84 
85  SetTargetAngle(170);
86 
87  fDegraderRadius = 30.0*cm;
88  fDegraderThickness = 0.1*cm;
89 
90  fCaptureMgntRadius = 0.6*m;
91  fCaptureMgntLength = 4.0*m;
92 
95 
96  fTransferMgntRadius = 0.3*m;
97  fTransferMgntLength = 15.0*m;
98 
100 
101  fDegraderPos = -fTransferMgntLength/2. + fDegraderThickness/2.;
102 
103  fDetectorMessenger = new F04DetectorMessenger(this);
104 }
static constexpr double tesla
Definition: G4SIunits.hh:268
static constexpr double m
Definition: G4SIunits.hh:129
static constexpr double cm
Definition: G4SIunits.hh:119

Here is the call graph for this function:

F04DetectorConstruction::~F04DetectorConstruction ( )
virtual

Definition at line 108 of file F04DetectorConstruction.cc.

109 {
110  delete fDetectorMessenger;
111 }

Member Function Documentation

G4VPhysicalVolume * F04DetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 115 of file F04DetectorConstruction.cc.

116 {
117 
118  if (fPhysiWorld) {
123  }
124 
125  fMaterials = F04Materials::GetInstance();
126 
127  DefineMaterials();
128 
129  return ConstructDetector();
130 }
G4VPhysicalVolume * ConstructDetector()
static void Clean()
Definition: G4SolidStore.cc:79
static G4PhysicalVolumeStore * GetInstance()
static G4LogicalVolumeStore * GetInstance()
static G4SolidStore * GetInstance()
static G4GeometryManager * GetInstance()
static F04Materials * GetInstance()
Definition: F04Materials.cc:60
void OpenGeometry(G4VPhysicalVolume *vol=0)

Here is the call graph for this function:

G4VPhysicalVolume * F04DetectorConstruction::ConstructDetector ( )

Definition at line 147 of file F04DetectorConstruction.cc.

148 {
149  fSolidWorld = new G4Tubs("World",
150  0.,GetWorldSizeR(),GetWorldSizeZ()/2.,0.,twopi);
151 
152  fLogicWorld = new G4LogicalVolume(fSolidWorld,
154  "World");
155 
156  fPhysiWorld = new G4PVPlacement(0,
157  G4ThreeVector(),
158  "World",
159  fLogicWorld,
160  0,
161  false,
162  0);
163 
164  // Capture Magnet
165 
166  fSolidCaptureMgnt = new G4Tubs("CaptureMgnt",
168  GetCaptureMgntLength()/2.,0.,twopi);
169 
170  fLogicCaptureMgnt = new G4LogicalVolume(fSolidCaptureMgnt,
171  fVacuum,
172  "CaptureMgnt");
173 
174  fCaptureMgntCenter = G4ThreeVector();
175 
176  fPhysiCaptureMgnt = new G4PVPlacement(0,
177  fCaptureMgntCenter,
178  "CaptureMgnt",
179  fLogicCaptureMgnt,
180  fPhysiWorld,
181  false,
182  0);
183 
184  // Transfer Magnet
185 
186  fSolidTransferMgnt = new G4Tubs("TransferMgnt",
188  GetTransferMgntLength()/2.,0.,twopi);
189 
190  fLogicTransferMgnt = new G4LogicalVolume(fSolidTransferMgnt,
191  fVacuum,
192  "TransferMgnt");
193 
195  + GetTransferMgntPos();
197 
198  fTransferMgntCenter = G4ThreeVector(x,0.,z);
199 
200  G4RotationMatrix* g4rot = new G4RotationMatrix();
201  *g4rot = StringToRotationMatrix("Y30,X10");
202  *g4rot = g4rot->inverse();
203  if (*g4rot == G4RotationMatrix()) g4rot = NULL;
204 
205  fPhysiTransferMgnt = new G4PVPlacement(g4rot,
206  fTransferMgntCenter,
207  "TransferMgnt",
208  fLogicTransferMgnt,
209  fPhysiWorld,
210  false,
211  0);
212 
213  // Test Plane
214 
215  G4Tubs* solidTestPlane = new G4Tubs("TestPlane",
217  1.*mm,0.,twopi);
218 
219  G4LogicalVolume* logicTestPlane = new G4LogicalVolume(solidTestPlane,
220  fVacuum,
221  "TestPlane");
222 
223  z = GetTransferMgntLength()/2. - 1.*mm;
224 
225  G4ThreeVector testPlaneCenter = G4ThreeVector(0.,0.,z);
226 
227  new G4PVPlacement(0,
228  testPlaneCenter,
229  "TestPlane",
230  logicTestPlane,
231  fPhysiTransferMgnt,
232  false,
233  0);
234 
235  // Target
236 
237  if (GetTargetThickness() > 0.)
238  {
239  fSolidTarget = new G4Tubs("Target",
240  0.,GetTargetRadius(),
241  GetTargetThickness()/2.,0.,twopi);
242 
243  fLogicTarget = new G4LogicalVolume(fSolidTarget,
245  "Target");
246 
247  G4int i = GetTargetAngle();
248 
249  char c[4];
250  sprintf(c,"%d",i);
251  G4String angle = c;
252  angle = angle.strip(G4String::both,' ');
253  angle = "Y" + angle;
254 
255  g4rot = new G4RotationMatrix();
256  *g4rot = StringToRotationMatrix(angle);
257  *g4rot = g4rot->inverse();
258  if (*g4rot == G4RotationMatrix()) g4rot = NULL;
259 
260  G4ThreeVector targetCenter(0.,0.,GetTargetPos());
261 
262  fPhysiTarget = new G4PVPlacement(g4rot,
263  targetCenter,
264  "Target",
265  fLogicTarget,
266  fPhysiCaptureMgnt,
267  false,
268  0);
269  }
270 
271  // Degrader
272 
273  if (GetDegraderThickness() > 0.)
274  {
275  fSolidDegrader = new G4Tubs("Degrader",
276  0., GetDegraderRadius(),
277  GetDegraderThickness()/2., 0.,twopi);
278 
279  fLogicDegrader = new G4LogicalVolume(fSolidDegrader,
281  "Degrader");
282 
283  G4ThreeVector degraderCenter = G4ThreeVector(0.,0.,GetDegraderPos());
284 
285  fPhysiDegrader = new G4PVPlacement(0,
286  degraderCenter,
287  "Degrader",
288  fLogicDegrader,
289  fPhysiTransferMgnt,
290  false,
291  0);
292  }
293 
294  return fPhysiWorld;
295 }
static constexpr double mm
Definition: G4SIunits.hh:115
CLHEP::Hep3Vector G4ThreeVector
CLHEP::HepRotation G4RotationMatrix
G4String strip(G4int strip_Type=trailing, char c=' ')
Definition: G4Tubs.hh:85
static G4double angle[DIM]
tuple x
Definition: test.py:50
int G4int
Definition: G4Types.hh:78
HepRotation inverse() const
static constexpr double twopi
Definition: G4SIunits.hh:76
tuple z
Definition: test.py:28
double G4double
Definition: G4Types.hh:76
tuple c
Definition: test.py:13
static G4RotationMatrix StringToRotationMatrix(G4String rotation)

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::ConstructSDandField ( )
virtual

Reimplemented from G4VUserDetectorConstruction.

Definition at line 490 of file F04DetectorConstruction.cc.

491 {
492  if (!fFieldSetUp.Get()) {
494  G4AutoDelete::Register(field); // Kernel will delete the F04GlobalField
495  fFieldSetUp.Put(field);
496  }
497 }
value_type & Get() const
Definition: G4Cache.hh:282
static F04GlobalField * GetObject()
void Register(T *inst)
Definition: G4AutoDelete.hh:65
void Put(const value_type &val) const
Definition: G4Cache.hh:286

Here is the call graph for this function:

G4LogicalVolume* F04DetectorConstruction::GetCaptureMgnt ( )
inline

Definition at line 110 of file F04DetectorConstruction.hh.

110 {return fLogicCaptureMgnt;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetCaptureMgntB1 ( )
inline

Definition at line 113 of file F04DetectorConstruction.hh.

113 {return fCaptureMgntB1;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetCaptureMgntB2 ( )
inline

Definition at line 114 of file F04DetectorConstruction.hh.

114 {return fCaptureMgntB2;}

Here is the caller graph for this function:

G4ThreeVector F04DetectorConstruction::GetCaptureMgntCenter ( )
inline

Definition at line 115 of file F04DetectorConstruction.hh.

115 {return fCaptureMgntCenter;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetCaptureMgntLength ( )
inline

Definition at line 112 of file F04DetectorConstruction.hh.

112 {return fCaptureMgntLength;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetCaptureMgntRadius ( )
inline

Definition at line 111 of file F04DetectorConstruction.hh.

111 {return fCaptureMgntRadius;}

Here is the caller graph for this function:

G4Material* F04DetectorConstruction::GetDegraderMaterial ( )
inline

Definition at line 130 of file F04DetectorConstruction.hh.

130 {return fDegraderMaterial;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetDegraderPos ( )
inline

Definition at line 133 of file F04DetectorConstruction.hh.

133 {return fDegraderPos;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetDegraderRadius ( )
inline

Definition at line 131 of file F04DetectorConstruction.hh.

131 {return fDegraderRadius;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetDegraderThickness ( )
inline

Definition at line 132 of file F04DetectorConstruction.hh.

132 {return fDegraderThickness;}

Here is the caller graph for this function:

G4int F04DetectorConstruction::GetTargetAngle ( )
inline

Definition at line 128 of file F04DetectorConstruction.hh.

128 {return fTargetAngle;}

Here is the caller graph for this function:

G4Material* F04DetectorConstruction::GetTargetMaterial ( )
inline

Definition at line 124 of file F04DetectorConstruction.hh.

124 {return fTargetMaterial;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetTargetPos ( )
inline

Definition at line 127 of file F04DetectorConstruction.hh.

127 {return fTargetPos;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetTargetRadius ( )
inline

Definition at line 125 of file F04DetectorConstruction.hh.

125 {return fTargetRadius;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetTargetThickness ( )
inline

Definition at line 126 of file F04DetectorConstruction.hh.

126 {return fTargetThickness;}

Here is the caller graph for this function:

G4LogicalVolume* F04DetectorConstruction::GetTransferMgnt ( )
inline

Definition at line 117 of file F04DetectorConstruction.hh.

117 {return fLogicTransferMgnt;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetTransferMgntB ( )
inline

Definition at line 120 of file F04DetectorConstruction.hh.

120 {return fTransferMgntB;}

Here is the caller graph for this function:

G4ThreeVector F04DetectorConstruction::GetTransferMgntCenter ( )
inline

Definition at line 122 of file F04DetectorConstruction.hh.

122 {return fTransferMgntCenter;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetTransferMgntLength ( )
inline

Definition at line 119 of file F04DetectorConstruction.hh.

119 {return fTransferMgntLength;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetTransferMgntPos ( )
inline

Definition at line 121 of file F04DetectorConstruction.hh.

121 {return fTransferMgntPos;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetTransferMgntRadius ( )
inline

Definition at line 118 of file F04DetectorConstruction.hh.

118 {return fTransferMgntRadius;}

Here is the caller graph for this function:

G4Material* F04DetectorConstruction::GetWorldMaterial ( )
inline

Definition at line 106 of file F04DetectorConstruction.hh.

106 {return fWorldMaterial;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetWorldSizeR ( )
inline

Definition at line 108 of file F04DetectorConstruction.hh.

108 {return fWorldSizeR;}

Here is the caller graph for this function:

G4double F04DetectorConstruction::GetWorldSizeZ ( )
inline

Definition at line 107 of file F04DetectorConstruction.hh.

107 {return fWorldSizeZ;}

Here is the caller graph for this function:

void F04DetectorConstruction::SetCaptureMgntB1 ( G4double  val)

Definition at line 386 of file F04DetectorConstruction.cc.

387 {
388  fCaptureMgntB1 = val;
390 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetCaptureMgntB2 ( G4double  val)

Definition at line 394 of file F04DetectorConstruction.cc.

395 {
396  fCaptureMgntB2 = val;
398 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetCaptureMgntLength ( G4double  val)

Definition at line 378 of file F04DetectorConstruction.cc.

379 {
380  fCaptureMgntLength = val;
382 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetCaptureMgntRadius ( G4double  val)

Definition at line 370 of file F04DetectorConstruction.cc.

371 {
372  fCaptureMgntRadius = val;
374 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetDegraderMaterial ( G4String  materialChoice)

Definition at line 335 of file F04DetectorConstruction.cc.

337 {
338  G4Material* pttoMaterial =
339  G4NistManager::Instance()->FindOrBuildMaterial(materialChoice);
340 
341  if (pttoMaterial != fDegraderMaterial) {
342  if ( pttoMaterial ) {
343  fDegraderMaterial = pttoMaterial;
345  } else {
346  G4cout << "\n--> WARNING from SetDegraderMaterial : "
347  << materialChoice << " not found" << G4endl;
348  }
349  }
350 }
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
static G4NistManager * Instance()
G4GLOB_DLL std::ostream G4cout
void PhysicsHasBeenModified()
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetDegraderPos ( G4double  val)

Definition at line 482 of file F04DetectorConstruction.cc.

483 {
484  fDegraderPos = val;
486 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetDegraderRadius ( G4double  val)

Definition at line 466 of file F04DetectorConstruction.cc.

467 {
468  fDegraderRadius = val;
470 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetDegraderThickness ( G4double  val)

Definition at line 474 of file F04DetectorConstruction.cc.

475 {
476  fDegraderThickness = val;
478 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetTargetAngle ( G4int  val)

Definition at line 458 of file F04DetectorConstruction.cc.

459 {
460  fTargetAngle = val;
462 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetTargetMaterial ( G4String  materialChoice)

Definition at line 317 of file F04DetectorConstruction.cc.

318 {
319  G4Material* pttoMaterial =
320  G4NistManager::Instance()->FindOrBuildMaterial(materialChoice);
321 
322  if (pttoMaterial != fTargetMaterial) {
323  if ( pttoMaterial ) {
324  fTargetMaterial = pttoMaterial;
326  } else {
327  G4cout << "\n--> WARNING from SetTargetMaterial : "
328  << materialChoice << " not found" << G4endl;
329  }
330  }
331 }
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
static G4NistManager * Instance()
G4GLOB_DLL std::ostream G4cout
void PhysicsHasBeenModified()
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetTargetPos ( G4double  val)

Definition at line 450 of file F04DetectorConstruction.cc.

451 {
452  fTargetPos = val;
454 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetTargetRadius ( G4double  val)

Definition at line 434 of file F04DetectorConstruction.cc.

435 {
436  fTargetRadius = val;
438 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetTargetThickness ( G4double  val)

Definition at line 442 of file F04DetectorConstruction.cc.

443 {
444  fTargetThickness = val;
446 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetTransferMgntB ( G4double  val)

Definition at line 418 of file F04DetectorConstruction.cc.

419 {
420  fTransferMgntB = val;
422 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetTransferMgntLength ( G4double  val)

Definition at line 410 of file F04DetectorConstruction.cc.

411 {
412  fTransferMgntLength = val;
414 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetTransferMgntPos ( G4double  val)

Definition at line 426 of file F04DetectorConstruction.cc.

427 {
428  fTransferMgntPos = val;
430 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetTransferMgntRadius ( G4double  val)

Definition at line 402 of file F04DetectorConstruction.cc.

403 {
404  fTransferMgntRadius = val;
406 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetWorldMaterial ( G4String  materialChoice)

Definition at line 299 of file F04DetectorConstruction.cc.

300 {
301  G4Material* pttoMaterial =
302  G4NistManager::Instance()->FindOrBuildMaterial(materialChoice);
303 
304  if (pttoMaterial != fWorldMaterial) {
305  if ( pttoMaterial ) {
306  fWorldMaterial = pttoMaterial;
308  } else {
309  G4cout << "\n--> WARNING from SetWorldMaterial : "
310  << materialChoice << " not found" << G4endl;
311  }
312  }
313 }
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
static G4NistManager * Instance()
G4GLOB_DLL std::ostream G4cout
void PhysicsHasBeenModified()
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetWorldSizeR ( G4double  val)

Definition at line 362 of file F04DetectorConstruction.cc.

363 {
364  fWorldSizeR = val;
366 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void F04DetectorConstruction::SetWorldSizeZ ( G4double  val)

Definition at line 354 of file F04DetectorConstruction.cc.

355 {
356  fWorldSizeZ = val;
358 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

G4RotationMatrix F04DetectorConstruction::StringToRotationMatrix ( G4String  rotation)
static

Definition at line 502 of file F04DetectorConstruction.cc.

503 {
504  // We apply successive rotations OF THE OBJECT around the FIXED
505  // axes of the parent's local coordinates; rotations are applied
506  // left-to-right (rotation="r1,r2,r3" => r1 then r2 then r3).
507 
508  G4RotationMatrix rot;
509 
510  unsigned int place = 0;
511 
512  while (place < rotation.size()) {
513 
514  G4double angle;
515  char* p(0);
516  G4String current=rotation.substr(place+1);
517  angle = strtod(current.c_str(),&p) * deg;
518 
519  if (!p || (*p != ',' && *p != '\0')) {
520  G4cerr << "Invalid rotation specification: " <<
521  rotation.c_str() << G4endl;
522 
523  return rot;
524  }
525 
526  G4RotationMatrix thisRotation;
527 
528  switch(rotation.substr(place,1).c_str()[0]) {
529  case 'X': case 'x':
530  thisRotation = G4RotationMatrix(CLHEP::HepRotationX(angle));
531  break;
532  case 'Y': case 'y':
533  thisRotation = G4RotationMatrix(CLHEP::HepRotationY(angle));
534  break;
535  case 'Z': case 'z':
536  thisRotation = G4RotationMatrix(CLHEP::HepRotationZ(angle));
537  break;
538  default:
539  G4cerr << " Invalid rotation specification: "
540  << rotation << G4endl;
541  return rot;
542  }
543 
544  rot = thisRotation * rot;
545  place = rotation.find(',',place);
546  if (place > rotation.size()) break;
547  ++place;
548  }
549 
550  return rot;
551 
552 }
CLHEP::HepRotation G4RotationMatrix
const char * p
Definition: xmltok.h:285
static G4double angle[DIM]
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
static constexpr double deg
Definition: G4SIunits.hh:152
G4GLOB_DLL std::ostream G4cerr

Here is the caller graph for this function:


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