FairRoot/PandaRoot
PndFsmTrack.h
Go to the documentation of this file.
1 //--------------------------------------------------------------------------
2 // File and Version Information:
3 // $Id: PndFsmTrack.hh,v 1.13 2006/10/06 15:19:11 aida Exp $
4 //
5 // Description:
6 // Class PndFsmTrack
7 //
8 // Candidate "Tracks" or "Particles" for the Fast Simulation
9 //
10 // This software was developed for the PANDA collaboration. If you
11 // use all or part of it, please give an appropriate acknowledgement.
12 //
13 // Author List:
14 // Klaus Goetzen Original Author
15 //
16 // Copyright Information:
17 // Copyright (C) 2006 GSI
18 //
19 //------------------------------------------------------------------------
20 
21 #ifndef PNDFSMTRACK_H
22 #define PNDFSMTRACK_H
23 
24 //----------------------
25 // Base Class Headers --
26 //----------------------
27 
28 //-------------------------------
29 // Collaborating class Headers --
30 //-------------------------------
31 #include "TLorentzVector.h"
32 #include "TVector3.h"
33 #include "TMatrixD.h"
34 
35 //#include "CLHEP/Vector/LorentzVector.h"
36 //#include "CLHEP/Geometry/HepPoint.h"
37 //#include "PDT/PdtEntry.hh"
38 //#include "G4Data/GVertex.hh"
39 
40 //--------------------------------------------
41 // Collaborating class forward declarations --
42 // -------------------------------------------
43 #include <iosfwd>
44 #include <vector>
45 
46 class PndFsmResponse;
47 //class FsmHitMap;
48 
50 {
51 public:
52 
53  //--------------------
54  // Public interface --
55  //--------------------
56 
57  //
58  // Constructors
59  //
60 
61  PndFsmTrack();
62  PndFsmTrack(TLorentzVector p4, TVector3 start, TVector3 stop, double charge, int pdt, signed long trackId);
63 
64  //
65  // Destructor
66  //
67  virtual ~PndFsmTrack();
68 
69  //
70  // Accessors to contained information
71  //
72  TLorentzVector p4() {return _p4;} // 4-momentum
73  TVector3 startVtx() {return _startVtx;}
74  TVector3 stopVtx() {return _stopVtx;}
75  double charge() {return _charge;}
76  int pdt() {return _pdt;}
77  signed long gTrackId() {return _gTrackId;}
79  double Mass2() {return _Mass2;}
80  double MvddEdX() {return _MvddEdX;}
81  double TpcdEdX() {return _TpcdEdX;}
82  double SttdEdX() {return _SttdEdX;}
83 
84  // for the time being partial interface conservation for migration purpose
85  bool hitMapValid() {return false;}
86  bool hitMapResponse(unsigned int ) {return false;} // index //[R.K.03/2017] unused variable(s)
87 
88 
89 
90  //
91  // Modifiers
92  //
93  void setP4(TLorentzVector l);
94  void setStartVtx(TVector3 v);
95  void setStopVtx(TVector3 v);
96  void setCharge(double c);
97  void setGTrackId(signed long id);
98  void setPdt(int pdt);
99  void setDetResponse(PndFsmResponse* resp);
100 
101  void setMass2(double c);
102  void setMvddEdX(double c);
103  void setTpcdEdX(double c);
104  void setSttdEdX(double c);
105 
106 
107  // Operations
108 
109  void print(std::ostream &o);
110 
111 private:
112  TLorentzVector _p4;
113  TVector3 _startVtx;
114  TVector3 _stopVtx;
115  double _charge;
116  int _pdt;
117  signed long _gTrackId;
118  double _Mass2;
119  double _MvddEdX;
120  double _TpcdEdX;
121  double _SttdEdX;
123  // adding helix representation for some realism
124  double fPar5[5]; // helix fit parameters: d0, phi0, omega, z0, tandip
125  TVector3 fReference; // reference point to helix rep
128 
129 public:
130  double *GetHelixParams() { return fPar5; }
131  TMatrixD& GetHelixCov() {return fCov5; }
132  TMatrixD& Cov7() {return fCov7;}
133  void SetP7Cov(TMatrixD &p7cov);
134  void SetP4Cov(TMatrixD &p4cov);
135  void SetVCov(TMatrixD &vcov);
136 
137  Double_t GetHelixD0() const {return fPar5[0];}
138  Double_t GetHelixPhi0() const {return fPar5[1];}
139  Double_t GetHelixOmega() const {return fPar5[2];}
140  Double_t GetHelixZ0() const {return fPar5[3];}
141  Double_t GetHelixTanDip() const {return fPar5[4];}
142 
143  void HelixRep(TVector3 reference);
144  void Propagate(TVector3 origin, double deltaError=2.5);
145 
146 };
147 
148 #endif
Double_t GetHelixZ0() const
Definition: PndFsmTrack.h:140
signed long gTrackId()
Definition: PndFsmTrack.h:77
double _charge
Definition: PndFsmTrack.h:115
TMatrixD fCov7
Definition: PndFsmTrack.h:127
Double_t GetHelixPhi0() const
Definition: PndFsmTrack.h:138
TVector3 stopVtx()
Definition: PndFsmTrack.h:74
void setMass2(double c)
void setCharge(double c)
void setStopVtx(TVector3 v)
double TpcdEdX()
Definition: PndFsmTrack.h:81
void setPdt(int pdt)
TVector3 _startVtx
Definition: PndFsmTrack.h:113
double Mass2()
Definition: PndFsmTrack.h:79
Double_t GetHelixOmega() const
Definition: PndFsmTrack.h:139
bool hitMapResponse(unsigned int)
Definition: PndFsmTrack.h:86
void setDetResponse(PndFsmResponse *resp)
double _Mass2
Definition: PndFsmTrack.h:118
Double_t GetHelixD0() const
Definition: PndFsmTrack.h:137
void setMvddEdX(double c)
double MvddEdX()
Definition: PndFsmTrack.h:80
double charge()
Definition: PndFsmTrack.h:75
double _SttdEdX
Definition: PndFsmTrack.h:121
TVector3 fReference
Definition: PndFsmTrack.h:125
__m128 v
Definition: P4_F32vec4.h:4
void SetP7Cov(TMatrixD &p7cov)
PndFsmResponse * _detResponse
Definition: PndFsmTrack.h:122
TMatrixD & GetHelixCov()
Definition: PndFsmTrack.h:131
double * GetHelixParams()
Definition: PndFsmTrack.h:130
TMatrixD & Cov7()
Definition: PndFsmTrack.h:132
TLorentzVector p4()
Definition: PndFsmTrack.h:72
void SetVCov(TMatrixD &vcov)
signed long _gTrackId
Definition: PndFsmTrack.h:117
Double_t
double SttdEdX()
Definition: PndFsmTrack.h:82
double _TpcdEdX
Definition: PndFsmTrack.h:120
double _MvddEdX
Definition: PndFsmTrack.h:119
TMatrixD fCov5
Definition: PndFsmTrack.h:126
void setP4(TLorentzVector l)
TLorentzVector _p4
Definition: PndFsmTrack.h:112
double fPar5[5]
Definition: PndFsmTrack.h:124
bool hitMapValid()
Definition: PndFsmTrack.h:85
void setSttdEdX(double c)
void setTpcdEdX(double c)
void SetP4Cov(TMatrixD &p4cov)
void setStartVtx(TVector3 v)
TVector3 startVtx()
Definition: PndFsmTrack.h:73
virtual ~PndFsmTrack()
void HelixRep(TVector3 reference)
Definition: PndFsmTrack.cxx:98
PndFsmResponse * detResponse()
Definition: PndFsmTrack.h:78
Double_t GetHelixTanDip() const
Definition: PndFsmTrack.h:141
void setGTrackId(signed long id)
void Propagate(TVector3 origin, double deltaError=2.5)
void print(std::ostream &o)
TMatrixT< double > TMatrixD
Definition: PndLmdDim.h:52
TVector3 _stopVtx
Definition: PndFsmTrack.h:114