Главная страница

Дозиметрии и ионизирующего излучения 6 Радиационный


Скачать 352.38 Kb.
НазваниеДозиметрии и ионизирующего излучения 6 Радиационный
Дата07.12.2022
Размер352.38 Kb.
Формат файлаdocx
Имя файлаFedotova.A.A..03.04.02.Medicinskaya.fizika.docx
ТипТезисы
#833852
страница14 из 15
1   ...   7   8   9   10   11   12   13   14   15

ТЕЗИСЫ И МАТЕРИАЛЫ ПУБЛИКАЦИЙ





  1. Федотова А.А. Твердотельные детекторы ионизирующего излучения в задачах персональной дозиметрии / А.А. Федотова // Итоговая научно- образовательная конференция студентов Казанского федерального университета 2021 года: сб. тезисов. Казань: Издательство Казанского Университета (в печати).

ПРИЛОЖЕНИЕ А



Часть кода, описывающая конструкцию детектора



    1. DetectorConstruction.cc


#include "DetectorConstruction.hh" #include "G4Material.hh"

#include "G4MaterialTable.hh" #include "G4Element.hh" #include "G4ElementTable.hh" #include "G4Box.hh"

#include "G4Tubs.hh" #include "G4Polycone.hh"

#include "G4LogicalVolume.hh" #include "G4ThreeVector.hh" #include "G4PVPlacement.hh" #include "G4VisAttributes.hh"

#include "G4LogicalBorderSurface.hh" #include "G4OpticalSurface.hh"

using namespace CLHEP;
DetectorConstruction::DetectorConstruction()

{ }

DetectorConstruction::DetectorConstruction()

{ }

G4VPhysicalVolume* DetectorConstruction::Construct()

{
//

// Material definitions

//
G4String name, symbol; //a=mass of a mole; G4double a, z, density; //z=mean number of protons;
G4int ncomponents, natoms;

G4double pressure = 3.e-18*pascal; G4double temperature = 2.73*kelvin; density = 1.e-25*g/cm3;

G4Material* Vacuum = new G4Material(name="Galactic", z=1., a=1.01*g/mole,

density,kStateGas,temperature,pressure);
// define simple Elements

// O

a = 15.999*g/mole;

G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a);
// Si

a = 28.0855*g/mole;

G4Element* Si = new G4Element(name="Silicon" ,symbol="Si" , z= 14., a);
// Cs

a = 132.905*g/mole;

G4Element* Cs = new G4Element(name="Cesium",symbol="Cs" , z= 55., a);
// define simple materials

// Al reflector density = 2.700*g/cm3; a = 26.98*g/mole;

G4Material* AluR = new G4Material(name="AluR", z=13., a, density);
// MgO reflector density = 2.0*g/cm3;

G4Material* MgO = new G4Material(name="MgO", density, ncomponents=2); MgO->AddElement(Mg, natoms=1);

MgO->AddElement(O, natoms=1);
// CsI(Tl)

// Set my own material a = 132.9054519*g/mole;

G4Element* elCs = new G4Element(name="Cesium",symbol="Cs" , z= 55., a); a = 126.90447*g/mole;

G4Element* elI = new G4Element(name="Iodine" ,symbol="I" , z= 53., a); density = 4.51*g/cm3;

G4Material* CsI = new G4Material(name="CsI",density,ncomponents=2); CsI->AddElement(elCs, natoms=1);

CsI->AddElement(elI, natoms=1);

G4Element* Tl = new G4Element(name="Thallium", symbol="Tl",z= 81., a= 204.385*g/mole);

G4Material* CsI_Tl = new G4Material("CsI_Tl",density= 4.51*g/cm3, ncomponents=2);

CsI_Tl->AddMaterial(CsI,99.6*perCent); CsI_Tl->AddElement(Tl,0.4*perCent);
//Si

density = 2.33*g/cm3;

G4Material* Silicon = new G4Material(name="Silicon", density= 2.33*g/cm3, ncomponents=1);

Silicon->AddElement(Si, natoms=1);
//

// Optical properties

//
const G4int nEntries = 2;

G4double PhotonEnergy[nEntries] = {1.0*eV,7.0*eV};
// MgO reflector

G4double MgORefractionIndex[nEntries] = {1.0,1.0};

G4double MgOAbsorptionLength[nEntries] = {1.0E-9*m,1.0E-9*m}; G4MaterialPropertiesTable* MgOMPT = new G4MaterialPropertiesTable();

MgOMPT->AddProperty("RINDEX",PhotonEnergy,MgORefractionIndex,

nEntries);

MgOMPT->AddProperty("ABSLENGTH",PhotonEnergy,MgOAbsorptionLength, nEntries);

MgO->SetMaterialPropertiesTable(MgOMPT);
// AluR reflector

G4double AluRRindex[nEntries] = {0.9,0.9};//{0.98,0.98}; G4MaterialPropertiesTable* AluRMPT = new G4MaterialPropertiesTable(); AluRMPT->AddProperty("REFLECTIVITY",PhotonEnergy,AluRRindex,

nEntries); AluR->SetMaterialPropertiesTable(AluRMPT);
// CsI(Tl)

G4double CsI_TlRefractionIndex[nEntries] = {1.79,1.79}; G4double CsI_TlAbsorptionLength[nEntries] = {50.*cm,50.*cm};

G4MaterialPropertiesTable* CsI_TlMPT = new G4MaterialPropertiesTable(); CsI_TlMPT->AddProperty("RINDEX",PhotonEnergy,CsI_TlRefractionIndex,

nEntries);

CsI_TlMPT->AddProperty("ABSLENGTH",PhotonEnergy,CsI_TlAbsorptionLength,

nEntries); G4double ScintEnergy2[nEntries] = {3.26*eV,3.44*eV}; G4double ScintFast2[nEntries] = {1.0,1.0};
CsI_TlMPT->AddProperty("FASTCOMPONENT",ScintEnergy2,ScintFast2,nEntries); CsI_TlMPT->AddConstProperty("SCINTILLATIONYIELD",54./keV);

CsI_TlMPT->AddConstProperty("RESOLUTIONSCALE",1.); CsI_TlMPT->AddConstProperty("FASTTIMECONSTANT",600.*ns); CsI_TlMPT->AddConstProperty("YIELDRATIO",1.);

CsI_Tl->SetMaterialPropertiesTable(CsI_TlMPT);
// Vacuum

G4double vacRefractionIndex[nEntries] = {1.0,1.0}; G4MaterialPropertiesTable* vacMPT = new G4MaterialPropertiesTable();

vacMPT-

>AddProperty("RINDEX",PhotonEnergy,vacRefractionIndex,nEntries); Vacuum->SetMaterialPropertiesTable(vacMPT);
//

// Detector geometry

//

// World

G4double WorldSize= 0.4*30.*cm;
G4Box*

solidWorld = new G4Box("World", //its name WorldSize/2,WorldSize/2,WorldSize/2); //its size

G4LogicalVolume*

logicWorld = new G4LogicalVolume(solidWorld, //its solid



G4VPhysicalVolume*

Vacuum, //its material

"World"); //its name

physiWorld = new G4PVPlacement(0, //no rotation G4ThreeVector(),//at (0,0,0)

"World", //its name logicWorld, //its logical volume

NULL, //its mother volume false, //no boolean operation

0); //copy number

// Detector

G4double ScintpX = 7.5*mm; // red G4double ScintpY = 1.5*mm; // green G4double ScintpZ = 7.5*mm; // blue G4double AirGap = 0.5*mm;

G4double ReflectorThickness = 0.1*mm; G4double PMTWindowThickness = 0.1*mm;
// Reflector

G4Box* solidReflectorX = new G4Box("ReflectorX", ReflectorThickness , ScintpY + AirGap+ ReflectorThickness , ScintpZ + AirGap+ ReflectorThickness);

G4Box* solidReflectorY = new G4Box("ReflectorY", ScintpX + AirGap + ReflectorThickness, ReflectorThickness , ScintpZ + AirGap+ ReflectorThickness);

G4Box* solidReflectorZ = new G4Box("ReflectorZ", ScintpX + AirGap + ReflectorThickness, ScintpY + AirGap + ReflectorThickness, ReflectorThickness );

G4Box* solidReflectorZ2 = new G4Box("ReflectorZ2", 3.3*mm , ScintpY + AirGap + ReflectorThickness, ReflectorThickness );
G4LogicalVolume* logicReflectorX = new G4LogicalVolume(solidReflectorX,AluR, "ReflectorX"); G4LogicalVolume* logicReflectorY = new G4LogicalVolume(solidReflectorY,AluR, "ReflectorY"); G4LogicalVolume* logicReflectorZ = new G4LogicalVolume(solidReflectorZ,AluR, "ReflectorZ"); G4LogicalVolume* logicReflectorZ2 = new G4LogicalVolume(solidReflectorZ2,AluR, "ReflectorZ2");
G4ThreeVector positionReflectorXm = G4ThreeVector(-ScintpX - ReflectorThickness - AirGap, 0.*cm,0.*cm);

G4ThreeVector positionReflectorXp = G4ThreeVector( ScintpX + ReflectorThickness + AirGap, 0.*cm,0.*cm);

G4ThreeVector positionReflectorYm = G4ThreeVector(0.*cm, -ScintpY - ReflectorThickness - AirGap, 0.*cm);

G4ThreeVector positionReflectorYp = G4ThreeVector(0.*cm, ScintpY + ReflectorThickness + AirGap, 0.*cm);

G4ThreeVector positionReflectorZ = G4ThreeVector(0.*cm, 0.*cm,-ScintpZ - ReflectorThickness - AirGap );

G4ThreeVector positionReflectorZ2m = G4ThreeVector( 4.8*mm + ReflectorThickness + AirGap, 0.*cm,+ScintpZ + ReflectorThickness + AirGap

);

G4ThreeVector positionReflectorZ2p = G4ThreeVector(-4.8*mm - ReflectorThickness - AirGap, 0.*cm,+ScintpZ + ReflectorThickness + AirGap

);
G4VPhysicalVolume* physiReflectorXm = new G4PVPlacement(0,positionReflectorXm,

"ReflectorXm",logicReflectorX,

physiWorld,false,0); G4VPhysicalVolume* physiReflectorXp = new G4PVPlacement(0,positionReflectorXp, "ReflectorXp",logicReflectorX,

physiWorld,false,0); G4VPhysicalVolume* physiReflectorYm = new

G4PVPlacement(0,positionReflectorYm,"ReflectorYm",logicReflectorY,

physiWorld,false,0); G4VPhysicalVolume* physiReflectorYp = new

G4PVPlacement(0,positionReflectorYp,"ReflectorYp",logicReflectorY,

physiWorld,false,0); G4VPhysicalVolume* physiReflectorZ = new G4PVPlacement(0,positionReflectorZ,"ReflectorZ",logicReflectorZ,

physiWorld,false,0); G4VPhysicalVolume* physiReflectorZ2m = new

G4PVPlacement(0,positionReflectorZ2m,"ReflectorZ2m",logicReflectorZ2,

physiWorld,false,0); G4VPhysicalVolume* physiReflectorZ2p = new

G4PVPlacement(0,positionReflectorZ2p,"ReflectorZ2p",logicReflectorZ2,

physiWorld,false,0);
//Crystal

G4Box* solidCrystal = new G4Box("Crystal", ScintpX, ScintpY, ScintpZ);

G4LogicalVolume* logicCrystal = new G4LogicalVolume(solidCrystal,CsI_Tl

"Crystal"); G4ThreeVector positionCrystal = G4ThreeVector(0.*cm,0.*cm,0.*cm); G4VPhysicalVolume* physiCrystal = new G4PVPlacement(0,positionCrystal,

"Crystal",logicCrystal, physiWorld,false,0);
// PMT window

G4Box* solidPMTWindow = new G4Box("PMT window", 1.5*mm, ScintpY + AirGap

+ PMTWindowThickness, ScintpZ/150);

G4LogicalVolume* logicPMTWindow = new G4LogicalVolume(solidPMTWindow,

Silicon,"PMTWindow"); G4ThreeVector positionPMTWindow = G4ThreeVector(0.*cm,0.*cm,

ScintpZ + AirGap +

PMTWindowThickness);

G4VPhysicalVolume* physiPMTWindow = new G4PVPlacement(0,positionPMTWindow,

"PMTWindow",logicPMTWindow,physiWorld,false,0);
1   ...   7   8   9   10   11   12   13   14   15


написать администратору сайта