Go to the documentation of this file.
7 #ifndef CbmMcbm2018UnpackerAlgoTrdR_H
8 #define CbmMcbm2018UnpackerAlgoTrdR_H
12 #include "TObjArray.h"
47 virtual Bool_t
Init();
57 Bool_t
ProcessTs(
const fles::Timeslice& ts);
58 Bool_t
ProcessTs(
const fles::Timeslice& ts,
size_t ) {
69 Bool_t
ProcessMs(
const fles::Timeslice& ts,
size_t uMsCompIdx,
size_t uMsIdx);
72 void SetNbMsInTs(
size_t uCoreMsNb,
size_t uOverlapMsNb);
154 std::vector<CbmTrdRawMessageSpadic>*
const pVector,
155 std::vector<std::pair<std::uint64_t, std::uint64_t>>*
const qVector =
177 fles::MicrosliceDescriptor msDesc);
189 ExtractSample(
const uint64_t word, uint8_t sample, Bool_t multihit = kFALSE);
264 std::map<std::uint64_t, Int_t>
266 std::map<Int_t, std::vector<Int_t>>
Double_t fMsTime
Start Time in ns of current MS from its index field in header.
Spadic::MsMessageType GetMessageType(const uint64_t msg)
ECbmTrdUnpackerHistograms
Spadic::MsInfoType GetInfoType(const uint64_t msg)
ULong64_t fNbTimeslices
Instance of RawToDigi class.
CbmTrdParSetGain * fGainPar
CbmTrdParameter container.
Bool_t ProcessTs(const fles::Timeslice &ts, size_t)
Double_t fdMsSizeInNs
/** Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice **/
Bool_t fbDebugWriteOutput
If ON the raw messages output vector is filled and written to disk.
ULong64_t fNbSpadicErrorMsg
Number of Spadic error Messages.
static const UInt_t kBytesPerWord
Constants.
CbmTrdParSetDigi * fDigiPar
CbmTrdParameter container.
Describe TRD module working settings (HV, etc)
void SetDebugSortOutput(Bool_t bFlagIn=kTRUE)
Base class for storing raw information which comes from the Spadic v2.2 trough flib or from a tsa fil...
void SetDebugWriteOutput(Bool_t bFlagIn=kTRUE)
std::vector< CbmTrdRawMessageSpadic > * fTrdRawMessageVector
Output Spadic raw messages for debugging.
CbmTrdParSetAsic * fAsicPar
CbmTrdParameter container.
std::vector< std::uint64_t > fLastDigiTimeVec
@ kRawMessage_Signalshape_all
Int_t GetNumRda(Int_t nsamples)
Describe TRD module ASIC settings (electronic gain, delays, etc)
Bool_t fbWriteOutput
If ON the output Vector of digis is written to disk.
Bool_t SetRawOutputPointer(std::vector< CbmTrdRawMessageSpadic > *const pVector, std::vector< std::pair< std::uint64_t, std::uint64_t >> *const qVector=nullptr)
Set fTrdRawMessageVector to the address of pVector.
TString fRefGeoTag
Naming tag for the reference geometry, parameters are loaded according to this tag.
@ kRawMessage_Signalshape_filtered
ULong64_t fSpadicEpoch
Epoch counter (30 bits). Counts overflow of Spadic timestamp (11 bits).
ULong64_t fCurrTsIdx
Index of current Timeslice.
std::vector< CbmTrdRawMessageSpadic > GetRawMessageVector()
std::map< Int_t, std::vector< Int_t > > fAsicChannelMap
Map to retrieve module channelId from asicAddress and asicChannel.
ULong64_t fNbWildRda
Number of RDA Words outside of a Message.
CbmTrdRawMessageSpadic CreateRawMessage(const uint64_t word, fles::MicrosliceDescriptor msDesc)
CbmMcbm2018UnpackerAlgoTrdR & operator=(const CbmMcbm2018UnpackerAlgoTrdR &)=delete
Copy assignment operator - not implemented.
Double_t fTsStartTime
Time in ns of current TS from the index of the first MS first componen.
Bool_t ProcessTs(const fles::Timeslice &ts)
void AddMsComponentToList(size_t component, UShort_t usDetectorId)
void SetDebugMonitorMode(Bool_t bFlagIn=kTRUE)
Double_t fdTimeOffsetNs
User settings: Data correction parameters.
Bool_t fbMonitorMode
Switch ON the filling of a minimal set of histograms.
std::vector< bool > fIsActiveHistoVec
Stores all Histograms.
ULong64_t fNbUnkownWord
Number of unknown data words in the Microslice stream.
Bool_t ProcessMs(const fles::Timeslice &ts, size_t uMsCompIdx, size_t uMsIdx)
Unpacks one Microslice.
ULong64_t fNbSpadicEpochMsg
Number of Spadic Epoch Messages.
Bool_t fbDebugMonitorMode
Switch ON the filling of a additional set of histograms.
CbmTrdParSetGas * fGasPar
CbmTrdParameter container.
std::vector< std::pair< std::uint64_t, std::uint64_t > > * fSpadicInfoMsgVector
vector< pair< fulltime, word > >
Bool_t SetDigiOutputPointer(std::vector< CbmTrdDigi > *const pVector)
Set fTrdDigiVector to the address of pVector.
std::vector< CbmTrdDigi > * fTrdDigiVector
Output Digi vector.
void SetWriteOutput(Bool_t bFlagIn=kTRUE)
@ kRawDistributionMapModule5
void SetMsSizeInNs(Double_t msSizeInNs)
Bool_t fbDebugSortOutput
If ON the raw messages output vector is sorted within time.
@ kDigiRelativeTimeMicroslice
@ kRawMessage_Signalshape_St
void SetBaselineAvg(Bool_t bFlagIn=kTRUE)
Call this when Spadic Average-Baseline feature is enabled.
void SetRefGeoTag(TString geoTag)
std::shared_ptr< CbmTrdDigi > MakeDigi(CbmTrdRawMessageSpadic raw)
@ kRawMessage_Signalshape_Nt
Bool_t ReInitContainers()
Bool_t CreateHistograms()
Goes through fIsActiveHistoVec and creates the activated histograms.
void SetTimeOffsetNs(Double_t dOffsetIn=0.0)
UInt_t fMsIndex
Index of current MS within the TS.
std::map< std::uint64_t, Int_t > fSpadicMap
Map to retrieve asic address from CriId/CrobId/ElinkId (see CbmTrdHardwareSetupR)
Double_t fTsStopTimeCore
End Time in ns of current TS Core from the index of the first MS first componen.
CbmMcbm2018UnpackerAlgoTrdR()
void SetMonitorMode(Bool_t bFlagIn=kTRUE)
int16_t ExtractSample(const uint64_t word, uint8_t sample, Bool_t multihit=kFALSE)
Extract a Sample from a given SOM or RDA word.
void SetNbMsInTs(size_t uCoreMsNb, size_t uOverlapMsNb)
~CbmMcbm2018UnpackerAlgoTrdR()
TList * fParContList
Parameters and Address mapping.
bool fIsFirstChannelsElinkEven
define if the first 16 channels (00..15) are found on the even (set true) or odd (false) eLinkId,...
Bool_t CreateHistogram(ECbmTrdUnpackerHistograms iHisto)
create the histogram correlated to iHisto
Bool_t fbBaselineAvg
Set to true if Baseline Averaging is activated in Spadic.
CbmMcbm2018UnpackerAlgoTrdR(const CbmMcbm2018UnpackerAlgoTrdR &)=delete
Copy constructor - not implemented.
void SetFirstChannelsElinkEven(bool isEven)
void SetActiveHistograms(std::vector< bool > isActiveHistoVec)
ULong64_t fNbSpadicRawMsg
Counters.
Timeslice unpacker algorithm for Spadic v.2.2 .