CbmRoot
|
#include <CbmMcbmCheckTimingAlgo.h>
Public Member Functions | |
CbmMcbmCheckTimingAlgo () | |
CbmMcbmCheckTimingAlgo (const CbmMcbmCheckTimingAlgo &)=delete | |
CbmMcbmCheckTimingAlgo | operator= (const CbmMcbmCheckTimingAlgo &)=delete |
~CbmMcbmCheckTimingAlgo () | |
Bool_t | Init () |
Bool_t | ReInit () |
void | ProcessTs () |
void | SetParContainers () |
void | Finish () |
void | SetOutFilename (TString sNameIn) |
void | WriteHistos () |
void | SetReferenceDetector (ECbmModuleId refDetIn, std::string sNameIn, Double_t dTimeRangeBegIn=-1000.0, Double_t dTimeRangeEndIn=1000.0, UInt_t uRangeNbBinsIn=320, UInt_t uChargeCutMinIn=0, UInt_t uChargeCutMaxIn=0) |
void | AddCheckDetector (ECbmModuleId detIn, std::string sNameIn, Double_t dTimeRangeBegIn=-1000.0, Double_t dTimeRangeEndIn=1000.0, UInt_t uRangeNbBinsIn=320, UInt_t uChargeCutMinIn=0, UInt_t uChargeCutMaxIn=0) |
void | RemoveCheckDetector (ECbmModuleId detIn) |
void | SetDetectorDifferential (ECbmModuleId detIn, std::vector< std::string > vName) |
void | SetTrdPeakWidthNs (Double_t val=120.) |
void | SetStsPeakWidthNs (Double_t val=30.) |
void | SetMuchPeakWidthNs (Double_t val=100.) |
void | SetTofPeakWidthNs (Double_t val=20.) |
void | SetRichPeakWidthNs (Double_t val=40.) |
void | SetPsdPeakWidthNs (Double_t val=20.) |
template<class Digi > | |
uint | GetDigiInfo (UInt_t uDigi, std::vector< std::tuple< double, double, uint > > *vec, ECbmModuleId) |
template<class Digi > | |
int | GetViewId (CheckTimingDetector det, std::tuple< double, double, uint > info) |
Private Member Functions | |
void | CheckDataPresence (CheckTimingDetector detToCheck) |
void | CreateHistos () |
template<class DigiRef > | |
void | CheckInterSystemOffset () |
template<class Digi > | |
void | FillTimeOffsetHistos (const Double_t dRefTime, const Double_t dRefCharge, UInt_t uDetIdx) |
template<class Digi > | |
UInt_t | GetDigiInfo (UInt_t iDigi, std::vector< std::tuple< double, double, UInt_t > > *vec, ECbmModuleId detId=ECbmModuleId::kNotExist) |
Retrieve digi (time,charge,addres) info. SHOULD BE IMPLEMENTED BY DETECTORS IF MORE DIFFERENTIAL STUDIES ARE NEEDED. | |
template<class Digi > | |
int | GetViewId (CheckTimingDetector det, std::tuple< double, double, UInt_t > info) |
Retrieve the detector view corresponding to the digi data (. | |
ClassDefNV (CbmMcbmCheckTimingAlgo, 1) | |
template<> | |
uint | GetDigiInfo (UInt_t uDigi, std::vector< std::tuple< double, double, uint > > *vec, ECbmModuleId) |
template<> | |
uint | GetDigiInfo (UInt_t uDigi, std::vector< std::tuple< double, double, uint > > *vec, ECbmModuleId) |
template<> | |
uint | GetDigiInfo (UInt_t uDigi, std::vector< std::tuple< double, double, uint > > *vec, ECbmModuleId) |
Private Attributes | |
CbmDigiManager * | fDigiMan = nullptr |
const std::vector< CbmBmonDigi > * | fpBmonDigiVec = nullptr |
const CbmTsEventHeader * | fCbmTsEventHeader = nullptr |
Pointer to the Timeslice start time used to write it to the output tree. | |
UInt_t | fuNbTs = 0 |
CheckTimingDetector | fRefDet {CheckTimingDetector(ECbmModuleId::kBmon, "BMON")} |
std::vector< CheckTimingDetector > | fvDets |
std::map< ECbmModuleId, std::vector< TH1 * > > | fvhDetSelfDiff = {} |
vectors storing histograms for each detector under investigation | |
std::map< ECbmModuleId, std::vector< TH1 * > > | fvhDetToRefDiff = {} |
std::map< ECbmModuleId, std::vector< TH2 * > > | fvhDetToRefDiffRefCharge = {} |
std::map< ECbmModuleId, std::vector< TH2 * > > | fvhDetToRefDiffDetCharge = {} |
std::map< ECbmModuleId, std::vector< TH2 * > > | fvhDetToRefDiffEvo = {} |
std::map< ECbmModuleId, std::vector< TH2 * > > | fvhDetToRefDiffEvoLong = {} |
TString | fOutFileName = "data/HistosCheckTiming.root" |
Double_t | DetPeakPosSingle |
Double_t | DetAverageSingle |
Double_t | fTrdPeakWidthNs = 120. |
Double_t | fStsPeakWidthNs = 30. |
Double_t | fMuchPeakWidthNs = 100. |
Double_t | fTofPeakWidthNs = 20. |
Double_t | fRichPeakWidthNs = 40. |
Double_t | fPsdPeakWidthNs = 20. |
std::map< ECbmModuleId, std::unordered_set< std::string > > | fUnimplementedView = {} |
Definition at line 54 of file CbmMcbmCheckTimingAlgo.h.
CbmMcbmCheckTimingAlgo::CbmMcbmCheckTimingAlgo | ( | ) |
Definition at line 34 of file CbmMcbmCheckTimingAlgo.cxx.
|
delete |
CbmMcbmCheckTimingAlgo::~CbmMcbmCheckTimingAlgo | ( | ) |
Constructor with parameters (Optional) Destructor
Definition at line 37 of file CbmMcbmCheckTimingAlgo.cxx.
void CbmMcbmCheckTimingAlgo::AddCheckDetector | ( | ECbmModuleId | detIn, |
std::string | sNameIn, | ||
Double_t | dTimeRangeBegIn = -1000.0, | ||
Double_t | dTimeRangeEndIn = 1000.0, | ||
UInt_t | uRangeNbBinsIn = 320, | ||
UInt_t | uChargeCutMinIn = 0, | ||
UInt_t | uChargeCutMaxIn = 0 ) |
Definition at line 704 of file CbmMcbmCheckTimingAlgo.cxx.
References fvDets.
Referenced by CbmMcbmCheckTimingTask::AddCheckDetector().
|
private |
Handle special case for Bmon as not yet supported in DigiManager
Definition at line 75 of file CbmMcbmCheckTimingAlgo.cxx.
References CheckTimingDetector::detId, fDigiMan, fpBmonDigiVec, CbmDigiManager::Init(), CbmDigiManager::Instance(), CbmDigiManager::IsPresent(), kBmon, CheckTimingDetector::sName, and CbmDigiManager::UseMuchBeamTimeDigi().
Referenced by Init().
|
private |
Re-initialize array references
Fill self time difference histo
Charge cut if defined!
Cut charges between Min and Max to reject pulser
Select charges between Max and Min to select pulser (Min and Max swapped!!)
Psd Pulser selection
Fill time difference for each check detector defined in list
Definition at line 228 of file CbmMcbmCheckTimingAlgo.cxx.
References CheckTimingDetector::detId, CheckTimingDetector::dPrevTime, fDigiMan, FillTimeOffsetHistos(), fpBmonDigiVec, fRefDet, fvDets, fvhDetSelfDiff, CbmDigiManager::Get(), CbmDigiManager::GetNofDigis(), CbmPsdAddress::GetSectionId(), kBmon, kMuch, kNotExist, kPsd, kRich, kSts, kTof, kTrd, kTrd2d, CheckTimingDetector::sName, CheckTimingDetector::uChargeCutMax, and CheckTimingDetector::uChargeCutMin.
Referenced by ProcessTs().
|
private |
|
private |
Logarithmic bining for self time comparison
Parameters are NbDecadesLog, NbStepsDecade, NbSubStepsInStep
Add reference detector digi to digi time difference histo at end of vector
Register the histos in the HTTP server
Register histos for all checked detectors
Register the histo for reference detector digi to digi time difference
Definition at line 97 of file CbmMcbmCheckTimingAlgo.cxx.
References CheckTimingDetector::detId, fRefDet, fvDets, fvhDetSelfDiff, fvhDetToRefDiff, fvhDetToRefDiffDetCharge, fvhDetToRefDiffEvo, fvhDetToRefDiffEvoLong, fvhDetToRefDiffRefCharge, GenerateLogBinArray(), and CheckTimingDetector::sName.
Referenced by Init().
|
private |
Fill self correlation histo while avoiding double counting due to the "smart looping"
already past interesting range
Charge cut if defined!
Cut charges between Min and Max to reject pulser
Select charges between Max and Min to select pulser (Min and Max swapped!!)
Psd Pulser selection
Fill histos
Store earliest possible starting index for next reference digi (time sorted!)
Definition at line 335 of file CbmMcbmCheckTimingAlgo.cxx.
References fCbmTsEventHeader, fDigiMan, fpBmonDigiVec, fRefDet, fuNbTs, fvDets, fvhDetSelfDiff, fvhDetToRefDiff, fvhDetToRefDiffDetCharge, fvhDetToRefDiffEvo, fvhDetToRefDiffEvoLong, fvhDetToRefDiffRefCharge, GetDigiInfo(), CbmDigiManager::GetNofDigis(), CbmPsdAddress::GetSectionId(), CbmTsEventHeader::GetTsIndex(), GetViewId(), kBmon, kNotExist, kPsd, and CheckTimingDetector::sName.
Referenced by CheckInterSystemOffset().
void CbmMcbmCheckTimingAlgo::Finish | ( | ) |
Finish task called at the end of the run
Definition at line 532 of file CbmMcbmCheckTimingAlgo.cxx.
References fuNbTs.
Referenced by CbmMcbmCheckTimingTask::Finish().
|
private |
Retrieve digi (time,charge,addres) info. SHOULD BE IMPLEMENTED BY DETECTORS IF MORE DIFFERENTIAL STUDIES ARE NEEDED.
iDigi | digi index in the digi array |
vec | on return contains the signal(s), time(s) and address pairs. Should be allocated by the user |
detId | if needed spec |
Referenced by FillTimeOffsetHistos().
uint CbmMcbmCheckTimingAlgo::GetDigiInfo | ( | UInt_t | uDigi, |
std::vector< std::tuple< double, double, uint > > * | vec, | ||
ECbmModuleId | ) |
Definition at line 433 of file CbmMcbmCheckTimingAlgo.cxx.
References fDigiMan, and CbmDigiManager::Get().
|
private |
Definition at line 443 of file CbmMcbmCheckTimingAlgo.cxx.
References fDigiMan, CbmDigiManager::Get(), CbmStsDigi::GetAddress(), CbmStsAddress::GetElementId(), kStsLadder, kStsModule, and kStsUnit.
|
private |
Template specialization for TRD in order to distinguish SPADIC and FASP digis.
Definition at line 457 of file CbmMcbmCheckTimingAlgo.cxx.
References CbmTrdDigi::Clk(), fDigiMan, CbmDigiManager::Get(), CbmTrdDigi::GetAddressModule(), CbmTrdDigi::GetCharge(), CbmTrdDigi::GetTime(), CbmTrdDigi::GetType(), CbmTrdDigi::kFASP, and CbmTrdDigi::kSPADIC.
|
private |
Definition at line 496 of file CbmMcbmCheckTimingAlgo.cxx.
References fDigiMan, CbmDigiManager::Get(), CbmTofDigi::GetAddress(), CbmTofDigi::GetCharge(), CbmTofAddress::GetRpcId(), CbmTofAddress::GetSmId(), CbmTofAddress::GetSmType(), and CbmTofDigi::GetTime().
int CbmMcbmCheckTimingAlgo::GetViewId | ( | CheckTimingDetector | det, |
std::tuple< double, double, uint > | info ) |
Definition at line 512 of file CbmMcbmCheckTimingAlgo.cxx.
References CheckTimingDetector::detId, fUnimplementedView, CheckTimingDetector::sName, and CheckTimingDetector::vName.
|
private |
Retrieve the detector view corresponding to the digi data (.
det | detector definitions |
info | tuple of digi info (time, charge, address or more specific info) |
Referenced by FillTimeOffsetHistos().
Bool_t CbmMcbmCheckTimingAlgo::Init | ( | ) |
Initiliazation of task at the beginning of a run
Check if all required data input storage are present Reference detector
Checked detectors
Try to get the 2021 Event header which is containing the Timeslice info If not present, we have "old" data and will simply catch it with the nullptr value
Definition at line 53 of file CbmMcbmCheckTimingAlgo.cxx.
References CheckDataPresence(), CreateHistos(), fCbmTsEventHeader, fRefDet, and fvDets.
Referenced by CbmMcbmCheckTimingTask::Init().
|
delete |
void CbmMcbmCheckTimingAlgo::ProcessTs | ( | ) |
Executed for each event.
Definition at line 179 of file CbmMcbmCheckTimingAlgo.cxx.
References CheckInterSystemOffset(), CheckTimingDetector::detId, fCbmTsEventHeader, fRefDet, fuNbTs, CbmTsEventHeader::GetTsIndex(), kBmon, kMuch, kPsd, kRich, kSts, kTof, kTrd, kTrd2d, and CheckTimingDetector::sName.
Referenced by CbmMcbmCheckTimingTask::Exec().
Bool_t CbmMcbmCheckTimingAlgo::ReInit | ( | ) |
ReInitiliazation of task when the runID changes
Definition at line 176 of file CbmMcbmCheckTimingAlgo.cxx.
void CbmMcbmCheckTimingAlgo::RemoveCheckDetector | ( | ECbmModuleId | detIn | ) |
Definition at line 735 of file CbmMcbmCheckTimingAlgo.cxx.
References fvDets.
Referenced by CbmMcbmCheckTimingTask::RemoveCheckDetector().
void CbmMcbmCheckTimingAlgo::SetDetectorDifferential | ( | ECbmModuleId | detIn, |
std::vector< std::string > | vName ) |
Definition at line 687 of file CbmMcbmCheckTimingAlgo.cxx.
References fvDets.
Referenced by CbmMcbmCheckTimingTask::SetDetectorDifferential().
|
inline |
Definition at line 99 of file CbmMcbmCheckTimingAlgo.h.
References fMuchPeakWidthNs.
|
inline |
Definition at line 85 of file CbmMcbmCheckTimingAlgo.h.
References fOutFileName.
Referenced by CbmMcbmCheckTimingTask::SetOutFilename().
void CbmMcbmCheckTimingAlgo::SetParContainers | ( | ) |
Load the parameter container from the runtime database
Definition at line 40 of file CbmMcbmCheckTimingAlgo.cxx.
|
inline |
Definition at line 102 of file CbmMcbmCheckTimingAlgo.h.
References fPsdPeakWidthNs.
void CbmMcbmCheckTimingAlgo::SetReferenceDetector | ( | ECbmModuleId | refDetIn, |
std::string | sNameIn, | ||
Double_t | dTimeRangeBegIn = -1000.0, | ||
Double_t | dTimeRangeEndIn = 1000.0, | ||
UInt_t | uRangeNbBinsIn = 320, | ||
UInt_t | uChargeCutMinIn = 0, | ||
UInt_t | uChargeCutMaxIn = 0 ) |
Definition at line 674 of file CbmMcbmCheckTimingAlgo.cxx.
References CheckTimingDetector::detId, CheckTimingDetector::dTimeRangeBeg, CheckTimingDetector::dTimeRangeEnd, fRefDet, CheckTimingDetector::sName, CheckTimingDetector::uChargeCutMax, CheckTimingDetector::uChargeCutMin, and CheckTimingDetector::uRangeNbBins.
Referenced by CbmMcbmCheckTimingTask::SetReferenceDetector().
|
inline |
Definition at line 101 of file CbmMcbmCheckTimingAlgo.h.
References fRichPeakWidthNs.
|
inline |
Definition at line 98 of file CbmMcbmCheckTimingAlgo.h.
References fStsPeakWidthNs.
|
inline |
Definition at line 100 of file CbmMcbmCheckTimingAlgo.h.
References fTofPeakWidthNs.
|
inline |
Definition at line 97 of file CbmMcbmCheckTimingAlgo.h.
References fTrdPeakWidthNs.
void CbmMcbmCheckTimingAlgo::WriteHistos | ( | ) |
Register the histo for reference detector digi to digi time difference
Definition at line 534 of file CbmMcbmCheckTimingAlgo.cxx.
References DetAverageSingle, CheckTimingDetector::detId, DetPeakPosSingle, fMuchPeakWidthNs, fOutFileName, fPsdPeakWidthNs, fRefDet, fRichPeakWidthNs, fStsPeakWidthNs, fTofPeakWidthNs, fTrdPeakWidthNs, fvDets, fvhDetSelfDiff, fvhDetToRefDiff, fvhDetToRefDiffDetCharge, fvhDetToRefDiffEvo, fvhDetToRefDiffEvoLong, fvhDetToRefDiffRefCharge, kBmon, kMuch, kPsd, kRich, kSts, kTof, kTrd, CheckTimingDetector::sName, and CheckTimingDetector::uNviews.
Referenced by CbmMcbmCheckTimingTask::SaveHistos().
|
private |
Definition at line 161 of file CbmMcbmCheckTimingAlgo.h.
Referenced by WriteHistos().
|
private |
Definition at line 160 of file CbmMcbmCheckTimingAlgo.h.
Referenced by WriteHistos().
|
private |
Pointer to the Timeslice start time used to write it to the output tree.
Definition at line 139 of file CbmMcbmCheckTimingAlgo.h.
Referenced by FillTimeOffsetHistos(), Init(), and ProcessTs().
|
private |
Input array from previous already existing data level
Definition at line 131 of file CbmMcbmCheckTimingAlgo.h.
Referenced by CheckDataPresence(), CheckInterSystemOffset(), FillTimeOffsetHistos(), and GetDigiInfo().
|
private |
Definition at line 164 of file CbmMcbmCheckTimingAlgo.h.
Referenced by SetMuchPeakWidthNs(), and WriteHistos().
|
private |
Name of the histogram output file
Definition at line 159 of file CbmMcbmCheckTimingAlgo.h.
Referenced by SetOutFilename(), and WriteHistos().
|
private |
Bmon is not included in CbmDigiManager, so add it explicitly here
Definition at line 134 of file CbmMcbmCheckTimingAlgo.h.
Referenced by CheckDataPresence(), CheckInterSystemOffset(), and FillTimeOffsetHistos().
|
private |
Definition at line 167 of file CbmMcbmCheckTimingAlgo.h.
Referenced by SetPsdPeakWidthNs(), and WriteHistos().
|
private |
Definition at line 144 of file CbmMcbmCheckTimingAlgo.h.
Referenced by CheckInterSystemOffset(), CreateHistos(), FillTimeOffsetHistos(), Init(), ProcessTs(), SetReferenceDetector(), and WriteHistos().
|
private |
Definition at line 166 of file CbmMcbmCheckTimingAlgo.h.
Referenced by SetRichPeakWidthNs(), and WriteHistos().
|
private |
Definition at line 163 of file CbmMcbmCheckTimingAlgo.h.
Referenced by SetStsPeakWidthNs(), and WriteHistos().
|
private |
Definition at line 165 of file CbmMcbmCheckTimingAlgo.h.
Referenced by SetTofPeakWidthNs(), and WriteHistos().
|
private |
Definition at line 162 of file CbmMcbmCheckTimingAlgo.h.
Referenced by SetTrdPeakWidthNs(), and WriteHistos().
|
private |
Definition at line 142 of file CbmMcbmCheckTimingAlgo.h.
Referenced by FillTimeOffsetHistos(), Finish(), and ProcessTs().
|
private |
Definition at line 169 of file CbmMcbmCheckTimingAlgo.h.
Referenced by GetViewId().
|
private |
Definition at line 145 of file CbmMcbmCheckTimingAlgo.h.
Referenced by AddCheckDetector(), CheckInterSystemOffset(), CreateHistos(), FillTimeOffsetHistos(), Init(), RemoveCheckDetector(), SetDetectorDifferential(), and WriteHistos().
|
private |
vectors storing histograms for each detector under investigation
Definition at line 151 of file CbmMcbmCheckTimingAlgo.h.
Referenced by CheckInterSystemOffset(), CreateHistos(), FillTimeOffsetHistos(), and WriteHistos().
|
private |
Definition at line 152 of file CbmMcbmCheckTimingAlgo.h.
Referenced by CreateHistos(), FillTimeOffsetHistos(), and WriteHistos().
|
private |
Definition at line 154 of file CbmMcbmCheckTimingAlgo.h.
Referenced by CreateHistos(), FillTimeOffsetHistos(), and WriteHistos().
|
private |
Definition at line 155 of file CbmMcbmCheckTimingAlgo.h.
Referenced by CreateHistos(), FillTimeOffsetHistos(), and WriteHistos().
|
private |
Definition at line 156 of file CbmMcbmCheckTimingAlgo.h.
Referenced by CreateHistos(), FillTimeOffsetHistos(), and WriteHistos().
|
private |
Definition at line 153 of file CbmMcbmCheckTimingAlgo.h.
Referenced by CreateHistos(), FillTimeOffsetHistos(), and WriteHistos().