Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches

Detailed Description

Demonstrates usage of TEveBox class.

#include <ROOT/REveBox.hxx>
using namespace ROOT::Experimental;
const Double_t kR_min = 240;
const Double_t kR_max = 250;
const Double_t kZ_d = 300;
void makeTracks(int N_Tracks, REveElement *trackHolder)
{
auto prop = new REveTrackPropagator();
prop->SetMagFieldObj(new REveMagFieldDuo(350, 3.5, -2.0));
prop->SetMaxR(300);
prop->SetMaxZ(600);
prop->SetMaxOrbs(6);
// Default is kHelix propagator.
// prop->SetStepper(REX::REveTrackPropagator::kRungeKutta);
double v = 0.5;
double m = 5;
for (int i = 0; i < N_Tracks; i++) {
auto p = new TParticle();
int pdg = 11 * (r.Integer(2) > 0 ? 1 : -1);
p->SetPdgCode(pdg);
p->SetProductionVertex(r.Uniform(-v, v), r.Uniform(-v, v), r.Uniform(-v, v), 1);
p->SetMomentum(r.Uniform(-m, m), r.Uniform(-m, m), r.Uniform(-m, m) * r.Uniform(1, 3), 1);
auto track = new REveTrack(p, 1, prop);
track->MakeTrack();
track->SetMainColor(kBlue);
track->SetName(Form("RandomTrack_%d", i));
track->SetLineWidth(3);
trackHolder->AddElement(track);
}
}
REveElement *makeBox(Float_t a = 10, Float_t d = 5, Float_t x = 0, Float_t y = 0, Float_t z = 0)
{
auto b = new REveBox;
b->SetMainColor(kCyan);
b->SetMainTransparency(0);
#define RND_BOX(x) r.Uniform(-(x), (x))
b->SetVertex(0, x - a + RND_BOX(d), y - a + RND_BOX(d), z - a + RND_BOX(d));
b->SetVertex(1, x - a + RND_BOX(d), y + a + RND_BOX(d), z - a + RND_BOX(d));
b->SetVertex(2, x + a + RND_BOX(d), y + a + RND_BOX(d), z - a + RND_BOX(d));
b->SetVertex(3, x + a + RND_BOX(d), y - a + RND_BOX(d), z - a + RND_BOX(d));
b->SetVertex(4, x - a + RND_BOX(d), y - a + RND_BOX(d), z + a + RND_BOX(d));
b->SetVertex(5, x - a + RND_BOX(d), y + a + RND_BOX(d), z + a + RND_BOX(d));
b->SetVertex(6, x + a + RND_BOX(d), y + a + RND_BOX(d), z + a + RND_BOX(d));
b->SetVertex(7, x + a + RND_BOX(d), y - a + RND_BOX(d), z + a + RND_BOX(d));
#undef RND_BOX
return b;
}
void makeJets(int N_Jets, REveElement *jetHolder)
{
for (int i = 0; i < N_Jets; i++) {
auto jet = new REveJetCone(Form("Jet_%d", i));
jet->SetCylinder(2 * kR_max, 2 * kZ_d);
jet->AddEllipticCone(r.Uniform(-0.5, 0.5), r.Uniform(0, TMath::TwoPi()), 0.1, 0.2);
jet->SetFillColor(kRed);
jet->SetLineColor(kRed);
jetHolder->AddElement(jet);
}
}
void makeTexts(REveElement *textHolder)
{
{
auto text = new REveText(Form("Text_0"));
text->SetMainColor(kViolet);
REveVector pos(0.5, 0.5, 0.2);
text->SetPosition(pos);
text->SetFontSize(0.1);
text->SetFont(2);
text->SetText(text->GetCName());
textHolder->AddElement(text);
}
}
void overlay_test()
{
// create an overlay scene
REveScene *os = gEve->SpawnNewScene("Overly scene", "OverlayTitle");
((REveViewer *)(gEve->GetViewers()->FirstChild()))->AddScene(os);
os->SetIsOverlay(true);
makeTexts(os);
auto jetHolder = new REveElement("jets");
makeJets(2, jetHolder);
gEve->GetEventScene()->AddElement(jetHolder);
auto trackHolder = new REveElement("Tracks");
gEve->GetEventScene()->AddElement(trackHolder);
makeTracks(10, trackHolder);
gEve->Show();
}
ROOT::R::TRInterface & r
Definition Object.C:4
#define d(i)
Definition RSha256.hxx:102
#define b(i)
Definition RSha256.hxx:100
#define a(i)
Definition RSha256.hxx:99
double Double_t
Double 8 bytes.
Definition RtypesCore.h:73
float Float_t
Float 4 bytes (float).
Definition RtypesCore.h:71
@ kRed
Definition Rtypes.h:67
@ kCyan
Definition Rtypes.h:67
@ kBlue
Definition Rtypes.h:67
@ kViolet
Definition Rtypes.h:68
externTEveManager * gEve
externTRandom * gRandom
Definition TRandom.h:62
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
Definition TString.cxx:2496
3D box with arbitrary vertices (cuboid).
Base class for REveUtil visualization elements, providing hierarchy management, rendering control and...
Draws a jet cone with leading particle is specified in (eta,phi) and cone radius is given.
Implements constant magnetic filed that switches on given axial radius fR2 from vector fBIn to fBOut.
Eve representation of TGLScene.
Holding structure for a number of track rendering parameters.
Visual representation of a track.
Eve representation of a GL view.
static REveManager * Create()
If global REveManager* REX::gEve is not set initialize it.
Description of the dynamic properties of a particle.
Definition TParticle.h:26
This is the base class for the ROOT Random number generators.
Definition TRandom.h:27
#define RND_BOX(x)
TText * text
void makeTracks(int N_Tracks, REveElement *trackHolder, float *pos)
const Double_t kR_max
const Double_t kZ_d
const Double_t kR_min
void makeJets(int N_Jets, REveElement *jetHolder)
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
Namespace for ROOT features in testing.
Definition TROOT.h:100
REveVectorT< Float_t > REveVector
constexpr Double_t TwoPi()
Definition TMath.h:47
TMarker m
Definition textangle.C:8
Author
Matevz Tadel

Definition in file overlay_test.C.