PandaRoot
PndLmdTrackQ.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 // ----- PndLmdTrackQ header file -----
15 // ----- Created 18/06/2013 by A.Karavdina -----
16 // -------------------------------------------------------------------------
17 
24 #ifndef PNDLMDTRACKQ_H
25 #define PNDLMDTRACKQ_H
26 
27 #include "TVector3.h"
28 #include "TString.h"
29 #include "TObject.h"
30 #include "TMatrixTSym.h"
31 #include "TMatrixDSym.h"
32 
33 #include <stdio.h>
34 #include <iostream>
35 
36 //#include "PndTrack.h"
37 
38 class PndLmdTrackQ : public TObject {
39  public:
41  PndLmdTrackQ();
42 
43  PndLmdTrackQ(double Plab);
44 
46  ~PndLmdTrackQ();
47 
54  void SetTrkRecStatus(int st) { fTrkRecStatus = st; }
55 
60  int GetTrkRecStatus() const { return fTrkRecStatus; }
61 
63  void SetPDGcode(int pdg) { fPDGcode = pdg; }
64 
67  int GetPDGcode() const { return fPDGcode; }
68 
70  void SetLMDpoint(double x, double y, double z)
71  {
72  fXrecLMD = x;
73  fYrecLMD = y;
74  fZrecLMD = z;
75  }
76 
78  void GetLMDpoint(TVector3 &lmdp) { lmdp.SetXYZ(fXrecLMD, fYrecLMD, fZrecLMD); }
79 
81  void SetLMDdir(double theta, double phi)
82  {
83  fThetarecLMD = theta;
84  fPhirecLMD = phi;
85  }
86 
88  double GetLMDtheta() const { return fThetarecLMD; }
89 
91  double GetLMDphi() const { return fPhirecLMD; }
92 
94  void SetLMDchi2(double chi2) { fchi2LMD = chi2; }
95 
97  double GetLMDchi2() const { return fchi2LMD; }
98 
100  void SetIPpoint(double x, double y, double z)
101  {
102  fXrec = x;
103  fYrec = y;
104  fZrec = z;
105  }
106 
108  void GetIPpoint(TVector3 &lmdp) { lmdp.SetXYZ(fXrec, fYrec, fZrec); }
109 
111  void SetIPmom(double theta, double phi, double mom)
112  {
113  fThetarec = theta;
114  fPhirec = phi;
115  fMomrec = mom;
116  }
117 
119  double GetIPtheta() const { return fThetarec; }
120 
122  double GetIPphi() const { return fPhirec; }
123 
125  double GetIPmom() const { return fMomrec; }
126 
128  void SetIPerrpoint(double errx, double erry, double errz)
129  {
130  ferrXrec = errx;
131  ferrYrec = erry;
132  ferrZrec = errz;
133  }
134 
136  void GetIPerrpoint(TVector3 &lmdp) { lmdp.SetXYZ(ferrXrec, ferrYrec, ferrZrec); }
137 
139  void SetIPerrmom(double errtheta, double errphi, double errmom)
140  {
141  ferrThetarec = errtheta;
142  ferrPhirec = errphi;
143  ferrMomrec = errmom;
144  }
145 
147  void GetIPerrmom(TVector3 &lmerrdp) { lmerrdp.SetXYZ(ferrThetarec, ferrPhirec, ferrMomrec); }
148 
150  void SetMCpoint(double x, double y, double z)
151  {
152  fXmc = x;
153  fYmc = y;
154  fZmc = z;
155  }
156 
158  void GetMCpoint(TVector3 &lmdp) { lmdp.SetXYZ(fXmc, fYmc, fZmc); }
159 
161  void SetMCmom(double theta, double phi, double mom)
162  {
163  fThetamc = theta;
164  fPhimc = phi;
165  fMommc = mom;
166  }
167 
169  double GetMCtheta() const { return fThetamc; }
170 
172  double GetMCphi() const { return fPhimc; }
173 
175  double GetMCmom() const { return fMommc; }
176 
178  void GetMCpointLMD(TVector3 &lmdp) { lmdp.SetXYZ(fXmcLMD, fYmcLMD, fZmcLMD); }
179 
181  void SetMCpointLMD(double x, double y, double z)
182  {
183  fXmcLMD = x;
184  fYmcLMD = y;
185  fZmcLMD = z;
186  }
187 
189  void SetMCmomLMD(double theta, double phi, double mom)
190  {
191  fThetamcLMD = theta;
192  fPhimcLMD = phi;
193  fMommcLMD = mom;
194  }
195 
197  double GetMCthetaLMD() const { return fThetamcLMD; }
198 
200  double GetMCphiLMD() const { return fPhimcLMD; }
201 
203  double GetMCmomLMD() const { return fMommcLMD; }
204 
207  void SetSecondary(int sec) { fSecondary = sec; }
208 
211  int GetSecondary() const { return fSecondary; }
212 
214  void SetNumMChits(int num) { fnumMChits = num; }
215 
217  int GetNumMChits() const { return fnumMChits; }
218 
220  void SetNumDoubleMChits(int num) { fnumMCdoublehits = num; }
221 
223  int GetNumDoubleMChits() const { return fnumMCdoublehits; }
224 
226  void SetSumEvPDG(int sumid) { fsumID = sumid; }
227 
229  int GetSumEvPDG() const { return fsumID; }
230 
231  /* void SetTotEvCharge(int totch){ ftotCharge = totch;} */
232  /* int GetTotEvCharge() const{return ftotCharge;} */
233 
235  void SetEvMCMulti(int tot) { fnumEvparticles = tot; }
236 
238  int GetEvMCMulti() const { return fnumEvparticles; }
239 
241  void SetEvRECMulti(int tot) { fnumEvRECparticles = tot; }
242 
244  int GetEvRECMulti() const { return fnumEvRECparticles; }
245 
247  void SetEvTime(double evtm) { fEvTime = evtm; }
248  void SetTrkTime(double trktm) { fTrkTime = trktm; }
249  double GetEvTime() const { return fEvTime; }
250  double GetTrkTime() const { return fTrkTime; }
251 
253  void SetModule(int mod) { fModule = mod; }
254  void SetHalf(int hf) { fHalf = hf; }
255  int GetModule() const { return fModule; }
256  int GetHalf() const { return fHalf; }
257 
258  private:
259  // Int_t ftotCharge;
260  Int_t fsumID, fnumEvparticles, fnumEvRECparticles;
261  Double_t fXrecLMD, fYrecLMD, fZrecLMD, fThetarecLMD, fPhirecLMD;
262  Double_t fXrec, fYrec, fZrec, fThetarec, fPhirec, fMomrec;
263  Double_t ferrXrec, ferrYrec, ferrZrec, ferrThetarec, ferrPhirec, ferrMomrec;
264  Double_t fXmc, fYmc, fZmc, fThetamc, fPhimc, fMommc;
265  Double_t fXmcLMD, fYmcLMD, fZmcLMD, fThetamcLMD, fPhimcLMD, fMommcLMD;
266  Double_t fchi2LMD;
267  int fTrkRecStatus; // 0 = good,
268  int fSecondary; // 0=primary, 1=secondary
269  int fPDGcode; // PDG code particle made the main contribution (65 % of hits) to the rec.track, -9999=n/a
270  int fnumMChits; // number of MC hits for MC trk
271  int fnumMCdoublehits; // number of doubled [diff side of one plane] MC hits for MC trk
272  // >0 = ghost: 1 = hit mixture, 2 = doubled trk
273  // <0 = missed: -1=trk-search losses,-2=little amount of hits,-3=no MC hits, -10=trk wasn't back-propag
274  double fEvTime; // global time for event
275  double fTrkTime; // time for 1st hit in the Trk = ToF (flight time from IP to LMD)
276 
277  int fModule; // module number of 1st hit
278  int fHalf; // half of the plane number of 1st hit
279  ClassDef(PndLmdTrackQ, 11);
280 };
281 
282 #endif
void SetModule(int mod)
Definition: PndLmdTrackQ.h:253
int GetEvRECMulti() const
Definition: PndLmdTrackQ.h:244
void SetEvRECMulti(int tot)
Definition: PndLmdTrackQ.h:241
double GetTrkTime() const
Definition: PndLmdTrackQ.h:250
int GetEvMCMulti() const
Definition: PndLmdTrackQ.h:238
void GetIPerrmom(TVector3 &lmerrdp)
Definition: PndLmdTrackQ.h:147
double GetMCtheta() const
Definition: PndLmdTrackQ.h:169
void SetMCmom(double theta, double phi, double mom)
Definition: PndLmdTrackQ.h:161
void SetMCpoint(double x, double y, double z)
Definition: PndLmdTrackQ.h:150
void SetTrkRecStatus(int st)
Definition: PndLmdTrackQ.h:54
void SetLMDdir(double theta, double phi)
Definition: PndLmdTrackQ.h:81
int GetHalf() const
Definition: PndLmdTrackQ.h:256
double GetLMDchi2() const
Definition: PndLmdTrackQ.h:97
double GetMCphi() const
Definition: PndLmdTrackQ.h:172
double GetMCmomLMD() const
Definition: PndLmdTrackQ.h:203
void GetMCpoint(TVector3 &lmdp)
Definition: PndLmdTrackQ.h:158
void GetIPerrpoint(TVector3 &lmdp)
Definition: PndLmdTrackQ.h:136
void SetIPpoint(double x, double y, double z)
Definition: PndLmdTrackQ.h:100
void SetMCpointLMD(double x, double y, double z)
Definition: PndLmdTrackQ.h:181
double GetLMDphi() const
Definition: PndLmdTrackQ.h:91
int GetNumDoubleMChits() const
Definition: PndLmdTrackQ.h:223
double GetIPmom() const
Definition: PndLmdTrackQ.h:125
double GetLMDtheta() const
Definition: PndLmdTrackQ.h:88
void SetIPerrpoint(double errx, double erry, double errz)
Definition: PndLmdTrackQ.h:128
double GetMCmom() const
Definition: PndLmdTrackQ.h:175
void SetMCmomLMD(double theta, double phi, double mom)
Definition: PndLmdTrackQ.h:189
int GetNumMChits() const
Definition: PndLmdTrackQ.h:217
double GetMCphiLMD() const
Definition: PndLmdTrackQ.h:200
void SetPDGcode(int pdg)
Definition: PndLmdTrackQ.h:63
void SetSecondary(int sec)
Definition: PndLmdTrackQ.h:207
void SetIPerrmom(double errtheta, double errphi, double errmom)
Definition: PndLmdTrackQ.h:139
double GetIPphi() const
Definition: PndLmdTrackQ.h:122
void SetEvTime(double evtm)
Definition: PndLmdTrackQ.h:247
void SetTrkTime(double trktm)
Definition: PndLmdTrackQ.h:248
void SetSumEvPDG(int sumid)
Definition: PndLmdTrackQ.h:226
void SetLMDchi2(double chi2)
Definition: PndLmdTrackQ.h:94
void SetLMDpoint(double x, double y, double z)
Definition: PndLmdTrackQ.h:70
double GetMCthetaLMD() const
Definition: PndLmdTrackQ.h:197
int GetTrkRecStatus() const
Definition: PndLmdTrackQ.h:60
void SetNumMChits(int num)
Definition: PndLmdTrackQ.h:214
void SetNumDoubleMChits(int num)
Definition: PndLmdTrackQ.h:220
void GetLMDpoint(TVector3 &lmdp)
Definition: PndLmdTrackQ.h:78
int GetModule() const
Definition: PndLmdTrackQ.h:255
void GetMCpointLMD(TVector3 &lmdp)
Definition: PndLmdTrackQ.h:178
int GetSumEvPDG() const
Definition: PndLmdTrackQ.h:229
void SetEvMCMulti(int tot)
Definition: PndLmdTrackQ.h:235
int GetSecondary() const
Definition: PndLmdTrackQ.h:211
void GetIPpoint(TVector3 &lmdp)
Definition: PndLmdTrackQ.h:108
int GetPDGcode() const
Definition: PndLmdTrackQ.h:67
void SetIPmom(double theta, double phi, double mom)
Definition: PndLmdTrackQ.h:111
void SetHalf(int hf)
Definition: PndLmdTrackQ.h:254
double GetIPtheta() const
Definition: PndLmdTrackQ.h:119
double GetEvTime() const
Definition: PndLmdTrackQ.h:249