50 double x0 = 0., y0 = 0., z0 = 0., t0 = 0.;
64 double dx0 = (trkPosOut[0] - trkPosIn[0])/10.0;
65 double dy0 = (trkPosOut[1] - trkPosIn[1])/10.0;
66 double dz0 = (trkPosOut[2] - trkPosIn[2])/10.0;
67 double trkL = sqrt(dx0*dx0 + dy0*dy0 + dz0*dz0);
73 double minX = 0. < dx0 ? 0. : dx0;
74 double maxX = 0. < dx0 ? dx0 : 0.;
75 double minY = 0. < dy0 ? 0. : dy0;
76 double maxY = 0. < dy0 ? dy0 : 0.;
77 double minZ = 0. < dz0 ? 0. : dz0;
78 double maxZ = 0. < dz0 ? dz0 : 0.;
92 string particleType = getParticle(particle, charge);
94 m_track->SetParticle(particleType);
95 m_track->SetMomentum(p*1.e9);
97 m_sensor->SetArea(minX, minY, minZ, maxX, maxY, maxZ);
106 m_track->NewTrack(x0, y0, z0, t0, dx0, dy0, dz0);
113 double xc = 0., yc = 0., zc = 0., tc = 0.;
119 while(m_track->GetCluster(xc, yc, zc, tc, nc, ec, extra)){
121 double length = sqrt(pow(xc,2)+pow(yc,2)+pow(zc,2));
124 cout <<
"overflow -------------------------" << endl;
129 for(
int j = 0; j<nc; ++j) {
130 double xe, ye, ze, te;
131 double ee, dxe, dye, dze;
133 m_track->GetElectron(j, xe, ye, ze, te, ee, dxe, dye, dze);
136 m_ex.push_back(trkPosIn[0] + xe*10.0);
137 m_ey.push_back(trkPosIn[1] + ye*10.0);
138 m_ez.push_back(trkPosIn[2] + ze*10.0);
186 m_box =
new SolidBox(0., 0., 0., 10., 10., 10.);