#ifndef PndGapEventBuilderTask_H_ #define PndGapEventBuilderTask_H_ #include "TClonesArray.h" #include "FairTask.h" //#include "PndSdsHit.h" #include "FairTSBufferFunctional.h" #include class PndGapEventBuilderTask : public FairTask { public: PndGapEventBuilderTask(); virtual ~PndGapEventBuilderTask(); /** Virtual method Init **/ virtual void SetParContainers(); virtual InitStatus Init(); virtual InitStatus ReInit(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); virtual void FinishEvent(); void SetTimeGap(double val) {fTimeGap = val;} void SetBranchName(TString name) {fMainBranchName = name;}; void AddAdditionalBranches(TString branchName, Double_t timeWindow){ std::pair val(branchName, timeWindow); fAddBranches.push_back(val); } void SetPersistence(Bool_t val){ fPersistence = val;}; private: int fEventNr; double fTimeGap; TString fMainBranchName; TClonesArray* fMainHitArray; TClonesArray* fMainEventHitArray; std::vector > fAddBranches; std::vector fAddHitArray; std::vector fAddEventHitArray; Bool_t fInitDone; Bool_t fPersistence; BinaryFunctor* fStartFunctor; BinaryFunctor* fStopFunctor; BinaryFunctor* fTimeGapFunctor; Int_t fEntryNr; void Register(); void Reset(); void ProduceHits(); ClassDef(PndGapEventBuilderTask,1); }; #endif /*PndGapEventBuilderTask_H_*/