Event_ROOT.cc
Go to the documentation of this file.
1 #include <io/Event_ROOT.h>
2 #include <AugerEvent.h>
3 #include <io/ShowerRecData_ROOT.h>
4 #include <io/ShowerSimData_ROOT.h>
5 #include <io/FEvent_ROOT.h>
6 #include <io/SEvent_ROOT.h>
7 #include <io/REvent_ROOT.h>
8 #include <io/MEvent_ROOT.h>
9 #include <io/CEvent_ROOT.h>
10 #include <io/StreamerUtilities.h>
11 #include <det/Detector.h>
12 
13 #include <evt/VShowerGeometryProducer.h>
14 
15 using namespace io;
16 
17 
18 ClassImp(Event_ROOT)
19 
20 
21 Event_ROOT::Event_ROOT(const evt::Event& event) :
22  fHeader(event.GetHeader())
23 {
24  if (event.HasRawEvent())
25  ConvertCopy(fRawEvent, event.GetRawEvent());
26 
27  if (event.HasRecShower())
28  ConvertCopy(fShowerRecData, event.GetRecShower());
29 
30  if (event.HasSimShower())
31  ConvertCopy(fShowerSimData, event.GetSimShower());
32 
33  if (event.HasFEvent())
34  ConvertCopy(fFEvent, event.GetFEvent());
35 
36  if (event.HasSEvent())
37  ConvertCopy(fSEvent, event.GetSEvent());
38 
39  if (event.HasREvent())
40  ConvertCopy(fREvent, event.GetREvent());
41 
42  if (event.HasMEvent())
43  ConvertCopy(fMEvent, event.GetMEvent());
44 
45  if (event.HasCEvent())
46  ConvertCopy(fCEvent, event.GetCEvent());
47 }
48 
49 
51 {
52  delete fRawEvent;
53  delete fShowerRecData;
54  delete fShowerSimData;
55  delete fFEvent;
56  delete fSEvent;
57  delete fREvent;
58  delete fMEvent;
59  delete fCEvent;
60 }
61 
62 
65 {
66  if (this != &e) {
75  fHeader = e.fHeader;
76  }
77  return *this;
78 }
79 
80 
81 void
83  const
84 {
85 
86  if (fHeader.fTime.Convert() != det::Detector::GetInstance().GetTime())
87  det::Detector::GetInstance().Update(fHeader.fTime.Convert());
88 
89  if (fShowerRecData) {
90  event.MakeRecShower();
91  *fShowerRecData >> event.GetRecShower();
92  }
93 
94  if (fShowerSimData) {
95  event.MakeSimShower(evt::ShowerGeometryAlreadyProduced()); // this implies that ShowerSimData::MakeGeometry() cannot be called after streaming!
96  *fShowerSimData >> event.GetSimShower();
97  }
98 
99  if (fFEvent) {
100  event.MakeFEvent();
101  *fFEvent >> event.GetFEvent();
102  }
103 
104  if (fSEvent) {
105  event.MakeSEvent();
106  *fSEvent >> event.GetSEvent();
107  }
108 
109  if (fREvent) {
110  event.MakeREvent();
111  *fREvent >> event.GetREvent();
112  }
113 
114  if (fMEvent) {
115  event.MakeMEvent();
116  *fMEvent >> event.GetMEvent();
117  }
118 
119  if (fCEvent) {
120  event.MakeCEvent();
121  *fCEvent >> event.GetCEvent();
122  }
123 
124  if (fRawEvent) {
125  event.MakeRawEvent();
126  event.GetRawEvent() = *fRawEvent;
127  }
128 
129  fHeader >> event.GetHeader();
130 }
void operator>>(const Event &theEvent, IoSdEvent &rawSEvent)
AugerEvent * fRawEvent
Definition: Event_ROOT.h:41
void ConvertCopy(T *&destination, const U &source)
ShowerSimData_ROOT * fShowerSimData
Definition: Event_ROOT.h:43
TimeStamp_ROOT fTime
Definition: Header_ROOT.h:29
FEvent_ROOT * fFEvent
Definition: Event_ROOT.h:44
MEvent_ROOT * fMEvent
Definition: Event_ROOT.h:47
REvent_ROOT * fREvent
Definition: Event_ROOT.h:46
Event Class being actually streamed when using ROOT IO.
Definition: Event_ROOT.h:33
utl::TimeStamp Convert() const
ShowerRecData_ROOT * fShowerRecData
Definition: Event_ROOT.h:42
void DeepCopy(T *&destination, U *const source)
SEvent_ROOT * fSEvent
Definition: Event_ROOT.h:45
Event_ROOT & operator=(const Event_ROOT &e)
Definition: Event_ROOT.cc:64
CEvent_ROOT * fCEvent
Definition: Event_ROOT.h:48
Header_ROOT fHeader
Definition: Event_ROOT.h:49

, generated on Tue Sep 26 2023.