Logo ROOT  
Reference Guide
tracks.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_eve7
3/// This example display only points in web browser
4///
5/// \macro_code
6///
7
8#include "TRandom.h"
9#include "TParticle.h"
10#include <ROOT/REveElement.hxx>
11#include <ROOT/REveScene.hxx>
12#include <ROOT/REveManager.hxx>
13#include <ROOT/REveTrack.hxx>
15
16namespace REX = ROOT::Experimental;
17
18void makeTracks(int N_Tracks, REX::REveElement* trackHolder)
19{
20 TRandom &r = *gRandom;
21 auto prop = new REX::REveTrackPropagator();
22 prop->SetMagFieldObj(new REX::REveMagFieldDuo(350, 3.5, -2.0));
23 prop->SetMaxR(300);
24 prop->SetMaxZ(600);
25 prop->SetMaxOrbs(6);
26 // Default is kHelix propagator.
27 // prop->SetStepper(REX::REveTrackPropagator::kRungeKutta);
28
29 double v = 0.5;
30 double m = 5;
31
32 for (int i = 0; i < N_Tracks; i++)
33 {
34 auto p = new TParticle();
35
36 int pdg = 11 * (r.Integer(2) > 0 ? 1 : -1);
37 p->SetPdgCode(pdg);
38
39 p->SetProductionVertex(r.Uniform(-v,v), r.Uniform(-v,v), r.Uniform(-v,v), 1);
40 p->SetMomentum(r.Uniform(-m,m), r.Uniform(-m,m), r.Uniform(-m,m)*r.Uniform(1, 3), 1);
41 auto track = new REX::REveTrack(p, 1, prop);
42 track->MakeTrack();
43 track->SetMainColor(kBlue);
44 track->SetName(Form("RandomTrack_%d", i));
45 trackHolder->AddElement(track);
46 }
47}
48
49void tracks()
50{
52
53 auto trackHolder = new REX::REveElement("Tracks");
54 eveMng->GetEventScene()->AddElement(trackHolder);
55 makeTracks(100, trackHolder);
56
57 eveMng->Show();
58}
ROOT::R::TRInterface & r
Definition: Object.C:4
@ kBlue
Definition: Rtypes.h:64
R__EXTERN TRandom * gRandom
Definition: TRandom.h:62
char * Form(const char *fmt,...)
virtual void AddElement(REveElement *el)
Add el to the list of children.
REveMagFieldDuo Interface to magnetic field with two different values depending on radius.
REveScene * GetEventScene() const
static REveManager * Create()
If global REveManager* REX::gEve is not set initialize it.
void Show(const RWebDisplayArgs &args="")
Show eve manager in specified browser.
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.
Definition: REveTrack.hxx:40
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
REX::REveManager * eveMng
auto * m
Definition: textangle.C:8
void makeTracks(int N_Tracks, REX::REveElement *trackHolder)
Definition: tracks.C:18
void tracks()
Definition: tracks.C:49