Geant4  10.03.p02
 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 G4VPhysicalVolumeConstruct ()
 
virtual void ConstructSDandField ()
 
void PrintCalorParameters ()
 
G4MaterialGetWorldMaterial ()
 
G4double GetWorldSizeZ ()
 
G4double GetWorldSizeR ()
 
G4double GetAbsorberZpos ()
 
G4double GetZStartAbs ()
 
G4double GetZEndAbs ()
 
G4MaterialGetAbsorberMaterial ()
 
G4double GetAbsorberThickness ()
 
G4double GetAbsorberRadius ()
 
const G4VPhysicalVolumeGetPhysiWorld ()
 
const G4VPhysicalVolumeGetAbsorber ()
 
G4LogicalVolumeGetLogicalAbsorber ()
 
- 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 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: