PandaRoot
BSEmcRecoHit.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 #ifndef BSEMCRECOHIT_HH
14 #define BSEMCRECOHIT_HH
15 
16 #include <string> // for string
17 #include <vector>
18 
19 #include "Rtypes.h" // for BSEmcRecoHit::Class, BSEmcRecoHit::...
20 #include "RtypesCore.h" // for Int_t, Double_t, Float_t
21 #include "TMatrixDfwd.h" // for TMatrixD
22 #include "TMatrixT.h" // for TMatrixT
23 #include "TVector3.h" // for TVector3
24 
25 #include "FairHit.h" // for FairHit
26 #include "FairMultiLinkedData.h" // for FairMultiLinkedData
27 
28 #include "BSEmcDataBranchNames.h"
29 
30 class TBuffer;
31 class TClass;
32 class TMemberInspector;
33 
43 class BSEmcRecoHit : public FairHit {
44  public:
45  BSEmcRecoHit();
46  BSEmcRecoHit(const BSEmcRecoHit &t_other);
47  virtual ~BSEmcRecoHit();
48 
49  const TVector3 &GetPosition() const { return fPosition; }
50  const TVector3 &GetCorrectedPosition() const { return fCorrectedPosition; }
51  Double_t GetRawEnergy() const { return fRawEnergy; }
52  Double_t GetCorrectedEnergy() const { return fCalEnergy; }
53  Double_t GetEnergy1() const { return fE1; }
54  Double_t GetEnergy9() const { return fE9; }
55  Double_t GetEnergy25() const { return fE25; }
56  Double_t GetLateralMoment() const { return fLat; }
57  Double_t GetZ20() const { return fZ20; }
58  Double_t GetZ53() const { return fZ53; }
59  Int_t GetNumberOfClusterCrystals() const { return fNumberOfCrystals; }
60  Int_t GetNumberOfSubCluster() const { return fNumberOfSubCluster; }
61  Int_t GetNumberOfSubClusterCrystals() const { return fNumberOfSubClusterCrystals; }
62  Int_t GetModule() const { return fModule; }
63  Bool_t IsSplitOff() const {return fIsSplitOff; }
64 
65  const TMatrixD &GetCov7() const { return fCov7; }
66  const TMatrixD &GetCovP4() const { return fCovP4; }
67  Int_t GetClusterIndex() const { return fClusterIndex; }
68  Int_t GetSubClusterIndex() const { return fSubClusterIndex; }
69  Int_t GetCentralCrystalId() const { return fCentralCrystalId; }
70 
71  void SetPosition(const TVector3 &t_pos)
72  {
73  fPosition = t_pos;
74  fX = t_pos.X();
75  fY = t_pos.Y();
76  fZ = t_pos.Z();
77  }
78 
79  void SetCorrectedPosition(const TVector3 &t_pos) { fCorrectedPosition = t_pos; }
80 
81  void SetRawEnergy(Double_t t_energy) { fRawEnergy = t_energy; }
82  void SetCorrectedEnergy(Double_t t_energy) { fCalEnergy = t_energy; }
83  void SetEnergy1(Double_t t_energy) { fE1 = t_energy; }
84  void SetEnergy9(Double_t t_energy) { fE9 = t_energy; }
85  void SetEnergy25(Double_t t_energy) { fE25 = t_energy; }
86  void SetLateralMoment(Double_t t_latmom) { fLat = t_latmom; }
87  void SetZ20(Double_t t_z20) { fZ20 = t_z20; }
88  void SetZ53(Double_t t_z53) { fZ53 = t_z53; }
89  void SetNumberOfClusterCrystals(Int_t t_ncrystals) { fNumberOfCrystals = t_ncrystals; }
90  void SetNumberOfSubCluster(Int_t t_nsubcluster) { fNumberOfSubCluster = t_nsubcluster; }
91  void SetNumberOfSubClusterCrystals(Int_t t_nsubclustercrystals) { fNumberOfSubClusterCrystals = t_nsubclustercrystals; }
92  void SetModule(Int_t t_module) { fModule = t_module; }
93  void SetCentralCrystalId(Int_t t_centralCrystal) { fCentralCrystalId = t_centralCrystal; }
94  void SetSplitOff(Bool_t t_IsSplitOff) {fIsSplitOff = t_IsSplitOff; }
95 
96  void SetCov7(const TMatrixD &t_cov7) { fCov7 = t_cov7; }
97  void SetCovP4(const TMatrixD &t_covP4) { fCovP4 = t_covP4; }
98 
99  void SetSubClusterIndex(Int_t t_subclusterindex) { fSubClusterIndex = t_subclusterindex; }
100  void SetClusterIndex(Int_t t_clusterindex) { fClusterIndex = t_clusterindex; }
101 
102  const std::vector<Int_t> &GetMcList() const { return fMcList; };
103  Int_t GetMcSize() const { return fMcList.size(); }
104  Int_t GetMcIndex(Int_t t_idx = 0) const { return fMcList[t_idx]; }
105  void SetMcList(const std::vector<Int_t> &t_mclist) { fMcList = t_mclist; }
106 
107  FairMultiLinkedData GetTrackEntering() const { return fTrackEntering; }
108  FairMultiLinkedData GetTrackExiting() const { return fTrackExiting; }
109  void SetTrackEntering(const FairMultiLinkedData &t_tracks) { fTrackEntering = t_tracks; }
110  void SetTrackExiting(const FairMultiLinkedData &t_tracks) { fTrackExiting = t_tracks; }
111 
112  private:
113  TVector3 fPosition{};
114  TVector3 fCorrectedPosition{};
115  Float_t fRawEnergy{-1};
116  Float_t fCalEnergy{-1};
117  Int_t fNumberOfCrystals{-1};
118  Int_t fNumberOfSubCluster{-1};
119  Int_t fNumberOfSubClusterCrystals{-1};
120  Int_t fModule{-1};
121  Int_t fClusterIndex{-1};
122  Int_t fSubClusterIndex{-1};
123  Int_t fCentralCrystalId{-1};
124  Double_t fZ20{-1};
125  Double_t fZ53{-1};
126  Double_t fLat{-1};
127  Double_t fE1{-1};
128  Double_t fE9{-1};
129  Double_t fE25{-1};
130  TMatrixD fCov7{7, 7};
131  TMatrixD fCovP4{4, 4};
132  Bool_t fIsSplitOff{false};
133 
134  std::vector<Int_t> fMcList{};
135  FairMultiLinkedData fTrackEntering{};
136  FairMultiLinkedData fTrackExiting{};
137 
138  ClassDef(BSEmcRecoHit, 1);
139 };
140 
141 #endif /*BSEMCRECOHIT_HH*/
Double_t GetZ20() const
Definition: BSEmcRecoHit.h:57
Resembles/Contains all information a particle hitting the EMC can provide for later use in the PID st...
Definition: BSEmcRecoHit.h:43
virtual ~BSEmcRecoHit()
const TVector3 & GetPosition() const
Definition: BSEmcRecoHit.h:49
Bool_t IsSplitOff() const
Definition: BSEmcRecoHit.h:63
Double_t GetEnergy1() const
Definition: BSEmcRecoHit.h:53
void SetRawEnergy(Double_t t_energy)
Definition: BSEmcRecoHit.h:81
Double_t GetEnergy25() const
Definition: BSEmcRecoHit.h:55
void SetMcList(const std::vector< Int_t > &t_mclist)
Definition: BSEmcRecoHit.h:105
void SetCorrectedPosition(const TVector3 &t_pos)
Definition: BSEmcRecoHit.h:79
Int_t GetSubClusterIndex() const
Definition: BSEmcRecoHit.h:68
const TVector3 & GetCorrectedPosition() const
Definition: BSEmcRecoHit.h:50
void SetNumberOfClusterCrystals(Int_t t_ncrystals)
Definition: BSEmcRecoHit.h:89
void SetClusterIndex(Int_t t_clusterindex)
Definition: BSEmcRecoHit.h:100
void SetEnergy9(Double_t t_energy)
Definition: BSEmcRecoHit.h:84
Double_t GetCorrectedEnergy() const
Definition: BSEmcRecoHit.h:52
void SetZ53(Double_t t_z53)
Definition: BSEmcRecoHit.h:88
Double_t GetLateralMoment() const
Definition: BSEmcRecoHit.h:56
Int_t GetModule() const
Definition: BSEmcRecoHit.h:62
Int_t GetMcSize() const
Definition: BSEmcRecoHit.h:103
void SetZ20(Double_t t_z20)
Definition: BSEmcRecoHit.h:87
void SetTrackEntering(const FairMultiLinkedData &t_tracks)
Definition: BSEmcRecoHit.h:109
void SetCorrectedEnergy(Double_t t_energy)
Definition: BSEmcRecoHit.h:82
void SetCovP4(const TMatrixD &t_covP4)
Definition: BSEmcRecoHit.h:97
Int_t GetNumberOfSubClusterCrystals() const
Definition: BSEmcRecoHit.h:61
const TMatrixD & GetCovP4() const
Definition: BSEmcRecoHit.h:66
FairMultiLinkedData GetTrackExiting() const
Definition: BSEmcRecoHit.h:108
void SetNumberOfSubClusterCrystals(Int_t t_nsubclustercrystals)
Definition: BSEmcRecoHit.h:91
void SetTrackExiting(const FairMultiLinkedData &t_tracks)
Definition: BSEmcRecoHit.h:110
void SetLateralMoment(Double_t t_latmom)
Definition: BSEmcRecoHit.h:86
Double_t GetEnergy9() const
Definition: BSEmcRecoHit.h:54
void SetCentralCrystalId(Int_t t_centralCrystal)
Definition: BSEmcRecoHit.h:93
void SetEnergy25(Double_t t_energy)
Definition: BSEmcRecoHit.h:85
Int_t GetCentralCrystalId() const
Definition: BSEmcRecoHit.h:69
void SetCov7(const TMatrixD &t_cov7)
Definition: BSEmcRecoHit.h:96
void SetPosition(const TVector3 &t_pos)
Definition: BSEmcRecoHit.h:71
void SetEnergy1(Double_t t_energy)
Definition: BSEmcRecoHit.h:83
const std::vector< Int_t > & GetMcList() const
Definition: BSEmcRecoHit.h:102
Int_t GetNumberOfClusterCrystals() const
Definition: BSEmcRecoHit.h:59
Int_t GetMcIndex(Int_t t_idx=0) const
Definition: BSEmcRecoHit.h:104
void SetSubClusterIndex(Int_t t_subclusterindex)
Definition: BSEmcRecoHit.h:99
Double_t GetZ53() const
Definition: BSEmcRecoHit.h:58
FairMultiLinkedData GetTrackEntering() const
Definition: BSEmcRecoHit.h:107
void SetSplitOff(Bool_t t_IsSplitOff)
Definition: BSEmcRecoHit.h:94
Int_t GetClusterIndex() const
Definition: BSEmcRecoHit.h:67
Int_t GetNumberOfSubCluster() const
Definition: BSEmcRecoHit.h:60
TMatrixT< double > TMatrixD
Definition: PndLmdDim.h:64
void SetModule(Int_t t_module)
Definition: BSEmcRecoHit.h:92
Double_t GetRawEnergy() const
Definition: BSEmcRecoHit.h:51
void SetNumberOfSubCluster(Int_t t_nsubcluster)
Definition: BSEmcRecoHit.h:90
const TMatrixD & GetCov7() const
Definition: BSEmcRecoHit.h:65