ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtLineChargeModel.h
Go to the documentation of this file.
1 // Function to take in uncorrected position (VectorPoint3D) and return corrected position (vice/versa)
2 #ifndef ATLINECHARGEMODEL_H
3 #define ATLINECHARGEMODEL_H
4 
5 #include "AtSpaceChargeModel.h"
6 
7 #include <Math/Point3D.h>
8 #include <Math/Point3Dfwd.h>
9 class AtDigiPar;
10 
12 
14 
15 private:
16  double fLambda{1.54e-8}; //< Magnitude of line charge [C/m]
17  double fField{70000}; //< Magnitude of drift field [V/m]
18  double fDetectorLength{1}; //< Length of detector [m]
19  double fBeamRadius{.02}; //< Radius of beam region (don't correct inside this radius) [m]
20  bool fLinearField{true}; //<If true the field grows linearly from the pad plane to the window.
21 
22 public:
23  AtLineChargeModel() = default;
24  ~AtLineChargeModel() = default;
25 
26  virtual XYZPoint CorrectSpaceCharge(const XYZPoint &directInputPosition) override;
27  virtual XYZPoint ApplySpaceCharge(const XYZPoint &reverseInputPosition) override;
28  virtual void LoadParameters(const AtDigiPar *par) override;
29 
30  void SetDriftField(double field) { fField = field; }
31  void SetConstantCharge() { fLinearField = false; }
32  void SetLambda(double lambda) { fLambda = lambda; }
33 
34  double GetLambda() const { return fLambda; }
35  double GetField() const { return fField; }
36  double GetDetectorLength() const { return fDetectorLength; }
37 
38 public:
39  double getDist2(double dZ);
40 };
41 
42 #endif
AtLineChargeModel::LoadParameters
virtual void LoadParameters(const AtDigiPar *par) override
Load common parameters from AtDigiPar.
Definition: AtLineChargeModel.cxx:57
XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtPatternCircle2D.h:18
AtLineChargeModel::GetLambda
double GetLambda() const
Definition: AtLineChargeModel.h:34
XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtLineChargeModel.h:11
AtSpaceChargeModel::XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtSpaceChargeModel.h:11
AtSpaceChargeModel.h
AtLineChargeModel
Definition: AtLineChargeModel.h:13
AtLineChargeModel::getDist2
double getDist2(double dZ)
Units are m.
Definition: AtLineChargeModel.cxx:19
AtSpaceChargeModel
Definition: AtSpaceChargeModel.h:9
AtLineChargeModel::GetDetectorLength
double GetDetectorLength() const
Definition: AtLineChargeModel.h:36
AtDigiPar
Definition: AtDigiPar.h:14
AtLineChargeModel::ApplySpaceCharge
virtual XYZPoint ApplySpaceCharge(const XYZPoint &reverseInputPosition) override
Using model add space charge effect.
Definition: AtLineChargeModel.cxx:42
AtLineChargeModel::SetDriftField
void SetDriftField(double field)
Definition: AtLineChargeModel.h:30
AtLineChargeModel::SetConstantCharge
void SetConstantCharge()
Definition: AtLineChargeModel.h:31
AtLineChargeModel::GetField
double GetField() const
Definition: AtLineChargeModel.h:35
AtLineChargeModel::SetLambda
void SetLambda(double lambda)
Definition: AtLineChargeModel.h:32
AtLineChargeModel::AtLineChargeModel
AtLineChargeModel()=default
AtLineChargeModel::CorrectSpaceCharge
virtual XYZPoint CorrectSpaceCharge(const XYZPoint &directInputPosition) override
Using model correct for space charge.
Definition: AtLineChargeModel.cxx:28
AtLineChargeModel::~AtLineChargeModel
~AtLineChargeModel()=default