27 int section = hit->getSection();
28 int sector = hit->getSector();
37 global[0] = hit->getPositionX();
38 global[1] = hit->getPositionY();
39 global[2] = hit->getPositionZ();
45 double localU = local[1];
46 double localV = local[2];
52 int nStrips = hit->getPhiStripMax() - hit->getPhiStripMin() + 1;
53 double dn = nStrips - 1.5;
54 double factor = std::pow((0.9 + 0.4 * dn * dn), 1.5) * 0.60;
55 errorU = errorU *
sqrt(factor);
57 nStrips = hit->getZStripMax() - hit->getZStripMin() + 1;
59 factor = std::pow((0.9 + 0.4 * dn * dn), 1.5) * 0.55;
60 errorV = errorV *
sqrt(factor);
64 rawHitCoords_(0) = localU;
65 rawHitCoords_(1) = localV;
67 rawHitCov_(0, 0) = errorU * errorU;
68 rawHitCov_(0, 1) = 0.;
69 rawHitCov_(1, 0) = 0.;
70 rawHitCov_(1, 1) = errorV * errorV;
73 CLHEP::Hep3Vector gOrigin =
m_Module->getGlobalOrigin();
74 CLHEP::Hep3Vector lOrigin =
m_Module->globalToLocal(gOrigin) +
m_Module->getLocalReconstructionShift();
75 CLHEP::Hep3Vector gOrigin_midway =
m_Module->localToGlobal(lOrigin);
76 CLHEP::Hep3Vector uAxis(0, 1, 0);
77 CLHEP::Hep3Vector vAxis(0, 0, 1);
78 CLHEP::Hep3Vector gUaxis =
m_Module->localToGlobal(uAxis) - gOrigin;
79 CLHEP::Hep3Vector gVaxis =
m_Module->localToGlobal(vAxis) - gOrigin;
82 B2Vector3D origin_mid(gOrigin_midway[0], gOrigin_midway[1], gOrigin_midway[2]);
85 B2Vector3D uGlobal(gUaxis[0], gUaxis[1], gUaxis[2]);
87 B2Vector3D vGlobal(gVaxis[0], gVaxis[1], gVaxis[2]);
89 genfit::SharedPlanePtr detPlane(
new genfit::DetPlane(origin_mid, uGlobal, vGlobal, 0));
100 TVectorD predFglo = state.get6DState();
101 TVectorD correctedLocal(2);
102 CLHEP::Hep3Vector localmom(predFglo[3], predFglo[4], predFglo[5]);
103 localmom =
m_Module->RotateToLocal(localmom);
107 CLHEP::Hep3Vector global_shift_z(0, 0, predFglo[5]*
halfheight_sci /
sqrt(predFglo[3]*predFglo[3] + predFglo[4]*predFglo[4]));
108 CLHEP::Hep3Vector local_corrected_z =
m_Module->globalToLocal(
global - global_shift_z);
109 double local_shift_u = localmom[1] / localmom[0] *
halfheight_sci;
110 correctedLocal[0] = local_corrected_z[1] + local_shift_u;
112 correctedLocal[1] = local_corrected_z[2];
114 correctedLocal[0] = rawHitCoords_[0];
115 correctedLocal[1] = rawHitCoords_[1];
119 return std::vector<genfit::MeasurementOnPlane*>(1,
new genfit::MeasurementOnPlane(correctedLocal, rawHitCov_, state.getPlane(),
120 state.getRep(), this->constructHMatrix(state.getRep())));
125 std::vector<int> labGlobal;
135 TMatrixD derGlobal(2, 6);
139 double uSlope = sop->getState()[1];
141 double vSlope = sop->getState()[2];
143 double uPos = sop->getState()[3];
145 double vPos = sop->getState()[4];
148 derGlobal(0, 0) = 1.0;
149 derGlobal(0, 1) = 0.0;
150 derGlobal(0, 2) = - uSlope;
151 derGlobal(0, 3) = vPos * uSlope;
152 derGlobal(0, 4) = -uPos * uSlope;
153 derGlobal(0, 5) = vPos;
155 derGlobal(1, 0) = 0.0;
156 derGlobal(1, 1) = 1.0;
157 derGlobal(1, 2) = - vSlope;
158 derGlobal(1, 3) = vPos * vSlope;
159 derGlobal(1, 4) = -uPos * vSlope;
160 derGlobal(1, 5) = -uPos;