BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EventDisplay/BesVisLib/include/BesVisLib/ZHelix.h
Go to the documentation of this file.
1//
2// ZHelix.h
3//
4// $Author: maqm $
5// $Date: 2022/03/04 04:44:37 $
6// $Revision: 1.3 $
7//
8
9#ifndef ZEVIS_ZHelix
10#define ZEVIS_ZHelix
11
12#include "BesView.h"
13#include <TMath.h>
14#include <TPad.h>
15#include <TPolyLine3D.h>
16#include <TString.h>
17
18#ifndef ZEVIS_EZHelixRangeType
19# define ZEVIS_EZHelixRangeType
21#endif
22
23#ifndef ZEVIS_TrackType
24# define ZEVIS_TrackType
26#endif
27
28class ZHelix : public TPolyLine3D {
29
30protected:
31 TrackType fTrackType; // Type of track
32 Double_t fAzim; // Azimuth
33 Double_t fQovR; // Q/R
34 Double_t fQxDh; // Q*D_h
35 Double_t fTDip; // tan(Dip)
36 Double_t fRefX; // Helix reference point x coordinate
37 Double_t fRefY; // Helix reference point y coordinate
38 Double_t fRefZ; // Helix reference point z coordinate
39 Double_t fRange[2]; // Range of helix (in phi)
40 EZHelixRangeType fRType; // Helix range type
41 Float_t fChi2; // Chi2 of the fit
42 Int_t fNDoF; // Degrees of freedom
43 Double_t fSinAzim; // Sin(Azimuth)
44 Double_t fCosAzim; // Cos(Azimuth)
45 // Transient data members
46 Int_t fRSign; //! sign of radius
47 Double_t fPhiI; // phi inner
48 Double_t fPhiO; // phi outer
49 Bool_t fEnable; // enable of drawing of helix, could be set false for bad tracks
50
51public:
53 ZHelix( Double_t Azim, Double_t QovR, Double_t QxDh, Double_t refx, Double_t refy,
54 Double_t refz, Double_t TDip, Double_t phii, Double_t phio, Float_t Chi2, Int_t NDoF,
55 EZHelixRangeType RangeType = kBesHelixPhi, Double_t RangeMin = 0,
56 Double_t RangeMax = 2 * TMath::Pi() );
57 virtual ~ZHelix();
58
59 void Phi2XYZ( Double_t phi, Double_t& x, Double_t& y, Double_t& z );
60 void Phi2ZR( Double_t phi, Double_t& z, Double_t& r );
61 void SetRange( EZHelixRangeType RangeType, Double_t RangeMin, Double_t RangeMax );
62 void SetTrackType( TrackType tt ) { fTrackType = tt; };
63 virtual void SetPoints( Option_t* option = "3D" );
64 Double_t X2Phi( Double_t x );
65 Double_t Y2Phi( Double_t y );
66 Double_t Z2Phi( Double_t z );
67 Double_t R2Phi( Double_t r );
68 Double_t Phi2S( Double_t phi );
69 virtual void Print( Option_t* option = "" ) const; // *MENU*
70 virtual void Draw( Option_t* option = "3D" );
71 virtual void Paint( Option_t* option = "3D" );
72
73 // Dummies
74 inline virtual Int_t SetNextPoint( Double_t x, Double_t y, Double_t z ) {
75 return TPolyLine3D::SetNextPoint( x, y, z );
76 }
77 inline virtual void SetPoint( Int_t point, Double_t x, Double_t y, Double_t z ) {
78 TPolyLine3D::SetPoint( point, x, y, z );
79 }
80 inline virtual void Delete( Option_t* option ) { TObject::Delete( option ); }
81 inline virtual void DrawClass() { TObject::DrawClass(); }
82 inline virtual void DrawClone( Option_t* option ) { TObject::DrawClone( option ); }
83 inline virtual void SetDrawOption( Option_t* option ) { TObject::SetDrawOption( option ); }
84 inline virtual void ExecuteEvent( Int_t event, Int_t px, Int_t py ) { ; }
85
86 ClassDef( ZHelix, 8 ) // ZeVis Helix
87};
88
89#endif
legend Draw()
Double_t R2Phi(Double_t r)
Definition ZHelix.cxx:299
void Phi2ZR(Double_t phi, Double_t &z, Double_t &r)
Definition ZHelix.cxx:259
virtual void DrawClone(Option_t *option)
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual Int_t SetNextPoint(Double_t x, Double_t y, Double_t z)
void SetRange(EZHelixRangeType RangeType, Double_t RangeMin, Double_t RangeMax)
Definition ZHelix.cxx:92
Double_t Y2Phi(Double_t y)
Definition ZHelix.cxx:279
virtual void Print(Option_t *option="") const
Definition ZHelix.cxx:345
virtual void SetPoints(Option_t *option="3D")
Definition ZHelix.cxx:122
Double_t X2Phi(Double_t x)
Definition ZHelix.cxx:269
virtual void Paint(Option_t *option="3D")
Definition ZHelix.cxx:378
void Phi2XYZ(Double_t phi, Double_t &x, Double_t &y, Double_t &z)
Definition ZHelix.cxx:249
Double_t Phi2S(Double_t phi)
Definition ZHelix.cxx:393
virtual void SetDrawOption(Option_t *option)
virtual void Delete(Option_t *option)
virtual ~ZHelix()
Definition ZHelix.cxx:84
virtual void SetPoint(Int_t point, Double_t x, Double_t y, Double_t z)
Double_t Z2Phi(Double_t z)
Definition ZHelix.cxx:289