5 const std::vector<MagBLayer*>& theBLayers,
6 const std::vector<MagESector*>& theESectors,
7 const std::vector<MagVolume6Faces*>& theBVolumes,
8 const std::vector<MagVolume6Faces*>& theEVolumes,
12 bool isParamFieldOwned)
13 : field(new
MagGeometry(geomVersion, theBLayers, theESectors, theBVolumes, theEVolumes)),
18 paramFieldOwned(isParamFieldOwned) {
27 paramField(vbf.paramField),
29 paramFieldOwned(
false) {
GlobalVector fieldInTesla(const GlobalPoint &gp) const
Return field vector at the specified global point.
virtual bool isDefined(const GlobalPoint &) const
True if the point is within the region where the concrete field.
GlobalVector inTesla(const GlobalPoint &g) const override
Field value ad specified global point, in Tesla.
GlobalVector inTeslaUnchecked(const GlobalPoint &g) const override
const MagVolume * findVolume(const GlobalPoint &gp) const
const MagGeometry * field
VolumeBasedMagneticField(int geomVersion, const std::vector< MagBLayer *> &theBLayers, const std::vector< MagESector *> &theESectors, const std::vector< MagVolume6Faces *> &theBVolumes, const std::vector< MagVolume6Faces *> &theEVolumes, float rMax, float zMax, const MagneticField *param=nullptr, bool isParamFieldOwned=false)
virtual GlobalVector inTeslaUnchecked(const GlobalPoint &gp) const
MagneticField * clone() const override
Returns a shallow copy.
~VolumeBasedMagneticField() override
MagVolume const * findVolume(const GlobalPoint &gp, double tolerance=0.) const
Find a volume.
bool isDefined(const GlobalPoint &gp) const override
True if the point is within the region where the concrete field.
const MagneticField * paramField
Global3DVector GlobalVector