75 G4bool provideGlobalTransformIn =
true,
76 const G4Transform3D& transformIn = G4Transform3D(),
77 const G4String& magneticFieldFilePathIn =
"",
80 const G4String& electricFieldFilePathIn =
"",
83 G4bool cacheTransformsIn =
false,
84 G4double eScalingIn = 1.0,
85 G4double bScalingIn = 1.0,
86 G4double timeOffsetIn = 0,
87 G4bool autoScaleIn =
false,
88 G4UserLimits* stepLimitIn =
nullptr,
89 G4double poleTipRadiusIn = 1,
90 G4double beamPipeRadiusIn = 0,
92 const G4String& magneticSubFieldNameIn =
"",
93 const G4String& electricSubFieldNameIn =
"");
103 inline G4double
BRho()
const {
return brho;}
114 inline G4double
EScaling()
const {
return eScaling;}
115 inline G4double
BScaling()
const {
return bScaling;}
132 inline G4bool
IsThin()
const {
return isThin;}
136 G4double SynchronousT()
const;
144 inline void SetIntegratorType(
BDSIntegratorType typeIn) {integratorType = typeIn;}
145 inline void SetProvideGlobalTransform(G4bool provideGlobalTransformIn) {provideGlobalTransform = provideGlobalTransformIn;}
146 inline void SetMagneticInterpolatorType(
BDSInterpolatorType typeIn) {magneticInterpolatorType = typeIn;}
147 inline void SetMagneticArrayReflectionType(
const BDSArrayReflectionTypeSet& typeIn) {magneticArrayReflectionTypeSet = typeIn;}
148 inline void SetElectricArrayReflectionType(
const BDSArrayReflectionTypeSet& typeIn) {electricArrayReflectionTypeSet = typeIn;}
149 inline void SetBScaling(G4double bScalingIn) {bScaling = bScalingIn;}
150 inline void SetAutoScale(G4bool autoScaleIn) {autoScale = autoScaleIn;}
151 inline void SetScalingRadius(G4double poleTipRadiusIn) {
poleTipRadius = poleTipRadiusIn;}
152 inline void SetBeamPipeRadius(G4double beamPipeRadiusIn) {
beamPipeRadius = beamPipeRadiusIn;}
153 inline void SetChordStepMinimum(G4double chordStepMinimumIn) {chordStepMinimum = chordStepMinimumIn;}
155 inline void SetMagneticSubField(
const G4String& mfnIn) {magneticSubFieldName = mfnIn;}
156 inline void SetElectricSubField(
const G4String& efnIn) {electricSubFieldName = efnIn;}
157 inline void SetUsePlacementWorldTransform(G4bool use) {usePlacementWorldTransform = use;}
158 inline void SetModulatorInfo(
BDSModulatorInfo* modulatorInfoIn) {modulatorInfo = modulatorInfoIn;}
159 inline void SetIgnoreUpdateOfMaximumStepSize(G4bool ignoreUpdateOfMaximumStepSizeIn) {
ignoreUpdateOfMaximumStepSize = ignoreUpdateOfMaximumStepSizeIn;}
172 void SetNameOfParserDefinition(
const G4String& nameIn) {nameOfParserDefinition = nameIn;}
180 G4bool warn =
false)
const;
184 void Translate(
const G4ThreeVector& translationIn);
187 inline void CacheTransforms(G4bool cacheTransformsIn) {cacheTransforms = cacheTransformsIn;}
202 G4bool provideGlobalTransform;
204 G4String magneticFieldFilePath;
207 BDSArrayReflectionTypeSet magneticArrayReflectionTypeSet;
208 G4String electricFieldFilePath;
211 BDSArrayReflectionTypeSet electricArrayReflectionTypeSet;
212 G4bool cacheTransforms;
217 mutable G4UserLimits* stepLimit;
220 G4double chordStepMinimum;
223 G4String magneticSubFieldName;
224 G4String electricSubFieldName;
225 G4bool usePlacementWorldTransform;
234 G4String nameOfParserDefinition;
237 const static G4ThreeVector defaultUnitDirection;