PandaRoot
PndRichPhoton.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 // ----- PndRichPhoton header file -----
15 // ----- Created 01/11/14 by Konstantin Beloborodov -----
16 // ----- -----
17 // -------------------------------------------------------------------------
18 
19 #ifndef PNDRICHPHOTON_H
20 #define PNDRICHPHOTON_H
21 
22 #include "FairHit.h"
23 #include "PndRichMirrorSegment.h"
24 #include "PndRichPDHit.h"
25 #include "PndRichBarPoint.h"
26 #include <vector>
27 
29 class PndRichPDHit;
30 
32 
33  public:
35  PndRichPhoton();
36 
37  PndRichPhoton(Double_t theta, Double_t phi, UInt_t tmask);
38 
41  : fPDHit(photon.fPDHit), fDTime(photon.fDTime), fTime(photon.fTime), fHitTime(photon.fHitTime), fTheta(photon.fTheta), fPhi(photon.fPhi), fTMask(photon.fTMask),
44  fTrack(photon.fTrack){};
45  //{ *this = photon; };
46 
48  {
49  if (this != &photon) {
50  fPDHit = photon.fPDHit;
51  fDTime = photon.fDTime;
52  fTime = photon.fTime;
53  fHitTime = photon.fHitTime;
54  fTheta = photon.fTheta;
55  fPhi = photon.fPhi;
56  fTMask = photon.fTMask;
57  fMirrors = photon.fMirrors;
58  fHitPosition = photon.fHitPosition;
64  fLength = photon.fLength;
65  fTrack = photon.fTrack;
66  }
67  return *this;
68  };
69 
71  virtual ~PndRichPhoton();
72 
74  virtual void Print(const Option_t *opt = "") const;
75 
79  virtual bool TrackCalc();
80  virtual Double_t GetLength();
81  virtual Double_t GetTime();
82  virtual Double_t GetTheta();
83  virtual Double_t GetPhi();
84  virtual UInt_t GetTMask() { return fTMask; }
85  virtual std::vector<PndRichMirrorSegment *> GetMirror() { return fMirrors; }
86  virtual TVector3 GetHitPos() { return fHitPosition; }
87  virtual std::vector<TVector3> GetMirrRefPos() { return fMirrRefPosition; }
88  virtual PndRichBarPoint *GetTrack() { return fTrack; }
89 
90  void SetLength(Double_t length) { fLength = length; }
91  void SetDTime(Double_t time) { fDTime = time; }
92  void SetTime(Double_t time) { fTime = time; }
93  void SetTheta(Double_t theta) { fTheta = theta; }
94  void SetPhi(Double_t phi) { fPhi = phi; }
95  void SetPDHit(PndRichPDHit *hit) { fPDHit = hit; }
96  void SetHitTime(Double_t hitTime) { fHitTime = hitTime; }
97  void SetHitPos(TVector3 hit) { fHitPosition = hit; }
98  void SetTrackPos(TVector3 pos) { fTrackPosition = pos; }
99  void SetTrackDir(TVector3 dir) { fTrackDirection = dir; }
100  void SetTrack(PndRichBarPoint *track) { fTrack = track; }
101  void SetMirrRefPos(std::vector<TVector3> pos) { fMirrRefPosition = pos; }
102  void SetMirror(std::vector<PndRichMirrorSegment *> mirrors) { fMirrors = mirrors; }
103 
104  protected:
106  Double_t fDTime;
107  Double_t fTime;
108  Double_t fHitTime;
109  Double_t fTheta, fPhi;
110  UInt_t fTMask;
111  std::vector<PndRichMirrorSegment *> fMirrors;
112  TVector3 fHitPosition;
113  TVector3 fTrackPosition;
114  TVector3 fTrackDirection;
117  std::vector<TVector3> fMirrRefPosition;
118  Double_t fLength;
120 
121  ClassDef(PndRichPhoton, 1)
122 };
123 
124 #endif // PNDRICHPHOTON_H
virtual std::vector< TVector3 > GetMirrRefPos()
Definition: PndRichPhoton.h:87
void SetTrack(PndRichBarPoint *track)
void SetPhi(Double_t phi)
Definition: PndRichPhoton.h:94
void SetTrackDir(TVector3 dir)
Definition: PndRichPhoton.h:99
void SetTrackPos(TVector3 pos)
Definition: PndRichPhoton.h:98
virtual bool TrackCalc()
PndRichBarPoint * fTrack
TVector3 fTrackDirection
virtual std::vector< PndRichMirrorSegment * > GetMirror()
Definition: PndRichPhoton.h:85
void SetHitPos(TVector3 hit)
Definition: PndRichPhoton.h:97
void SetTheta(Double_t theta)
Definition: PndRichPhoton.h:93
void SetDTime(Double_t time)
Definition: PndRichPhoton.h:91
virtual UInt_t GetTMask()
Definition: PndRichPhoton.h:84
virtual void Print(const Option_t *opt="") const
Double_t fTime
PndRichPhoton & operator=(const PndRichPhoton &photon)
Definition: PndRichPhoton.h:47
virtual Double_t GetTheta()
Double_t fTheta
void SetHitTime(Double_t hitTime)
Definition: PndRichPhoton.h:96
Double_t fHitTime
void SetPDHit(PndRichPDHit *hit)
Definition: PndRichPhoton.h:95
Double_t fDTime
void SetMirrRefPos(std::vector< TVector3 > pos)
void SetMirror(std::vector< PndRichMirrorSegment *> mirrors)
TVector3 fTrackPosition
virtual Double_t GetPhi()
void SetTime(Double_t time)
Definition: PndRichPhoton.h:92
std::vector< TVector3 > fMirrRefPosition
virtual Double_t GetLength()
TVector3 fTrackDirectionOld
Double_t fLength
void SetLength(Double_t length)
Definition: PndRichPhoton.h:90
virtual TVector3 GetHitPos()
Definition: PndRichPhoton.h:86
virtual Double_t GetTime()
PndRichPhoton(const PndRichPhoton &photon)
Definition: PndRichPhoton.h:40
TVector3 fTrackPositionOld
TVector3 fHitPosition
PndRichPDHit * fPDHit
virtual PndRichBarPoint * GetTrack()
Definition: PndRichPhoton.h:88
virtual ~PndRichPhoton()
std::vector< PndRichMirrorSegment * > fMirrors