72 virtual ~CmsMagField(){}
73 virtual Double_t GetMaxFieldMagD()
const {
return m_magnetIsOn ? 3.8 : 0.0; }
74 void setMagnetState(
bool state )
76 if (state != m_magnetIsOn)
79 std::cout <<
"Magnet state is changed to ON" << std::endl;
81 std::cout <<
"Magnet state is changed to OFF" << std::endl;
86 bool isMagnetOn()
const {
return m_magnetIsOn;}
87 void setReverseState(
bool state) { m_reverse = state; }
88 bool isReverse()
const {
return m_reverse;}
89 void setSimpleModel(
bool simpleModel) { m_simpleModel = simpleModel; }
90 bool isSimpleModel()
const {
return m_simpleModel;}
96 double R =
sqrt(x*x+y*y);
97 double field = m_reverse?-GetMaxFieldMag():GetMaxFieldMag();
104 if ( m_simpleModel ||
105 ( R>461.0 && R<490.5 ) ||
106 ( R>534.5 && R<597.5 ) ||
107 ( R>637.0 && R<700.0 ) )
116 return TEveVectorD(x/R*field/3.8*2.0, y/R*field/3.8*2.0, 0);
118 return TEveVectorD(-x/R*field/3.8*2.0, -y/R*field/3.8*2.0, 0);
126 return TEveVectorD(x/R*field/3.8*2.0, y/R*field/3.8*2.0, 0);
128 return TEveVectorD(-x/R*field/3.8*2.0, -y/R*field/3.8*2.0, 0);
146 rc->
fV.Set(0.028558, -0.000918, 3.691919);
147 rc->
fP.Set(0.767095, -2.400006, -0.313103);
154 pm1->
fV.Set(1.479084, -4.370661, 3.119761);
158 pm2->
fV.Set(57.72345, -89.77011, -9.783746);
179 list->
SetName(
"RK Propagator");
183 list->
SetName(
"Heix Propagator");
194 track = make_track(prop, 1);
203 track = make_track(prop, 1);
212 track = make_track(prop, 1);
224 rc->
fV.Set(0.028558, -0.000918, 3.691919);
225 rc->
fP.Set(0.767095, -0.400006, 2.313103);
241 CmsMagField* mf =
new CmsMagField;
242 mf->setReverseState(
true);
254 rc->
fV.Set(0.027667, 0.007919, 0.895964);
255 rc->
fP.Set(3.903134, 2.252232, -3.731366);
279 CmsMagField* mf =
new CmsMagField;
280 mf->setReverseState(
true);
281 mf->setSimpleModel(
false);
293 rc->
fV.Set(-16.426592, 16.403185, -19.782692);
294 rc->
fP.Set(3.631100, 3.643450, 0.682254);
336 rc->
fV.Set(57.1068, 31.2401, -7.07629);
337 rc->
fP.Set(4.82895, 2.35083, -0.611757);
virtual const char * GetElementName() const
Virtual function for retrieving name of the element.
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
Implements constant magnetic filed that switches on given axial radius fR2 from vector fBIn to fBOut...
virtual void SetLineColor(Color_t c)
Set the line color.
void SetRnrPoints(Bool_t r)
Set rendering of points. Propagate to projected lines.
virtual void SetName(const char *name)
Change (i.e.
virtual void SetName(const char *name)
Set the name of the TNamed.
Implements constant magnetic field, given by a vector fB.
virtual Bool_t RotateRad(Double_t hRotate, Double_t vRotate)
Rotate camera around center.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set marker style, propagate to projecteds.
void Redraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE)
virtual TEveVector GetField(Float_t, Float_t, Float_t) const
void AddElement(TEveElement *element, TEveElement *parent=0)
Add an element.
TGLCamera & CurrentCamera() const
void SetMaxR(Double_t x)
Set maximum radius and rebuild tracks.
void SetRnrReferences(Bool_t x)
Set track-reference rendering and rebuild tracks.
void SetStepper(EStepper_e s)
TEvePathMarkT< Double_t > TEvePathMarkD
TEveVectorD GetFieldD(const TEveVectorD &v) const
TEveVectorT< Double_t > TEveVectorD
TEveRecTrackT< Double_t > TEveRecTrackD
virtual void MakeTrack(Bool_t recurse=kTRUE)
Calculate track representation based on track data and current settings of the propagator.
A list of tracks supporting change of common attributes and selection based on track parameters...
void SetFitDaughters(Bool_t x)
Set daughter creation point fitting and rebuild tracks.
virtual void SetMarkerColor(Color_t col)
Set the marker color.
static TEveManager * Create(Bool_t map_window=kTRUE, Option_t *opt="FIV")
If global TEveManager* gEve is not set initialize it.
virtual void SetElementName(const char *name)
Virtual function for setting of name of an element.
void RequestDraw(Short_t LOD=TGLRnrCtx::kLODMed)
Post request for redraw of viewer at level of detail 'LOD' Request is directed via cross thread gVirt...
virtual void SetLineColor(Color_t col)
Set the line color.
R__EXTERN TSystem * gSystem
R__EXTERN TEveManager * gEve
void SetRnrDaughters(Bool_t x)
Set daughter rendering and rebuild tracks.
char * Form(const char *fmt,...)
TEvePointSet is a render-element holding a collection of 3D points with optional per-point TRef and a...
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
Base GL viewer object - used by both standalone and embedded (in pad) GL.
TEveTrackPropagator * GetPropagator()
virtual void SetElementName(const char *n)
Virtual function for setting of name of an element.
virtual void AddElement(TEveElement *el)
Add el to the list of children.
Holding structure for a number of track rendering parameters.
void AddPathMark(const TEvePathMarkD &pm)
void SetMaxZ(Double_t x)
Set maximum z and rebuild tracks.
Visual representation of a track.
virtual Color_t GetLineColor() const
Return the line color.
void SetPoint(Int_t n, Double_t x, Double_t y, Double_t z)
Set point n to x, y, z.
TGLViewer * GetGLViewer() const
void SetMagFieldObj(TEveMagField *field, Bool_t own_field=kTRUE)
Set constant magnetic field and rebuild tracks.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
TEveViewer * GetDefaultViewer() const
Returns the default viewer - the first one in the fViewers list.
void SetMagField(Double_t bX, Double_t bY, Double_t bZ)
Set constant magnetic field and rebuild tracks.
you should not use this method at all Int_t Int_t z
void SetRnrDecay(Bool_t x)
Set decay rendering and rebuild tracks.
void SetGuideState(Int_t axesType, Bool_t axesDepthTest, Bool_t referenceOn, const Double_t *referencePos)
Set the state of guides (axes & reference markers) from arguments.
Abstract base-class for interfacing to magnetic field needed by the TEveTrackPropagator.
Eve representation of TGLViewer.
virtual void IgnoreSignal(ESignals sig, Bool_t ignore=kTRUE)
If ignore is true ignore the specified signal, else restore previous behaviour.