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