Geant4  10.02.p03
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)
 

Private Member Functions

void DefineMaterials ()
 

Private Attributes

F04DetectorMessengerfDetectorMessenger
 
G4Cache< F04GlobalField * > fFieldSetUp
 
F04MaterialsfMaterials
 
G4MaterialfVacuum
 
G4TubsfSolidWorld
 
G4LogicalVolumefLogicWorld
 
G4VPhysicalVolumefPhysiWorld
 
G4TubsfSolidTarget
 
G4LogicalVolumefLogicTarget
 
G4VPhysicalVolumefPhysiTarget
 
G4TubsfSolidDegrader
 
G4LogicalVolumefLogicDegrader
 
G4VPhysicalVolumefPhysiDegrader
 
G4TubsfSolidCaptureMgnt
 
G4LogicalVolumefLogicCaptureMgnt
 
G4VPhysicalVolumefPhysiCaptureMgnt
 
G4TubsfSolidTransferMgnt
 
G4LogicalVolumefLogicTransferMgnt
 
G4VPhysicalVolumefPhysiTransferMgnt
 
G4MaterialfWorldMaterial
 
G4double fWorldSizeR
 
G4double fWorldSizeZ
 
G4double fCaptureMgntLength
 
G4double fCaptureMgntRadius
 
G4double fCaptureMgntB1
 
G4double fCaptureMgntB2
 
G4double fTransferMgntLength
 
G4double fTransferMgntRadius
 
G4double fTransferMgntB
 
G4double fTransferMgntPos
 
G4MaterialfTargetMaterial
 
G4double fTargetThickness
 
G4double fTargetRadius
 
G4double fTargetPos
 
G4int fTargetAngle
 
G4MaterialfDegraderMaterial
 
G4double fDegraderThickness
 
G4double fDegraderRadius
 
G4double fDegraderPos
 
G4ThreeVector fCaptureMgntCenter
 
G4ThreeVector fTransferMgntCenter
 

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::F04DetectorConstruction ( )

Definition at line 69 of file F04DetectorConstruction.cc.

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 
102 
104 }
static const double cm
Definition: G4SIunits.hh:118
G4VPhysicalVolume * fPhysiDegrader
F04DetectorMessenger * fDetectorMessenger
G4VPhysicalVolume * fPhysiTransferMgnt
G4VPhysicalVolume * fPhysiCaptureMgnt
static const double m
Definition: G4SIunits.hh:128
static const double tesla
Definition: G4SIunits.hh:265
Here is the call graph for this function:

◆ ~F04DetectorConstruction()

F04DetectorConstruction::~F04DetectorConstruction ( )
virtual

Definition at line 108 of file F04DetectorConstruction.cc.

109 {
110  delete fDetectorMessenger;
111 }
F04DetectorMessenger * fDetectorMessenger

Member Function Documentation

◆ Construct()

G4VPhysicalVolume * F04DetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 115 of file F04DetectorConstruction.cc.

116 {
117 
118  if (fPhysiWorld) {
123  }
124 
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:

◆ ConstructDetector()

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 
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 
171  fVacuum,
172  "CaptureMgnt");
173 
175 
178  "CaptureMgnt",
180  fPhysiWorld,
181  false,
182  0);
183 
184  // Transfer Magnet
185 
186  fSolidTransferMgnt = new G4Tubs("TransferMgnt",
188  GetTransferMgntLength()/2.,0.,twopi);
189 
191  fVacuum,
192  "TransferMgnt");
193 
195  + GetTransferMgntPos();
197 
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,
207  "TransferMgnt",
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,
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 
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,
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 
281  "Degrader");
282 
283  G4ThreeVector degraderCenter = G4ThreeVector(0.,0.,GetDegraderPos());
284 
286  degraderCenter,
287  "Degrader",
290  false,
291  0);
292  }
293 
294  return fPhysiWorld;
295 }
G4VPhysicalVolume * fPhysiDegrader
CLHEP::Hep3Vector G4ThreeVector
CLHEP::HepRotation G4RotationMatrix
G4String strip(G4int strip_Type=trailing, char c=' ')
Definition: G4Tubs.hh:85
static G4double angle[DIM]
int G4int
Definition: G4Types.hh:78
G4VPhysicalVolume * fPhysiTransferMgnt
static const double twopi
Definition: G4SIunits.hh:75
G4VPhysicalVolume * fPhysiCaptureMgnt
HepRotation inverse() const
double G4double
Definition: G4Types.hh:76
static G4RotationMatrix StringToRotationMatrix(G4String rotation)
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConstructSDandField()

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 }
void Put(const value_type &val) const
Definition: G4Cache.hh:286
G4Cache< F04GlobalField * > fFieldSetUp
value_type & Get() const
Definition: G4Cache.hh:282
static F04GlobalField * GetObject()
void Register(T *inst)
Definition: G4AutoDelete.hh:65
Here is the call graph for this function:

◆ DefineMaterials()

void F04DetectorConstruction::DefineMaterials ( )
private

Definition at line 134 of file F04DetectorConstruction.cc.

135 {
136  //define materials for the experiment
137 
138  fVacuum = fMaterials->GetMaterial("G4_Galactic");
139 
143 }
G4Material * GetMaterial(G4String)
Definition: F04Materials.cc:71
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetCaptureMgnt()

G4LogicalVolume* F04DetectorConstruction::GetCaptureMgnt ( )
inline

Definition at line 110 of file F04DetectorConstruction.hh.

110 {return fLogicCaptureMgnt;}
Here is the caller graph for this function:

◆ GetCaptureMgntB1()

G4double F04DetectorConstruction::GetCaptureMgntB1 ( )
inline

Definition at line 113 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetCaptureMgntB2()

G4double F04DetectorConstruction::GetCaptureMgntB2 ( )
inline

Definition at line 114 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetCaptureMgntCenter()

G4ThreeVector F04DetectorConstruction::GetCaptureMgntCenter ( )
inline

Definition at line 115 of file F04DetectorConstruction.hh.

115 {return fCaptureMgntCenter;}
Here is the caller graph for this function:

◆ GetCaptureMgntLength()

G4double F04DetectorConstruction::GetCaptureMgntLength ( )
inline

Definition at line 112 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetCaptureMgntRadius()

G4double F04DetectorConstruction::GetCaptureMgntRadius ( )
inline

Definition at line 111 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetDegraderMaterial()

G4Material* F04DetectorConstruction::GetDegraderMaterial ( )
inline

Definition at line 130 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetDegraderPos()

G4double F04DetectorConstruction::GetDegraderPos ( )
inline

Definition at line 133 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetDegraderRadius()

G4double F04DetectorConstruction::GetDegraderRadius ( )
inline

Definition at line 131 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetDegraderThickness()

G4double F04DetectorConstruction::GetDegraderThickness ( )
inline

Definition at line 132 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetTargetAngle()

G4int F04DetectorConstruction::GetTargetAngle ( )
inline

Definition at line 128 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetTargetMaterial()

G4Material* F04DetectorConstruction::GetTargetMaterial ( )
inline

Definition at line 124 of file F04DetectorConstruction.hh.

124 {return fTargetMaterial;}
Here is the caller graph for this function:

◆ GetTargetPos()

G4double F04DetectorConstruction::GetTargetPos ( )
inline

Definition at line 127 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetTargetRadius()

G4double F04DetectorConstruction::GetTargetRadius ( )
inline

Definition at line 125 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetTargetThickness()

G4double F04DetectorConstruction::GetTargetThickness ( )
inline

Definition at line 126 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetTransferMgnt()

G4LogicalVolume* F04DetectorConstruction::GetTransferMgnt ( )
inline

Definition at line 117 of file F04DetectorConstruction.hh.

117 {return fLogicTransferMgnt;}
Here is the caller graph for this function:

◆ GetTransferMgntB()

G4double F04DetectorConstruction::GetTransferMgntB ( )
inline

Definition at line 120 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetTransferMgntCenter()

G4ThreeVector F04DetectorConstruction::GetTransferMgntCenter ( )
inline

Definition at line 122 of file F04DetectorConstruction.hh.

122 {return fTransferMgntCenter;}
Here is the caller graph for this function:

◆ GetTransferMgntLength()

G4double F04DetectorConstruction::GetTransferMgntLength ( )
inline

Definition at line 119 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetTransferMgntPos()

G4double F04DetectorConstruction::GetTransferMgntPos ( )
inline

Definition at line 121 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetTransferMgntRadius()

G4double F04DetectorConstruction::GetTransferMgntRadius ( )
inline

Definition at line 118 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetWorldMaterial()

G4Material* F04DetectorConstruction::GetWorldMaterial ( )
inline

Definition at line 106 of file F04DetectorConstruction.hh.

106 {return fWorldMaterial;}
Here is the caller graph for this function:

◆ GetWorldSizeR()

G4double F04DetectorConstruction::GetWorldSizeR ( )
inline

Definition at line 108 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetWorldSizeZ()

G4double F04DetectorConstruction::GetWorldSizeZ ( )
inline

Definition at line 107 of file F04DetectorConstruction.hh.

Here is the caller graph for this function:

◆ SetCaptureMgntB1()

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:

◆ SetCaptureMgntB2()

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:

◆ SetCaptureMgntLength()

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:

◆ SetCaptureMgntRadius()

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:

◆ SetDegraderMaterial()

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:

◆ SetDegraderPos()

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:

◆ SetDegraderRadius()

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:

◆ SetDegraderThickness()

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:

◆ SetTargetAngle()

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:

◆ SetTargetMaterial()

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:

◆ SetTargetPos()

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:

◆ SetTargetRadius()

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:

◆ SetTargetThickness()

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:

◆ SetTransferMgntB()

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:

◆ SetTransferMgntLength()

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:

◆ SetTransferMgntPos()

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:

◆ SetTransferMgntRadius()

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:

◆ SetWorldMaterial()

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:

◆ SetWorldSizeR()

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:

◆ SetWorldSizeZ()

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:

◆ StringToRotationMatrix()

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
static G4double angle[DIM]
static const double deg
Definition: G4SIunits.hh:151
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4GLOB_DLL std::ostream G4cerr
Here is the caller graph for this function:

Member Data Documentation

◆ fCaptureMgntB1

G4double F04DetectorConstruction::fCaptureMgntB1
private

Definition at line 170 of file F04DetectorConstruction.hh.

◆ fCaptureMgntB2

G4double F04DetectorConstruction::fCaptureMgntB2
private

Definition at line 171 of file F04DetectorConstruction.hh.

◆ fCaptureMgntCenter

G4ThreeVector F04DetectorConstruction::fCaptureMgntCenter
private

Definition at line 189 of file F04DetectorConstruction.hh.

◆ fCaptureMgntLength

G4double F04DetectorConstruction::fCaptureMgntLength
private

Definition at line 168 of file F04DetectorConstruction.hh.

◆ fCaptureMgntRadius

G4double F04DetectorConstruction::fCaptureMgntRadius
private

Definition at line 169 of file F04DetectorConstruction.hh.

◆ fDegraderMaterial

G4Material* F04DetectorConstruction::fDegraderMaterial
private

Definition at line 184 of file F04DetectorConstruction.hh.

◆ fDegraderPos

G4double F04DetectorConstruction::fDegraderPos
private

Definition at line 187 of file F04DetectorConstruction.hh.

◆ fDegraderRadius

G4double F04DetectorConstruction::fDegraderRadius
private

Definition at line 186 of file F04DetectorConstruction.hh.

◆ fDegraderThickness

G4double F04DetectorConstruction::fDegraderThickness
private

Definition at line 185 of file F04DetectorConstruction.hh.

◆ fDetectorMessenger

F04DetectorMessenger* F04DetectorConstruction::fDetectorMessenger
private

Definition at line 137 of file F04DetectorConstruction.hh.

◆ fFieldSetUp

G4Cache<F04GlobalField*> F04DetectorConstruction::fFieldSetUp
private

Definition at line 138 of file F04DetectorConstruction.hh.

◆ fLogicCaptureMgnt

G4LogicalVolume* F04DetectorConstruction::fLogicCaptureMgnt
private

Definition at line 157 of file F04DetectorConstruction.hh.

◆ fLogicDegrader

G4LogicalVolume* F04DetectorConstruction::fLogicDegrader
private

Definition at line 153 of file F04DetectorConstruction.hh.

◆ fLogicTarget

G4LogicalVolume* F04DetectorConstruction::fLogicTarget
private

Definition at line 149 of file F04DetectorConstruction.hh.

◆ fLogicTransferMgnt

G4LogicalVolume* F04DetectorConstruction::fLogicTransferMgnt
private

Definition at line 161 of file F04DetectorConstruction.hh.

◆ fLogicWorld

G4LogicalVolume* F04DetectorConstruction::fLogicWorld
private

Definition at line 145 of file F04DetectorConstruction.hh.

◆ fMaterials

F04Materials* F04DetectorConstruction::fMaterials
private

Definition at line 140 of file F04DetectorConstruction.hh.

◆ fPhysiCaptureMgnt

G4VPhysicalVolume* F04DetectorConstruction::fPhysiCaptureMgnt
private

Definition at line 158 of file F04DetectorConstruction.hh.

◆ fPhysiDegrader

G4VPhysicalVolume* F04DetectorConstruction::fPhysiDegrader
private

Definition at line 154 of file F04DetectorConstruction.hh.

◆ fPhysiTarget

G4VPhysicalVolume* F04DetectorConstruction::fPhysiTarget
private

Definition at line 150 of file F04DetectorConstruction.hh.

◆ fPhysiTransferMgnt

G4VPhysicalVolume* F04DetectorConstruction::fPhysiTransferMgnt
private

Definition at line 162 of file F04DetectorConstruction.hh.

◆ fPhysiWorld

G4VPhysicalVolume* F04DetectorConstruction::fPhysiWorld
private

Definition at line 146 of file F04DetectorConstruction.hh.

◆ fSolidCaptureMgnt

G4Tubs* F04DetectorConstruction::fSolidCaptureMgnt
private

Definition at line 156 of file F04DetectorConstruction.hh.

◆ fSolidDegrader

G4Tubs* F04DetectorConstruction::fSolidDegrader
private

Definition at line 152 of file F04DetectorConstruction.hh.

◆ fSolidTarget

G4Tubs* F04DetectorConstruction::fSolidTarget
private

Definition at line 148 of file F04DetectorConstruction.hh.

◆ fSolidTransferMgnt

G4Tubs* F04DetectorConstruction::fSolidTransferMgnt
private

Definition at line 160 of file F04DetectorConstruction.hh.

◆ fSolidWorld

G4Tubs* F04DetectorConstruction::fSolidWorld
private

Definition at line 144 of file F04DetectorConstruction.hh.

◆ fTargetAngle

G4int F04DetectorConstruction::fTargetAngle
private

Definition at line 182 of file F04DetectorConstruction.hh.

◆ fTargetMaterial

G4Material* F04DetectorConstruction::fTargetMaterial
private

Definition at line 178 of file F04DetectorConstruction.hh.

◆ fTargetPos

G4double F04DetectorConstruction::fTargetPos
private

Definition at line 181 of file F04DetectorConstruction.hh.

◆ fTargetRadius

G4double F04DetectorConstruction::fTargetRadius
private

Definition at line 180 of file F04DetectorConstruction.hh.

◆ fTargetThickness

G4double F04DetectorConstruction::fTargetThickness
private

Definition at line 179 of file F04DetectorConstruction.hh.

◆ fTransferMgntB

G4double F04DetectorConstruction::fTransferMgntB
private

Definition at line 175 of file F04DetectorConstruction.hh.

◆ fTransferMgntCenter

G4ThreeVector F04DetectorConstruction::fTransferMgntCenter
private

Definition at line 189 of file F04DetectorConstruction.hh.

◆ fTransferMgntLength

G4double F04DetectorConstruction::fTransferMgntLength
private

Definition at line 173 of file F04DetectorConstruction.hh.

◆ fTransferMgntPos

G4double F04DetectorConstruction::fTransferMgntPos
private

Definition at line 176 of file F04DetectorConstruction.hh.

◆ fTransferMgntRadius

G4double F04DetectorConstruction::fTransferMgntRadius
private

Definition at line 174 of file F04DetectorConstruction.hh.

◆ fVacuum

G4Material* F04DetectorConstruction::fVacuum
private

Definition at line 142 of file F04DetectorConstruction.hh.

◆ fWorldMaterial

G4Material* F04DetectorConstruction::fWorldMaterial
private

Definition at line 164 of file F04DetectorConstruction.hh.

◆ fWorldSizeR

G4double F04DetectorConstruction::fWorldSizeR
private

Definition at line 165 of file F04DetectorConstruction.hh.

◆ fWorldSizeZ

G4double F04DetectorConstruction::fWorldSizeZ
private

Definition at line 166 of file F04DetectorConstruction.hh.


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