CbmRoot
Loading...
Searching...
No Matches
CbmFieldMapDistorted.h
Go to the documentation of this file.
1/* Copyright (C) 2008-2020 Justus-Liebig-Universitaet Giessen, Giessen
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Elena Lebedeva [committer], Florian Uhlig */
4
5// -------------------------------------------------------------------------
6// ----- CbmFieldMapSym3Distorted header -----
7// ----- Created 18/01/08 by E.Litvinenko -----
8// -------------------------------------------------------------------------
9
10
11#ifndef CBMMAGFIELDMAPDISTORTED_H
12#define CBMMAGFIELDMAPDISTORTED_H 1
13
14#include "CbmFieldMap.h" // for CbmFieldMap
15
16#include <Rtypes.h> // for THashConsistencyHolder, ClassDef
17#include <RtypesCore.h> // for Double_t, Int_t, Bool_t, Option_t
18#include <TString.h> // for TString
19
20class CbmFieldPar;
21class FairField;
22class TFormula;
23
25
26
27 public:
30
38 CbmFieldMapDistorted(const char* mapName, const char* pfDistortionFilename, const char* parentName,
39 const char* fileTypeParent = "R", Int_t pfTypeOfParent = 3);
40
48 CbmFieldMapDistorted(Double_t xMin, Double_t xMax, Double_t yMin, Double_t yMax, Double_t zMin, Double_t zMax,
49 Double_t bX, Double_t bY, Double_t bZ, const char* mapName, const char* pfDistortionFilename,
50 const char* parentName = "");
51
54
55
57 virtual ~CbmFieldMapDistorted();
58
59
61 virtual void Init() override;
62
63 void ReadDistortionInformation(const char* filename = 0);
64 void WriteDistortionInformation(const char* filename = 0);
65
70 virtual Double_t GetBx(Double_t x, Double_t y, Double_t z) override;
71 virtual Double_t GetBy(Double_t x, Double_t y, Double_t z) override;
72 virtual Double_t GetBz(Double_t x, Double_t y, Double_t z) override;
73
77 virtual void GetFieldValue(const Double_t point[3], Double_t* bField) override;
78
79 // virtual Double_t GetDistorted(Double_t b,Double_t *coords, TFormula *formula);
80
81 void SetType(Int_t pfType = 0) { fType = pfType; }
82
83 const char* GetDistortionFilename() { return fDistortionFilename.Data(); }
84 Bool_t SetDistortionFilename(const char* filename)
85 {
86 fDistortionFilename = filename;
87 return (fDistortionFilename.Length() != 0);
88 }
89
90 TFormula* GetDistortionFormula(const char* component_option = "y",
91 const char* action_option = "m"); // component_opt:"x","y","z";action_opt:"m","a"
92 Bool_t SetDistortionFormula(TFormula* parDistortionFormula, const char* component_option = "y",
93 const char* action_option = "m");
94 Bool_t SetDistortionFormula(const char* parDistortionFormulaText, const char* component_option = "y",
95 const char* action_option = "m");
96
97
99 void SetFromParent(FairField* field);
100
102 FairField* GetParent() { return fParentField; }
103
105 virtual void Print(Option_t* = "") const override;
106
108 virtual void SetPosition(Double_t x, Double_t y, Double_t z) override;
109
111 virtual void SetScale(Double_t factor) override;
112
114 void PlotBy(Int_t n = 250, Double_t zmin = -50, Double_t zmax = 450);
115
116 protected:
118 FairField* fParentField;
119
122
125
133
134 private:
137
138 ClassDefOverride(CbmFieldMapDistorted, 1)
139};
140
141#endif
int Int_t
bool Bool_t
TFormula * fByDistortionFormulaMult
getter/setter options: ("x","m"), ("x","a")
void SetFromParent(FairField *field)
virtual void Print(Option_t *="") const override
void SetType(Int_t pfType=0)
TFormula * GetDistortionFormula(const char *component_option="y", const char *action_option="m")
const char * GetDistortionFilename()
virtual void SetScale(Double_t factor) override
CbmFieldMapDistorted & operator=(const CbmFieldMapDistorted &)
CbmFieldMapDistorted(const CbmFieldMapDistorted &)
getter/setter options: ("z","m"), ("z","a")
virtual void GetFieldValue(const Double_t point[3], Double_t *bField) override
Get the field value at a point.
void ReadDistortionInformation(const char *filename=0)
virtual void SetPosition(Double_t x, Double_t y, Double_t z) override
void PlotBy(Int_t n=250, Double_t zmin=-50, Double_t zmax=450)
Bool_t SetDistortionFilename(const char *filename)
virtual void Init() override
void WriteDistortionInformation(const char *filename=0)
Bool_t SetDistortionFormula(TFormula *parDistortionFormula, const char *component_option="y", const char *action_option="m")
TFormula * fBzDistortionFormulaMult
getter/setter options: ("y","m"), ("y","a")
TArrayF * GetBz() const
TArrayF * GetBx() const
TArrayF * GetBy() const