GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TDescantHit.h
Go to the documentation of this file.
1#ifndef DESCANTHIT_H
2#define DESCANTHIT_H
3
4/** \addtogroup Detectors
5 * @{
6 */
7
8#include <cstdio>
9#include <cmath>
10#include <vector>
11
12#include "TVector3.h"
13
14#include "TFragment.h"
15#include "TChannel.h"
16
17#include "TDetectorHit.h"
18
19class TDescantHit : public TDetectorHit {
20public:
23 TDescantHit(TDescantHit&&) noexcept = default;
24 TDescantHit& operator=(const TDescantHit&) = default;
25 TDescantHit& operator=(TDescantHit&&) noexcept = default;
26 explicit TDescantHit(const TFragment& frag);
27 ~TDescantHit() override = default;
28
29private:
30 Int_t fFilter;
31 Int_t fPsd;
32 Int_t fZc;
33 Int_t fCcShort;
34 Int_t fCcLong;
35 std::vector<int16_t> fCfdMonitor;
36 std::vector<int> fPartialSum;
37
38public:
39 ///////////////////////// /////////////////////////////////////
40 inline void SetFilterPattern(const int& x) { fFilter = x; } //!<!
41 inline void SetPsd(const int& x) { fPsd = x; } //!<!
42 inline void SetZc(const int& x) { fZc = x; } //!<!
43 inline void SetCcShort(const int& x) { fCcShort = x; } //!<!
44 inline void SetCcLong(const int& x) { fCcLong = x; } //!<!
45
46 // 4G 26bit CFD word: 4 bit timestamp remainder, 22 bit actual cfd word
47 // inline void SetCfd(const Int_t& x) { fCfd = (fCfd & 0x70000000) | (x & 0x1fffffff); } //!<!
48
49 ///////////////////////// /////////////////////////////////////
50 inline Int_t GetFilterPattern() const { return fFilter; } //!<!
51 inline Int_t GetPsd() const { return fPsd; } //!<!
52 inline Int_t GetZc() const { return fZc; } //!<!
53 inline Int_t GetCcShort() const { return fCcShort; } //!<!
54 inline Int_t GetCcLong() const { return fCcLong; } //!<!
55 inline std::vector<int16_t>& GetCfdMonitor() { return fCfdMonitor; }
56 inline std::vector<int>& GetPartialSum() { return fPartialSum; }
57
58 Float_t GetCfd() const override;
59 Int_t GetRemainder() const;
60
61 Int_t CalculateCfd(double attenuation, unsigned int delay, int halfsmoothingwindow,
62 unsigned int interpolation_steps); //!<!
63 Int_t CalculateCfdAndMonitor(double attenuation, unsigned int delay, int halfSmoothingWindow,
64 unsigned int interpolationSteps, std::vector<Short_t>& monitor); //!<!
65 std::vector<Short_t> CalculateCfdMonitor(double attenuation, unsigned int delay,
66 unsigned int halfSmoothingWindow); //!<!
67 std::vector<Short_t> CalculateSmoothedWaveform(unsigned int halfSmoothingWindow); //!<!
68 std::vector<Int_t> CalculatePartialSum(); //!<!
69 Int_t CalculatePsd(double fraction, unsigned int interpolationSteps); //!<!
70 Int_t CalculatePsdAndPartialSums(double fraction, unsigned int interpolationSteps,
71 std::vector<Int_t>& partialSums); //!<!
72
73 bool InFilter(Int_t); //!<!
74
75 bool AnalyzeWaveform(); //!<!
76
77 TVector3 GetPosition(Double_t dist) const override; //!<!
78 TVector3 GetPosition() const override; //!<!
79
80 void Copy(TObject&) const override; //!<!
81 void Copy(TObject&, bool) const override; //!<!
82 void Clear(Option_t* opt = "") override; //!<!
83 void Print(Option_t* opt = "") const override; //!<!
84 void Print(std::ostream& out) const override; //!<!
85
86private:
87 Double_t GetDefaultDistance() const { return 222.; }
88
89 /// \cond CLASSIMP
90 ClassDefOverride(TDescantHit, 7) // NOLINT(readability-else-after-return)
91 /// \endcond
92};
93/*! @} */
94#endif
std::vector< int > fPartialSum
Definition TDescantHit.h:36
std::vector< Short_t > CalculateCfdMonitor(double attenuation, unsigned int delay, unsigned int halfSmoothingWindow)
!
std::vector< int > & GetPartialSum()
Definition TDescantHit.h:56
void SetCcLong(const int &x)
!
Definition TDescantHit.h:44
void SetCcShort(const int &x)
!
Definition TDescantHit.h:43
Int_t fCcLong
Definition TDescantHit.h:34
Int_t GetCcShort() const
!
Definition TDescantHit.h:53
bool InFilter(Int_t)
!
Int_t CalculatePsd(double fraction, unsigned int interpolationSteps)
!
Int_t fCcShort
Definition TDescantHit.h:33
Int_t CalculatePsdAndPartialSums(double fraction, unsigned int interpolationSteps, std::vector< Int_t > &partialSums)
!
Int_t fFilter
Definition TDescantHit.h:30
void SetFilterPattern(const int &x)
!
Definition TDescantHit.h:40
std::vector< Int_t > CalculatePartialSum()
!
void Print(Option_t *opt="") const override
!
void Clear(Option_t *opt="") override
!
Int_t GetFilterPattern() const
!
Definition TDescantHit.h:50
std::vector< int16_t > fCfdMonitor
Definition TDescantHit.h:35
Int_t CalculateCfdAndMonitor(double attenuation, unsigned int delay, int halfSmoothingWindow, unsigned int interpolationSteps, std::vector< Short_t > &monitor)
!
Int_t GetCcLong() const
!
Definition TDescantHit.h:54
Int_t GetRemainder() const
Int_t GetZc() const
!
Definition TDescantHit.h:52
std::vector< int16_t > & GetCfdMonitor()
Definition TDescantHit.h:55
void SetPsd(const int &x)
!
Definition TDescantHit.h:41
void Copy(TObject &) const override
!
TDescantHit(TDescantHit &&) noexcept=default
TVector3 GetPosition() const override
!
Double_t GetDefaultDistance() const
Definition TDescantHit.h:87
std::vector< Short_t > CalculateSmoothedWaveform(unsigned int halfSmoothingWindow)
!
Int_t CalculateCfd(double attenuation, unsigned int delay, int halfsmoothingwindow, unsigned int interpolation_steps)
!
bool AnalyzeWaveform()
!
Float_t GetCfd() const override
!
void SetZc(const int &x)
!
Definition TDescantHit.h:42
Int_t GetPsd() const
!
Definition TDescantHit.h:51