Station_ROOT.cc
Go to the documentation of this file.
1 #include <io/Station_ROOT.h>
2 #include <io/StationSimData_ROOT.h>
3 #include <io/StationRecData_ROOT.h>
4 #include <io/StationCalibData_ROOT.h>
5 #include <io/StationTriggerData_ROOT.h>
6 #include <io/StationGPSData_ROOT.h>
7 #include <io/sevtScintillator_ROOT.h>
8 #include <io/SmallPMTData_ROOT.h>
9 
10 using namespace io;
11 
12 
13 ClassImp(Station_ROOT)
14 
15 
17 {
18  delete fSimData;
19  delete fRecData;
20  delete fCalibData;
21  delete fTriggerData;
22  delete fGPSData;
23  delete fVemTrace;
24  delete fScintillator;
25  delete fSmallPMTData;
26 }
27 
28 
31 {
32  if (this != &s) {
33  fId = s.fId;
34  fPMTs = s.fPMTs;
43  fSaturation[0] = s.fSaturation[0];
44  fSaturation[1] = s.fSaturation[1];
47  fT2Life = s.fT2Life;
50  }
51  return *this;
52 }
53 
54 
56  fId(s.GetId()),
57  fPMTs(s.PMTsBegin(sdet::PMTConstants::eAnyType), s.PMTsEnd(sdet::PMTConstants::eAnyType)),
58  fTraceStart(s.GetTraceStartTime()),
59  fSaturation{s.IsLowGainSaturation(), s.IsHighGainSaturation()},
60  fSmallPMTSaturation(s.IsSmallPMTSaturation()),
61  fRejectionStatus(s.GetRejectionStatus()),
62  fT2Life(s.GetT2Life())
63 {
64  if (s.HasSimData())
65  ConvertCopy(fSimData, s.GetSimData());
66 
67  if (s.HasRecData())
68  ConvertCopy(fRecData, s.GetRecData());
69 
70  if (s.HasCalibData())
71  ConvertCopy(fCalibData, s.GetCalibData());
72 
73  if (s.HasTriggerData())
74  ConvertCopy(fTriggerData, s.GetTriggerData());
75 
76  if (s.HasGPSData())
77  ConvertCopy(fGPSData, s.GetGPSData());
78 
79  if (s.HasVEMTrace())
80  fVemTrace = new MultiTraceD_ROOT(s.VEMTracesBegin(), s.VEMTracesEnd());
81 
82  if (s.IsSilent())
83  fReconstructionStatus = sevt::StationConstants::eSilent;
84  else if (s.IsRejected())
85  fReconstructionStatus = sevt::StationConstants::eRejected;
86  else if (s.IsCandidate())
87  fReconstructionStatus = sevt::StationConstants::eCandidate;
88 
89  if (s.HasScintillator())
90  ConvertCopy(fScintillator, s.GetScintillator());
91 
92  if (s.HasSmallPMTData())
93  ConvertCopy(fSmallPMTData, s.GetSmallPMTData());
94 }
95 
96 
97 void
99  const
100 {
101  if (fId != s.GetId())
102  throw utl::IOFailureException("Station id in source and destination are not equal!");
103 
104  for (const auto& p : fPMTs) {
105  const int pid = p.fId;
106  p >> s.GetPMT(pid);
107  }
108 
109  if (fSimData) {
110  s.MakeSimData();
111  *fSimData >> s.GetSimData();
112  }
113 
114  if (fRecData) {
115  s.MakeRecData();
116  *fRecData >> s.GetRecData();
117  }
118 
119  if (fCalibData) {
120  s.MakeCalibData();
121  *fCalibData >> s.GetCalibData();
122  }
123 
124  if (fTriggerData) {
125  s.MakeTriggerData();
127  }
128 
129  if (fGPSData) {
130  s.MakeGPSData();
131  *fGPSData >> s.GetGPSData();
132  }
133 
134  utl::TimeStamp ts;
135  fTraceStart >> ts;
136  s.SetTraceStartTime(ts);
137 
138  if (fVemTrace) {
139  for (const auto& st : fVemTrace->fTraces) {
140  const auto source = static_cast<sevt::StationConstants::SignalComponent>(st.first);
141  if (!s.HasVEMTrace(source))
142  s.MakeVEMTrace(source);
143  st.second >> s.GetVEMTrace(source);
144  }
145  }
146 
148  s.SetSilent();
152  s.SetCandidate();
153 
157 
158  s.SetT2Life(fT2Life);
159 
160  if (fScintillator)
162 
163  if (fSmallPMTData)
165 }
bool fSaturation[2]
Definition: Station_ROOT.h:62
int GetId() const
Get the station Id.
MultiTrace_ROOT< double > MultiTraceD_ROOT
void MakeSimData()
Make station simulated data object.
void ConvertCopy(T *&destination, const U &source)
TimeStamp_ROOT fTraceStart
Definition: Station_ROOT.h:57
StationGPSData_ROOT * fGPSData
Definition: Station_ROOT.h:56
void SetCandidate()
Set candidate station flag.
bool fSmallPMTSaturation
Definition: Station_ROOT.h:65
sevt::StationRecData & GetRecData()
Get station level reconstructed data.
sevtScintillator_ROOT * fScintillator
Definition: Station_ROOT.h:73
void SetT2Life(const int t)
0 = dead, 1 = 1sec alive, 2 = 120sec alive
void SetTraceStartTime(const utl::TimeStamp &Time)
Set absolute start time of the VEM trace.
void MakeTriggerData()
Make trigger data object.
std::vector< PMT_ROOT > fPMTs
Definition: Station_ROOT.h:51
bool IsHighGainSaturation() const
void operator>>(sevt::Station &s) const
Definition: Station_ROOT.cc:98
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
utl::TraceD & GetVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal)
signal trace calibrated in [VEM charge]
Base class to report exceptions in IO.
SmallPMTData_ROOT * fSmallPMTData
Definition: Station_ROOT.h:74
class to hold data at Station level
void SetLowGainSaturation(const bool sat=true)
constexpr double s
Definition: AugerUnits.h:163
void SetRejected(const int reason)
Set rejected station flag.
void DeepCopy(T *&destination, U *const source)
SmallPMTData & GetSmallPMTData()
MultiTraceD_ROOT * fVemTrace
Definition: Station_ROOT.h:58
void MakeVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal)
Make a VEM trace object.
sevt::StationGPSData & GetGPSData()
Get GPS data for the station.
bool HasVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal) const
Check whether VEM trace exists.
Scintillator & GetScintillator()
sevt::StationCalibData & GetCalibData()
Get calibration data for the station.
void MakeRecData()
Make station reconstructed data object.
bool IsLowGainSaturation() const
Check which gains are saturated.
Persistent Station using ROOT.
Definition: Station_ROOT.h:35
PMT & GetPMT(const unsigned int pmtId)
Retrive a PMT by Id.
Station_ROOT & operator=(const Station_ROOT &s)
Definition: Station_ROOT.cc:30
StationCalibData_ROOT * fCalibData
Definition: Station_ROOT.h:54
StationRecData_ROOT * fRecData
Definition: Station_ROOT.h:53
sevt::StationSimData & GetSimData()
Get simulated data at station level.
void SetSmallPMTSaturation(const bool sat=true)
std::map< int, io::Trace_ROOT< T > > fTraces
sevt::StationTriggerData & GetTriggerData()
Get Trigger data for the station.
StationTriggerData_ROOT * fTriggerData
Definition: Station_ROOT.h:55
StationSimData_ROOT * fSimData
Definition: Station_ROOT.h:52
void MakeGPSData()
Make GPS data object.
void SetHighGainSaturation(const bool sat=true)
void MakeCalibData()
Make calibration data object.
void SetSilent()
Set silent station flag.

, generated on Tue Sep 26 2023.