BmnRoot 26.10.0-210-gc52d34b0
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
L1AddMaterial.h
Go to the documentation of this file.
1#ifndef L1AddMaterial_h
2#define L1AddMaterial_h
3
4#include "CbmL1Def.h"
5#include "L1MaterialInfo.h"
6#include "L1TrackPar.h"
7
8// #define cnst static const fvec
9#define cnst const fvec
10
11inline void L1AddMaterial(L1TrackPar& T, fvec radThick, fvec qp0, fvec w = 1, fvec mass2 = 0.1395679f * 0.1395679f)
12{
13 cnst /*ZERO = 0.0f,*/ ONE = 1.;
14
15 fvec tx = T.tx;
16 fvec ty = T.ty;
17 fvec txtx = tx * tx;
18 fvec tyty = ty * ty;
19 fvec txtx1 = txtx + ONE;
20 fvec h = txtx + tyty;
21 fvec t = sqrt(txtx1 + tyty);
22 fvec h2 = h * h;
23 fvec qp0t = qp0 * t;
24
25 cnst c1 = 0.0136f, c2 = c1 * 0.038f, c3 = c2 * 0.5f, c4 = -c3 / 2.0f, c5 = c3 / 3.0f, c6 = -c3 / 4.0f;
26
27 fvec s0 = (c1 + c2 * log(radThick) + c3 * h + h2 * (c4 + c5 * h + c6 * h2)) * qp0t;
28 fvec a = ((ONE + mass2 * qp0 * qp0t) * radThick * s0 * s0);
29
30 // std::cout <<" a " << a << std::endl;
31 // a=0.000005;
32 T.C22 += w * txtx1 * a;
33 T.C32 += w * tx * ty * a;
34 T.C33 += w * (ONE + tyty) * a;
35}
36
38 L1MaterialInfo& info,
39 fvec qp0,
40 fvec w = 1,
41 fvec mass2 = 0.1395679f * 0.1395679f)
42{
43 cnst /*ZERO = 0.0f,*/ ONE = 1.f;
44
45 fvec tx = T.tx;
46 fvec ty = T.ty;
47 fvec txtx = tx * tx;
48 fvec tyty = ty * ty;
49 fvec txtx1 = txtx + ONE;
50 fvec h = txtx + tyty;
51 fvec t = sqrt(txtx1 + tyty);
52 fvec h2 = h * h;
53 fvec qp0t = qp0 * t;
54
55 cnst c1 = 0.0136f, c2 = c1 * 0.038f, c3 = c2 * 0.5f, c4 = -c3 / 2.0f, c5 = c3 / 3.0f, c6 = -c3 / 4.0f;
56
57 fvec s0 = (c1 + c2 * info.logRadThick + c3 * h + h2 * (c4 + c5 * h + c6 * h2)) * qp0t;
58 fvec a = ((ONE + mass2 * qp0 * qp0t) * info.RadThick * s0 * s0);
59
60 T.C22 += w * txtx1 * a;
61 T.C32 += w * tx * ty * a;
62 T.C33 += w * (ONE + tyty) * a;
63}
64
66{
67 cnst /*ZERO = 0.0f,*/ ONE = 1.;
68 cnst mass2 = 0.1395679f * 0.1395679f;
69
70 fvec tx = T.tx;
71 fvec ty = T.ty;
72 fvec txtx = tx * tx;
73 fvec tyty = ty * ty;
74 fvec txtx1 = txtx + ONE;
75 fvec h = txtx + tyty;
76 fvec t = sqrt(txtx1 + tyty);
77 fvec h2 = h * h;
78 fvec qp0t = qp0 * t;
79
80 cnst c1 = 0.0136f, c2 = c1 * 0.038f, c3 = c2 * 0.5f, c4 = -c3 / 2.0f, c5 = c3 / 3.0f, c6 = -c3 / 4.0f;
81
82 fvec s0 = (c1 + c2 * (info.logRadThick + log(0.5)) + c3 * h + h2 * (c4 + c5 * h + c6 * h2)) * qp0t;
83 fvec a = ((ONE + mass2 * qp0 * qp0t) * info.RadThick * 0.5 * s0 * s0);
84 // std::cout <<" a " << a << std::endl;
85 // a=0.000005;
86 T.C22 += txtx1 * a;
87 T.C32 += tx * ty * a;
88 T.C33 += (ONE + tyty) * a;
89}
90
91inline void L1AddPipeMaterial(L1TrackPar& T, fvec qp0, fvec w = 1, fvec mass2 = 0.1395679f * 0.1395679f)
92{
93 cnst /*ZERO = 0.0f,*/ ONE = 1.f;
94
95 // static const fscal RadThick=0.0009f;//0.5/18.76;
96 // static const fscal logRadThick=log(RadThick);
97 const fscal RadThick = 0.0009f; // 0.5/18.76;
98 const fscal logRadThick = log(RadThick);
99 fvec tx = T.tx;
100 fvec ty = T.ty;
101 fvec txtx = tx * tx;
102 fvec tyty = ty * ty;
103 fvec txtx1 = txtx + ONE;
104 fvec h = txtx + tyty;
105 fvec t = sqrt(txtx1 + tyty);
106 fvec h2 = h * h;
107 fvec qp0t = qp0 * t;
108
109 cnst c1 = 0.0136f, c2 = c1 * 0.038f, c3 = c2 * 0.5f, c4 = -c3 / 2.0f, c5 = c3 / 3.0f, c6 = -c3 / 4.0f;
110 fvec s0 = (c1 + c2 * (logRadThick) + c3 * h + h2 * (c4 + c5 * h + c6 * h2)) * qp0t;
111 fvec a = ((ONE + mass2 * qp0 * qp0t) * RadThick * s0 * s0);
112 T.C22 += w * txtx1 * a;
113 T.C32 += w * tx * ty * a;
114 T.C33 += w * (ONE + tyty) * a;
115}
116
117#undef cnst
118
119#endif
void L1AddHalfMaterial(L1TrackPar &T, L1MaterialInfo &info, fvec qp0)
void L1AddPipeMaterial(L1TrackPar &T, fvec qp0, fvec w=1, fvec mass2=0.1395679f *0.1395679f)
#define cnst
void L1AddMaterial(L1TrackPar &T, fvec radThick, fvec qp0, fvec w=1, fvec mass2=0.1395679f *0.1395679f)
float fscal
Definition P4_F32vec4.h:232
F32vec4 fvec
Definition P4_F32vec4.h:231
RVec< PromoteType< T > > log(const RVec< T > &v)
RVec< PromoteType< T > > sqrt(const RVec< T > &v)