13 , m_NStripsPhiCell(-1)
30 os <<
"CylinderGeomIntt Object" << endl;
42 TVector3
local(0,0,0);
44 double center[3] = {0,0,0};
46 TVector3 cent(center[0], center[1], center[2]);
54 local.RotateZ(-rotate);
61 const double signz = (segment_z_bin > 1) ? 1. : -1.;
62 const int itype = segment_z_bin % 2;
75 double signz = (location[2] > 0)? 1. : -1;
76 double phi = atan2(location[1], location[0]);
77 if(phi < 0) phi += 2.0*
M_PI;
79 segment_phi_bin =
round(segment_phi_bin_tmp);
81 double z_tmp = location[2] / signz;
91 segment_z_bin = itype;
93 segment_z_bin = itype + 2;
98 double signz = (location[2] > 0)? 1. : -1;
99 double phi = atan2(location[1], location[0]);
100 if(phi < 0) phi += 2.0*
M_PI;
102 segment_phi_bin = lround(segment_phi_bin_tmp);
104 double z_tmp = location[2] / signz;
108 if( fabs((1.0 - z_tmp /
m_LadderZ[0])) < 0.01)
114 segment_z_bin = itype;
116 segment_z_bin = itype + 2;
129 const int itype = segment_z_bin % 2;
130 const double strip_z =
m_StripZ[itype];
133 const double strip_localpos_z = strip_z * (strip_column % nstrips_z_sensor) - strip_z / 2. * nstrips_z_sensor + strip_z / 2.;
145 strip_localpos = rot * strip_localpos;
146 strip_localpos += ladder;
148 location[0] = strip_localpos.
x();
149 location[1] = strip_localpos.y();
150 location[2] = strip_localpos.z();
159 const int itype = segment_z_bin % 2;
160 if (itype != 0 && itype != 1)
162 cout <<
"Problem: itype = " << itype << endl;
170 const double strip_z =
m_StripZ[itype];
175 double zup = (double) nstrips_z_sensor * strip_z / 2.0 + zpos;
176 strip_z_index = (
int) (zup / strip_z);
179 double yup = (double) nstrips_y_sensor *
m_StripY / 2.0 + ypos;
193 const int itype = segment_z_bin % 2;
194 if (itype != 0 && itype != 1)
196 cout <<
"Problem: itype = " << itype << endl;
200 const double strip_z =
m_StripZ[itype];
208 double zpos = (double) strip_z_index * strip_z + strip_z / 2.0 - (
double) nstrips_z_sensor * strip_z / 2.0;