19 #ifndef __QWRAYTRACER_H__
20 #define __QWRAYTRACER_H__
34 #include <TStopwatch.h>
82 const double epsilon);
112 case 0:
return position.Perp();
113 case 1:
return direction.Theta();
115 default:
return position.Perp();
142 #endif // __QWRAYTRACER_H__
bool LoadMagneticFieldMap(QwOptions &options)
Load the magnetic field based on config file options.
static QwMagneticField * fBfield
Magnetic field (static)
static void DefineOptions(QwOptions &options)
Define command line and config file options.
Magnetic field map object.
double fOptimizationResolution
Double_t fBdly
y component of the field integral
double fStartPosition
Starting position for magnetic field swimming.
double fIntegrationStep
Runge-Kutta fixed step size for order 4 or less.
int fOptimizationVariable
Newton's method optimization variable.
Definition of the partial track class.
Double_t fBdl
scalar field integrals
void SetActualCurrent(const double current)
Set the actual current.
double GetMagneticFieldCurrent() const
Get magnetic field current.
QwRayTracer(QwOptions &options)
Default constructor.
double fIntegrationMaximumStep
Maximum step size.
Interface to the various bridging methods.
Contains the complete track as a concatenation of partial tracks.
void ProcessOptions(QwOptions &options)
Process command line and config file options.
double fInitialMomentum
Newton's method initial momentum.
const QwTrack * Bridge(const QwPartialTrack *front, const QwPartialTrack *back)
Bridge from the front to back partial track.
Double_t fBdlx
x component of the field integral
int fIntegrationOrder
Runge-Kutta method order.
An options class which parses command line, config file and environment.
double fEndPosition
Ending position for magnetic field swimming.
Definition of the bridging method interface.
double fIntegrationMinimumStep
Runge-Kutta minimum and maximum step size for adaptive step.
double GetOptimizationVariable(const TVector3 &position, const TVector3 &direction) const
Optimization variable from position and direction.
double fIntegrationTolerance
Allowable truncation error in adaptive step.
double fMomentumStep
Newton's method step size in momentum.
Contains the straight part of a track in one region only.
int IntegrateRK(const TMatrixD &A, const TMatrixD &b, TVector3 &r, TVector3 &v, const double p, const double z, const double h, const double epsilon)
Runge-Kutta numerical integration by Butcher tableau.
double GetActualCurrent() const
Get the actual current.
void SetMagneticFieldCurrent(const double current)
Set magnetic field current.
Double_t fBdlz
z component of the field integral
virtual ~QwRayTracer()
Destructor.