74 G4bool provideGlobalTransformIn =
true,
75 const G4Transform3D& transformIn = G4Transform3D(),
76 const G4String& magneticFieldFilePathIn =
"",
79 const G4String& electricFieldFilePathIn =
"",
82 G4bool cacheTransformsIn =
false,
83 G4double eScalingIn = 1.0,
84 G4double bScalingIn = 1.0,
85 G4double timeOffsetIn = 0,
86 G4bool autoScaleIn =
false,
87 G4UserLimits* stepLimitIn =
nullptr,
88 G4double poleTipRadiusIn = 1,
89 G4double beamPipeRadiusIn = 0,
91 const G4String& magneticSubFieldNameIn =
"",
92 const G4String& electricSubFieldNameIn =
"");
102 inline G4double
BRho()
const {
return brho;}
113 inline G4double
EScaling()
const {
return eScaling;}
114 inline G4double
BScaling()
const {
return bScaling;}
131 inline G4bool
IsThin()
const {
return isThin;}
135 G4double SynchronousT()
const;
143 inline void SetIntegratorType(
BDSIntegratorType typeIn) {integratorType = typeIn;}
144 inline void SetProvideGlobalTransform(G4bool provideGlobalTransformIn) {provideGlobalTransform = provideGlobalTransformIn;}
145 inline void SetMagneticInterpolatorType(
BDSInterpolatorType typeIn) {magneticInterpolatorType = typeIn;}
146 inline void SetMagneticArrayReflectionType(
const BDSArrayReflectionTypeSet& typeIn) {magneticArrayReflectionTypeSet = typeIn;}
147 inline void SetElectricArrayReflectionType(
const BDSArrayReflectionTypeSet& typeIn) {electricArrayReflectionTypeSet = typeIn;}
148 inline void SetBScaling(G4double bScalingIn) {bScaling = bScalingIn;}
149 inline void SetAutoScale(G4bool autoScaleIn) {autoScale = autoScaleIn;}
150 inline void SetScalingRadius(G4double poleTipRadiusIn) {
poleTipRadius = poleTipRadiusIn;}
151 inline void SetBeamPipeRadius(G4double beamPipeRadiusIn) {
beamPipeRadius = beamPipeRadiusIn;}
152 inline void SetChordStepMinimum(G4double chordStepMinimumIn) {chordStepMinimum = chordStepMinimumIn;}
154 inline void SetMagneticSubField(
const G4String& mfnIn) {magneticSubFieldName = mfnIn;}
155 inline void SetElectricSubField(
const G4String& efnIn) {electricSubFieldName = efnIn;}
156 inline void SetUsePlacementWorldTransform(G4bool use) {usePlacementWorldTransform = use;}
157 inline void SetModulatorInfo(
BDSModulatorInfo* modulatorInfoIn) {modulatorInfo = modulatorInfoIn;}
158 inline void SetIgnoreUpdateOfMaximumStepSize(G4bool ignoreUpdateOfMaximumStepSizeIn) {
ignoreUpdateOfMaximumStepSize = ignoreUpdateOfMaximumStepSizeIn;}
171 void SetNameOfParserDefinition(
const G4String& nameIn) {nameOfParserDefinition = nameIn;}
179 G4bool warn =
false)
const;
183 void Translate(
const G4ThreeVector& translationIn);
186 inline void CacheTransforms(G4bool cacheTransformsIn) {cacheTransforms = cacheTransformsIn;}
201 G4bool provideGlobalTransform;
203 G4String magneticFieldFilePath;
206 BDSArrayReflectionTypeSet magneticArrayReflectionTypeSet;
207 G4String electricFieldFilePath;
210 BDSArrayReflectionTypeSet electricArrayReflectionTypeSet;
211 G4bool cacheTransforms;
216 mutable G4UserLimits* stepLimit;
219 G4double chordStepMinimum;
222 G4String magneticSubFieldName;
223 G4String electricSubFieldName;
224 G4bool usePlacementWorldTransform;
233 G4String nameOfParserDefinition;
236 const static G4ThreeVector defaultUnitDirection;