20#include "BDSException.hh"
21#include "BDSFieldMag.hh"
22#include "BDSFieldMagVectorSum.hh"
24#include "G4ThreeVector.hh"
29BDSFieldMagVectorSum::BDSFieldMagVectorSum(
const std::vector<BDSFieldMag*>& fieldsIn,
30 const std::vector<G4ThreeVector>& fieldOffsetsIn):
32 fieldOffsets(fieldOffsetsIn)
34 if (fields.size() != fieldOffsets.size())
35 {
throw BDSException(__METHOD_NAME__,
"number of fields and number of offsets do not match");}
38BDSFieldMagVectorSum::~BDSFieldMagVectorSum()
45 const G4double t)
const
48 for (G4int i = 0; i < (G4int)fields.size(); i++)
50 G4ThreeVector p = position - fieldOffsets[i];
51 G4ThreeVector v = fields[i]->GetField(p,t);
General exception with possible name of object and message.
virtual G4ThreeVector GetField(const G4ThreeVector &position, const G4double t=0) const
Calculate the field value.