35 #include "SensitiveDetector.hh" 
   36 #include "Materials.hh" 
   56   : fRadiatorDescription(0) 
 
   83   G4double foilGasRatio = radThickness/(radThickness+gasGap);
 
  110   G4double totDensity  = foilDensity*foilGasRatio 
 
  111                        + gasDensity*(1.0-foilGasRatio);
 
  113   G4double fractionFoil =  foilDensity*foilGasRatio/totDensity;
 
  114   G4double fractionGas  =  gasDensity*(1.0-foilGasRatio)/totDensity;
 
  116   radiatorMat->AddMaterial(ch2, fractionFoil);
 
  117   radiatorMat->AddMaterial(air, fractionGas);
 
  128   foilGasRatio = 0.99999;
 
  129   foilDensity  = 1.2928*
mg/
cm3; 
 
  130   gasDensity   = 0.178*
mg/
cm3; 
 
  131   totDensity   = foilDensity*foilGasRatio + gasDensity*(1.0-foilGasRatio);
 
  133   fractionFoil =  foilDensity*foilGasRatio/totDensity;
 
  134   fractionGas  =  gasDensity*(1.0-foilGasRatio)/totDensity;
 
  137   pipeMat->AddMaterial(air, fractionFoil);
 
  138   pipeMat->AddMaterial(he, fractionGas);
 
  148     = 
new G4Box(
"World", worldSizeR, worldSizeR, worldSizeZ/2.);
 
  158   G4double radThick = foilNumber*(radThickness + gasGap) - gasGap + detGap;
 
  159   G4double radZ = startZ + 0.5*radThick;
 
  162     = 
new G4Box(
"Radiator", 1.1*absorberRadius, 1.1*absorberRadius, 0.5*radThick);
 
  168                     "Radiator", logicRadiator, physicsWorld, 
false, 0 );
 
  180   G4double zElectrode1 = radZ - radThick/2. - electrodeThick/2.;
 
  181   G4double zElectrode2 = radZ + radThick/2. + electrodeThick/2.;
 
  185   G4cout << 
"electrodeThick = " << electrodeThick/
mm << 
" mm" << G4endl << 
G4endl;
 
  191   G4double zPipe = zElectrode2 + electrodeThick/2. + pipeLength/2. + pipeDist/2.;
 
  194   G4cout << 
"pipeLength = " << pipeLength/
mm << 
" mm" << G4endl << 
G4endl;
 
  199   G4double zMylar1 = zPipe - pipeLength/2. - mylarThick/2 - 0.01*
mm;
 
  200   G4double zMylar2 = zPipe + pipeLength/2. + mylarThick/2 + 0.01*
mm;
 
  204   G4cout << 
"fMylarThick = " << mylarThick/
mm << 
" mm" << G4endl << 
G4endl;
 
  209   G4double zMylar = zElectrode2 + electrodeThick/2. + mylarThick/2. + 1.0*
mm;
 
  210   zMylar += ( pipeLength + pipeDist );
 
  213   G4cout << 
"mylarThick = " << mylarThick/
mm << 
" mm" << G4endl << 
G4endl;
 
  217   G4double absorberZ = zMylar + mylarThick/2. + absorberThickness/2.;
 
  220     = 
new G4Box(
"Absorber", 10.*
mm, 10.*
mm, absorberThickness/2.);
 
  226                     "Absorber", logicAbsorber, physicsWorld, 
false, 0);
 
  241   G4cout << 
"\n The  WORLD   is made of " 
  242          << worldSizeZ/
mm << 
"mm of " << worldMaterial->
GetName();
 
  243   G4cout << 
", the transverse size (R) of the world is "  
  244          << worldSizeR/
mm << 
" mm. " << 
G4endl;
 
  245   G4cout << 
" The ABSORBER is made of " 
  246          << absorberThickness/
mm << 
"mm of " << absorberMaterial->
GetName();
 
  247   G4cout << 
", the transverse size (R) is "  
  248          << absorberRadius/
mm << 
" mm. " << 
G4endl;
 
  249   G4cout << 
" Z position of the (middle of the) absorber "  
  250          << absorberZ/
mm << 
"  mm." << 
G4endl;
 
  257   G4cout << 
"fRadiatorMat = " << radiatorMat->GetName() << 
G4endl;
 
static constexpr double mm
static constexpr double mg
CLHEP::Hep3Vector G4ThreeVector
void AddRootLogicalVolume(G4LogicalVolume *lv)
const G4String & GetName() const 
G4double GetDensity() const 
static Materials * GetInstance()
G4GLOB_DLL std::ostream G4cout
static constexpr double cm
static constexpr double cm3
void AddNewDetector(G4VSensitiveDetector *aSD)
G4Material * GetMaterial(const G4String &)
static G4SDManager * GetSDMpointer()
Definition of the DetectorBari05 class. 
G4Material * fFoilMaterial
G4VPhysicalVolume * Construct()
G4LogicalVolume * fLogicalVolume
static constexpr double micrometer
G4Material * fGasMaterial
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)