58 std::cout<<
"\n\n\tcentre of the inside box: " <<centreBoxInside/
mm<<
" [mm]"<<
G4endl;
59 std::cout<<
"\thalf thickness of the inside box: " <<halfBoxInside_Thickness/
mm<<
" [mm]\n"<<
G4endl;
77 G4int natoms, ncomponents;
93 boxInSideMaterial=PMMA;
94 std::cout <<
"boxInSideMaterial name "<<boxInSideMaterial->
GetName() <<
" density "<< boxInSideMaterial->
GetDensity()/(
g/
cm3) <<
" g/cm3"<<
G4endl;
96 centreBoxInside.
set(0,0,-50);
97 halfBoxInside_Thickness=3.*
cm;
99 G4Box *boxInSide=
new G4Box(
"BoxInSide", halfBoxInside_Thickness, halfBoxInside_Thickness, halfBoxInside_Thickness);
101 boxInSidePV =
new G4PVPlacement(0, centre+centreBoxInside,
"BoxInsidePV", boxInSideLV,PVWorld,
false,0,0);
106 G4Box *layer=
new G4Box(
"layer", halfSize.
getX(), halfSize.
getY(), halfPMMA_Z_Thickness);
110 std::cout <<
"layerMaterial name "<<layerMaterial->
GetName() <<
" density " << layerMaterial->
GetDensity()/(
g/
cm3) <<
" g/cm3"<<
G4endl;
114 boxOutSideMaterial=lightWater;
115 G4double halfBoxOutSide_Thickness=halfSize.
getZ()-halfPMMA_Z_Thickness;
116 G4Box *boxOutSide=
new G4Box(
"BoxOutSide", halfSize.
getX(), halfSize.
getY(), halfBoxOutSide_Thickness);
123 "OutMinusInBoxPV",OutMinusInBoxLV,PVWorld,
false,0);
125 std::cout <<
"boxOutSideMaterial name "<<boxOutSideMaterial->
GetName() <<
" density "<<boxOutSideMaterial->
GetDensity()/(
g/
cm3) <<
" g/cm3"<<
G4endl;
138 layerLV->SetRegion(regVol);
166 layerLV->SetVisAttributes(simple_PMMA_VisAttWalls);
169 sensDet=
new CML2SDWithVoxels(
"BoxInBoxPhantom", saving_in_ROG_Voxels_every_events, seed, ROGOutFile, bSaveROG, centre, halfSize, 100, 100, 100);
179 layerLV->SetSensitiveDetector(sensDet);
void set(double x, double y, double z)
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
static constexpr double mm
G4ThreeVector GetFrameTranslation() const
CLHEP::Hep3Vector G4ThreeVector
void AddRootLogicalVolume(G4LogicalVolume *lv)
const G4String & GetName() const
void SetLineWidth(G4double)
void SetUserLimits(G4UserLimits *pULimits)
G4double GetDensity() const
void SetProductionCut(G4double cut, G4int index=-1)
static G4NistManager * Instance()
void SetRegion(G4Region *reg)
double A(double temperature)
void SetVisibility(G4bool=true)
static constexpr double cm
void SetROgeometry(G4VReadOutGeometry *value)
static constexpr double cm3
void AddNewDetector(G4VSensitiveDetector *aSD)
static G4SDManager * GetSDMpointer()
bool Construct(G4VPhysicalVolume *PVWorld, G4int saving_in_ROG_Voxels_every_events, G4int seed, G4String ROGOutFile, G4bool bSaveROG)
void setBuildData(G4ThreeVector centre, G4ThreeVector halfSize, G4int NumberOfVoxelsAlongX, G4int NumberOfVoxelsAlongY, G4int NumberOfVoxelsAlongZ)
void SetProductionCuts(G4ProductionCuts *cut)
void AddElement(G4Element *element, G4int nAtoms)
static constexpr double mole
void SetVisAttributes(const G4VisAttributes *pVA)
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)