Belle II Software  release-05-02-19
CDCPackerModule.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Satoru Yamada and Makoto Uchida *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef CDCPACKERMODULE_H
12 #define CDCPACKERMODULE_H
13 
14 #include <framework/core/Module.h>
15 #include <framework/datastore/StoreArray.h>
16 #include <cdc/dbobjects/CDCChannelMap.h>
17 
18 #include <framework/database/DBArray.h>
19 
20 #include <rawdata/dataobjects/RawCDC.h>
21 
22 namespace Belle2 {
28  namespace CDC {
29 
37  class CDCPackerModule : public Module {
38 
39  public:
44 
48  virtual ~CDCPackerModule();
49 
53  void initialize() override;
54 
59  void beginRun() override;
60 
66  void event() override;
67 
71  void endRun() override;
72 
76  void terminate() override;
77 
81  void setCDCPacketHeader(int* buf)
82  {
83 
84  if ((buf[0] & 0xff000000) == 0x22000000) { // raw data mode.
85  m_dataType = 1;
86  } else if ((buf[0] & 0xff000000) == 0x20000000) { // suppressed data mode.
87  m_dataType = 2;
88  } else {
89  B2ERROR("Undefined data type");
90  }
91 
92  m_version = ((buf[0] & 0xff0000) >> 16); // Always zero.
93  m_boardId = (buf[0] & 0xffff);
94  m_triggerTime = ((buf[1] & 0xffff0000) >> 16);
95  m_dataLength = (buf[1] & 0xffff);
96  m_triggerNumber = buf[2];
97 
98  }
99 
105  int getFEEID(int copper_id, int slot_id);
106 
111  int getDataType()
112  {
113  return m_dataType;
114  }
115 
120  int getTriggerTime()
121  {
122  return m_triggerTime;
123  }
124 
129  int getDataLength()
130  {
131  return m_dataLength;
132  }
133 
138  int getTriggerNumber()
139  {
140  return m_triggerNumber;
141  }
142 
143 
147  int getBoardId()
148  {
149  return m_boardId;
150  }
151 
155  void loadMap();
156 
160  const WireID getWireID(int iBoard, int iCh);
161 
162  private:
163 
164  int m_event;
165  int m_fadcThreshold;
166  // int m_overflow; /**< TDC overflow. */
167 
168 
169  private:
170 
174  int m_dataType;
175 
179  int m_version;
180 
184  int m_boardId;
185 
189  int m_triggerTime;
190 
194  int m_dataLength;
195 
199  int m_triggerNumber;
200 
202  // * Number of good blocks.
203  // */
204  // int m_nGoodBlocks;
205 
206  // /**
207  // * Number of error blocks.
208  // */
209  // int m_nErrorBlocks;
210 
215 
220  bool m_enablePrintOut;
221 
225  std::string m_rawCDCName;
226 
230  std::string m_cdcRawHitName;
231 
235  std::string m_cdcHitName;
236 
240  std::string m_xmlMapFileName;
241 
245  std::vector<unsigned short> m_buffer;
246 
251  WireID m_map[300][48];
252 
259  int m_fee_board[9][8][384];
260 
267  int m_fee_ch[9][8][384];
268 
273  bool m_enableDatabase;
274 
279 
284  };//end class declaration
285 
286 
287  } //end CDC namespace;
289 } // end namespace Belle2
290 
291 #endif // CDCPackerModule_H
292 
Belle2::WireID
Class to identify a wire inside the CDC.
Definition: WireID.h:44
Belle2::CDC::CDCPackerModule::m_event
int m_event
Event number.
Definition: CDCPackerModule.h:172
Belle2::CDC::CDCPackerModule::m_buffer
std::vector< unsigned short > m_buffer
Short ward buffer of CDC event block.
Definition: CDCPackerModule.h:253
Belle2::CDC::CDCPackerModule::m_enableDatabase
bool m_enableDatabase
Enable/Disable to read the channel map from the database.
Definition: CDCPackerModule.h:281
Belle2::CDC::CDCPackerModule::getBoardId
int getBoardId()
Getter for FE board ID.
Definition: CDCPackerModule.h:155
Belle2::CDC::CDCPackerModule::initialize
void initialize() override
Initializes the Module.
Definition: CDCPackerModule.cc:63
Belle2::CDC::CDCPackerModule::m_xmlMapFileName
std::string m_xmlMapFileName
Name of the assignment map of FE board channel to the cell.
Definition: CDCPackerModule.h:248
Belle2::DBArray
Class for accessing arrays of objects in the database.
Definition: DBArray.h:36
Belle2::CDC::CDCPackerModule::m_version
int m_version
Format version.
Definition: CDCPackerModule.h:187
Belle2::CDC::CDCPackerModule::m_dataLength
int m_dataLength
Data length of the CDC data block (in bytes).
Definition: CDCPackerModule.h:202
Belle2::CDC::CDCPackerModule::m_fee_ch
int m_fee_ch[9][8][384]
Assignment map of FE board channel to the cell.
Definition: CDCPackerModule.h:275
Belle2::CDC::CDCPackerModule::m_fadcThreshold
int m_fadcThreshold
FADC threshold.
Definition: CDCPackerModule.h:173
Belle2::CDC::CDCPackerModule::m_rawCDCName
std::string m_rawCDCName
Name of the RawCDC dataobject (supressed mode).
Definition: CDCPackerModule.h:233
Belle2::CDC::CDCPackerModule::getFEEID
int getFEEID(int copper_id, int slot_id)
Getter for Front End Electronics ID.
Definition: CDCPackerModule.cc:90
Belle2::CDC::CDCPackerModule::m_triggerNumber
int m_triggerNumber
Trigger number.
Definition: CDCPackerModule.h:207
Belle2::CDC::CDCPackerModule::m_cdcHitName
std::string m_cdcHitName
Tree name of the CDCHit object.
Definition: CDCPackerModule.h:243
Belle2::CDC::CDCPackerModule::event
void event() override
Event action (main routine).
Definition: CDCPackerModule.cc:114
Belle2::CDC::CDCPackerModule::beginRun
void beginRun() override
Begin run action.
Definition: CDCPackerModule.cc:85
Belle2::CDC::CDCPackerModule::terminate
void terminate() override
Termination action.
Definition: CDCPackerModule.cc:275
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::CDC::CDCPackerModule::setCDCPacketHeader
void setCDCPacketHeader(int *buf)
Set CDC Packet header.
Definition: CDCPackerModule.h:89
Belle2::CDC::CDCPackerModule::m_fee_board
int m_fee_board[9][8][384]
Assignment map of FE board ID to the cell.
Definition: CDCPackerModule.h:267
Belle2::CDC::CDCPackerModule::m_dataType
int m_dataType
Data type of CDC data block.
Definition: CDCPackerModule.h:182
Belle2::CDC::CDCPackerModule::CDCPackerModule
CDCPackerModule()
Constructor of the module.
Definition: CDCPackerModule.cc:40
Belle2::CDC::CDCPackerModule::m_cdcRawHitName
std::string m_cdcRawHitName
Name of the CDCRawHit dataobject (supressed mode).
Definition: CDCPackerModule.h:238
Belle2::CDC::CDCPackerModule::m_map
WireID m_map[300][48]
Assignment map of FE board channel to the cell.
Definition: CDCPackerModule.h:259
Belle2::CDC::CDCPackerModule::getWireID
const WireID getWireID(int iBoard, int iCh)
Getter of Wire ID.
Definition: CDCPackerModule.cc:281
Belle2::CDC::CDCPackerModule::getTriggerNumber
int getTriggerNumber()
Getter for trigger number.
Definition: CDCPackerModule.h:146
Belle2::CDC::CDCPackerModule::getDataType
int getDataType()
Getter for CDC data mode.
Definition: CDCPackerModule.h:119
Belle2::CDC::CDCPackerModule::m_rawCDCs
StoreArray< RawCDC > m_rawCDCs
Raw CDC array.
Definition: CDCPackerModule.h:291
Belle2::CDC::CDCPackerModule::~CDCPackerModule
virtual ~CDCPackerModule()
Destructor of the module.
Definition: CDCPackerModule.cc:59
Belle2::CDC::CDCPackerModule::getTriggerTime
int getTriggerTime()
Getter for trigger time in nsec.
Definition: CDCPackerModule.h:128
Belle2::CDC::CDCPackerModule::getDataLength
int getDataLength()
Getter for data length in byte.
Definition: CDCPackerModule.h:137
Belle2::StoreArray
Accessor to arrays stored in the data store.
Definition: ECLMatchingPerformanceExpertModule.h:33
Belle2::CDC::CDCPackerModule::m_enableStoreCDCRawHit
bool m_enableStoreCDCRawHit
‍**
Definition: CDCPackerModule.h:222
Belle2::CDC::CDCPackerModule::m_boardId
int m_boardId
Frontend board ID.
Definition: CDCPackerModule.h:192
Belle2::CDC::CDCPackerModule::m_channelMapFromDB
DBArray< CDCChannelMap > m_channelMapFromDB
Channel map retrieved from DB.
Definition: CDCPackerModule.h:286
Belle2::CDC::CDCPackerModule::loadMap
void loadMap()
Load FE channel to cell ID map.
Definition: CDCPackerModule.cc:286
Belle2::CDC::CDCPackerModule::endRun
void endRun() override
End run action.
Definition: CDCPackerModule.cc:270
Belle2::CDC::CDCPackerModule::m_enablePrintOut
bool m_enablePrintOut
Enable/Disable to print out the data to the terminal.
Definition: CDCPackerModule.h:228
Belle2::CDC::CDCPackerModule::m_triggerTime
int m_triggerTime
Trigger time.
Definition: CDCPackerModule.h:197