Geant4  10.02.p03
XrayFluoMercuryDetectorConstruction Class Reference

#include <XrayFluoMercuryDetectorConstruction.hh>

Inheritance diagram for XrayFluoMercuryDetectorConstruction:
Collaboration diagram for XrayFluoMercuryDetectorConstruction:

Public Member Functions

 ~XrayFluoMercuryDetectorConstruction ()
 
G4VPhysicalVolumeConstruct ()
 
void ConstructSDandField ()
 
void UpdateGeometry ()
 
void SetMercuryMaterial (G4String newMaterial)
 
void SetDetectorType (G4String type)
 
void SetOribitHeight (G4double size)
 
void SetLatitude (G4double lat)
 
void PrintApparateParameters ()
 
XrayFluoVDetectorTypeGetDetectorType () const
 
G4double GetWorldSizeZ () const
 
G4double GetWorldSizeXY () const
 
G4double GetDeviceThickness () const
 
G4double GetDeviceSizeX () const
 
G4double GetDeviceSizeY () const
 
G4double GetPixelSizeXY () const
 
G4double GetContactSizeXY () const
 
G4int GetNbOfPixels () const
 
G4int GetNbOfPixelRows () const
 
G4int GetNbOfPixelColumns () const
 
G4MaterialGetOhmicPosMaterial () const
 
G4double GetOhmicPosThickness () const
 
G4MaterialGetOhmicNegMaterial () const
 
G4double GetOhmicNegThickness () const
 
const G4VPhysicalVolumeGetphysiWorld () const
 
const G4VPhysicalVolumeGetHPGe () const
 
const G4VPhysicalVolumeGetMercury () const
 
const G4VPhysicalVolumeGetphysiPixel () const
 
const G4VPhysicalVolumeGetOhmicPos () const
 
const G4VPhysicalVolumeGetOhmicNeg () const
 
const G4VPhysicalVolumeGetOptic () const
 
G4MaterialGetMercuryMaterial () const
 
G4MaterialGetPixelMaterial () const
 
G4double GetMercuryDia () const
 
G4double GetSunDia () const
 
G4double GetOrbitInclination () const
 
G4double GetOrbitDistance () const
 
G4double GetOpticAperture () const
 
- 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 XrayFluoMercuryDetectorConstructionGetInstance ()
 

Private Member Functions

 XrayFluoMercuryDetectorConstruction ()
 
void DefineDefaultMaterials ()
 
G4VPhysicalVolumeConstructApparate ()
 
void ComputeApparateParameters ()
 

Private Attributes

XrayFluoVDetectorTypedetectorType
 
G4bool mercuryGranularity
 
G4double DeviceSizeX
 
G4double DeviceSizeY
 
G4double DeviceThickness
 
G4BoxsolidWorld
 
G4LogicalVolumelogicWorld
 
G4VPhysicalVolumephysiWorld
 
G4BoxsolidHPGe
 
G4LogicalVolumelogicHPGe
 
G4VPhysicalVolumephysiHPGe
 
G4BoxsolidScreen
 
G4LogicalVolumelogicScreen
 
G4VPhysicalVolumephysiScreen
 
G4SpheresolidMercury
 
G4LogicalVolumelogicMercury
 
G4VPhysicalVolumephysiMercury
 
G4BoxsolidOhmicPos
 
G4LogicalVolumelogicOhmicPos
 
G4VPhysicalVolumephysiOhmicPos
 
G4BoxsolidOhmicNeg
 
G4LogicalVolumelogicOhmicNeg
 
G4VPhysicalVolumephysiOhmicNeg
 
G4BoxsolidPixel
 
G4LogicalVolumelogicPixel
 
G4VPhysicalVolumephysiPixel
 
G4TubssolidOptic
 
G4LogicalVolumelogicOptic
 
G4VPhysicalVolumephysiOptic
 
G4LogicalVolumelogicGrain
 
XrayFluoNistMaterialsmaterials
 
G4MaterialscreenMaterial
 
G4MaterialOhmicPosMaterial
 
G4MaterialOhmicNegMaterial
 
G4MaterialpixelMaterial
 
G4MaterialmercuryMaterial
 
G4MaterialdefaultMaterial
 
G4double OhmicPosThickness
 
G4double OhmicNegThickness
 
G4double opticDia
 
G4double opticThickness
 
G4double screenSizeXY
 
G4double screenThickness
 
G4int PixelCopyNb
 
G4int grainCopyNb
 
G4int NbOfPixels
 
G4int NbOfPixelRows
 
G4int NbOfPixelColumns
 
G4double PixelThickness
 
G4double PixelSizeXY
 
G4double ContactSizeXY
 
G4double opticAperture
 
G4double mercuryDia
 
G4double sunDia
 
G4double mercurySunDistance
 
G4double ThetaHPGe
 
G4double distDe
 
G4double distScreen
 
G4double distOptic
 
G4double PhiHPGe
 
G4RotationMatrix zRotPhiHPGe
 
G4double WorldSizeXY
 
G4double WorldSizeZ
 
XrayFluoMercuryDetectorMessengerdetectorMessenger
 
G4Cache< XrayFluoSD * > HPGeSD
 

Static Private Attributes

static XrayFluoMercuryDetectorConstructioninstance = 0
 

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 64 of file XrayFluoMercuryDetectorConstruction.hh.

Constructor & Destructor Documentation

◆ ~XrayFluoMercuryDetectorConstruction()

XrayFluoMercuryDetectorConstruction::~XrayFluoMercuryDetectorConstruction ( )

Definition at line 175 of file XrayFluoMercuryDetectorConstruction.cc.

177 {
178  delete detectorMessenger;
179  delete detectorType;
180  G4cout << "XrayFluoMercuryDetectorConstruction deleted" << G4endl;
181 }
G4GLOB_DLL std::ostream G4cout
XrayFluoMercuryDetectorMessenger * detectorMessenger
#define G4endl
Definition: G4ios.hh:61

◆ XrayFluoMercuryDetectorConstruction()

XrayFluoMercuryDetectorConstruction::XrayFluoMercuryDetectorConstruction ( )
private

!!

Definition at line 66 of file XrayFluoMercuryDetectorConstruction.cc.

70  solidHPGe(0),logicHPGe(0),physiHPGe(0),
79 
80 {
82 
84 
85  NbOfPixelRows = 1; // should be 1
86  NbOfPixelColumns = 1; // should be 1
88  PixelSizeXY = std::sqrt(40.) * mm *0.5e6; // should be std::sqrt(40) * mm
89  PixelThickness = 3.5 * mm * 1e6; //should be 3.5 mm
90 
91  G4cout << "PixelThickness(mm): "<< PixelThickness/mm << G4endl;
92  G4cout << "PixelSizeXY(cm): "<< PixelSizeXY/cm << G4endl;
93 
94  ContactSizeXY = std::sqrt(40.) * mm * 0.5e6; //should be the same as PixelSize or lower
95 
96  mercuryDia = 2 * 4880 * km ;
97  sunDia = 1390000 * km ;
98  mercurySunDistance = 57910000 * km ;
99 
100 
101  OhmicNegThickness = 0.005*mm *0.5e6 ;
102  OhmicPosThickness = 0.005*mm *0.5e6 ;
103 
104  screenThickness = 5 * mm *0.5e6;
105 
106  ThetaHPGe = 135. * deg ;
107  PhiHPGe = 225. * deg ;
108 
109 
110  distDe = (mercuryDia/2 + 400 * km);
111 
113 
114  distOptic = distDe - 1.*m * 1e5;
115 
116  opticThickness = 1.* cm *0.5e6;
117  opticDia = 21. * cm *0.5e6;
118  opticAperture = 1. * deg;
119 
120  PixelCopyNb=0;
121  grainCopyNb=0;
122  G4String defaultDetectorType = "sili";
124  SetDetectorType(defaultDetectorType);
125 
126  // create commands for interactive definition of the apparate
127 
129  G4cout << "XrayFluoMercuryDetectorConstruction created" << G4endl;
130 }
static const double cm
Definition: G4SIunits.hh:118
static XrayFluoNistMaterials * GetInstance()
G4GLOB_DLL std::ostream G4cout
static const double deg
Definition: G4SIunits.hh:151
XrayFluoMercuryDetectorMessenger * detectorMessenger
static const double km
Definition: G4SIunits.hh:132
#define G4endl
Definition: G4ios.hh:61
static const double m
Definition: G4SIunits.hh:128
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ ComputeApparateParameters()

void XrayFluoMercuryDetectorConstruction::ComputeApparateParameters ( )
inlineprivate

G4cout << "DeviceThickness(cm): "<< DeviceThickness/CLHEPcm << G4endl;

Definition at line 266 of file XrayFluoMercuryDetectorConstruction.hh.

267 {
268  // Compute derived parameters of the apparate
269 
271 
273 
276 
278 
279  G4cout << "DeviceSizeX(cm): "<< DeviceSizeX/CLHEP::cm <<G4endl;
280  G4cout << "DeviceSizeY(cm): "<< DeviceSizeY/CLHEP::cm << G4endl;
281 
282  //*********************************************************************
283  //** Astronomical distances reduce by a factor 10^-7 due to G4 Bug **
284  //*********************************************************************
285 
287  WorldSizeXY = (2 * distDe) + 2000 * CLHEP::km ;
288  //WorldSizeZ = WorldSizeXY;
289 }
static const double cm
Definition: SystemOfUnits.h:98
G4GLOB_DLL std::ostream G4cout
static const double km
#define G4endl
Definition: G4ios.hh:61
Here is the caller graph for this function:

◆ Construct()

G4VPhysicalVolume * XrayFluoMercuryDetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 185 of file XrayFluoMercuryDetectorConstruction.cc.

186 {
187  return ConstructApparate();
188 }
Here is the call graph for this function:

◆ ConstructApparate()

G4VPhysicalVolume * XrayFluoMercuryDetectorConstruction::ConstructApparate ( )
private

Definition at line 209 of file XrayFluoMercuryDetectorConstruction.cc.

210 {
211  // complete the apparate parameters definition
212 
214 
215  //world
216 
217  solidWorld = new G4Box("World", //its name
218  WorldSizeXY/2,WorldSizeXY/2,WorldSizeZ/2); //its size
219 
220  logicWorld = new G4LogicalVolume(solidWorld, //its solid
221  defaultMaterial, //its material
222  "World"); //its name
223  physiWorld = new G4PVPlacement(0, //no rotation
224  G4ThreeVector(), //at (0,0,0)
225  "World", //its name
226  logicWorld, //its logical volume
227  0, //its mother volume
228  false, //no boolean operation
229  0); //copy number
230 
231  //detector
232 
233  solidHPGe = 0; physiHPGe = 0; logicHPGe=0;
235 
236  if (DeviceThickness > 0.)
237  {
238  solidHPGe = new G4Box("HPGeDetector", //its name
240 
241 
242  logicHPGe = new G4LogicalVolume(solidHPGe, //its solid
243  defaultMaterial, //its material
244  "HPGeDetector"); //its name
245 
247  G4double x,y,z;
248 
249  z = distDe * std::cos(ThetaHPGe);
250  y = distScreen * std::sin(ThetaHPGe);
251  x = 0.*cm;
252 
254  "HPGeDetector", //its name
255  logicHPGe, //its logical volume
256  physiWorld, //its mother volume
257  false, //no boolean operation
258  0); //copy number
259  }
260  // Pixel
261 
262 
263 
264 
265  for ( G4int j=0; j < NbOfPixelColumns ; j++ )
266  { for ( G4int i=0; i < NbOfPixelRows ; i++ )
267  {
269  if (PixelThickness > 0.)
270  solidPixel = new G4Box("Pixel",
272 
274  pixelMaterial, //its material
275  "Pixel"); //its name
276 
277  /*
278  zRotPhiHPGe.rotateX(PhiHPGe);
279  G4double x,y,z;
280  z = distDe * std::cos(ThetaHPGe);
281  y =distDe * std::sin(ThetaHPGe);
282  x = 0.*cm;*/
283  physiPixel = new G4PVPlacement(0,
284  G4ThreeVector(0,
285  i*PixelSizeXY,
286  j*PixelSizeXY ),
287  "Pixel",
288  logicPixel, //its logical volume
289  physiHPGe, //its mother volume
290  false, //no boolean operation
291  PixelCopyNb);//copy number
292 
293 
294 
295 
296 
297 
298  // OhmicNeg
299 
301 
302  if (OhmicNegThickness > 0.)
303  { solidOhmicNeg = new G4Box("OhmicNeg", //its name
305 
306  logicOhmicNeg = new G4LogicalVolume(solidOhmicNeg, //its solid
307  OhmicNegMaterial, //its material
308  "OhmicNeg"); //its name
309 
312  (0.,
313  0.,
315  "OhmicNeg", //its name
316  logicOhmicNeg, //its logical volume
317  physiHPGe, //its mother
318  false, //no boulean operat
319  PixelCopyNb); //copy number
320 
321  }
322  // OhmicPos
324 
325  if (OhmicPosThickness > 0.)
326  { solidOhmicPos = new G4Box("OhmicPos", //its name
328 
329  logicOhmicPos = new G4LogicalVolume(solidOhmicPos, //its solid
330  OhmicPosMaterial, //its material
331  "OhmicPos"); //its name
332 
333  physiOhmicPos = new G4PVPlacement(0,
334  G4ThreeVector(0.,
335  0.,
337  "OhmicPos",
339  physiHPGe,
340  false,
341  PixelCopyNb);
342 
343  }
344 
346  G4cout << "PixelCopyNb: " << PixelCopyNb << G4endl;
347  }
348 
349  }
350 
351  // Optics
352 
353  if (DeviceThickness > 0.)
354  {
355  solidOptic = new G4Tubs("DetectorOptic", //its name
356  0.,opticDia/2, opticThickness, 0.,2.*pi);//size
357 
358 
359  logicOptic = new G4LogicalVolume(solidOptic, //its solid
360  defaultMaterial, //its material
361  "DetectorOptic"); //its name
362 
363  //zRotPhiHPGe.rotateX(PhiHPGe);
364  G4double x,y,z;
365  z = distOptic * std::cos(ThetaHPGe);
366  y = distOptic * std::sin(ThetaHPGe);
367  x = 0.*cm;
369  "DetectorOptic", //its name
370  logicOptic, //its logical volume
371  physiWorld, //its mother volume
372  false, //no boolean operation
373  0); //copy number
374  }
375 
376 
377  // Screen
378 
379  if (DeviceThickness > 0.)
380  {
381  solidScreen = new G4Box("DetectorScreen", //its name
383 
384 
385  logicScreen = new G4LogicalVolume(solidScreen, //its solid
386  defaultMaterial, //its material
387  "DetectorScreen"); //its name
388 
389  //zRotPhiHPGe.rotateX(PhiHPGe);
390  G4double x,y,z;
391  G4cout << "distScreen: "<< distScreen/m <<G4endl;
392  z = distScreen * std::cos(ThetaHPGe);
393  y = distScreen * std::sin(ThetaHPGe);
394  x = 0.*cm;
396  "DetectorScreen", //its name
397  logicScreen, //its logical volume
398  physiWorld, //its mother volume
399  false, //no boolean operation
400  0); //copy number
401  }
402 
403  //Mercury
404 
405 
407  if (mercuryDia > 0.)
408  {
409 
410 
411 
412 
413 
414 
415  solidMercury = new G4Sphere("Mercury",0.,mercuryDia/2., 0., twopi, 0., pi);
416 
417  logicMercury= new G4LogicalVolume(solidMercury, //its solid
418  mercuryMaterial, //its material
419  "Mercury"); //its name
420 
421  physiMercury = new G4PVPlacement(0, //no rotation
422  G4ThreeVector(), //at (0,0,0)
423  "Mercury", //its name
424  logicMercury, //its logical volume
425  physiWorld, //its mother volume
426  false, //no boolean operation
427  0); //copy number
428 
429  }
430 
431 
432  // Visualization attributes
433 
434 
436  G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0));
437  G4VisAttributes * yellow= new G4VisAttributes( G4Colour(255/255. ,255/255. ,51/255. ));
438  G4VisAttributes * red= new G4VisAttributes( G4Colour(255/255. , 0/255. , 0/255. ));
439  G4VisAttributes * blue= new G4VisAttributes( G4Colour(0/255. , 0/255. , 255/255. ));
440  G4VisAttributes * grayc= new G4VisAttributes( G4Colour(128/255. , 128/255. , 128/255. ));
441  G4VisAttributes * darkGray= new G4VisAttributes( G4Colour(95/255. , 95/255. , 95/255. ));
442  //G4VisAttributes * green= new G4VisAttributes( G4Colour(25/255. , 255/255. , 25/255. ));
443  yellow->SetVisibility(true);
444  yellow->SetForceSolid(true);
445  red->SetVisibility(true);
446  red->SetForceSolid(true);
447  blue->SetVisibility(true);
448  grayc->SetVisibility(true);
449  grayc->SetForceSolid(true);
450  simpleBoxVisAtt->SetVisibility(true);
451 
452  //logicWorld->SetVisAttributes (simpleBoxVisAtt);
453 
456 
457  logicMercury->SetVisAttributes(darkGray);
458 
459 
464 
465 
467 
468  //always return the physical World
469 
471 
472  return physiWorld;
473 }
static const double cm
Definition: G4SIunits.hh:118
Definition: test07.cc:36
CLHEP::Hep3Vector G4ThreeVector
HepRotation & rotateX(double delta)
Definition: Rotation.cc:66
Definition: G4Box.hh:64
void SetVisibility(G4bool)
Definition: G4Tubs.hh:85
void SetForceSolid(G4bool)
Definition: test07.cc:36
Definition: test07.cc:36
int G4int
Definition: G4Types.hh:78
Double_t y
G4GLOB_DLL std::ostream G4cout
static const double twopi
Definition: G4SIunits.hh:75
HepGeom::Transform3D G4Transform3D
static const double pi
Definition: G4SIunits.hh:74
static const G4VisAttributes Invisible
#define G4endl
Definition: G4ios.hh:61
static const double m
Definition: G4SIunits.hh:128
double G4double
Definition: G4Types.hh:76
void SetVisAttributes(const G4VisAttributes *pVA)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConstructSDandField()

void XrayFluoMercuryDetectorConstruction::ConstructSDandField ( )
virtual

Reimplemented from G4VUserDetectorConstruction.

Definition at line 477 of file XrayFluoMercuryDetectorConstruction.cc.

478 {
479  //
480  // Sensitive Detectors
481  //
482  if (HPGeSD.Get() == 0)
483  {
484  XrayFluoSD* SD = new XrayFluoSD ("HPGeSD",this);
485  HPGeSD.Put( SD );
486  }
487 
488  if (logicPixel)
490 }
void Put(const value_type &val) const
Definition: G4Cache.hh:286
value_type & Get() const
Definition: G4Cache.hh:282
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
Here is the call graph for this function:

◆ DefineDefaultMaterials()

void XrayFluoMercuryDetectorConstruction::DefineDefaultMaterials ( )
private

Definition at line 191 of file XrayFluoMercuryDetectorConstruction.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetContactSizeXY()

G4double XrayFluoMercuryDetectorConstruction::GetContactSizeXY ( ) const
inline

◆ GetDetectorType()

XrayFluoVDetectorType * XrayFluoMercuryDetectorConstruction::GetDetectorType ( ) const

Definition at line 168 of file XrayFluoMercuryDetectorConstruction.cc.

169 {
170  return detectorType;
171 }
Here is the caller graph for this function:

◆ GetDeviceSizeX()

G4double XrayFluoMercuryDetectorConstruction::GetDeviceSizeX ( ) const
inline

◆ GetDeviceSizeY()

G4double XrayFluoMercuryDetectorConstruction::GetDeviceSizeY ( ) const
inline

◆ GetDeviceThickness()

G4double XrayFluoMercuryDetectorConstruction::GetDeviceThickness ( ) const
inline

◆ GetHPGe()

const G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::GetHPGe ( ) const
inline

◆ GetInstance()

XrayFluoMercuryDetectorConstruction * XrayFluoMercuryDetectorConstruction::GetInstance ( void  )
static

Definition at line 136 of file XrayFluoMercuryDetectorConstruction.cc.

137 {
138  if (instance == 0)
139  {
141 
142  }
143  return instance;
144 }
static XrayFluoMercuryDetectorConstruction * instance
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMercury()

const G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::GetMercury ( ) const
inline

◆ GetMercuryDia()

G4double XrayFluoMercuryDetectorConstruction::GetMercuryDia ( ) const
inline

Definition at line 243 of file XrayFluoMercuryDetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetMercuryMaterial()

G4Material* XrayFluoMercuryDetectorConstruction::GetMercuryMaterial ( ) const
inline

◆ GetNbOfPixelColumns()

G4int XrayFluoMercuryDetectorConstruction::GetNbOfPixelColumns ( ) const
inline

◆ GetNbOfPixelRows()

G4int XrayFluoMercuryDetectorConstruction::GetNbOfPixelRows ( ) const
inline

◆ GetNbOfPixels()

G4int XrayFluoMercuryDetectorConstruction::GetNbOfPixels ( ) const
inline

Definition at line 105 of file XrayFluoMercuryDetectorConstruction.hh.

105 {return NbOfPixels;}; //mandatory for XrayFluoSD
Here is the caller graph for this function:

◆ GetOhmicNeg()

const G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::GetOhmicNeg ( ) const
inline

◆ GetOhmicNegMaterial()

G4Material* XrayFluoMercuryDetectorConstruction::GetOhmicNegMaterial ( ) const
inline

◆ GetOhmicNegThickness()

G4double XrayFluoMercuryDetectorConstruction::GetOhmicNegThickness ( ) const
inline

◆ GetOhmicPos()

const G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::GetOhmicPos ( ) const
inline

◆ GetOhmicPosMaterial()

G4Material* XrayFluoMercuryDetectorConstruction::GetOhmicPosMaterial ( ) const
inline

◆ GetOhmicPosThickness()

G4double XrayFluoMercuryDetectorConstruction::GetOhmicPosThickness ( ) const
inline

◆ GetOptic()

const G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::GetOptic ( ) const
inline

Definition at line 123 of file XrayFluoMercuryDetectorConstruction.hh.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetOpticAperture()

G4double XrayFluoMercuryDetectorConstruction::GetOpticAperture ( ) const
inline

Definition at line 250 of file XrayFluoMercuryDetectorConstruction.hh.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetOrbitDistance()

G4double XrayFluoMercuryDetectorConstruction::GetOrbitDistance ( ) const
inline

◆ GetOrbitInclination()

G4double XrayFluoMercuryDetectorConstruction::GetOrbitInclination ( ) const
inline

Definition at line 248 of file XrayFluoMercuryDetectorConstruction.hh.

248 {return 180 * CLHEP::deg - ThetaHPGe;};
static const double deg
Here is the caller graph for this function:

◆ GetphysiPixel()

const G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::GetphysiPixel ( ) const
inline

◆ GetphysiWorld()

const G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::GetphysiWorld ( ) const
inline

◆ GetPixelMaterial()

G4Material* XrayFluoMercuryDetectorConstruction::GetPixelMaterial ( ) const
inline

◆ GetPixelSizeXY()

G4double XrayFluoMercuryDetectorConstruction::GetPixelSizeXY ( ) const
inline

◆ GetSunDia()

G4double XrayFluoMercuryDetectorConstruction::GetSunDia ( ) const
inline

Definition at line 244 of file XrayFluoMercuryDetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetWorldSizeXY()

G4double XrayFluoMercuryDetectorConstruction::GetWorldSizeXY ( ) const
inline

◆ GetWorldSizeZ()

G4double XrayFluoMercuryDetectorConstruction::GetWorldSizeZ ( ) const
inline

Definition at line 96 of file XrayFluoMercuryDetectorConstruction.hh.

Here is the caller graph for this function:

◆ PrintApparateParameters()

void XrayFluoMercuryDetectorConstruction::PrintApparateParameters ( )

Definition at line 494 of file XrayFluoMercuryDetectorConstruction.cc.

495 {
496  G4cout << "-----------------------------------------------------------------------"
497  << G4endl
498  << "The mercury is a sphere whose diamter is: "
499  << G4endl
500  << mercuryDia/km
501  << " Km "
502  << G4endl
503  <<" Material: " << logicMercury->GetMaterial()->GetName()
504  <<G4endl
505  <<"The Detector is a slice " << DeviceThickness/(1.e-6*m)
506  << " micron thick of " << pixelMaterial->GetName()<<G4endl
507  <<"-------------------------------------------------------------------------"
508  << G4endl;
509 }
G4Material * GetMaterial() const
G4GLOB_DLL std::ostream G4cout
static const double km
Definition: G4SIunits.hh:132
#define G4endl
Definition: G4ios.hh:61
static const double m
Definition: G4SIunits.hh:128
const G4String & GetName() const
Definition: G4Material.hh:178
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetDetectorType()

void XrayFluoMercuryDetectorConstruction::SetDetectorType ( G4String  type)

Definition at line 146 of file XrayFluoMercuryDetectorConstruction.cc.

147 {
148 
149  if (type=="sili")
150  {
152  }
153  else if (type=="hpge")
154  {
156  }
157  else
158  {
160  execp << type + "detector type unknown";
161  G4Exception("XrayFluoMercuryDetectorConstruction::SetDetectorType()","example-xray_fluorescence05",
162  FatalException, execp);
163  }
164 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
static XrayFluoSiLiDetectorType * GetInstance()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static XrayFluoHPGeDetectorType * GetInstance()
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetLatitude()

void XrayFluoMercuryDetectorConstruction::SetLatitude ( G4double  lat)
inline

Definition at line 88 of file XrayFluoMercuryDetectorConstruction.hh.

89  {ThetaHPGe = 180.* CLHEP::deg - lat;};
static const double deg
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetMercuryMaterial()

void XrayFluoMercuryDetectorConstruction::SetMercuryMaterial ( G4String  newMaterial)

Definition at line 530 of file XrayFluoMercuryDetectorConstruction.cc.

531 {
532  G4cout << "New Mercury Material: " << newMaterial << G4endl;
535  //GeometryHasBeenModified is called by the messenger
536 }
G4GLOB_DLL std::ostream G4cout
G4Material * GetMaterial(G4String)
#define G4endl
Definition: G4ios.hh:61
void SetMaterial(G4Material *pMaterial)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetOribitHeight()

void XrayFluoMercuryDetectorConstruction::SetOribitHeight ( G4double  size)
inline

Definition at line 86 of file XrayFluoMercuryDetectorConstruction.hh.

Here is the caller graph for this function:

◆ UpdateGeometry()

void XrayFluoMercuryDetectorConstruction::UpdateGeometry ( )

Definition at line 512 of file XrayFluoMercuryDetectorConstruction.cc.

513 {
514 
519 
522 
523  //Triggers a new call of Construct() and of all the geometry resets.
525 
526 }
HepRotation & rotateX(double delta)
Definition: Rotation.cc:66
static void Clean()
Definition: G4SolidStore.cc:79
static G4GeometryManager * GetInstance()
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
void OpenGeometry(G4VPhysicalVolume *vol=0)
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ ContactSizeXY

G4double XrayFluoMercuryDetectorConstruction::ContactSizeXY
private

Definition at line 210 of file XrayFluoMercuryDetectorConstruction.hh.

◆ defaultMaterial

G4Material* XrayFluoMercuryDetectorConstruction::defaultMaterial
private

Definition at line 190 of file XrayFluoMercuryDetectorConstruction.hh.

◆ detectorMessenger

XrayFluoMercuryDetectorMessenger* XrayFluoMercuryDetectorConstruction::detectorMessenger
private

Definition at line 234 of file XrayFluoMercuryDetectorConstruction.hh.

◆ detectorType

XrayFluoVDetectorType* XrayFluoMercuryDetectorConstruction::detectorType
private

Definition at line 131 of file XrayFluoMercuryDetectorConstruction.hh.

◆ DeviceSizeX

G4double XrayFluoMercuryDetectorConstruction::DeviceSizeX
private

Definition at line 135 of file XrayFluoMercuryDetectorConstruction.hh.

◆ DeviceSizeY

G4double XrayFluoMercuryDetectorConstruction::DeviceSizeY
private

Definition at line 136 of file XrayFluoMercuryDetectorConstruction.hh.

◆ DeviceThickness

G4double XrayFluoMercuryDetectorConstruction::DeviceThickness
private

Definition at line 137 of file XrayFluoMercuryDetectorConstruction.hh.

◆ distDe

G4double XrayFluoMercuryDetectorConstruction::distDe
private

Definition at line 221 of file XrayFluoMercuryDetectorConstruction.hh.

◆ distOptic

G4double XrayFluoMercuryDetectorConstruction::distOptic
private

Definition at line 223 of file XrayFluoMercuryDetectorConstruction.hh.

◆ distScreen

G4double XrayFluoMercuryDetectorConstruction::distScreen
private

Definition at line 222 of file XrayFluoMercuryDetectorConstruction.hh.

◆ grainCopyNb

G4int XrayFluoMercuryDetectorConstruction::grainCopyNb
private

Definition at line 204 of file XrayFluoMercuryDetectorConstruction.hh.

◆ HPGeSD

G4Cache<XrayFluoSD*> XrayFluoMercuryDetectorConstruction::HPGeSD
private

Definition at line 236 of file XrayFluoMercuryDetectorConstruction.hh.

◆ instance

XrayFluoMercuryDetectorConstruction * XrayFluoMercuryDetectorConstruction::instance = 0
staticprivate

Definition at line 129 of file XrayFluoMercuryDetectorConstruction.hh.

◆ logicGrain

G4LogicalVolume* XrayFluoMercuryDetectorConstruction::logicGrain
private

Definition at line 179 of file XrayFluoMercuryDetectorConstruction.hh.

◆ logicHPGe

G4LogicalVolume* XrayFluoMercuryDetectorConstruction::logicHPGe
private

Definition at line 144 of file XrayFluoMercuryDetectorConstruction.hh.

◆ logicMercury

G4LogicalVolume* XrayFluoMercuryDetectorConstruction::logicMercury
private

Definition at line 152 of file XrayFluoMercuryDetectorConstruction.hh.

◆ logicOhmicNeg

G4LogicalVolume* XrayFluoMercuryDetectorConstruction::logicOhmicNeg
private

Definition at line 168 of file XrayFluoMercuryDetectorConstruction.hh.

◆ logicOhmicPos

G4LogicalVolume* XrayFluoMercuryDetectorConstruction::logicOhmicPos
private

Definition at line 164 of file XrayFluoMercuryDetectorConstruction.hh.

◆ logicOptic

G4LogicalVolume* XrayFluoMercuryDetectorConstruction::logicOptic
private

Definition at line 176 of file XrayFluoMercuryDetectorConstruction.hh.

◆ logicPixel

G4LogicalVolume* XrayFluoMercuryDetectorConstruction::logicPixel
private

Definition at line 172 of file XrayFluoMercuryDetectorConstruction.hh.

◆ logicScreen

G4LogicalVolume* XrayFluoMercuryDetectorConstruction::logicScreen
private

Definition at line 148 of file XrayFluoMercuryDetectorConstruction.hh.

◆ logicWorld

G4LogicalVolume* XrayFluoMercuryDetectorConstruction::logicWorld
private

Definition at line 140 of file XrayFluoMercuryDetectorConstruction.hh.

◆ materials

XrayFluoNistMaterials* XrayFluoMercuryDetectorConstruction::materials
private

Definition at line 182 of file XrayFluoMercuryDetectorConstruction.hh.

◆ mercuryDia

G4double XrayFluoMercuryDetectorConstruction::mercuryDia
private

Definition at line 214 of file XrayFluoMercuryDetectorConstruction.hh.

◆ mercuryGranularity

G4bool XrayFluoMercuryDetectorConstruction::mercuryGranularity
private

Definition at line 133 of file XrayFluoMercuryDetectorConstruction.hh.

◆ mercuryMaterial

G4Material* XrayFluoMercuryDetectorConstruction::mercuryMaterial
private

Definition at line 188 of file XrayFluoMercuryDetectorConstruction.hh.

◆ mercurySunDistance

G4double XrayFluoMercuryDetectorConstruction::mercurySunDistance
private

Definition at line 217 of file XrayFluoMercuryDetectorConstruction.hh.

◆ NbOfPixelColumns

G4int XrayFluoMercuryDetectorConstruction::NbOfPixelColumns
private

Definition at line 207 of file XrayFluoMercuryDetectorConstruction.hh.

◆ NbOfPixelRows

G4int XrayFluoMercuryDetectorConstruction::NbOfPixelRows
private

Definition at line 206 of file XrayFluoMercuryDetectorConstruction.hh.

◆ NbOfPixels

G4int XrayFluoMercuryDetectorConstruction::NbOfPixels
private

Definition at line 205 of file XrayFluoMercuryDetectorConstruction.hh.

◆ OhmicNegMaterial

G4Material* XrayFluoMercuryDetectorConstruction::OhmicNegMaterial
private

Definition at line 186 of file XrayFluoMercuryDetectorConstruction.hh.

◆ OhmicNegThickness

G4double XrayFluoMercuryDetectorConstruction::OhmicNegThickness
private

Definition at line 195 of file XrayFluoMercuryDetectorConstruction.hh.

◆ OhmicPosMaterial

G4Material* XrayFluoMercuryDetectorConstruction::OhmicPosMaterial
private

Definition at line 185 of file XrayFluoMercuryDetectorConstruction.hh.

◆ OhmicPosThickness

G4double XrayFluoMercuryDetectorConstruction::OhmicPosThickness
private

Definition at line 194 of file XrayFluoMercuryDetectorConstruction.hh.

◆ opticAperture

G4double XrayFluoMercuryDetectorConstruction::opticAperture
private

Definition at line 212 of file XrayFluoMercuryDetectorConstruction.hh.

◆ opticDia

G4double XrayFluoMercuryDetectorConstruction::opticDia
private

Definition at line 197 of file XrayFluoMercuryDetectorConstruction.hh.

◆ opticThickness

G4double XrayFluoMercuryDetectorConstruction::opticThickness
private

Definition at line 198 of file XrayFluoMercuryDetectorConstruction.hh.

◆ PhiHPGe

G4double XrayFluoMercuryDetectorConstruction::PhiHPGe
private

Definition at line 226 of file XrayFluoMercuryDetectorConstruction.hh.

◆ physiHPGe

G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::physiHPGe
private

Definition at line 145 of file XrayFluoMercuryDetectorConstruction.hh.

◆ physiMercury

G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::physiMercury
private

Definition at line 153 of file XrayFluoMercuryDetectorConstruction.hh.

◆ physiOhmicNeg

G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::physiOhmicNeg
private

Definition at line 169 of file XrayFluoMercuryDetectorConstruction.hh.

◆ physiOhmicPos

G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::physiOhmicPos
private

Definition at line 165 of file XrayFluoMercuryDetectorConstruction.hh.

◆ physiOptic

G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::physiOptic
private

Definition at line 177 of file XrayFluoMercuryDetectorConstruction.hh.

◆ physiPixel

G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::physiPixel
private

Definition at line 173 of file XrayFluoMercuryDetectorConstruction.hh.

◆ physiScreen

G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::physiScreen
private

Definition at line 149 of file XrayFluoMercuryDetectorConstruction.hh.

◆ physiWorld

G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::physiWorld
private

Definition at line 141 of file XrayFluoMercuryDetectorConstruction.hh.

◆ PixelCopyNb

G4int XrayFluoMercuryDetectorConstruction::PixelCopyNb
private

Definition at line 203 of file XrayFluoMercuryDetectorConstruction.hh.

◆ pixelMaterial

G4Material* XrayFluoMercuryDetectorConstruction::pixelMaterial
private

Definition at line 187 of file XrayFluoMercuryDetectorConstruction.hh.

◆ PixelSizeXY

G4double XrayFluoMercuryDetectorConstruction::PixelSizeXY
private

Definition at line 209 of file XrayFluoMercuryDetectorConstruction.hh.

◆ PixelThickness

G4double XrayFluoMercuryDetectorConstruction::PixelThickness
private

Definition at line 208 of file XrayFluoMercuryDetectorConstruction.hh.

◆ screenMaterial

G4Material* XrayFluoMercuryDetectorConstruction::screenMaterial
private

Definition at line 184 of file XrayFluoMercuryDetectorConstruction.hh.

◆ screenSizeXY

G4double XrayFluoMercuryDetectorConstruction::screenSizeXY
private

Definition at line 200 of file XrayFluoMercuryDetectorConstruction.hh.

◆ screenThickness

G4double XrayFluoMercuryDetectorConstruction::screenThickness
private

Definition at line 201 of file XrayFluoMercuryDetectorConstruction.hh.

◆ solidHPGe

G4Box* XrayFluoMercuryDetectorConstruction::solidHPGe
private

Definition at line 143 of file XrayFluoMercuryDetectorConstruction.hh.

◆ solidMercury

G4Sphere* XrayFluoMercuryDetectorConstruction::solidMercury
private

Definition at line 151 of file XrayFluoMercuryDetectorConstruction.hh.

◆ solidOhmicNeg

G4Box* XrayFluoMercuryDetectorConstruction::solidOhmicNeg
private

Definition at line 167 of file XrayFluoMercuryDetectorConstruction.hh.

◆ solidOhmicPos

G4Box* XrayFluoMercuryDetectorConstruction::solidOhmicPos
private

Definition at line 163 of file XrayFluoMercuryDetectorConstruction.hh.

◆ solidOptic

G4Tubs* XrayFluoMercuryDetectorConstruction::solidOptic
private

Definition at line 175 of file XrayFluoMercuryDetectorConstruction.hh.

◆ solidPixel

G4Box* XrayFluoMercuryDetectorConstruction::solidPixel
private

Definition at line 171 of file XrayFluoMercuryDetectorConstruction.hh.

◆ solidScreen

G4Box* XrayFluoMercuryDetectorConstruction::solidScreen
private

Definition at line 147 of file XrayFluoMercuryDetectorConstruction.hh.

◆ solidWorld

G4Box* XrayFluoMercuryDetectorConstruction::solidWorld
private

Definition at line 139 of file XrayFluoMercuryDetectorConstruction.hh.

◆ sunDia

G4double XrayFluoMercuryDetectorConstruction::sunDia
private

Definition at line 215 of file XrayFluoMercuryDetectorConstruction.hh.

◆ ThetaHPGe

G4double XrayFluoMercuryDetectorConstruction::ThetaHPGe
private

Definition at line 219 of file XrayFluoMercuryDetectorConstruction.hh.

◆ WorldSizeXY

G4double XrayFluoMercuryDetectorConstruction::WorldSizeXY
private

Definition at line 230 of file XrayFluoMercuryDetectorConstruction.hh.

◆ WorldSizeZ

G4double XrayFluoMercuryDetectorConstruction::WorldSizeZ
private

Definition at line 231 of file XrayFluoMercuryDetectorConstruction.hh.

◆ zRotPhiHPGe

G4RotationMatrix XrayFluoMercuryDetectorConstruction::zRotPhiHPGe
private

Definition at line 228 of file XrayFluoMercuryDetectorConstruction.hh.


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