71 fDetectorMessenger(0),
72 fSolidWorld(0), fLogicWorld(0), fPhysiWorld(0),
73 fSolidTarget(0), fLogicTarget(0), fPhysiTarget(0),
74 fSolidDegrader(0), fLogicDegrader(0), fPhysiDegrader(0),
75 fSolidCaptureMgnt(0), fLogicCaptureMgnt(0), fPhysiCaptureMgnt(0),
76 fSolidTransferMgnt(0), fLogicTransferMgnt(0), fPhysiTransferMgnt(0),
77 fWorldMaterial(0), fTargetMaterial(0), fDegraderMaterial(0)
305 if ( pttoMaterial ) {
309 G4cout <<
"\n--> WARNING from SetWorldMaterial : "
310 << materialChoice <<
" not found" <<
G4endl;
323 if ( pttoMaterial ) {
327 G4cout <<
"\n--> WARNING from SetTargetMaterial : "
328 << materialChoice <<
" not found" <<
G4endl;
342 if ( pttoMaterial ) {
346 G4cout <<
"\n--> WARNING from SetDegraderMaterial : "
347 << materialChoice <<
" not found" <<
G4endl;
510 unsigned int place = 0;
512 while (place < rotation.size()) {
516 G4String current=rotation.substr(place+1);
517 angle = strtod(current.c_str(),&
p) *
deg;
519 if (!p || (*p !=
',' && *p !=
'\0')) {
520 G4cerr <<
"Invalid rotation specification: " <<
521 rotation.c_str() <<
G4endl;
528 switch(rotation.substr(place,1).c_str()[0]) {
539 G4cerr <<
" Invalid rotation specification: "
544 rot = thisRotation * rot;
545 place = rotation.find(
',',place);
546 if (place > rotation.size())
break;
G4Material * GetTargetMaterial()
G4VPhysicalVolume * ConstructDetector()
void SetTransferMgntPos(G4double)
static G4RunManager * GetRunManager()
G4Tubs * fSolidTransferMgnt
F04DetectorMessenger * fDetectorMessenger
void SetTargetAngle(G4int)
F04DetectorConstruction()
CLHEP::Hep3Vector G4ThreeVector
void SetWorldMaterial(G4String)
G4double fDegraderThickness
void SetDegraderRadius(G4double)
void SetCaptureMgntB2(G4double)
void SetDegraderMaterial(G4String)
void SetCaptureMgntLength(G4double)
G4LogicalVolume * fLogicWorld
static constexpr double mm
CLHEP::HepRotation G4RotationMatrix
G4Material * GetMaterial(G4String)
void SetDegraderPos(G4double)
Definition of the F04SimpleSolenoid class.
void SetTransferMgntRadius(G4double)
G4Material * fDegraderMaterial
virtual G4VPhysicalVolume * Construct()
Definition of the F04FocusSolenoid class.
G4VPhysicalVolume * fPhysiCaptureMgnt
void SetTransferMgntB(G4double)
void SetTargetMaterial(G4String)
Definition of the F04DetectorConstruction class.
G4Material * fTargetMaterial
G4ThreeVector fTransferMgntCenter
static constexpr double m
G4VPhysicalVolume * fPhysiWorld
G4double GetTargetThickness()
G4LogicalVolume * fLogicDegrader
G4ThreeVector fCaptureMgntCenter
static constexpr double deg
G4Material * fWorldMaterial
static G4GeometryManager * GetInstance()
void SetCaptureMgntB1(G4double)
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
static constexpr double twopi
void SetWorldSizeZ(G4double)
G4String strip(G4int strip_Type=trailing, char c=' ')
void SetTargetPos(G4double)
Definition of the F04DetectorMessenger class.
G4LogicalVolume * fLogicTransferMgnt
void SetWorldSizeR(G4double)
void OpenGeometry(G4VPhysicalVolume *vol=0)
F04Materials * fMaterials
virtual void ConstructSDandField()
G4double fTargetThickness
G4VPhysicalVolume * fPhysiTransferMgnt
G4GLOB_DLL std::ostream G4cerr
G4double GetTransferMgntRadius()
void Put(const value_type &val) const
static F04GlobalField * GetObject()
void SetTransferMgntLength(G4double)
static G4SolidStore * GetInstance()
static F04Materials * GetInstance()
G4Material * GetDegraderMaterial()
G4double fTransferMgntLength
static G4PhysicalVolumeStore * GetInstance()
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
G4LogicalVolume * fLogicTarget
void SetDegraderThickness(G4double)
G4Material * GetWorldMaterial()
G4double GetTargetRadius()
void SetTargetRadius(G4double)
G4double fCaptureMgntRadius
Definition of the F04GlobalField class.
G4double GetDegraderThickness()
Definition of the F04Materials class.
G4double GetDegraderPos()
G4VPhysicalVolume * fPhysiDegrader
G4Tubs * fSolidCaptureMgnt
void PhysicsHasBeenModified()
G4double fTransferMgntPos
G4GLOB_DLL std::ostream G4cout
static constexpr double cm
G4double fTransferMgntRadius
G4double fCaptureMgntLength
G4double GetCaptureMgntRadius()
void SetCaptureMgntRadius(G4double)
G4double GetTransferMgntLength()
virtual ~F04DetectorConstruction()
G4double GetCaptureMgntLength()
void SetTargetThickness(G4double)
G4LogicalVolume * fLogicCaptureMgnt
HepRotation inverse() const
static G4LogicalVolumeStore * GetInstance()
static G4RotationMatrix StringToRotationMatrix(G4String rotation)
static constexpr double tesla
static G4NistManager * Instance()
G4Cache< F04GlobalField * > fFieldSetUp
G4double GetDegraderRadius()
G4double GetTransferMgntPos()
G4VPhysicalVolume * fPhysiTarget