Program Listing for File PT11Field.h
↰ Return to documentation for file (include/crpropa/magneticField/PT11Field.h
)
#ifndef CRPROPA_PSHIRKOVFIELD_H
#define CRPROPA_PSHIRKOVFIELD_H
#include "crpropa/magneticField/MagneticField.h"
namespace crpropa {
class PT11Field: public MagneticField {
private:
bool useASS; // switch for axisymmetric spiral field (ASS)
bool useBSS; // switch for bisymmetric spiral field (BSS)
bool useHalo; // switch for halo field
// disk parameters
double pitch, cos_pitch, sin_pitch, PHI, cos_PHI; // pitch angle parameters
double d; // distance to first field reversal
double R_sun; // distance between sun and galactic center
double R_c; // radius of central region
double z0_D; // vertical thickness in the galactic disk
double B0_D; // magnetic field scale
// halo parameters
double z0_H; // halo vertical position
double R0_H; // halo radial position
double B0_Hn; // halo magnetic field scale (north)
double B0_Hs; // halo magnetic field scale (south)
double z11_H; // halo vertical thickness towards disc
double z12_H; // halo vertical thickness off the disk
void SetParams();
public:
PT11Field();
void setUseASS(bool use);
void setUseBSS(bool use);
void setUseHalo(bool use);
bool isUsingASS();
bool isUsingBSS();
bool isUsingHalo();
Vector3d getField(const Vector3d& pos) const;
};
} // namespace crpropa
#endif // CRPROPA_PSHIRKOVFIELD_H