PandaRoot
PndGapEventBuilderTask.h
Go to the documentation of this file.
1 #ifndef PndGapEventBuilderTask_H_
2 #define PndGapEventBuilderTask_H_
3 
4 #include "TClonesArray.h"
5 #include "FairTask.h"
6 //#include "PndSdsHit.h"
7 
8 #include "FairTSBufferFunctional.h"
9 
10 #include <vector>
11 
12 class PndGapEventBuilderTask : public FairTask {
13  public:
15  virtual ~PndGapEventBuilderTask();
16 
18  virtual void SetParContainers();
19  virtual InitStatus Init();
20  virtual InitStatus ReInit();
21 
23  virtual void Exec(Option_t *opt);
24  virtual void FinishEvent();
25 
26  void SetTimeGap(double val) { fTimeGap = val; }
27  void SetBranchName(TString name) { fMainBranchName = name; };
28 
29  void AddAdditionalBranches(TString branchName, Double_t timeWindow)
30  {
31  std::pair<TString, Double_t> val(branchName, timeWindow);
32  fAddBranches.push_back(val);
33  }
34 
35  void SetPersistence(Bool_t val) { fPersistence = val; };
36 
37  private:
38  int fEventNr;
39 
40  double fTimeGap;
41  TString fMainBranchName;
42  TClonesArray *fMainHitArray;
43  TClonesArray *fMainEventHitArray;
44 
45  std::vector<std::pair<TString, Double_t>> fAddBranches;
46  std::vector<TClonesArray *> fAddHitArray;
47  std::vector<TClonesArray *> fAddEventHitArray;
48 
49  Bool_t fInitDone;
50  Bool_t fPersistence;
51 
52  BinaryFunctor *fStartFunctor;
53  BinaryFunctor *fStopFunctor;
54  BinaryFunctor *fTimeGapFunctor;
55 
56  Int_t fEntryNr;
57 
58  void Register();
59  void Reset();
60  void ProduceHits();
61 
62  ClassDef(PndGapEventBuilderTask, 1);
63 };
64 
65 #endif /*PndGapEventBuilderTask_H_*/
virtual void Exec(Option_t *opt)
virtual InitStatus Init()
virtual void SetParContainers()
virtual ~PndGapEventBuilderTask()
void SetBranchName(TString name)
virtual void FinishEvent()
void AddAdditionalBranches(TString branchName, Double_t timeWindow)
virtual InitStatus ReInit()