PandaRoot
PndLmdTrackQ.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndLmdTrackQ header file -----
3 // ----- Created 18/06/2013 by A.Karavdina -----
4 // -------------------------------------------------------------------------
5 
12 #ifndef PNDLMDTRACKQ_H
13 #define PNDLMDTRACKQ_H
14 
15 #include "TVector3.h"
16 #include "TString.h"
17 #include "TObject.h"
18 #include "TMatrixTSym.h"
19 #include "TMatrixDSym.h"
20 
21 #include <stdio.h>
22 #include <iostream>
23 
24 //#include "PndTrack.h"
25 
26 class PndLmdTrackQ : public TObject {
27  public:
29  PndLmdTrackQ();
30 
31  PndLmdTrackQ(double Plab);
32 
34  ~PndLmdTrackQ();
35 
42  void SetTrkRecStatus(int st) { fTrkRecStatus = st; }
43 
48  int GetTrkRecStatus() const { return fTrkRecStatus; }
49 
51  void SetPDGcode(int pdg) { fPDGcode = pdg; }
52 
55  int GetPDGcode() const { return fPDGcode; }
56 
58  void SetLMDpoint(double x, double y, double z)
59  {
60  fXrecLMD = x;
61  fYrecLMD = y;
62  fZrecLMD = z;
63  }
64 
66  void GetLMDpoint(TVector3 &lmdp) { lmdp.SetXYZ(fXrecLMD, fYrecLMD, fZrecLMD); }
67 
69  void SetLMDdir(double theta, double phi)
70  {
71  fThetarecLMD = theta;
72  fPhirecLMD = phi;
73  }
74 
76  double GetLMDtheta() const { return fThetarecLMD; }
77 
79  double GetLMDphi() const { return fPhirecLMD; }
80 
82  void SetLMDchi2(double chi2) { fchi2LMD = chi2; }
83 
85  double GetLMDchi2() const { return fchi2LMD; }
86 
88  void SetIPpoint(double x, double y, double z)
89  {
90  fXrec = x;
91  fYrec = y;
92  fZrec = z;
93  }
94 
96  void GetIPpoint(TVector3 &lmdp) { lmdp.SetXYZ(fXrec, fYrec, fZrec); }
97 
99  void SetIPmom(double theta, double phi, double mom)
100  {
101  fThetarec = theta;
102  fPhirec = phi;
103  fMomrec = mom;
104  }
105 
107  double GetIPtheta() const { return fThetarec; }
108 
110  double GetIPphi() const { return fPhirec; }
111 
113  double GetIPmom() const { return fMomrec; }
114 
116  void SetIPerrpoint(double errx, double erry, double errz)
117  {
118  ferrXrec = errx;
119  ferrYrec = erry;
120  ferrZrec = errz;
121  }
122 
124  void GetIPerrpoint(TVector3 &lmdp) { lmdp.SetXYZ(ferrXrec, ferrYrec, ferrZrec); }
125 
127  void SetIPerrmom(double errtheta, double errphi, double errmom)
128  {
129  ferrThetarec = errtheta;
130  ferrPhirec = errphi;
131  ferrMomrec = errmom;
132  }
133 
135  void GetIPerrmom(TVector3 &lmerrdp) { lmerrdp.SetXYZ(ferrThetarec, ferrPhirec, ferrMomrec); }
136 
138  void SetMCpoint(double x, double y, double z)
139  {
140  fXmc = x;
141  fYmc = y;
142  fZmc = z;
143  }
144 
146  void GetMCpoint(TVector3 &lmdp) { lmdp.SetXYZ(fXmc, fYmc, fZmc); }
147 
149  void SetMCmom(double theta, double phi, double mom)
150  {
151  fThetamc = theta;
152  fPhimc = phi;
153  fMommc = mom;
154  }
155 
157  double GetMCtheta() const { return fThetamc; }
158 
160  double GetMCphi() const { return fPhimc; }
161 
163  double GetMCmom() const { return fMommc; }
164 
166  void GetMCpointLMD(TVector3 &lmdp) { lmdp.SetXYZ(fXmcLMD, fYmcLMD, fZmcLMD); }
167 
169  void SetMCpointLMD(double x, double y, double z)
170  {
171  fXmcLMD = x;
172  fYmcLMD = y;
173  fZmcLMD = z;
174  }
175 
177  void SetMCmomLMD(double theta, double phi, double mom)
178  {
179  fThetamcLMD = theta;
180  fPhimcLMD = phi;
181  fMommcLMD = mom;
182  }
183 
185  double GetMCthetaLMD() const { return fThetamcLMD; }
186 
188  double GetMCphiLMD() const { return fPhimcLMD; }
189 
191  double GetMCmomLMD() const { return fMommcLMD; }
192 
195  void SetSecondary(int sec) { fSecondary = sec; }
196 
199  int GetSecondary() const { return fSecondary; }
200 
202  void SetNumMChits(int num) { fnumMChits = num; }
203 
205  int GetNumMChits() const { return fnumMChits; }
206 
208  void SetNumDoubleMChits(int num) { fnumMCdoublehits = num; }
209 
211  int GetNumDoubleMChits() const { return fnumMCdoublehits; }
212 
214  void SetSumEvPDG(int sumid) { fsumID = sumid; }
215 
217  int GetSumEvPDG() const { return fsumID; }
218 
219  /* void SetTotEvCharge(int totch){ ftotCharge = totch;} */
220  /* int GetTotEvCharge() const{return ftotCharge;} */
221 
223  void SetEvMCMulti(int tot) { fnumEvparticles = tot; }
224 
226  int GetEvMCMulti() const { return fnumEvparticles; }
227 
229  void SetEvRECMulti(int tot) { fnumEvRECparticles = tot; }
230 
232  int GetEvRECMulti() const { return fnumEvRECparticles; }
233 
235  void SetEvTime(double evtm) { fEvTime = evtm; }
236  void SetTrkTime(double trktm) { fTrkTime = trktm; }
237  double GetEvTime() const { return fEvTime; }
238  double GetTrkTime() const { return fTrkTime; }
239 
241  void SetModule(int mod) { fModule = mod; }
242  void SetHalf(int hf) { fHalf = hf; }
243  int GetModule() const { return fModule; }
244  int GetHalf() const { return fHalf; }
245 
246  private:
247  // Int_t ftotCharge;
248  Int_t fsumID, fnumEvparticles, fnumEvRECparticles;
249  Double_t fXrecLMD, fYrecLMD, fZrecLMD, fThetarecLMD, fPhirecLMD;
250  Double_t fXrec, fYrec, fZrec, fThetarec, fPhirec, fMomrec;
251  Double_t ferrXrec, ferrYrec, ferrZrec, ferrThetarec, ferrPhirec, ferrMomrec;
252  Double_t fXmc, fYmc, fZmc, fThetamc, fPhimc, fMommc;
253  Double_t fXmcLMD, fYmcLMD, fZmcLMD, fThetamcLMD, fPhimcLMD, fMommcLMD;
254  Double_t fchi2LMD;
255  int fTrkRecStatus; // 0 = good,
256  int fSecondary; // 0=primary, 1=secondary
257  int fPDGcode; // PDG code particle made the main contribution (65 % of hits) to the rec.track, -9999=n/a
258  int fnumMChits; // number of MC hits for MC trk
259  int fnumMCdoublehits; // number of doubled [diff side of one plane] MC hits for MC trk
260  // >0 = ghost: 1 = hit mixture, 2 = doubled trk
261  // <0 = missed: -1=trk-search losses,-2=little amount of hits,-3=no MC hits, -10=trk wasn't back-propag
262  double fEvTime; // global time for event
263  double fTrkTime; // time for 1st hit in the Trk = ToF (flight time from IP to LMD)
264 
265  int fModule; // module number of 1st hit
266  int fHalf; // half of the plane number of 1st hit
267  ClassDef(PndLmdTrackQ, 11);
268 };
269 
270 #endif
void SetModule(int mod)
Definition: PndLmdTrackQ.h:241
int GetEvRECMulti() const
Definition: PndLmdTrackQ.h:232
void SetEvRECMulti(int tot)
Definition: PndLmdTrackQ.h:229
double GetTrkTime() const
Definition: PndLmdTrackQ.h:238
int GetEvMCMulti() const
Definition: PndLmdTrackQ.h:226
void GetIPerrmom(TVector3 &lmerrdp)
Definition: PndLmdTrackQ.h:135
double GetMCtheta() const
Definition: PndLmdTrackQ.h:157
void SetMCmom(double theta, double phi, double mom)
Definition: PndLmdTrackQ.h:149
void SetMCpoint(double x, double y, double z)
Definition: PndLmdTrackQ.h:138
void SetTrkRecStatus(int st)
Definition: PndLmdTrackQ.h:42
void SetLMDdir(double theta, double phi)
Definition: PndLmdTrackQ.h:69
int GetHalf() const
Definition: PndLmdTrackQ.h:244
double GetLMDchi2() const
Definition: PndLmdTrackQ.h:85
double GetMCphi() const
Definition: PndLmdTrackQ.h:160
double GetMCmomLMD() const
Definition: PndLmdTrackQ.h:191
void GetMCpoint(TVector3 &lmdp)
Definition: PndLmdTrackQ.h:146
void GetIPerrpoint(TVector3 &lmdp)
Definition: PndLmdTrackQ.h:124
void SetIPpoint(double x, double y, double z)
Definition: PndLmdTrackQ.h:88
void SetMCpointLMD(double x, double y, double z)
Definition: PndLmdTrackQ.h:169
double GetLMDphi() const
Definition: PndLmdTrackQ.h:79
int GetNumDoubleMChits() const
Definition: PndLmdTrackQ.h:211
double GetIPmom() const
Definition: PndLmdTrackQ.h:113
double GetLMDtheta() const
Definition: PndLmdTrackQ.h:76
void SetIPerrpoint(double errx, double erry, double errz)
Definition: PndLmdTrackQ.h:116
double GetMCmom() const
Definition: PndLmdTrackQ.h:163
void SetMCmomLMD(double theta, double phi, double mom)
Definition: PndLmdTrackQ.h:177
int GetNumMChits() const
Definition: PndLmdTrackQ.h:205
double GetMCphiLMD() const
Definition: PndLmdTrackQ.h:188
void SetPDGcode(int pdg)
Definition: PndLmdTrackQ.h:51
void SetSecondary(int sec)
Definition: PndLmdTrackQ.h:195
void SetIPerrmom(double errtheta, double errphi, double errmom)
Definition: PndLmdTrackQ.h:127
double GetIPphi() const
Definition: PndLmdTrackQ.h:110
void SetEvTime(double evtm)
Definition: PndLmdTrackQ.h:235
void SetTrkTime(double trktm)
Definition: PndLmdTrackQ.h:236
void SetSumEvPDG(int sumid)
Definition: PndLmdTrackQ.h:214
void SetLMDchi2(double chi2)
Definition: PndLmdTrackQ.h:82
void SetLMDpoint(double x, double y, double z)
Definition: PndLmdTrackQ.h:58
double GetMCthetaLMD() const
Definition: PndLmdTrackQ.h:185
int GetTrkRecStatus() const
Definition: PndLmdTrackQ.h:48
void SetNumMChits(int num)
Definition: PndLmdTrackQ.h:202
void SetNumDoubleMChits(int num)
Definition: PndLmdTrackQ.h:208
void GetLMDpoint(TVector3 &lmdp)
Definition: PndLmdTrackQ.h:66
int GetModule() const
Definition: PndLmdTrackQ.h:243
void GetMCpointLMD(TVector3 &lmdp)
Definition: PndLmdTrackQ.h:166
int GetSumEvPDG() const
Definition: PndLmdTrackQ.h:217
void SetEvMCMulti(int tot)
Definition: PndLmdTrackQ.h:223
int GetSecondary() const
Definition: PndLmdTrackQ.h:199
void GetIPpoint(TVector3 &lmdp)
Definition: PndLmdTrackQ.h:96
int GetPDGcode() const
Definition: PndLmdTrackQ.h:55
void SetIPmom(double theta, double phi, double mom)
Definition: PndLmdTrackQ.h:99
void SetHalf(int hf)
Definition: PndLmdTrackQ.h:242
double GetIPtheta() const
Definition: PndLmdTrackQ.h:107
double GetEvTime() const
Definition: PndLmdTrackQ.h:237