BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
BDSFieldEMInterpolated.hh
1/*
2Beam Delivery Simulation (BDSIM) Copyright (C) BDSIM Collaboration, 2001 - 2026.
3
4This file is part of BDSIM.
5
6BDSIM is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published
8by the Free Software Foundation version 3 of the License.
9
10BDSIM is distributed in the hope that it will be useful, but
11WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with BDSIM. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef BDSFIELDEMINTERPOLATED_H
19#define BDSFIELDEMINTERPOLATED_H
20#include "BDSFieldEM.hh"
21
22#include "G4Transform3D.hh"
23#include "G4Types.hh"
24
25class BDSInterpolator;
26
34{
35public:
36 BDSFieldEMInterpolated() = delete;
37 BDSFieldEMInterpolated(const BDSInterpolator* eInterpolator,
38 const BDSInterpolator* bInterpolator,
39 const G4Transform3D& offset,
40 G4double eScalingIn = 1.0,
41 G4double bScalingIn = 1.0);
42 virtual ~BDSFieldEMInterpolated(){;}
43
44 virtual G4bool TimeVarying() const {return timeVarying;}
45
47 inline G4double EScaling() const {return eScaling;}
48 inline G4double BScaling() const {return bScaling;}
50
52 inline void SetEScaling(G4double eScalingIn) {eScaling = eScalingIn;}
53 inline void SetBScaling(G4double bScalingIn) {bScaling = bScalingIn;}
55
56 inline G4double SmallestSpatialStep() const {return smallestSpatialStep;}
57
58protected:
59 G4bool timeVarying;
60
61private:
62 G4double eScaling;
63 G4double bScaling;
64 G4double smallestSpatialStep;
65};
66
67#endif
Class to provide scaling and a base class pointer for interpolator fields.
G4double EScaling() const
Accessor.
G4double bScaling
B field scaling value.
G4double BScaling() const
Accessor.
virtual G4bool TimeVarying() const
void SetBScaling(G4double bScalingIn)
Setter.
G4double eScaling
E field scaling value.
void SetEScaling(G4double eScalingIn)
Setter.
Interface for BDSIM electro-magnetic fields that may or may not be local.
Definition BDSFieldEM.hh:40
Interface for all interpolators containing basic extent of validity.