57 fMinStep(0.01*
mm), fDeltaChord(3.0*
mm),
58 fDeltaOneStep(0.01*
mm), fDeltaIntersection(0.1*
mm),
59 fEpsMin(2.5e-7*
mm), fEpsMax(0.05*
mm),
60 fEquation(0), fFieldManager(0),
61 fFieldPropagator(0), fStepper(0), fChordFinder(0),
62 fDetectorConstruction(det)
87 F04GlobalField::~F04GlobalField()
91 delete fFieldMessenger;
93 if (fEquation)
delete fEquation;
94 if (fFieldManager)
delete fFieldManager;
95 if (fFieldPropagator)
delete fFieldPropagator;
96 if (fStepper)
delete fStepper;
97 if (fChordFinder)
delete fChordFinder;
150 G4cout <<
"Accuracy Parameters:" <<
151 " MinStep=" << fMinStep <<
152 " DeltaChord=" << fDeltaChord <<
153 " DeltaOneStep=" << fDeltaOneStep <<
G4endl;
155 " DeltaIntersection=" << fDeltaIntersection <<
156 " EpsMin=" << fEpsMin <<
157 " EpsMax=" << fEpsMax <<
G4endl;
184 focusSolenoid -> SetHalf(
true);
201 if (fEquation)
delete fEquation;
227 if (fChordFinder)
delete fChordFinder;
243 G4cout <<
"Accuracy Parameters:" <<
244 " MinStep=" << fMinStep <<
245 " DeltaChord=" << fDeltaChord <<
246 " DeltaOneStep=" << fDeltaOneStep <<
G4endl;
248 " DeltaIntersection=" << fDeltaIntersection <<
249 " EpsMin=" << fEpsMin <<
250 " EpsMax=" << fEpsMax <<
G4endl;
256 if (fFields->size()>0) {
257 FieldList::iterator i;
258 for (i=fFields->begin(); i!=fFields->end(); ++i){
259 (*i)->Construct(currentWorld);
277 if (fObject)
return fObject;
285 if(fStepper)
delete fStepper;
287 switch ( fStepperType )
312 G4cout <<
"G4ClassicalRK4 (default) is called" <<
G4endl;
319 default: fStepper = 0;
339 field[0] = field[1] = field[2] = field[3] = field[4] = field[5] = 0.0;
342 if(point[0] != point[0])
return;
347 for (
int i=0; i<fNfp; ++i) {
361 if (fFields->size()>0) {
362 FieldList::iterator i;
363 for (i=fFields->begin(); i!=fFields->end(); ++i)
delete *i;
368 if (fFp)
delete[] fFp;
378 void F04GlobalField::SetupArray()
381 fNfp = fFields->size();
383 for (
int i=0; i<fNfp; ++i) fFp[i] = (*fFields)[i];
void SetMaxStep(G4double stp)
SetMaxStep(G4double) sets the max. step size.
G4LogicalVolume * GetTransferMgnt()
G4bool SetDetectorField(G4Field *detectorField)
Definition of the F04GlobalField class.
void UpdateField()
updates all field tracking objects and Clear()
virtual void AddFieldValue(const G4double point[4], G4double field[6]) const =0
G4double GetCaptureMgntB2()
virtual void GetFieldValue(const G4double *point, G4double *field) const
void SetChordFinder(G4ChordFinder *aChordFinder)
void SetColor(G4String c)
SetColor(G4String) sets the color.
void SetAccuraciesWithDeltaOneStep(G4double valDeltaOneStep)
static F04GlobalField * GetObject()
G4GLOB_DLL std::ostream G4cout
std::vector< F04ElementField * > FieldList
G4ThreeVector GetCaptureMgntCenter()
G4FieldManager * GetGlobalFieldManager()
Get the global field manager.
Definition of the F04FocusSolenoid class.
G4double GetTransferMgntB()
static G4TransportationManager * GetTransportationManager()
G4FieldManager * GetFieldManager() const
G4LogicalVolume * GetCaptureMgnt()
bool IsInBoundingBox(const G4double point[4]) const
void ConstructField()
constructs all field tracking objects
void SetDeltaIntersection(G4double valueDintersection)
void SetMinimumEpsilonStep(G4double newEpsMin)
void SetFieldChangesEnergy(G4bool value)
Definition of the F04SimpleSolenoid class.
G4VPhysicalVolume * GetWorld()
G4double GetCaptureMgntB1()
void SetMaximumEpsilonStep(G4double newEpsMax)
G4PropagatorInField * GetPropagatorInField() const
void SetStepper()
Set the Stepper.
void SetDeltaChord(G4double newval)
G4ThreeVector GetTransferMgntCenter()