Geant4  10.02.p03
XrayFluoPlaneDetectorConstruction Class Reference

#include <XrayFluoPlaneDetectorConstruction.hh>

Inheritance diagram for XrayFluoPlaneDetectorConstruction:
Collaboration diagram for XrayFluoPlaneDetectorConstruction:

Public Member Functions

 ~XrayFluoPlaneDetectorConstruction ()
 
G4VPhysicalVolumeConstruct ()
 
void ConstructSDandField ()
 
void UpdateGeometry ()
 
void SetPlaneMaterial (G4String newMaterial)
 
void SetDetectorType (G4String type)
 
void SetPlaneGranularity (G4bool granularity)
 
void SetGrainDia (G4double size)
 
void DeleteGrainObjects ()
 
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 G4VPhysicalVolumeGetPlane () const
 
const G4VPhysicalVolumeGetphysiPixel () const
 
const G4VPhysicalVolumeGetOhmicPos () const
 
const G4VPhysicalVolumeGetOhmicNeg () const
 
G4MaterialGetPlaneMaterial () const
 
G4MaterialGetPixelMaterial () const
 
G4double GetPlaneThickness () const
 
G4double GetPlaneSizeXY () 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 XrayFluoPlaneDetectorConstructionGetInstance ()
 

Private Member Functions

 XrayFluoPlaneDetectorConstruction ()
 
void DefineDefaultMaterials ()
 
G4VPhysicalVolumeConstructApparate ()
 
void ComputeApparateParameters ()
 

Private Attributes

XrayFluoVDetectorTypedetectorType
 
G4bool planeGranularity
 
G4double DeviceSizeX
 
G4double DeviceSizeY
 
G4double DeviceThickness
 
G4BoxsolidWorld
 
G4LogicalVolumelogicWorld
 
G4VPhysicalVolumephysiWorld
 
G4BoxsolidHPGe
 
G4LogicalVolumelogicHPGe
 
G4VPhysicalVolumephysiHPGe
 
G4BoxsolidScreen
 
G4LogicalVolumelogicScreen
 
G4VPhysicalVolumephysiScreen
 
G4BoxsolidPlane
 
G4LogicalVolumelogicPlane
 
G4VPhysicalVolumephysiPlane
 
G4BoxsolidOhmicPos
 
G4LogicalVolumelogicOhmicPos
 
G4VPhysicalVolumephysiOhmicPos
 
G4BoxsolidOhmicNeg
 
G4LogicalVolumelogicOhmicNeg
 
G4VPhysicalVolumephysiOhmicNeg
 
G4BoxsolidPixel
 
G4LogicalVolumelogicPixel
 
G4VPhysicalVolumephysiPixel
 
G4SpheresolidGrain
 
G4LogicalVolumelogicGrain
 
G4VPhysicalVolumephysiGrain
 
XrayFluoNistMaterialsmaterials
 
G4MaterialscreenMaterial
 
G4MaterialOhmicPosMaterial
 
G4MaterialOhmicNegMaterial
 
G4MaterialpixelMaterial
 
G4MaterialplaneMaterial
 
G4MaterialdefaultMaterial
 
G4double OhmicPosThickness
 
G4double OhmicNegThickness
 
G4double screenSizeXY
 
G4double screenThickness
 
G4int PixelCopyNb
 
G4int grainCopyNb
 
G4int NbOfPixels
 
G4int NbOfPixelRows
 
G4int NbOfPixelColumns
 
G4double PixelThickness
 
G4double PixelSizeXY
 
G4double ContactSizeXY
 
G4double planeThickness
 
G4double planeSizeXY
 
G4double grainDia
 
G4double ThetaHPGe
 
G4double DistDe
 
G4double distScreen
 
G4double PhiHPGe
 
G4RotationMatrix zRotPhiHPGe
 
G4double WorldSizeXY
 
G4double WorldSizeZ
 
XrayFluoPlaneDetectorMessengerdetectorMessenger
 
G4Cache< XrayFluoSD * > HPGeSD
 

Static Private Attributes

static XrayFluoPlaneDetectorConstructioninstance = 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 61 of file XrayFluoPlaneDetectorConstruction.hh.

Constructor & Destructor Documentation

◆ ~XrayFluoPlaneDetectorConstruction()

XrayFluoPlaneDetectorConstruction::~XrayFluoPlaneDetectorConstruction ( )

Definition at line 167 of file XrayFluoPlaneDetectorConstruction.cc.

169 {
170  delete detectorMessenger;
171  delete detectorType;
172  G4cout << "XrayFluoPlaneDetectorConstruction deleted" << G4endl;
173 }
G4GLOB_DLL std::ostream G4cout
XrayFluoPlaneDetectorMessenger * detectorMessenger
#define G4endl
Definition: G4ios.hh:61

◆ XrayFluoPlaneDetectorConstruction()

XrayFluoPlaneDetectorConstruction::XrayFluoPlaneDetectorConstruction ( )
private

Definition at line 64 of file XrayFluoPlaneDetectorConstruction.cc.

68  solidHPGe(0),logicHPGe(0),physiHPGe(0),
70  solidPlane (0),logicPlane(0),physiPlane (0),
77 
78 {
80 
82 
83  NbOfPixelRows = 1; // should be 1
84  NbOfPixelColumns = 1; // should be 1
86  PixelSizeXY = 5 * cm; // should be 5
87  PixelThickness = 3.5 * mm; //changed should be 3.5 mm
88 
89  G4cout << "PixelThickness(mm): "<< PixelThickness/mm << G4endl;
90  G4cout << "PixelSizeXY(cm): "<< PixelSizeXY/cm << G4endl;
91 
92  ContactSizeXY = 5 * cm; //should be the same as pixelSizeXY
93  planeThickness = 5 * cm;
94  planeSizeXY = 5. * m;
95 
96  OhmicNegThickness = 0.005*mm;
97  OhmicPosThickness = 0.005*mm;
98 
99  screenThickness = 5 * mm;
100 
101  ThetaHPGe = 0. * deg;
102  PhiHPGe = 0. * deg;
103 
104 
105  DistDe = 0.5 * m;
106 
108 
109  grainDia = 1 * mm;
110 
111 
112  PixelCopyNb=0;
113  grainCopyNb=0;
114  G4String defaultDetectorType = "sili";
116  SetDetectorType(defaultDetectorType);
117 
118  // create commands for interactive definition of the apparate
119 
121  G4cout << "XrayFluoPlaneDetectorConstruction created" << G4endl;
122 }
static const double cm
Definition: G4SIunits.hh:118
static XrayFluoNistMaterials * GetInstance()
G4GLOB_DLL std::ostream G4cout
static const double deg
Definition: G4SIunits.hh:151
XrayFluoPlaneDetectorMessenger * detectorMessenger
#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 XrayFluoPlaneDetectorConstruction::ComputeApparateParameters ( )
inlineprivate

Definition at line 278 of file XrayFluoPlaneDetectorConstruction.hh.

279 {
280  // Compute derived parameters of the apparate
281 
283 
284  G4cout << "DeviceThickness(cm): "<< DeviceThickness/CLHEP::cm << G4endl;
285 
288 
290 
291  G4cout << "DeviceSizeX(cm): "<< DeviceSizeX/CLHEP::cm <<G4endl;
292  G4cout << "DeviceSizeY(cm): "<< DeviceSizeY/CLHEP::cm << G4endl;
293 
295  WorldSizeXY = (2 * (planeSizeXY))+ 5*CLHEP::m;
296 
297 }
static const double m
static const double cm
Definition: SystemOfUnits.h:98
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
Here is the caller graph for this function:

◆ Construct()

G4VPhysicalVolume * XrayFluoPlaneDetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 177 of file XrayFluoPlaneDetectorConstruction.cc.

178 {
179  return ConstructApparate();
180 }
Here is the call graph for this function:

◆ ConstructApparate()

G4VPhysicalVolume * XrayFluoPlaneDetectorConstruction::ConstructApparate ( )
private

Definition at line 199 of file XrayFluoPlaneDetectorConstruction.cc.

200 {
201  // complete the apparate parameters definition
202 
203  //ComputeApparateParameters();
204 
205  //world
206 
207  solidWorld = new G4Box("World", //its name
208  WorldSizeXY/2,WorldSizeXY/2,WorldSizeZ/2); //its size
209 
210  logicWorld = new G4LogicalVolume(solidWorld, //its solid
211  defaultMaterial, //its material
212  "World"); //its name
213  physiWorld = new G4PVPlacement(0, //no rotation
214  G4ThreeVector(), //at (0,0,0)
215  "World", //its name
216  logicWorld, //its logical volume
217  0, //its mother volume
218  false, //no boolean operation
219  0); //copy number
220 
221  //detector
222 
223  solidHPGe = 0; physiHPGe = 0; logicHPGe=0;
225 
226  if (DeviceThickness > 0.)
227  {
228  solidHPGe = new G4Box("HPGeDetector", //its name
230 
231 
232  logicHPGe = new G4LogicalVolume(solidHPGe, //its solid
233  defaultMaterial, //its material
234  "HPGeDetector"); //its name
235 
237  G4double x,y,z;
238 
239  z = -1. * DistDe; //* std::cos(ThetaHPGe);
240  y = 0.*cm; //distScreen * std::sin(ThetaHPGe);
241  x = 0.*cm;
242 
244  "HPGeDetector", //its name
245  logicHPGe, //its logical volume
246  physiWorld, //its mother volume
247  false, //no boolean operation
248  0); //copy number
249  }
250  // Pixel
251 
252 
253 
254 
255  for ( G4int j=0; j < NbOfPixelColumns ; j++ )
256  { for ( G4int i=0; i < NbOfPixelRows ; i++ )
257  {
259  if (PixelThickness > 0.)
260  solidPixel = new G4Box("Pixel",
262 
264  pixelMaterial, //its material
265  "Pixel"); //its name
266 
267  /*
268  zRotPhiHPGe.rotateX(PhiHPGe);
269  G4double x,y,z;
270  z = DistDe * std::cos(ThetaHPGe);
271  y =DistDe * std::sin(ThetaHPGe);
272  x = 0.*cm;*/
273  physiPixel = new G4PVPlacement(0,
274  G4ThreeVector(0,
275  i*PixelSizeXY,
276  j*PixelSizeXY ),
277  "Pixel",
278  logicPixel, //its logical volume
279  physiHPGe, //its mother volume
280  false, //no boolean operation
281  PixelCopyNb);//copy number
282 
283 
284 
285 
286 
287 
288  // OhmicNeg
289 
291 
292  if (OhmicNegThickness > 0.)
293  { solidOhmicNeg = new G4Box("OhmicNeg", //its name
295 
296  logicOhmicNeg = new G4LogicalVolume(solidOhmicNeg, //its solid
297  OhmicNegMaterial, //its material
298  "OhmicNeg"); //its name
299 
302  (0.,
303  0.,
305  "OhmicNeg", //its name
306  logicOhmicNeg, //its logical volume
307  physiHPGe, //its mother
308  false, //no boulean operat
309  PixelCopyNb); //copy number
310 
311  }
312  // OhmicPos
314 
315  if (OhmicPosThickness > 0.)
316  { solidOhmicPos = new G4Box("OhmicPos", //its name
318 
319  logicOhmicPos = new G4LogicalVolume(solidOhmicPos, //its solid
320  OhmicPosMaterial, //its material
321  "OhmicPos"); //its name
322 
323  physiOhmicPos = new G4PVPlacement(0,
324  G4ThreeVector(0.,
325  0.,
327  "OhmicPos",
329  physiHPGe,
330  false,
331  PixelCopyNb);
332 
333  }
334 
336  G4cout << "PixelCopyNb: " << PixelCopyNb << G4endl;
337  }
338 
339  }
340 
341  // Screen
342 
343  if (DeviceThickness > 0.)
344  {
345  solidScreen = new G4Box("DetectorScreen", //its name
347 
348 
349  logicScreen = new G4LogicalVolume(solidScreen, //its solid
350  defaultMaterial, //its material
351  "DetectorScreen"); //its name
352 
353  //zRotPhiHPGe.rotateX(PhiHPGe);
354  G4double x,y,z;
355  G4cout << "distScreen: "<< distScreen/m <<G4endl;
356  z = -1 * distScreen; //* std::cos(ThetaHPGe);
357  y = 0.*cm; //distScreen * std::sin(ThetaHPGe);
358  x = 0.*cm;
360  "DetectorScreen", //its name
361  logicScreen, //its logical volume
362  physiWorld, //its mother volume
363  false, //no boolean operation
364  0); //copy number
365  }
366 
367  //Plane
368 
369  if (planeGranularity) {
370 
372  if (planeThickness > 0.)
373  {
374  solidPlane = new G4Box("Plane", //its name
376 
377  logicPlane= new G4LogicalVolume(solidPlane, //its solid
378  defaultMaterial, //its material
379  "Plane"); //its name
380 
381  physiPlane = new G4PVPlacement(0, //no rotation
382  G4ThreeVector(), //at (0,0,0)
383  "Plane", //its name
384  logicPlane, //its logical volume
385  physiWorld, //its mother volume
386  false, //no boolean operation
387  0); //copy number
388 
389  }
390 
391 
392 
393 
394  G4int nbOfGrainsX = ((G4int)(planeSizeXY/grainDia)) -1 ;
395 
396  // y dim of a max density plane is 2rn-(n-1)ar, wehere a = (1-(std::sqrt(3)/2)), n is
397  // number of rows and r the radius of the grain. so the Y-dim of the plane must
398  // be greater or equal to this. It results that nmust be <= (PlaneY-a)/(1-a).
399  // Max Y shift of the planes superimposing along Z axis is minor (2/std::sqrt(3)r)
400 
401  G4double a = (1.-(std::sqrt(3.)/2.));
402  G4int nbOfGrainsY = (G4int) ( ((planeSizeXY/(grainDia/2.)) -a)/(2.-a) ) -1;
403 
404  // same for the z axis, but a = 2 * (std::sqrt(3) - std::sqrt(2))/std::sqrt(3)
405 
406  G4double b = 2. * (std::sqrt(3.) - std::sqrt(2.))/std::sqrt(3.);
407  G4int nbOfGrainsZ = (G4int) ( ((planeThickness/(grainDia/2.)) -b)/(2.-b) )-1;
408 
409  if (planeThickness > 0.){
410 
412  solidGrain = new G4Sphere("Grain",0.,
413  grainDia/2,0., twopi, 0., pi);
414 
416  planeMaterial, //its material
417  "Grain"); //its name
418  G4ThreeVector grainPosition;
419  G4double grainInitPositionX = 0;
420  G4double grainInitPositionY = 0;
421  G4double grainInitPositionZ = (-1.*planeThickness/2.+grainDia/2.);
422  G4double grainStepX = grainDia = 0;
423  G4double grainStepY = grainDia*(1.-(0.5-(std::sqrt(3.)/4.)));
424  G4double grainStepZ = grainDia*std::sqrt(2./3.);
425 
426  for ( G4int k=0; k < nbOfGrainsZ ; k++ ) {
427  for ( G4int j=0; j < nbOfGrainsY ; j++ ) {
428  for ( G4int i=0; i < nbOfGrainsX ; i++ ) {
429 
430  // Now we identify the layer and the row where the grain is , to place it in the right position
431 
432 
433 
434  if (k%3 == 0) { // first or (4-multiple)th layer: structure is ABCABC
435  grainInitPositionY = (-1.*planeSizeXY/2.+grainDia/2.);
436  if (j%2 ==0) { //first or (3-multiple)th row
437  grainInitPositionX = (-1.*planeSizeXY/2.+grainDia/2.);
438  }
439 
440  else if ( ((j+1) % 2) == 0 ) {
441  grainInitPositionX = (-1.*planeSizeXY/2.+ grainDia);
442  }
443 
444  }
445  else if ( ((k+2) % 3) == 0 ) { // B-layer
446 
447  grainInitPositionY = ( (-1.*planeSizeXY/2.) + (grainDia/2.)*(1. + (1./std::sqrt(3.)) ) );
448 
449  if (j%2 ==0) { //first or (3-multiple)th row
450  grainInitPositionX = (-1.*planeSizeXY/2.+grainDia);
451  }
452 
453  else if ( (j+1)%2 == 0 ) {
454  grainInitPositionX = (-1.*planeSizeXY/2.+grainDia/2);
455  }
456 
457  }
458 
459  else if ( (k+1)%3 == 0 ) { // B-layer
460 
461  grainInitPositionY = (-1.*planeSizeXY/2.+(grainDia/2.)*(1.+2./std::sqrt(3.)) );
462 
463  if (j%2 ==0) { //first or (3-multiple)th row
464  grainInitPositionX = (-1.*planeSizeXY/2.+grainDia/2.);
465  }
466 
467  else if ( (j+1)%2 == 0 ) {
468  grainInitPositionX = (-1.*planeSizeXY/2.+grainDia);
469  }
470 
471  }
472 
473  physiGrain = new G4PVPlacement(0,
474  G4ThreeVector( grainInitPositionX + i*grainStepX,
475  grainInitPositionY + j*grainStepY,
476  grainInitPositionZ + k*grainStepZ),
477  "Grain",
478  logicGrain, //its logical volume
479  physiPlane, //its mother volume
480  false, //no boolean operation
481  grainCopyNb);//copy number
482 
483  grainCopyNb = grainCopyNb +1;
484  }
485  }
486  }
487  }
488  }
489  else {
490 
492  if (planeThickness > 0.)
493  {
494  solidPlane = new G4Box("Plane", //its name
496 
497  logicPlane= new G4LogicalVolume(solidPlane, //its solid
498  planeMaterial, //its material
499  "Plane"); //its name
500 
501  physiPlane = new G4PVPlacement(0, //no rotation
502  G4ThreeVector(), //at (0,0,0)
503  "Plane", //its name
504  logicPlane, //its logical volume
505  physiWorld, //its mother volume
506  false, //no boolean operation
507  0); //copy number
508 
509  }
510  }
511 
512  // Visualization attributes
513 
515  G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0));
516  G4VisAttributes * yellow= new G4VisAttributes( G4Colour(255/255. ,255/255. ,51/255. ));
517  G4VisAttributes * red= new G4VisAttributes( G4Colour(255/255. , 0/255. , 0/255. ));
518  G4VisAttributes * blue= new G4VisAttributes( G4Colour(0/255. , 0/255. , 255/255. ));
519  G4VisAttributes * grayc= new G4VisAttributes( G4Colour(128/255. , 128/255. , 128/255. ));
520  G4VisAttributes * lightGray= new G4VisAttributes( G4Colour(178/255. , 178/255. , 178/255. ));
521  yellow->SetVisibility(true);
522  yellow->SetForceSolid(true);
523  red->SetVisibility(true);
524  red->SetForceSolid(true);
525  blue->SetVisibility(true);
526  grayc->SetVisibility(true);
527  grayc->SetForceSolid(true);
528  lightGray->SetVisibility(true);
529  lightGray->SetForceSolid(true);
530  simpleBoxVisAtt->SetVisibility(true);
531 
532  logicPixel->SetVisAttributes(red); //modified!!!
534 
535  logicPlane->SetVisAttributes(lightGray);
536 
537 
541 
542 
543 
545 
546  //always return the physical World
547 
549 
550  return physiWorld;
551 }
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)
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 XrayFluoPlaneDetectorConstruction::ConstructSDandField ( )
virtual

Reimplemented from G4VUserDetectorConstruction.

Definition at line 555 of file XrayFluoPlaneDetectorConstruction.cc.

556 {
557  //
558  // Sensitive Detectors
559  //
560  if (HPGeSD.Get() == 0)
561  {
562  XrayFluoSD* SD = new XrayFluoSD ("HPGeSD",this);
563  HPGeSD.Put( SD );
564  }
565 
566  if (logicPixel)
568 }
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 XrayFluoPlaneDetectorConstruction::DefineDefaultMaterials ( )
private

Definition at line 183 of file XrayFluoPlaneDetectorConstruction.cc.

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

◆ DeleteGrainObjects()

void XrayFluoPlaneDetectorConstruction::DeleteGrainObjects ( )

Definition at line 610 of file XrayFluoPlaneDetectorConstruction.cc.

Here is the caller graph for this function:

◆ GetContactSizeXY()

G4double XrayFluoPlaneDetectorConstruction::GetContactSizeXY ( ) const
inline

◆ GetDetectorType()

XrayFluoVDetectorType * XrayFluoPlaneDetectorConstruction::GetDetectorType ( ) const

Definition at line 160 of file XrayFluoPlaneDetectorConstruction.cc.

161 {
162  return detectorType;
163 }
Here is the caller graph for this function:

◆ GetDeviceSizeX()

G4double XrayFluoPlaneDetectorConstruction::GetDeviceSizeX ( ) const
inline

◆ GetDeviceSizeY()

G4double XrayFluoPlaneDetectorConstruction::GetDeviceSizeY ( ) const
inline

◆ GetDeviceThickness()

G4double XrayFluoPlaneDetectorConstruction::GetDeviceThickness ( ) const
inline

◆ GetHPGe()

const G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::GetHPGe ( ) const
inline

Definition at line 118 of file XrayFluoPlaneDetectorConstruction.hh.

◆ GetInstance()

XrayFluoPlaneDetectorConstruction * XrayFluoPlaneDetectorConstruction::GetInstance ( void  )
static

Definition at line 128 of file XrayFluoPlaneDetectorConstruction.cc.

129 {
130  if (instance == 0)
131  {
133 
134  }
135  return instance;
136 }
static XrayFluoPlaneDetectorConstruction * instance
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNbOfPixelColumns()

G4int XrayFluoPlaneDetectorConstruction::GetNbOfPixelColumns ( ) const
inline

◆ GetNbOfPixelRows()

G4int XrayFluoPlaneDetectorConstruction::GetNbOfPixelRows ( ) const
inline

◆ GetNbOfPixels()

G4int XrayFluoPlaneDetectorConstruction::GetNbOfPixels ( ) const
inline

Definition at line 107 of file XrayFluoPlaneDetectorConstruction.hh.

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

◆ GetOhmicNeg()

const G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::GetOhmicNeg ( ) const
inline

Definition at line 125 of file XrayFluoPlaneDetectorConstruction.hh.

Here is the call graph for this function:

◆ GetOhmicNegMaterial()

G4Material* XrayFluoPlaneDetectorConstruction::GetOhmicNegMaterial ( ) const
inline

◆ GetOhmicNegThickness()

G4double XrayFluoPlaneDetectorConstruction::GetOhmicNegThickness ( ) const
inline

◆ GetOhmicPos()

const G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::GetOhmicPos ( ) const
inline

◆ GetOhmicPosMaterial()

G4Material* XrayFluoPlaneDetectorConstruction::GetOhmicPosMaterial ( ) const
inline

◆ GetOhmicPosThickness()

G4double XrayFluoPlaneDetectorConstruction::GetOhmicPosThickness ( ) const
inline

◆ GetphysiPixel()

const G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::GetphysiPixel ( ) const
inline

Definition at line 123 of file XrayFluoPlaneDetectorConstruction.hh.

◆ GetphysiWorld()

const G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::GetphysiWorld ( ) const
inline

Definition at line 117 of file XrayFluoPlaneDetectorConstruction.hh.

◆ GetPixelMaterial()

G4Material* XrayFluoPlaneDetectorConstruction::GetPixelMaterial ( ) const
inline

◆ GetPixelSizeXY()

G4double XrayFluoPlaneDetectorConstruction::GetPixelSizeXY ( ) const
inline

◆ GetPlane()

const G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::GetPlane ( ) const
inline

Definition at line 119 of file XrayFluoPlaneDetectorConstruction.hh.

◆ GetPlaneMaterial()

G4Material* XrayFluoPlaneDetectorConstruction::GetPlaneMaterial ( ) const
inline

◆ GetPlaneSizeXY()

G4double XrayFluoPlaneDetectorConstruction::GetPlaneSizeXY ( ) const
inline

Definition at line 229 of file XrayFluoPlaneDetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetPlaneThickness()

G4double XrayFluoPlaneDetectorConstruction::GetPlaneThickness ( ) const
inline

◆ GetWorldSizeXY()

G4double XrayFluoPlaneDetectorConstruction::GetWorldSizeXY ( ) const
inline

Definition at line 99 of file XrayFluoPlaneDetectorConstruction.hh.

Here is the caller graph for this function:

◆ GetWorldSizeZ()

G4double XrayFluoPlaneDetectorConstruction::GetWorldSizeZ ( ) const
inline

Definition at line 98 of file XrayFluoPlaneDetectorConstruction.hh.

Here is the caller graph for this function:

◆ PrintApparateParameters()

void XrayFluoPlaneDetectorConstruction::PrintApparateParameters ( )

Definition at line 572 of file XrayFluoPlaneDetectorConstruction.cc.

573 {
574  G4cout << "-----------------------------------------------------------------------"
575  << G4endl
576  << "The plane is a box whose size is: "
577  << G4endl
578  << planeThickness/cm
579  << " cm * "
580  << planeSizeXY/cm
581  << " cm * "
582  << planeSizeXY/cm
583  << " cm"
584  << G4endl
585  <<" Material: " << logicPlane->GetMaterial()->GetName()
586  <<G4endl
587  <<"The Detector is a slice " << DeviceThickness/(1.e-6*m) << " micron thick of " << pixelMaterial->GetName()
588  <<G4endl
589 
590 
591 <<"-------------------------------------------------------------------------"
592  << G4endl;
593 }
static const double cm
Definition: G4SIunits.hh:118
G4Material * GetMaterial() const
G4GLOB_DLL std::ostream G4cout
#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 XrayFluoPlaneDetectorConstruction::SetDetectorType ( G4String  type)

Definition at line 138 of file XrayFluoPlaneDetectorConstruction.cc.

139 {
140 
141  if (type=="sili")
142  {
144  }
145  else if (type=="hpge")
146  {
148  }
149  else
150  {
152  execp << type + "detector type unknown";
153  G4Exception("XrayFluoPlaneDetectorConstruction::SetDetectorType()","example-xray_fluorescence03",
154  FatalException, execp);
155  }
156 }
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:

◆ SetGrainDia()

void XrayFluoPlaneDetectorConstruction::SetGrainDia ( G4double  size)
inline

Definition at line 86 of file XrayFluoPlaneDetectorConstruction.hh.

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

◆ SetPlaneGranularity()

void XrayFluoPlaneDetectorConstruction::SetPlaneGranularity ( G4bool  granularity)
inline

Definition at line 83 of file XrayFluoPlaneDetectorConstruction.hh.

Here is the caller graph for this function:

◆ SetPlaneMaterial()

void XrayFluoPlaneDetectorConstruction::SetPlaneMaterial ( G4String  newMaterial)

Definition at line 622 of file XrayFluoPlaneDetectorConstruction.cc.

623 {
624  //G4cout << "Material!!!!" << newMaterial << G4endl;
627  //GeometryHasBeenModified is called by the messenger
628 
629 }
G4Material * GetMaterial(G4String)
void SetMaterial(G4Material *pMaterial)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateGeometry()

void XrayFluoPlaneDetectorConstruction::UpdateGeometry ( )

Definition at line 596 of file XrayFluoPlaneDetectorConstruction.cc.

597 {
602 
604  //Triggers a new call of Construct() and of all the geometry resets.
606 }
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 XrayFluoPlaneDetectorConstruction::ContactSizeXY
private

Definition at line 208 of file XrayFluoPlaneDetectorConstruction.hh.

◆ defaultMaterial

G4Material* XrayFluoPlaneDetectorConstruction::defaultMaterial
private

Definition at line 191 of file XrayFluoPlaneDetectorConstruction.hh.

◆ detectorMessenger

XrayFluoPlaneDetectorMessenger* XrayFluoPlaneDetectorConstruction::detectorMessenger
private

Definition at line 262 of file XrayFluoPlaneDetectorConstruction.hh.

◆ detectorType

XrayFluoVDetectorType* XrayFluoPlaneDetectorConstruction::detectorType
private

Definition at line 133 of file XrayFluoPlaneDetectorConstruction.hh.

◆ DeviceSizeX

G4double XrayFluoPlaneDetectorConstruction::DeviceSizeX
private

Definition at line 137 of file XrayFluoPlaneDetectorConstruction.hh.

◆ DeviceSizeY

G4double XrayFluoPlaneDetectorConstruction::DeviceSizeY
private

Definition at line 138 of file XrayFluoPlaneDetectorConstruction.hh.

◆ DeviceThickness

G4double XrayFluoPlaneDetectorConstruction::DeviceThickness
private

Definition at line 139 of file XrayFluoPlaneDetectorConstruction.hh.

◆ DistDe

G4double XrayFluoPlaneDetectorConstruction::DistDe
private

Definition at line 243 of file XrayFluoPlaneDetectorConstruction.hh.

◆ distScreen

G4double XrayFluoPlaneDetectorConstruction::distScreen
private

Definition at line 244 of file XrayFluoPlaneDetectorConstruction.hh.

◆ grainCopyNb

G4int XrayFluoPlaneDetectorConstruction::grainCopyNb
private

Definition at line 202 of file XrayFluoPlaneDetectorConstruction.hh.

◆ grainDia

G4double XrayFluoPlaneDetectorConstruction::grainDia
private

Definition at line 212 of file XrayFluoPlaneDetectorConstruction.hh.

◆ HPGeSD

G4Cache<XrayFluoSD*> XrayFluoPlaneDetectorConstruction::HPGeSD
private

Definition at line 264 of file XrayFluoPlaneDetectorConstruction.hh.

◆ instance

XrayFluoPlaneDetectorConstruction * XrayFluoPlaneDetectorConstruction::instance = 0
staticprivate

Definition at line 131 of file XrayFluoPlaneDetectorConstruction.hh.

◆ logicGrain

G4LogicalVolume* XrayFluoPlaneDetectorConstruction::logicGrain
private

Definition at line 178 of file XrayFluoPlaneDetectorConstruction.hh.

◆ logicHPGe

G4LogicalVolume* XrayFluoPlaneDetectorConstruction::logicHPGe
private

Definition at line 146 of file XrayFluoPlaneDetectorConstruction.hh.

◆ logicOhmicNeg

G4LogicalVolume* XrayFluoPlaneDetectorConstruction::logicOhmicNeg
private

Definition at line 170 of file XrayFluoPlaneDetectorConstruction.hh.

◆ logicOhmicPos

G4LogicalVolume* XrayFluoPlaneDetectorConstruction::logicOhmicPos
private

Definition at line 166 of file XrayFluoPlaneDetectorConstruction.hh.

◆ logicPixel

G4LogicalVolume* XrayFluoPlaneDetectorConstruction::logicPixel
private

Definition at line 174 of file XrayFluoPlaneDetectorConstruction.hh.

◆ logicPlane

G4LogicalVolume* XrayFluoPlaneDetectorConstruction::logicPlane
private

Definition at line 154 of file XrayFluoPlaneDetectorConstruction.hh.

◆ logicScreen

G4LogicalVolume* XrayFluoPlaneDetectorConstruction::logicScreen
private

Definition at line 150 of file XrayFluoPlaneDetectorConstruction.hh.

◆ logicWorld

G4LogicalVolume* XrayFluoPlaneDetectorConstruction::logicWorld
private

Definition at line 142 of file XrayFluoPlaneDetectorConstruction.hh.

◆ materials

XrayFluoNistMaterials* XrayFluoPlaneDetectorConstruction::materials
private

Definition at line 182 of file XrayFluoPlaneDetectorConstruction.hh.

◆ NbOfPixelColumns

G4int XrayFluoPlaneDetectorConstruction::NbOfPixelColumns
private

Definition at line 205 of file XrayFluoPlaneDetectorConstruction.hh.

◆ NbOfPixelRows

G4int XrayFluoPlaneDetectorConstruction::NbOfPixelRows
private

Definition at line 204 of file XrayFluoPlaneDetectorConstruction.hh.

◆ NbOfPixels

G4int XrayFluoPlaneDetectorConstruction::NbOfPixels
private

Definition at line 203 of file XrayFluoPlaneDetectorConstruction.hh.

◆ OhmicNegMaterial

G4Material* XrayFluoPlaneDetectorConstruction::OhmicNegMaterial
private

Definition at line 186 of file XrayFluoPlaneDetectorConstruction.hh.

◆ OhmicNegThickness

G4double XrayFluoPlaneDetectorConstruction::OhmicNegThickness
private

Definition at line 196 of file XrayFluoPlaneDetectorConstruction.hh.

◆ OhmicPosMaterial

G4Material* XrayFluoPlaneDetectorConstruction::OhmicPosMaterial
private

Definition at line 185 of file XrayFluoPlaneDetectorConstruction.hh.

◆ OhmicPosThickness

G4double XrayFluoPlaneDetectorConstruction::OhmicPosThickness
private

Definition at line 195 of file XrayFluoPlaneDetectorConstruction.hh.

◆ PhiHPGe

G4double XrayFluoPlaneDetectorConstruction::PhiHPGe
private

Definition at line 248 of file XrayFluoPlaneDetectorConstruction.hh.

◆ physiGrain

G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::physiGrain
private

Definition at line 179 of file XrayFluoPlaneDetectorConstruction.hh.

◆ physiHPGe

G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::physiHPGe
private

Definition at line 147 of file XrayFluoPlaneDetectorConstruction.hh.

◆ physiOhmicNeg

G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::physiOhmicNeg
private

Definition at line 171 of file XrayFluoPlaneDetectorConstruction.hh.

◆ physiOhmicPos

G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::physiOhmicPos
private

Definition at line 167 of file XrayFluoPlaneDetectorConstruction.hh.

◆ physiPixel

G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::physiPixel
private

Definition at line 175 of file XrayFluoPlaneDetectorConstruction.hh.

◆ physiPlane

G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::physiPlane
private

Definition at line 155 of file XrayFluoPlaneDetectorConstruction.hh.

◆ physiScreen

G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::physiScreen
private

Definition at line 151 of file XrayFluoPlaneDetectorConstruction.hh.

◆ physiWorld

G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::physiWorld
private

Definition at line 143 of file XrayFluoPlaneDetectorConstruction.hh.

◆ PixelCopyNb

G4int XrayFluoPlaneDetectorConstruction::PixelCopyNb
private

Definition at line 201 of file XrayFluoPlaneDetectorConstruction.hh.

◆ pixelMaterial

G4Material* XrayFluoPlaneDetectorConstruction::pixelMaterial
private

Definition at line 187 of file XrayFluoPlaneDetectorConstruction.hh.

◆ PixelSizeXY

G4double XrayFluoPlaneDetectorConstruction::PixelSizeXY
private

Definition at line 207 of file XrayFluoPlaneDetectorConstruction.hh.

◆ PixelThickness

G4double XrayFluoPlaneDetectorConstruction::PixelThickness
private

Definition at line 206 of file XrayFluoPlaneDetectorConstruction.hh.

◆ planeGranularity

G4bool XrayFluoPlaneDetectorConstruction::planeGranularity
private

Definition at line 135 of file XrayFluoPlaneDetectorConstruction.hh.

◆ planeMaterial

G4Material* XrayFluoPlaneDetectorConstruction::planeMaterial
private

Definition at line 188 of file XrayFluoPlaneDetectorConstruction.hh.

◆ planeSizeXY

G4double XrayFluoPlaneDetectorConstruction::planeSizeXY
private

Definition at line 211 of file XrayFluoPlaneDetectorConstruction.hh.

◆ planeThickness

G4double XrayFluoPlaneDetectorConstruction::planeThickness
private

Definition at line 210 of file XrayFluoPlaneDetectorConstruction.hh.

◆ screenMaterial

G4Material* XrayFluoPlaneDetectorConstruction::screenMaterial
private

Definition at line 184 of file XrayFluoPlaneDetectorConstruction.hh.

◆ screenSizeXY

G4double XrayFluoPlaneDetectorConstruction::screenSizeXY
private

Definition at line 198 of file XrayFluoPlaneDetectorConstruction.hh.

◆ screenThickness

G4double XrayFluoPlaneDetectorConstruction::screenThickness
private

Definition at line 199 of file XrayFluoPlaneDetectorConstruction.hh.

◆ solidGrain

G4Sphere* XrayFluoPlaneDetectorConstruction::solidGrain
private

Definition at line 177 of file XrayFluoPlaneDetectorConstruction.hh.

◆ solidHPGe

G4Box* XrayFluoPlaneDetectorConstruction::solidHPGe
private

Definition at line 145 of file XrayFluoPlaneDetectorConstruction.hh.

◆ solidOhmicNeg

G4Box* XrayFluoPlaneDetectorConstruction::solidOhmicNeg
private

Definition at line 169 of file XrayFluoPlaneDetectorConstruction.hh.

◆ solidOhmicPos

G4Box* XrayFluoPlaneDetectorConstruction::solidOhmicPos
private

Definition at line 165 of file XrayFluoPlaneDetectorConstruction.hh.

◆ solidPixel

G4Box* XrayFluoPlaneDetectorConstruction::solidPixel
private

Definition at line 173 of file XrayFluoPlaneDetectorConstruction.hh.

◆ solidPlane

G4Box* XrayFluoPlaneDetectorConstruction::solidPlane
private

Definition at line 153 of file XrayFluoPlaneDetectorConstruction.hh.

◆ solidScreen

G4Box* XrayFluoPlaneDetectorConstruction::solidScreen
private

Definition at line 149 of file XrayFluoPlaneDetectorConstruction.hh.

◆ solidWorld

G4Box* XrayFluoPlaneDetectorConstruction::solidWorld
private

Definition at line 141 of file XrayFluoPlaneDetectorConstruction.hh.

◆ ThetaHPGe

G4double XrayFluoPlaneDetectorConstruction::ThetaHPGe
private

Definition at line 229 of file XrayFluoPlaneDetectorConstruction.hh.

◆ WorldSizeXY

G4double XrayFluoPlaneDetectorConstruction::WorldSizeXY
private

Definition at line 258 of file XrayFluoPlaneDetectorConstruction.hh.

◆ WorldSizeZ

G4double XrayFluoPlaneDetectorConstruction::WorldSizeZ
private

Definition at line 259 of file XrayFluoPlaneDetectorConstruction.hh.

◆ zRotPhiHPGe

G4RotationMatrix XrayFluoPlaneDetectorConstruction::zRotPhiHPGe
private

Definition at line 255 of file XrayFluoPlaneDetectorConstruction.hh.


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