59 for (
Int_t i = 0; i < npoints; ++i)
60 ps->SetNextPoint(
r.Uniform(-s, s),
r.Uniform(-s, s),
r.Uniform(-s, s));
62 ps->SetMarkerColor(color);
64 ps->SetMarkerStyle(4);
75 ps1->SetName(
"Points_1");
76 ps1->SetTitle(
"Points_1 title");
78 pntHolder->AddElement(ps1);
81 ps2->SetName(
"Points_2");
82 ps2->SetTitle(
"Points_2 title");
83 ps2->SetAlwaysSecSelect(
true);
84 pntHolder->AddElement(ps2);
86 event->AddElement(pntHolder);
105 int N_Tracks = 10 +
r.Integer(20);
106 for (
int i = 0; i < N_Tracks; i++) {
109 int pdg = 11 * (
r.Integer(2) > 0 ? 1 : -1);
112 p.SetProductionVertex(
r.Uniform(-
v,
v),
r.Uniform(-
v,
v),
r.Uniform(-
v,
v), 1);
113 p.SetMomentum(
r.Uniform(-
m,
m),
r.Uniform(-
m,
m),
r.Uniform(-
m,
m) *
r.Uniform(1, 3), 1);
118 track->SetMainColor(
kBlue);
119 track->SetName(
Form(
"RandomTrack_%d", i));
120 track->SetTitle(
Form(
"RandomTrack_%d title", i));
121 trackHolder->AddElement(track);
124 event->AddElement(trackHolder);
134 int N_Jets = 5 +
r.Integer(5);
135 for (
int i = 0; i < N_Jets; i++) {
137 jet->SetTitle(
Form(
"Jet_%d\n pT = %.2f", i,
r.Uniform(1, 40)));
139 jet->AddEllipticCone(
r.Uniform(-3.5, 3.5),
r.Uniform(0,
TMath::TwoPi()),
r.Uniform(0.02, 0.2),
140 r.Uniform(0.02, 0.3));
141 jet->SetFillColor(
kPink - 8);
142 jet->SetLineColor(
kBlack);
144 jetHolder->AddElement(jet);
146 event->AddElement(jetHolder);
160 b1->SetMainColor(
kCyan);
161 b1->SetNSegments(80);
162 b1->SetMainTransparency(70);
167 b1->SetNSegments(40);
240 std::condition_variable
fCV;
245 std::chrono::milliseconds ms(100);
265 std::unique_lock<std::mutex> lock{
fMutex};
270 if (
fCV.wait_for(lock,
fDeltaTime) != std::cv_status::timeout) {
271 printf(
"autoplay not timed out \n");
273 printf(
"exit thread post wait\n");
282 REX::REveManager::ChangeGuard ch;
292 static std::mutex autoplay_mutex;
293 std::unique_lock<std::mutex> aplock{autoplay_mutex};
295 std::unique_lock<std::mutex> lock{
fMutex};
313 printf(
"Quit ROOT\n");
314 REX::REveManager::QuitRoot();
325 eveMng = REX::REveManager::Create();
328 eventMng->SetName(
"EventManager");
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
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
std::condition_variable fCV
std::chrono::duration< double > fDeltaTime
std::thread * fTimerThread
void autoplay_scheduler()
virtual void AddElement(REveElement *el)
Add el to the list of children.
virtual void DestroyElements()
Destroy all children of this element.
REveMagFieldDuo Interface to magnetic field with two different values depending on radius.
REveScene * GetEventScene() const
REveScene * GetGlobalScene() const
REveScene * SpawnNewScene(const char *name, const char *title="")
Create a new scene.
REveViewer * SpawnNewViewer(const char *name, const char *title="")
Create a new GL viewer.
REveViewer * GetDefaultViewer() const
Get the default viewer.
REveScene * GetWorld() const
void Show(const RWebDisplayArgs &args="")
Show eve manager in specified browser.
REveProjectionManager Manager class for steering of projections and managing projected objects.
void SetCurrentDepth(Float_t d)
virtual REveElement * ImportElements(REveElement *el, REveElement *ext_list=nullptr)
Recursively import elements and apply projection to the newly imported objects.
void AddCommand(const std::string &name, const std::string &icon, const REveElement *element, const std::string &action)
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.
REveViewer Reve representation of TGLViewer.
void SetCameraType(ECameraType t)
virtual void AddScene(REveScene *scene)
Add 'scene' to the list of scenes.
Description of the dynamic properties of a particle.
This is the base class for the ROOT Random number generators.
virtual void SetSeed(ULong_t seed=0)
Set the random generator seed.
REX::REveScene * rPhiGeomScene
REX::REveScene * rPhiEventScene
REX::REveProjectionManager * mngRhoZ
REX::REveManager * eveMng
REX::REveViewer * rhoZView
REX::REveScene * rhoZEventScene
void createProjectionStuff()
REX::REveViewer * rphiView
REX::REveProjectionManager * mngRhoPhi
REX::REveScene * rhoZGeomScene
void projectScenes(bool geomp, bool eventp)
REX::REvePointSet * getPointSet(int npoints=2, float s=2, int color=28)
constexpr Double_t TwoPi()