24 for (
int i = 0; i < N_Tracks; i++) {
26 int pdg = 11 * (
r.Integer(2) > 0 ? 1 : -1);
28 p->SetProductionVertex(
r.Uniform(-
v,
v) +
pos[0],
r.Uniform(-
v,
v) +
pos[1],
r.Uniform(-
v,
v) +
pos[2], 1);
29 p->SetMomentum(
r.Uniform(-
m,
m),
r.Uniform(-
m,
m),
r.Uniform(-
m,
m) *
r.Uniform(1, 3), 1);
32 track->SetMainColor(
kBlue);
33 track->SetName(
Form(
"Track_%d", i));
41 auto eventScene =
eveMng->SpawnNewScene(
Form(
"%s Event Data", pname), pname);
43 mng->SetProjection(t);
44 mng->ImportElements(el, eventScene);
45 auto view =
eveMng->SpawnNewViewer(pname);
47 view->AddScene(eventScene);
53 float pos[3] = {1.46589e-06, -1.30522e-05, -1.98267e-05};
56 double a[16] = {1.46589e-01,
76 for (
int i = 0; i < 3; i++)
77 for (
int j = 0; j < 3; j++) {
78 xxx(i, j) = t(i + 1, j + 1);
83 xxxEig = xxxEig.
Sqrt();
88 for (
int i = 0; i < 3; ++i) {
89 v[i].Set(vecEig(0, i), vecEig(1, i), vecEig(2, i));
100 event->AddElement(ellipse);
105 sph->SetMainColor(
kGreen);
106 sph->SetMainTransparency(80);
107 sph->SetNSegments(80);
109 float m0 =
v[0].Mag();
111 float m1 =
v[1].Mag();
113 float m2 =
v[2].Mag();
116 sph->InitMainTrans();
117 sph->RefMainTrans().SetBaseVec(1,
v[0].fX,
v[0].fY,
v[0].fZ);
118 sph->RefMainTrans().SetBaseVec(2,
v[1].fX,
v[1].fY,
v[1].fZ);
119 sph->RefMainTrans().SetBaseVec(3,
v[2].fX,
v[2].fY,
v[2].fZ);
120 sph->RefMainTrans().SetScale(m0, m1, m2);
121 event->AddElement(sph);
125 ps->SetNextPoint(
pos[0],
pos[1],
pos[2]);
126 ps->SetMarkerStyle(4);
127 ps->SetMarkerSize(4);
129 for (
int i = 0; i < 6; ++i)
130 ps->SetNextPoint(i * (rng / 3) - rng, 0, 0);
131 event->AddElement(ps);
134 eveMng->GetEventScene()->AddElement(trackHolder);
TMatrixTSym< Double_t > TMatrixDSym
TMatrixT< Double_t > TMatrixD
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
TVectorT< Double_t > TVectorD
virtual void AddElement(REveElement *el)
Add el to the list of children.
virtual void InitMainTrans(Bool_t can_edit=kTRUE)
Initialize the main transformation to identity matrix.
virtual void SetMainColor(Color_t color)
Set main color of the element.
void SetBaseVectors(REveVector &v0, REveVector &v1, REveVector &v3)
Three defining base vectors of ellipse.
virtual void Outline()
Draw archade around base vectors.
REveMagFieldDuo Interface to magnetic field with two different values depending on radius.
static REveManager * Create()
If global REveManager* REX::gEve is not set initialize it.
REveProjectionManager Manager class for steering of projections and managing projected objects.
REveTrackPropagator Calculates path of a particle taking into account special path-marks and imposed ...
REveTrack Track with given vertex, momentum and optional referece-points (path-marks) along its path.
void SetFrom(Double_t *carr)
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
const TMatrixD & GetEigenVectors() const
const TMatrixD GetEigenValues() const
Computes the block diagonal eigenvalue matrix.
Description of the dynamic properties of a particle.
This is the base class for the ROOT Random number generators.
TVectorT< Element > & Sqrt()
Take square root of all elements.
ROOT::Experimental::REveManager * eveMng
void makeProjected(REveElement *el, const char *pname, REveProjection::EPType_e t)
void makeTracks(int N_Tracks, REveElement *trackHolder, float *pos)
Namespace for ROOT features in testing.
REveVectorT< Float_t > REveVector