gfields
Loading...
Searching...
No Matches
gfield_multipoles.h
Go to the documentation of this file.
1#pragma once
2
3// gemc
4#include "gfield.h"
5
13
14public:
18 //GField_MultipolesFactory() = default;
19 explicit GField_MultipolesFactory(const std::shared_ptr<GOptions>& gopt) : GField(gopt) {}
20
26 void GetFieldValue(const double pos[3], G4double *bfield) const override;
27
29
30private:
31
32 int pole_number;
33 G4double origin[3];
34 G4double rotation_angle;
35 int rotaxis;
36 G4double strength;
37 bool longitudinal;
38
39};
40
41
Factory class for creating and managing multipole magnetic fields.
void GetFieldValue(const double pos[3], G4double *bfield) const override
Calculates the magnetic field at a given position.
void load_field_definitions(GFieldDefinition gfd) override
Sets the field definition for the field.
GField_MultipolesFactory(const std::shared_ptr< GOptions > &gopt)
Default constructor for the GField_MultipolesFactory class.
Abstract base class representing a magnetic field.
Definition gfield.h:62
Utility struct to load GFields from options.
Definition gfield.h:18