EICd
EIC data model
RawPMTHit.h
Go to the documentation of this file.
1 // AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2 
3 #ifndef EICD_RawPMTHit_H
4 #define EICD_RawPMTHit_H
5 
6 #include "eicd/RawPMTHitConst.h"
7 #include "eicd/RawPMTHitObj.h"
8 
9 #include "eicd/Index.h"
10 #include "podio/ObjectID.h"
11 #include <ostream>
12 
13 
14 
15 namespace eic {
16 
17 
18 /** @class RawPMTHit
19  * EIC Raw PMT hit
20  * @author: S. Joosten, C. Peng
21  */
22 class RawPMTHit {
23 
24  friend class RawPMTHitCollection;
26  friend class ConstRawPMTHit;
27 
28 public:
29 
30  /// default constructor
31  RawPMTHit();
32  RawPMTHit(eic::Index ID, std::int64_t cellID, std::uint32_t amplitude, std::uint32_t time);
33 
34  /// constructor from existing RawPMTHitObj
35  RawPMTHit(RawPMTHitObj* obj);
36 
37  /// copy constructor
38  RawPMTHit(const RawPMTHit& other);
39 
40  /// copy-assignment operator
41  RawPMTHit& operator=(const RawPMTHit& other);
42 
43  /// support cloning (deep-copy)
44  RawPMTHit clone() const;
45 
46  /// destructor
47  ~RawPMTHit();
48 
49  /// conversion to const object
50  operator ConstRawPMTHit() const;
51 
52 public:
53 
54  /// Access the unique hit ID
55  const eic::Index& ID() const;
56 
57  /// Access the The detector specific (geometrical) cell id.
58  const std::int64_t& cellID() const;
59 
60  /// Access the PMT signal amplitude [ADC]
61  const std::uint32_t& amplitude() const;
62 
63  /// Access the PMT signal time [TDC]
64  const std::uint32_t& time() const;
65 
66 
67 
68  /// Set the unique hit ID
69  void ID(eic::Index value);
70  /// Get reference to unique hit ID
71  eic::Index& ID();
72 
73  /// Set the The detector specific (geometrical) cell id.
74  void cellID(std::int64_t value);
75 
76  /// Set the PMT signal amplitude [ADC]
77  void amplitude(std::uint32_t value);
78 
79  /// Set the PMT signal time [TDC]
80  void time(std::uint32_t value);
81 
82 
83 
84 
85 
86 
87  /// check whether the object is actually available
88  bool isAvailable() const;
89  /// disconnect from RawPMTHitObj instance
90  void unlink() { m_obj = nullptr; }
91 
92  bool operator==(const RawPMTHit& other) const { return m_obj == other.m_obj; }
93  bool operator==(const ConstRawPMTHit& other) const;
94 
95  // less comparison operator, so that objects can be e.g. stored in sets.
96  bool operator<(const RawPMTHit& other) const { return m_obj < other.m_obj; }
97 
98  unsigned int id() const { return getObjectID().collectionID * 10000000 + getObjectID().index; }
99 
100  const podio::ObjectID getObjectID() const;
101 
102 private:
103  RawPMTHitObj* m_obj;
104 };
105 
106 std::ostream& operator<<(std::ostream& o, const ConstRawPMTHit& value);
107 
108 } // namespace eic
109 
110 
111 #endif
RawPMTHitConst.h
eic::operator<<
std::ostream & operator<<(std::ostream &o, const ConstBasicParticle &value)
Definition: BasicParticle.cc:102
eic::Index
Definition: Index.h:11
eic::RawPMTHit::id
unsigned int id() const
Definition: RawPMTHit.h:98
eic::RawPMTHit::~RawPMTHit
~RawPMTHit()
destructor
Definition: RawPMTHit.cc:46
eic::RawPMTHit
Definition: RawPMTHit.h:22
eic::RawPMTHitCollection
Definition: RawPMTHitCollection.h:76
eic
Definition: BasicParticle.cc:13
eic::RawPMTHit::clone
RawPMTHit clone() const
support cloning (deep-copy)
Definition: RawPMTHit.cc:42
eic::RawPMTHit::operator=
RawPMTHit & operator=(const RawPMTHit &other)
copy-assignment operator
Definition: RawPMTHit.cc:32
eic::RawPMTHit::operator<
bool operator<(const RawPMTHit &other) const
Definition: RawPMTHit.h:96
eic::RawPMTHit::isAvailable
bool isAvailable() const
check whether the object is actually available
Definition: RawPMTHit.cc:69
RawPMTHitObj.h
eic::RawPMTHit::operator==
bool operator==(const RawPMTHit &other) const
Definition: RawPMTHit.h:92
eic::RawPMTHit::unlink
void unlink()
disconnect from RawPMTHitObj instance
Definition: RawPMTHit.h:90
eic::RawPMTHit::amplitude
const std::uint32_t & amplitude() const
Access the PMT signal amplitude [ADC].
Definition: RawPMTHit.cc:53
eic::RawPMTHit::RawPMTHit
RawPMTHit()
default constructor
Definition: RawPMTHit.cc:16
eic::RawPMTHit::time
const std::uint32_t & time() const
Access the PMT signal time [TDC].
Definition: RawPMTHit.cc:54
eic::RawPMTHitCollectionIterator
Definition: RawPMTHitCollection.h:29
eic::RawPMTHitObj
Definition: RawPMTHitObj.h:18
Index.h
eic::RawPMTHit::cellID
const std::int64_t & cellID() const
Access the The detector specific (geometrical) cell id.
Definition: RawPMTHit.cc:52
eic::RawPMTHit::getObjectID
const podio::ObjectID getObjectID() const
Definition: RawPMTHit.cc:76
eic::ConstRawPMTHit
Definition: RawPMTHitConst.h:20
eic::RawPMTHit::ID
const eic::Index & ID() const
Access the unique hit ID.
Definition: RawPMTHit.cc:51
eic::RawPMTHit::ConstRawPMTHit
friend class ConstRawPMTHit
Definition: RawPMTHit.h:26