19#include "BDSException.hh"
20#include "BDSFieldMag.hh"
21#include "BDSFieldMagVectorSum.hh"
23#include "G4ThreeVector.hh"
28BDSFieldMagVectorSum::BDSFieldMagVectorSum(
const std::vector<BDSFieldMag*>& fieldsIn,
29 const std::vector<G4ThreeVector>& fieldOffsetsIn):
31 fieldOffsets(fieldOffsetsIn)
33 if (fields.size() != fieldOffsets.size())
34 {
throw BDSException(__METHOD_NAME__,
"number of fields and number of offsets do not match");}
37BDSFieldMagVectorSum::~BDSFieldMagVectorSum()
44 const G4double t)
const
47 for (G4int i = 0; i < (G4int)fields.size(); i++)
49 G4ThreeVector p = position - fieldOffsets[i];
50 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.