Demonstrates usage of TEveTrackPRopagator with different magnetic field configurations. 
Needs to be run in compiled mode. root 
 void track(Int_t mode = 5, Bool_t isRungeKutta = kTRUE) Modes are 0. B = 0, no difference between signed and charge particles;
 
 
 
#include <iostream>
 
 
public:
 
   virtual Double_t GetMaxFieldMagD() { 
return 4; }
 
 
   {
   }
};
 
 
 
public:
 
 
   {
         if (state)
            std::cout << "Magnet state is changed to ON" << std::endl;
         else
            std::cout << "Magnet state is changed to OFF" << std::endl;
      }
   }
 
 
 
   {
      double R = sqrt(
x * 
x + 
y * 
y);
 
      
         
         
         if (
m_simpleModel || (
R > 461.0 && 
R < 490.5) || (
R > 534.5 && 
R < 597.5) || (
R > 637.0 && 
R < 700.0))
 
 
      } else {
         
            if (z > 0)
            else
         }
         
            if (z > 0)
            else
         }
      }
   }
};
 
 
{
   
   
 
   rc->fV.Set(0.028558, -0.000918, 3.691919);
 
   rc->fP.Set(0.767095, -2.400006, -0.313103);
 
 
   
   pm1->fV.Set(1.479084, -4.370661, 3.119761);
 
   
   pm2->fV.Set(57.72345, -89.77011, -9.783746);
 
 
}
 
{
 
 
 
      list->SetName("RK Propagator");
   } else {
      list->SetName("Heix Propagator");
   }
 
   case 0: {
      
      list->SetElementName(
Form(
"%s, zeroB", list->GetElementName()));
      break;
   }
 
   case 1: {
      
      list->SetElementName(
Form(
"%s, constB", list->GetElementName()));
      break;
   }
 
   case 2: {
      
      list->SetElementName(
Form(
"%s, duoB", list->GetElementName()));
      break;
   }
 
   case 3: {
      
      list->SetElementName(
Form(
"%s, gappedB", list->GetElementName()));
 
      rc->fV.Set(0.028558, -0.000918, 3.691919);
 
      rc->fP.Set(0.767095, -0.400006, 2.313103);
 
 
      marker->SetElementName("B field break points");
      marker->SetPoint(0, 0., 0., 300.f);
      marker->SetPoint(1, 0., 0., 600.f);
      marker->SetMarkerColor(3);
      break;
   }
 
   case 4: {
      
      mf->setReverseState(
true);
 
 
      prop->RefPMAtt().SetMarkerStyle(4);
 
      list->SetElementName(
Form(
"%s, CMS field", list->GetElementName()));
 
      rc->fV.Set(0.027667, 0.007919, 0.895964);
 
      rc->fP.Set(3.903134, 2.252232, -3.731366);
 
 
 
      track->SetMarkerStyle(4);
 
 
      break;
   }
 
   case 5: {
      
      mf->setReverseState(
true);
 
      mf->setSimpleModel(
false);
 
 
      prop->RefPMAtt().SetMarkerStyle(4);
 
      list->SetElementName(
Form(
"%s, CMS field", list->GetElementName()));
 
      rc->fV.Set(-16.426592, 16.403185, -19.782692);
 
      rc->fP.Set(3.631100, 3.643450, 0.682254);
 
 
                                       TEveVectorD(-1.642659e+01, 1.640318e+01, -1.978269e+01),
 
                                       TEveVectorD(-1.859987e+00, 3.172243e+01, -1.697866e+01),
 
                                       TEveVectorD(4.847579e+01, 9.871711e+01, -5.835719e+00),
 
 
      track->SetMarkerStyle(4);
 
 
      break;
   }
 
   case 6: {
      
      prop->RefPMAtt().SetMarkerStyle(4);
 
      list->SetElementName(
Form(
"%s, Some ILC Detector field", list->GetElementName()));
 
      rc->fV.Set(57.1068, 31.2401, -7.07629);
 
      rc->fP.Set(4.82895, 2.35083, -0.611757);
 
 
 
      track->SetMarkerStyle(4);
 
 
      break;
   }
   };
 
   else
      list->SetLineColor(
kCyan);
 
   track->SetLineColor(list->GetLineColor());
 
 
 
 
 
 
   gv->CurrentCamera().RotateRad(-0.5, 1.4);
 
}
R__EXTERN TEveManager * gEve
TEvePathMarkT< Double_t > TEvePathMarkD
TEveRecTrackT< Double_t > TEveRecTrackD
TEveVectorT< Double_t > TEveVectorD
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
Option_t Option_t TPoint TPoint const char mode
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
@ kSigSegmentationViolation
R__EXTERN TSystem * gSystem
Implements constant magnetic field, given by a vector fB.
Implements constant magnetic filed that switches on given axial radius fR2 from vector fBIn to fBOut.
Abstract base-class for interfacing to magnetic field needed by the TEveTrackPropagator.
void AddElement(TEveElement *element, TEveElement *parent=nullptr)
Add an element.
TEveViewer * GetDefaultViewer() const
Returns the default viewer - the first one in the fViewers list.
static TEveManager * Create(Bool_t map_window=kTRUE, Option_t *opt="FIV")
If global TEveManager* gEve is not set initialize it.
void Redraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE)
TEvePointSet is a render-element holding a collection of 3D points with optional per-point TRef and a...
A list of tracks supporting change of common attributes and selection based on track parameters.
Holding structure for a number of track rendering parameters.
Visual representation of a track.
Eve representation of TGLViewer.
Base GL viewer object - used by both standalone and embedded (in pad) GL.
virtual void IgnoreSignal(ESignals sig, Bool_t ignore=kTRUE)
If ignore is true ignore the specified signal, else restore previous behaviour.
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.