ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtUnpacker.h
Go to the documentation of this file.
1 #ifndef _ATUNPACKER_H_
2 #define _ATUNPACKER_H_
3 
4 #include <Rtypes.h>
5 #include <TObject.h>
6 
7 #include <memory>
8 #include <string>
9 #include <utility>
10 
11 class AtRawEvent;
12 class AtMap;
13 class TBuffer;
14 class TClass;
15 class TMemberInspector;
16 
17 using mapPtr = std::shared_ptr<AtMap>;
18 
19 class AtUnpacker : public TObject {
20 protected:
22  std::string fInputFileName;
23  Long64_t fEventID = 0; // Internal event ID to be unpacked next (stored in AtRawEvent)
24  Long64_t fDataEventID = 0; // Event ID as tracked whatever produced the data being unpacked
26 
27  Bool_t fSaveFPN{false};
28 
29 public:
30  AtUnpacker(mapPtr map);
31  ~AtUnpacker() = default;
32 
33  virtual void SetInputFileName(std::string fileName) { fInputFileName = std::move(fileName); }
34  void SetMap(mapPtr map) { fMap = map; }
35  void SetInitialEventID(Long64_t evtID) { fEventID = evtID; }
36  virtual void SetSaveFPN(bool val = true) { fSaveFPN = val; }
37  Long64_t GetNextEventID() { return fEventID; }
38 
39  virtual void Init() = 0;
40  // Pass by ref to ensure it's a valid object
41  virtual void FillRawEvent(AtRawEvent &event) = 0;
42  // Returns true if we have unpacked the last valid event
43  virtual bool IsLastEvent() = 0;
44  virtual Long64_t GetNumEvents() = 0;
45 
46  ClassDef(AtUnpacker, 1)
47 };
48 
49 #endif //#ifndef _ATUNPACKER_H_
AtMap
Definition: AtMap.h:33
AtUnpacker::fMap
mapPtr fMap
Definition: AtUnpacker.h:21
AtUnpacker::SetMap
void SetMap(mapPtr map)
Definition: AtUnpacker.h:34
AtUnpacker::fRawEvent
AtRawEvent * fRawEvent
Definition: AtUnpacker.h:25
AtUnpacker::GetNextEventID
Long64_t GetNextEventID()
Definition: AtUnpacker.h:37
AtUnpacker::SetSaveFPN
virtual void SetSaveFPN(bool val=true)
Definition: AtUnpacker.h:36
AtUnpacker::fDataEventID
Long64_t fDataEventID
Definition: AtUnpacker.h:24
AtRawEvent
Definition: AtRawEvent.h:34
AtUnpacker::FillRawEvent
virtual void FillRawEvent(AtRawEvent &event)=0
AtUnpacker::Init
virtual void Init()=0
AtUnpacker::AtUnpacker
AtUnpacker(mapPtr map)
Definition: AtUnpacker.cxx:9
AtUnpacker::fInputFileName
std::string fInputFileName
Definition: AtUnpacker.h:22
AtUnpacker::~AtUnpacker
~AtUnpacker()=default
AtUnpacker::SetInitialEventID
void SetInitialEventID(Long64_t evtID)
Definition: AtUnpacker.h:35
AtUnpacker::fSaveFPN
Bool_t fSaveFPN
Definition: AtUnpacker.h:27
mapPtr
std::shared_ptr< AtMap > mapPtr
Definition: AtUnpacker.h:17
AtUnpacker::fEventID
Long64_t fEventID
Definition: AtUnpacker.h:23
AtUnpacker::SetInputFileName
virtual void SetInputFileName(std::string fileName)
Definition: AtUnpacker.h:33
AtUnpacker
Definition: AtUnpacker.h:19
AtUnpacker::IsLastEvent
virtual bool IsLastEvent()=0
AtUnpacker::GetNumEvents
virtual Long64_t GetNumEvents()=0