/** * @file * @author Christian Simon * @since 2017-06-01 */ #ifndef CBMTOFDIGITIZEDEV_H #define CBMTOFDIGITIZEDEV_H 1 #include "CbmDigitize.h" #include "TString.h" #include class CbmTofGeoHandler; class CbmTofDigiTbPar; class CbmDaqPointBuffer; class TClonesArray; /** * @brief ... * @author Christian Simon * @since 2017-06-01 * @version 1.0 * @details ... */ class CbmTofDigitizeDev : public CbmDigitize { public: CbmTofDigitizeDev(); virtual ~CbmTofDigitizeDev(); virtual void Exec(Option_t *option); virtual void FinishEvent(); virtual void ResetArrays(); virtual void WriteDigi(CbmDigi* digi, CbmMatch* match = nullptr); virtual void FillCustomData(Double_t fillTime, Bool_t limit = kTRUE); void SetMemorizeCharges(Bool_t bMemory = kTRUE) {fbMemorizeCharges = bMemory;} void SetGenerateDarkRate(Bool_t bDarkRate = kTRUE) {fbGenerateDarkRate = bDarkRate;} void SetCalibrateDigis(Bool_t bCalibration = kTRUE) {fbCalibrateDigis = bCalibration;} void SetNThreads(Int_t iNThreads) {fiNMemoryThreads = iNThreads;} void SetRemoveHitsFromMemory(Bool_t bRemove) {fbRemoveHitsFromMemory = bRemove;} void SetHitRemovalCriterion(Double_t dCriterion) {fdHitRemovalCriterion = dCriterion;} void SetSendPointsToDAQ(Bool_t bSend) {fbSendPointsToDAQ = bSend;} void SetClearMemoryInSpillBreak(Bool_t bClear) {fbClearMemorySB = bClear;} void SetSpillBreakLength(Double_t dLength) {fdSpillBreakLength = dLength;} void SetEventTimeOffset(Double_t dOffset) {fdEventTimeOffset = dOffset;} void SetAlternativeBranchNames(Bool_t bAlternative = kTRUE) {fbAlternativeBranchNames = bAlternative;} void SetFileIndex(Int_t iIndex) {fiFileIndex = iIndex;} protected: virtual InitStatus Init(); virtual void SetParContainers(); virtual void Finish(); private: CbmTofDigitizeDev(const CbmTofDigitizeDev&); CbmTofDigitizeDev& operator=(const CbmTofDigitizeDev&); CbmTofDigiTbPar* fDigiTbParSet; CbmTofGeoHandler* fGeoHandler; Bool_t fbMemorizeCharges; Bool_t fbGenerateDarkRate; Bool_t fbCalibrateDigis; Int_t fiNMemoryThreads; Bool_t fbRemoveHitsFromMemory; Double_t fdHitRemovalCriterion; Bool_t fbSendPointsToDAQ; Double_t fdPreviousPointTime; Bool_t fbClearMemorySB; Double_t fdSpillBreakLength; Double_t fdEventTimeOffset; TClonesArray* fTofDigis; TClonesArray* fTofPointsTB; CbmDaqPointBuffer* fPointBuffer; std::map fPointIndices; Bool_t fbAlternativeBranchNames; Int_t fiFileIndex; ClassDef(CbmTofDigitizeDev, 0) }; #endif