31 double zmin,
double zmax,
32 double Bb,
double nrl,
33 double sigmaRPhi,
double N)
39 , mZMin(std::
min(zmin, zmax))
40 , mZMax(std::
max(zmin, zmax)) {
47 std::cout << ClassName() <<
" with:" << std::endl <<
52 "\tmagnetic field " <<
mMagField <<
" Tesla\n" <<
54 "\tpoint resolution " <<
mSigmaRPhi * 1.e6 <<
" microns\n" <<
55 "\t" <<
mNPlanes <<
" planes" << std::endl;
79 TVector3 intersection(0., 0., std::numeric_limits<double>::quiet_NaN());
82 intersection.SetXYZ(radius, 0., z);
92 TVector3 intersection(0., 0., std::numeric_limits<double>::quiet_NaN());
95 intersection.SetXYZ(r, 0., z);
101 float r1 = 0.,
r2 = 0.,
pi = 3.1415926535;
102 double zPlane1 = 0., zPlane2 = 0., Length = 0.;
107 for (
int i = 0; i <
mNPlanes; i++) {
109 r1 = fabs(tan(p.
GetTheta()) * zPlane1);
111 if (((p.
GetTheta() <
pi / 2.) && (zPlane1 > 0.)) ||
112 ((p.
GetTheta() >
pi / 2.) && (zPlane1 < 0.))) {
119 Length = sqrt((zPlane2 - zPlane1) * (zPlane2 - zPlane1) +
120 (
r2 - r1) * (
r2 - r1));
125 float r1 = 0.,
r2 = 0.,
pi = 3.1415926535;
126 double zPlane1 = 0., zPlane2 = 0.;
128 for (
int i = 0; i <
mNPlanes; i++) {
130 r1 = fabs(tan(p.
GetTheta()) * zPlane1);
132 if (((p.
GetTheta() <
pi / 2.) && (zPlane1 > 0.)) ||
133 ((p.
GetTheta() >
pi / 2.) && (zPlane1 < 0.))) {
140 return fabs(
r2 - r1);
144 double zPlane = 0.,
pi = 3.1415926535;
150 r = fabs(tan(p.
GetTheta()) * zPlane);
153 if ((p.
GetTheta() <
pi / 2.) && (zPlane > 0)) n++;
154 if ((p.
GetTheta() >
pi / 2.) && (zPlane < 0)) n++;