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 ATEDISTORTIONMODEL_H
2 #define ATEDISTORTIONMODEL_H
14 #include <unordered_map>
41 using BufferMap = std::unordered_map<EFieldMapRef, Double_t>;
56 void SetBufferMap(std::ifstream &lut,
BufferMap *map);
59 std::ifstream fZLUT{0};
60 std::ifstream fRadLUT{0};
61 std::ifstream fTraLUT{0};
63 std::unique_ptr<eDistortionMap> fDistortionMap{std::make_unique<eDistortionMap>()};
64 std::unique_ptr<BufferMap> fZMap{std::make_unique<BufferMap>()};
65 std::unique_ptr<BufferMap> fRadMap{std::make_unique<BufferMap>()};
66 std::unique_ptr<BufferMap> fTraMap{std::make_unique<BufferMap>()};
77 const std::string &tralut);
78 std::tuple<Double_t, Double_t, Double_t>
GetCorrectionFactors(
const Int_t &radius,
const Int_t &zpos);
std::unordered_map< EFieldMapRef, EFieldCorr > eDistortionMap
virtual XYZPoint ApplySpaceCharge(const XYZPoint &reverseInputPosition) override
Using model add space charge effect.
Int_t _zpos
radius integer value
std::ostream & operator<<(std::ostream &os, const EFieldMapRef &t)
ROOT::Math::XYZPoint XYZPoint
bool operator==(const EFieldMapRef &l, const EFieldMapRef &r)
bool operator<(const EFieldMapRef &l, const EFieldMapRef &r)
Bool_t SetCorrectionMaps(const std::string &zlut, const std::string &radlut, const std::string &tralut)
std::unordered_map< EFieldMapRef, Double_t > BufferMap
void LoadParameters(const AtDigiPar *par) override
Load common parameters from AtDigiPar.
size_t operator()(const EFieldMapRef &x) const
std::tuple< Double_t, Double_t, Double_t > GetCorrectionFactors(const Int_t &radius, const Int_t &zpos)
Set the mapping files via file path.
virtual XYZPoint CorrectSpaceCharge(const XYZPoint &directInputPosition) override
Using model correct for space charge.