PandaRoot
PndDrcLutInfo.h
Go to the documentation of this file.
1 // -----------------------------------------
2 // PndDrcLutInfo.h
3 //
4 // Created on: 13.07.2013
5 // Author: R.Dzhygadlo at gsi.de
6 // -----------------------------------------
7 // Container for look-up table
8 
9 #ifndef PNDDRCLUTINFO_H
10 #define PNDDRCLUTINFO_H
11 
12 #include "TObject.h"
13 #include "TClonesArray.h"
14 #include "TVector3.h"
15 #include <vector>
16 
17 class PndDrcLutInfo : public TObject {
18 
19  public:
20  // Default constructor
21  PndDrcLutInfo();
22 
23  // Standard constructors
24 
25  // Copy constructor
26  // PndDrcLutInfo (PndDrcLutInfo& node) { *this = node; } // not needed
27 
28  // Modifiers
29  void AddAngle(Double_t val);
30  void AddPixelEnd(Double_t val);
31  void AddTime(Double_t val);
32  void AddTime(Double_t val, Bool_t ref);
33  void AddLutTime(Double_t val, Bool_t ref);
34  void AddPath(Double_t val);
35  void AddChDiff(Double_t val);
36  void AddNOfBounces(Double_t val);
37  void AddNOfEVReflections(Int_t val);
38  void AddLambda(Double_t val);
39  void AddTruePath(Double_t val);
40  void AddHitTime(Double_t val);
41 
42  void SetChPartDir(TVector3 val);
43  void SetChPartDirInBar(TVector3 val);
44  void SetChPartDirInBar2(TVector3 val);
45  void SetChPartPdg(Int_t val);
46  void SetCherenkovMC(Double_t val);
47  void SetCherenkovReal(Double_t val);
48 
49  // Accessors
50  Int_t AngleEntries() { return fAnglesSize; }
51  Int_t PixelEntries() { return fPixelSize; }
52  Int_t TimeEntries() { return fTimesSize; }
53  Int_t PathEntries() { return fPathsSize; }
54  Int_t ChDiffEntries() { return fChDiffsSize; }
55  Int_t NOfBouncesEntries() { return fNOfBouncesSize; }
57  Int_t NOfLambdas() { return fLambdasSize; }
58  Int_t NOfTruePaths() { return fTruePathsSize; }
59  Int_t NOfHitTimes() { return fHitTimesSize; }
60 
61  TVector3 GetChPartDir() { return fChPartDir; }
62  TVector3 GetChPartDirInBar() { return fChPartDirInBar; }
63  TVector3 GetChPartDirInBar2() { return fChPartDirInBar2; }
64  Int_t GetChPartPdg() { return fChPartPdg; }
65  Double_t GetCherenkovMC() { return fCherenkovMC; }
66  Double_t GetCherenkovReal() { return fCherenkovReal; }
67 
68  Double_t GetAngle(Int_t entry);
69  Int_t GetPixelEnd(Int_t entry);
70  Double_t GetChDiff(Int_t entry);
71  Int_t GetNOfBounces(Int_t entry);
72  Int_t GetNOfEVReflections(Int_t entry);
73  Double_t GetTime(Int_t entry);
74  Double_t GetLutTime(Int_t entry) { return fLutTimesArray[entry]; }
75  Double_t GetLambda(Int_t entry) { return fLambdaArray[entry]; }
76  Double_t GetHitTime(Int_t entry) { return fHitTimeArray[entry]; }
77  Double_t GetTruePath(Int_t entry) { return fTruePathArray[entry]; }
78  Double_t GetPath(Int_t entry) { return fPathsArray[entry]; }
79  Bool_t GetReflected(Int_t entry) { return fReflected[entry]; }
80  Bool_t GetLutReflected(Int_t entry) { return fLutReflected[entry]; }
81 
82  protected:
83  Int_t fAnglesSize;
84  Int_t fPixelSize;
85  Int_t fTimesSize;
87  Int_t fPathsSize;
88  Int_t fChDiffsSize;
91  Int_t fLambdasSize;
94 
95  // arrays of values based on the LUT ambiguities:
96  std::vector<Double_t> fAnglesArray;
97 
98  std::vector<Int_t> fPixelEndArray;
99  std::vector<Double_t> fTimesArray;
100  std::vector<Double_t> fLutTimesArray;
101  std::vector<Double_t> fPathsArray;
102  std::vector<Double_t> fChDiffsArray;
103  std::vector<Int_t> fNOfBouncesArray;
104  std::vector<TVector3> fPhotonStartPosition;
105  std::vector<Int_t> fNOfEVReflectionsArray;
106  std::vector<Double_t> fLambdaArray;
107  std::vector<Double_t> fHitTimeArray;
108  std::vector<Double_t> fTruePathArray;
109  std::vector<Bool_t> fReflected;
110  std::vector<Bool_t> fLutReflected;
111 
112  // MC information
113  TVector3 fChPartDir;
114  TVector3 fChPartDirInBar;
116  Int_t fChPartPdg;
117  Double_t fCherenkovMC;
118  Double_t fCherenkovReal;
119 
120  ClassDef(PndDrcLutInfo, 2)
121 };
122 
123 #endif
std::vector< Bool_t > fReflected
void SetChPartDirInBar2(TVector3 val)
std::vector< Double_t > fAnglesArray
Definition: PndDrcLutInfo.h:96
Bool_t GetLutReflected(Int_t entry)
Definition: PndDrcLutInfo.h:80
void AddChDiff(Double_t val)
void AddHitTime(Double_t val)
TVector3 fChPartDir
std::vector< Double_t > fChDiffsArray
Double_t GetChDiff(Int_t entry)
std::vector< Double_t > fLambdaArray
Int_t NOfTruePaths()
Definition: PndDrcLutInfo.h:58
std::vector< Double_t > fTimesArray
Definition: PndDrcLutInfo.h:99
Double_t GetHitTime(Int_t entry)
Definition: PndDrcLutInfo.h:76
Double_t GetTime(Int_t entry)
Int_t fLambdasSize
Definition: PndDrcLutInfo.h:91
std::vector< Int_t > fNOfEVReflectionsArray
void AddPixelEnd(Double_t val)
void AddNOfEVReflections(Int_t val)
Double_t GetCherenkovMC()
Definition: PndDrcLutInfo.h:65
Double_t GetLutTime(Int_t entry)
Definition: PndDrcLutInfo.h:74
void SetChPartPdg(Int_t val)
Double_t GetCherenkovReal()
Definition: PndDrcLutInfo.h:66
Int_t NOfEVReflectionEntries()
Definition: PndDrcLutInfo.h:56
void SetChPartDirInBar(TVector3 val)
TVector3 fChPartDirInBar
Int_t PixelEntries()
Definition: PndDrcLutInfo.h:51
Int_t NOfLambdas()
Definition: PndDrcLutInfo.h:57
void SetCherenkovReal(Double_t val)
Int_t NOfBouncesEntries()
Definition: PndDrcLutInfo.h:55
Int_t GetChPartPdg()
Definition: PndDrcLutInfo.h:64
TVector3 fChPartDirInBar2
Int_t PathEntries()
Definition: PndDrcLutInfo.h:53
std::vector< Int_t > fPixelEndArray
Definition: PndDrcLutInfo.h:98
Bool_t GetReflected(Int_t entry)
Definition: PndDrcLutInfo.h:79
void AddLambda(Double_t val)
Int_t fTruePathsSize
Definition: PndDrcLutInfo.h:93
Int_t fChDiffsSize
Definition: PndDrcLutInfo.h:88
void AddAngle(Double_t val)
std::vector< Bool_t > fLutReflected
void SetChPartDir(TVector3 val)
Double_t GetTruePath(Int_t entry)
Definition: PndDrcLutInfo.h:77
Double_t GetLambda(Int_t entry)
Definition: PndDrcLutInfo.h:75
Int_t ChDiffEntries()
Definition: PndDrcLutInfo.h:54
Int_t GetPixelEnd(Int_t entry)
void AddTime(Double_t val)
void AddNOfBounces(Double_t val)
Int_t fNOfBouncesSize
Definition: PndDrcLutInfo.h:89
void AddTruePath(Double_t val)
Double_t fCherenkovReal
Int_t GetNOfEVReflections(Int_t entry)
void SetCherenkovMC(Double_t val)
std::vector< Double_t > fLutTimesArray
Int_t fLutTimesSize
Definition: PndDrcLutInfo.h:86
Double_t fCherenkovMC
TVector3 GetChPartDir()
Definition: PndDrcLutInfo.h:61
TVector3 GetChPartDirInBar2()
Definition: PndDrcLutInfo.h:63
void AddPath(Double_t val)
Double_t GetAngle(Int_t entry)
TVector3 GetChPartDirInBar()
Definition: PndDrcLutInfo.h:62
void AddLutTime(Double_t val, Bool_t ref)
Int_t NOfHitTimes()
Definition: PndDrcLutInfo.h:59
std::vector< Int_t > fNOfBouncesArray
Int_t fHitTimesSize
Definition: PndDrcLutInfo.h:92
Int_t GetNOfBounces(Int_t entry)
std::vector< TVector3 > fPhotonStartPosition
Int_t TimeEntries()
Definition: PndDrcLutInfo.h:52
Double_t GetPath(Int_t entry)
Definition: PndDrcLutInfo.h:78
std::vector< Double_t > fPathsArray
std::vector< Double_t > fHitTimeArray
std::vector< Double_t > fTruePathArray
Int_t fNOfEVReflectionsSize
Definition: PndDrcLutInfo.h:90
Int_t AngleEntries()
Definition: PndDrcLutInfo.h:50