GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TS3Hit.h
Go to the documentation of this file.
1#ifndef TS3HIT_H
2#define TS3HIT_H
3
4/** \addtogroup Detectors
5 * @{
6 */
7
8#include <cstdio>
9#include "TFragment.h"
10#include "TDetectorHit.h"
11
12class TS3Hit : public TDetectorHit {
13public:
14 TS3Hit();
15 explicit TS3Hit(const TFragment&);
16 TS3Hit(const TS3Hit&);
17 TS3Hit(TS3Hit&&) noexcept = default;
18 TS3Hit& operator=(const TS3Hit&) = default;
19 TS3Hit& operator=(TS3Hit&&) noexcept = default;
20 ~TS3Hit() override = default;
21
22 Short_t GetRing() const { return fRing; }
23 Short_t GetSector() const { return fSector; }
24 Bool_t GetIsDownstream() const { return fIsDownstream; }
25 Int_t GetArrayPosition() const
26 {
27 if(GetChannel() != nullptr) {
29 }
30 return -1;
31 }
32 std::string GetDistanceStr() const
33 {
34 if(GetChannel() != nullptr) {
36 }
37 return "0";
38 }
39
40 void Copy(TObject&) const override; //!
41 void Copy(TObject&, bool) const override; //!<!
42 void Print(Option_t* opt = "") const override;
43 void Print(std::ostream& out) const override; //!<!
44 void Clear(Option_t* opt = "") override;
45
46 inline Double_t GetFitTime() const { return fTimeFit; } //!<!
47 inline Double_t GetSignalToNoise() const { return fSig2Noise; } //!<!
48
49 void SetRingNumber(Short_t rn) { fRing = rn; }
50 void SetSectorNumber(Short_t sn) { fSector = sn; }
51 void SetIsDownstream(Bool_t dwnstrm) { fIsDownstream = dwnstrm; }
52
53 void SetRingNumber(TFragment& frag) { fRing = frag.GetSegment(); }
54 void SetSectorNumber(TFragment& frag) { fSector = frag.GetSegment(); }
57 void SetSectorNumber(int n) { fSector = n; }
58 void SetRingNumber(int n) { fRing = n; }
59
60 void SetWavefit(const TFragment&);
61 void SetTimeFit(Double_t time) { fTimeFit = time; }
62 void SetSig2Noise(Double_t sig2noise) { fSig2Noise = sig2noise; }
63
64 Bool_t SectorsDownstream() const;
65
66 Double_t GetPhi(double offset = 0) const { return GetPosition(offset).Phi(); }
67
68 Double_t GetTheta(double offset = 0, TVector3* vec = nullptr) const
69 {
70 if(vec == nullptr) {
71 vec = new TVector3();
72 vec->SetXYZ(0, 0, 1);
73 }
74 return GetPosition(offset).Angle(*vec);
75 }
76#pragma clang diagnostic push
77#pragma clang diagnostic ignored "-Woverloaded-virtual"
78 TVector3 GetPosition(Double_t phioffset, Double_t dist, bool smear = false) const; //!
79 TVector3 GetPosition(Double_t phioffset, bool smear = false) const; //!
80 TVector3 GetPosition(bool smear = false) const; //!
81#pragma clang diagnostic pop
82
83private:
84 Double_t GetDefaultPhiOffset() const; //!
85 Double_t GetDefaultDistance() const; //!
86
87 Bool_t fIsDownstream{false}; // Downstream check
88 Short_t fRing{0}; // front
89 Short_t fSector{0}; // back
90
91 Double_t fTimeFit{0.};
92 Double_t fSig2Noise{0.};
93
94 /// \cond CLASSIMP
95 ClassDefOverride(TS3Hit, 4); // NOLINT(readability-else-after-return)
96 /// \endcond
97};
98/*! @} */
99#endif
const TMnemonic * GetMnemonic() const
virtual TVector3 GetPosition() const
!
TChannel * GetChannel() const
!
virtual Int_t GetSegment() const
!
virtual int16_t ArrayPosition() const
Definition TMnemonic.h:66
virtual std::string ArraySubPositionString() const
Definition TMnemonic.h:71
void SetRingNumber(int n)
Definition TS3Hit.h:58
void SetIsDownstream(Bool_t dwnstrm)
Definition TS3Hit.h:51
Short_t GetSector() const
Definition TS3Hit.h:23
Double_t fTimeFit
Definition TS3Hit.h:91
void Copy(TObject &) const override
Definition TS3Hit.cxx:31
TS3Hit(TS3Hit &&) noexcept=default
Double_t GetFitTime() const
!
Definition TS3Hit.h:46
TS3Hit()
Definition TS3Hit.cxx:9
void Clear(Option_t *opt="") override
Definition TS3Hit.cxx:51
Short_t fSector
Definition TS3Hit.h:89
void SetRingNumber()
Definition TS3Hit.h:55
Short_t fRing
Definition TS3Hit.h:88
void SetSectorNumber(int n)
Definition TS3Hit.h:57
Double_t GetDefaultPhiOffset() const
Definition TS3Hit.cxx:106
Double_t GetTheta(double offset=0, TVector3 *vec=nullptr) const
Definition TS3Hit.h:68
Short_t GetRing() const
Definition TS3Hit.h:22
Int_t GetArrayPosition() const
Definition TS3Hit.h:25
void SetRingNumber(TFragment &frag)
Definition TS3Hit.h:53
void SetSectorNumber(TFragment &frag)
Definition TS3Hit.h:54
Bool_t GetIsDownstream() const
Definition TS3Hit.h:24
Double_t GetDefaultDistance() const
Definition TS3Hit.cxx:118
Double_t GetSignalToNoise() const
!
Definition TS3Hit.h:47
Bool_t fIsDownstream
Definition TS3Hit.h:87
void SetTimeFit(Double_t time)
Definition TS3Hit.h:61
Double_t GetPhi(double offset=0) const
Definition TS3Hit.h:66
Bool_t SectorsDownstream() const
Definition TS3Hit.cxx:68
void SetSectorNumber(Short_t sn)
Definition TS3Hit.h:50
void Print(Option_t *opt="") const override
Definition TS3Hit.cxx:92
void SetSig2Noise(Double_t sig2noise)
Definition TS3Hit.h:62
void SetSectorNumber()
Definition TS3Hit.h:56
std::string GetDistanceStr() const
Definition TS3Hit.h:32
void SetRingNumber(Short_t rn)
Definition TS3Hit.h:49
Double_t fSig2Noise
Definition TS3Hit.h:92
void SetWavefit(const TFragment &)
Definition TS3Hit.cxx:59