35 #include "SensitiveDetector.hh"
36 #include "Materials.hh"
58 : fRadiatorDescription(0)
85 G4double foilGasRatio = radThickness/(radThickness+gasGap);
86 G4int foilNumber = 120;
108 G4double totDensity = foilDensity*foilGasRatio
109 + gasDensity*(1.0-foilGasRatio);
111 G4double fractionFoil = foilDensity*foilGasRatio/totDensity;
112 G4double fractionGas = 1.0 - fractionFoil;
132 =
new G4Box(
"World", worldSizeR, worldSizeR, worldSizeZ/2.);
142 G4double radThick = foilNumber*(radThickness + gasGap) - gasGap + detGap;
143 G4double radZ = startZ + 0.5*radThick;
146 =
new G4Box(
"Radiator", 1.1*absorberRadius, 1.1*absorberRadius, 0.5*radThick);
152 "Radiator", logicRadiator, physicsWorld,
false, 0 );
164 G4double zElectrode1 = radZ - radThick/2. - electrodeThick/2.;
165 G4double zElectrode2 = radZ + radThick/2. + electrodeThick/2.;
169 G4cout <<
"fElectrodeThick = " << electrodeThick/
mm <<
" mm" << G4endl <<
G4endl;
176 G4double zPipe = zElectrode2 + electrodeThick/2. + pipeDist/2. + pipeLength/2.;
179 G4cout <<
"pipeLength = " << pipeLength/
mm <<
" mm" << G4endl <<
G4endl;
184 G4double zMylar1 = zPipe - pipeLength/2. - mylarThick/2. - 0.001*
mm;
185 G4double zMylar2 = zPipe + pipeLength/2. + mylarThick/2. + 0.001*
mm;
189 G4cout <<
"fMylarThick = " << mylarThick/
mm <<
" mm" << G4endl <<
G4endl;
194 G4double zMylar = zElectrode2 + electrodeThick/2. + mylarThick/2. + 1.0*
mm;
195 zMylar += ( pipeLength + pipeDist );
198 G4cout <<
"mylarThick = " << mylarThick/
mm <<
" mm" << G4endl <<
G4endl;
202 G4double absorberZ = zMylar + mylarThick + absorberThickness/2.;
205 =
new G4Box(
"Absorber", absorberRadius, 10.*
mm, absorberThickness/2.);
211 "Absorber", logicAbsorber, physicsWorld,
false, 0);
224 G4cout <<
"\n The WORLD is made of "
225 << worldSizeZ/
mm <<
"mm of " << worldMaterial->
GetName();
226 G4cout <<
", the transverse size (R) of the world is "
227 << worldSizeR/
mm <<
" mm. " <<
G4endl;
228 G4cout <<
" The ABSORBER is made of "
229 << absorberThickness/
mm <<
"mm of " << absorberMaterial->
GetName();
230 G4cout <<
", the transverse size (R) is "
231 << absorberRadius/
mm <<
" mm. " <<
G4endl;
232 G4cout <<
" Z position of the (middle of the) absorber "
233 << absorberZ/
mm <<
" mm." <<
G4endl;
static constexpr double mm
CLHEP::Hep3Vector G4ThreeVector
void AddRootLogicalVolume(G4LogicalVolume *lv)
void AddMaterial(G4Material *material, G4double fraction)
Definition of the DetectorALICE06 class.
const G4String & GetName() const
G4double GetDensity() const
static Materials * GetInstance()
G4GLOB_DLL std::ostream G4cout
static constexpr double cm
void AddNewDetector(G4VSensitiveDetector *aSD)
G4Material * GetMaterial(const G4String &)
static G4SDManager * GetSDMpointer()
G4Material * fFoilMaterial
G4VPhysicalVolume * Construct()
G4LogicalVolume * fLogicalVolume
static constexpr double micrometer
G4Material * fGasMaterial
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)