62 : detectorType(0),planeGranularity(false), DeviceSizeX(0),
63 DeviceSizeY(0),DeviceThickness(0),
64 solidWorld(0),logicWorld(0),physiWorld(0),
65 solidHPGe(0),logicHPGe(0),physiHPGe(0),
66 solidScreen(0),logicScreen(0),physiScreen(0),
67 solidPlane (0),logicPlane(0),physiPlane (0),
68 solidOhmicPos(0),logicOhmicPos(0), physiOhmicPos(0),
69 solidOhmicNeg(0),logicOhmicNeg(0), physiOhmicNeg(0),
70 solidPixel(0),logicPixel(0), physiPixel(0),
71 screenMaterial(0),OhmicPosMaterial(0), OhmicNegMaterial(0),
72 pixelMaterial(0),planeMaterial(0),
73 defaultMaterial(0),HPGeSD(0)
111 G4String defaultDetectorType =
"sili";
118 G4cout <<
"XrayFluoPlaneDetectorConstruction created" <<
G4endl;
142 else if (type==
"hpge")
149 execp << type +
"detector type unknown";
150 G4Exception(
"XrayFluoPlaneDetectorConstruction::SetDetectorType()",
"example-xray_fluorescence03",
167 G4cout <<
"XrayFluoPlaneDetectorConstruction deleted" <<
G4endl;
401 G4double b = 2. * (std::sqrt(3.) - std::sqrt(2.))/std::sqrt(3.);
421 for (
G4int k=0; k < nbOfGrainsZ ; k++ ) {
422 for (
G4int j=0; j < nbOfGrainsY ; j++ ) {
423 for (
G4int i=0; i < nbOfGrainsX ; i++ ) {
435 else if ( ((j+1) % 2) == 0 ) {
440 else if ( ((k+2) % 3) == 0 ) {
448 else if ( (j+1)%2 == 0 ) {
454 else if ( (k+1)%3 == 0 ) {
462 else if ( (j+1)%2 == 0 ) {
470 grainInitPositionY + j*grainStepY,
471 grainInitPositionZ + k*grainStepZ),
566 G4cout <<
"-----------------------------------------------------------------------"
568 <<
"The plane is a box whose size is: "
583 <<
"-------------------------------------------------------------------------"
G4VPhysicalVolume * physiHPGe
G4LogicalVolume * logicHPGe
G4LogicalVolume * logicScreen
XrayFluoPlaneDetectorConstruction()
G4LogicalVolume * logicOhmicNeg
std::ostringstream G4ExceptionDescription
CLHEP::Hep3Vector G4ThreeVector
~XrayFluoPlaneDetectorConstruction()
G4Material * GetMaterial() const
XrayFluoVDetectorType * GetDetectorType()
const G4String & GetName() const
void SetVisibility(G4bool)
G4LogicalVolume * logicWorld
G4VPhysicalVolume * physiGrain
void SetDetectorType(G4String type)
G4VPhysicalVolume * physiPixel
void SetForceSolid(G4bool)
G4VPhysicalVolume * physiWorld
G4LogicalVolume * logicGrain
static XrayFluoPlaneDetectorConstruction * GetInstance()
static XrayFluoNistMaterials * GetInstance()
virtual void DefineWorldVolume(G4VPhysicalVolume *worldVol, G4bool topologyIsChanged=true)
void PrintApparateParameters()
void DefineDefaultMaterials()
static XrayFluoSiLiDetectorType * GetInstance()
G4Material * pixelMaterial
G4Material * screenMaterial
G4Material * OhmicNegMaterial
G4VPhysicalVolume * physiOhmicPos
G4Material * defaultMaterial
G4LogicalVolume * logicPixel
G4GLOB_DLL std::ostream G4cout
void DeleteGrainObjects()
G4VPhysicalVolume * physiOhmicNeg
G4VPhysicalVolume * physiScreen
G4RotationMatrix zRotPhiHPGe
XrayFluoPlaneDetectorMessenger * detectorMessenger
static XrayFluoPlaneDetectorConstruction * instance
G4Material * GetMaterial(G4String)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void AddNewDetector(G4VSensitiveDetector *aSD)
G4LogicalVolume * logicOhmicPos
static G4RunManager * GetRunManager()
static G4SDManager * GetSDMpointer()
static const G4VisAttributes Invisible
static XrayFluoHPGeDetectorType * GetInstance()
G4VPhysicalVolume * Construct()
XrayFluoNistMaterials * materials
G4LogicalVolume * logicPlane
G4double OhmicNegThickness
void SetMaterial(G4Material *pMaterial)
G4Material * planeMaterial
XrayFluoVDetectorType * detectorType
G4Material * OhmicPosMaterial
void SetPlaneMaterial(G4String newMaterial)
void SetVisAttributes(const G4VisAttributes *pVA)
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
G4double OhmicPosThickness
void ComputeApparateParameters()
G4VPhysicalVolume * ConstructApparate()
G4VPhysicalVolume * physiPlane