8 #include <rawdata/modules/Root2Binary.h>
27 addParam(
"outputFileName", m_fname_out,
"Output binary filename",
string(
""));
30 Root2BinaryModule::~Root2BinaryModule()
34 void Root2BinaryModule::initialize()
36 B2INFO(
"Root2Binary: initialize() started.");
38 m_fp_out = fopen(m_fname_out.c_str(),
"w");
41 sprintf(err_buf,
"Cannot open an output file(%s): %s : Exiting...\n",
42 strerror(errno), m_fname_out.c_str());
43 printf(
"%s\n", err_buf);
48 B2INFO(
"Root2Binary: initialize() done.");
51 void Root2BinaryModule::endRun()
55 B2INFO(
"endRun done.");
59 void Root2BinaryModule::terminate()
62 B2INFO(
"terminate called");
66 void Root2BinaryModule::writeEvent(
RawDataBlock* raw_dblk,
int* first_flag,
int* break_flag,
int* dblk_pos,
unsigned int* dblk_eve)
79 unsigned int prev_eve = *dblk_eve;
89 temp_raw_ftsw.
SetBuffer(temp_buf, nwords, delete_flag, num_nodes, num_events);
90 *dblk_eve = temp_raw_ftsw.
GetEveNo(0);
93 temp_raw_copper.
SetBuffer(temp_buf, nwords, delete_flag, num_nodes, num_events);
94 *dblk_eve = temp_raw_copper.
GetEveNo(0);
97 if (*dblk_eve != prev_eve && *first_flag == 1) {
101 fwrite((
char*)temp_buf, 1, nwords * 4, m_fp_out);
102 printf(
"eve %u size %d j %d\n", *dblk_eve, nwords * 4, j);
115 void Root2BinaryModule::event()
119 B2INFO(
"Root2Binary: event() started.");
138 int copper_array = 0;
156 unsigned int dblk_eve = 0;
157 unsigned int ftsw_eve = 0;
158 unsigned int copper_eve = 0;
159 unsigned int svd_eve = 0;
160 unsigned int cdc_eve = 0;
161 unsigned int ecl_eve = 0;
162 unsigned int bpid_eve = 0;
163 unsigned int epid_eve = 0;
164 unsigned int klm_eve = 0;
181 int array_entries = raw_dblkarray.
getEntries();
182 for (
int i = dblk_array; i < array_entries; i++) {
184 writeEvent(raw_dblkarray[ i ], &first_flag, &break_flag, &dblk_pos, &dblk_eve);
185 if (break_flag == 1) {
189 if (i == array_entries - 1) {
190 dblk_array = array_entries;
198 for (
int i = ftsw_array; i < array_entries; i++) {
200 writeEvent(raw_ftswarray[ i ], &first_flag, &break_flag, &ftsw_pos, &ftsw_eve);
201 if (break_flag == 1) {
205 if (i == array_entries - 1) {
206 ftsw_array = array_entries;
215 for (
int i = copper_array; i < array_entries; i++) {
217 writeEvent(raw_copperarray[ i ], &first_flag, &break_flag, &copper_pos, &copper_eve);
218 if (break_flag == 1) {
222 if (i == array_entries - 1) {
223 copper_array = array_entries;
232 for (
int i = svd_array; i < array_entries; i++) {
234 writeEvent(raw_svdarray[ i ], &first_flag, &break_flag, &svd_pos, &svd_eve);
235 if (break_flag == 1) {
239 if (i == array_entries - 1) {
240 svd_array = array_entries;
249 for (
int i = cdc_array; i < array_entries; i++) {
251 writeEvent(raw_cdcarray[ i ], &first_flag, &break_flag, &cdc_pos, &cdc_eve);
252 if (break_flag == 1) {
256 if (i == array_entries - 1) {
257 cdc_array = array_entries;
266 for (
int i = bpid_array; i < array_entries; i++) {
268 writeEvent(raw_bpidarray[ i ], &first_flag, &break_flag, &bpid_pos, &bpid_eve);
269 if (break_flag == 1) {
273 if (i == array_entries - 1) {
274 bpid_array = array_entries;
284 for (
int i = epid_array; i < array_entries; i++) {
286 writeEvent(raw_epidarray[ i ], &first_flag, &break_flag, &epid_pos, &epid_eve);
287 if (break_flag == 1) {
291 if (i == array_entries - 1) {
292 epid_array = array_entries;
302 for (
int i = ecl_array; i < array_entries; i++) {
304 writeEvent(raw_eclarray[ i ], &first_flag, &break_flag, &ecl_pos, &ecl_eve);
305 if (break_flag == 1) {
309 if (i == array_entries - 1) {
310 ecl_array = array_entries;
318 for (
int i = klm_array; i < array_entries; i++) {
320 writeEvent(raw_klmarray[ i ], &first_flag, &break_flag, &klm_pos, &klm_eve);
321 if (break_flag == 1) {
325 if (i == array_entries - 1) {
326 klm_array = array_entries;
329 if (write_flag == 0)
break;
332 printf(
"loop %d\n", n_basf2evt);