65 : detectorType(0),planeGranularity(false), DeviceSizeX(0),
66 DeviceSizeY(0),DeviceThickness(0),
67 solidWorld(0),logicWorld(0),physiWorld(0),
68 solidHPGe(0),logicHPGe(0),physiHPGe(0),
69 solidScreen(0),logicScreen(0),physiScreen(0),
70 solidPlane (0),logicPlane(0),physiPlane (0),
71 solidOhmicPos(0),logicOhmicPos(0), physiOhmicPos(0),
72 solidOhmicNeg(0),logicOhmicNeg(0), physiOhmicNeg(0),
73 solidPixel(0),logicPixel(0), physiPixel(0),
74 screenMaterial(0),OhmicPosMaterial(0), OhmicNegMaterial(0),
75 pixelMaterial(0),planeMaterial(0),
76 defaultMaterial(0),HPGeSD(0)
114 G4String defaultDetectorType =
"sili";
121 G4cout <<
"XrayFluoPlaneDetectorConstruction created" <<
G4endl;
145 else if (type==
"hpge")
152 execp << type +
"detector type unknown";
153 G4Exception(
"XrayFluoPlaneDetectorConstruction::SetDetectorType()",
"example-xray_fluorescence03",
172 G4cout <<
"XrayFluoPlaneDetectorConstruction deleted" <<
G4endl;
406 G4double b = 2. * (std::sqrt(3.) - std::sqrt(2.))/std::sqrt(3.);
426 for (
G4int k=0; k < nbOfGrainsZ ; k++ ) {
427 for (
G4int j=0; j < nbOfGrainsY ; j++ ) {
428 for (
G4int i=0; i < nbOfGrainsX ; i++ ) {
440 else if ( ((j+1) % 2) == 0 ) {
445 else if ( ((k+2) % 3) == 0 ) {
453 else if ( (j+1)%2 == 0 ) {
459 else if ( (k+1)%3 == 0 ) {
467 else if ( (j+1)%2 == 0 ) {
475 grainInitPositionY + j*grainStepY,
476 grainInitPositionZ + k*grainStepZ),
574 G4cout <<
"-----------------------------------------------------------------------" 576 <<
"The plane is a box whose size is: " 591 <<
"-------------------------------------------------------------------------" G4VPhysicalVolume * physiHPGe
void Put(const value_type &val) const
G4LogicalVolume * logicHPGe
G4LogicalVolume * logicScreen
XrayFluoPlaneDetectorConstruction()
G4LogicalVolume * logicOhmicNeg
std::ostringstream G4ExceptionDescription
CLHEP::Hep3Vector G4ThreeVector
~XrayFluoPlaneDetectorConstruction()
HepRotation & rotateX(double delta)
void ConstructSDandField()
void SetVisibility(G4bool)
G4Material * GetMaterial() const
G4LogicalVolume * logicWorld
G4VPhysicalVolume * physiGrain
void SetDetectorType(G4String type)
G4VPhysicalVolume * physiPixel
void SetForceSolid(G4bool)
G4VPhysicalVolume * physiWorld
G4LogicalVolume * logicGrain
static XrayFluoPlaneDetectorConstruction * GetInstance()
static XrayFluoNistMaterials * GetInstance()
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
XrayFluoVDetectorType * GetDetectorType() const
G4RotationMatrix zRotPhiHPGe
XrayFluoPlaneDetectorMessenger * detectorMessenger
static const double twopi
static G4GeometryManager * GetInstance()
G4Cache< XrayFluoSD * > HPGeSD
static XrayFluoPlaneDetectorConstruction * instance
G4Material * GetMaterial(G4String)
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4LogicalVolume * logicOhmicPos
static G4RunManager * GetRunManager()
static const G4VisAttributes Invisible
static XrayFluoHPGeDetectorType * GetInstance()
G4VPhysicalVolume * Construct()
XrayFluoNistMaterials * materials
void OpenGeometry(G4VPhysicalVolume *vol=0)
G4LogicalVolume * logicPlane
G4double OhmicNegThickness
const G4String & GetName() const
void SetMaterial(G4Material *pMaterial)
G4Material * planeMaterial
XrayFluoVDetectorType * detectorType
G4Material * OhmicPosMaterial
void SetPlaneMaterial(G4String newMaterial)
void SetVisAttributes(const G4VisAttributes *pVA)
G4double OhmicPosThickness
void ComputeApparateParameters()
G4VPhysicalVolume * ConstructApparate()
G4VPhysicalVolume * physiPlane