68 fWorldChanged(false), fAbsorberMaterial(0), fGapMat(0), fSetUp(
"simpleALICE"),
69 fWorldMaterial(0), fSolidWorld(0), fLogicWorld(0), fPhysicsWorld(0),
71 fSolidRadiator(0), fLogicRadiator(0), fPhysicsRadiator(0),
72 fRadiatorMat(0), fPipe(false), fPipeField(false),
73 fSolidAbsorber(0), fLogicAbsorber(0), fPhysicsAbsorber(0),
74 fMagField(0), fCalorimeterSD(0), fRegGasDet(0),
75 fRadRegion(0), fMat(0)
107 if(
fSetUp ==
"simpleALICE" )
111 else if(
fSetUp ==
"alice06" )
115 else if(
fSetUp ==
"bari05" )
119 else if(
fSetUp ==
"harris73" )
123 else if(
fSetUp ==
"watase86" )
127 else if(
fSetUp ==
"barr90" )
134 "Experimental setup is unsupported. Check /XTRdetector/setup " <<
G4endl;
196 radiatorMat->AddMaterial( Mylar, fractionFoil );
197 radiatorMat->AddMaterial( Air, fractionGas );
372 G4double fractionGas = 1.0 - fractionFoil;
512 0., fieldStrength*std::cos(alphaB)));
681 radiatorMat->AddMaterial( CH2, fractionFoil );
682 radiatorMat->AddMaterial( Air, fractionGas );
698 foilDensity = 1.2928*
mg/
cm3;
699 gasDensity = 0.178*
mg/
cm3;
706 fPipeMat->AddMaterial( Air, fractionFoil );
707 fPipeMat->AddMaterial( He, fractionGas );
786 if ( std::fabs(pipe) > 1.e-15 )
829 if ( std::fabs(pipe) > 1.e-15 )
852 if ( std::fabs(pipe) > 1.e-15 ) zMylar += (
fPipeLength + pipeDist );
951 radiatorMat->AddMaterial( Mylar, fractionFoil );
952 radiatorMat->AddMaterial( Air, fractionGas );
1118 radiatorMat->AddMaterial( Li, fractionFoil );
1119 radiatorMat->AddMaterial( He, fractionGas );
1285 radiatorMat->AddMaterial( CH2, fractionFoil );
1286 radiatorMat->AddMaterial( CO2, fractionGas );
1531 G4cout <<
"\n The WORLD is made of "
1533 G4cout <<
", the transverse size (R) of the world is " <<
1535 G4cout <<
" The ABSORBER is made of "
1539 G4cout <<
" Z position of the (middle of the) absorber "
1564 for (
size_t J=0 ; J<theMaterialTable->size() ; J++)
1566 pttoMaterial = (*theMaterialTable)[J];
1568 if(pttoMaterial->
GetName() == materialChoice)
1588 for (
size_t J=0 ; J<theMaterialTable->size() ; J++)
1590 pttoMaterial = (*theMaterialTable)[J];
1592 if(pttoMaterial->
GetName() == materialChoice)
1611 for (
size_t J=0 ; J<theMaterialTable->size() ; J++)
1613 pttoMaterial = (*theMaterialTable)[J];
1615 if(pttoMaterial->
GetName() == materialChoice)
void SetAbsorberMaterial(G4String)
~Em10DetectorConstruction()
void SetMagField(G4double)
CLHEP::Hep3Vector G4ThreeVector
void AddRootLogicalVolume(G4LogicalVolume *lv)
G4bool SetDetectorField(G4Field *detectorField)
void AddMaterial(G4Material *material, G4double fraction)
G4Material * fElectrodeMat
G4Material * fWorldMaterial
const G4String & GetName() const
G4Material * fAbsorberMaterial
static G4MaterialTable * GetMaterialTable()
std::vector< G4Material * > G4MaterialTable
G4double GetDensity() const
G4UniformMagField * fMagField
void SetRadiatorMaterial(G4String)
G4LogicalVolume * fLogicRadiator
Definition of the Em10Materials class.
void SetFieldManager(G4FieldManager *pFieldMgr, G4bool forceToAllDaughters)
G4LogicalVolume * fLogicWorld
G4VPhysicalVolume * SetUpBari05()
void SetAbsorberThickness(G4double)
virtual void DefineWorldVolume(G4VPhysicalVolume *worldVol, G4bool topologyIsChanged=true)
Definition of the Em10CalorimeterSD class.
static G4PhysicalVolumeStore * GetInstance()
G4VPhysicalVolume * fPhysicsRadiator
G4double fAbsorberThickness
G4GLOB_DLL std::ostream G4cout
Em10DetectorMessenger * fDetectorMessenger
void SetAbsorberZpos(G4double)
static G4LogicalVolumeStore * GetInstance()
static G4SolidStore * GetInstance()
G4Material * GetMaterial(const G4String &)
G4LogicalVolume * fLogicAbsorber
static G4GeometryManager * GetInstance()
Em10CalorimeterSD * fCalorimeterSD
void SetWorldSizeR(G4double)
G4VPhysicalVolume * SetUpHarris73()
G4VPhysicalVolume * Construct()
void AddNewDetector(G4VSensitiveDetector *aSD)
G4VPhysicalVolume * SimpleSetUpALICE()
static G4RunManager * GetRunManager()
static const double micrometer
G4VPhysicalVolume * fPhysicsWorld
static G4SDManager * GetSDMpointer()
Definition of the Em10DetectorMessenger class.
void SetGasGapThickness(G4double)
void SetRadiatorThickness(G4double)
Definition of the Em10DetectorConstruction class.
G4VPhysicalVolume * SetUpALICE06()
static const double degree
G4VPhysicalVolume * fPhysicsAbsorber
void OpenGeometry(G4VPhysicalVolume *vol=0)
void SetWorldMaterial(G4String)
G4VPhysicalVolume * SetUpWatase86()
static const double tesla
void CreateChordFinder(G4MagneticField *detectorMagField)
void SetAbsorberRadius(G4double)
void SetMaterial(G4Material *pMaterial)
G4VPhysicalVolume * ConstructDetectorXTR()
void PrintGeometryParameters()
G4Material * fRadiatorMat
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
void SetWorldSizeZ(G4double)
G4VPhysicalVolume * SetUpBarr90()
Em10DetectorConstruction()