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

Detailed Description

Definition at line 15 of file TS3.h.

Public Types

enum class  ES3Bits {
  kPixelsSet = BIT(0) , kBit1 = BIT(1) , kBit2 = BIT(2) , kBit3 = BIT(3) ,
  kBit4 = BIT(4) , kBit5 = BIT(5) , kBit6 = BIT(6) , kBit7 = BIT(7)
}
 
enum class  ES3GlobalBits { kPreSector = BIT(0) , kMultHit = BIT(1) , kKeepShared = BIT(2) , kGBit3 = BIT(3) }
 

Public Member Functions

 TS3 ()
 
 TS3 (const TS3 &)
 
 TS3 (TS3 &&) noexcept=default
 
 ~TS3 () override=default
 
void AddFragment (const std::shared_ptr< const TFragment > &, TChannel *) override
 
virtual void AddHit (TDetectorHit *hit)
 
void BuildHits () override
 
void BuildPixels ()
 
void Clear (Option_t *opt="all") override
 
void ClearTransients () override
 
void Copy (TObject &) const override
 
virtual TDetectorHitGetHit (const int &index) const
 
virtual const std::vector< TDetectorHit * > & GetHitVector () const
 
virtual Short_t GetMultiplicity () const
 
TS3HitGetPixelHit (const int &i)
 
Int_t GetPixelMultiplicity ()
 
TS3HitGetRingHit (const int &i)
 
Short_t GetRingMultiplicity () const
 
TS3HitGetS3Hit (const int &i) const
 
TS3HitGetSectorHit (const int &i)
 
Short_t GetSectorMultiplicity () const
 
std::vector< TDetectorHit * > & Hits ()
 
const std::vector< TDetectorHit * > & Hits () const
 
virtual bool NoHits () const
 
TS3operator= (const TS3 &)
 
TS3operator= (TS3 &&) noexcept=default
 
bool PixelsSet () const
 
void Print (Option_t *opt="") const override
 
void Print (std::ostream &out) const override
 
void ResetRingsSectors ()
 
void SetFrontBackEnergy (double de)
 
void SetFrontBackEOffset (double de)
 
void SetFrontBackTime (int time)
 
void SetPixels (bool flag=true)
 
void SetTargetDistance (double dist)
 

Static Public Member Functions

static TVector3 GetPosition (int ring, int sector, bool smear=false)
 
static TVector3 GetPosition (int ring, int sector, double offsetphi, double offsetZ, bool sectorsdownstream, bool smear=false)
 
static bool KeepShared ()
 
static bool MultiHit ()
 
static bool PreferenceSector (bool set=true)
 
static bool SectorPreference ()
 
static bool SetKeepShared (bool set=true)
 
static bool SetMultiHit (bool set=true)
 

Private Member Functions

void ClearStatus ()
 
void SetBitNumber (ES3Bits bit, Bool_t set=true)
 
Bool_t TestBitNumber (ES3Bits bit) const
 

Static Private Member Functions

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

Private Attributes

std::vector< TDetectorHit * > fHits
 
TTransientBits< UChar_t > fS3Bits
 
std::vector< TS3HitfS3PixelHits
 
std::vector< TS3HitfS3RingHits
 
std::vector< TS3HitfS3SectorHits
 

Static Private Attributes

static double fFrontBackEnergy = 0.9
 
static double fFrontBackOffset = 0
 
static Int_t fFrontBackTime = 75
 
static TTransientBits< UShort_t > fGlobalS3Bits = TTransientBits<UShort_t>(static_cast<std::underlying_type<TS3::ES3GlobalBits>::type>(TS3::ES3GlobalBits::kMultHit))
 
static double fInnerDiameter = 22.
 
static double fOffsetPhiCon = 0.5 * TMath::Pi()
 
static double fOffsetPhiSet
 
static double fOuterDiameter = 70.
 
static int fRingNumber = 24
 
static int fSectorNumber = 32
 
static double fTargetDistance = 31.
 
+ Inheritance diagram for TS3:
+ Collaboration diagram for TS3:

Member Enumeration Documentation

◆ ES3Bits

enum class TS3::ES3Bits
strong
Enumerator
kPixelsSet 
kBit1 
kBit2 
kBit3 
kBit4 
kBit5 
kBit6 
kBit7 

Definition at line 17 of file TS3.h.

◆ ES3GlobalBits

enum class TS3::ES3GlobalBits
strong
Enumerator
kPreSector 

Preference sector energy when building pixels.

kMultHit 

Attempt to reconstruct multi strip-hit events.

kKeepShared 

When kMultHit, reconstruct rather than discard charge sharing.

kGBit3 

Definition at line 28 of file TS3.h.

Constructor & Destructor Documentation

◆ TS3() [1/3]

TS3::TS3 ( )

Definition at line 26 of file TS3.cxx.

References Clear().

◆ TS3() [2/3]

TS3::TS3 ( const TS3 & rhs)

Definition at line 37 of file TS3.cxx.

References Copy().

◆ TS3() [3/3]

TS3::TS3 ( TS3 && )
defaultnoexcept

◆ ~TS3()

TS3::~TS3 ( )
overridedefault

Member Function Documentation

◆ AddFragment()

void TS3::AddFragment ( const std::shared_ptr< const TFragment > & frag,
TChannel * chan )
overridevirtual

!

This function creates TS3Hits for each fragment and stores them in separate front and back vectors

Reimplemented from TDetector.

Definition at line 50 of file TS3.cxx.

References TGRSIOptions::AnalysisOptions(), TMnemonic::CollectedCharge(), fS3RingHits, fS3SectorHits, TChannel::GetMnemonic(), TMnemonic::kN, TS3Hit::SetRingNumber(), TS3Hit::SetSectorNumber(), and TS3Hit::SetWavefit().

◆ AddHit()

◆ BuildHits()

void TS3::BuildHits ( )
inlineoverridevirtual

no need to build any hits, everything already done in AddFragment

Reimplemented from TDetector.

Definition at line 45 of file TS3.h.

◆ BuildPixels()

void TS3::BuildPixels ( )

Loop over two vectors and build energy+time matching hits

If we have parts of hit left here they are possibly a shared strip hit not easy singles

Definition at line 96 of file TS3.cxx.

References fFrontBackEnergy, fFrontBackOffset, fFrontBackTime, fS3Bits, fS3PixelHits, fS3RingHits, fS3SectorHits, fSectorNumber, KeepShared(), kPixelsSet, MultiHit(), SectorPreference(), SetBitNumber(), TS3Hit::SetRingNumber(), TS3Hit::SetSectorNumber(), and TTransientBits< T >::TestBit().

Referenced by GetPixelMultiplicity().

◆ Clear()

void TS3::Clear ( Option_t * opt = "all")
override

!

Definition at line 417 of file TS3.cxx.

References TDetector::Clear(), fS3PixelHits, fS3RingHits, fS3SectorHits, SetMultiHit(), and SetPixels().

Referenced by TS3().

◆ ClearStatus()

void TS3::ClearStatus ( )
inlineprivate

Definition at line 128 of file TS3.h.

References fS3Bits.

◆ ClearTransients()

void TS3::ClearTransients ( )
inlineoverridevirtual

!

Reimplemented from TDetector.

Definition at line 103 of file TS3.h.

References fS3Bits, fS3PixelHits, fS3RingHits, and fS3SectorHits.

◆ Copy()

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

Definition at line 42 of file TS3.cxx.

References TDetector::Copy(), fS3PixelHits, fS3RingHits, and fS3SectorHits.

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

◆ GetHit()

◆ GetHitVector()

◆ GetMultiplicity()

◆ GetPixelHit()

TS3Hit * TS3::GetPixelHit ( const int & i)

Definition at line 395 of file TS3.cxx.

References fS3PixelHits, and GetPixelMultiplicity().

◆ GetPixelMultiplicity()

Int_t TS3::GetPixelMultiplicity ( )

Definition at line 86 of file TS3.cxx.

References BuildPixels(), and fS3PixelHits.

Referenced by GetPixelHit().

◆ GetPosition() [1/2]

TVector3 TS3::GetPosition ( int ring,
int sector,
bool smear = false )
static

◆ GetPosition() [2/2]

TVector3 TS3::GetPosition ( int ring,
int sector,
double offsetphi,
double offsetZ,
bool sectorsdownstream,
bool smear = false )
static

Definition at line 332 of file TS3.cxx.

References fInnerDiameter, fOffsetPhiCon, fOuterDiameter, fRingNumber, and fSectorNumber.

◆ GetRingHit()

TS3Hit * TS3::GetRingHit ( const int & i)

Definition at line 375 of file TS3.cxx.

References fS3RingHits, and GetRingMultiplicity().

◆ GetRingMultiplicity()

Short_t TS3::GetRingMultiplicity ( ) const
inline

Definition at line 47 of file TS3.h.

References fS3RingHits.

Referenced by GetRingHit().

◆ GetS3Hit()

TS3Hit * TS3::GetS3Hit ( const int & i) const
inline

Definition at line 67 of file TS3.h.

References TDetector::GetHit().

◆ GetSectorHit()

TS3Hit * TS3::GetSectorHit ( const int & i)

Definition at line 385 of file TS3.cxx.

References fS3SectorHits, and GetSectorMultiplicity().

◆ GetSectorMultiplicity()

Short_t TS3::GetSectorMultiplicity ( ) const
inline

Definition at line 48 of file TS3.h.

References fS3SectorHits.

Referenced by GetSectorHit().

◆ 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.

◆ KeepShared()

static bool TS3::KeepShared ( )
inlinestatic

!

Definition at line 89 of file TS3.h.

References kKeepShared, and TestGlobalBit().

Referenced by BuildPixels().

◆ MultiHit()

static bool TS3::MultiHit ( )
inlinestatic

!

Definition at line 83 of file TS3.h.

References kMultHit, and TestGlobalBit().

Referenced by BuildPixels().

◆ NoHits()

virtual bool TDetector::NoHits ( ) const
inlinevirtualinherited

◆ operator=() [1/2]

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

Definition at line 31 of file TS3.cxx.

References Copy().

◆ operator=() [2/2]

TS3 & TS3::operator= ( TS3 && )
defaultnoexcept

◆ PixelsSet()

bool TS3::PixelsSet ( ) const
inline

Definition at line 91 of file TS3.h.

References kPixelsSet, and TestBitNumber().

◆ PreferenceSector()

static bool TS3::PreferenceSector ( bool set = true)
inlinestatic

!

Definition at line 72 of file TS3.h.

References kPreSector, and SetGlobalBit().

◆ Print() [1/2]

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

!

Definition at line 405 of file TS3.cxx.

References Print().

Referenced by Print().

◆ Print() [2/2]

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

!

Reimplemented from TDetector.

Definition at line 410 of file TS3.cxx.

◆ ResetRingsSectors()

void TS3::ResetRingsSectors ( )

Definition at line 364 of file TS3.cxx.

References fS3RingHits, and fS3SectorHits.

◆ SectorPreference()

static bool TS3::SectorPreference ( )
inlinestatic

!

Definition at line 77 of file TS3.h.

References kPreSector, and TestGlobalBit().

Referenced by BuildPixels().

◆ SetBitNumber()

void TS3::SetBitNumber ( ES3Bits bit,
Bool_t set = true )
private

Definition at line 80 of file TS3.cxx.

References fS3Bits, and TTransientBits< T >::SetBit().

Referenced by BuildPixels(), and SetPixels().

◆ SetFrontBackEnergy()

void TS3::SetFrontBackEnergy ( double de)
inline

Set fractional allowed energy difference.

Definition at line 51 of file TS3.h.

References fFrontBackEnergy, and SetPixels().

◆ SetFrontBackEOffset()

void TS3::SetFrontBackEOffset ( double de)
inline

Set fractional allowed energy difference.

Definition at line 56 of file TS3.h.

References fFrontBackOffset, and SetPixels().

◆ SetFrontBackTime()

void TS3::SetFrontBackTime ( int time)
inline

Set absolute allow time difference.

Definition at line 61 of file TS3.h.

References fFrontBackTime, and SetPixels().

◆ SetGlobalBit()

static void TS3::SetGlobalBit ( ES3GlobalBits bit,
Bool_t set = true )
inlinestaticprivate

Definition at line 133 of file TS3.h.

References fGlobalS3Bits, and TTransientBits< T >::SetBit().

Referenced by PreferenceSector(), SetKeepShared(), and SetMultiHit().

◆ SetKeepShared()

static bool TS3::SetKeepShared ( bool set = true)
inlinestatic

!

Definition at line 84 of file TS3.h.

References kKeepShared, and SetGlobalBit().

◆ SetMultiHit()

static bool TS3::SetMultiHit ( bool set = true)
inlinestatic

!

Definition at line 78 of file TS3.h.

References kMultHit, and SetGlobalBit().

Referenced by Clear().

◆ SetPixels()

void TS3::SetPixels ( bool flag = true)
inline

Definition at line 92 of file TS3.h.

References kPixelsSet, and SetBitNumber().

Referenced by Clear(), SetFrontBackEnergy(), SetFrontBackEOffset(), and SetFrontBackTime().

◆ SetTargetDistance()

void TS3::SetTargetDistance ( double dist)
inline

Definition at line 99 of file TS3.h.

References fTargetDistance.

◆ TestBitNumber()

Bool_t TS3::TestBitNumber ( ES3Bits bit) const
inlineprivate

Definition at line 130 of file TS3.h.

References fS3Bits, and TTransientBits< T >::TestBit().

Referenced by PixelsSet().

◆ TestGlobalBit()

static Bool_t TS3::TestGlobalBit ( ES3GlobalBits bit)
inlinestaticprivate

Definition at line 134 of file TS3.h.

References fGlobalS3Bits, and TTransientBits< T >::TestBit().

Referenced by KeepShared(), MultiHit(), and SectorPreference().

Member Data Documentation

◆ fFrontBackEnergy

double TS3::fFrontBackEnergy = 0.9
staticprivate

!

Definition at line 149 of file TS3.h.

Referenced by BuildPixels(), and SetFrontBackEnergy().

◆ fFrontBackOffset

double TS3::fFrontBackOffset = 0
staticprivate

!

Definition at line 150 of file TS3.h.

Referenced by BuildPixels(), and SetFrontBackEOffset().

◆ fFrontBackTime

Int_t TS3::fFrontBackTime = 75
staticprivate

!

Definition at line 148 of file TS3.h.

Referenced by BuildPixels(), and SetFrontBackTime().

◆ fGlobalS3Bits

TTransientBits< UShort_t > TS3::fGlobalS3Bits = TTransientBits<UShort_t>(static_cast<std::underlying_type<TS3::ES3GlobalBits>::type>(TS3::ES3GlobalBits::kMultHit))
staticprivate

Global Bit.

Definition at line 132 of file TS3.h.

Referenced by SetGlobalBit(), and TestGlobalBit().

◆ fHits

◆ fInnerDiameter

double TS3::fInnerDiameter = 22.
staticprivate

!

Definition at line 144 of file TS3.h.

Referenced by GetPosition().

◆ fOffsetPhiCon

double TS3::fOffsetPhiCon = 0.5 * TMath::Pi()
staticprivate

!

Definition at line 140 of file TS3.h.

Referenced by GetPosition().

◆ fOffsetPhiSet

double TS3::fOffsetPhiSet
staticprivate
Initial value:
=
-22.5 * TMath::Pi() / 180.

!

Definition at line 141 of file TS3.h.

Referenced by GetPosition().

◆ fOuterDiameter

double TS3::fOuterDiameter = 70.
staticprivate

!

Definition at line 143 of file TS3.h.

Referenced by GetPosition().

◆ fRingNumber

int TS3::fRingNumber = 24
staticprivate

for geometery

!

Definition at line 137 of file TS3.h.

Referenced by GetPosition().

◆ fS3Bits

TTransientBits<UChar_t> TS3::fS3Bits
private

flags for transient members

Definition at line 127 of file TS3.h.

Referenced by BuildPixels(), ClearStatus(), ClearTransients(), SetBitNumber(), and TestBitNumber().

◆ fS3PixelHits

std::vector<TS3Hit> TS3::fS3PixelHits
private

! transient vector to hold the on-the-fly calculated pixel hits

Definition at line 125 of file TS3.h.

Referenced by BuildPixels(), Clear(), ClearTransients(), Copy(), GetPixelHit(), and GetPixelMultiplicity().

◆ fS3RingHits

std::vector<TS3Hit> TS3::fS3RingHits
private

vector to store hits of the ring side

Definition at line 123 of file TS3.h.

Referenced by AddFragment(), BuildPixels(), Clear(), ClearTransients(), Copy(), GetRingHit(), GetRingMultiplicity(), and ResetRingsSectors().

◆ fS3SectorHits

std::vector<TS3Hit> TS3::fS3SectorHits
private

vector to store hits of the sector side

Definition at line 124 of file TS3.h.

Referenced by AddFragment(), BuildPixels(), Clear(), ClearTransients(), Copy(), GetSectorHit(), GetSectorMultiplicity(), and ResetRingsSectors().

◆ fSectorNumber

int TS3::fSectorNumber = 32
staticprivate

!

Definition at line 138 of file TS3.h.

Referenced by BuildPixels(), and GetPosition().

◆ fTargetDistance

double TS3::fTargetDistance = 31.
staticprivate

!

Definition at line 145 of file TS3.h.

Referenced by GetPosition(), and SetTargetDistance().