Logo ROOT   6.19/01
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 
27  double v = 0.5;
28  double m = 5;
29 
30  for (int i = 0; i < N_Tracks; i++)
31  {
32  auto p = new TParticle();
33 
34  int pdg = 11*(r.Integer(2) -1);
35  p->SetPdgCode(pdg);
36 
37  p->SetProductionVertex(r.Uniform(-v,v), r.Uniform(-v,v), r.Uniform(-v,v), 1);
38  p->SetMomentum(r.Uniform(-m,m), r.Uniform(-m,m), r.Uniform(-m,m)*r.Uniform(1, 3), 1);
39  auto track = new REX::REveTrack(p, 1, prop);
40  track->MakeTrack();
41  track->SetMainColor(kBlue);
42  track->SetName(Form("RandomTrack_%d",i ));
43  trackHolder->AddElement(track);
44  }
45 }
46 
47 void tracks()
48 {
50 
51  auto trackHolder = new REX::REveElement("Tracks");
52  eveMng->GetEventScene()->AddElement(trackHolder);
53  makeTracks(10, trackHolder);
54 
55  eveMng->Show();
56 }
void tracks()
Definition: tracks.C:47
REveTrackPropagator Calculates path of a particle taking into account special path-marks and imposed ...
auto * m
Definition: textangle.C:8
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
REveScene * GetEventScene() const
virtual void AddElement(REveElement *el)
Add el to the list of children.
REveMagFieldDuo Interface to magnetic field with two different values depending on radius...
ROOT::R::TRInterface & r
Definition: Object.C:4
void Show(const RWebDisplayArgs &args="")
Show eve manager in specified browser.
static REveManager * Create()
If global REveManager* REX::gEve is not set initialize it.
char * Form(const char *fmt,...)
R__EXTERN TRandom * gRandom
Definition: TRandom.h:62
REveTrack Track with given vertex, momentum and optional referece-points (path-marks) along its path...
Definition: REveTrack.hxx:39
Definition: Rtypes.h:64
void makeTracks(int N_Tracks, REX::REveElement *trackHolder)
Definition: tracks.C:18
REX::REveManager * eveMng