GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TDescant.h
Go to the documentation of this file.
1#ifndef TDESCANT_H
2#define TDESCANT_H
3
4/** \addtogroup Detectors
5 * @{
6 */
7
8/////////////////////////////////////////////////////////////
9///
10/// \class TDescant
11///
12/// The TDescant class defines the observables and algorithms used
13/// when analyzing GRIFFIN data. It includes detector positions,
14/// etc.
15///
16/////////////////////////////////////////////////////////////
17
18#include <vector>
19#include <cstdio>
20
21#include "TVector3.h"
22
23#include "Globals.h"
24#include "TDetector.h"
25#include "TDescantHit.h"
26
27class TDescant : public TDetector {
28public:
29 TDescant();
30 TDescant(const TDescant&);
31 TDescant(TDescant&&) noexcept = default;
32 TDescant& operator=(const TDescant&); //
33 TDescant& operator=(TDescant&&) noexcept = default;
34 ~TDescant() override = default;
35
36 TDescantHit* GetDescantHit(const Int_t& i = 0) const { return static_cast<TDescantHit*>(GetHit(i)); }
37
38 static TVector3 GetPosition(int DetNbr, double dist = 222); //!<!
39
40#ifndef __CINT__
41 void AddFragment(const std::shared_ptr<const TFragment>&, TChannel*) override; //!<!
42#endif
43 void BuildHits() override {} // no need to build any hits, everything already done in AddFragment
44
45 static bool SetWave() { return fSetWave; } //!<!
46 void SetWave(bool flag) { fSetWave = flag; } //!<!
47 bool Hit() const { return fHitFlag; } //!<!
48 void SetHit(bool flag = true) { fHitFlag = flag; } //!<!
49
50 void Copy(TObject&) const override; //!<!
51 void Clear(Option_t* opt = "") override; //!<!
52 void Print(Option_t* opt = "") const override; //!<!
53 void Print(std::ostream& out) const override; //!<!
54
55private:
56 static bool fSetWave; ///< Flag for Waveforms ON/OFF
57 bool fHitFlag; ///< Is there a Descant hit?
58
59 static std::array<TVector3, 71> fSpherePosition; //!<!
60 static std::array<TVector3, 9> fAncillaryPosition; //!<!
61 static std::array<TVector3, 60> fWallPosition; //!<!
62
63 /// \cond CLASSIMP
64 ClassDefOverride(TDescant, 1) // NOLINT(readability-else-after-return)
65 /// \endcond
66};
67/*! @} */
68#endif
void SetHit(bool flag=true)
!
Definition TDescant.h:48
static bool SetWave()
!
Definition TDescant.h:45
void AddFragment(const std::shared_ptr< const TFragment > &, TChannel *) override
!
Definition TDescant.cxx:139
void Clear(Option_t *opt="") override
!
Definition TDescant.cxx:113
bool Hit() const
!
Definition TDescant.h:47
void Print(Option_t *opt="") const override
!
Definition TDescant.cxx:126
static std::array< TVector3, 60 > fWallPosition
!
Definition TDescant.h:74
TDescant(TDescant &&) noexcept=default
static std::array< TVector3, 71 > fSpherePosition
!
Definition TDescant.h:14
void BuildHits() override
!
Definition TDescant.h:43
static bool fSetWave
Flag for Waveforms ON/OFF.
Definition TDescant.h:56
static std::array< TVector3, 9 > fAncillaryPosition
!
Definition TDescant.h:41
static TVector3 GetPosition(int DetNbr, double dist=222)
!
Definition TDescant.cxx:152
void SetWave(bool flag)
!
Definition TDescant.h:46
void Copy(TObject &) const override
!
Definition TDescant.cxx:103
bool fHitFlag
Is there a Descant hit?
Definition TDescant.h:57
TDescantHit * GetDescantHit(const Int_t &i=0) const
Definition TDescant.h:36
virtual TDetectorHit * GetHit(const int &index) const
Definition TDetector.cxx:61