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

#include <F02DetectorConstruction.hh>

Inheritance diagram for F02DetectorConstruction:
Collaboration diagram for F02DetectorConstruction:

Public Member Functions

 F02DetectorConstruction ()
 
virtual ~F02DetectorConstruction ()
 
void SetAbsorberMaterial (G4String)
 
void SetAbsorberThickness (G4double)
 
void SetAbsorberRadius (G4double)
 
void SetAbsorberZpos (G4double)
 
void SetWorldMaterial (G4String)
 
void SetWorldSizeZ (G4double)
 
void SetWorldSizeR (G4double)
 
virtual G4VPhysicalVolume * Construct ()
 
virtual void ConstructSDandField ()
 
void PrintCalorParameters ()
 
G4Material * GetWorldMaterial ()
 
G4double GetWorldSizeZ ()
 
G4double GetWorldSizeR ()
 
G4double GetAbsorberZpos ()
 
G4double GetZStartAbs ()
 
G4double GetZEndAbs ()
 
G4Material * GetAbsorberMaterial ()
 
G4double GetAbsorberThickness ()
 
G4double GetAbsorberRadius ()
 
const G4VPhysicalVolume * GetPhysiWorld ()
 
const G4VPhysicalVolume * GetAbsorber ()
 
G4LogicalVolume * GetLogicalAbsorber ()
 
- 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
 
G4VUserParallelWorld * GetParallelWorld (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 56 of file F02DetectorConstruction.hh.

Constructor & Destructor Documentation

F02DetectorConstruction::F02DetectorConstruction ( )

Definition at line 60 of file F02DetectorConstruction.cc.

62  fDetectorMessenger(0),
63  fSolidWorld(0), fLogicWorld(0), fPhysiWorld(0),
64  fSolidAbsorber(0),fLogicAbsorber(0), fPhysiAbsorber(0),
65  fAbsorberMaterial(0), fAbsorberThickness(0.), fAbsorberRadius(0.),
66  fWorldChanged(false), fZAbsorber(0.), fZStartAbs(0.), fZEndAbs(0.),
67  fWorldMaterial(0), fWorldSizeR(0.), fWorldSizeZ(0.)
68 {
69  // default parameter values of the calorimeter
70 
71  fWorldSizeZ = 80.*cm;
72  fWorldSizeR = 20.*cm;
73 
74  fAbsorberThickness = 40.0*mm;
75 
76  fAbsorberRadius = 10.*cm;
77  fZAbsorber = 36.*cm;
78 
79  // create commands for interactive definition of the calorimeter
80 
81  fDetectorMessenger = new F02DetectorMessenger(this);
82 
83  // create materials
84 
85  DefineMaterials();
86 
87 }
static constexpr double mm
Definition: G4SIunits.hh:115
static constexpr double cm
Definition: G4SIunits.hh:119
F02DetectorConstruction::~F02DetectorConstruction ( )
virtual

Definition at line 91 of file F02DetectorConstruction.cc.

92 {
93  delete fDetectorMessenger;
94 }

Member Function Documentation

G4VPhysicalVolume * F02DetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 98 of file F02DetectorConstruction.cc.

99 {
100  return ConstructCalorimeter();
101 }
void F02DetectorConstruction::ConstructSDandField ( )
virtual

Reimplemented from G4VUserDetectorConstruction.

Definition at line 384 of file F02DetectorConstruction.cc.

385 {
386  // Sensitive Detectors: Absorber
387 
388  if (!fCalorimeterSD.Get()) {
389  F02CalorimeterSD* calorimeterSD = new F02CalorimeterSD("CalorSD",this);
390  fCalorimeterSD.Put(calorimeterSD);
391  }
392  G4SDManager::GetSDMpointer()->AddNewDetector(fCalorimeterSD.Get());
393  SetSensitiveDetector(fLogicAbsorber, fCalorimeterSD.Get());
394 
395  // Construct the field creator - this will register the field it creates
396 
397  if (!fEmFieldSetup.Get()) {
398  F02ElectricFieldSetup* fieldSetup = new F02ElectricFieldSetup();
399  G4AutoDelete::Register(fieldSetup); //Kernel will delete the messenger
400  fEmFieldSetup.Put(fieldSetup);
401  }
402 }
value_type & Get() const
Definition: G4Cache.hh:282
void Register(T *inst)
Definition: G4AutoDelete.hh:65
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void AddNewDetector(G4VSensitiveDetector *aSD)
Definition: G4SDManager.cc:71
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:40
void Put(const value_type &val) const
Definition: G4Cache.hh:286

Here is the call graph for this function:

const G4VPhysicalVolume* F02DetectorConstruction::GetAbsorber ( )
inline

Definition at line 95 of file F02DetectorConstruction.hh.

95 {return fPhysiAbsorber;}

Here is the caller graph for this function:

G4Material* F02DetectorConstruction::GetAbsorberMaterial ( )
inline

Definition at line 90 of file F02DetectorConstruction.hh.

90 {return fAbsorberMaterial;}
G4double F02DetectorConstruction::GetAbsorberRadius ( )
inline

Definition at line 92 of file F02DetectorConstruction.hh.

92 {return fAbsorberRadius;}

Here is the caller graph for this function:

G4double F02DetectorConstruction::GetAbsorberThickness ( )
inline

Definition at line 91 of file F02DetectorConstruction.hh.

91 {return fAbsorberThickness;}
G4double F02DetectorConstruction::GetAbsorberZpos ( )
inline

Definition at line 86 of file F02DetectorConstruction.hh.

86 {return fZAbsorber;}
G4LogicalVolume* F02DetectorConstruction::GetLogicalAbsorber ( )
inline

Definition at line 96 of file F02DetectorConstruction.hh.

96 {return fLogicAbsorber;}
const G4VPhysicalVolume* F02DetectorConstruction::GetPhysiWorld ( )
inline

Definition at line 94 of file F02DetectorConstruction.hh.

94 {return fPhysiWorld;}
G4Material* F02DetectorConstruction::GetWorldMaterial ( )
inline

Definition at line 82 of file F02DetectorConstruction.hh.

82 {return fWorldMaterial;}
G4double F02DetectorConstruction::GetWorldSizeR ( )
inline

Definition at line 84 of file F02DetectorConstruction.hh.

84 {return fWorldSizeR;}
G4double F02DetectorConstruction::GetWorldSizeZ ( )
inline

Definition at line 83 of file F02DetectorConstruction.hh.

83 {return fWorldSizeZ;}
G4double F02DetectorConstruction::GetZEndAbs ( )
inline

Definition at line 88 of file F02DetectorConstruction.hh.

88 {return fZEndAbs;}
G4double F02DetectorConstruction::GetZStartAbs ( )
inline

Definition at line 87 of file F02DetectorConstruction.hh.

87 {return fZStartAbs;}
void F02DetectorConstruction::PrintCalorParameters ( )

Definition at line 278 of file F02DetectorConstruction.cc.

279 {
280  G4cout << "\n The WORLD is made of "
281  << fWorldSizeZ/mm << "mm of " << fWorldMaterial->GetName();
282  G4cout << ", the transverse size (R) of the world is "
283  << fWorldSizeR/mm << " mm. " << G4endl;
284  G4cout << " The ABSORBER is made of "
285  << fAbsorberThickness/mm << "mm of " << fAbsorberMaterial->GetName();
286  G4cout << ", the transverse size (R) is " << fAbsorberRadius/mm
287  << " mm. " << G4endl;
288  G4cout << " Z position of the (middle of the) absorber "
289  << fZAbsorber/mm << " mm." << G4endl;
290  G4cout << G4endl;
291 }
static constexpr double mm
Definition: G4SIunits.hh:115
const G4String & GetName() const
Definition: G4Material.hh:178
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

void F02DetectorConstruction::SetAbsorberMaterial ( G4String  materialChoice)

Definition at line 295 of file F02DetectorConstruction.cc.

296 {
297  // get the pointer to the material table
298  const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
299 
300  // search the material by its name
302  for (size_t j=0 ; j<theMaterialTable->size() ; j++)
303  { material = (*theMaterialTable)[j];
304  if (material->GetName() == materialChoice)
305  {
306  fAbsorberMaterial = material;
307  fLogicAbsorber->SetMaterial(material);
309  }
310  }
311 }
const G4String & GetName() const
Definition: G4Material.hh:178
static G4MaterialTable * GetMaterialTable()
Definition: G4Material.cc:587
std::vector< G4Material * > G4MaterialTable
string material
Definition: eplot.py:19
void PhysicsHasBeenModified()
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
void SetMaterial(G4Material *pMaterial)

Here is the call graph for this function:

Here is the caller graph for this function:

void F02DetectorConstruction::SetAbsorberRadius ( G4double  val)

Definition at line 345 of file F02DetectorConstruction.cc.

346 {
347  // change the transverse size and recompute the calorimeter parameters
348  fAbsorberRadius = val;
349  ComputeCalorParameters();
351 }
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 F02DetectorConstruction::SetAbsorberThickness ( G4double  val)

Definition at line 335 of file F02DetectorConstruction.cc.

336 {
337  // change Absorber thickness and recompute the calorimeter parameters
338  fAbsorberThickness = val;
339  ComputeCalorParameters();
341 }
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 F02DetectorConstruction::SetAbsorberZpos ( G4double  val)

Definition at line 375 of file F02DetectorConstruction.cc.

376 {
377  fZAbsorber = val;
378  ComputeCalorParameters();
380 }
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 F02DetectorConstruction::SetWorldMaterial ( G4String  materialChoice)

Definition at line 315 of file F02DetectorConstruction.cc.

316 {
317  // get the pointer to the material table
318  const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
319 
320  // search the material by its name
322  for (size_t j=0 ; j<theMaterialTable->size() ; j++)
323  { material = (*theMaterialTable)[j];
324  if(material->GetName() == materialChoice)
325  {
326  fWorldMaterial = material;
327  fLogicWorld->SetMaterial(material);
329  }
330  }
331 }
const G4String & GetName() const
Definition: G4Material.hh:178
static G4MaterialTable * GetMaterialTable()
Definition: G4Material.cc:587
std::vector< G4Material * > G4MaterialTable
string material
Definition: eplot.py:19
void PhysicsHasBeenModified()
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
void SetMaterial(G4Material *pMaterial)

Here is the call graph for this function:

Here is the caller graph for this function:

void F02DetectorConstruction::SetWorldSizeR ( G4double  val)

Definition at line 365 of file F02DetectorConstruction.cc.

366 {
367  fWorldChanged = true;
368  fWorldSizeR = val;
369  ComputeCalorParameters();
371 }
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 F02DetectorConstruction::SetWorldSizeZ ( G4double  val)

Definition at line 355 of file F02DetectorConstruction.cc.

356 {
357  fWorldChanged = true;
358  fWorldSizeZ = val;
359  ComputeCalorParameters();
361 }
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:


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