Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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{
51 auto eveMng = REX::REveManager::Create();
52
53 auto trackHolder = new REX::REveElement("Tracks");
54 eveMng->GetEventScene()->AddElement(trackHolder);
55 makeTracks(100, trackHolder);
56
57 eveMng->Show();
58}
@ kBlue
Definition Rtypes.h:66
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h prop
R__EXTERN TRandom * gRandom
Definition TRandom.h:62
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
Definition TString.cxx:2489
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
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
ROOT::Experimental::REveManager * eveMng
TMarker m
Definition textangle.C:8
void makeTracks(int N_Tracks, REX::REveElement *trackHolder)
Definition tracks.C:18
void tracks()
Definition tracks.C:49