Belle II Software  release-05-01-25
BFieldComponentKlm1.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010-2011 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Andreas Moll, Kazutaka SUMISAWA *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef BFIELDCOMPONENTKLM1_H
12 #define BFIELDCOMPONENTKLM1_H
13 
14 #include <geometry/bfieldmap/BFieldComponentAbs.h>
15 
16 #include <string>
17 
18 namespace Belle2 {
36  class BFieldComponentKlm1 : public BFieldComponentAbs {
37 
38  public:
39 
41  struct BFieldPoint {
43  double r;
45  double z;
46  };
47 
49  BFieldComponentKlm1() = default;
50 
52  virtual ~BFieldComponentKlm1() = default;
53 
58  virtual void initialize() override;
59 
66  virtual B2Vector3D calculate(const B2Vector3D& point) const override;
67 
71  virtual void terminate() override;
72 
77  void setMapFilename(const std::string& filename) { m_mapFilename = filename; };
78 
83  void setNLayers(int b, int e) {m_nBarrelLayers = b; m_nEndcapLayers = e;}
84 
90  void setBarrelRegion(double minR, double maxZ, double offset) { m_barrelRMin = minR; m_barrelZMax = maxZ; m_mapOffset = offset; }
91 
96  void setEndcapRegion(double minR, double minZ) { m_endcapRMin = minR; m_endcapZMin = minZ;}
97 
104  void setLayerParam(double bgapl0, double bironth, double egap, double dl)
105  {
107  m_endcapGapHeight = egap; m_dLayer = dl;
108  }
109 
110  private:
112  double m_cospi8{cos(M_PI / 8)};
114  double m_cos3pi8{cos(3 * M_PI / 8)};
116  double m_cospi4{cos(M_PI / 4)};
117 
119  std::string m_mapFilename{""};
121  double m_mapOffset{0};
122 
124  double m_barrelRMin{0};
126  double m_barrelZMax{0};
128  double m_endcapRMin{0};
130  double m_endcapZMin{0};
131 
133  int m_nBarrelLayers{0};
135  int m_nEndcapLayers{0};
136 
140  double m_endcapGapHeight{0};
142  double m_dLayer{0};
144  double m_barrelIronThickness{0};
145 
148  double m_barrelZBreakpoint[15] {0};
151  double m_barrelRBreakpoint[15] {0};
154  double m_barrelFieldZSlope1[15] {0};
157  double m_barrelFieldZIntercept1[15] {0};
160  double m_barrelFieldZSlope2[15] {0};
163  double m_barrelFieldZIntercept2[15] {0};
166  double m_barrelFieldRSlope1[15] {0};
169  double m_barrelFieldRIntercept1[15] {0};
172  double m_barrelFieldRSlope2[15] {0};
175  double m_barrelFieldRIntercept2[15] {0};
176 
181  double m_endcapZBreakpoint[2][15][5] {{{0}}};
186  double m_endcapRBreakpoint[2][15][5] {{{0}}};
187 
192  double m_endcapFieldZSlope[2][15][5] {{{0}}};
197  double m_endcapFieldZIntercept[2][15][5] {{{0}}};
202  double m_endcapFieldRSlope[2][15][5] {{{0}}};
207  double m_endcapFieldRIntercept[2][15][5] {{{0}}};
208  };
209 
211 } //end of namespace Belle2
212 
213 #endif /* BFIELDCOMPONENTKLM1_H */
Belle2::BFieldComponentKlm1::m_barrelZBreakpoint
double m_barrelZBreakpoint[15]
z position of breakpoints between the two linear approximations of Bz in the barrel.
Definition: BFieldComponentKlm1.h:156
Belle2::BFieldComponentKlm1::m_barrelZMax
double m_barrelZMax
The maximum boundaries of BKLM region in r.
Definition: BFieldComponentKlm1.h:134
Belle2::BFieldComponentKlm1::m_barrelFieldRIntercept2
double m_barrelFieldRIntercept2[15]
Intercept of Br after the beackpoint in the barrel.
Definition: BFieldComponentKlm1.h:183
Belle2::BFieldComponentKlm1::m_endcapFieldRSlope
double m_endcapFieldRSlope[2][15][5]
Slopes of the linear approximation of Br in the endcap.
Definition: BFieldComponentKlm1.h:210
Belle2::BFieldComponentKlm1::setEndcapRegion
void setEndcapRegion(double minR, double minZ)
Set the dimensions of the endcap region.
Definition: BFieldComponentKlm1.h:104
Belle2::BFieldComponentKlm1::m_cos3pi8
double m_cos3pi8
cos(3pi/8)
Definition: BFieldComponentKlm1.h:122
Belle2::BFieldComponentKlm1::m_mapOffset
double m_mapOffset
Offset required because the accelerator group defines the Belle center as zero.
Definition: BFieldComponentKlm1.h:129
Belle2::BFieldComponentKlm1::m_barrelIronThickness
double m_barrelIronThickness
Thickness of Barrel iron plate.
Definition: BFieldComponentKlm1.h:152
Belle2::BFieldComponentKlm1::m_barrelFieldRSlope2
double m_barrelFieldRSlope2[15]
Slope of Br after the breakpoint in the barrel.
Definition: BFieldComponentKlm1.h:180
Belle2::BFieldComponentKlm1::terminate
virtual void terminate() override
Terminates the magnetic field Component.
Definition: BFieldComponentKlm1.cc:166
Belle2::BFieldComponentKlm1::m_endcapZMin
double m_endcapZMin
The minimum boundaries of EKLM region in z.
Definition: BFieldComponentKlm1.h:138
Belle2::BFieldComponentKlm1::m_endcapZBreakpoint
double m_endcapZBreakpoint[2][15][5]
z position of breakpoints between linear functions in the endcap.
Definition: BFieldComponentKlm1.h:189
Belle2::BFieldComponentKlm1::BFieldPoint::r
double r
r coordinate of the point
Definition: BFieldComponentKlm1.h:51
Belle2::BFieldComponentKlm1::m_barrelGapHeightLayer0
double m_barrelGapHeightLayer0
Gap height of BKLM layer0.
Definition: BFieldComponentKlm1.h:146
Belle2::BFieldComponentKlm1::setLayerParam
void setLayerParam(double bgapl0, double bironth, double egap, double dl)
Set the layer parameters @bgapl0 barrel gap height for layer 0 @bironth barrel iron thickness @egap e...
Definition: BFieldComponentKlm1.h:112
Belle2::BFieldComponentKlm1::m_barrelRMin
double m_barrelRMin
The minimum boundaries of BKLM region in r.
Definition: BFieldComponentKlm1.h:132
Belle2::BFieldComponentKlm1::m_barrelFieldZIntercept1
double m_barrelFieldZIntercept1[15]
Intercept of Bz before the beackpoint in the barrel.
Definition: BFieldComponentKlm1.h:165
Belle2::BFieldComponentKlm1::m_barrelFieldZSlope2
double m_barrelFieldZSlope2[15]
Slope of Bz after the breakpoint in the barrel.
Definition: BFieldComponentKlm1.h:168
Belle2::B2Vector3< double >
Belle2::BFieldComponentKlm1::setMapFilename
void setMapFilename(const std::string &filename)
Sets the filename of the magnetic field map.
Definition: BFieldComponentKlm1.h:85
Belle2::BFieldComponentKlm1::m_mapFilename
std::string m_mapFilename
The filename of the magnetic field map.
Definition: BFieldComponentKlm1.h:127
Belle2::BFieldComponentKlm1::m_endcapGapHeight
double m_endcapGapHeight
Gap height of BKLM layer1-14.
Definition: BFieldComponentKlm1.h:148
Belle2::BFieldComponentKlm1::m_endcapFieldRIntercept
double m_endcapFieldRIntercept[2][15][5]
Intercepts of the linear approximation of Br in the endcap.
Definition: BFieldComponentKlm1.h:215
Belle2::BFieldComponentKlm1::m_endcapRMin
double m_endcapRMin
The minimum boundaries of EKLM region in r.
Definition: BFieldComponentKlm1.h:136
Belle2::BFieldComponentKlm1::m_barrelFieldZSlope1
double m_barrelFieldZSlope1[15]
Slope of Bz before the breakpoint in the barrel.
Definition: BFieldComponentKlm1.h:162
Belle2::BFieldComponentKlm1::m_endcapFieldZSlope
double m_endcapFieldZSlope[2][15][5]
Slopes of the linear approximation of Bz in the endcap.
Definition: BFieldComponentKlm1.h:200
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::BFieldComponentKlm1::m_endcapRBreakpoint
double m_endcapRBreakpoint[2][15][5]
r position of breakpoints between linear functions in the endcap First index indicates whether or not...
Definition: BFieldComponentKlm1.h:194
Belle2::BFieldComponentKlm1::m_cospi4
double m_cospi4
cos(pi/4)
Definition: BFieldComponentKlm1.h:124
Belle2::BFieldComponentKlm1::m_nBarrelLayers
int m_nBarrelLayers
The number of layers per 1 sector for BKLM.
Definition: BFieldComponentKlm1.h:141
Belle2::BFieldComponentKlm1::setNLayers
void setNLayers(int b, int e)
Sets the number of barrel and endcap layers.
Definition: BFieldComponentKlm1.h:91
Belle2::BFieldComponentKlm1::m_cospi8
double m_cospi8
cos(pi/8)
Definition: BFieldComponentKlm1.h:120
Belle2::BFieldComponentKlm1::m_barrelFieldRSlope1
double m_barrelFieldRSlope1[15]
Slope of Br before the breakpoint in the barrel.
Definition: BFieldComponentKlm1.h:174
Belle2::BFieldComponentKlm1::m_dLayer
double m_dLayer
deppth of BKLM module?
Definition: BFieldComponentKlm1.h:150
Belle2::BFieldComponentKlm1::initialize
virtual void initialize() override
Initializes the magnetic field Component.
Definition: BFieldComponentKlm1.cc:25
Belle2::BFieldComponentKlm1::BFieldPoint::z
double z
z coordinate of the point
Definition: BFieldComponentKlm1.h:53
Belle2::BFieldComponentKlm1::setBarrelRegion
void setBarrelRegion(double minR, double maxZ, double offset)
Sets the dimensions of the barrel region.
Definition: BFieldComponentKlm1.h:98
Belle2::BFieldComponentKlm1::m_barrelFieldZIntercept2
double m_barrelFieldZIntercept2[15]
Intercept of Bz after the beackpoint in the barrel.
Definition: BFieldComponentKlm1.h:171
Belle2::BFieldComponentKlm1::m_barrelRBreakpoint
double m_barrelRBreakpoint[15]
z position of breakpoints between the two linear approximations of Br in the barrel.
Definition: BFieldComponentKlm1.h:159
Belle2::BFieldComponentKlm1::BFieldComponentKlm1
BFieldComponentKlm1()=default
The BFieldComponentklm1 constructor.
Belle2::BFieldComponentKlm1::m_nEndcapLayers
int m_nEndcapLayers
The number of layers per 1 sector for EKLM.
Definition: BFieldComponentKlm1.h:143
Belle2::BFieldComponentKlm1::~BFieldComponentKlm1
virtual ~BFieldComponentKlm1()=default
The BFieldComponentklm1 destructor.
Belle2::BFieldComponentKlm1::m_barrelFieldRIntercept1
double m_barrelFieldRIntercept1[15]
Intercept of Br before the beackpoint in the barrel.
Definition: BFieldComponentKlm1.h:177
Belle2::BFieldComponentKlm1::m_endcapFieldZIntercept
double m_endcapFieldZIntercept[2][15][5]
Intercepts of the linear approximation of Bz in the endcap.
Definition: BFieldComponentKlm1.h:205
Belle2::BFieldComponentKlm1::calculate
virtual B2Vector3D calculate(const B2Vector3D &point) const override
Calculates the magnetic field vector at the specified space point.
Definition: BFieldComponentKlm1.cc:89