Belle II Software  release-05-02-19
PXDDAQPacketStatus.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: bjoern.spruck@belle2.org *
7  * Created: Dez 2017 *
8  * *
9  * This software is provided "as is" without any warranty. *
10  **************************************************************************/
11 
12 #pragma once
13 
14 #include <pxd/dataobjects/PXDDAQDHCStatus.h>
15 #include <pxd/dataobjects/PXDErrorFlags.h>
16 
17 namespace Belle2 {
24  using Belle2::PXD::PXDError::PXDErrorFlags;
25 
33  class PXDDAQPacketStatus {
34  public:
35 
38 
42  explicit PXDDAQPacketStatus(unsigned short inx) : m_errorMask(0), m_critErrorMask(0), m_usable(true), m_index(inx) {}
43 
47  bool isUsable() const { return m_usable; }
48 
53  void setErrorMask(PXDErrorFlags m) { m_errorMask = m; }
54 
59  PXDErrorFlags getErrorMask(void) const { return m_errorMask; }
60 
64  void setCritErrorMask(PXDErrorFlags m) { m_critErrorMask = m; }
65 
69  PXDErrorFlags getCritErrorMask(void) const { return m_critErrorMask; }
70 
76  void Decide(void) {m_usable = (m_errorMask & m_critErrorMask) == 0;}
77 
81  void setPktIndex(unsigned short inx) { m_index = inx;};
82 
86  unsigned short getPktIndex(void) const { return m_index;};
87 
91  void addDHC(PXDDAQDHCStatus& daqdhcstat) {m_pxdDHC.push_back(daqdhcstat);};
92 
97  template<class ...Args> PXDDAQDHCStatus& newDHC(Args&& ... params)
98  {
99  /*return*/ m_pxdDHC.emplace_back(std::forward<Args>(params)...);
100  return m_pxdDHC.back();
101  }
102 
104  std::vector<PXDDAQDHCStatus>::iterator begin() { return m_pxdDHC.begin(); };
106  std::vector<PXDDAQDHCStatus>::iterator end() { return m_pxdDHC.end(); };
107 
109  std::vector<PXDDAQDHCStatus>::const_iterator cbegin() const { return m_pxdDHC.cbegin(); };
111  std::vector<PXDDAQDHCStatus>::const_iterator cend() const { return m_pxdDHC.cend(); };
113  PXDDAQDHCStatus& dhc_back() { return m_pxdDHC.back(); };
115  size_t dhc_size() const { return m_pxdDHC.size(); };
116 
117  private:
118  PXDErrorFlags m_errorMask;
119  PXDErrorFlags m_critErrorMask;
120  bool m_usable;
122  unsigned short m_index;
125  std::vector <PXDDAQDHCStatus> m_pxdDHC;
126 
129 
130  }; // class PXDDAQPacketStatus
131 
133 } // end namespace Belle2
Belle2::PXDDAQPacketStatus::isUsable
bool isUsable() const
Return Usability of data.
Definition: PXDDAQPacketStatus.h:56
Belle2::PXDDAQPacketStatus::m_critErrorMask
PXDErrorFlags m_critErrorMask
critical error mask
Definition: PXDDAQPacketStatus.h:128
Belle2::PXDDAQPacketStatus::m_pxdDHC
std::vector< PXDDAQDHCStatus > m_pxdDHC
Vector of DHC informations beloning to this event.
Definition: PXDDAQPacketStatus.h:134
Belle2::PXDDAQPacketStatus::setCritErrorMask
void setCritErrorMask(PXDErrorFlags m)
Set Critical Error bit mask.
Definition: PXDDAQPacketStatus.h:73
Belle2::PXDDAQDHCStatus
The PXD DAQ DHC Status class.
Definition: PXDDAQDHCStatus.h:43
Belle2::PXDDAQPacketStatus::m_usable
bool m_usable
data is useable.
Definition: PXDDAQPacketStatus.h:129
Belle2::PXDDAQPacketStatus::begin
std::vector< PXDDAQDHCStatus >::iterator begin()
iterator-based iteration for DHCs
Definition: PXDDAQPacketStatus.h:113
Belle2::PXDDAQPacketStatus::cend
std::vector< PXDDAQDHCStatus >::const_iterator cend() const
const iterator-based iteration for DHCs
Definition: PXDDAQPacketStatus.h:120
Belle2::PXDDAQPacketStatus::addDHC
void addDHC(PXDDAQDHCStatus &daqdhcstat)
Add DHC information including its DHE tree.
Definition: PXDDAQPacketStatus.h:100
Belle2::PXDDAQPacketStatus::getCritErrorMask
PXDErrorFlags getCritErrorMask(void) const
Return Critical Error bit mask.
Definition: PXDDAQPacketStatus.h:78
Belle2::PXDDAQPacketStatus::Decide
void Decide(void)
Calculate the usability decision If any of the critical bits is set in the error mask the PXD data fr...
Definition: PXDDAQPacketStatus.h:85
Belle2::PXDDAQPacketStatus::PXDDAQPacketStatus
PXDDAQPacketStatus()
Default constructor for the ROOT IO.
Definition: PXDDAQPacketStatus.h:46
Belle2::PXDDAQPacketStatus::setErrorMask
void setErrorMask(PXDErrorFlags m)
Set Error bit mask This should be the OR of error masks of all sub-objects (DHC, DHE)
Definition: PXDDAQPacketStatus.h:62
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::PXDDAQPacketStatus::cbegin
std::vector< PXDDAQDHCStatus >::const_iterator cbegin() const
const iterator-based iteration for DHCs
Definition: PXDDAQPacketStatus.h:118
Belle2::PXDDAQPacketStatus::newDHC
PXDDAQDHCStatus & newDHC(Args &&... params)
Add new DHC information.
Definition: PXDDAQPacketStatus.h:106
Belle2::PXDDAQPacketStatus::setPktIndex
void setPktIndex(unsigned short inx)
Set Packet index.
Definition: PXDDAQPacketStatus.h:90
Belle2::PXDDAQPacketStatus::getErrorMask
PXDErrorFlags getErrorMask(void) const
Return Error bit mask This is the OR of error masks of all sub-objects (DHC, DHE)
Definition: PXDDAQPacketStatus.h:68
Belle2::PXDDAQPacketStatus::dhc_size
size_t dhc_size() const
Returns number of DHCs.
Definition: PXDDAQPacketStatus.h:124
Belle2::PXDDAQPacketStatus::m_index
unsigned short m_index
Packet index as delivered by DAQ.
Definition: PXDDAQPacketStatus.h:131
Belle2::PXDDAQPacketStatus::m_errorMask
PXDErrorFlags m_errorMask
errors found in this packets sensors
Definition: PXDDAQPacketStatus.h:124
Belle2::PXDDAQPacketStatus::ClassDef
ClassDef(PXDDAQPacketStatus, 2)
necessary for ROOT
Belle2::PXDDAQPacketStatus::end
std::vector< PXDDAQDHCStatus >::iterator end()
iterator-based iteration for DHCs
Definition: PXDDAQPacketStatus.h:115
Belle2::PXDDAQPacketStatus::dhc_back
PXDDAQDHCStatus & dhc_back()
Returns PXDDAQDHCStatus for last DHC.
Definition: PXDDAQPacketStatus.h:122
Belle2::PXDDAQPacketStatus
The PXD DAQ Packet Status class.
Definition: PXDDAQPacketStatus.h:42
Belle2::PXDDAQPacketStatus::getPktIndex
unsigned short getPktIndex(void) const
Return Packet index.
Definition: PXDDAQPacketStatus.h:95