GRSISort
Created by P.C. Bender
Developement Team: P.C. Bender, R. Dunlop, V. Bildstein
An extension of the ROOT analysis Framework
TS3 Class Reference

Definition at line 15 of file TS3.h.

Public Types

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

Public Member Functions

 TS3 ()
 
 TS3 (const TS3 &)
 
 ~TS3 () override
 
void AddFragment (const std::shared_ptr< const TFragment > &, TChannel *) override
 
void BuildHits () override
 
void BuildPixels ()
 
void Clear (Option_t *opt="all") override
 
void ClearTransients () override
 
void Copy (TObject &) const override
 
virtual TDetectorHitGetHit (const int &) 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
 
TS3operator= (const TS3 &)
 
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)
 

Protected Attributes

std::vector< TDetectorHit * > fHits
 

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

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 > fgS3Bits = 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.
 

#include <TS3.h>

+ Inheritance diagram for TS3:
+ Collaboration diagram for TS3:

Member Enumeration Documentation

◆ ES3Bits

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

Definition at line 17 of file TS3.h.

◆ ES3GlobalBits

enum 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/2]

TS3::TS3 ( )

Definition at line 30 of file TS3.cxx.

References Clear().

◆ TS3() [2/2]

TS3::TS3 ( const TS3 rhs)

Definition at line 43 of file TS3.cxx.

References Copy().

◆ ~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 56 of file TS3.cxx.

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

◆ BuildHits()

void TS3::BuildHits ( )
inlineoverridevirtual

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

Reimplemented from TDetector.

Definition at line 42 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 102 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 420 of file TS3.cxx.

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

Referenced by TS3().

◆ ClearStatus()

void TS3::ClearStatus ( )
inlineprivate

Definition at line 126 of file TS3.h.

References fS3Bits.

◆ ClearTransients()

void TS3::ClearTransients ( )
inlineoverridevirtual

!

Reimplemented from TDetector.

Definition at line 100 of file TS3.h.

References fS3Bits, fS3PixelHits, fS3RingHits, and fS3SectorHits.

◆ Copy()

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

!

Reimplemented from TDetector.

Definition at line 48 of file TS3.cxx.

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

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

◆ GetHit()

◆ GetHitVector()

◆ GetMultiplicity()

◆ GetPixelHit()

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

Definition at line 398 of file TS3.cxx.

References fS3PixelHits, and GetPixelMultiplicity().

◆ GetPixelMultiplicity()

Int_t TS3::GetPixelMultiplicity ( )

Definition at line 92 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

Definition at line 331 of file TS3.cxx.

References fOffsetPhiSet, and fTargetDistance.

Referenced by TS3Hit::GetPosition().

◆ GetPosition() [2/2]

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

Definition at line 336 of file TS3.cxx.

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

◆ GetRingHit()

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

Definition at line 378 of file TS3.cxx.

References fS3RingHits, and GetRingMultiplicity().

◆ GetRingMultiplicity()

Short_t TS3::GetRingMultiplicity ( ) const
inline

Definition at line 44 of file TS3.h.

References fS3RingHits.

Referenced by GetRingHit().

◆ GetS3Hit()

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

Definition at line 64 of file TS3.h.

References TDetector::GetHit().

◆ GetSectorHit()

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

Definition at line 388 of file TS3.cxx.

References fS3SectorHits, and GetSectorMultiplicity().

◆ GetSectorMultiplicity()

Short_t TS3::GetSectorMultiplicity ( ) const
inline

Definition at line 45 of file TS3.h.

References fS3SectorHits.

Referenced by GetSectorHit().

◆ KeepShared()

static bool TS3::KeepShared ( )
inlinestatic

!

Definition at line 86 of file TS3.h.

References kKeepShared, and TestGlobalBit().

Referenced by BuildPixels().

◆ MultiHit()

static bool TS3::MultiHit ( )
inlinestatic

!

Definition at line 80 of file TS3.h.

References kMultHit, and TestGlobalBit().

Referenced by BuildPixels().

◆ operator=()

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

Definition at line 37 of file TS3.cxx.

References Copy().

◆ PixelsSet()

bool TS3::PixelsSet ( ) const
inline

Definition at line 88 of file TS3.h.

References kPixelsSet, and TestBitNumber().

◆ PreferenceSector()

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

!

Definition at line 69 of file TS3.h.

References kPreSector, and SetGlobalBit().

◆ Print() [1/2]

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

!

Definition at line 408 of file TS3.cxx.

◆ Print() [2/2]

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

!

Reimplemented from TDetector.

Definition at line 413 of file TS3.cxx.

◆ ResetRingsSectors()

void TS3::ResetRingsSectors ( )

Definition at line 367 of file TS3.cxx.

References fS3RingHits, and fS3SectorHits.

◆ SectorPreference()

static bool TS3::SectorPreference ( )
inlinestatic

!

Definition at line 74 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 86 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 48 of file TS3.h.

References fFrontBackEnergy, and SetPixels().

◆ SetFrontBackEOffset()

void TS3::SetFrontBackEOffset ( double  de)
inline

Set fractional allowed energy difference.

Definition at line 53 of file TS3.h.

References fFrontBackOffset, and SetPixels().

◆ SetFrontBackTime()

void TS3::SetFrontBackTime ( int  time)
inline

Set absolute allow time difference.

Definition at line 58 of file TS3.h.

References fFrontBackTime, and SetPixels().

◆ SetGlobalBit()

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

Definition at line 131 of file TS3.h.

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

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

◆ SetKeepShared()

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

!

Definition at line 81 of file TS3.h.

References kKeepShared, and SetGlobalBit().

◆ SetMultiHit()

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

!

Definition at line 75 of file TS3.h.

References kMultHit, and SetGlobalBit().

Referenced by Clear().

◆ SetPixels()

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

Definition at line 89 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 96 of file TS3.h.

References fTargetDistance.

◆ TestBitNumber()

Bool_t TS3::TestBitNumber ( ES3Bits  bit) const
inlineprivate

Definition at line 128 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 132 of file TS3.h.

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

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

Member Data Documentation

◆ fFrontBackEnergy

double TS3::fFrontBackEnergy = 0.9
staticprivate

!

Definition at line 147 of file TS3.h.

Referenced by BuildPixels(), and SetFrontBackEnergy().

◆ fFrontBackOffset

double TS3::fFrontBackOffset = 0
staticprivate

!

Definition at line 148 of file TS3.h.

Referenced by BuildPixels(), and SetFrontBackEOffset().

◆ fFrontBackTime

Int_t TS3::fFrontBackTime = 75
staticprivate

!

Definition at line 146 of file TS3.h.

Referenced by BuildPixels(), and SetFrontBackTime().

◆ fgS3Bits

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

Global Bit.

Definition at line 130 of file TS3.h.

Referenced by SetGlobalBit(), and TestGlobalBit().

◆ fHits

std::vector<TDetectorHit*> TDetector::fHits
protectedinherited

Definition at line 72 of file TDetector.h.

Referenced by TSiLi::AddCluster(), TEaglePulser::AddFragment(), TFippsPulser::AddFragment(), TGenericDetector::AddFragment(), TPaces::AddFragment(), TTdrSiLi::AddFragment(), TBgo::AddFragment(), TSiLi::AddFragment(), TTip::AddFragment(), TSceptar::AddFragment(), TTdrPlastic::AddFragment(), TTAC::AddFragment(), TFippsTAC::AddFragment(), TEagle::AddFragment(), TDescant::AddFragment(), TZeroDegree::AddFragment(), TTdrClover::AddFragment(), TTdrTigress::AddFragment(), TFipps::AddFragment(), TIfin::AddFragment(), TTrific::AddFragment(), TLaBr::AddFragment(), TFippsLaBr::AddFragment(), TTigress::AddFragment(), TEmma::BuildHits(), TCSM::BuildHits(), TSharc::BuildHits(), TTigress::BuildHits(), TSharc::Clear(), TDetector::Clear(), TEmma::Clear(), TTrific::Clear(), TDetector::ClearTransients(), TDetector::Copy(), TSiLi::GetAddbackMultiplicity(), TTigress::GetAddbackMultiplicity(), TFipps::GetFippsHit(), TDetector::GetHit(), TDetector::GetHitVector(), TIfin::GetIfinHit(), TDetector::GetMultiplicity(), TTrific::GetMultiplicity(), TSharc::GetSize(), TFippsLaBr::GetSuppressedMultiplicity(), TLaBr::GetSuppressedMultiplicity(), TTdrTigress::GetSuppressedMultiplicity(), TTdrClover::GetSuppressedMultiplicity(), TSiLi::Print(), TTdrSiLi::Print(), TTAC::Print(), TPaces::Print(), TFippsTAC::Print(), TTip::Print(), TZeroDegree::Print(), TTdrPlastic::Print(), TSceptar::Print(), TEagle::Print(), TDetector::Print(), TDescant::Print(), TEmma::Print(), TFippsLaBr::Print(), TLaBr::Print(), TTrific::Print(), TTigress::Print(), TSiLi::UseFitCharge(), and TDetector::~TDetector().

◆ fInnerDiameter

double TS3::fInnerDiameter = 22.
staticprivate

!

Definition at line 142 of file TS3.h.

Referenced by GetPosition().

◆ fOffsetPhiCon

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

!

Definition at line 138 of file TS3.h.

Referenced by GetPosition().

◆ fOffsetPhiSet

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

!

Definition at line 139 of file TS3.h.

Referenced by GetPosition().

◆ fOuterDiameter

double TS3::fOuterDiameter = 70.
staticprivate

!

Definition at line 141 of file TS3.h.

Referenced by GetPosition().

◆ fRingNumber

int TS3::fRingNumber = 24
staticprivate

for geometery

!

Definition at line 135 of file TS3.h.

Referenced by GetPosition().

◆ fS3Bits

TTransientBits<UChar_t> TS3::fS3Bits
private

flags for transient members

Definition at line 125 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 123 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 121 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 122 of file TS3.h.

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

◆ fSectorNumber

int TS3::fSectorNumber = 32
staticprivate

!

Definition at line 136 of file TS3.h.

Referenced by BuildPixels(), and GetPosition().

◆ fTargetDistance

double TS3::fTargetDistance = 31.
staticprivate

!

Definition at line 143 of file TS3.h.

Referenced by GetPosition(), and SetTargetDistance().