ATLAS Offline Software
ALFA_RawDataContainer_charge.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ALFA_RAWDATACONTAINER_CHARGE_H
6 #define ALFA_RAWDATACONTAINER_CHARGE_H
7 
8 #include <vector>
9 #include <string>
11 #include "AthenaKernel/CLASS_DEF.h"
13 //#include "EventContainers/IdentifiableContainer.h"
14 
20 //class ALFA_RawDataContainer_charge : public IdentifiableContainer<ALFA_RawDataCollection_charge> {
21 class ALFA_RawDataContainer_charge : public DataVector<ALFA_RawDataCollection_charge> {
22 
23  private:
24  // Raw data word and word header
26 
27  // I added runNum, runType, DetEventType
28  // modification based on page19 MROD data format document and on ALFA dumped data file
29  //uint32_t m_dataWord;
30 
31  // Data members
32  uint16_t m_subdetId; // Sub-detector Id
33  uint16_t m_mrodId; // MROD Id
34  uint32_t m_lvl1Id; // Lvl1 Id
35  uint16_t m_ecrId; // ECR Id
36  uint16_t m_bcId; // Bunch crossing Id
37  uint32_t m_runNum; // Run sequence number
38  uint16_t m_runType; // Run Type
39  uint16_t m_triggerTypeId; // Trigger type Id
40  uint32_t m_DetEventType; // Detector Event Type
41 
42  // Data words in the ROD header
43 
44  // Full Event marker
45  static const uint32_t s_FullEVmarker = 0xaa1234aa;
46  // ROB marker
47  static const uint32_t s_ROBmarker = 0xdd1234dd;
48  // ROD marker
49  static const uint32_t s_RODmarker = 0xee1234ee;
50 
51  static const uint32_t s_RODheadersize = 0x00000009;
52  static const uint32_t s_RODversion = 0x03010000;
53 
54  public:
55 
58 
60 
61  size_type digit_size() const ;
62 
63  bool is_FullEVmarker() const {return m_wordMarker == s_FullEVmarker;};
64  bool is_ROBmarker() const {return m_wordMarker == s_ROBmarker;};
65  bool is_RODmarker() const {return m_wordMarker == s_RODmarker;};
66 
67  // Retrieve decoded results
68  uint16_t subdetId() const {return m_subdetId;}
69  uint16_t mrodId() const {return m_mrodId;}
70  uint32_t runNum() const {return m_runNum;}
71  uint16_t runType() const {return m_runType;}
72  uint32_t lvl1Id() const {return m_lvl1Id;}
73  uint16_t ecrId() const {return m_ecrId;}
74  uint16_t bcId() const {return m_bcId;}
77 
78  private:
79 
80  // Private functions
81  void setZero();
82 
83 };
84 
85 CLASS_DEF( ALFA_RawDataContainer_charge , 1146048907, 0 )
86 
87 
88 #endif // ALFA_RAWDATACONTAINER_CHARGE_H
ALFA_RawDataContainer_charge::m_subdetId
uint16_t m_subdetId
Definition: ALFA_RawDataContainer_charge.h:32
ALFA_RawDataContainer_charge::runNum
uint32_t runNum() const
Definition: ALFA_RawDataContainer_charge.h:70
ALFA_RawDataContainer_charge::digit_size
size_type digit_size() const
Definition: ALFA_RawDataContainer_charge.cxx:61
ALFA_RawDataContainer_charge::runType
uint16_t runType() const
Definition: ALFA_RawDataContainer_charge.h:71
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
ALFA_RawDataContainer_charge::mrodId
uint16_t mrodId() const
Definition: ALFA_RawDataContainer_charge.h:69
ALFA_RawDataContainer_charge::~ALFA_RawDataContainer_charge
~ALFA_RawDataContainer_charge()
Definition: ALFA_RawDataContainer_charge.cxx:52
ALFA_RawDataContainer_charge::m_runType
uint16_t m_runType
Definition: ALFA_RawDataContainer_charge.h:38
ALFA_RawDataContainer_charge::m_triggerTypeId
uint16_t m_triggerTypeId
Definition: ALFA_RawDataContainer_charge.h:39
ALFA_RawDataContainer_charge::DetEventType
uint32_t DetEventType() const
Definition: ALFA_RawDataContainer_charge.h:76
ALFA_RawDataContainer_charge::bcId
uint16_t bcId() const
Definition: ALFA_RawDataContainer_charge.h:74
ALFA_RawDataContainer_charge::m_wordMarker
uint32_t m_wordMarker
Definition: ALFA_RawDataContainer_charge.h:25
ALFA_RawDataContainer_charge::ALFA_RawDataContainer_charge
ALFA_RawDataContainer_charge()
Definition: ALFA_RawDataContainer_charge.cxx:30
ALFA_RawDataContainer_charge::s_ROBmarker
static const uint32_t s_ROBmarker
Definition: ALFA_RawDataContainer_charge.h:47
ALFA_RawDataContainer_charge::lvl1Id
uint32_t lvl1Id() const
Definition: ALFA_RawDataContainer_charge.h:72
ALFA_RawDataContainer_charge::m_ecrId
uint16_t m_ecrId
Definition: ALFA_RawDataContainer_charge.h:35
ALFA_RawDataContainer_charge::m_bcId
uint16_t m_bcId
Definition: ALFA_RawDataContainer_charge.h:36
ALFA_RawDataContainer_charge::m_mrodId
uint16_t m_mrodId
Definition: ALFA_RawDataContainer_charge.h:33
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
ALFA_RawDataContainer_charge::s_RODversion
static const uint32_t s_RODversion
Definition: ALFA_RawDataContainer_charge.h:52
ALFA_RawDataContainer_charge::s_RODheadersize
static const uint32_t s_RODheadersize
Definition: ALFA_RawDataContainer_charge.h:51
ALFA_RawDataContainer_charge::setZero
void setZero()
Definition: ALFA_RawDataContainer_charge.cxx:72
ALFA_RawDataContainer_charge::is_FullEVmarker
bool is_FullEVmarker() const
Definition: ALFA_RawDataContainer_charge.h:63
ALFA_RawDataContainer_charge::trigtypeId
uint16_t trigtypeId() const
Definition: ALFA_RawDataContainer_charge.h:75
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
ALFA_RawDataContainer_charge::s_FullEVmarker
static const uint32_t s_FullEVmarker
Definition: ALFA_RawDataContainer_charge.h:45
ALFA_RawDataContainer_charge::is_RODmarker
bool is_RODmarker() const
Definition: ALFA_RawDataContainer_charge.h:65
ALFA_RawDataContainer_charge::m_lvl1Id
uint32_t m_lvl1Id
Definition: ALFA_RawDataContainer_charge.h:34
ALFA_RawDataContainer_charge
This container provides acces to the PMF RDOs.
Definition: ALFA_RawDataContainer_charge.h:21
ALFA_RawDataContainer_charge::m_runNum
uint32_t m_runNum
Definition: ALFA_RawDataContainer_charge.h:37
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
ALFA_RawDataContainer_charge::ecrId
uint16_t ecrId() const
Definition: ALFA_RawDataContainer_charge.h:73
ALFA_RawDataContainer_charge::s_RODmarker
static const uint32_t s_RODmarker
Definition: ALFA_RawDataContainer_charge.h:49
ALFA_RawDataContainer_charge::m_DetEventType
uint32_t m_DetEventType
Definition: ALFA_RawDataContainer_charge.h:40
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:64
ALFA_RawDataContainer_charge::size_type
ALFA_RawDataCollection_charge::size_type size_type
Definition: ALFA_RawDataContainer_charge.h:59
ALFA_RawDataContainer_charge::subdetId
uint16_t subdetId() const
Definition: ALFA_RawDataContainer_charge.h:68
ALFA_RawDataContainer_charge::is_ROBmarker
bool is_ROBmarker() const
Definition: ALFA_RawDataContainer_charge.h:64
DataVector< ALFA_RawData_charge >::size_type
BASE::size_type size_type
Definition: DataVector.h:813
ALFA_RawDataCollection_charge.h
CLASS_DEF.h
macros to associate a CLID to a type