PandaRoot
PndTrkHit.h
Go to the documentation of this file.
1 
9 #ifndef PNDTRKHIT_H
10 #define PNDTRKHIT_H 1
11 
12 #include "FairTimeStamp.h"
13 #include "TVector3.h"
14 #include "PndTrkParameters.h"
15 /* #include "TObject.h" */
16 
17 class PndTrkHit : public FairTimeStamp {
18 
19  public:
20  PndTrkHit();
21  PndTrkHit(Int_t hitID, Int_t detID, Bool_t used, Int_t iregion, Int_t sensorID, TVector3 &pos, Double_t isochrone, Double_t sortvar);
22  // PndTrkHit(Int_t hitID, Int_t detID, Bool_t used, Int_t iregion, Int_t sensorID, TVector3& pos);
23  PndTrkHit(const PndTrkHit &hit);
24 
25  ~PndTrkHit();
26 
27  virtual Bool_t IsEqual(const TObject *obj) const { return (((PndTrkHit *)obj)->fDetectorID == fDetectorID) && (((PndTrkHit *)obj)->fHitID == fHitID); }
28 
29  virtual Bool_t IsSortable() { return !(fSortVariable == -1); }
30  Int_t Compare(const TObject *hit) const;
31 
32  Bool_t operator==(const PndTrkHit &hit1);
33  Bool_t operator<(const PndTrkHit &hit1);
34  /* friend Bool_t operator==(const PndTrkHit & hit1, const PndTrkHit & hit2); */
35  // friend Bool_t operator<(const PndTrkHit &hit1, const PndTrkHit &hit2) ;
36 
37  // CHECK add other set
38  void SetIsochrone(Double_t isochrone) { fIsochrone = isochrone; }
39  void SetSortVariable(Double_t sortvar) { fSortVariable = sortvar; }
40 
41  void SetPosition(TVector3 pos) { fPosition = pos; }
42  void SetPhi(Double_t phi) { fPhi = phi; }
43 
44  void SetUsedFlag(Bool_t used) { fUsed = used; }
45  void SetRefHitFlag(Bool_t used) { fUsedAsRefHit = used; }
46 
47  void SetRegion(Int_t iregion) { fIRegion = iregion; }
48 
49  // inline get
50  inline Int_t GetHitID() { return fHitID; }
51  inline Int_t GetDetectorID() { return fDetectorID; }
52  inline Bool_t IsUsed() { return fUsed; }
53  inline Bool_t WasRefHit() { return fUsedAsRefHit; }
54  inline Int_t GetSensorID() { return fSensorID; }
55  inline Int_t GetTubeID() { return fSensorID; }
56  inline TVector3 GetPosition() { return fPosition; }
57  inline Double_t GetIsochrone() { return fIsochrone; }
58  inline Int_t GetIRegion() { return fIRegion; }
59  inline Bool_t IsRegion(Int_t iregion) { return iregion == fIRegion; }
60  inline Double_t GetSortVariable() { return fSortVariable; }
61  inline Double_t GetPhi() { return fPhi; }
62 
63  // is stt
64  inline Bool_t IsSttParallel() { return fIRegion == INNER_LEFT || fIRegion == OUTER_LEFT || fIRegion == INNER_RIGHT || fIRegion == OUTER_RIGHT; }
65  inline Bool_t IsSttSkew() { return fIRegion == SKEW_LEFT || fIRegion == SKEW_RIGHT; }
66  inline Bool_t IsStt() { return IsSttParallel() || IsSttSkew(); }
67 
68  // is mvd
69  inline Bool_t IsMvdPixel() { return fIRegion == MVDPIXEL; }
70  inline Bool_t IsMvdStrip() { return fIRegion == MVDSTRIP; }
71  inline Bool_t IsMvd() { return IsMvdStrip() || IsMvdPixel(); }
72 
73  // is gem
74  inline Bool_t IsGem() { return fIRegion == GEM; }
75 
76  // is scitil
77  inline Bool_t IsSciTil() { return fIRegion == SCIT; }
78 
79  Double_t GetDistance(PndTrkHit *fromhit);
80  Double_t GetDistance(TVector3 frompoint);
81  Double_t GetXYDistance(PndTrkHit *fromhit);
82  Double_t GetXYDistance(TVector3 frompoint);
83  Double_t GetXYDistanceFromTrack(double x0, double y0, double R);
84  // info
85  void Draw(Color_t color);
86  void DrawTube(Color_t color);
87  void Print();
88 
89  int GetSector() { return fSector; }
90 
91  // variables
93  Bool_t fUsed;
94  Bool_t fUsedAsRefHit;
95  TVector3 fPosition;
96  Double_t fIsochrone;
97  Double_t fSortVariable; // variable for sorting
98  Double_t fPhi;
99  Double_t fSector;
100  ClassDef(PndTrkHit, 1);
101 };
102 
103 #endif
void SetRegion(Int_t iregion)
Definition: PndTrkHit.h:47
#define SKEW_RIGHT
Double_t GetPhi()
Definition: PndTrkHit.h:61
Bool_t IsSciTil()
Definition: PndTrkHit.h:77
Int_t fDetectorID
Definition: PndTrkHit.h:92
Double_t fIsochrone
Definition: PndTrkHit.h:96
Int_t fSensorID
Definition: PndTrkHit.h:92
void SetPhi(Double_t phi)
Definition: PndTrkHit.h:42
void SetSortVariable(Double_t sortvar)
Definition: PndTrkHit.h:39
Bool_t IsMvdPixel()
Definition: PndTrkHit.h:69
#define INNER_LEFT
virtual Bool_t IsEqual(const TObject *obj) const
Definition: PndTrkHit.h:27
Bool_t fUsedAsRefHit
Definition: PndTrkHit.h:94
#define SKEW_LEFT
Double_t fPhi
Definition: PndTrkHit.h:98
Bool_t IsMvdStrip()
Definition: PndTrkHit.h:70
Int_t GetHitID()
Definition: PndTrkHit.h:50
ClassDef(PndTrkHit, 1)
Bool_t IsSttParallel()
Definition: PndTrkHit.h:64
Bool_t IsMvd()
Definition: PndTrkHit.h:71
Int_t GetSensorID()
Definition: PndTrkHit.h:54
#define GEM
#define SCIT
Int_t GetIRegion()
Definition: PndTrkHit.h:58
Int_t fHitID
Definition: PndTrkHit.h:92
Int_t GetDetectorID()
Definition: PndTrkHit.h:51
#define MVDSTRIP
void Print()
void SetUsedFlag(Bool_t used)
Definition: PndTrkHit.h:44
void SetIsochrone(Double_t isochrone)
Definition: PndTrkHit.h:38
Double_t GetDistance(PndTrkHit *fromhit)
TVector3 GetPosition()
Definition: PndTrkHit.h:56
void SetRefHitFlag(Bool_t used)
Definition: PndTrkHit.h:45
virtual Bool_t IsSortable()
Definition: PndTrkHit.h:29
void SetPosition(TVector3 pos)
Definition: PndTrkHit.h:41
Double_t fSortVariable
Definition: PndTrkHit.h:97
Int_t Compare(const TObject *hit) const
Bool_t IsGem()
Definition: PndTrkHit.h:74
#define INNER_RIGHT
void DrawTube(Color_t color)
Bool_t IsUsed()
Definition: PndTrkHit.h:52
Int_t fIRegion
Definition: PndTrkHit.h:92
Double_t GetXYDistanceFromTrack(double x0, double y0, double R)
Bool_t operator<(const PndTrkHit &hit1)
TVector3 fPosition
Definition: PndTrkHit.h:95
void Draw(Color_t color)
Double_t fSector
Definition: PndTrkHit.h:99
Double_t GetXYDistance(PndTrkHit *fromhit)
Bool_t IsStt()
Definition: PndTrkHit.h:66
Double_t GetSortVariable()
Definition: PndTrkHit.h:60
Bool_t fUsed
Definition: PndTrkHit.h:93
Bool_t WasRefHit()
Definition: PndTrkHit.h:53
Double_t GetIsochrone()
Definition: PndTrkHit.h:57
#define MVDPIXEL
#define OUTER_RIGHT
int GetSector()
Definition: PndTrkHit.h:89
Int_t GetTubeID()
Definition: PndTrkHit.h:55
Bool_t operator==(const PndTrkHit &hit1)
Bool_t IsSttSkew()
Definition: PndTrkHit.h:65
Bool_t IsRegion(Int_t iregion)
Definition: PndTrkHit.h:59
#define OUTER_LEFT