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)
202 *g4rot = g4rot->inverse();
257 *g4rot = g4rot->inverse();
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;
static constexpr double tesla
void SetTargetAngle(G4int)
void SetCaptureMgntB2(G4double)
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
G4Material * GetWorldMaterial()
G4double GetDegraderPos()
static constexpr double mm
G4VPhysicalVolume * fPhysiDegrader
G4double GetCaptureMgntRadius()
void SetTransferMgntLength(G4double)
Definition of the F04Materials class.
G4double GetDegraderRadius()
CLHEP::Hep3Vector G4ThreeVector
CLHEP::HepRotation G4RotationMatrix
G4VPhysicalVolume * ConstructDetector()
G4ThreeVector fCaptureMgntCenter
Definition of the F04GlobalField class.
G4VPhysicalVolume * fPhysiWorld
void SetDegraderPos(G4double)
virtual ~F04DetectorConstruction()
G4String strip(G4int strip_Type=trailing, char c=' ')
G4Material * GetTargetMaterial()
G4Cache< F04GlobalField * > fFieldSetUp
G4double fCaptureMgntLength
void SetTargetThickness(G4double)
void SetDegraderMaterial(G4String)
G4LogicalVolume * fLogicTarget
void SetCaptureMgntLength(G4double)
static G4double angle[DIM]
F04DetectorConstruction()
G4Tubs * fSolidCaptureMgnt
void SetTargetMaterial(G4String)
G4Tubs * fSolidTransferMgnt
G4double GetCaptureMgntLength()
G4LogicalVolume * fLogicCaptureMgnt
G4Material * GetMaterial(G4String)
static G4NistManager * Instance()
G4Material * fTargetMaterial
void SetDegraderRadius(G4double)
static constexpr double twopi
G4double fDegraderThickness
G4double GetDegraderThickness()
static G4PhysicalVolumeStore * GetInstance()
G4double fTransferMgntLength
F04DetectorMessenger * fDetectorMessenger
G4double fCaptureMgntRadius
static F04GlobalField * GetObject()
Definition of the F04DetectorConstruction class.
virtual G4VPhysicalVolume * Construct()
void SetWorldSizeZ(G4double)
G4GLOB_DLL std::ostream G4cout
static constexpr double m
G4double GetTransferMgntRadius()
void SetWorldMaterial(G4String)
G4double GetTargetRadius()
Definition of the F04DetectorMessenger class.
void SetCaptureMgntRadius(G4double)
void PhysicsHasBeenModified()
G4VPhysicalVolume * fPhysiTransferMgnt
Definition of the F04FocusSolenoid class.
static constexpr double cm
void SetDegraderThickness(G4double)
static G4LogicalVolumeStore * GetInstance()
G4Material * fWorldMaterial
static G4SolidStore * GetInstance()
void SetTargetPos(G4double)
G4VPhysicalVolume * fPhysiCaptureMgnt
G4double GetTransferMgntLength()
G4Material * fDegraderMaterial
static G4GeometryManager * GetInstance()
void SetTransferMgntRadius(G4double)
G4double fTransferMgntPos
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
G4ThreeVector fTransferMgntCenter
G4LogicalVolume * fLogicDegrader
static G4RunManager * GetRunManager()
G4Material * GetDegraderMaterial()
static F04Materials * GetInstance()
G4VPhysicalVolume * fPhysiTarget
G4LogicalVolume * fLogicWorld
G4double fTargetThickness
G4LogicalVolume * fLogicTransferMgnt
G4double fTransferMgntRadius
Definition of the F04SimpleSolenoid class.
void OpenGeometry(G4VPhysicalVolume *vol=0)
void SetTransferMgntB(G4double)
virtual void ConstructSDandField()
static constexpr double deg
static G4RotationMatrix StringToRotationMatrix(G4String rotation)
G4double GetTargetThickness()
void SetTargetRadius(G4double)
void SetCaptureMgntB1(G4double)
void Put(const value_type &val) const
G4double GetTransferMgntPos()
void SetWorldSizeR(G4double)
F04Materials * fMaterials
G4GLOB_DLL std::ostream G4cerr
void SetTransferMgntPos(G4double)