CbmRoot
|
#include <CbmMcbm2018UnpackerAlgoPsd.h>
Public Member Functions | |
CbmMcbm2018UnpackerAlgoPsd () | |
~CbmMcbm2018UnpackerAlgoPsd () | |
virtual Bool_t | Init () |
virtual void | Reset () |
virtual void | Finish () |
Bool_t | InitContainers () |
Bool_t | ReInitContainers () |
TList * | GetParList () |
Bool_t | InitParameters () |
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 | SetDiamondDpbIdx (UInt_t uIdx=2) |
virtual void | SetParameter (std::string) |
virtual std::string | GetParameter (std::string) |
void | AddHistoToVector (TNamed *pointer, std::string sFolder="") |
For monitor algos. More... | |
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. More... | |
std::vector< CbmPsdDigi > & | GetVector () |
void | ClearErrorVector () |
std::vector< CbmErrorMessage > & | GetErrorVector () |
void | SetIgnoreOverlapMs (Bool_t bFlagIn=kTRUE) |
Control flags. More... | |
Protected Member Functions | |
Bool_t | CheckParameterValidity (std::string, std::string) |
Map of parameter name and type. More... | |
Protected Attributes | |
TList * | fParCList |
Parameter management. More... | |
std::vector< size_t > | fvMsComponentsList |
Parameters related to FLES containers. More... | |
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 **/ More... | |
Double_t | fdTsCoreSizeInNs |
Size of a single MS, [nanoseconds]. More... | |
Double_t | fdTsFullSizeInNs |
Total size of the core MS in a TS, [nanoseconds]. More... | |
std::vector< std::pair< TNamed *, std::string > > | fvpAllHistoPointers |
Total size of the core MS in a TS, [nanoseconds]. More... | |
std::vector< std::pair< TCanvas *, std::string > > | fvpAllCanvasPointers |
Vector of pointers to histograms + optional folder name. More... | |
std::vector< CbmPsdDigi > | fDigiVect |
Vector of pointers to canvases + optional folder name. More... | |
std::vector< CbmErrorMessage > | fErrVect |
std::map< std::string, std::string > | fParameterMap |
For any algo. More... | |
Private Member Functions | |
CbmMcbm2018UnpackerAlgoPsd (const CbmMcbm2018UnpackerAlgoPsd &) | |
CbmMcbm2018UnpackerAlgoPsd | operator= (const CbmMcbm2018UnpackerAlgoPsd &) |
Private Attributes | |
Bool_t | fbMonitorMode |
Control flags. More... | |
Bool_t | fbDebugMonitorMode |
Switch ON the filling of a minimal set of histograms. More... | |
std::vector< Bool_t > | fvbMaskedComponents |
Switch ON the filling of a additional set of histograms. More... | |
CbmMcbm2018PsdPar * | fUnpackPar |
Settings from parameter file. More... | |
UInt_t | fuNrOfGdpbs |
std::map< UInt_t, UInt_t > | fGdpbIdIndexMap |
Total number of GDPBs in the system. More... | |
UInt_t | fuNrOfFeePerGdpb |
gDPB ID to index map More... | |
UInt_t | fuNrOfChannelsPerFee |
Number of FEBs per GDPB. More... | |
UInt_t | fuNrOfChannelsPerGdpb |
Number of channels in each FEE. More... | |
UInt_t | fuNrOfGbtx |
Number of channels per GDPB. More... | |
UInt_t | fuNrOfModules |
std::vector< Int_t > | fviNrOfRpc |
std::vector< Int_t > | fviRpcType |
std::vector< Int_t > | fviRpcSide |
std::vector< Int_t > | fviModuleId |
std::vector< Int_t > | fviPsdChUId |
Double_t | fdTimeOffsetNs |
User settings: Data correction parameters. More... | |
UInt_t | fuDiamondDpbIdx |
ULong64_t | fulCurrentTsIdx |
ULong64_t | fulCurrentMsIdx |
Idx of the current TS. More... | |
size_t | fuCurrentMsSysId |
Idx of the current MS in TS (0 to fuTotalMsNb) More... | |
Double_t | fdTsStartTime |
SysId of the current MS in TS (0 to fuTotalMsNb) More... | |
Double_t | fdTsStopTimeCore |
Time in ns of current TS from the index of the first MS first component. More... | |
Double_t | fdMsTime |
End Time in ns of current TS Core from the index of the first MS first component. More... | |
UInt_t | fuMsIndex |
Start Time in ns of current MS from its index field in header. More... | |
UInt_t | fuCurrentEquipmentId |
Index of current MS within the TS. More... | |
UInt_t | fuCurrDpbId |
Current equipment ID, tells from which DPB the current MS is originating. More... | |
UInt_t | fuCurrDpbIdx |
Temp holder until Current equipment ID is properly filled in MS. More... | |
Int_t | fiRunStartDateTimeSec |
Index of the DPB from which the MS currently unpacked is coming. More... | |
Int_t | fiBinSizeDatePlots |
Start of run time since "epoch" in s, for the plots with date as X axis. More... | |
std::vector< ULong64_t > | fvulCurrentEpoch |
Bin size in s for the plots with date as X axis. More... | |
std::vector< ULong64_t > | fvulCurrentEpochCycle |
Current epoch index, per DPB. More... | |
std::vector< ULong64_t > | fvulCurrentEpochFull |
Epoch cycle from the Ms Start message and Epoch counter flip. More... | |
Double_t | fdStartTime |
Epoch + Epoch Cycle. More... | |
Double_t | fdStartTimeMsSz |
std::chrono::steady_clock::time_point | ftStartTimeUnix |
Static Private Attributes | |
static const Int_t | kiMaxNbFlibLinks = 32 |
Constants. More... | |
static const UInt_t | kuBytesPerMessage = 8 |
static const UInt_t | kuDetMask = 0x0001FFFF |
Definition at line 30 of file CbmMcbm2018UnpackerAlgoPsd.h.
CbmMcbm2018UnpackerAlgoPsd::CbmMcbm2018UnpackerAlgoPsd | ( | ) |
Definition at line 31 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
CbmMcbm2018UnpackerAlgoPsd::~CbmMcbm2018UnpackerAlgoPsd | ( | ) |
Clear buffers
Definition at line 65 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
|
private |
Time of run Start from UNIX system, used as reference for long evolution plots against reception time
|
inlineinherited |
Definition at line 87 of file CbmStar2019Algo.h.
|
inlineinherited |
For monitor algos.
Definition at line 80 of file CbmStar2019Algo.h.
void CbmMcbm2018UnpackerAlgoPsd::AddMsComponentToList | ( | size_t | component, |
UShort_t | usDetectorId | ||
) |
Check for duplicates and ignore if it is the case
Add to list
Definition at line 150 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
References CbmStar2019Algo< CbmPsdDigi >::fvMsComponentsList.
Referenced by CbmMcbm2018UnpackerTaskPsd::AddMsComponentToList().
|
inlineprotectedinherited |
Map of parameter name and type.
Definition at line 147 of file CbmStar2019Algo.h.
|
inlineinherited |
Definition at line 98 of file CbmStar2019Algo.h.
|
inlineinherited |
For unpacker algos.
Definition at line 96 of file CbmStar2019Algo.h.
Bool_t CbmMcbm2018UnpackerAlgoPsd::CreateHistograms | ( | ) |
Definition at line 388 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
Referenced by CbmMcbm2018UnpackerTaskPsd::InitContainers().
Bool_t CbmMcbm2018UnpackerAlgoPsd::FillHistograms | ( | ) |
Definition at line 389 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
|
virtual |
Implements CbmStar2019Algo< CbmPsdDigi >.
Definition at line 76 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
|
inlineinherited |
Definition at line 91 of file CbmStar2019Algo.h.
|
inlineinherited |
Definition at line 99 of file CbmStar2019Algo.h.
|
inlineinherited |
Definition at line 84 of file CbmStar2019Algo.h.
|
inlinevirtualinherited |
Definition at line 75 of file CbmStar2019Algo.h.
|
virtual |
Implements CbmStar2019Algo< CbmPsdDigi >.
Definition at line 96 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
References CbmStar2019Algo< CbmPsdDigi >::fParCList, and fUnpackPar.
Referenced by CbmMcbm2018UnpackerTaskPsd::SetParContainers().
|
inlineinherited |
Definition at line 97 of file CbmStar2019Algo.h.
|
virtual |
Implements CbmStar2019Algo< CbmPsdDigi >.
Definition at line 70 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
|
virtual |
Implements CbmStar2019Algo< CbmPsdDigi >.
Definition at line 79 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
References ReInitContainers().
Referenced by CbmMcbm2018UnpackerTaskPsd::InitContainers().
Bool_t CbmMcbm2018UnpackerAlgoPsd::InitParameters | ( | ) |
Internal status initialization
Definition at line 103 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
References fGdpbIdIndexMap, fUnpackPar, fuNrOfChannelsPerFee, fuNrOfChannelsPerGdpb, fuNrOfFeePerGdpb, fuNrOfGbtx, fuNrOfGdpbs, fviPsdChUId, fvulCurrentEpoch, fvulCurrentEpochCycle, fvulCurrentEpochFull, CbmPsdAddress::GetAddress(), CbmMcbm2018PsdPar::GetGdpbId(), CbmMcbm2018PsdPar::GetNrOfChannelsPerFee(), CbmMcbm2018PsdPar::GetNrOfFeesPerGdpb(), CbmMcbm2018PsdPar::GetNrOfGbtx(), CbmMcbm2018PsdPar::GetNrOfGdpbs(), and i.
Referenced by ReInitContainers().
|
private |
|
virtual |
Check if this sDPB ID was declared in parameter file and stop there if not
Try to get it from the second message in buffer (first is epoch cycle without gDPB ID) TODO!!!!
Save start time of first valid MS )
Implements CbmStar2019Algo< CbmPsdDigi >.
Definition at line 220 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
References PsdData::PsdGbtReader::EvHdrAb, PsdData::PsdGbtReader::EvHdrAc, CbmStar2019Algo< CbmPsdDigi >::fDigiVect, fdMsTime, fdStartTime, fdTimeOffsetNs, fGdpbIdIndexMap, FormatMsHeaderPrintout(), fuCurrDpbId, fuCurrDpbIdx, fuCurrentEquipmentId, fuCurrentMsSysId, fulCurrentMsIdx, fulCurrentTsIdx, fvbMaskedComponents, fviPsdChUId, PsdData::PsdGbtReader::GetTotalGbtWordsRead(), PsdData::PsdGbtReader::HitHdr, kuBytesPerMessage, PsdData::PsdGbtReader::ReadEventFles(), PsdData::PsdEventHeaderAC::uAdcTime, PsdData::PsdEventHeaderAB::uHitsNumber, PsdData::PsdEventHeaderAB::ulMicroSlice, PsdData::PsdHitHeader::uWfmPoints, PsdData::PsdGbtReader::VectHitData, and PsdData::PsdGbtReader::VectHitHdr.
Referenced by ProcessTs().
|
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 due to the time offsets applied
Implements CbmStar2019Algo< CbmPsdDigi >.
Definition at line 165 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
References CbmStar2019Algo< CbmPsdDigi >::fbIgnoreOverlapMs, CbmStar2019Algo< CbmPsdDigi >::fDigiVect, CbmStar2019Algo< CbmPsdDigi >::fdMsSizeInNs, CbmStar2019Algo< CbmPsdDigi >::fdTsCoreSizeInNs, CbmStar2019Algo< CbmPsdDigi >::fdTsFullSizeInNs, fdTsStartTime, fdTsStopTimeCore, fulCurrentTsIdx, fuMsIndex, CbmStar2019Algo< CbmPsdDigi >::fuNbCoreMsPerTs, CbmStar2019Algo< CbmPsdDigi >::fuNbMsLoop, CbmStar2019Algo< CbmPsdDigi >::fuNbOverMsPerTs, CbmStar2019Algo< CbmPsdDigi >::fvMsComponentsList, and ProcessMs().
Referenced by CbmMcbm2018UnpackerTaskPsd::DoUnpack(), and ProcessTs().
|
inlinevirtual |
Implements CbmStar2019Algo< CbmPsdDigi >.
Definition at line 46 of file CbmMcbm2018UnpackerAlgoPsd.h.
References ProcessTs().
|
virtual |
Implements CbmStar2019Algo< CbmPsdDigi >.
Definition at line 85 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
References CbmStar2019Algo< CbmPsdDigi >::fParCList, fUnpackPar, and InitParameters().
Referenced by InitContainers(), and CbmMcbm2018UnpackerTaskPsd::ReInitContainers().
|
virtual |
Implements CbmStar2019Algo< CbmPsdDigi >.
Definition at line 75 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
Bool_t CbmMcbm2018UnpackerAlgoPsd::ResetHistograms | ( | ) |
Definition at line 390 of file CbmMcbm2018UnpackerAlgoPsd.cxx.
Referenced by CbmMcbm2018UnpackerTaskPsd::DoUnpack().
|
inline |
Definition at line 63 of file CbmMcbm2018UnpackerAlgoPsd.h.
References fuDiamondDpbIdx.
Referenced by CbmMcbm2018UnpackerTaskPsd::SetDiamondDpbIdx().
|
inlineinherited |
Control flags.
Definition at line 102 of file CbmStar2019Algo.h.
|
inline |
Definition at line 57 of file CbmMcbm2018UnpackerAlgoPsd.h.
References fbMonitorMode.
Referenced by CbmMcbm2018UnpackerTaskPsd::InitContainers().
|
inlinevirtualinherited |
Definition at line 74 of file CbmStar2019Algo.h.
|
inline |
Definition at line 60 of file CbmMcbm2018UnpackerAlgoPsd.h.
References fdTimeOffsetNs.
Referenced by CbmMcbm2018UnpackerTaskPsd::SetTimeOffsetNs().
|
private |
Switch ON the filling of a minimal set of histograms.
Definition at line 71 of file CbmMcbm2018UnpackerAlgoPsd.h.
|
protectedinherited |
Definition at line 116 of file CbmStar2019Algo.h.
|
private |
Control flags.
Definition at line 69 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by SetMonitorMode().
|
protectedinherited |
Vector of pointers to canvases + optional folder name.
For unpacker algos
Definition at line 140 of file CbmStar2019Algo.h.
|
protectedinherited |
/** Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice **/
Definition at line 117 of file CbmStar2019Algo.h.
|
private |
End Time in ns of current TS Core from the index of the first MS first component.
Definition at line 111 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessMs().
|
private |
Epoch + Epoch Cycle.
Starting state book-keeping
Definition at line 133 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessMs().
|
private |
Time of first valid hit (TS_MSB available), used as reference for evolution plots
Definition at line 135 of file CbmMcbm2018UnpackerAlgoPsd.h.
|
private |
User settings: Data correction parameters.
Definition at line 93 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessMs(), and SetTimeOffsetNs().
|
protectedinherited |
Size of a single MS, [nanoseconds].
Definition at line 119 of file CbmStar2019Algo.h.
|
protectedinherited |
Total size of the core MS in a TS, [nanoseconds].
Definition at line 121 of file CbmStar2019Algo.h.
|
private |
SysId of the current MS in TS (0 to fuTotalMsNb)
Definition at line 107 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessTs().
|
private |
Time in ns of current TS from the index of the first MS first component.
Definition at line 109 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessTs().
|
protectedinherited |
Definition at line 141 of file CbmStar2019Algo.h.
|
private |
Total number of GDPBs in the system.
Definition at line 78 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by InitParameters(), and ProcessMs().
|
private |
Start of run time since "epoch" in s, for the plots with date as X axis.
Definition at line 123 of file CbmMcbm2018UnpackerAlgoPsd.h.
|
private |
Index of the DPB from which the MS currently unpacked is coming.
Definition at line 122 of file CbmMcbm2018UnpackerAlgoPsd.h.
|
protectedinherited |
For any algo.
Definition at line 145 of file CbmStar2019Algo.h.
|
protectedinherited |
Parameter management.
Definition at line 108 of file CbmStar2019Algo.h.
|
private |
Time of first microslice, used as reference for evolution plots
Definition at line 137 of file CbmMcbm2018UnpackerAlgoPsd.h.
|
private |
Current equipment ID, tells from which DPB the current MS is originating.
Definition at line 118 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessMs().
|
private |
Temp holder until Current equipment ID is properly filled in MS.
Definition at line 120 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessMs().
|
private |
Index of current MS within the TS.
Current data properties
Definition at line 116 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessMs().
|
private |
Idx of the current MS in TS (0 to fuTotalMsNb)
Definition at line 105 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessMs().
|
private |
Definition at line 94 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by SetDiamondDpbIdx().
|
private |
Idx of the current TS.
Definition at line 104 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessMs().
|
private |
Running indices TS/MS info
Definition at line 103 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessMs(), and ProcessTs().
|
private |
Start Time in ns of current MS from its index field in header.
Definition at line 112 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessTs().
|
protectedinherited |
Definition at line 112 of file CbmStar2019Algo.h.
|
protectedinherited |
Definition at line 114 of file CbmStar2019Algo.h.
|
protectedinherited |
Definition at line 113 of file CbmStar2019Algo.h.
|
private |
Settings from parameter file.
Definition at line 75 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by GetParList(), InitParameters(), and ReInitContainers().
|
private |
Number of FEBs per GDPB.
Definition at line 80 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by InitParameters().
|
private |
Number of channels in each FEE.
Definition at line 81 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by InitParameters().
|
private |
gDPB ID to index map
Definition at line 79 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by InitParameters().
|
private |
Number of channels per GDPB.
Detector Mapping
Definition at line 84 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by InitParameters().
|
private |
Readout chain dimensions and mapping
Definition at line 77 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by InitParameters().
|
private |
Definition at line 85 of file CbmMcbm2018UnpackerAlgoPsd.h.
|
private |
Switch ON the filling of a additional set of histograms.
Definition at line 72 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessMs().
|
private |
Definition at line 89 of file CbmMcbm2018UnpackerAlgoPsd.h.
|
private |
Definition at line 86 of file CbmMcbm2018UnpackerAlgoPsd.h.
|
private |
Definition at line 90 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by InitParameters(), and ProcessMs().
|
private |
Definition at line 88 of file CbmMcbm2018UnpackerAlgoPsd.h.
|
private |
Definition at line 87 of file CbmMcbm2018UnpackerAlgoPsd.h.
|
protectedinherited |
Parameters related to FLES containers.
Definition at line 111 of file CbmStar2019Algo.h.
|
protectedinherited |
Vector of pointers to histograms + optional folder name.
Definition at line 137 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 135 of file CbmStar2019Algo.h.
|
private |
Bin size in s for the plots with date as X axis.
Data format control: Current time references for each GDPB: merged epoch marker, epoch cycle, full epoch [fuNrOfGdpbs]
Definition at line 126 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by InitParameters().
|
private |
Current epoch index, per DPB.
Definition at line 128 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by InitParameters().
|
private |
Epoch cycle from the Ms Start message and Epoch counter flip.
Definition at line 129 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by InitParameters().
|
staticprivate |
Constants.
Definition at line 97 of file CbmMcbm2018UnpackerAlgoPsd.h.
|
staticprivate |
Definition at line 98 of file CbmMcbm2018UnpackerAlgoPsd.h.
Referenced by ProcessMs().
|
staticprivate |
Definition at line 99 of file CbmMcbm2018UnpackerAlgoPsd.h.