66 : detectorType(0),planeGranularity(false), DeviceSizeX(0),
67 DeviceSizeY(0),DeviceThickness(0),
68 solidWorld(0),logicWorld(0),physiWorld(0),
69 solidHPGe(0),logicHPGe(0),physiHPGe(0),
70 solidScreen(0),logicScreen(0),physiScreen(0),
71 solidPlane (0),logicPlane(0),physiPlane (0),
72 solidOhmicPos(0),logicOhmicPos(0), physiOhmicPos(0),
73 solidOhmicNeg(0),logicOhmicNeg(0), physiOhmicNeg(0),
74 solidPixel(0),logicPixel(0), physiPixel(0),
75 screenMaterial(0),OhmicPosMaterial(0), OhmicNegMaterial(0),
76 pixelMaterial(0),planeMaterial(0),
77 defaultMaterial(0),HPGeSD(0)
115 G4String defaultDetectorType =
"sili";
122 G4cout <<
"XrayFluoPlaneDetectorConstruction created" <<
G4endl;
146 else if (type==
"hpge")
153 execp << type +
"detector type unknown";
154 G4Exception(
"XrayFluoPlaneDetectorConstruction::SetDetectorType()",
"example-xray_fluorescence03",
173 G4cout <<
"XrayFluoPlaneDetectorConstruction deleted" <<
G4endl;
407 G4double b = 2. * (std::sqrt(3.) - std::sqrt(2.))/std::sqrt(3.);
427 for (
G4int k=0; k < nbOfGrainsZ ; k++ ) {
428 for (
G4int j=0; j < nbOfGrainsY ; j++ ) {
429 for (
G4int i=0; i < nbOfGrainsX ; i++ ) {
441 else if ( ((j+1) % 2) == 0 ) {
446 else if ( ((k+2) % 3) == 0 ) {
454 else if ( (j+1)%2 == 0 ) {
460 else if ( (k+1)%3 == 0 ) {
468 else if ( (j+1)%2 == 0 ) {
476 grainInitPositionY + j*grainStepY,
477 grainInitPositionZ + k*grainStepZ),
575 G4cout <<
"-----------------------------------------------------------------------"
577 <<
"The plane is a box whose size is: "
592 <<
"-------------------------------------------------------------------------"
G4VPhysicalVolume * physiHPGe
void PrintApparateParameters()
XrayFluoPlaneDetectorMessenger * detectorMessenger
static G4RunManager * GetRunManager()
CLHEP::Hep3Vector G4ThreeVector
std::ostringstream G4ExceptionDescription
std::vector< ExP01TrackerHit * > a
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
static constexpr double mm
G4LogicalVolume * logicPixel
void AddNewDetector(G4VSensitiveDetector *aSD)
G4LogicalVolume * logicGrain
static XrayFluoSiLiDetectorType * GetInstance()
G4LogicalVolume * logicPlane
~XrayFluoPlaneDetectorConstruction()
XrayFluoVDetectorType * GetDetectorType() const
void SetPlaneMaterial(G4String newMaterial)
G4VPhysicalVolume * physiScreen
XrayFluoVDetectorType * detectorType
G4LogicalVolume * logicScreen
G4Material * GetMaterial() const
static const G4VisAttributes & GetInvisible()
static XrayFluoHPGeDetectorType * GetInstance()
const G4String & GetName() const
void DeleteGrainObjects()
static constexpr double m
G4Material * planeMaterial
XrayFluoNistMaterials * materials
static constexpr double deg
static XrayFluoPlaneDetectorConstruction * GetInstance()
static XrayFluoPlaneDetectorConstruction * instance
static G4GeometryManager * GetInstance()
G4VPhysicalVolume * physiOhmicPos
static constexpr double twopi
G4double OhmicNegThickness
G4Material * pixelMaterial
G4LogicalVolume * logicOhmicNeg
void OpenGeometry(G4VPhysicalVolume *vol=0)
void SetVisAttributes(const G4VisAttributes *pVA)
G4LogicalVolume * logicHPGe
void Put(const value_type &val) const
G4VPhysicalVolume * physiGrain
G4VPhysicalVolume * Construct()
G4Material * defaultMaterial
G4LogicalVolume * logicWorld
void SetForceSolid(G4bool=true)
G4Cache< XrayFluoSD * > HPGeSD
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
void SetVisibility(G4bool=true)
G4VPhysicalVolume * physiOhmicNeg
static G4SDManager * GetSDMpointer()
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
void DefineDefaultMaterials()
void ComputeApparateParameters()
G4VPhysicalVolume * physiPixel
G4VPhysicalVolume * physiWorld
G4RotationMatrix zRotPhiHPGe
G4GLOB_DLL std::ostream G4cout
static constexpr double cm
void SetMaterial(G4Material *pMaterial)
static constexpr double pi
XrayFluoPlaneDetectorConstruction()
void ConstructSDandField()
G4Material * screenMaterial
G4VPhysicalVolume * ConstructApparate()
G4LogicalVolume * logicOhmicPos
G4double OhmicPosThickness
HepRotation & rotateX(double delta)
G4Material * OhmicPosMaterial
G4Material * GetMaterial(G4String)
G4Material * OhmicNegMaterial
static XrayFluoNistMaterials * GetInstance()
void SetDetectorType(G4String type)
G4VPhysicalVolume * physiPlane