CbmRoot
L1MaterialInfo.h
Go to the documentation of this file.
1 #ifndef L1MaterialInfo_h
2 #define L1MaterialInfo_h
3 
4 #include "../CbmL1Def.h"
5 #include <vector>
6 
8 public:
9  L1MaterialInfo() : thick(0), RL(0), RadThick(0), logRadThick(0) {};
10 
13 
14 class L1Material {
15 public:
16  L1Material() : table(0), NBins(0), RMax(0.), iD(0.) {};
17 
18  std::vector<std::vector<float>> table;
19 
20  // static const int NBins = 100; // TODO file?
21  // static const float RMax = 60.f;
22  // static const float iD = 0.5*NBins/60.f;//RMax!;
23 
24  void SetBins(int n, float r) {
25  NBins = n;
26  RMax = r;
27  iD = 0.5 * NBins / RMax;
28  }
29 
30  float GetRadThick(float x, float y) {
31  x = (x < RMax && x >= -RMax) ? x : 0;
32  y = (y < RMax && y >= -RMax) ? y : 0;
33  int i = static_cast<int>((x + RMax) * iD);
34  int j = static_cast<int>((y + RMax) * iD);
35  i = (i < NBins && i >= 0) ? i : NBins / 2;
36  j = (j < NBins && j >= 0) ? j : NBins / 2;
37  return table[i][j];
38  }
39 
40 
42  fvec r;
43  for (int i = 0; i < fvecLen; i++)
44  r[i] = GetRadThick(x[i], y[i]);
45  return r;
46  }
47 
48  int NBins;
49  float RMax;
50  float iD;
51 
53 
54 #endif
L1MaterialInfo::RadThick
fvec RadThick
Definition: L1MaterialInfo.h:11
F32vec4
Definition: L1/vectors/P4_F32vec4.h:47
L1Material::iD
float iD
Definition: L1MaterialInfo.h:50
i
int i
Definition: L1/vectors/P4_F32vec4.h:25
L1Material::NBins
int NBins
Definition: L1MaterialInfo.h:48
L1MaterialInfo
Definition: L1MaterialInfo.h:7
L1Material
Definition: L1MaterialInfo.h:14
L1MaterialInfo::logRadThick
fvec logRadThick
Definition: L1MaterialInfo.h:11
L1MaterialInfo::L1MaterialInfo
L1MaterialInfo()
Definition: L1MaterialInfo.h:9
L1Material::SetBins
void SetBins(int n, float r)
Definition: L1MaterialInfo.h:24
fvecLen
const int fvecLen
Definition: L1/vectors/P4_F32vec4.h:251
L1Material::GetRadThick
float GetRadThick(float x, float y)
Definition: L1MaterialInfo.h:30
L1MaterialInfo::RL
fvec RL
Definition: L1MaterialInfo.h:11
L1Material::L1Material
L1Material()
Definition: L1MaterialInfo.h:16
_fvecalignment
class L1MaterialInfo _fvecalignment
L1Material::table
std::vector< std::vector< float > > table
Definition: L1MaterialInfo.h:16
L1Material::GetRadThick
fvec GetRadThick(fvec x, fvec y)
Definition: L1MaterialInfo.h:41
L1Material::RMax
float RMax
Definition: L1MaterialInfo.h:49
x
Double_t x
Definition: CbmMvdSensorDigiToHitTask.cxx:68
L1MaterialInfo::thick
fvec thick
Definition: L1MaterialInfo.h:9
y
Double_t y
Definition: CbmMvdSensorDigiToHitTask.cxx:68