5 #include "TMatrixDEigen.h"
6 #include "TMatrixDSym.h"
7 #include "TDecompSVD.h"
10 #include "TGeoSphere.h"
11 #include "TGeoMatrix.h"
12 #include "TEveGeoNode.h"
13 #include "TEveGeoShape.h"
14 #include "TEveVSDStructs.h"
37 TEveElement& oItemHolder,
43 TEveElement& oItemHolder,
45 TEveGeoManagerHolder gmgr(TEveGeoShape::GetGeoMangeur());
46 TEvePointSet* pointSet =
new TEvePointSet();
47 pointSet->SetMainColor(
item()->defaultDisplayProperties().color());
51 TGeoSphere* sphere =
new TGeoSphere(0, 0.002);
53 TEveGeoShape* shape =
new TEveGeoShape();
54 sphere->SetBoxDimensions(2.5, 2.5, 2.5);
55 shape->SetShape(sphere);
56 shape->SetMainColor(
item()->defaultDisplayProperties().color());
57 shape->SetMainTransparency(10);
59 TEveTrans&
t = shape->RefMainTrans();
62 for (
int i = 0;
i < 3;
i++)
63 for (
int j = 0;
j < 3;
j++) {
68 TMatrixD mm = svd.GetU();
70 for (
int i = 0;
i < 3;
i++)
71 for (
int j = 0;
j < 3;
j++) {
72 t(
i + 1,
j + 1) = mm(
i,
j);
74 TVectorD vv(eig.GetEigenValuesRe());
75 t.Scale(
sqrt(vv(0)) * 1000.,
sqrt(vv(1)) * 1000.,
sqrt(vv(2)) * 1000.);
76 t.SetPos(v.
x(), v.
y(), v.
z());
80 pointSet->SetNextPoint(v.
x(), v.
y(), v.
z());
86 t.fV = TEveVector(track.
vx(), track.
vy(), track.
vz());
87 t.fP = TEveVector(track.
px(), track.
py(), track.
pz());
89 TEveTrack* trk =
new TEveTrack(&t,
context().getTrackPropagator());
90 trk->SetMainColor(
item()->defaultDisplayProperties().color());
const fireworks::Context & context() const
#define REGISTER_PROXYBUILDER_METHODS()
#define REGISTER_FWPROXYBUILDER(_name_, _type_, _purpose_, _view_)
const FWSecVertexProxyBuilder & operator=(const FWSecVertexProxyBuilder &)=delete
static const int kAllRPZBits
const VTX & secondaryVertex(unsigned int index) const
double y() const
y coordinate
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
math::Error< dimension >::type Error
covariance error matrix (3x3)
double px() const
x coordinate of momentum vector
FWSecVertexProxyBuilder()
const FWEventItem * item() const
trackRef_iterator tracks_end() const
last iterator over tracks
double z() const
z coordinate
trackRef_iterator tracks_begin() const
first iterator over tracks
double pz() const
z coordinate of momentum vector
double vz() const
z coordinate of the reference point on track
unsigned int nVertices() const
double x() const
x coordinate
Error error() const
return SMatrix
double vy() const
y coordinate of the reference point on track
static int position[264][3]
int charge() const
track electric charge
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
double py() const
y coordinate of momentum vector
double vx() const
x coordinate of the reference point on track
~FWSecVertexProxyBuilder() override