@@ -66,26 +66,26 @@ GPUd() void g3helx3(value_T qfield, value_T step, std::array<value_T, 7>& vect)
6666 static_assert (std::is_floating_point_v<value_T>);
6767#endif
6868
69- const int ix = 0 , iy = 1 , iz = 2 , ipx = 3 , ipy = 4 , ipz = 5 , ipp = 6 ;
70- constexpr value_T kOvSqSix = 0 . 408248f ; // std::sqrt(1./6.);
69+ constexpr int ix = 0 , iy = 1 , iz = 2 , ipx = 3 , ipy = 4 , ipz = 5 , ipp = 6 ;
70+ constexpr value_T kOvSqSix = value_T ( 0.408248 ) ; // std::sqrt(1./6.);
7171
7272 value_T cosx = vect[ipx], cosy = vect[ipy], cosz = vect[ipz];
7373
7474 value_T rho = qfield * constants::math::B2C / vect[ipp];
7575 value_T tet = rho * step;
7676
7777 value_T tsint, sintt, sint, cos1t;
78- if (gpu::CAMath::Abs (tet) > 0 . 03f ) {
78+ if (gpu::CAMath::Abs (tet) > value_T ( 0.03 ) ) {
7979 sint = gpu::CAMath::Sin (tet);
8080 sintt = sint / tet;
8181 tsint = (tet - sint) / tet;
82- value_T t = gpu::CAMath::Sin (0 . 5f * tet);
83- cos1t = 2 . f * t * t / tet;
82+ value_T t = gpu::CAMath::Sin (value_T ( 0.5 ) * tet);
83+ cos1t = value_T ( 2 ) * t * t / tet;
8484 } else {
85- tsint = tet * tet / 6 . f ;
86- sintt = (1 . f - tet * kOvSqSix ) * (1 . f + tet * kOvSqSix ); // 1.- tsint;
85+ tsint = tet * tet / value_T ( 6 ) ;
86+ sintt = (value_T ( 1 ) - tet * kOvSqSix ) * (value_T ( 1 ) + tet * kOvSqSix ); // 1.- tsint;
8787 sint = tet * sintt;
88- cos1t = 0 . 5f * tet;
88+ cos1t = value_T ( 0.5 ) * tet;
8989 }
9090
9191 value_T f1 = step * sintt;
@@ -124,25 +124,25 @@ GPUd() value_T BetheBlochSolid(value_T bg, value_T rho, value_T kp1, value_T kp2
124124 static_assert (std::is_floating_point_v<value_T>);
125125#endif
126126
127- constexpr value_T mK = 0.307075e-3 ; // [GeV*cm^2/g]
128- constexpr value_T me = 0.511e-3 ; // [GeV/c^2]
129- kp1 *= 2 . 303f ;
130- kp2 *= 2 . 303f ;
131- value_T bg2 = bg * bg, beta2 = bg2 / (1 . f + bg2);
132- value_T maxT = 2 . f * me * bg2; // neglecting the electron mass
127+ constexpr value_T mK = value_T ( 0.307075e-3 ) ; // [GeV*cm^2/g]
128+ constexpr value_T me = value_T ( 0.511e-3 ) ; // [GeV/c^2]
129+ kp1 *= value_T ( 2.303 ) ;
130+ kp2 *= value_T ( 2.303 ) ;
131+ value_T bg2 = bg * bg, beta2 = bg2 / (value_T ( 1 ) + bg2);
132+ value_T maxT = value_T ( 2 ) * me * bg2; // neglecting the electron mass
133133
134134 // *** Density effect
135- value_T d2 = 0 . ;
135+ value_T d2 = value_T ( 0 ) ;
136136 const value_T x = gpu::CAMath::Log (bg);
137- const value_T lhwI = gpu::CAMath::Log (28 .816f * 1e- 9f * gpu::CAMath::Sqrt (rho * meanZA) / meanI);
137+ const value_T lhwI = gpu::CAMath::Log (value_T ( 28.816e-9 ) * gpu::CAMath::Sqrt (rho * meanZA) / meanI);
138138 if (x > kp2) {
139- d2 = lhwI + x - 0 . 5f ;
139+ d2 = lhwI + x - value_T ( 0.5 ) ;
140140 } else if (x > kp1) {
141141 double r = (kp2 - x) / (kp2 - kp1);
142- d2 = lhwI + x - 0 . 5f + (0 . 5f - lhwI - kp1) * r * r * r;
142+ d2 = lhwI + x - value_T ( 0.5 ) + (value_T ( 0.5 ) - lhwI - kp1) * r * r * r;
143143 }
144- auto dedx = mK * meanZA / beta2 * (0 . 5f * gpu::CAMath::Log (2 . f * me * bg2 * maxT / (meanI * meanI)) - beta2 - d2);
145- return dedx > 0 . f ? dedx : 0 . f ;
144+ auto dedx = mK * meanZA / beta2 * (value_T ( 0.5 ) * gpu::CAMath::Log (value_T ( 2 ) * me * bg2 * maxT / (meanI * meanI)) - beta2 - d2);
145+ return dedx > value_T ( 0 ) ? dedx : value_T ( 0 ) ;
146146}
147147
148148// ____________________________________________________
@@ -166,26 +166,26 @@ GPUd() value_T BetheBlochSolidOpt(value_T bg)
166166 // constexpr value_T meanI = 173e-9;
167167 // constexpr value_T me = 0.511e-3; // [GeV/c^2]
168168
169- constexpr value_T mK = 0.307075e-3 ; // [GeV*cm^2/g]
170- constexpr value_T kp1 = 0.20 * 2.303 ;
171- constexpr value_T kp2 = 3.00 * 2.303 ;
172- constexpr value_T meanZA = 0.49848 ;
173- constexpr value_T lhwI = -1.7175226 ; // gpu::CAMath::Log(28.816 * 1e-9 * gpu::CAMath::Sqrt(rho * meanZA) / meanI);
174- constexpr value_T log2muTomeanI = 8.6839805 ; // gpu::CAMath::Log( 2. * me / meanI);
169+ constexpr value_T mK = value_T ( 0.307075e-3 ) ; // [GeV*cm^2/g]
170+ constexpr value_T kp1 = value_T ( 0.20 * 2.303 ) ;
171+ constexpr value_T kp2 = value_T ( 3.00 * 2.303 ) ;
172+ constexpr value_T meanZA = value_T ( 0.49848 ) ;
173+ constexpr value_T lhwI = value_T ( -1.7175226 ) ; // gpu::CAMath::Log(28.816 * 1e-9 * gpu::CAMath::Sqrt(rho * meanZA) / meanI);
174+ constexpr value_T log2muTomeanI = value_T ( 8.6839805 ) ; // gpu::CAMath::Log( 2. * me / meanI);
175175
176- value_T bg2 = bg * bg, beta2 = bg2 / (1 . f + bg2);
176+ value_T bg2 = bg * bg, beta2 = bg2 / (value_T ( 1 ) + bg2);
177177
178178 // *** Density effect
179- value_T d2 = 0 . ;
179+ value_T d2 = value_T ( 0 ) ;
180180 const value_T x = gpu::CAMath::Log (bg);
181181 if (x > kp2) {
182- d2 = lhwI - 0 . 5f + x;
182+ d2 = lhwI - value_T ( 0.5 ) + x;
183183 } else if (x > kp1) {
184184 value_T r = (kp2 - x) / (kp2 - kp1);
185- d2 = lhwI - 0.5 + x + (0.5 - lhwI - kp1) * r * r * r;
185+ d2 = lhwI - value_T ( 0.5 ) + x + (value_T ( 0.5 ) - lhwI - kp1) * r * r * r;
186186 }
187187 auto dedx = mK * meanZA / beta2 * (log2muTomeanI + x + x - beta2 - d2);
188- return dedx > 0 . f ? dedx : 0 . f ;
188+ return dedx > value_T ( 0 ) ? dedx : value_T ( 0 ) ;
189189}
190190
191191// ____________________________________________________
@@ -203,12 +203,12 @@ GPUdi() value_T BetheBlochSolidDerivative(value_T dedx, value_T bg)
203203 // dedx - precalculate dedx for bg
204204 // bg - beta*gamma
205205 //
206- constexpr value_T mK = 0.307075e-3 ; // [GeV*cm^2/g]
207- constexpr value_T meanZA = 0.49848 ;
206+ constexpr value_T mK = value_T ( 0.307075e-3 ) ; // [GeV*cm^2/g]
207+ constexpr value_T meanZA = value_T ( 0.49848 ) ;
208208 auto bg2 = bg * bg;
209- auto t1 = 1 . f + bg2;
209+ auto t1 = value_T ( 1 ) + bg2;
210210 // auto derH = (mK * meanZA * (t1+bg2) - dedx*bg2)/(bg*t1);
211- auto derH = (mK * meanZA * (t1 + 1 . f / bg2) - dedx) / (bg * t1);
211+ auto derH = (mK * meanZA * (t1 + value_T ( 1 ) / bg2) - dedx) / (bg * t1);
212212 return derH + derH;
213213}
214214
0 commit comments