PandaRoot
PndSttTrack.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 // -------------------------------------------------------------------------
14 // ----- PndSttTrack header file -----
15 // ----- Created 28/03/06 by R. Castelijns -----
16 // -------------------------------------------------------------------------
17 
26 #ifndef PNDSTTTRACK_H
27 #define PNDSTTTRACK_H
28 
29 #include <map>
30 #include "TArrayI.h"
31 #include "TObject.h"
32 #include "FairTrackParam.h"
33 #include "FairMultiLinkedData_Interface.h"
34 #include "TClonesArray.h"
35 
36 class PndSttHit;
37 
38 class PndSttTrack : public FairMultiLinkedData_Interface {
39  public:
41  PndSttTrack();
42 
44  virtual ~PndSttTrack();
45 
49  void Print();
50 
52  Int_t GetTrackCandIndex() { return fTrackCandIndex; }
53 
55  Int_t GetNofHelixHits() const { return fHelixHits.GetSize(); };
56  Int_t GetHelixHitIndex(Int_t iHit) const { return fHelixHits.At(iHit); };
57  Int_t GetPidHypo() const { return fPidHypo; };
58  Int_t GetFlag() const { return fFlag; };
59  Double_t GetChi2Long() const { return fChi2Long; };
60  Double_t GetChi2Rad() const { return fChi2Rad; };
61  Int_t GetNDF() const { return fNDF; };
62 
64  Double_t GetDist() { return fDist; };
65  Double_t GetPhi() { return fPhi; };
66  Double_t GetRad() { return fRad; };
67  Double_t GetTanL() { return fTanL; };
68  Double_t GetZ() { return fZ; };
69 
70  Int_t GetCharge() { return fH; };
71 
72  // Momentum, but where?? // CHECK
73  /* Double_t GetMomentum(); */
74  /* Double_t GetPlong(); */
75  /* Double_t GetPtot(); */
76 
77  // track length calculation
78  Double_t CalculateScosl(Double_t x, Double_t y);
79  // find the tri-momentum in the PCA to a point
80  TVector3 *MomentumAtPoint(TVector3 *point);
81  // find the PCA to a point
82  TVector3 *PCAToPoint(TVector3 *point);
83 
85  void SetTrackCandIndex(Int_t trackCandID) { fTrackCandIndex = trackCandID; };
86  void SetPidHypo(Int_t pid) { fPidHypo = pid; };
87  void SetParameters(Double_t d, Double_t phi, Double_t r, Double_t tanl, Double_t z)
88  {
89  fDist = d;
90  fPhi = phi;
91  fRad = r;
92  fTanL = tanl;
93  fZ = z;
94  };
95 
96  void SetDist(Double_t dist) { fDist = dist; }
97  void SetPhi(Double_t phi) { fPhi = phi; }
98  void SetRad(Double_t r) { fRad = r; }
99  void SetTanL(Double_t tanl) { fTanL = tanl; }
100  void SetZ(Double_t z) { fZ = z; }
101  void SetCharge(Int_t charge) { fH = charge; }
102 
103  void SetFlag(Int_t flag) { fFlag = flag; };
104  void SetChi2Long(Double_t chi2) { fChi2Long = chi2; };
105  void SetChi2Rad(Double_t chi2) { fChi2Rad = chi2; };
106  void SetNDF(Int_t ndf) { fNDF = ndf; };
107 
108  void AddHelixHit(Int_t size, Int_t index, Int_t helixhitindex);
109 
110  private:
112  TArrayI fHelixHits;
113 
115  Int_t fPidHypo;
116 
118  Double_t fDist, fPhi, fRad, fTanL, fZ;
119  Int_t fH;
120 
122  Int_t fFlag;
123 
125  Double_t fChi2Long;
126  Int_t fNDF;
127  Double_t fChi2Rad;
128 
130  Int_t fTrackCandIndex;
131 
132  ClassDef(PndSttTrack, 1);
133 };
134 
135 #endif
void SetChi2Rad(Double_t chi2)
Definition: PndSttTrack.h:105
Int_t GetNDF() const
Definition: PndSttTrack.h:61
Double_t GetTanL()
Definition: PndSttTrack.h:67
Double_t GetZ()
Definition: PndSttTrack.h:68
Double_t GetChi2Long() const
Definition: PndSttTrack.h:59
void SetNDF(Int_t ndf)
Definition: PndSttTrack.h:106
Int_t GetTrackCandIndex()
Definition: PndSttTrack.h:52
Double_t GetChi2Rad() const
Definition: PndSttTrack.h:60
TVector3 * PCAToPoint(TVector3 *point)
void Print()
void AddHelixHit(Int_t size, Int_t index, Int_t helixhitindex)
Double_t GetDist()
Definition: PndSttTrack.h:64
void SetCharge(Int_t charge)
Definition: PndSttTrack.h:101
Double_t GetRad()
Definition: PndSttTrack.h:66
TVector3 * MomentumAtPoint(TVector3 *point)
virtual ~PndSttTrack()
void SetZ(Double_t z)
Definition: PndSttTrack.h:100
Double_t GetPhi()
Definition: PndSttTrack.h:65
void SetPhi(Double_t phi)
Definition: PndSttTrack.h:97
void SetDist(Double_t dist)
Definition: PndSttTrack.h:96
void SetTrackCandIndex(Int_t trackCandID)
Definition: PndSttTrack.h:85
void SetRad(Double_t r)
Definition: PndSttTrack.h:98
Int_t GetCharge()
Definition: PndSttTrack.h:70
void SetPidHypo(Int_t pid)
Definition: PndSttTrack.h:86
Int_t GetNofHelixHits() const
Definition: PndSttTrack.h:55
void SetParameters(Double_t d, Double_t phi, Double_t r, Double_t tanl, Double_t z)
Definition: PndSttTrack.h:87
Double_t CalculateScosl(Double_t x, Double_t y)
void SetChi2Long(Double_t chi2)
Definition: PndSttTrack.h:104
Int_t GetHelixHitIndex(Int_t iHit) const
Definition: PndSttTrack.h:56
Int_t GetPidHypo() const
Definition: PndSttTrack.h:57
void SetFlag(Int_t flag)
Definition: PndSttTrack.h:103
Int_t GetFlag() const
Definition: PndSttTrack.h:58
void SetTanL(Double_t tanl)
Definition: PndSttTrack.h:99