64 ROOT::Math::XYZVector pos = aTrackPtr->
getPosition();
65 ROOT::Math::XYZVector mom = aTrackPtr->
getMomentum();
70 rave::Vector6D ravestate(pos.X(), pos.Y(), pos.Z(),
71 mom.X(), mom.Y(), mom.Z());
73 rave::Covariance6D ravecov(cov(0, 0), cov(1, 0), cov(2, 0),
74 cov(1, 1), cov(2, 1), cov(2, 2),
75 cov(3, 0), cov(4, 0), cov(5, 0),
76 cov(3, 1), cov(4, 1), cov(5, 1),
77 cov(3, 2), cov(4, 2), cov(5, 2),
78 cov(3, 3), cov(4, 3), cov(5, 3),
79 cov(4, 4), cov(5, 4), cov(5, 5));
81 return rave::Track(
id, ravestate, ravecov, rave::Charge(aTrackPtr->
getChargeSign()), 1,
90 const ROOT::Math::XYZVector& pos = aParticlePtr->
getVertex();
91 const ROOT::Math::XYZVector& mom = aParticlePtr->
getMomentum();
92 rave::Vector6D ravestate(pos.X(), pos.Y(), pos.Z(), mom.X(), mom.Y(), mom.Z());
96 rave::Covariance6D ravecov(cov(4, 4), cov(4, 5), cov(4, 6),
97 cov(5, 5), cov(5, 6), cov(6, 6),
98 cov(0, 4), cov(1, 4), cov(2, 4),
99 cov(0, 5), cov(1, 5), cov(2, 5),
100 cov(0, 6), cov(1, 6), cov(2, 6),
101 cov(0, 0), cov(0, 1), cov(0, 2),
102 cov(1, 1), cov(1, 2), cov(2, 2));
105 m_raveTracks.emplace_back(
id, ravestate, ravecov, rave::Charge(aParticlePtr->
getCharge() + 0.1), 1, 1);
253 B2ERROR(
"RaveVertexFitter: Daughters update works only with a single vertex");
258 B2WARNING(
"RaveVertexFitter: Fitted vertex has no refitted tracks");
264 for (
unsigned int i = 0; i < rTracks.size(); i++) {
266 const rave::Point3D fittedV = rtrk.position();
267 const rave::Vector3D fittedP = rtrk.momentum();
268 const rave::Covariance6D& fittedCov = rtrk.error();
270 ROOT::Math::XYZVector x3(fittedV.x(), fittedV.y(), fittedV.z());
272 ROOT::Math::PxPyPzEVector p4(fittedP.x(), fittedP.y(), fittedP.z(), fittedE);
274 TMatrixDSym fitted7CovPart =
m_belleDaughters[i]->getMomentumVertexErrorMatrix() ;
277 TMatrixDSym fitted7CovM(7);
278 fitted7CovM(0, 0) = fittedCov.dpxpx(); fitted7CovM(0, 0) = fitted7CovM(0, 0);
279 fitted7CovM(0, 1) = fittedCov.dpxpy(); fitted7CovM(1, 0) = fitted7CovM(0, 1);
280 fitted7CovM(0, 2) = fittedCov.dpxpz(); fitted7CovM(2, 0) = fitted7CovM(0, 2);
281 fitted7CovM(0, 3) = fitted7CovPart(0, 3); fitted7CovM(3, 0) = fitted7CovM(0, 3);
282 fitted7CovM(0, 4) = fittedCov.dxpx(); fitted7CovM(4, 0) = fitted7CovM(0, 4);
283 fitted7CovM(0, 5) = fittedCov.dypx(); fitted7CovM(5, 0) = fitted7CovM(0, 5);
284 fitted7CovM(0, 6) = fittedCov.dzpx(); fitted7CovM(6, 0) = fitted7CovM(0, 6);
286 fitted7CovM(1, 1) = fittedCov.dpypy(); fitted7CovM(1, 1) = fitted7CovM(1, 1);
287 fitted7CovM(1, 2) = fittedCov.dpypz(); fitted7CovM(2, 1) = fitted7CovM(1, 2);
288 fitted7CovM(1, 3) = fitted7CovPart(1, 3); fitted7CovM(3, 1) = fitted7CovM(1, 3);
289 fitted7CovM(1, 4) = fittedCov.dxpy(); fitted7CovM(4, 1) = fitted7CovM(1, 4);
290 fitted7CovM(1, 5) = fittedCov.dypy(); fitted7CovM(5, 1) = fitted7CovM(1, 5);
291 fitted7CovM(1, 6) = fittedCov.dzpy(); fitted7CovM(6, 1) = fitted7CovM(1, 6);
293 fitted7CovM(2, 2) = fittedCov.dpzpz(); fitted7CovM(2, 2) = fitted7CovM(2, 2);
294 fitted7CovM(2, 3) = fitted7CovPart(2, 3); fitted7CovM(3, 2) = fitted7CovM(2, 3);
295 fitted7CovM(2, 4) = fittedCov.dxpz(); fitted7CovM(4, 2) = fitted7CovM(2, 4);
296 fitted7CovM(2, 5) = fittedCov.dypz(); fitted7CovM(5, 2) = fitted7CovM(2, 5);
297 fitted7CovM(2, 6) = fittedCov.dzpz(); fitted7CovM(6, 2) = fitted7CovM(2, 6);
299 fitted7CovM(3, 3) = fitted7CovPart(3, 3); fitted7CovM(3, 3) = fitted7CovM(3, 3);
300 fitted7CovM(3, 4) = fitted7CovPart(3, 4); fitted7CovM(4, 3) = fitted7CovM(3, 4);
301 fitted7CovM(3, 5) = fitted7CovPart(3, 5); fitted7CovM(5, 3) = fitted7CovM(3, 5);
302 fitted7CovM(3, 6) = fitted7CovPart(3, 6); fitted7CovM(6, 3) = fitted7CovM(3, 6);
304 fitted7CovM(4, 4) = fittedCov.dxx(); fitted7CovM(4, 4) = fitted7CovM(4, 4);
305 fitted7CovM(4, 5) = fittedCov.dxy(); fitted7CovM(5, 4) = fitted7CovM(4, 5);
306 fitted7CovM(4, 6) = fittedCov.dxz(); fitted7CovM(6, 4) = fitted7CovM(4, 6);
308 fitted7CovM(5, 5) = fittedCov.dyy(); fitted7CovM(5, 5) = fitted7CovM(5, 5);
309 fitted7CovM(5, 6) = fittedCov.dyz(); fitted7CovM(6, 5) = fitted7CovM(5, 6);
311 fitted7CovM(6, 6) = fittedCov.dzz(); fitted7CovM(6, 6) = fitted7CovM(6, 6);
ROOT::Math::XYZVector getVertex() const
Returns vertex position (POCA for charged, IP for neutral FS particles)
std::vector< Belle2::Particle * > getDaughters() const
Returns a vector of pointers to daughter particles.