GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TFippsLaBr.h
Go to the documentation of this file.
1#ifndef TFIPPSLABR_H
2#define TFIPPSLABR_H
3
4/** \addtogroup Detectors
5 * @{
6 */
7
8/////////////////////////////////////////////////////////////
9///
10/// \class TFippsLaBr
11///
12/// The TFippsLaBr class defines the observables and algorithms used
13/// when analyzing LaBr 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 "TSuppressed.h"
25#include "TTransientBits.h"
26#include "TFippsLaBrHit.h"
27
28class TFippsLaBr : public TSuppressed {
29public:
30 enum class ELaBrBits {
31 kIsSuppressed = 1<<0,
32 kBit1 = 1<<1,
33 kBit2 = 1<<2,
34 kBit3 = 1<<3,
35 kBit4 = 1<<4,
36 kBit5 = 1<<5,
37 kBit6 = 1<<6,
38 kBit7 = 1<<7
39 };
40
41 TFippsLaBr();
42 ~TFippsLaBr() override;
43 TFippsLaBr(const TFippsLaBr& rhs);
44
45 void Copy(TObject& rhs) const override;
46 TFippsLaBrHit* GetLaBrHit(const int& i) const { return static_cast<TFippsLaBrHit*>(GetHit(i)); }
47
48#if !defined(__CINT__) && !defined(__CLING__)
49 void SetSuppressionCriterion(std::function<bool(const TDetectorHit*, const TDetectorHit*)> criterion)
50 {
51 fSuppressionCriterion = std::move(criterion);
52 }
53 std::function<bool(const TDetectorHit*, const TDetectorHit*)> GetSuppressionCriterion() const { return fSuppressionCriterion; }
54
55 bool SuppressionCriterion(const TDetectorHit* hit, const TDetectorHit* bgoHit) override { return fSuppressionCriterion(hit, bgoHit); }
56#endif
57
58 TFippsLaBrHit* GetSuppressedHit(const int& i); //!<!
59 Short_t GetSuppressedMultiplicity(const TBgo* fBgo);
60 bool IsSuppressed() const;
61 void SetSuppressed(const bool flag);
62 void ResetSuppressed();
63
64#if !defined(__CINT__) && !defined(__CLING__)
65 void AddFragment(const std::shared_ptr<const TFragment>&, TChannel*) override; //!<!
66#endif
67 void BuildHits() override {} // no need to build any hits, everything already done in AddFragment
68
69 static TVector3 GetPosition(int DetNbr) { return gPosition[DetNbr]; } //!<!
70
71 TFippsLaBr& operator=(const TFippsLaBr&); //!<!
72
73private:
74#if !defined(__CINT__) && !defined(__CLING__)
75 static std::function<bool(const TDetectorHit*, const TDetectorHit*)> fSuppressionCriterion;
76#endif
77 std::vector<TDetectorHit*> fSuppressedHits; // The set of suppressed LaBr hits
78
79 static TVector3 gPosition[9]; //!<! Position of each detectir
80
81 mutable TTransientBits<UChar_t> fLaBrBits; // Transient member flags
82
83 void ClearStatus() const { fLaBrBits = 0; } //!<!
84 void SetBitNumber(const ELaBrBits bit, const bool set) const { fLaBrBits.SetBit(bit, set); }
85 Bool_t TestBitNumber(const ELaBrBits bit) const { return fLaBrBits.TestBit(bit); }
86
87public:
88 void Clear(Option_t* opt = "") override; //!<!
89 void Print(Option_t* opt = "") const override; //!<!
90 void Print(std::ostream& out) const override;
91
92 /// \cond CLASSIMP
93 ClassDefOverride(TFippsLaBr, 1) // LaBr Physics structure
94 /// \endcond
95};
96/*! @} */
97#endif
Definition TBgo.h:22
virtual TDetectorHit * GetHit(const int &index) const
Definition TDetector.cxx:61
void ClearStatus() const
!
Definition TFippsLaBr.h:83
void SetSuppressed(const bool flag)
static TVector3 GetPosition(int DetNbr)
!
Definition TFippsLaBr.h:69
std::vector< TDetectorHit * > fSuppressedHits
Definition TFippsLaBr.h:77
static TVector3 gPosition[9]
! Position of each detectir
Definition TFippsLaBr.h:21
void SetSuppressionCriterion(std::function< bool(const TDetectorHit *, const TDetectorHit *)> criterion)
Definition TFippsLaBr.h:49
~TFippsLaBr() override
Short_t GetSuppressedMultiplicity(const TBgo *fBgo)
Bool_t TestBitNumber(const ELaBrBits bit) const
Definition TFippsLaBr.h:85
bool IsSuppressed() const
void SetBitNumber(const ELaBrBits bit, const bool set) const
Definition TFippsLaBr.h:84
void AddFragment(const std::shared_ptr< const TFragment > &, TChannel *) override
!
TTransientBits< UChar_t > fLaBrBits
Definition TFippsLaBr.h:81
TFippsLaBr & operator=(const TFippsLaBr &)
!
static std::function< bool(const TDetectorHit *, const TDetectorHit *)> fSuppressionCriterion
Definition TFippsLaBr.h:75
void Copy(TObject &rhs) const override
void Print(Option_t *opt="") const override
!
void Clear(Option_t *opt="") override
!
TFippsLaBrHit * GetLaBrHit(const int &i) const
Definition TFippsLaBr.h:46
TFippsLaBrHit * GetSuppressedHit(const int &i)
!
bool SuppressionCriterion(const TDetectorHit *hit, const TDetectorHit *bgoHit) override
Definition TFippsLaBr.h:55
void ResetSuppressed()
std::function< bool(const TDetectorHit *, const TDetectorHit *)> GetSuppressionCriterion() const
Definition TFippsLaBr.h:53
void BuildHits() override
!
Definition TFippsLaBr.h:67
void SetBit(T bit, Bool_t flag)
Bool_t TestBit(T bit) const