Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
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 {
49  auto eveMng = REX::REveManager::Create();
50 
51  auto trackHolder = new REX::REveElement("Tracks");
52  eveMng->GetEventScene()->AddElement(trackHolder);
53  makeTracks(10, trackHolder);
54 
55  eveMng->Show();
56 }