The TIfin class defines the observables and algorithms used when analyzing IFIN data. It includes detector positions, add-back methods, etc.
Public Types | |
enum | EIfinBits { EIfinBits::kIsAddbackSet = 1<<0, EIfinBits::kIsCrossTalkSet = 1<<1, EIfinBits::kIsSuppressedSet = 1<<2, EIfinBits::kIsSuppressedAddbackSet = 1<<3, EIfinBits::kBit4 = 1<<4, EIfinBits::kBit5 = 1<<5, EIfinBits::kBit6 = 1<<6, EIfinBits::kBit7 = 1<<7 } |
Public Member Functions | |
TIfin () | |
TIfin (const TIfin &) | |
~TIfin () override | |
bool | AddbackCriterion (const TDetectorHit *hit1, const TDetectorHit *hit2) override |
void | AddFragment (const std::shared_ptr< const TFragment > &, TChannel *) override |
virtual void | BuildHits () |
void | Clear (Option_t *opt="all") override |
virtual void | ClearTransients () |
void | Copy (TObject &) const override |
void | FixCrossTalk () |
std::function< bool(const TDetectorHit *, const TDetectorHit *)> | GetAddbackCriterion () const |
TIfinHit * | GetAddbackHit (const int &i) |
Int_t | GetAddbackMultiplicity () |
virtual TDetectorHit * | GetHit (const int &) const |
virtual const std::vector< TDetectorHit * > & | GetHitVector () const |
TIfinHit * | GetIfinHit (const Int_t &i) |
virtual Short_t | GetMultiplicity () const |
UShort_t | GetNAddbackFrags (const size_t &idx) |
TIfinHit * | GetSuppressedAddbackHit (const int &i) |
Int_t | GetSuppressedAddbackMultiplicity (const TBgo *bgo) |
TIfinHit * | GetSuppressedHit (const int &i) |
Int_t | GetSuppressedMultiplicity (const TBgo *bgo) |
std::function< bool(const TDetectorHit *, const TDetectorHit *)> | GetSuppressionCriterion () const |
bool | IsAddbackSet () const |
Bool_t | IsCrossTalkSet () const |
bool | IsSuppressed () const |
bool | IsSuppressedAddbackSet () const |
TIfin & | operator= (const TIfin &) |
void | Print (Option_t *opt="") const override |
void | Print (std::ostream &out) const override |
void | ResetAddback () |
void | ResetFlags () const |
void | ResetSuppressed () |
void | ResetSuppressedAddback () |
void | SetAddbackCriterion (std::function< bool(const TDetectorHit *, const TDetectorHit *)> criterion) |
void | SetSuppressionCriterion (std::function< bool(const TDetectorHit *, const TDetectorHit *)> criterion) |
bool | SuppressionCriterion (const TDetectorHit *hit, const TDetectorHit *bgoHit) override |
Static Public Member Functions | |
static Double_t | CTCorrectedEnergy (const TIfinHit *const hit_to_correct, const TIfinHit *const other_hit, Bool_t time_constraint=true) |
static const char * | GetColorFromNumber (int number) |
static TVector3 | GetPosition (int DetNbr, int CryNbr=5, double dist=90.0) |
Static Public Attributes | |
static const Double_t | gCrossTalkPar [2][4][4] |
static const Double_t | gStrongCT [2] = {-0.02674, -0.000977} |
static const Double_t | gWeakCT [2] = {0.005663, -0.00028014} |
Protected Member Functions | |
template<class T > | |
void | CreateAddback (const std::vector< T *> &hits, std::vector< T *> &addbacks, std::vector< UShort_t > &nofFragments) |
template<class T > | |
void | CreateSuppressed (const TBgo *bgo, const std::vector< T *> &hits, std::vector< T *> &suppressedHits) |
template<class T > | |
void | CreateSuppressedAddback (const TBgo *bgo, const std::vector< T *> &hits, std::vector< T *> &addbacks, std::vector< UShort_t > &nofFragments) |
Protected Attributes | |
std::vector< TDetectorHit * > | fHits |
Private Member Functions | |
void | ClearStatus () const |
std::vector< UShort_t > & | GetAddbackFragVector () |
std::vector< TDetectorHit * > & | GetAddbackVector () |
std::vector< UShort_t > & | GetSuppressedAddbackFragVector () |
std::vector< TDetectorHit * > & | GetSuppressedAddbackVector () |
std::vector< TDetectorHit * > & | GetSuppressedVector () |
void | SetAddback (bool flag=true) const |
void | SetBitNumber (EIfinBits bit, Bool_t set) const |
void | SetCrossTalk (bool flag=true) const |
void | SetSuppressed (bool flag=true) const |
void | SetSuppressedAddback (bool flag=true) const |
Bool_t | TestBitNumber (EIfinBits bit) const |
Private Attributes | |
std::vector< UShort_t > | fAddbackFrags |
std::vector< TDetectorHit * > | fAddbackHits |
TTransientBits< UChar_t > | fIfinBits |
std::vector< UShort_t > | fSuppressedAddbackFrags |
std::vector< TDetectorHit * > | fSuppressedAddbackHits |
std::vector< TDetectorHit * > | fSuppressedHits |
Static Private Attributes | |
static std::function< bool(const TDetectorHit *, const TDetectorHit *)> | fAddbackCriterion = DefaultIfinAddback |
static std::function< bool(const TDetectorHit *, const TDetectorHit *)> | fSuppressionCriterion = DefaultIfinSuppression |
static TVector3 | gCloverPosition [17] |
#include <TIfin.h>
|
strong |
|
override |
Definition at line 143 of file TIfin.cxx.
References fAddbackHits, fSuppressedAddbackHits, and fSuppressedHits.
|
inlineoverridevirtual |
Reimplemented from TSuppressed.
Definition at line 68 of file TIfin.h.
References fAddbackCriterion.
|
overridevirtual |
!
Reimplemented from TDetector.
Definition at line 411 of file TIfin.cxx.
References TDetector::fHits, TChannel::GetMnemonic(), TMnemonic::kG, and TMnemonic::SubSystem().
|
inlinevirtualinherited |
!
Reimplemented in TTigress, TLaBr, TFippsLaBr, TRF, TSharc, TTrific, TGriffin, TCSM, TS3, TDescant, TZeroDegree, TTriFoil, TTAC, TEagle, TFippsTAC, TEmma, TSceptar, TTip, TSiLi, TBgo, TPaces, TGenericDetector, TEaglePulser, and TFippsPulser.
Definition at line 48 of file TDetector.h.
|
override |
!
Definition at line 154 of file TIfin.cxx.
References TSuppressed::Clear(), ClearStatus(), fAddbackFrags, fAddbackHits, fSuppressedAddbackFrags, fSuppressedAddbackHits, and fSuppressedHits.
Referenced by TIfin().
|
inlineprivate |
|
virtualinherited |
!
Reimplemented in TS3, TTigress, TTrific, and TGriffin.
Definition at line 63 of file TDetector.cxx.
References TDetector::fHits.
Referenced by TGriffin::ClearTransients(), TTrific::ClearTransients(), and TTigress::ClearTransients().
|
overridevirtual |
!
Reimplemented from TDetector.
Definition at line 130 of file TIfin.cxx.
References TSuppressed::Copy(), fAddbackFrags, fAddbackHits, fIfinBits, fSuppressedAddbackFrags, fSuppressedAddbackHits, and fSuppressedHits.
Referenced by operator=(), and TIfin().
|
inlineprotectedinherited |
This funxtion always(!) re-creates the vectors of addback hits and number of fragments per addback hit based on the provided vector of hits
Because the functions to return hit vectors etc. are almost always returning vectors of TDetectorHits, T is most likely TDetectorHit. This means we can't use T directly to create a new hit, we need to use TClass::New().
Definition at line 34 of file TSuppressed.h.
References TSuppressed::AddbackCriterion(), TDetectorHit::kIsEnergySet, and TDetectorHit::kIsTimeSet.
Referenced by TTdrClover::GetAddbackMultiplicity(), TTdrTigress::GetAddbackMultiplicity(), GetAddbackMultiplicity(), TFipps::GetAddbackMultiplicity(), and TGriffin::GetAddbackMultiplicity().
|
inlineprotectedinherited |
This function always(!) re-creates the vector of suppressed hits based on the provided TBgo and vector of hits
Because the functions to return hit vectors etc. are almost always returning vectors of TDetectorHits, T is most likely TDetectorHit. This means we can't use T directly to create a new hit, we need to use TClass::New().
Definition at line 65 of file TSuppressed.h.
References TDetector::GetHitVector(), and TSuppressed::SuppressionCriterion().
Referenced by TFippsLaBr::GetSuppressedMultiplicity(), TLaBr::GetSuppressedMultiplicity(), TTdrClover::GetSuppressedMultiplicity(), TTdrTigress::GetSuppressedMultiplicity(), TFipps::GetSuppressedMultiplicity(), GetSuppressedMultiplicity(), and TGriffin::GetSuppressedMultiplicity().
|
inlineprotectedinherited |
This funxtion always(!) re-creates the vectors of suppressed addback hits and number of fragments per suppressed addback hit based on the provided TBgo and vector of hits
Because the functions to return hit vectors etc. are almost always returning vectors of TDetectorHits, T is most likely TDetectorHit. This means we can't use T directly to create a new hit, we need to use TClass::New().
Definition at line 90 of file TSuppressed.h.
References TSuppressed::AddbackCriterion(), TDetector::GetHitVector(), TDetectorHit::kIsEnergySet, TDetectorHit::kIsTimeSet, and TSuppressed::SuppressionCriterion().
Referenced by TTdrClover::GetSuppressedAddbackMultiplicity(), TTdrTigress::GetSuppressedAddbackMultiplicity(), GetSuppressedAddbackMultiplicity(), TFipps::GetSuppressedAddbackMultiplicity(), and TGriffin::GetSuppressedAddbackMultiplicity().
|
static |
Corrects the energy of the hit to correct by ADDING the uncorrected energy of the other hit times the parameter for this combination This is different to the very similar TGriffin function that SUBTRACTS instead of ADDING. If time_constraint is true it also checks that the two hits are within the addback window to each other.
Definition at line 514 of file TIfin.cxx.
References TAnalysisOptions::AddbackWindow(), TGRSIOptions::AnalysisOptions(), DRED, TDetectorHit::GetChannel(), TDetectorHit::GetCrystal(), TChannel::GetCTCoeff(), TDetectorHit::GetDetector(), TDetectorHit::GetEnergy(), TIfinHit::GetNoCTEnergy(), and TDetectorHit::GetTime().
Referenced by FixCrossTalk().
void TIfin::FixCrossTalk | ( | ) |
Definition at line 555 of file TIfin.cxx.
References TGRSIOptions::AnalysisOptions(), CTCorrectedEnergy(), TDetector::GetHitVector(), and SetCrossTalk().
Referenced by GetAddbackHit(), GetAddbackMultiplicity(), GetIfinHit(), GetSuppressedAddbackHit(), GetSuppressedAddbackMultiplicity(), GetSuppressedHit(), and GetSuppressedMultiplicity().
|
inline |
Definition at line 66 of file TIfin.h.
References fAddbackCriterion.
|
private |
!
Definition at line 205 of file TIfin.cxx.
References fAddbackFrags.
Referenced by GetAddbackMultiplicity(), GetNAddbackFrags(), and ResetAddback().
TIfinHit * TIfin::GetAddbackHit | ( | const int & | i | ) |
Definition at line 379 of file TIfin.cxx.
References FixCrossTalk(), GetAddbackVector(), and IsCrossTalkSet().
Int_t TIfin::GetAddbackMultiplicity | ( | ) |
Definition at line 322 of file TIfin.cxx.
References TSuppressed::CreateAddback(), FixCrossTalk(), GetAddbackFragVector(), GetAddbackVector(), TDetector::GetHitVector(), IsAddbackSet(), IsCrossTalkSet(), and SetAddback().
|
private |
!
Definition at line 200 of file TIfin.cxx.
References fAddbackHits.
Referenced by GetAddbackHit(), GetAddbackMultiplicity(), and ResetAddback().
|
static |
|
virtualinherited |
Definition at line 70 of file TDetector.cxx.
References TDetector::fHits.
Referenced by exAnalysis(), TBgo::GetBgoHit(), TCSM::GetCSMHit(), TDescant::GetDescantHit(), TEagle::GetEagleHit(), TEmma::GetEmmaHit(), TGenericDetector::GetGenericDetectorHit(), TLaBrBgo::GetLaBrBgoHit(), TFippsLaBr::GetLaBrHit(), TLaBr::GetLaBrHit(), TPaces::GetPacesHit(), TS3::GetS3Hit(), TSceptar::GetSceptarHit(), TSharc::GetSharcHit(), TSiLi::GetSiLiHit(), TTAC::GetTACHit(), TFippsTAC::GetTACHit(), TTdrClover::GetTdrCloverHit(), TTdrPlastic::GetTdrPlasticHit(), TTdrSiLi::GetTdrSiLiHit(), TTdrTigress::GetTdrTigressHit(), TTigress::GetTigressHit(), TTip::GetTipHit(), TTrific::GetTrificHit(), TZeroDegree::GetZeroDegreeHit(), and MakeAnalysisHistograms().
|
inlinevirtualinherited |
Reimplemented in TGriffin.
Definition at line 64 of file TDetector.h.
References TDetector::fHits.
Referenced by TSuppressed::CreateSuppressed(), TSuppressed::CreateSuppressedAddback(), TFipps::FixCrossTalk(), FixCrossTalk(), TTdrClover::GetAddbackMultiplicity(), TTdrTigress::GetAddbackMultiplicity(), TFipps::GetAddbackMultiplicity(), GetAddbackMultiplicity(), TTdrClover::GetSuppressedAddbackMultiplicity(), TTdrTigress::GetSuppressedAddbackMultiplicity(), TFipps::GetSuppressedMultiplicity(), and GetSuppressedMultiplicity().
TIfinHit * TIfin::GetIfinHit | ( | const Int_t & | i | ) |
Definition at line 265 of file TIfin.cxx.
References TDetector::fHits, FixCrossTalk(), and IsCrossTalkSet().
|
inlinevirtualinherited |
Reimplemented in TTrific, and TGriffin.
Definition at line 62 of file TDetector.h.
References TDetector::fHits.
Referenced by exAnalysis(), TimeWalkSelector::FillHistograms(), ExampleEventSelector::FillHistograms(), ExampleTreeSelector::FillHistograms(), AngularCorrelationSelector::FillHistograms(), main(), MakeAnalysisHistograms(), TBgo::Print(), TTdrClover::Print(), TTdrTigress::Print(), TFipps::Print(), Print(), and TTigress::Print().
UShort_t TIfin::GetNAddbackFrags | ( | const size_t & | idx | ) |
Definition at line 498 of file TIfin.cxx.
References GetAddbackFragVector().
|
static |
!
Definition at line 432 of file TIfin.cxx.
References gCloverPosition.
Referenced by TIfinHit::GetPosition().
|
private |
Definition at line 220 of file TIfin.cxx.
References fSuppressedAddbackFrags.
Referenced by GetSuppressedAddbackMultiplicity(), and ResetSuppressedAddback().
TIfinHit * TIfin::GetSuppressedAddbackHit | ( | const int & | i | ) |
Definition at line 395 of file TIfin.cxx.
References FixCrossTalk(), GetSuppressedAddbackVector(), and IsCrossTalkSet().
Int_t TIfin::GetSuppressedAddbackMultiplicity | ( | const TBgo * | bgo | ) |
Definition at line 350 of file TIfin.cxx.
References TSuppressed::CreateSuppressedAddback(), FixCrossTalk(), GetSuppressedAddbackFragVector(), GetSuppressedAddbackVector(), GetSuppressedVector(), IsAddbackSet(), IsCrossTalkSet(), and SetSuppressedAddback().
|
private |
Definition at line 215 of file TIfin.cxx.
References fSuppressedAddbackHits.
Referenced by GetSuppressedAddbackHit(), GetSuppressedAddbackMultiplicity(), and ResetSuppressedAddback().
TIfinHit * TIfin::GetSuppressedHit | ( | const int & | i | ) |
Definition at line 281 of file TIfin.cxx.
References FixCrossTalk(), fSuppressedHits, and IsCrossTalkSet().
Int_t TIfin::GetSuppressedMultiplicity | ( | const TBgo * | bgo | ) |
Automatically builds the suppressed hits using the fSuppressionCriterion and returns the number of suppressed hits
Definition at line 297 of file TIfin.cxx.
References TSuppressed::CreateSuppressed(), FixCrossTalk(), TDetector::GetHitVector(), GetSuppressedVector(), IsCrossTalkSet(), IsSuppressed(), and SetSuppressed().
|
private |
Definition at line 210 of file TIfin.cxx.
References fSuppressedHits.
Referenced by GetSuppressedAddbackMultiplicity(), GetSuppressedMultiplicity(), and ResetSuppressed().
|
inline |
Definition at line 88 of file TIfin.h.
References fSuppressionCriterion.
bool TIfin::IsAddbackSet | ( | ) | const |
Definition at line 225 of file TIfin.cxx.
References kIsAddbackSet, and TestBitNumber().
Referenced by GetAddbackMultiplicity(), GetSuppressedAddbackMultiplicity(), and Print().
bool TIfin::IsCrossTalkSet | ( | ) | const |
Definition at line 230 of file TIfin.cxx.
References kIsCrossTalkSet, and TestBitNumber().
Referenced by GetAddbackHit(), GetAddbackMultiplicity(), GetIfinHit(), GetSuppressedAddbackHit(), GetSuppressedAddbackMultiplicity(), GetSuppressedHit(), GetSuppressedMultiplicity(), and Print().
bool TIfin::IsSuppressed | ( | ) | const |
Definition at line 235 of file TIfin.cxx.
References kIsSuppressedSet, and TestBitNumber().
Referenced by GetSuppressedMultiplicity().
bool TIfin::IsSuppressedAddbackSet | ( | ) | const |
Definition at line 240 of file TIfin.cxx.
References kIsSuppressedAddbackSet, and TestBitNumber().
|
overridevirtual |
Reimplemented from TDetector.
Definition at line 177 of file TIfin.cxx.
References fAddbackHits, TDetector::GetMultiplicity(), IsAddbackSet(), and IsCrossTalkSet().
void TIfin::ResetAddback | ( | ) |
Definition at line 475 of file TIfin.cxx.
References GetAddbackFragVector(), GetAddbackVector(), SetAddback(), and SetCrossTalk().
void TIfin::ResetSuppressed | ( | ) |
Definition at line 483 of file TIfin.cxx.
References GetSuppressedVector(), and SetSuppressed().
void TIfin::ResetSuppressedAddback | ( | ) |
Definition at line 489 of file TIfin.cxx.
References GetSuppressedAddbackFragVector(), GetSuppressedAddbackVector(), SetAddback(), SetCrossTalk(), and SetSuppressed().
|
private |
Definition at line 245 of file TIfin.cxx.
References kIsAddbackSet, and SetBitNumber().
Referenced by GetAddbackMultiplicity(), ResetAddback(), and ResetSuppressedAddback().
|
inline |
Definition at line 62 of file TIfin.h.
References fAddbackCriterion.
|
private |
Definition at line 508 of file TIfin.cxx.
References fIfinBits, and TTransientBits< T >::SetBit().
Referenced by SetAddback(), SetCrossTalk(), SetSuppressed(), and SetSuppressedAddback().
|
private |
Definition at line 250 of file TIfin.cxx.
References kIsCrossTalkSet, and SetBitNumber().
Referenced by FixCrossTalk(), ResetAddback(), and ResetSuppressedAddback().
|
private |
Definition at line 255 of file TIfin.cxx.
References kIsSuppressedSet, and SetBitNumber().
Referenced by GetSuppressedMultiplicity(), ResetSuppressed(), and ResetSuppressedAddback().
|
private |
Definition at line 260 of file TIfin.cxx.
References kIsSuppressedAddbackSet, and SetBitNumber().
Referenced by GetSuppressedAddbackMultiplicity().
|
inline |
Definition at line 84 of file TIfin.h.
References fSuppressionCriterion.
|
inlineoverridevirtual |
Reimplemented from TSuppressed.
Definition at line 90 of file TIfin.h.
References fSuppressionCriterion.
|
inlineprivate |
Definition at line 120 of file TIfin.h.
References fIfinBits, and TTransientBits< T >::TestBit().
Referenced by IsAddbackSet(), IsCrossTalkSet(), IsSuppressed(), and IsSuppressedAddbackSet().
|
staticprivate |
Definition at line 99 of file TIfin.h.
Referenced by AddbackCriterion(), GetAddbackCriterion(), and SetAddbackCriterion().
|
mutableprivate |
! Number of crystals involved in creating in the addback hit
Definition at line 108 of file TIfin.h.
Referenced by Clear(), Copy(), and GetAddbackFragVector().
|
mutableprivate |
|
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(), 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(), 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().
|
mutableprivate |
Definition at line 105 of file TIfin.h.
Referenced by ClearStatus(), Copy(), ResetFlags(), SetBitNumber(), and TestBitNumber().
|
mutableprivate |
Definition at line 111 of file TIfin.h.
Referenced by Clear(), Copy(), and GetSuppressedAddbackFragVector().
|
mutableprivate |
|
mutableprivate |
Definition at line 109 of file TIfin.h.
Referenced by Clear(), Copy(), GetSuppressedHit(), GetSuppressedVector(), and ~TIfin().
|
staticprivate |
Definition at line 100 of file TIfin.h.
Referenced by GetSuppressionCriterion(), SetSuppressionCriterion(), and SuppressionCriterion().
|
staticprivate |
|
static |
!
|
static |