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 
16 namespace REX = ROOT::Experimental;
17 
18 void 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 
49 void tracks()
50 {
52 
53  auto trackHolder = new REX::REveElement("Tracks");
54  eveMng->GetEventScene()->AddElement(trackHolder);
55  makeTracks(100, trackHolder);
56 
57  eveMng->Show();
58 }
m
auto * m
Definition: textangle.C:8
TParticle
Description of the dynamic properties of a particle.
Definition: TParticle.h:26
Form
char * Form(const char *fmt,...)
ROOT::Experimental::REveManager::Create
static REveManager * Create()
If global REveManager* REX::gEve is not set initialize it.
Definition: REveManager.cxx:698
r
ROOT::R::TRInterface & r
Definition: Object.C:4
ROOT::Experimental::REveManager::GetEventScene
REveScene * GetEventScene() const
Definition: REveManager.hxx:146
TRandom.h
ROOT::Experimental::REveElement
Definition: REveElement.hxx:80
v
@ v
Definition: rootcling_impl.cxx:3635
ROOT::Experimental::REveTrack
REveTrack Track with given vertex, momentum and optional referece-points (path-marks) along its path.
Definition: REveTrack.hxx:40
eveMng
REX::REveManager * eveMng
Definition: collection_proxies.C:40
makeTracks
void makeTracks(int N_Tracks, REX::REveElement *trackHolder)
Definition: tracks.C:18
ROOT::Experimental::REveMagFieldDuo
REveMagFieldDuo Interface to magnetic field with two different values depending on radius.
Definition: REveTrackPropagator.hxx:80
TRandom
This is the base class for the ROOT Random number generators.
Definition: TRandom.h:27
REveTrackPropagator.hxx
REveElement.hxx
REveScene.hxx
gRandom
R__EXTERN TRandom * gRandom
Definition: TRandom.h:62
REveTrack.hxx
tracks
void tracks()
Definition: tracks.C:49
REveManager.hxx
ROOT::Experimental::REveTrackPropagator
REveTrackPropagator Calculates path of a particle taking into account special path-marks and imposed ...
Definition: REveTrackPropagator.hxx:113
ROOT::Experimental::REveElement::AddElement
virtual void AddElement(REveElement *el)
Add el to the list of children.
Definition: REveElement.cxx:842
ROOT::Experimental::REveManager::Show
void Show(const RWebDisplayArgs &args="")
Show eve manager in specified browser.
Definition: REveManager.cxx:963
kBlue
@ kBlue
Definition: Rtypes.h:66
ROOT::Experimental
Definition: RDirectory.hxx:30
TParticle.h