ATTPCROOT
0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
|
Go to the documentation of this file. 1 #ifndef ATRADIALCHARGEMODEL_H
2 #define ATRADIALCHARGEMODEL_H
20 using EFieldPtr = std::function<double(
double rho,
double z)>;
30 Double_t fEFieldZ{700};
31 Double_t fDriftVel{0.815};
32 Double_t fMobilityElec{1.16429e-3};
33 Double_t fStepSize{1e-4};
62 constexpr
double rBeam = 2.0 / 100;
63 constexpr
double eps = 8.85418782E-12;
64 constexpr
double pi = 3.14159265358979;
65 constexpr
double eps2pi = 2 * pi * eps;
71 field = fLambda / eps2pi / rho * (z / 1.);
void LoadParameters(const AtDigiPar *par) override
Load common parameters from AtDigiPar.
void SetDistortionField(EFieldPtr field)
Space charge model from arbitrary radial E-field,.
void SetStepSize(double setSize)
ROOT::Math::XYZPoint XYZPoint
virtual XYZPoint ApplySpaceCharge(const XYZPoint &reverseInputPosition) override
Using model add space charge effect.
double operator()(double rho, double z)
virtual XYZPoint CorrectSpaceCharge(const XYZPoint &directInputPosition) override
Using model correct for space charge.
void SetEField(double field)
std::function< double(double rho, double z)> EFieldPtr
AtLineChargeZDep(double l)
void SetDriftVelocity(double v)
AtRadialChargeModel(EFieldPtr efield)