BOSS 7.0.2
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/BesVisLib/BesVisLib/ZHelix.h
Go to the documentation of this file.
1//
2// ZHelix.h
3//
4// $Author: tianhl $
5// $Date: 2007/10/11 07:16:03 $
6// $Revision: 1.1.1.1 $
7//
8
9#ifndef ZEVIS_ZHelix
10#define ZEVIS_ZHelix
11
12#include <TPolyLine3D.h>
13#include <TString.h>
14#include <TMath.h>
15#include <TPad.h>
16#include "BesView.h"
17
18#ifndef ZEVIS_EZHelixRangeType
19#define ZEVIS_EZHelixRangeType
26};
27#endif
28
29#ifndef ZEVIS_TrackType
30#define ZEVIS_TrackType
39};
40#endif
41
42class ZHelix : public TPolyLine3D {
43
44 protected:
45 TrackType fTrackType; // Type of track
46 Double_t fAzim; // Azimuth
47 Double_t fQovR; // Q/R
48 Double_t fQxDh; // Q*D_h
49 Double_t fTDip; // tan(Dip)
50 Double_t fRefX; // Helix reference point x coordinate
51 Double_t fRefY; // Helix reference point y coordinate
52 Double_t fRefZ; // Helix reference point z coordinate
53 Double_t fRange[2]; // Range of helix (in phi)
54 EZHelixRangeType fRType; // Helix range type
55 Float_t fChi2; // Chi2 of the fit
56 Int_t fNDoF; // Degrees of freedom
57 Double_t fSinAzim; // Sin(Azimuth)
58 Double_t fCosAzim; // Cos(Azimuth)
59 // Transient data members
60 Int_t fRSign; //! sign of radius
61 Double_t fPhiI; // phi inner
62 Double_t fPhiO; // phi outer
63 Bool_t fEnable; // enable of drawing of helix, could be set false for bad tracks
64
65
66 public:
68 ZHelix(Double_t Azim, Double_t QovR, Double_t QxDh, Double_t refx,
69 Double_t refy, Double_t refz, Double_t TDip, Double_t phii,
70 Double_t phio, Float_t Chi2, Int_t NDoF,
71 EZHelixRangeType RangeType = kHelixPhi,
72 Double_t RangeMin = 0, Double_t RangeMax = 2*TMath::Pi());
73 virtual ~ZHelix();
74
75 void Phi2XYZ(Double_t phi, Double_t& x, Double_t& y, Double_t& z);
76 void Phi2ZR(Double_t phi, Double_t& z, Double_t& r);
77 void SetRange(EZHelixRangeType RangeType,
78 Double_t RangeMin, Double_t RangeMax);
80 virtual void SetPoints(Option_t *option = "3D");
81 Double_t X2Phi(Double_t x);
82 Double_t Y2Phi(Double_t y);
83 Double_t Z2Phi(Double_t z);
84 Double_t R2Phi(Double_t r);
85 Double_t Phi2S(Double_t phi);
86 virtual void Print(Option_t *option = "") const; // *MENU*
87 virtual void Draw(Option_t *option = "3D");
88 virtual void Paint(Option_t *option = "3D");
89
90 // Dummies
91 inline virtual Int_t SetNextPoint(Double_t x, Double_t y, Double_t z) {
92 return TPolyLine3D::SetNextPoint(x, y, z);
93 }
94 inline virtual void SetPoint(Int_t point, Double_t x, Double_t y, Double_t z) {
95 TPolyLine3D::SetPoint(point, x, y, z);
96 }
97 inline virtual void Delete(Option_t *option) { TObject::Delete(option); }
98 inline virtual void DrawClass() { TObject::DrawClass(); }
99 inline virtual void DrawClone(Option_t *option) { TObject::DrawClone(option); }
100 inline virtual void SetDrawOption(Option_t *option) { TObject::SetDrawOption(option); }
101 inline virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) {;}
102
103 ClassDef(ZHelix,8) // ZeVis Helix
104};
105
106#endif
Double_t x[10]
Double_t R2Phi(Double_t r)
virtual ~ZHelix()
void Phi2ZR(Double_t phi, Double_t &z, Double_t &r)
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)
virtual void Print(Option_t *option="") const
void SetRange(EZHelixRangeType RangeType, Double_t RangeMin, Double_t RangeMax)
Double_t Y2Phi(Double_t y)
virtual void SetPoints(Option_t *option="3D")
ZHelix(Double_t Azim, Double_t QovR, Double_t QxDh, Double_t refx, Double_t refy, Double_t refz, Double_t TDip, Double_t phii, Double_t phio, Float_t Chi2, Int_t NDoF, EZHelixRangeType RangeType=kHelixPhi, Double_t RangeMin=0, Double_t RangeMax=2 *TMath::Pi())
Double_t X2Phi(Double_t x)
void Phi2XYZ(Double_t phi, Double_t &x, Double_t &y, Double_t &z)
virtual void Paint(Option_t *option="3D")
virtual void Draw(Option_t *option="3D")
Double_t Phi2S(Double_t phi)
virtual void SetDrawOption(Option_t *option)
virtual void Delete(Option_t *option)
virtual void SetPoint(Int_t point, Double_t x, Double_t y, Double_t z)
Double_t Z2Phi(Double_t z)