Belle II Software  release-05-01-25
DummyDataPacker.cc
1 //+
2 // File : DummyDataPacker.cc
3 // Description : Module to store dummy data in RawSVD(and others) object
4 //
5 // Author : Satoru Yamada, IPNS, KEK
6 // Date : 14 - Jul - 2014
7 //-
8 
9 #include <rawdata/modules/DummyDataPacker.h>
10 
11 using namespace std;
12 using namespace Belle2;
13 
14 //-----------------------------------------------------------------
15 // Register the Module
16 //-----------------------------------------------------------------
17 REG_MODULE(DummyDataPacker)
18 
19 //-----------------------------------------------------------------
20 // Implementation
21 //-----------------------------------------------------------------
22 
24 {
26  setDescription("an Example to pack data to a RawCOPPER object");
27 
29  addParam("MaxEventNum", max_nevt, "Maximum event number to make", -1);
30 
32  // addParam("NodeID", m_nodeid, "Node ID", 0);
33 
34  B2INFO("DummyDataPacker: Constructor done.");
35 
36  // initialize event #
37  n_basf2evt = 0;
38 
39 
40 }
41 
42 
43 
44 DummyDataPackerModule::~DummyDataPackerModule()
45 {
46 
47 }
48 
49 
50 void DummyDataPackerModule::initialize()
51 {
52  B2INFO("DummyDataPacker: initialize() started.");
53 
54  // Open message handler
55  // m_msghandler = new MsgHandler(m_compressionLevel);
56 
58  m_eventMetaDataPtr.registerInDataStore();
59 
60  raw_cprarray.registerInDataStore();
61  raw_svdarray.registerInDataStore();
62  raw_cdcarray.registerInDataStore();
63  raw_bpidarray.registerInDataStore();
64  raw_epidarray.registerInDataStore();
65  raw_eclarray.registerInDataStore();
66  raw_klmarray.registerInDataStore();
67  B2INFO("DummyDataPacker: initialize() done.");
68 }
69 
70 
71 
72 
73 void DummyDataPackerModule::event()
74 {
75  //
76  // To Make RawCOPPER array
77  //
78 
79 // raw_cprarray.create();
80 
81  //
82  // To make RawDetector array use the following objects
83  //
84 
85 // raw_cdcarray.create();
86 // raw_bpidarray.create();
87 // raw_epidarray.create();
88 // raw_klmarray.create();
89 // raw_eclarray.create();
90 
91 
92  RawCOPPERPackerInfo rawcprpacker_info;
93 
94  int num_coppers = 48; // In SVD case
95  for (int i = 0 ; i < num_coppers; i++) {
96 
97  //
98  // Example of event info (These values will be stored in RawHeader )
99  //
100  rawcprpacker_info.exp_num = 1;
101  rawcprpacker_info.run_subrun_num = 2; // run number : 14bits, subrun # : 8bits
102  rawcprpacker_info.eve_num = n_basf2evt;
103  // rawcprpacker_info.node_id = m_nodeid;
104  rawcprpacker_info.node_id = SVD_ID + 1000 + (i + 1); //cpr1001...cpr1048
105  rawcprpacker_info.tt_ctime = 0x7123456;
106  rawcprpacker_info.tt_utime = 0xF1234567;
107  rawcprpacker_info.b2l_ctime = 0x7654321;
108 
109  //
110  // Prepare buffer to fill dummy data
111  //
112 // RawCOPPER* raw_copper = raw_cprarray.appendNew();
113  RawSVD* raw_svd = raw_svdarray.appendNew();
114 // RawCDC* raw_cdc = raw_cdcarray.appendNew();
115 // RawTOP* raw_bpid = raw_bpidarray.appendNew();
116 // RawARICH* raw_epid = raw_epidarray.appendNew();
117 // RawECL* raw_ecl = raw_eclarray.appendNew();
118 // RawKLM* raw_klm = raw_klmarray.appendNew();
119 // RawTRG* raw_trg = raw_trgarray.appendNew();
120 
121 
122  int* buf_hslb1, *buf_hslb2, *buf_hslb3, *buf_hslb4;
123  int nwords_1st_hslb = 0, nwords_2nd_hslb = 0, nwords_3rd_hslb = 0, nwords_4th_hslb = 0;
124 
125  nwords_1st_hslb = n_basf2evt % 10 + 1;
126  buf_hslb1 = new int[ nwords_1st_hslb];
127  for (int j = 0; j < nwords_1st_hslb; j++) {
128  buf_hslb1[ j ] = i + j;
129  }
130 
131  nwords_2nd_hslb = (n_basf2evt + 1) % 10 + 1;
132  buf_hslb2 = new int[ nwords_2nd_hslb];
133  for (int j = 0; j < nwords_2nd_hslb; j++) {
134  buf_hslb2[ j ] = i + j + 1;
135  }
136 
137  nwords_3rd_hslb = 3 * (n_basf2evt + 2) % 10 + 1;
138  buf_hslb3 = new int[ nwords_3rd_hslb];
139  for (int j = 0; j < nwords_3rd_hslb; j++) {
140  buf_hslb3[ j ] = i + j + 2;
141  }
142 
143  nwords_4th_hslb = 4 * (n_basf2evt + 3) % 10 + 1;
144  buf_hslb4 = new int[ nwords_4th_hslb];
145  for (int j = 0; j < nwords_4th_hslb; j++) {
146  buf_hslb4[ j ] = i + j + 3;
147  }
148 
149  raw_svd->PackDetectorBuf(buf_hslb1, nwords_1st_hslb,
150  buf_hslb2, nwords_2nd_hslb,
151  buf_hslb3, nwords_3rd_hslb,
152  buf_hslb4, nwords_4th_hslb,
153  rawcprpacker_info);
154 
155 
156  delete [] buf_hslb1;
157  delete [] buf_hslb2;
158  delete [] buf_hslb3;
159  delete [] buf_hslb4;
160 
161  }
162 
163 
164  //
165  // Update EventMetaData :
166  //
167  m_eventMetaDataPtr.create();
168  m_eventMetaDataPtr->setExperiment(rawcprpacker_info.exp_num);
169  m_eventMetaDataPtr->setRun(rawcprpacker_info.run_subrun_num);
170  m_eventMetaDataPtr->setEvent(n_basf2evt);
171 
172  B2DEBUG(0, "Event # " << n_basf2evt << endl);
173  fflush(stdout);
174 
175  //
176  // Monitor
177  //
178  if (max_nevt >= 0) {
179  if (n_basf2evt >= max_nevt && max_nevt > 0) {
180  B2DEBUG(0, "[DEBUG] RunStop was detected. ( Setting: Max event #" << max_nevt << ") Processed Event" << n_basf2evt << endl);
181  fflush(stdout);
182  m_eventMetaDataPtr->setEndOfData();
183  }
184  }
185 
186  n_basf2evt++;
187  return;
188 }
Belle2::RawCOPPERPackerInfo::tt_utime
unsigned int tt_utime
27bit clock ticks at trigger timing distributed by FTSW. For details, see Nakao-san's belle2link user...
Definition: RawCOPPERPackerInfo.h:28
Belle2::RawCOPPERPackerInfo
struct to contain header information used by RawCOPPERFormat::Packer()
Definition: RawCOPPERPackerInfo.h:12
Belle2::RawCOPPERPackerInfo::exp_num
unsigned int exp_num
Experiment number (10bit)
Definition: RawCOPPERPackerInfo.h:16
Belle2::RawCOPPERPackerInfo::node_id
unsigned int node_id
Event Number (32bit)
Definition: RawCOPPERPackerInfo.h:22
Belle2::RawCOPPERPackerInfo::b2l_ctime
unsigned int b2l_ctime
32bit unitx time at trigger timing distributed by FTSW. For details, see Nakao-san's belle2link user ...
Definition: RawCOPPERPackerInfo.h:31
REG_MODULE
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Definition: Module.h:652
Belle2::RawSVD
The Raw SVD class Class for RawCOPPER class data taken by SVD Currently, this class is almost same as...
Definition: RawSVD.h:26
Belle2::RawCOPPERPackerInfo::eve_num
unsigned int eve_num
Run # and subrun # ( 22bit )
Definition: RawCOPPERPackerInfo.h:20
Belle2::RawCOPPERPackerInfo::tt_ctime
unsigned int tt_ctime
Node ID (32bit)
Definition: RawCOPPERPackerInfo.h:25
Belle2::Module
Base class for Modules.
Definition: Module.h:74
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::RawCOPPERPackerInfo::run_subrun_num
unsigned int run_subrun_num
Experiment number (10bit)
Definition: RawCOPPERPackerInfo.h:18
Belle2::RawCOPPER::PackDetectorBuf
void PackDetectorBuf(int *detector_buf_1st, int nwords_1st, int *detector_buf_2nd, int nwords_2nd, int *detector_buf_3rd, int nwords_3rd, int *detector_buf_4th, int nwords_4th, RawCOPPERPackerInfo rawcprpacker_info)
Packer for RawCOPPER class Pack data (format ver.
Definition: RawCOPPER.cc:174
Belle2::DummyDataPackerModule
Module to store dummy data in RawCOPPER object.
Definition: DummyDataPacker.h:35