ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtBaseEvent.h
Go to the documentation of this file.
1 #ifndef ATBASEEVENT_H
2 #define ATBASEEVENT_H
3 #include "AtAuxPad.h"
4 
5 #include <Rtypes.h>
6 #include <TNamed.h>
7 
8 #include <algorithm> // for max
9 #include <map> // for swap, map
10 #include <string> // for string, allocator
11 #include <utility> // for swap, move, pair
12 #include <vector> // for vector, swap
13 class TBuffer;
14 class TClass;
15 class TMemberInspector;
16 
20 class AtBaseEvent : public TNamed {
21 
22 protected:
23  using AuxPadMap = std::map<std::string, AtAuxPad>;
24  ULong_t fEventID = -1;
25  Bool_t fIsGood = true;
26  Bool_t fIsInGate = false;
27 
28  std::vector<ULong64_t> fTimestamp{1};
30  std::string fEventName;
31 
32 public:
33  AtBaseEvent(std::string name = "AtBaseEvent");
34  virtual ~AtBaseEvent() = default;
35  AtBaseEvent(AtBaseEvent &&) = default;
36  AtBaseEvent(const AtBaseEvent &) = default;
38 
39  friend void swap(AtBaseEvent &first, AtBaseEvent &second)
40  {
41  using std::swap;
42  swap(first.fEventID, second.fEventID);
43  swap(first.fIsGood, second.fIsGood);
44  swap(first.fIsInGate, second.fIsInGate);
45  swap(first.fTimestamp, second.fTimestamp);
46  swap(first.fAuxPadMap, second.fAuxPadMap);
47  swap(first.fEventName, second.fEventName);
48  };
49 
50  void Clear(Option_t *opt) override;
51 
58  std::pair<AtAuxPad *, bool> AddAuxPad(std::string auxName);
59 
60  void SetEventID(ULong_t evtid) { fEventID = evtid; }
61  void SetIsGood(Bool_t value) { fIsGood = value; }
62  void SetTimestamp(ULong64_t timestamp, int index = 0);
63  void SetNumberOfTimestamps(int numTS) { fTimestamp.resize(numTS, 0); }
64  void SetIsExtGate(Bool_t value) { fIsInGate = value; }
65  void SetEventName(std::string name) { fEventName = name; }
66 
67  ULong_t GetEventID() const { return fEventID; }
68  ULong64_t GetTimestamp(int index = 0) const { return index < fTimestamp.size() ? fTimestamp.at(index) : 0; }
69  const std::vector<ULong64_t> &GetTimestamps() const { return fTimestamp; }
70  Bool_t IsGood() const { return fIsGood; }
71  Bool_t GetIsExtGate() const { return fIsInGate; }
72  std::string GetEventName() const { return fEventName; }
73 
74  AtAuxPad *GetAuxPad(std::string auxPad)
75  {
76  return const_cast<AtAuxPad *>(const_cast<const AtBaseEvent *>(this)->GetAuxPad(std::move(auxPad)));
77  }
78  const AtAuxPad *GetAuxPad(std::string auxPad) const;
79  const AuxPadMap &GetAuxPads() const { return fAuxPadMap; }
80 
81  ClassDefOverride(AtBaseEvent, 1)
82 };
83 
84 #endif //#ifndef ATBASEEVENT_H
AtBaseEvent::fEventID
ULong_t fEventID
Definition: AtBaseEvent.h:24
AtBaseEvent::AuxPadMap
std::map< std::string, AtAuxPad > AuxPadMap
Definition: AtBaseEvent.h:23
swap
void swap(AtPad &a, AtPad &b) noexcept
Definition: AtPad.cxx:22
AtBaseEvent::GetAuxPad
AtAuxPad * GetAuxPad(std::string auxPad)
Definition: AtBaseEvent.h:74
AtBaseEvent::AtBaseEvent
AtBaseEvent(const AtBaseEvent &)=default
AtAuxPad.h
AtBaseEvent::GetAuxPads
const AuxPadMap & GetAuxPads() const
Definition: AtBaseEvent.h:79
AtBaseEvent::SetEventName
void SetEventName(std::string name)
Definition: AtBaseEvent.h:65
AtBaseEvent::fTimestamp
std::vector< ULong64_t > fTimestamp
Definition: AtBaseEvent.h:28
AtBaseEvent::SetEventID
void SetEventID(ULong_t evtid)
Definition: AtBaseEvent.h:60
AtBaseEvent::GetTimestamps
const std::vector< ULong64_t > & GetTimestamps() const
Definition: AtBaseEvent.h:69
AtBaseEvent::SetIsExtGate
void SetIsExtGate(Bool_t value)
Definition: AtBaseEvent.h:64
AtBaseEvent::SetIsGood
void SetIsGood(Bool_t value)
Definition: AtBaseEvent.h:61
AtBaseEvent::fIsGood
Bool_t fIsGood
Definition: AtBaseEvent.h:25
AtBaseEvent::fAuxPadMap
AuxPadMap fAuxPadMap
Definition: AtBaseEvent.h:29
AtBaseEvent::fIsInGate
Bool_t fIsInGate
Definition: AtBaseEvent.h:26
AtBaseEvent::AtBaseEvent
AtBaseEvent(std::string name="AtBaseEvent")
Definition: AtBaseEvent.cxx:5
AtBaseEvent::AddAuxPad
std::pair< AtAuxPad *, bool > AddAuxPad(std::string auxName)
Add new auxilary pad (AtAuxPad) to event.
Definition: AtBaseEvent.cxx:44
AtBaseEvent::IsGood
Bool_t IsGood() const
Definition: AtBaseEvent.h:70
AtBaseEvent
Base class for all event types in ATTPCROOT.
Definition: AtBaseEvent.h:20
AtBaseEvent::operator=
AtBaseEvent & operator=(AtBaseEvent object)
Definition: AtBaseEvent.cxx:7
AtBaseEvent::Clear
void Clear(Option_t *opt) override
Definition: AtBaseEvent.cxx:13
AtBaseEvent::GetEventID
ULong_t GetEventID() const
Definition: AtBaseEvent.h:67
AtBaseEvent::GetEventName
std::string GetEventName() const
Definition: AtBaseEvent.h:72
AtBaseEvent::SetTimestamp
void SetTimestamp(ULong64_t timestamp, int index=0)
Definition: AtBaseEvent.cxx:35
AtBaseEvent::GetIsExtGate
Bool_t GetIsExtGate() const
Definition: AtBaseEvent.h:71
AtBaseEvent::swap
friend void swap(AtBaseEvent &first, AtBaseEvent &second)
Definition: AtBaseEvent.h:39
AtBaseEvent::AtBaseEvent
AtBaseEvent(AtBaseEvent &&)=default
AtBaseEvent::GetTimestamp
ULong64_t GetTimestamp(int index=0) const
Definition: AtBaseEvent.h:68
AtBaseEvent::fEventName
std::string fEventName
Definition: AtBaseEvent.h:30
AtAuxPad
Definition: AtAuxPad.h:25
AtBaseEvent::~AtBaseEvent
virtual ~AtBaseEvent()=default
AtBaseEvent::SetNumberOfTimestamps
void SetNumberOfTimestamps(int numTS)
Definition: AtBaseEvent.h:63