GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TTigress Class Reference

Detailed Description

Definition at line 25 of file TTigress.h.

Public Types

enum class  ETigressBits {
  kAddbackSet = BIT(0) , kSuppression = BIT(1) , kBit2 = BIT(2) , kBit3 = BIT(3) ,
  kBit4 = BIT(4) , kBit5 = BIT(5) , kBit6 = BIT(6) , kBit7 = BIT(7)
}
 
enum class  ETigressGlobalBits {
  kSetBGOWave = BIT(0) , kSetCoreWave = BIT(1) , kSetSegWave = BIT(2) , kSetBGOHits = BIT(3) ,
  kForceCrystal = BIT(4) , kArrayBackPos = BIT(5) , kVectorsBuilt = BIT(6)
}
 

Public Member Functions

 TTigress ()
 
 TTigress (const TTigress &)
 
 TTigress (TTigress &&) noexcept=default
 
 ~TTigress () override=default
 
void AddBGO (TBgoHit &bgo)
 
void AddFragment (const std::shared_ptr< const TFragment > &, TChannel *) override
 
virtual void AddHit (TDetectorHit *hit)
 
void BuildHits () override
 
void Clear (Option_t *opt="") override
 
void ClearTransients () override
 
void Copy (TObject &) const override
 
std::function< bool(TDetectorHit *, TDetectorHit *)> GetAddbackCriterion () const
 
TTigressHitGetAddbackHit (const int &)
 
Int_t GetAddbackMultiplicity ()
 
TBgoHitGetBGO (int &i)
 
TBgoHit GetBGO (int &i) const
 
Short_t GetBGOMultiplicity () const
 
virtual TDetectorHitGetHit (const int &index) const
 
virtual const std::vector< TDetectorHit * > & GetHitVector () const
 
virtual Short_t GetMultiplicity () const
 
UShort_t GetNAddbackFrags (size_t idx) const
 
int GetNBGOs () const
 
std::function< bool(TDetectorHit *, TBgoHit &)> GetSuppressionCriterion () const
 
TTigressHitGetTigressHit (const int &i) const
 
std::vector< TDetectorHit * > & Hits ()
 
const std::vector< TDetectorHit * > & Hits () const
 
virtual bool NoHits () const
 
TTigressoperator= (const TTigress &)
 
TTigressoperator= (TTigress &&) noexcept=default
 
void Print (Option_t *opt="") const override
 
void Print (std::ostream &out) const override
 
void ResetAddback ()
 
void SetAddbackCriterion (std::function< bool(TDetectorHit *, TDetectorHit *)> criterion)
 
void SetSuppressionCriterion (std::function< bool(TDetectorHit *, TBgoHit &)> criterion)
 

Static Public Member Functions

static bool GetArrayBackPos ()
 
static bool GetBGOWave ()
 
static bool GetCoreWave ()
 
static double GetFaceDistance ()
 
static bool GetForceCrystal ()
 
static TVector3 GetPosition (const TTigressHit &, double dist=0., bool smear=false)
 
static TVector3 GetPosition (int DetNbr, int CryNbr, int SegNbr, double dist=0., bool smear=false)
 
static bool GetSegmentWave ()
 
static bool GetVectorsBuilt ()
 
static bool SetArrayBackPos (bool set=true)
 
static bool SetBGOWave (bool set=true)
 
static bool SetCoreWave (bool set=true)
 
static bool SetForceCrystal (bool set=true)
 
static void SetRadialOffset (double offset)
 
static bool SetSegmentWave (bool set=true)
 
static void SetTargetOffset (double offset)
 

Static Public Attributes

static std::array< std::array< std::array< bool, 5 >, 4 >, 4 > fBGOSuppression
 

Static Private Member Functions

static void BuildVectors ()
 
static void SetGlobalBit (ETigressGlobalBits bit, Bool_t set=true)
 
static Bool_t TestGlobalBit (ETigressGlobalBits bit)
 

Private Attributes

std::vector< UShort_t > fAddbackFrags
 
std::vector< TDetectorHit * > fAddbackHits
 
std::vector< TBgoHitfBgos
 
std::vector< TDetectorHit * > fHits
 
TTransientBits< UShort_t > fTigressBits
 
std::vector< std::vector< std::shared_ptr< const TFragment > > > SegmentFragments
 

Static Private Attributes

static std::function< bool(TDetectorHit *, TDetectorHit *)> fAddbackCriterion = DefaultAddback
 
static std::array< std::array< TVector3, 2 >, 17 > fCloverCross
 
static std::array< TVector3, 17 > fCloverRadial
 
static std::array< std::array< std::array< double, 3 >, 9 >, 17 > fGeBluePosition
 
static std::array< std::array< std::array< double, 3 >, 9 >, 17 > fGeBluePositionBack
 
static std::array< std::array< std::array< double, 3 >, 9 >, 17 > fGeGreenPosition
 
static std::array< std::array< std::array< double, 3 >, 9 >, 17 > fGeGreenPositionBack
 
static std::array< std::array< std::array< double, 3 >, 9 >, 17 > fGeRedPosition
 
static std::array< std::array< std::array< double, 3 >, 9 >, 17 > fGeRedPositionBack
 
static std::array< std::array< std::array< double, 3 >, 9 >, 17 > fGeWhitePosition
 
static std::array< std::array< std::array< double, 3 >, 9 >, 17 > fGeWhitePositionBack
 
static TTransientBits< UShort_t > fGlobalTigressBits
 
static std::array< std::array< std::array< std::array< TVector3, 9 >, 4 >, 17 >, 2 > fPositionVectors
 
static double fRadialOffset = 0.
 
static std::function< bool(TDetectorHit *, TBgoHit &)> fSuppressionCriterion = DefaultSuppression
 
static double fTargetOffset = 0.
 
+ Inheritance diagram for TTigress:
+ Collaboration diagram for TTigress:

Member Enumeration Documentation

◆ ETigressBits

enum class TTigress::ETigressBits
strong
Enumerator
kAddbackSet 
kSuppression 
kBit2 
kBit3 
kBit4 
kBit5 
kBit6 
kBit7 

Definition at line 27 of file TTigress.h.

◆ ETigressGlobalBits

enum class TTigress::ETigressGlobalBits
strong
Enumerator
kSetBGOWave 
kSetCoreWave 
kSetSegWave 
kSetBGOHits 
kForceCrystal 
kArrayBackPos 
kVectorsBuilt 

Definition at line 38 of file TTigress.h.

Constructor & Destructor Documentation

◆ TTigress() [1/3]

TTigress::TTigress ( )

Definition at line 78 of file TTigress.cxx.

References Clear().

◆ TTigress() [2/3]

TTigress::TTigress ( const TTigress & rhs)

Definition at line 83 of file TTigress.cxx.

References Copy().

◆ TTigress() [3/3]

TTigress::TTigress ( TTigress && )
defaultnoexcept

◆ ~TTigress()

TTigress::~TTigress ( )
overridedefault

Member Function Documentation

◆ AddBGO()

void TTigress::AddBGO ( TBgoHit & bgo)
inline

!

Definition at line 61 of file TTigress.h.

References fBgos.

◆ AddFragment()

◆ AddHit()

◆ BuildHits()

◆ BuildVectors()

◆ Clear()

void TTigress::Clear ( Option_t * opt = "")
override

!

Definition at line 100 of file TTigress.cxx.

References TDetector::Clear(), fAddbackFrags, fAddbackHits, fBgos, and fTigressBits.

Referenced by TTigress().

◆ ClearTransients()

void TTigress::ClearTransients ( )
inlineoverridevirtual

!

Reimplemented from TDetector.

Definition at line 77 of file TTigress.h.

References TDetector::ClearTransients(), and fTigressBits.

◆ Copy()

void TTigress::Copy ( TObject & rhs) const
override

!

Definition at line 88 of file TTigress.cxx.

References TDetector::Copy(), fAddbackFrags, fAddbackHits, fBgos, and fTigressBits.

Referenced by TTigress(), and operator=().

◆ GetAddbackCriterion()

std::function< bool(TDetectorHit *, TDetectorHit *)> TTigress::GetAddbackCriterion ( ) const
inline

Definition at line 89 of file TTigress.h.

References fAddbackCriterion.

◆ GetAddbackHit()

TTigressHit * TTigress::GetAddbackHit ( const int & i)

Get the ith addback hit. This function calls GetAddbackMultiplicity to check the range of the index. This automatically calculates all addback hits if they haven't been calculated before.

Definition at line 176 of file TTigress.cxx.

References fAddbackHits, and GetAddbackMultiplicity().

◆ GetAddbackMultiplicity()

◆ GetArrayBackPos()

static bool TTigress::GetArrayBackPos ( )
inlinestatic

!

Definition at line 170 of file TTigress.h.

References kArrayBackPos, and TestGlobalBit().

Referenced by GetFaceDistance(), and GetPosition().

◆ GetBGO() [1/2]

TBgoHit & TTigress::GetBGO ( int & i)
inline

!

Definition at line 65 of file TTigress.h.

References fBgos.

◆ GetBGO() [2/2]

TBgoHit TTigress::GetBGO ( int & i) const
inline

!

Definition at line 64 of file TTigress.h.

References fBgos.

◆ GetBGOMultiplicity()

Short_t TTigress::GetBGOMultiplicity ( ) const
inline

!

Definition at line 62 of file TTigress.h.

References fBgos.

◆ GetBGOWave()

static bool TTigress::GetBGOWave ( )
inlinestatic

!

Definition at line 168 of file TTigress.h.

References kSetBGOWave, and TestGlobalBit().

◆ GetCoreWave()

static bool TTigress::GetCoreWave ( )
inlinestatic

!

Definition at line 166 of file TTigress.h.

References kSetCoreWave, and TestGlobalBit().

◆ GetFaceDistance()

static double TTigress::GetFaceDistance ( )
inlinestatic

Definition at line 186 of file TTigress.h.

References GetArrayBackPos().

◆ GetForceCrystal()

static bool TTigress::GetForceCrystal ( )
inlinestatic

!

Definition at line 169 of file TTigress.h.

References kForceCrystal, and TestGlobalBit().

Referenced by DefaultAddback().

◆ GetHit()

◆ GetHitVector()

◆ GetMultiplicity()

◆ GetNAddbackFrags()

UShort_t TTigress::GetNAddbackFrags ( size_t idx) const

Definition at line 311 of file TTigress.cxx.

References fAddbackFrags.

◆ GetNBGOs()

int TTigress::GetNBGOs ( ) const
inline

!

Definition at line 63 of file TTigress.h.

References fBgos.

◆ GetPosition() [1/2]

TVector3 TTigress::GetPosition ( const TTigressHit & hit,
double dist = 0.,
bool smear = false )
static

◆ GetPosition() [2/2]

TVector3 TTigress::GetPosition ( int DetNbr,
int CryNbr,
int SegNbr,
double dist = 0.,
bool smear = false )
static

◆ GetSegmentWave()

static bool TTigress::GetSegmentWave ( )
inlinestatic

!

Definition at line 167 of file TTigress.h.

References kSetSegWave, and TestGlobalBit().

◆ GetSuppressionCriterion()

std::function< bool(TDetectorHit *, TBgoHit &)> TTigress::GetSuppressionCriterion ( ) const
inline

Definition at line 94 of file TTigress.h.

References fSuppressionCriterion.

◆ GetTigressHit()

TTigressHit * TTigress::GetTigressHit ( const int & i) const
inline

Definition at line 57 of file TTigress.h.

References TDetector::GetHit().

Referenced by AddFragment().

◆ GetVectorsBuilt()

static bool TTigress::GetVectorsBuilt ( )
inlinestatic

!

Definition at line 171 of file TTigress.h.

References kVectorsBuilt, and TestGlobalBit().

Referenced by GetPosition().

◆ Hits() [1/2]

◆ Hits() [2/2]

const std::vector< TDetectorHit * > & TDetector::Hits ( ) const
inlineinherited

Definition at line 79 of file TDetector.h.

References TDetector::fHits.

◆ NoHits()

virtual bool TDetector::NoHits ( ) const
inlinevirtualinherited

Definition at line 76 of file TDetector.h.

References TDetector::fHits.

Referenced by BuildHits(), GetAddbackMultiplicity(), and TLaBr::GetSuppressedMultiplicity().

◆ operator=() [1/2]

TTigress & TTigress::operator= ( const TTigress & rhs)

!

Definition at line 126 of file TTigress.cxx.

References Copy().

◆ operator=() [2/2]

TTigress & TTigress::operator= ( TTigress && )
defaultnoexcept

◆ Print() [1/2]

void TTigress::Print ( Option_t * opt = "") const
override

!

Definition at line 111 of file TTigress.cxx.

References Print().

Referenced by Print().

◆ Print() [2/2]

void TTigress::Print ( std::ostream & out) const
overridevirtual

!

Reimplemented from TDetector.

Definition at line 116 of file TTigress.cxx.

References TDetector::GetHit(), TDetector::GetMultiplicity(), and TDetectorHit::Print().

◆ ResetAddback()

void TTigress::ResetAddback ( )

!

Used to clear the addback hits. When playing back a tree, this must be called before building the new addback hits, otherwise, a copy of the old addback hits will be stored instead. This should have changed now, we're using the stored tigress bits to reset the addback

Definition at line 299 of file TTigress.cxx.

References fAddbackFrags, fAddbackHits, fTigressBits, kAddbackSet, and TTransientBits< T >::SetBit().

◆ SetAddbackCriterion()

void TTigress::SetAddbackCriterion ( std::function< bool(TDetectorHit *, TDetectorHit *)> criterion)
inline

Definition at line 84 of file TTigress.h.

References fAddbackCriterion.

◆ SetArrayBackPos()

static bool TTigress::SetArrayBackPos ( bool set = true)
inlinestatic

!

Definition at line 159 of file TTigress.h.

References BuildVectors(), kArrayBackPos, and SetGlobalBit().

◆ SetBGOWave()

static bool TTigress::SetBGOWave ( bool set = true)
inlinestatic

!

Definition at line 149 of file TTigress.h.

References kSetBGOWave, and SetGlobalBit().

◆ SetCoreWave()

static bool TTigress::SetCoreWave ( bool set = true)
inlinestatic

!

Definition at line 139 of file TTigress.h.

References kSetCoreWave, and SetGlobalBit().

◆ SetForceCrystal()

static bool TTigress::SetForceCrystal ( bool set = true)
inlinestatic

!

Definition at line 154 of file TTigress.h.

References kForceCrystal, and SetGlobalBit().

◆ SetGlobalBit()

static void TTigress::SetGlobalBit ( ETigressGlobalBits bit,
Bool_t set = true )
inlinestaticprivate

◆ SetRadialOffset()

static void TTigress::SetRadialOffset ( double offset)
inlinestatic

!

Definition at line 180 of file TTigress.h.

References BuildVectors(), and fRadialOffset.

◆ SetSegmentWave()

static bool TTigress::SetSegmentWave ( bool set = true)
inlinestatic

!

Definition at line 144 of file TTigress.h.

References kSetSegWave, and SetGlobalBit().

◆ SetSuppressionCriterion()

void TTigress::SetSuppressionCriterion ( std::function< bool(TDetectorHit *, TBgoHit &)> criterion)
inline

Definition at line 90 of file TTigress.h.

References fSuppressionCriterion.

◆ SetTargetOffset()

static void TTigress::SetTargetOffset ( double offset)
inlinestatic

!

Definition at line 175 of file TTigress.h.

References BuildVectors(), and fTargetOffset.

◆ TestGlobalBit()

static Bool_t TTigress::TestGlobalBit ( ETigressGlobalBits bit)
inlinestaticprivate

Member Data Documentation

◆ fAddbackCriterion

std::function< bool(TDetectorHit *, TDetectorHit *)> TTigress::fAddbackCriterion = DefaultAddback
staticprivate

Definition at line 100 of file TTigress.h.

Referenced by GetAddbackCriterion(), GetAddbackMultiplicity(), and SetAddbackCriterion().

◆ fAddbackFrags

std::vector<UShort_t> TTigress::fAddbackFrags
private

! Number of crystals involved in creating in the addback hit

Definition at line 131 of file TTigress.h.

Referenced by Clear(), Copy(), GetAddbackMultiplicity(), GetNAddbackFrags(), and ResetAddback().

◆ fAddbackHits

std::vector<TDetectorHit*> TTigress::fAddbackHits
private

! Used to create addback hits on the fly

Definition at line 130 of file TTigress.h.

Referenced by Clear(), Copy(), GetAddbackHit(), GetAddbackMultiplicity(), and ResetAddback().

◆ fBgos

std::vector<TBgoHit> TTigress::fBgos
private

◆ fBGOSuppression

std::array< std::array< std::array< bool, 5 >, 4 >, 4 > TTigress::fBGOSuppression
static
Initial value:
= {{{{{true, true, true, true, true},
{true, false, false, false, false},
{false, false, false, false, false},
{false, false, false, false, true}}},
{{{false, false, false, false, true},
{true, true, true, true, true},
{true, false, false, false, false},
{false, false, false, false, false}}},
{{{false, false, false, false, false},
{false, false, false, false, true},
{true, true, true, true, true},
{true, false, false, false, false}}},
{{{true, false, false, false, false},
{false, false, false, false, false},
{false, false, false, false, true},
{true, true, true, true, true}}}}}

!

Definition at line 1694 of file TTigress.h.

◆ fCloverCross

std::array< std::array< TVector3, 2 >, 17 > TTigress::fCloverCross
staticprivate

! clover perpendicular vectors, for smearing

Definition at line 113 of file TTigress.h.

Referenced by BuildVectors(), and GetPosition().

◆ fCloverRadial

std::array< TVector3, 17 > TTigress::fCloverRadial
staticprivate
Initial value:
= {TVector3(0., 0., 0.),
TVector3(0.9239, 0.3827, 1.),
TVector3(-0.3827, 0.9239, 1.),
TVector3(-0.9239, -0.3827, 1.),
TVector3(0.3827, -0.9239, 1.),
TVector3(0.9239, 0.3827, 0.),
TVector3(0.3827, 0.9239, 0.),
TVector3(-0.3827, 0.9239, 0.),
TVector3(-0.9239, 0.3827, 0.),
TVector3(-0.9239, -0.3827, 0.),
TVector3(-0.3827, -0.9239, 0.),
TVector3(0.3827, -0.9239, 0.),
TVector3(0.9239, -0.3827, 0.),
TVector3(0.9239, 0.3827, -1.),
TVector3(-0.3827, 0.9239, -1.),
TVector3(-0.9239, -0.3827, -1.),
TVector3(0.3827, -0.9239, -1.)}

! clover direction vectors

Definition at line 438 of file TTigress.h.

Referenced by BuildVectors().

◆ fGeBluePosition

std::array< std::array< std::array< double, 3 >, 9 >, 17 > TTigress::fGeBluePosition
staticprivate

! detector segment XYZ

Definition at line 456 of file TTigress.h.

Referenced by BuildVectors().

◆ fGeBluePositionBack

std::array< std::array< std::array< double, 3 >, 9 >, 17 > TTigress::fGeBluePositionBack
staticprivate

! detector segment XYZ

Definition at line 1075 of file TTigress.h.

Referenced by BuildVectors().

◆ fGeGreenPosition

std::array< std::array< std::array< double, 3 >, 9 >, 17 > TTigress::fGeGreenPosition
staticprivate

!

Definition at line 611 of file TTigress.h.

Referenced by BuildVectors().

◆ fGeGreenPositionBack

std::array< std::array< std::array< double, 3 >, 9 >, 17 > TTigress::fGeGreenPositionBack
staticprivate

!

Definition at line 1230 of file TTigress.h.

Referenced by BuildVectors().

◆ fGeRedPosition

std::array< std::array< std::array< double, 3 >, 9 >, 17 > TTigress::fGeRedPosition
staticprivate

!

Definition at line 766 of file TTigress.h.

Referenced by BuildVectors().

◆ fGeRedPositionBack

std::array< std::array< std::array< double, 3 >, 9 >, 17 > TTigress::fGeRedPositionBack
staticprivate

!

Definition at line 1385 of file TTigress.h.

Referenced by BuildVectors().

◆ fGeWhitePosition

std::array< std::array< std::array< double, 3 >, 9 >, 17 > TTigress::fGeWhitePosition
staticprivate

!

Definition at line 921 of file TTigress.h.

Referenced by BuildVectors().

◆ fGeWhitePositionBack

std::array< std::array< std::array< double, 3 >, 9 >, 17 > TTigress::fGeWhitePositionBack
staticprivate

!

Definition at line 1540 of file TTigress.h.

Referenced by BuildVectors().

◆ fGlobalTigressBits

TTransientBits< UShort_t > TTigress::fGlobalTigressBits
staticprivate

!

Definition at line 103 of file TTigress.h.

Referenced by SetGlobalBit(), and TestGlobalBit().

◆ fHits

◆ fPositionVectors

std::array< std::array< std::array< std::array< TVector3, 9 >, 4 >, 17 >, 2 > TTigress::fPositionVectors
staticprivate

!

Definition at line 110 of file TTigress.h.

Referenced by BuildVectors(), and GetPosition().

◆ fRadialOffset

double TTigress::fRadialOffset = 0.
staticprivate

!

Definition at line 107 of file TTigress.h.

Referenced by BuildVectors(), and SetRadialOffset().

◆ fSuppressionCriterion

std::function< bool(TDetectorHit *, TBgoHit &)> TTigress::fSuppressionCriterion = DefaultSuppression
staticprivate

Definition at line 101 of file TTigress.h.

Referenced by BuildHits(), GetSuppressionCriterion(), and SetSuppressionCriterion().

◆ fTargetOffset

double TTigress::fTargetOffset = 0.
staticprivate

!

Definition at line 106 of file TTigress.h.

Referenced by BuildVectors(), and SetTargetOffset().

◆ fTigressBits

TTransientBits<UShort_t> TTigress::fTigressBits
private

Definition at line 104 of file TTigress.h.

Referenced by Clear(), ClearTransients(), Copy(), GetAddbackMultiplicity(), and ResetAddback().

◆ SegmentFragments

std::vector<std::vector<std::shared_ptr<const TFragment> > > TTigress::SegmentFragments
private

Definition at line 99 of file TTigress.h.