ARTEMIS-CRIB
 
Loading...
Searching...
No Matches
TMUXData.cc
Go to the documentation of this file.
1/**
2 * @file TMUXData.cc
3 * @brief Source file for the TMUXData class.
4 * @author Kodai Okawa<okawa@cns.s.u-tokyo.ac.jp>
5 * @date 2022-07-30 09:49:05
6 * @note last modified: 2025-01-02 13:48:35
7 * @details
8 */
9
10#include "TMUXData.h"
11
12#include <constant.h>
13
14/// ROOT macro for class implementation
16
17namespace art::crib {
19 : fE1(kInvalidD), fE2(kInvalidD),
20 fP1(kInvalidD), fP2(kInvalidD),
21 fTiming(kInvalidD), fTVec() {
22 TDataObject::SetID(kInvalidI);
23}
24
25TMUXData::~TMUXData() = default;
26
28 : TDataObject(rhs),
29 fE1(rhs.fE1),
30 fE2(rhs.fE2),
31 fP1(rhs.fP1),
32 fP2(rhs.fP2),
33 fTiming(rhs.fTiming),
34 fTVec(rhs.fTVec) {
35}
36
38 if (this != &rhs) {
39 TDataObject::operator=(rhs);
40 fE1 = rhs.fE1;
41 fE2 = rhs.fE2;
42 fP1 = rhs.fP1;
43 fP2 = rhs.fP2;
44 fTiming = rhs.fTiming;
45 fTVec = rhs.fTVec;
46 }
47 return *this;
48}
49
50void TMUXData::Copy(TObject &dest) const {
51 TDataObject::Copy(dest);
52 auto *cobj = dynamic_cast<TMUXData *>(&dest);
53 if (cobj) {
54 cobj->fE1 = this->GetE1();
55 cobj->fE2 = this->GetE2();
56 cobj->fP1 = this->GetP1();
57 cobj->fP2 = this->GetP2();
58 cobj->fTiming = this->GetTrig();
59 cobj->fTVec = this->fTVec;
60 } else {
61 Error("Copy", "Cannot cast TObject to TMUXData.");
62 }
63}
64
65void TMUXData::Clear(Option_t *opt) {
66 TDataObject::Clear(opt);
67 TDataObject::SetID(kInvalidI);
68 fE1 = kInvalidD;
69 fE2 = kInvalidD;
70 fP1 = kInvalidD;
71 fP2 = kInvalidD;
72 fTiming = kInvalidD;
73 fTVec.clear();
74 fTVec.shrink_to_fit();
75}
76
77void TMUXData::PushTiming(Double_t value) {
78 fTVec.emplace_back(value);
79}
80
81Double_t TMUXData::GetT(Int_t index) const {
82 if (index >= 0 && index < static_cast<Int_t>(fTVec.size())) {
83 return fTVec[index];
84 }
85 return kInvalidD;
86}
87
88} // namespace art::crib
ClassImp(art::crib::TMUXData)
ROOT macro for class implementation.
Header file for the TMUXData class.
Represents data from the MUX module (E1, E2, P1, P2, T).
Definition TMUXData.h:25
Double_t fP2
Second position value.
Definition TMUXData.h:108
Double_t fP1
First position value.
Definition TMUXData.h:107
Double_t GetE1() const
Get the first energy value.
Definition TMUXData.h:54
std::vector< Double_t > fTVec
Vector of timing values from MHTDC.
Definition TMUXData.h:111
Double_t GetP2() const
Get the second position value.
Definition TMUXData.h:66
Double_t fE2
Second energy value.
Definition TMUXData.h:106
void PushTiming(Double_t value)
Add a new timing value.
Definition TMUXData.cc:77
void Copy(TObject &dest) const override
Copy the contents of this object to another TObject.
Definition TMUXData.cc:50
~TMUXData() override
Destructor.
Double_t GetP1() const
Get the first position value.
Definition TMUXData.h:63
TMUXData()
Constructor.
Definition TMUXData.cc:18
Double_t fE1
First energy value.
Definition TMUXData.h:105
Double_t fTiming
Timing value for the trigger.
Definition TMUXData.h:109
void Clear(Option_t *opt="") override
Clear the object's contents.
Definition TMUXData.cc:65
Double_t GetT(Int_t index=0) const
Get the timing value at a specific index.
Definition TMUXData.cc:81
Double_t GetE2() const
Get the second energy value.
Definition TMUXData.h:57
TMUXData & operator=(const TMUXData &rhs)
Copy assignment operator.
Definition TMUXData.cc:37
Double_t GetTrig() const
Get the timing value.
Definition TMUXData.h:72
return to the guide