ROOTANA
Loading...
Searching...
No Matches
manalyzer_example_esoteric.cxx
Go to the documentation of this file.
1//
2// MIDAS analyzer esoteric examples
3//
4// K.Olchanski
5//
6
7#include <stdio.h>
8
9#include "manalyzer.h"
10#include "midasio.h"
11
12#ifdef HAVE_MIDAS
13#include "odbxx.h"
14#endif
15
16static void PrintRunInfo(MVOdb* odb)
17{
18 uint32_t run_start_time_binary = 0;
19 odb->RU32("Runinfo/Start time binary", &run_start_time_binary);
20 time_t run_start_time = run_start_time_binary;
21 printf("ODB Run start time: %d: %s", (int)run_start_time, ctime(&run_start_time));
22
23 uint32_t run_stop_time_binary = 0;
24 odb->RU32("Runinfo/Stop time binary", &run_stop_time_binary);
25 if (run_stop_time_binary != 0) {
26 time_t run_stop_time = run_stop_time_binary;
27 printf("ODB Run stop time: %d: %s", (int)run_stop_time, ctime(&run_stop_time));
28 } else {
29 printf("ODB Run stop time: 0\n");
30 }
31}
32
33static void PrintOdbXX()
34{
35#ifdef HAVE_MIDAS
36 int start_time = midas::odb("/Runinfo/Start time binary");
37 int stop_time = midas::odb("/Runinfo/Stop time binary");
38 printf("odbxx run start time: %d, run stop time: %d\n", start_time, stop_time);
39
40#if 0
41 while (1) {
42 int time = midas::odb("/Runinfo/Start time binary");
43 printf("time %d\n", time);
44 }
45#endif
46
47#endif
48}
49
50struct ExampleE1: public TARunObject
51{
53 : TARunObject(runinfo)
54 {
55 printf("ExampleE1::ctor, run %d, file %s\n", runinfo->fRunNo, runinfo->fFileName.c_str());
56 fModuleName = "ExampleE1";
57 fModuleOrder = 1;
58 printf("runinfo BorOdbDump: %zu, EorOdbDump: %zu\n", runinfo->fBorOdbDump.size(), runinfo->fEorOdbDump.size());
59
60#ifdef HAVE_ROOT
61 if (runinfo->fRoot) {
62 //runinfo->fRoot->fgUserOutputDirectory.clear();
63 runinfo->fRoot->fOutputFileName = "my_custom_file_name.root";
64 //runinfo->fRoot->fOutputFileName.clear();
65 }
66#endif
67 }
68
70 {
71 printf("ExampleE1::dtor!\n");
72 }
73
74 void BeginRun(TARunInfo* runinfo)
75 {
76 printf("ExampleE1::BeginRun, run %d, file %s\n", runinfo->fRunNo, runinfo->fFileName.c_str());
77 printf("runinfo BorOdbDump: %zu, EorOdbDump: %zu\n", runinfo->fBorOdbDump.size(), runinfo->fEorOdbDump.size());
78 //printf("runinfo BorOdbDump: %s\n", runinfo->fBorOdbDump.data());
79 //printf("runinfo EorOdbDump: %s\n", runinfo->fEorOdbDump.data());
80 PrintRunInfo(runinfo->fOdb);
81 PrintOdbXX();
82 }
83
84 void PreEndRun(TARunInfo* runinfo)
85 {
86 printf("ExampleE1::PreEndRun, run %d\n", runinfo->fRunNo);
87 printf("runinfo BorOdbDump: %zu, EorOdbDump: %zu\n", runinfo->fBorOdbDump.size(), runinfo->fEorOdbDump.size());
88 PrintRunInfo(runinfo->fOdb);
89 PrintOdbXX();
90 }
91
92 void EndRun(TARunInfo* runinfo)
93 {
94 printf("ExampleE1::EndRun, run %d\n", runinfo->fRunNo);
95 printf("runinfo BorOdbDump: %zu, EorOdbDump: %zu\n", runinfo->fBorOdbDump.size(), runinfo->fEorOdbDump.size());
96 PrintRunInfo(runinfo->fOdb);
97 PrintOdbXX();
98 }
99
100 void PauseRun(TARunInfo* runinfo)
101 {
102 printf("ExampleE1::PauseRun, run %d\n", runinfo->fRunNo);
103 }
104
105 void ResumeRun(TARunInfo* runinfo)
106 {
107 printf("ExampleE1::ResumeRun, run %d\n", runinfo->fRunNo);
108 }
109
110 TAFlowEvent* Analyze(TARunInfo* runinfo, TMEvent* event, TAFlags* flags, TAFlowEvent* flow)
111 {
112 //printf("ExampleE1::Analyze, run %d, event serno %d, id 0x%04x, data size %d\n", runinfo->fRunNo, event->serial_number, (int)event->event_id, event->data_size);
113 //PrintOdbXX();
114 return flow;
115 }
116
117 void AnalyzeSpecialEvent(TARunInfo* runinfo, TMEvent* event)
118 {
119 printf("ExampleE1::AnalyzeSpecialEvent, run %d, event serno %d, id 0x%04x, data size %d\n", runinfo->fRunNo, event->serial_number, (int)event->event_id, event->data_size);
120 printf("runinfo BorOdbDump: %zu, EorOdbDump: %zu\n", runinfo->fBorOdbDump.size(), runinfo->fEorOdbDump.size());
121 PrintRunInfo(runinfo->fOdb);
122 PrintOdbXX();
123 }
124};
125
126struct ExampleE2: public TARunObject
127{
129 : TARunObject(runinfo)
130 {
131 printf("ExampleE2::ctor, run %d, file %s\n", runinfo->fRunNo, runinfo->fFileName.c_str());
132 fModuleName = "ExampleE2";
133 fModuleOrder = 2;
134 }
135
137 {
138 printf("ExampleE2::dtor!\n");
139 }
140
141 void BeginRun(TARunInfo* runinfo)
142 {
143 printf("ExampleE2::BeginRun, run %d, file %s\n", runinfo->fRunNo, runinfo->fFileName.c_str());
144 PrintOdbXX();
145 }
146
147 void PreEndRun(TARunInfo* runinfo)
148 {
149 printf("ExampleE2::PreEndRun, run %d\n", runinfo->fRunNo);
150 PrintOdbXX();
151 }
152
153 void EndRun(TARunInfo* runinfo)
154 {
155 printf("ExampleE2::EndRun, run %d\n", runinfo->fRunNo);
156 PrintOdbXX();
157 }
158
159 void PauseRun(TARunInfo* runinfo)
160 {
161 printf("ExampleE2::PauseRun, run %d\n", runinfo->fRunNo);
162 }
163
164 void ResumeRun(TARunInfo* runinfo)
165 {
166 printf("ExampleE2::ResumeRun, run %d\n", runinfo->fRunNo);
167 }
168
169 TAFlowEvent* Analyze(TARunInfo* runinfo, TMEvent* event, TAFlags* flags, TAFlowEvent* flow)
170 {
171 //printf("ExampleE2::Analyze, run %d, event serno %d, id 0x%04x, data size %d\n", runinfo->fRunNo, event->serial_number, (int)event->event_id, event->data_size);
172 //PrintOdbXX();
173 return flow;
174 }
175
176 void AnalyzeSpecialEvent(TARunInfo* runinfo, TMEvent* event)
177 {
178 printf("ExampleE2::AnalyzeSpecialEvent, run %d, event serno %d, id 0x%04x, data size %d\n", runinfo->fRunNo, event->serial_number, (int)event->event_id, event->data_size);
179 printf("runinfo BorOdbDump: %zu, EorOdbDump: %zu\n", runinfo->fBorOdbDump.size(), runinfo->fEorOdbDump.size());
180 PrintOdbXX();
181 }
182};
183
185{
186public:
187 void Init(const std::vector<std::string> &args)
188 {
189 printf("ExampleE1::Init!\n");
190 }
191
192 void Finish()
193 {
194 printf("ExampleE1::Finish!\n");
195 }
196
198 {
199 printf("ExampleE1::NewRunObject, run %d, file %s\n", runinfo->fRunNo, runinfo->fFileName.c_str());
200 return new ExampleE1(runinfo);
201 }
202};
203
205{
206public:
207 void Init(const std::vector<std::string> &args)
208 {
209 printf("ExampleE2::Init!\n");
210 }
211
212 void Finish()
213 {
214 printf("ExampleE2::Finish!\n");
215 }
216
218 {
219 printf("ExampleE2::NewRunObject, run %d, file %s\n", runinfo->fRunNo, runinfo->fFileName.c_str());
220 return new ExampleE2(runinfo);
221 }
222};
223
226
227/* emacs
228 * Local Variables:
229 * tab-width: 8
230 * c-basic-offset: 3
231 * indent-tabs-mode: nil
232 * End:
233 */
TARunObject * NewRunObject(TARunInfo *runinfo)
void Init(const std::vector< std::string > &args)
void Init(const std::vector< std::string > &args)
TARunObject * NewRunObject(TARunInfo *runinfo)
Definition mvodb.h:21
virtual void RU32(const char *varname, uint32_t *value, bool create=false, MVOdbError *error=NULL)=0
std::string fOutputFileName
Definition manalyzer.h:160
std::string fFileName
Definition manalyzer.h:25
std::vector< char > fBorOdbDump
Definition manalyzer.h:30
MVOdb * fOdb
Definition manalyzer.h:26
int fRunNo
Definition manalyzer.h:24
std::vector< char > fEorOdbDump
Definition manalyzer.h:31
TARootHelper * fRoot
Definition manalyzer.h:27
std::string fModuleName
Definition manalyzer.h:91
int fModuleOrder
Definition manalyzer.h:92
uint32_t serial_number
MIDAS event serial number.
Definition midasio.h:59
uint32_t data_size
MIDAS event data size.
Definition midasio.h:61
uint16_t event_id
MIDAS event ID.
Definition midasio.h:57
int TAFlags
Definition manalyzer.h:79
static void PrintOdbXX()
static void PrintRunInfo(MVOdb *odb)
static TARegister tar1(new TAFactoryTemplate< Example1 >)
static TARegister tar2(new TAFactoryTemplate< Example2 >)
ExampleE1(TARunInfo *runinfo)
void BeginRun(TARunInfo *runinfo)
TAFlowEvent * Analyze(TARunInfo *runinfo, TMEvent *event, TAFlags *flags, TAFlowEvent *flow)
void ResumeRun(TARunInfo *runinfo)
void PauseRun(TARunInfo *runinfo)
void EndRun(TARunInfo *runinfo)
void AnalyzeSpecialEvent(TARunInfo *runinfo, TMEvent *event)
void PreEndRun(TARunInfo *runinfo)
void AnalyzeSpecialEvent(TARunInfo *runinfo, TMEvent *event)
void PreEndRun(TARunInfo *runinfo)
TAFlowEvent * Analyze(TARunInfo *runinfo, TMEvent *event, TAFlags *flags, TAFlowEvent *flow)
ExampleE2(TARunInfo *runinfo)
void BeginRun(TARunInfo *runinfo)
void PauseRun(TARunInfo *runinfo)
void ResumeRun(TARunInfo *runinfo)
void EndRun(TARunInfo *runinfo)