GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TZeroDegreeHit.h
Go to the documentation of this file.
1#ifndef ZERODEGREEHIT_H
2#define ZERODEGREEHIT_H
3
4/** \addtogroup Detectors
5 * @{
6 */
7
8/////////////////////////////////////////////////////////////////
9///
10/// TZeroDegreeHit
11///
12/// This is class that contains the information about a ZDS
13/// hit. This class is used to find energy, time, etc.
14///
15/////////////////////////////////////////////////////////////////
16
17#include <cstdio>
18#include <cmath>
19
20#include "TFragment.h"
21#include "TChannel.h"
22
23#include "TVector3.h"
24
25#include "TDetectorHit.h"
26
28public:
31 TZeroDegreeHit(TZeroDegreeHit&&) noexcept = default;
32 TZeroDegreeHit& operator=(const TZeroDegreeHit&) = default;
33 TZeroDegreeHit& operator=(TZeroDegreeHit&&) noexcept = default;
34 explicit TZeroDegreeHit(const TFragment& frag);
35 ~TZeroDegreeHit() override = default;
36
37private:
38 Int_t fFilter{0};
39 std::vector<int16_t> fCfdMonitor;
40 std::vector<int> fPartialSum;
41
42public:
43 ///////////////////////// /////////////////////////////////////
44 inline void SetFilterPattern(const int& x) { fFilter = x; } //!<!
45
46 ///////////////////////// /////////////////////////////////////
47 inline Int_t GetFilterPattern() const { return fFilter; } //!<!
48 inline std::vector<int16_t>& GetCfdMonitor() { return fCfdMonitor; }
49 inline std::vector<int>& GetPartialSum() { return fPartialSum; }
50
51 Float_t GetCfd() const override;
52 Int_t GetRemainder() const;
53
54 Int_t CalculateCfd(double attenuation, unsigned int delay, int halfsmoothingwindow,
55 unsigned int interpolationSteps); //!<!
56 Int_t CalculateCfdAndMonitor(double attenuation, unsigned int delay, int halfsmoothingwindow,
57 unsigned int interpolationSteps, std::vector<Short_t>& monitor); //!<!
58 std::vector<Short_t> CalculateCfdMonitor(double attenuation, int delay, int halfsmoothingwindow); //!<!
59 std::vector<Short_t> CalculateSmoothedWaveform(unsigned int halfsmoothingwindow); //!<!
60 std::vector<Int_t> CalculatePartialSum(); //!<!
61
62 bool InFilter(Int_t); //!<!
63
64 bool AnalyzeWaveform(); //!<!
65
66 void Clear(Option_t* opt = "") override; //!<!
67 void Print(Option_t* opt = "") const override; //!<!
68 void Print(std::ostream& out) const override; //!<!
69 void Copy(TObject&) const override; //!<!
70 void Copy(TObject&, bool) const override; //!<!
71
72 // Position Not written for ZeroDegree Yet
73
74 /// \cond CLASSIMP
75 ClassDefOverride(TZeroDegreeHit, 4) // Stores the information for a ZeroDegreeHit // NOLINT(readability-else-after-return)
76 /// \endcond
77};
78/*! @} */
79#endif
Int_t GetFilterPattern() const
!
std::vector< int16_t > & GetCfdMonitor()
std::vector< Short_t > CalculateCfdMonitor(double attenuation, int delay, int halfsmoothingwindow)
!
Int_t CalculateCfd(double attenuation, unsigned int delay, int halfsmoothingwindow, unsigned int interpolationSteps)
!
void Clear(Option_t *opt="") override
!
TZeroDegreeHit(TZeroDegreeHit &&) noexcept=default
void Print(Option_t *opt="") const override
!
std::vector< int > fPartialSum
Int_t GetRemainder() const
Float_t GetCfd() const override
!
void SetFilterPattern(const int &x)
!
std::vector< int16_t > fCfdMonitor
void Copy(TObject &) const override
!
std::vector< Int_t > CalculatePartialSum()
!
std::vector< Short_t > CalculateSmoothedWaveform(unsigned int halfsmoothingwindow)
!
std::vector< int > & GetPartialSum()
bool InFilter(Int_t)
!
Int_t CalculateCfdAndMonitor(double attenuation, unsigned int delay, int halfsmoothingwindow, unsigned int interpolationSteps, std::vector< Short_t > &monitor)
!