PandaRoot
PndMvdReadInTBDataTask.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef PndMvdReadInTBDataTask_H_
14 #define PndMvdReadInTBDataTask_H_
15 
16 #include "FairTask.h"
17 #include "PndGeoHandling.h"
19 
20 #include <string>
21 #include <fstream>
22 #include <vector>
23 
24 class PndMvdReadInTBDataTask : public FairTask {
25  public:
27  virtual ~PndMvdReadInTBDataTask();
28 
30  virtual void SetParContainers();
31  virtual InitStatus Init();
32  virtual InitStatus ReInit();
33 
35  virtual void Exec(Option_t *opt);
36  virtual void FinishEvent();
37 
38  void SetFrequency(Double_t val) { fClockFrequency = val; }
39  void SetNumberOfFrontEnds(Int_t numberfe);
40 
41  virtual void AddFile(Int_t asic, std::string fileName)
42  {
43  std::cout << "File Added to asic " << asic - 1 << " fileName " << fileName << std::endl;
44  if (fFileNames.size() < asic) {
45  fFileNames.resize(asic);
46  }
47  fFileNames[asic - 1].push_back(fileName);
48  };
49 
50  protected:
52  void WriteoutToPix4Frames(std::vector<std::vector<PndSdsDigiTopix4>> &frames);
53 
54  private:
55  std::vector<std::vector<std::string>> fFileNames;
56 
57  // std::vector<TString> fFileNames;
58  std::vector<std::ifstream *> fFileHandles;
59  std::vector<PndMvdReadInToPix4TBData *> fReader;
60  std::vector<Bool_t> fEndOfFile;
61 
62  UInt_t fEvent;
63 
64  TClonesArray *fDigiArray;
65  TClonesArray *fFrameHeaderArray;
66  TClonesArray *fAllFrameHeaderArray;
67 
68  Bool_t fInitDone;
69  Double_t fClockFrequency; // in MHz
70 
71  void Register();
72  void Reset();
73 
74  ClassDef(PndMvdReadInTBDataTask, 1);
75 };
76 
77 #endif /*PndMvdReadInTBDataTask_H_*/
Data class to store the digi output of a pixel module.
virtual void SetParContainers()
void SetNumberOfFrontEnds(Int_t numberfe)
virtual ~PndMvdReadInTBDataTask()
virtual void FinishEvent()
void WriteoutToPix4Frames(std::vector< std::vector< PndSdsDigiTopix4 >> &frames)
virtual InitStatus Init()
void SetFrequency(Double_t val)
virtual InitStatus ReInit()
virtual void Exec(Option_t *opt)
void WriteoutToPix4Digi(PndSdsDigiTopix4 &data)
virtual void AddFile(Int_t asic, std::string fileName)