Geant4  10.02.p03
F06DetectorConstruction Class Reference

#include <F06DetectorConstruction.hh>

Inheritance diagram for F06DetectorConstruction:
Collaboration diagram for F06DetectorConstruction:

Public Member Functions

 F06DetectorConstruction ()
 
virtual ~F06DetectorConstruction ()
 
virtual G4VPhysicalVolumeConstruct ()
 
virtual void ConstructSDandField ()
 
- Public Member Functions inherited from G4VUserDetectorConstruction
 G4VUserDetectorConstruction ()
 
virtual ~G4VUserDetectorConstruction ()
 
virtual void CloneSD ()
 
virtual void CloneF ()
 
void RegisterParallelWorld (G4VUserParallelWorld *)
 
G4int ConstructParallelGeometries ()
 
void ConstructParallelSD ()
 
G4int GetNumberOfParallelWorld () const
 
G4VUserParallelWorldGetParallelWorld (G4int i) const
 

Private Member Functions

void DefineMaterials ()
 

Private Attributes

G4MaterialfVacuum
 
G4BoxfSolidWorld
 
G4LogicalVolumefLogicWorld
 
G4VPhysicalVolumefPhysiWorld
 

Static Private Attributes

static G4ThreadLocal G4UniformGravityFieldfField = 0
 

Additional Inherited Members

- Protected Member Functions inherited from G4VUserDetectorConstruction
void SetSensitiveDetector (const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
 
void SetSensitiveDetector (G4LogicalVolume *logVol, G4VSensitiveDetector *aSD)
 

Detailed Description

Definition at line 52 of file F06DetectorConstruction.hh.

Constructor & Destructor Documentation

◆ F06DetectorConstruction()

F06DetectorConstruction::F06DetectorConstruction ( )

Definition at line 70 of file F06DetectorConstruction.cc.

Here is the call graph for this function:

◆ ~F06DetectorConstruction()

F06DetectorConstruction::~F06DetectorConstruction ( )
virtual

Definition at line 79 of file F06DetectorConstruction.cc.

80 {
81  if (fField) delete fField;
82 }
static G4ThreadLocal G4UniformGravityField * fField

Member Function Documentation

◆ Construct()

G4VPhysicalVolume * F06DetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 97 of file F06DetectorConstruction.cc.

98 {
99  //
100  // World
101  //
102 
103  G4double expHall_x = 1.0*m;
104  G4double expHall_y = 1.0*m;
105  G4double expHall_z = 1.0*m;
106 
107  fSolidWorld = new G4Box("World", //its name
108  expHall_x,expHall_y,expHall_z); //its size
109 
110  fLogicWorld = new G4LogicalVolume(fSolidWorld, //its solid
111  fVacuum, //its material
112  "World"); //its name
113 
114  fPhysiWorld = new G4PVPlacement(0, //no rotation
115  G4ThreeVector(), //at (0,0,0)
116  fLogicWorld, //its logical volume
117  "World", //its name
118  0, //its mother volume
119  false, //no boolean operation
120  0); //copy number
121 
122  G4double maxStep = 1.0*mm;
123  G4double maxTime = 41.*s;
124 
125  G4UserLimits* stepLimit = new G4UserLimits(maxStep,DBL_MAX,maxTime);
126 
127  fLogicWorld->SetUserLimits(stepLimit);
128 
129  //
130  // Visualization attributes
131  //
132  // fLogicWorld->SetVisAttributes (G4VisAttributes::Invisible);
133 
134  //
135  //always return the physical World
136  //
137  return fPhysiWorld;
138 }
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Box.hh:64
void SetUserLimits(G4UserLimits *pULimits)
static const double s
Definition: G4SIunits.hh:168
static const double m
Definition: G4SIunits.hh:128
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:

◆ ConstructSDandField()

void F06DetectorConstruction::ConstructSDandField ( )
virtual

Reimplemented from G4VUserDetectorConstruction.

Definition at line 144 of file F06DetectorConstruction.cc.

145 {
146  if (!fField) {
147 
149 
150  G4RepleteEofM* equation = new G4RepleteEofM(fField);
151 // G4EqGravityField* equation = new G4EqGravityField(fField);
152 
153  G4FieldManager* fieldManager
155  fieldManager->SetDetectorField(fField);
156 
157 // G4MagIntegratorStepper* stepper = new G4ClassicalRK4(equation,12);
158  G4MagIntegratorStepper* stepper = new G4ClassicalRK4(equation,8);
159 
160  G4double minStep = 0.01*mm;
161 
162  G4ChordFinder* chordFinder =
163  new G4ChordFinder((G4MagneticField*)fField,minStep,stepper);
164 
165  // Set accuracy parameters
166  G4double deltaChord = 3.0*mm;
167  chordFinder->SetDeltaChord( deltaChord );
168 
169  G4double deltaOneStep = 0.01*mm;
170  fieldManager->SetAccuraciesWithDeltaOneStep(deltaOneStep);
171 
172  G4double deltaIntersection = 0.1*mm;
173  fieldManager->SetDeltaIntersection(deltaIntersection);
174 
175  G4TransportationManager* transportManager =
177 
178  G4PropagatorInField* fieldPropagator =
179  transportManager->GetPropagatorInField();
180 
181  G4double epsMin = 2.5e-7*mm;
182  G4double epsMax = 0.05*mm;
183 
184  fieldPropagator->SetMinimumEpsilonStep(epsMin);
185  fieldPropagator->SetMaximumEpsilonStep(epsMax);
186 
187  fieldManager->SetChordFinder(chordFinder);
188  }
189 }
G4bool SetDetectorField(G4Field *detectorField)
void SetChordFinder(G4ChordFinder *aChordFinder)
void SetAccuraciesWithDeltaOneStep(G4double valDeltaOneStep)
G4FieldManager * GetFieldManager() const
static G4TransportationManager * GetTransportationManager()
void SetDeltaIntersection(G4double valueDintersection)
void SetMinimumEpsilonStep(G4double newEpsMin)
G4PropagatorInField * GetPropagatorInField() const
double G4double
Definition: G4Types.hh:76
void SetMaximumEpsilonStep(G4double newEpsMax)
static const double mm
Definition: G4SIunits.hh:114
void SetDeltaChord(G4double newval)
static G4ThreadLocal G4UniformGravityField * fField
Here is the call graph for this function:

◆ DefineMaterials()

void F06DetectorConstruction::DefineMaterials ( )
private

Definition at line 86 of file F06DetectorConstruction.cc.

87 {
89 
90  fVacuum = nistMan->FindOrBuildMaterial("G4_Galactic");
91 
93 }
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
static G4MaterialTable * GetMaterialTable()
Definition: G4Material.cc:589
static G4NistManager * Instance()
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ fField

G4ThreadLocal G4UniformGravityField * F06DetectorConstruction::fField = 0
staticprivate

Definition at line 72 of file F06DetectorConstruction.hh.

◆ fLogicWorld

G4LogicalVolume* F06DetectorConstruction::fLogicWorld
private

Definition at line 69 of file F06DetectorConstruction.hh.

◆ fPhysiWorld

G4VPhysicalVolume* F06DetectorConstruction::fPhysiWorld
private

Definition at line 70 of file F06DetectorConstruction.hh.

◆ fSolidWorld

G4Box* F06DetectorConstruction::fSolidWorld
private

Definition at line 68 of file F06DetectorConstruction.hh.

◆ fVacuum

G4Material* F06DetectorConstruction::fVacuum
private

Definition at line 66 of file F06DetectorConstruction.hh.


The documentation for this class was generated from the following files: