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

#include <F03DetectorConstruction.hh>

Inheritance diagram for F03DetectorConstruction:
Collaboration diagram for F03DetectorConstruction:

Public Member Functions

 F03DetectorConstruction ()
 
virtual ~F03DetectorConstruction ()
 
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 55 of file F03DetectorConstruction.hh.

Constructor & Destructor Documentation

F03DetectorConstruction::F03DetectorConstruction ( )

Definition at line 60 of file F03DetectorConstruction.cc.

62  fDetectorMessenger(0),
63  fSolidWorld(0), fLogicWorld(0), fPhysiWorld(0),
64  fSolidAbsorber(0), fLogicAbsorber(0), fPhysiAbsorber(0),
65  fSolidRadSlice(0), fLogicRadSlice(0), fPhysiRadSlice(0),
66  fSolidRadiator(0), fLogicRadiator(0), fPhysiRadiator(0),
67  fWorldMaterial(0), fAbsorberMaterial(0), fRadiatorMat(0),
68  // default parameter values of the calorimeter
69  fWorldSizeR( 22000.*mm),
70  fWorldSizeZ( 44000.*mm),
71  fAbsorberThickness( 1.*mm),
72  fAbsorberRadius( 20000.*mm),
73  fZAbsorber( 21990.*mm),
74  fZStartAbs( 0.),
75  fZEndAbs( 0.),
76  fRadThickness( 100.*mm),
77  fGasGap( 100.*mm),
78  fDetGap( 1.*mm),
79  fFoilNumber(1)
80 {
81  fDetectorMessenger = new F03DetectorMessenger(this);
82 
83  // create materials
84 
85  DefineMaterials();
86 
87 }
static constexpr double mm
Definition: G4SIunits.hh:115
F03DetectorConstruction::~F03DetectorConstruction ( )
virtual

Definition at line 91 of file F03DetectorConstruction.cc.

92 {
93  delete fDetectorMessenger;
94 }

Member Function Documentation

G4VPhysicalVolume * F03DetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 98 of file F03DetectorConstruction.cc.

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

Reimplemented from G4VUserDetectorConstruction.

Definition at line 431 of file F03DetectorConstruction.cc.

432 {
433  // Sensitive Detectors: Absorber
434 
435  if (!fCalorimeterSD.Get()) {
436  F03CalorimeterSD* calorimeterSD = new F03CalorimeterSD("CalorSD",this);
437  fCalorimeterSD.Put(calorimeterSD);
438  }
439  G4SDManager::GetSDMpointer()->AddNewDetector(fCalorimeterSD.Get());
440  SetSensitiveDetector(fLogicAbsorber, fCalorimeterSD.Get());
441 
442  // Construct the field creator - this will register the field it creates
443 
444  if (!fEmFieldSetup.Get()) {
445  F03FieldSetup* emFieldSetup = new F03FieldSetup();
446 
447  fEmFieldSetup.Put(emFieldSetup);
448  G4AutoDelete::Register(emFieldSetup); //Kernel will delete the messenger
449  }
450  // Set local field manager and local field in radiator and its daughters:
451  G4bool allLocal = true;
452  fLogicRadiator->SetFieldManager(fEmFieldSetup.Get()->GetLocalFieldManager(),
453  allLocal );
454 }
G4FieldManager * GetLocalFieldManager()
value_type & Get() const
Definition: G4Cache.hh:282
void SetFieldManager(G4FieldManager *pFieldMgr, G4bool forceToAllDaughters)
void Register(T *inst)
Definition: G4AutoDelete.hh:65
bool G4bool
Definition: G4Types.hh:79
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* F03DetectorConstruction::GetAbsorber ( )
inline

Definition at line 94 of file F03DetectorConstruction.hh.

94 {return fPhysiAbsorber;}

Here is the caller graph for this function:

G4Material* F03DetectorConstruction::GetAbsorberMaterial ( )
inline

Definition at line 89 of file F03DetectorConstruction.hh.

89 {return fAbsorberMaterial;}
G4double F03DetectorConstruction::GetAbsorberRadius ( )
inline

Definition at line 91 of file F03DetectorConstruction.hh.

91 {return fAbsorberRadius;}

Here is the caller graph for this function:

G4double F03DetectorConstruction::GetAbsorberThickness ( )
inline

Definition at line 90 of file F03DetectorConstruction.hh.

90 {return fAbsorberThickness;}

Here is the caller graph for this function:

G4double F03DetectorConstruction::GetAbsorberZpos ( )
inline

Definition at line 85 of file F03DetectorConstruction.hh.

85 {return fZAbsorber;}

Here is the caller graph for this function:

G4LogicalVolume* F03DetectorConstruction::GetLogicalAbsorber ( )
inline

Definition at line 95 of file F03DetectorConstruction.hh.

95 {return fLogicAbsorber;}
const G4VPhysicalVolume* F03DetectorConstruction::GetPhysiWorld ( )
inline

Definition at line 93 of file F03DetectorConstruction.hh.

93 {return fPhysiWorld;}
G4Material* F03DetectorConstruction::GetWorldMaterial ( )
inline

Definition at line 81 of file F03DetectorConstruction.hh.

81 {return fWorldMaterial;}
G4double F03DetectorConstruction::GetWorldSizeR ( )
inline

Definition at line 83 of file F03DetectorConstruction.hh.

83 {return fWorldSizeR;}
G4double F03DetectorConstruction::GetWorldSizeZ ( )
inline

Definition at line 82 of file F03DetectorConstruction.hh.

82 {return fWorldSizeZ;}
G4double F03DetectorConstruction::GetZEndAbs ( )
inline

Definition at line 87 of file F03DetectorConstruction.hh.

87 {return fZEndAbs;}
G4double F03DetectorConstruction::GetZStartAbs ( )
inline

Definition at line 86 of file F03DetectorConstruction.hh.

86 {return fZStartAbs;}
void F03DetectorConstruction::PrintCalorParameters ( )

Definition at line 327 of file F03DetectorConstruction.cc.

328 {
329  G4cout << "\n The WORLD is made of "
330  << fWorldSizeZ/mm << "mm of " << fWorldMaterial->GetName();
331  G4cout << ", the transverse size (R) of the world is "
332  << fWorldSizeR/mm << " mm. " << G4endl;
333  G4cout << " The ABSORBER is made of "
334  << fAbsorberThickness/mm << "mm of " << fAbsorberMaterial->GetName();
335  G4cout << ", the transverse size (R) is " << fAbsorberRadius/mm
336  << " mm. " << G4endl;
337  G4cout << " Z position of the (middle of the) absorber "
338  << fZAbsorber/mm << " mm." << G4endl;
339  G4cout << G4endl;
340 }
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 F03DetectorConstruction::SetAbsorberMaterial ( G4String  materialChoice)

Definition at line 344 of file F03DetectorConstruction.cc.

345 {
346  // get the pointer to the material table
347  const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
348 
349  // search the material by its name
351  for (size_t j=0 ; j<theMaterialTable->size() ; j++)
352  { material = (*theMaterialTable)[j];
353  if (material->GetName() == materialChoice)
354  {
355  fAbsorberMaterial = material;
356  fLogicAbsorber->SetMaterial(material);
358  }
359  }
360 }
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 F03DetectorConstruction::SetAbsorberRadius ( G4double  val)

Definition at line 394 of file F03DetectorConstruction.cc.

395 {
396  // change the transverse size and recompute the calorimeter parameters
397  fAbsorberRadius = val;
398  ComputeCalorParameters();
400 }
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 F03DetectorConstruction::SetAbsorberThickness ( G4double  val)

Definition at line 384 of file F03DetectorConstruction.cc.

385 {
386  // change Absorber thickness and recompute the calorimeter parameters
387  fAbsorberThickness = val;
388  ComputeCalorParameters();
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 F03DetectorConstruction::SetAbsorberZpos ( G4double  val)

Definition at line 422 of file F03DetectorConstruction.cc.

423 {
424  fZAbsorber = val;
425  ComputeCalorParameters();
427 }
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 F03DetectorConstruction::SetWorldMaterial ( G4String  materialChoice)

Definition at line 364 of file F03DetectorConstruction.cc.

365 {
366  // get the pointer to the material table
367  const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
368 
369  // search the material by its name
371  for (size_t j=0 ; j<theMaterialTable->size() ; j++)
372  { material = (*theMaterialTable)[j];
373  if(material->GetName() == materialChoice)
374  {
375  fWorldMaterial = material;
376  fLogicWorld->SetMaterial(material);
378  }
379  }
380 }
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 F03DetectorConstruction::SetWorldSizeR ( G4double  val)

Definition at line 413 of file F03DetectorConstruction.cc.

414 {
415  fWorldSizeR = val;
416  ComputeCalorParameters();
418 }
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 F03DetectorConstruction::SetWorldSizeZ ( G4double  val)

Definition at line 404 of file F03DetectorConstruction.cc.

405 {
406  fWorldSizeZ = val;
407  ComputeCalorParameters();
409 }
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: