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