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