CbmRoot
|
#include <CbmMcbm2018UnpackerAlgoSts.h>
Public Member Functions | |
CbmMcbm2018UnpackerAlgoSts () | |
~CbmMcbm2018UnpackerAlgoSts () | |
virtual Bool_t | Init () |
virtual void | Reset () |
virtual void | Finish () |
Bool_t | InitContainers () |
Bool_t | ReInitContainers () |
TList * | GetParList () |
Bool_t | InitParameters () |
std::vector< CbmStsDigi > & | GetPulserVector () |
void | ClearPulserVector () |
Bool_t | ProcessTs (const fles::Timeslice &ts) |
Bool_t | ProcessTs (const fles::Timeslice &ts, size_t) |
Bool_t | ProcessMs (const fles::Timeslice &ts, size_t uMsCompIdx, size_t uMsIdx) |
void | AddMsComponentToList (size_t component, UShort_t usDetectorId) |
Bool_t | CreateHistograms () |
Bool_t | FillHistograms () |
Bool_t | ResetHistograms () |
void | SetMonitorMode (Bool_t bFlagIn=kTRUE) |
void | SetTimeOffsetNs (Double_t dOffsetIn=0.0) |
void | SetTimeOffsetNsAsic (UInt_t uAsicIdx, Double_t dOffsetIn=0.0) |
void | MaskNoisyChannel (UInt_t uFeb, UInt_t uChan, Bool_t bMasked=kTRUE) |
void | SetAdcCut (UInt_t uAdc) |
void | SetBinningFwFlag (Bool_t bEnable=kTRUE) |
=> Quick and dirty hack for binning FW!!! | |
void | SetVectCapInc (Double_t dIncFact) |
void | SeparatePulserOutput (Bool_t bFlagIn) |
virtual void | SetParameter (std::string) |
virtual std::string | GetParameter (std::string) |
void | AddHistoToVector (TNamed *pointer, std::string sFolder="") |
For monitor algos. | |
std::vector< std::pair< TNamed *, std::string > > | GetHistoVector () |
void | AddCanvasToVector (TCanvas *pointer, std::string sFolder="") |
std::vector< std::pair< TCanvas *, std::string > > | GetCanvasVector () |
void | ClearVector () |
For unpacker algos. | |
std::vector< CbmStsDigi > & | GetVector () |
void | ClearErrorVector () |
std::vector< CbmErrorMessage > & | GetErrorVector () |
void | SetIgnoreOverlapMs (Bool_t bFlagIn=kTRUE) |
Control flags. | |
Protected Member Functions | |
Bool_t | CheckParameterValidity (std::string, std::string) |
Map of parameter name and type. | |
Protected Attributes | |
TList * | fParCList |
Parameter management. | |
std::vector< size_t > | fvMsComponentsList |
Parameters related to FLES containers. | |
size_t | fuNbCoreMsPerTs |
size_t | fuNbOverMsPerTs |
size_t | fuNbMsLoop |
Bool_t | fbIgnoreOverlapMs |
Double_t | fdMsSizeInNs |
/** Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice **/ | |
Double_t | fdTsCoreSizeInNs |
Size of a single MS, [nanoseconds]. | |
Double_t | fdTsFullSizeInNs |
Total size of the core MS in a TS, [nanoseconds]. | |
std::vector< std::pair< TNamed *, std::string > > | fvpAllHistoPointers |
Total size of the core MS in a TS, [nanoseconds]. | |
std::vector< std::pair< TCanvas *, std::string > > | fvpAllCanvasPointers |
Vector of pointers to histograms + optional folder name. | |
std::vector< CbmStsDigi > | fDigiVect |
Vector of pointers to canvases + optional folder name. | |
std::vector< CbmErrorMessage > | fErrVect |
std::map< std::string, std::string > | fParameterMap |
For any algo. | |
Private Member Functions | |
void | ProcessHitInfo (const stsxyter::Message &mess, const UShort_t &usElinkIdx, const UInt_t &uAsicIdx, const UInt_t &uMsIdx) |
void | ProcessTsMsbInfo (const stsxyter::Message &mess, UInt_t uMessIdx=0, UInt_t uMsIdx=0) |
void | ProcessEpochInfo (const stsxyter::Message &mess) |
void | ProcessStatusInfo (const stsxyter::Message &mess, const UInt_t &uAsicIdx) |
CbmMcbm2018UnpackerAlgoSts (const CbmMcbm2018UnpackerAlgoSts &) | |
CbmMcbm2018UnpackerAlgoSts | operator= (const CbmMcbm2018UnpackerAlgoSts &) |
Private Attributes | |
Bool_t | fbMonitorMode |
Control flags. | |
Bool_t | fbDebugMonitorMode |
Switch ON the filling of a minimal set of histograms. | |
std::vector< Bool_t > | fvbMaskedComponents |
Switch ON the filling of a additional set of histograms. | |
Bool_t | fbBinningFw = kFALSE |
=> Quick and dirty hack for binning FW!!! | |
Bool_t | fbPulserOutput = kTRUE |
CbmMcbm2018StsPar * | fUnpackPar |
If ON a separate output vector of digi is used for the pulser. | |
UInt_t | fuNbModules |
std::vector< Int_t > | fviModuleType |
Total number of STS modules in the setup. | |
std::vector< Int_t > | fviModAddress |
Type of each module: 0 for connectors on the right, 1 for connectors on the left. | |
UInt_t | fuNrOfDpbs |
STS address for the first strip of each module. | |
std::map< UInt_t, UInt_t > | fDpbIdIndexMap |
Total number of STS DPBs in system. | |
std::vector< std::vector< Bool_t > > | fvbCrobActiveFlag |
Map of DPB Identifier to DPB index. | |
UInt_t | fuNbFebs |
Array to hold the active flag for all CROBs, [ NbDpb ][ NbCrobPerDpb ]. | |
UInt_t | fuNbStsXyters |
Number of FEBs with StsXyter ASICs. | |
std::vector< std::vector< std::vector< Int_t > > > | fviFebModuleIdx |
Number of StsXyter ASICs. | |
std::vector< std::vector< std::vector< Int_t > > > | fviFebModuleSide |
Idx of the STS module for each FEB, [ NbDpb ][ NbCrobPerDpb ][ NbFebsPerCrob ], -1 if inactive. | |
std::vector< std::vector< std::vector< Int_t > > > | fviFebType |
STS module side for each FEB, [ NbDpb ][ NbCrobPerDpb ][ NbFebsPerCrob ], 0 = P, 1 = N, -1 if inactive. | |
std::vector< bool > | fvbFebPulser = {} |
FEB type, [ NbDpb ][ NbCrobPerDpb ][ NbFebsPerCrob ], 0 = A, 1 = B, -1 if inactive. | |
std::vector< Int_t > | fviFebAddress |
Pulser flag for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ]. | |
std::vector< Int_t > | fviFebSide |
STS address for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ]. | |
std::vector< Double_t > | fvdFebAdcGain |
Module side for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ]. | |
std::vector< Double_t > | fvdFebAdcOffs |
ADC gain in e-/b, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ]. | |
Double_t | fdTimeOffsetNs |
ADC offset in e-, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ]. | |
std::vector< Double_t > | fvdTimeOffsetNsAsics |
Bool_t | fbUseChannelMask |
std::vector< std::vector< bool > > | fvvbMaskedChannels |
UInt_t | fdAdcCut |
Vector of channel masks, [ NbFeb ][ NbCHanInFeb ], used only if fbUseChannelMask is true. | |
ULong64_t | fulCurrentTsIdx |
ULong64_t | fulCurrentMsIdx |
Double_t | fdTsStartTime |
Double_t | fdTsStopTimeCore |
Time in ns of current TS from the index of the first MS first component. | |
Double_t | fdMsTime |
End Time in ns of current TS Core from the index of the first MS first component. | |
UInt_t | fuMsIndex |
Start Time in ns of current MS from its index field in header. | |
std::map< stsxyter::MessType, UInt_t > | fmMsgCounter |
UInt_t | fuCurrentEquipmentId |
UInt_t | fuCurrDpbId |
Current equipment ID, tells from which DPB the current MS is originating. | |
UInt_t | fuCurrDpbIdx |
Temp holder until Current equipment ID is properly filled in MS. | |
Int_t | fiRunStartDateTimeSec |
Index of the DPB from which the MS currently unpacked is coming. | |
Int_t | fiBinSizeDatePlots |
Start of run time since "epoch" in s, for the plots with date as X axis. | |
std::vector< ULong64_t > | fvulCurrentTsMsb |
std::vector< UInt_t > | fvuCurrentTsMsbCycle |
Current TS MSB for each DPB. | |
Double_t | fdStartTime |
Double_t | fdStartTimeMsSz |
std::chrono::steady_clock::time_point | ftStartTimeUnix |
std::vector< stsxyter::FinalHit > | fvmHitsInMs |
Hits time-sorting. | |
std::vector< CbmStsDigi > | fPulserDigiVect = {} |
All hits (time in bins, ADC in bins, asic, channel) in last MS, sorted with "<" operator. | |
std::vector< std::vector< UShort_t > > | fvvusLastTsChan |
std::vector< std::vector< UShort_t > > | fvvusLastAdcChan |
TS of last hit message for each channel, [ AsicIdx ][ Chan ]. | |
std::vector< std::vector< UShort_t > > | fvvusLastTsMsbChan |
ADC of last hit message for each channel, [ AsicIdx ][ Chan ]. | |
std::vector< std::vector< UShort_t > > | fvvusLastTsMsbCycleChan |
TS MSB of last hit message for each channel, [ AsicIdx ][ Chan ]. | |
TH1 * | fhDigisTimeInRun |
TS MSB cycle of last hit message for each channel, [ AsicIdx ][ Chan ]. | |
TH1 * | fhVectorSize = nullptr |
TH1 * | fhVectorCapacity = nullptr |
size_t | fuTsMaxVectorSize = 0 |
Double_t | fdCapacityIncFactor = 1.1 |
TH1 * | fhMsCntEvo = nullptr |
TH2 * | fhMsErrorsEvo = nullptr |
Static Private Attributes | |
static const Int_t | kiMaxNbFlibLinks = 32 |
Constants. | |
static const UInt_t | kuMaxTsMsbDiffDuplicates = 8 |
Duplicate hits suppression. | |
Definition at line 42 of file CbmMcbm2018UnpackerAlgoSts.h.
CbmMcbm2018UnpackerAlgoSts::CbmMcbm2018UnpackerAlgoSts | ( | ) |
Definition at line 34 of file CbmMcbm2018UnpackerAlgoSts.cxx.
CbmMcbm2018UnpackerAlgoSts::~CbmMcbm2018UnpackerAlgoSts | ( | ) |
Clear buffers
Definition at line 92 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References CbmStar2019Algo< CbmStsDigi >::fParCList, fUnpackPar, and fvmHitsInMs.
|
private |
|
inlineinherited |
Definition at line 88 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019MonitorAlgoHodo::CreateHistograms().
|
inlineinherited |
For monitor algos.
Definition at line 83 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019MonitorAlgoHodo::CreateHistograms(), CbmCosy2019UnpackerAlgoHodo::CreateHistograms(), and CreateHistograms().
void CbmMcbm2018UnpackerAlgoSts::AddMsComponentToList | ( | size_t | component, |
UShort_t | usDetectorId ) |
Check for duplicates and ignore if it is the case
Add to list
Definition at line 325 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References CbmStar2019Algo< CbmStsDigi >::fvMsComponentsList.
Referenced by CbmCosy2019UnpackerTaskHodo::AddMsComponentToList(), CbmMcbm2018UnpackerTaskSts::AddMsComponentToList(), and CbmDeviceMcbmUnpack::DoUnpack().
|
inlineprotectedinherited |
Map of parameter name and type.
Definition at line 140 of file CbmStar2019Algo.h.
|
inlineinherited |
Definition at line 97 of file CbmStar2019Algo.h.
|
inline |
Definition at line 58 of file CbmMcbm2018UnpackerAlgoSts.h.
References fPulserDigiVect.
Referenced by CbmMcbm2018UnpackerTaskSts::Reset().
|
inlineinherited |
For unpacker algos.
Definition at line 95 of file CbmStar2019Algo.h.
Bool_t CbmMcbm2018UnpackerAlgoSts::CreateHistograms | ( | ) |
Create General unpacking histograms
Definition at line 966 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References CbmStar2019Algo< CbmStsDigi >::AddHistoToVector(), fhDigisTimeInRun, fhMsCntEvo, fhMsErrorsEvo, fhVectorCapacity, and fhVectorSize.
Referenced by CbmCosy2019UnpackerTaskHodo::InitContainers(), and CbmMcbm2018UnpackerTaskSts::InitContainers().
Bool_t CbmMcbm2018UnpackerAlgoSts::FillHistograms | ( | ) |
Definition at line 1229 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References fbPulserOutput, CbmStar2019Algo< CbmStsDigi >::fDigiVect, fhDigisTimeInRun, and fPulserDigiVect.
Referenced by ProcessTs().
|
virtual |
Printout Goodbye message and stats
Write Output histos
Implements CbmStar2019Algo< CbmStsDigi >.
Definition at line 114 of file CbmMcbm2018UnpackerAlgoSts.cxx.
|
inlineinherited |
Definition at line 92 of file CbmStar2019Algo.h.
|
inlineinherited |
Definition at line 98 of file CbmStar2019Algo.h.
|
inlineinherited |
Definition at line 87 of file CbmStar2019Algo.h.
|
inlinevirtualinherited |
Definition at line 80 of file CbmStar2019Algo.h.
|
virtual |
Implements CbmStar2019Algo< CbmStsDigi >.
Definition at line 141 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References CbmStar2019Algo< CbmStsDigi >::fParCList, and fUnpackPar.
Referenced by CbmDeviceMcbmUnpack::InitContainers(), CbmCosy2019UnpackerTaskHodo::SetParContainers(), and CbmMcbm2018UnpackerTaskSts::SetParContainers().
|
inline |
Definition at line 57 of file CbmMcbm2018UnpackerAlgoSts.h.
References fPulserDigiVect.
Referenced by CbmMcbm2018UnpackerTaskSts::Init().
|
inlineinherited |
Definition at line 96 of file CbmStar2019Algo.h.
|
virtual |
Implements CbmStar2019Algo< CbmStsDigi >.
Definition at line 107 of file CbmMcbm2018UnpackerAlgoSts.cxx.
|
virtual |
Implements CbmStar2019Algo< CbmStsDigi >.
Definition at line 122 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References ReInitContainers().
Referenced by CbmCosy2019UnpackerTaskHodo::InitContainers(), CbmDeviceMcbmUnpack::InitContainers(), and CbmMcbm2018UnpackerTaskSts::InitContainers().
Bool_t CbmMcbm2018UnpackerAlgoSts::InitParameters | ( | ) |
! FIXME: 1) Geometry is using front/back while we are using P/N !!!! => Assuming that front facing modules have connectors on right side +> Volker warns that the front side should be electrons one so N 2) No accessor/setter to change only the side field of an STS address => hardcode the shift +> The bit is unused in the current scheme: the side is encoded in the Digi channel
! FIXME: 1) Geometry is using front/back while we are using P/N !!!! => Assuming that front facing modules have connectors on right side +> Volker warns that the front side should be electrons one so N 2) No accessor/setter to change only the side field of an STS address => hardcode the shift +> The bit is unused in the current scheme: the side is encoded in the Digi channel
Definition at line 149 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References fbBinningFw, fDpbIdIndexMap, fuNbFebs, fuNbModules, fuNbStsXyters, fUnpackPar, fuNrOfDpbs, fvbCrobActiveFlag, fvbFebPulser, fvdFebAdcGain, fvdFebAdcOffs, fvdTimeOffsetNsAsics, fviFebAddress, fviFebModuleIdx, fviFebModuleSide, fviFebSide, fviFebType, fviModAddress, fviModuleType, fvuCurrentTsMsbCycle, fvulCurrentTsMsb, fvvusLastAdcChan, fvvusLastTsChan, fvvusLastTsMsbChan, fvvusLastTsMsbCycleChan, CbmMcbm2018StsPar::GetDpbId(), CbmMcbm2018StsPar::GetFebAdcGain(), CbmMcbm2018StsPar::GetFebAdcOffset(), CbmMcbm2018StsPar::GetFebModuleIdx(), CbmMcbm2018StsPar::GetFebModuleSide(), CbmMcbm2018StsPar::GetModuleAddress(), CbmMcbm2018StsPar::GetModuleType(), CbmMcbm2018StsPar::GetNbChanPerAsic(), CbmMcbm2018StsPar::GetNbCrobsPerDpb(), CbmMcbm2018StsPar::GetNbFebsPerCrob(), CbmMcbm2018StsPar::GetNbOfModules(), CbmMcbm2018StsPar::GetNrOfAsics(), CbmMcbm2018StsPar::GetNrOfDpbs(), CbmMcbm2018StsPar::GetNrOfFebs(), CbmMcbm2018StsPar::IsCrobActive(), and CbmMcbm2018StsPar::IsFebPulser().
Referenced by ReInitContainers().
void CbmMcbm2018UnpackerAlgoSts::MaskNoisyChannel | ( | UInt_t | uFeb, |
UInt_t | uChan, | ||
Bool_t | bMasked = kTRUE ) |
Definition at line 1288 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References fbUseChannelMask, fuNbFebs, fUnpackPar, fvvbMaskedChannels, and CbmMcbm2018StsPar::GetNbChanPerFeb().
Referenced by CbmCosy2019UnpackerTaskHodo::InitContainers(), and CbmMcbm2018UnpackerTaskSts::InitContainers().
|
private |
|
private |
Definition at line 915 of file CbmMcbm2018UnpackerAlgoSts.cxx.
Referenced by ProcessMs().
|
private |
=> Quick and dirty hack for binning FW!!!
Cheat needed only for modules with FEB at bottom of module or the Test module
Duplicate hits rejection
FIXME: add plots to check what is done in this rejection
=> Quick and dirty hack for binning FW!!!
Store hit for output only if it is mapped to a module!!!
Store only if masking is disabled or if channeld is not masked 2D vector is safe as always right size if masking enabled
If EM flag ON, store a corresponding error message with the next flag after all other possible status flags set
Definition at line 708 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References fbBinningFw, fbUseChannelMask, fdAdcCut, fdStartTime, CbmStar2019Algo< CbmStsDigi >::fErrVect, fuCurrDpbIdx, fUnpackPar, fviFebAddress, fvmHitsInMs, fvuCurrentTsMsbCycle, fvulCurrentTsMsb, fvvbMaskedChannels, fvvusLastAdcChan, fvvusLastTsChan, fvvusLastTsMsbChan, fvvusLastTsMsbCycleChan, stsxyter::Message::GetHitAdc(), stsxyter::Message::GetHitChannel(), stsxyter::Message::GetHitTime(), stsxyter::Message::GetHitTimeBinning(), CbmMcbm2018StsPar::GetNbAsicsPerFeb(), CbmMcbm2018StsPar::GetNbChanPerAsic(), CbmMcbm2018StsPar::GetNbElinkPerCrob(), stsxyter::Message::IsHitMissedEvts(), stsxyter::kdClockCycleNs, kSts, stsxyter::kuHitNbTsBins, stsxyter::kuHitNbTsBinsBinning, stsxyter::kulTsCycleNbBins, stsxyter::kulTsCycleNbBinsBinning, kuMaxTsMsbDiffDuplicates, and stsxyter::kusLenStatStatus.
Referenced by ProcessMs().
|
virtual |
Check if this sDPB ID was declared in parameter file and stop there if not
If first TS being analyzed, we are probably detecting STS/MUCH boards with same sysid => Do not report the MS as bad, just ignore it
Check the current TS_MSb cycle and correct it if wrong
=> Quick and dirty hack for binning FW!!!
Get message type
=> Quick and dirty hack for binning FW!!!
Implements CbmStar2019Algo< CbmStsDigi >.
Definition at line 465 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References stsxyter::Dummy, CbmMcbm2018StsPar::ElinkIdxToAsicIdx(), CbmMcbm2018StsPar::ElinkIdxToFebIdx(), stsxyter::Empty, stsxyter::EndOfMs, stsxyter::Epoch, fbBinningFw, fbDebugMonitorMode, fbMonitorMode, fDpbIdIndexMap, CbmStar2019Algo< CbmStsDigi >::fErrVect, fhMsCntEvo, fhMsErrorsEvo, fmMsgCounter, FormatMsHeaderPrintout(), fuCurrDpbId, fuCurrDpbIdx, fuCurrentEquipmentId, fulCurrentMsIdx, fulCurrentTsIdx, fUnpackPar, fvbMaskedComponents, fviFebType, fvuCurrentTsMsbCycle, fvulCurrentTsMsb, stsxyter::Message::GetLinkIndex(), stsxyter::Message::GetLinkIndexHitBinning(), stsxyter::Message::GetMessType(), CbmMcbm2018StsPar::GetNbAsicsPerCrob(), CbmMcbm2018StsPar::GetNbCrobsPerDpb(), CbmMcbm2018StsPar::GetNbElinkPerCrob(), stsxyter::Message::GetStatusLink(), stsxyter::Hit, stsxyter::kdClockCycleNs, kSts, stsxyter::kulTsCycleNbBins, stsxyter::kulTsCycleNbBinsBinning, ProcessEpochInfo(), ProcessHitInfo(), ProcessStatusInfo(), ProcessTsMsbInfo(), stsxyter::Status, and stsxyter::TsMsb.
Referenced by ProcessTs().
|
private |
Compute the Full time stamp Use TS w/o overlap bits as they will anyway come from the TS_MSB
=> Quick and dirty hack for binning FW!!!
Convert the time in bins to Hit time in ns
Definition at line 930 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References fbBinningFw, CbmStar2019Algo< CbmStsDigi >::fErrVect, fuCurrDpbIdx, fvuCurrentTsMsbCycle, fvulCurrentTsMsb, stsxyter::Message::GetData(), stsxyter::Message::GetStatusStatus(), stsxyter::kdClockCycleNs, kSts, stsxyter::kuHitNbTsBins, stsxyter::kuHitNbTsBinsBinning, stsxyter::kulTsCycleNbBins, and stsxyter::kulTsCycleNbBinsBinning.
Referenced by ProcessMs().
|
virtual |
Ignore First TS as first MS is typically corrupt
On first TS, extract the TS parameters from header (by definition stable over time)
Ignore overlap ms if flag set by user
Compute time of TS core end
Loop over core microslices (and overlap ones if chosen)
Loop over registered components
Sort the buffers of hits => Commented out as for now problems at MS borders due to offsets
Add the hits to the output buffer as Digis
FIXME: see issue #1549 N side: 0-1023 => 0-1023 P side: 0-1023 => 2047-1024
Catch the pulser digis and either save them to their own output or drop them
Clear the buffer of hits
Clear buffers to prepare for the next TS
Sort the buffers of hits due to the time offsets applied
Sort the buffers of pulser hits due to the time offsets applied
Fill plots if in monitor mode
Implements CbmStar2019Algo< CbmStsDigi >.
Definition at line 339 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References CbmStar2019Algo< CbmStsDigi >::fbIgnoreOverlapMs, fbMonitorMode, fbPulserOutput, fdCapacityIncFactor, CbmStar2019Algo< CbmStsDigi >::fDigiVect, CbmStar2019Algo< CbmStsDigi >::fdMsSizeInNs, fdTimeOffsetNs, CbmStar2019Algo< CbmStsDigi >::fdTsCoreSizeInNs, CbmStar2019Algo< CbmStsDigi >::fdTsFullSizeInNs, fdTsStartTime, fdTsStopTimeCore, fhVectorCapacity, fhVectorSize, FillHistograms(), fPulserDigiVect, fulCurrentTsIdx, fuMsIndex, CbmStar2019Algo< CbmStsDigi >::fuNbCoreMsPerTs, CbmStar2019Algo< CbmStsDigi >::fuNbMsLoop, CbmStar2019Algo< CbmStsDigi >::fuNbOverMsPerTs, fUnpackPar, fuTsMaxVectorSize, fvbFebPulser, fvdFebAdcGain, fvdFebAdcOffs, fvdTimeOffsetNsAsics, fviFebAddress, fviFebSide, fvmHitsInMs, CbmStar2019Algo< CbmStsDigi >::fvMsComponentsList, CbmMcbm2018StsPar::GetNbAsicsPerFeb(), CbmMcbm2018StsPar::GetNbChanPerAsic(), CbmMcbm2018StsPar::GetNbChanPerFeb(), stsxyter::kdClockCycleNs, and ProcessMs().
Referenced by CbmCosy2019UnpackerTaskHodo::DoUnpack(), CbmDeviceMcbmUnpack::DoUnpack(), and CbmMcbm2018UnpackerTaskSts::DoUnpack().
|
inlinevirtual |
Implements CbmStar2019Algo< CbmStsDigi >.
Definition at line 61 of file CbmMcbm2018UnpackerAlgoSts.h.
References ProcessTs().
Referenced by ProcessTs().
|
private |
=> Quick and dirty hack for binning FW!!!
Case where we reach a normal cycle edge
First TS_MSB in MS may jump if TS dropped by DAQ
case with cycle et edge of 2 MS
Msg 1 and 2 will be same TS_MSB if data in 1st bin
New FW introduced TS_MSB suppression + large TS_MSB => warning only if value not increasing
Catch case where previous MS ended up on a TS MSB cycle as it is then already updated from the MS index
Definition at line 843 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References fbBinningFw, fuCurrDpbIdx, fulCurrentMsIdx, fulCurrentTsIdx, fvuCurrentTsMsbCycle, fvulCurrentTsMsb, stsxyter::Message::GetTsMsbVal(), and stsxyter::Message::GetTsMsbValBinning().
Referenced by ProcessMs().
|
virtual |
Implements CbmStar2019Algo< CbmStsDigi >.
Definition at line 129 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References CbmStar2019Algo< CbmStsDigi >::fParCList, fUnpackPar, and InitParameters().
Referenced by InitContainers(), CbmCosy2019UnpackerTaskHodo::ReInitContainers(), and CbmMcbm2018UnpackerTaskSts::ReInitContainers().
|
virtual |
Implements CbmStar2019Algo< CbmStsDigi >.
Definition at line 113 of file CbmMcbm2018UnpackerAlgoSts.cxx.
Bool_t CbmMcbm2018UnpackerAlgoSts::ResetHistograms | ( | ) |
Definition at line 1241 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References fhDigisTimeInRun.
Referenced by CbmCosy2019UnpackerTaskHodo::DoUnpack(), and CbmMcbm2018UnpackerTaskSts::DoUnpack().
|
inline |
Definition at line 81 of file CbmMcbm2018UnpackerAlgoSts.h.
References fbPulserOutput.
Referenced by CbmMcbm2018UnpackerTaskSts::SeparatePulserOutput().
|
inline |
Definition at line 74 of file CbmMcbm2018UnpackerAlgoSts.h.
References fdAdcCut.
Referenced by CbmMcbm2018UnpackerTaskSts::SetAdcCut(), and CbmCosy2019UnpackerTaskHodo::SetAdcCutSts().
|
inline |
=> Quick and dirty hack for binning FW!!!
Definition at line 77 of file CbmMcbm2018UnpackerAlgoSts.h.
References fbBinningFw.
Referenced by CbmDeviceMcbmUnpack::InitContainers(), and CbmMcbm2018UnpackerTaskSts::SetBinningFwFlag().
|
inlineinherited |
Control flags.
Definition at line 101 of file CbmStar2019Algo.h.
|
inline |
Definition at line 70 of file CbmMcbm2018UnpackerAlgoSts.h.
References fbMonitorMode.
Referenced by CbmCosy2019UnpackerTaskHodo::InitContainers(), and CbmMcbm2018UnpackerTaskSts::InitContainers().
|
inlinevirtualinherited |
Definition at line 79 of file CbmStar2019Algo.h.
|
inline |
Definition at line 71 of file CbmMcbm2018UnpackerAlgoSts.h.
References fdTimeOffsetNs.
Referenced by CbmDeviceMcbmUnpack::InitContainers(), CbmMcbm2018UnpackerTaskSts::SetTimeOffsetNs(), and CbmCosy2019UnpackerTaskHodo::SetTimeOffsetNsSts().
void CbmMcbm2018UnpackerAlgoSts::SetTimeOffsetNsAsic | ( | UInt_t | uAsicIdx, |
Double_t | dOffsetIn = 0.0 ) |
Definition at line 1279 of file CbmMcbm2018UnpackerAlgoSts.cxx.
References fvdTimeOffsetNsAsics.
Referenced by CbmMcbm2018UnpackerTaskSts::SetTimeOffsetNsAsic(), and CbmCosy2019UnpackerTaskHodo::SetTimeOffsetNsAsicSts().
|
inline |
Definition at line 79 of file CbmMcbm2018UnpackerAlgoSts.h.
References fdCapacityIncFactor.
|
private |
=> Quick and dirty hack for binning FW!!!
Definition at line 89 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), ProcessHitInfo(), ProcessMs(), ProcessStatusInfo(), ProcessTsMsbInfo(), and SetBinningFwFlag().
|
private |
Switch ON the filling of a minimal set of histograms.
Definition at line 86 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessMs().
|
protectedinherited |
Definition at line 112 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019MonitorAlgoHodo::ProcessTs(), CbmCosy2019UnpackerAlgoHodo::ProcessTs(), and ProcessTs().
|
private |
Control flags.
Definition at line 85 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessMs(), ProcessTs(), and SetMonitorMode().
|
private |
Definition at line 90 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by FillHistograms(), ProcessTs(), and SeparatePulserOutput().
|
private |
Definition at line 120 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by MaskNoisyChannel(), and ProcessHitInfo().
|
private |
Vector of channel masks, [ NbFeb ][ NbCHanInFeb ], used only if fbUseChannelMask is true.
Definition at line 123 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessHitInfo(), and SetAdcCut().
|
private |
Definition at line 180 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessTs(), and SetVectCapInc().
|
protectedinherited |
Vector of pointers to canvases + optional folder name.
For unpacker algos
Definition at line 134 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019UnpackerAlgoHodo::FillHistograms(), FillHistograms(), CbmCosy2019UnpackerAlgoHodo::ProcessTs(), and ProcessTs().
|
protectedinherited |
/** Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice **/
Definition at line 113 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019MonitorAlgoHodo::ProcessTs(), CbmCosy2019UnpackerAlgoHodo::ProcessTs(), and ProcessTs().
|
private |
End Time in ns of current TS Core from the index of the first MS first component.
Definition at line 134 of file CbmMcbm2018UnpackerAlgoSts.h.
|
private |
Total number of STS DPBs in system.
Definition at line 100 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), and ProcessMs().
|
private |
Current TS MSB cycle for DPB Starting state book-keeping
Definition at line 147 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessHitInfo().
|
private |
Time of first valid hit (TS_MSB available), used as reference for evolution plots
Definition at line 148 of file CbmMcbm2018UnpackerAlgoSts.h.
|
private |
ADC offset in e-, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].
User settings: Data correction parameters
Definition at line 118 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessTs(), and SetTimeOffsetNs().
|
protectedinherited |
Size of a single MS, [nanoseconds].
Definition at line 114 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019MonitorAlgoHodo::ProcessTs(), CbmCosy2019UnpackerAlgoHodo::ProcessTs(), and ProcessTs().
|
protectedinherited |
Total size of the core MS in a TS, [nanoseconds].
Definition at line 115 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019MonitorAlgoHodo::ProcessTs(), CbmCosy2019UnpackerAlgoHodo::ProcessTs(), and ProcessTs().
|
private |
Definition at line 132 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessTs().
|
private |
Time in ns of current TS from the index of the first MS first component.
Definition at line 133 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessTs().
|
protectedinherited |
Definition at line 135 of file CbmStar2019Algo.h.
Referenced by ProcessHitInfo(), ProcessMs(), and ProcessStatusInfo().
|
private |
TS MSB cycle of last hit message for each channel, [ AsicIdx ][ Chan ].
Histograms
Definition at line 170 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by CreateHistograms(), FillHistograms(), and ResetHistograms().
|
private |
Definition at line 183 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by CreateHistograms(), and ProcessMs().
|
private |
Definition at line 184 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by CreateHistograms(), and ProcessMs().
|
private |
Definition at line 178 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by CreateHistograms(), and ProcessTs().
|
private |
Definition at line 177 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by CreateHistograms(), and ProcessTs().
|
private |
Start of run time since "epoch" in s, for the plots with date as X axis.
Definition at line 142 of file CbmMcbm2018UnpackerAlgoSts.h.
|
private |
Index of the DPB from which the MS currently unpacked is coming.
Definition at line 141 of file CbmMcbm2018UnpackerAlgoSts.h.
|
private |
Index of current MS within the TS Current data properties
Definition at line 137 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessMs().
|
protectedinherited |
For any algo.
Definition at line 138 of file CbmStar2019Algo.h.
|
protectedinherited |
Parameter management.
Definition at line 105 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019MonitorAlgoHodo::GetParList(), CbmCosy2019UnpackerAlgoHodo::GetParList(), GetParList(), CbmCosy2019UnpackerAlgoHodo::ReInitContainers(), ReInitContainers(), and ~CbmMcbm2018UnpackerAlgoSts().
|
private |
All hits (time in bins, ADC in bins, asic, channel) in last MS, sorted with "<" operator.
Pulser Digis output, needed as STS reco does not accept Digis without a valid STS address
Definition at line 157 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ClearPulserVector(), FillHistograms(), GetPulserVector(), and ProcessTs().
|
private |
Time of first microslice, used as reference for evolution plots
Definition at line 150 of file CbmMcbm2018UnpackerAlgoSts.h.
|
private |
Current equipment ID, tells from which DPB the current MS is originating.
Definition at line 139 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessMs().
|
private |
Temp holder until Current equipment ID is properly filled in MS.
Definition at line 140 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessHitInfo(), ProcessMs(), ProcessStatusInfo(), and ProcessTsMsbInfo().
|
private |
Definition at line 138 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessMs().
|
private |
Definition at line 131 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessMs(), and ProcessTsMsbInfo().
|
private |
Running indices TS/MS info
Definition at line 130 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessMs(), ProcessTs(), and ProcessTsMsbInfo().
|
private |
Start Time in ns of current MS from its index field in header.
Definition at line 135 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessTs().
|
protectedinherited |
Definition at line 109 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019MonitorAlgoHodo::ProcessTs(), CbmCosy2019UnpackerAlgoHodo::ProcessTs(), and ProcessTs().
|
private |
Array to hold the active flag for all CROBs, [ NbDpb ][ NbCrobPerDpb ].
Definition at line 103 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), and MaskNoisyChannel().
|
private |
Readout chain dimensions and mapping
Definition at line 95 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters().
|
protectedinherited |
Definition at line 111 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019MonitorAlgoHodo::ProcessTs(), CbmCosy2019UnpackerAlgoHodo::ProcessTs(), and ProcessTs().
|
protectedinherited |
Definition at line 110 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019MonitorAlgoHodo::ProcessTs(), CbmCosy2019UnpackerAlgoHodo::ProcessTs(), and ProcessTs().
|
private |
Number of FEBs with StsXyter ASICs.
Definition at line 104 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters().
|
private |
If ON a separate output vector of digi is used for the pulser.
Settings from parameter file
Definition at line 93 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by GetParList(), InitParameters(), MaskNoisyChannel(), ProcessHitInfo(), ProcessMs(), ProcessTs(), ReInitContainers(), and ~CbmMcbm2018UnpackerAlgoSts().
|
private |
STS address for the first strip of each module.
Definition at line 99 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters().
|
private |
Definition at line 179 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessTs().
|
private |
Map of DPB Identifier to DPB index.
Definition at line 102 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters().
|
private |
FEB type, [ NbDpb ][ NbCrobPerDpb ][ NbFebsPerCrob ], 0 = A, 1 = B, -1 if inactive.
Definition at line 111 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), and ProcessTs().
|
private |
Switch ON the filling of a additional set of histograms.
Definition at line 87 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessMs().
|
private |
Module side for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].
Definition at line 114 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), and ProcessTs().
|
private |
ADC gain in e-/b, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].
Definition at line 115 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), and ProcessTs().
|
private |
Definition at line 119 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), ProcessTs(), and SetTimeOffsetNsAsic().
|
private |
Pulser flag for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].
Definition at line 112 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), ProcessHitInfo(), and ProcessTs().
|
private |
Number of StsXyter ASICs.
Definition at line 106 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters().
|
private |
Idx of the STS module for each FEB, [ NbDpb ][ NbCrobPerDpb ][ NbFebsPerCrob ], -1 if inactive.
Definition at line 108 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters().
|
private |
STS address for each FEB, [ NbDpb * NbCrobPerDpb * NbFebsPerCrob ].
Definition at line 113 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), and ProcessTs().
|
private |
STS module side for each FEB, [ NbDpb ][ NbCrobPerDpb ][ NbFebsPerCrob ], 0 = P, 1 = N, -1 if inactive.
Definition at line 110 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), and ProcessMs().
|
private |
Type of each module: 0 for connectors on the right, 1 for connectors on the left.
Definition at line 98 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters().
|
private |
Total number of STS modules in the setup.
Definition at line 97 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters().
|
private |
Hits time-sorting.
Time of run Start from UNIX system, used as reference for long evolution plots against reception time
Definition at line 154 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessHitInfo(), ProcessTs(), and ~CbmMcbm2018UnpackerAlgoSts().
|
protectedinherited |
Parameters related to FLES containers.
Definition at line 108 of file CbmStar2019Algo.h.
Referenced by CbmCosy2019MonitorAlgoHodo::AddMsComponentToList(), CbmCosy2019UnpackerAlgoHodo::AddMsComponentToList(), AddMsComponentToList(), CbmCosy2019MonitorAlgoHodo::ProcessTs(), CbmCosy2019UnpackerAlgoHodo::ProcessTs(), and ProcessTs().
|
protectedinherited |
Vector of pointers to histograms + optional folder name.
Definition at line 131 of file CbmStar2019Algo.h.
|
protectedinherited |
Total size of the core MS in a TS, [nanoseconds].
For monitor algos => Pointers should be filled with TH1*, TH2*, TProfile*, ... ==> To check if object N is of type T, use "T ObjectPointer = dynamic_cast<T>( fvpAllHistoPointers[N].first );" and check for nullptr ==> To get back the original class name use "fvpAllHistoPointers[N].first->ClassName()" which returns a const char * (e.g. "TH1I") ===> Usage example with feeding a THttpServer: ===> #include "TH2.h" ===> std::string sClassName = vHistos[ uHisto ].first.ClassName(); ===> if( !strncmp( sClassName, "TH1", 3 ) ) ===> server->Register( vHistos[ uHisto ].second.data(), dynamic_cast< TH1 * >(vHistos[ uHisto ].first) ); ===> else if( !strncmp( sClassName, "TH2", 3 ) ) ===> server->Register( vHistos[ uHisto ].second.data(), dynamic_cast< TH2 * >(vHistos[ uHisto ].first) );
Definition at line 129 of file CbmStar2019Algo.h.
|
private |
Current TS MSB for each DPB.
Definition at line 145 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), ProcessHitInfo(), ProcessMs(), ProcessStatusInfo(), and ProcessTsMsbInfo().
|
private |
Bin size in s for the plots with date as X axis Data format control
Definition at line 144 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), ProcessHitInfo(), ProcessMs(), ProcessStatusInfo(), and ProcessTsMsbInfo().
|
private |
Definition at line 122 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by MaskNoisyChannel(), and ProcessHitInfo().
|
private |
TS of last hit message for each channel, [ AsicIdx ][ Chan ].
Definition at line 163 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), and ProcessHitInfo().
|
private |
Definition at line 161 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), and ProcessHitInfo().
|
private |
ADC of last hit message for each channel, [ AsicIdx ][ Chan ].
Definition at line 165 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), and ProcessHitInfo().
|
private |
TS MSB of last hit message for each channel, [ AsicIdx ][ Chan ].
Definition at line 167 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by InitParameters(), and ProcessHitInfo().
|
staticprivate |
Constants.
Definition at line 126 of file CbmMcbm2018UnpackerAlgoSts.h.
|
staticprivate |
Duplicate hits suppression.
Definition at line 160 of file CbmMcbm2018UnpackerAlgoSts.h.
Referenced by ProcessHitInfo().