PMT_ROOT.cc
Go to the documentation of this file.
1 #include <io/PMT_ROOT.h>
2 #include <io/PMTSimData_ROOT.h>
3 #include <io/PMTRecData_ROOT.h>
4 #include <io/PMTCalibData_ROOT.h>
5 #include <io/PMTQuality_ROOT.h>
6 #include <io/StreamerUtilities.h>
7 
8 using namespace io;
9 
10 
11 ClassImp(PMT_ROOT)
12 
13 
15 {
16  for (unsigned int i = 0; i < sdet::PMTConstants::eNumberOfGains; ++i) {
17  delete fFADCTrace[i];
18  delete fFADCTraceD[i];
19  }
20  delete fPMTSimData;
21  delete fPMTRecData;
22  delete fPMTCalibData;
23  delete fPMTQuality;
24 }
25 
26 
27 PMT_ROOT&
29 {
30  if (this != &p) {
31  fId = p.fId;
32  for (unsigned int i = 0; i < sdet::PMTConstants::eNumberOfGains; ++i) {
33  DeepCopy(fFADCTrace[i], p.fFADCTrace[i]);
35  }
40  }
41  return *this;
42 }
43 
44 
46  fId(p.GetId())
47 {
48  for (unsigned int i = 0; i < sdet::PMTConstants::eNumberOfGains; ++i) {
51  }
52 
53  if (p.HasSimData())
55 
56  if (p.HasRecData())
58 
59  if (p.HasCalibData())
61 
62  if (p.HasQuality())
64 }
65 
66 
67 void
69  const
70 {
71  for (unsigned int gain = 0; gain < sdet::PMTConstants::eNumberOfGains; ++gain) {
72  if (fFADCTrace[gain]) {
73  for (const auto& ct : fFADCTrace[gain]->fTraces) {
74  const auto comp = sevt::StationConstants::SignalComponent(ct.first);
75  if (!p.HasFADCTrace(comp))
76  p.MakeFADCTrace(comp);
77  ct.second >> p.GetFADCTrace(sdet::PMTConstants::PMTGain(gain), comp);
78  }
79  }
80  if (fFADCTraceD[gain]) {
81  for (const auto& ct : fFADCTraceD[gain]->fTraces) {
82  const auto comp = sevt::StationConstants::SignalComponent(ct.first);
83  if (!p.HasFADCTrace(comp))
84  p.MakeFADCTrace(comp);
85  ct.second >> p.GetFADCTraceD(sdet::PMTConstants::PMTGain(gain), comp);
86  }
87  }
88  }
89 
90  if (fPMTSimData) {
91  if (!p.HasSimData())
92  p.MakeSimData();
93  *fPMTSimData >> p.GetSimData();
94  }
95  if (fPMTRecData) {
96  if (!p.HasRecData())
97  p.MakeRecData();
98  *fPMTRecData >> p.GetRecData();
99  }
100  if (fPMTCalibData) {
101  if (!p.HasCalibData())
102  p.MakeCalibData();
103  *fPMTCalibData >> p.GetCalibData();
104  }
105  if (fPMTQuality) {
106  if (!p.HasQuality())
107  p.MakeQuality();
108  *fPMTQuality >> p.GetQuality();
109  }
110 }
MultiTraceI_ROOT * fFADCTrace[sdet::PMTConstants::eNumberOfGains]
Definition: PMT_ROOT.h:47
bool HasRecData() const
Check for existenc of PMT reconstructed data object.
Definition: SEvent/PMT.h:53
PMTSimData & GetSimData()
Get object containing PMT simulated data.
Definition: SEvent/PMT.h:40
class to hold data at PMT level
Definition: SEvent/PMT.h:28
void MakeQuality()
Definition: SEvent/PMT.cc:57
PMTCalibData & GetCalibData()
Get object containing PMT calibration data.
Definition: SEvent/PMT.h:56
void ConvertCopy(T *&destination, const U &source)
PMTRecData & GetRecData()
Get object containing PMT reconstructed data.
Definition: SEvent/PMT.h:48
PMTCalibData_ROOT * fPMTCalibData
Definition: PMT_ROOT.h:57
PMTQuality_ROOT * fPMTQuality
Definition: PMT_ROOT.h:58
bool HasCalibData() const
Check for existence of PMT calibration data object.
Definition: SEvent/PMT.h:61
void operator>>(sevt::PMT &p) const
Definition: PMT_ROOT.cc:68
PMT_ROOT & operator=(const PMT_ROOT &p)
Definition: PMT_ROOT.cc:28
const utl::MultiTraceD & GetMultiFADCTraceD(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
Definition: SEvent/PMT.h:128
Persistent SD PMT using ROOT.
Definition: PMT_ROOT.h:33
int gain
Definition: dump1090.h:241
void MakeSimData()
Make PMT simulated data object.
Definition: SEvent/PMT.cc:19
void MakeRecData()
Make PMT reconstructed data object.
Definition: SEvent/PMT.cc:33
bool HasFADCTrace(const StationConstants::SignalComponent source=StationConstants::eTotal) const
Check if a FADC trace exists. Trace source may be specified.
Definition: SEvent/PMT.h:83
void DeepCopy(T *&destination, U *const source)
void MakeFADCTrace(const StationConstants::SignalComponent source=StationConstants::eTotal)
Make a FADC trace. Trace source may be specified.
Definition: SEvent/PMT.cc:67
MultiTraceD_ROOT * fFADCTraceD[sdet::PMTConstants::eNumberOfGains]
Definition: PMT_ROOT.h:52
void MakeCalibData()
Make PMT calibration data object.
Definition: SEvent/PMT.cc:47
utl::TraceD & GetFADCTraceD(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain, const StationConstants::SignalComponent source=StationConstants::eTotal)
Definition: SEvent/PMT.h:121
PMTRecData_ROOT * fPMTRecData
Definition: PMT_ROOT.h:56
bool HasSimData() const
Check for existence of PMT simulated data object.
Definition: SEvent/PMT.h:45
utl::TraceI & GetFADCTrace(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain, const StationConstants::SignalComponent source=StationConstants::eTotal)
Definition: SEvent/PMT.h:72
const utl::MultiTraceI & GetMultiFADCTrace(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
Definition: SEvent/PMT.h:86
PMTSimData_ROOT * fPMTSimData
Definition: PMT_ROOT.h:55
bool HasQuality() const
Check for existence of PMT Quality (anode mask and/or raining) data object.
Definition: SEvent/PMT.h:68
PMTQuality & GetQuality()
Get object containing PMT Quality bits.
Definition: SEvent/PMT.h:64

, generated on Tue Sep 26 2023.