_Geant4 Version:_11.3.1
_Operating System:_Windows 11
_Compiler/Version:_Visual Studio 2022 17.13.5
_CMake Version:_4.0.0
Dear forum members,
I would like to know if there is a way to define an electric field inside a specific volume. As shown further below, I created an electric field and added it to the logicDetector volume. However, the SetFieldType function only affects the global field (non existing in this case) and not the local field.
As shown below, the global field is set to electromagnetic, however the local field is still magnetic.
The code is the following (in DetectorConstruction.cc) :
//Adding electric field to the detector
G4FieldBuilder *fieldBuilder = G4FieldBuilder::Instance();
fieldBuilder->SetVerboseLevel(2);
//Defining the field value
G4UniformElectricField *eField = new G4UniformElectricField(G4ThreeVector(0.0, 20*kilovolt/cm, 0.0));
fieldBuilder->SetLocalField(eField, logicDetector);
fieldBuilder->SetFieldType(kElectroMagnetic);
fieldBuilder->ConstructFieldSetup();
The verbose output is the following :
G4FieldBuilder::ConstructLocalFields()
Construct local field in volume: logicDetector
Local (in logicDetector) field created with stepper DormandPrince745
Magnetic field parameters:
volume name = logicDetector
field type = Magnetic
equation type = EqMagnetic
stepper type = DormandPrince745
minStep = 0.01 mm
constDistance = 0 mm
deltaChord = 0.25 mm
deltaOneStep = 0.01 mm
deltaIntersection = 0.001 mm
epsMin = 5e-05
epsMax= 0.001
G4FieldBuilder::UpdateFieldSetups
Global field updated with stepper ClassicalRK4
Magnetic field parameters:
field type = ElectroMagnetic
equation type = EqElectroMagnetic
stepper type = ClassicalRK4
minStep = 0.01 mm
constDistance = 0 mm
deltaChord = 0.25 mm
deltaOneStep = 0.01 mm
deltaIntersection = 0.001 mm
epsMin = 5e-05
epsMax= 0.001