ATLAS Offline Software
ALFA_RawDataContainer.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_H
6 #define ALFA_RAWDATACONTAINER_H
7 
8 #include <vector>
9 #include <string>
11 #include "AthenaKernel/CLASS_DEF.h"
13 //#include "EventContainers/IdentifiableContainer.h"
14 
20 //class ALFA_RawDataContainer : public IdentifiableContainer<ALFA_RawDataCollection> {
21 class ALFA_RawDataContainer : public DataVector<ALFA_RawDataCollection> {
22 
23  private:
24 
25  // Raw data word and word header
26 
28 
29  // I added runNum, runType, DetEventType
30  // modification based on page19 MROD data format document and on ALFA dumped data file
31  //uint32_t m_dataWord;
32 
33  // Data members
34  uint16_t m_subdetId; // Sub-detector Id
35  uint16_t m_mrodId; // MROD Id
36  uint32_t m_lvl1Id; // Lvl1 Id
37  uint16_t m_ecrId; // ECR Id
38  uint16_t m_bcId; // Bunch crossing Id
39  uint32_t m_runNum; // Run sequence number
40  uint16_t m_runType; // Run Type
41  uint16_t m_triggerTypeId; // Trigger type Id
42  uint32_t m_DetEventType; // Detector Event Type
43 
44  // Data words in the ROD header
45 
46  // Full Event marker
47  static const uint32_t s_FullEVmarker = 0xaa1234aa;
48  // ROB marker
49  static const uint32_t s_ROBmarker = 0xdd1234dd;
50  // ROD marker
51  static const uint32_t s_RODmarker = 0xee1234ee;
52 
53  static const uint32_t s_RODheadersize = 0x00000009;
54  static const uint32_t s_RODversion = 0x03010000;
55 
56  //Time Stamp
58  //Time Stamp ns
60  //Bunch Crossing ID
62  //LumiBlock ID
64  //Lvl1 trigger pattern (fired items in lvl1 trigger)
65  std::vector<bool> m_lvl1Pattern;
66  //Lvl2 trigger pattern (fired items in lvl2 trigger)
67  std::vector<bool> m_lvl2Pattern;
68  //EF pattern (fired items in EF)
69  std::vector<bool> m_efPattern;
70 
71  public:
72 
75 
77 
78  size_type digit_size() const ;
79 
80  bool is_FullEVmarker() const {return m_wordMarker == s_FullEVmarker;};
81  bool is_ROBmarker() const {return m_wordMarker == s_ROBmarker;};
82  bool is_RODmarker() const {return m_wordMarker == s_RODmarker;};
83 
84 
85  // Retrieve decoded results
86  uint16_t subdetId() const {return m_subdetId;}
87  uint16_t mrodId() const {return m_mrodId;}
88  uint32_t runNum() const {return m_runNum;}
89  uint16_t runType() const {return m_runType;}
90  uint32_t lvl1Id() const {return m_lvl1Id;}
91  uint16_t ecrId() const {return m_ecrId;}
92  uint16_t bcId() const {return m_bcId;}
95 
96 
97  void SetLvl1Pattern(const std::vector<bool>& tmplvl1_pattern);
98  void SetLvl2Pattern(const std::vector<bool>& tmplvl2_pattern);
99  void SetEFPattern(const std::vector<bool>& tmpef_pattern);
100  void SetTimeStamp(uint32_t tmpTimeStamp);
101  void SetTimeStampns(uint32_t tmpTimeStampns);
102  void SetLumiBlock(uint32_t tmpLumiBlock);
103  void SetBCId(uint32_t tmpBCId);
104 
105  const std::vector<bool>& GetLvl1Pattern_POT() const {return m_lvl1Pattern;};
106  const std::vector<bool>& GetLvl2Pattern_POT() const {return m_lvl2Pattern;};
107  const std::vector<bool>& GetEFPattern_POT() const {return m_efPattern;};
108  uint32_t GetTimeStamp() const {return m_TimeStamp;};
110  uint32_t GetLumiBlock() const {return m_LumiBlock;};
111  uint32_t GetBCId() const {return m_BCId;};
112 
113  private:
114 
115  // Private functions
116  void setZero();
117 
118 };
119 
120 CLASS_DEF( ALFA_RawDataContainer , 1083669809 , 0 ) // da rimettere a posto prima di sottomettere in SVN
121 
122 
123 #endif // ALFA_RAWDATACONTAINER_H
ALFA_RawDataContainer::~ALFA_RawDataContainer
~ALFA_RawDataContainer()
Definition: ALFA_RawDataContainer.cxx:57
ALFA_RawDataContainer::runType
uint16_t runType() const
Definition: ALFA_RawDataContainer.h:89
ALFA_RawDataContainer::ecrId
uint16_t ecrId() const
Definition: ALFA_RawDataContainer.h:91
ALFA_RawDataContainer::s_RODversion
static const uint32_t s_RODversion
Definition: ALFA_RawDataContainer.h:54
ALFA_RawDataContainer::runNum
uint32_t runNum() const
Definition: ALFA_RawDataContainer.h:88
ALFA_RawDataContainer::m_TimeStamp
uint32_t m_TimeStamp
Definition: ALFA_RawDataContainer.h:57
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
ALFA_RawDataContainer::GetTimeStampns
uint32_t GetTimeStampns() const
Definition: ALFA_RawDataContainer.h:109
ALFA_RawDataContainer::m_DetEventType
uint32_t m_DetEventType
Definition: ALFA_RawDataContainer.h:42
ALFA_RawDataContainer::SetTimeStamp
void SetTimeStamp(uint32_t tmpTimeStamp)
Definition: ALFA_RawDataContainer.cxx:78
ALFA_RawDataContainer::mrodId
uint16_t mrodId() const
Definition: ALFA_RawDataContainer.h:87
ALFA_RawDataContainer::DetEventType
uint32_t DetEventType() const
Definition: ALFA_RawDataContainer.h:94
ALFA_RawDataContainer::m_efPattern
std::vector< bool > m_efPattern
Definition: ALFA_RawDataContainer.h:69
ALFA_RawDataContainer::m_triggerTypeId
uint16_t m_triggerTypeId
Definition: ALFA_RawDataContainer.h:41
ALFA_RawDataContainer::setZero
void setZero()
Definition: ALFA_RawDataContainer.cxx:115
ALFA_RawDataContainer::m_runNum
uint32_t m_runNum
Definition: ALFA_RawDataContainer.h:39
ALFA_RawDataContainer::SetTimeStampns
void SetTimeStampns(uint32_t tmpTimeStampns)
Definition: ALFA_RawDataContainer.cxx:83
ALFA_RawDataContainer::m_lvl2Pattern
std::vector< bool > m_lvl2Pattern
Definition: ALFA_RawDataContainer.h:67
ALFA_RawDataContainer::m_bcId
uint16_t m_bcId
Definition: ALFA_RawDataContainer.h:38
ALFA_RawDataContainer::GetLvl1Pattern_POT
const std::vector< bool > & GetLvl1Pattern_POT() const
Definition: ALFA_RawDataContainer.h:105
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
ALFA_RawDataContainer::m_lvl1Pattern
std::vector< bool > m_lvl1Pattern
Definition: ALFA_RawDataContainer.h:65
ALFA_RawDataContainer::m_lvl1Id
uint32_t m_lvl1Id
Definition: ALFA_RawDataContainer.h:36
ALFA_RawDataContainer::GetBCId
uint32_t GetBCId() const
Definition: ALFA_RawDataContainer.h:111
ALFA_RawDataContainer::is_RODmarker
bool is_RODmarker() const
Definition: ALFA_RawDataContainer.h:82
ALFA_RawDataContainer::GetLumiBlock
uint32_t GetLumiBlock() const
Definition: ALFA_RawDataContainer.h:110
ALFA_RawDataContainer::s_FullEVmarker
static const uint32_t s_FullEVmarker
Definition: ALFA_RawDataContainer.h:47
ALFA_RawDataContainer::m_TimeStampns
uint32_t m_TimeStampns
Definition: ALFA_RawDataContainer.h:59
ALFA_RawDataContainer::lvl1Id
uint32_t lvl1Id() const
Definition: ALFA_RawDataContainer.h:90
ALFA_RawDataContainer::m_LumiBlock
uint32_t m_LumiBlock
Definition: ALFA_RawDataContainer.h:63
ALFA_RawDataContainer::subdetId
uint16_t subdetId() const
Definition: ALFA_RawDataContainer.h:86
ALFA_RawDataContainer::bcId
uint16_t bcId() const
Definition: ALFA_RawDataContainer.h:92
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
ALFA_RawDataContainer::SetLumiBlock
void SetLumiBlock(uint32_t tmpLumiBlock)
Definition: ALFA_RawDataContainer.cxx:88
ALFA_RawDataContainer::SetLvl2Pattern
void SetLvl2Pattern(const std::vector< bool > &tmplvl2_pattern)
Definition: ALFA_RawDataContainer.cxx:103
ALFA_RawDataContainer::SetEFPattern
void SetEFPattern(const std::vector< bool > &tmpef_pattern)
Definition: ALFA_RawDataContainer.cxx:108
ALFA_RawDataContainer::is_ROBmarker
bool is_ROBmarker() const
Definition: ALFA_RawDataContainer.h:81
ALFA_RawDataContainer::is_FullEVmarker
bool is_FullEVmarker() const
Definition: ALFA_RawDataContainer.h:80
ALFA_RawDataContainer::m_wordMarker
uint32_t m_wordMarker
Definition: ALFA_RawDataContainer.h:27
ALFA_RawDataContainer::m_runType
uint16_t m_runType
Definition: ALFA_RawDataContainer.h:40
ALFA_RawDataContainer::ALFA_RawDataContainer
ALFA_RawDataContainer()
Definition: ALFA_RawDataContainer.cxx:30
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
ALFA_RawDataContainer::s_ROBmarker
static const uint32_t s_ROBmarker
Definition: ALFA_RawDataContainer.h:49
ALFA_RawDataContainer::m_ecrId
uint16_t m_ecrId
Definition: ALFA_RawDataContainer.h:37
ALFA_RawDataContainer::m_BCId
uint32_t m_BCId
Definition: ALFA_RawDataContainer.h:61
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
This container provides acces to the PMF RDOs.
Definition: ALFA_RawDataContainer.h:21
ALFA_RawDataContainer::GetEFPattern_POT
const std::vector< bool > & GetEFPattern_POT() const
Definition: ALFA_RawDataContainer.h:107
ALFA_RawDataContainer::m_mrodId
uint16_t m_mrodId
Definition: ALFA_RawDataContainer.h:35
ALFA_RawDataContainer::SetLvl1Pattern
void SetLvl1Pattern(const std::vector< bool > &tmplvl1_pattern)
Definition: ALFA_RawDataContainer.cxx:98
ALFA_RawDataContainer::SetBCId
void SetBCId(uint32_t tmpBCId)
Definition: ALFA_RawDataContainer.cxx:93
ALFA_RawDataContainer::digit_size
size_type digit_size() const
Definition: ALFA_RawDataContainer.cxx:66
ALFA_RawDataCollection.h
DataVector< ALFA_RawData >::size_type
BASE::size_type size_type
Definition: DataVector.h:813
ALFA_RawDataContainer::GetTimeStamp
uint32_t GetTimeStamp() const
Definition: ALFA_RawDataContainer.h:108
ALFA_RawDataContainer::s_RODheadersize
static const uint32_t s_RODheadersize
Definition: ALFA_RawDataContainer.h:53
ALFA_RawDataContainer::GetLvl2Pattern_POT
const std::vector< bool > & GetLvl2Pattern_POT() const
Definition: ALFA_RawDataContainer.h:106
ALFA_RawDataContainer::s_RODmarker
static const uint32_t s_RODmarker
Definition: ALFA_RawDataContainer.h:51
CLASS_DEF.h
macros to associate a CLID to a type
ALFA_RawDataContainer::trigtypeId
uint16_t trigtypeId() const
Definition: ALFA_RawDataContainer.h:93
ALFA_RawDataContainer::size_type
ALFA_RawDataCollection::size_type size_type
Definition: ALFA_RawDataContainer.h:76
ALFA_RawDataContainer::m_subdetId
uint16_t m_subdetId
Definition: ALFA_RawDataContainer.h:34