ATLAS Offline Software
ZdcLucrodData.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ZDC_LUCRODDATA_H
6 #define ZDC_LUCRODDATA_H
7 
8 // working in ADC scale for Run 3
9 //#define ADC2MV 0.3663
10 #define ADC2MV 1
11 
12 typedef struct ZdcLucrodChannelType {
13 
14  unsigned int id;
15  std::vector <uint16_t> waveform;
17 
18 #include <vector>
19 
21 
22  public:
23 
24  ZdcLucrodData(unsigned int id) {
25 
26  m_lucrodID = id;
27  m_bcid = 0;
28  m_runNumber = 0;
29  m_level1ID = 0;
30  m_numBCs = 0;
31  m_status = 0;
32 
33  m_trigAvgA = 0;
34  m_trigAvgC = 0;
35 
36  m_trigData.clear();
37  m_chanData.clear();
38  };
39 
41 
42  void SetBCID (unsigned int val) { m_bcid = val; }
43  void SetRunNumber(unsigned int val) { m_runNumber = val; }
44  void SetLevel1ID (unsigned int val) { m_level1ID = val; }
45  void SetNumBCs (unsigned int val) { m_numBCs = val; }
46  void SetStatus (unsigned int val) { m_status = val; }
47 
50 
51  void AddTrigData(uint16_t val) { m_trigData.push_back(val); }
52 
53  bool AddChanData(unsigned int id, const std::vector<uint16_t>& waveform) {
54 
56 
57  channel.id = id;
58  channel.waveform = waveform;
59 
60  // Check for valid length
61  //
62  if (waveform.size() != m_numBCs*8) return false;
63 
64  m_chanData.push_back(channel);
65  return true;
66  }
67 
68  unsigned int GetLucrodID() const { return m_lucrodID; }
69  unsigned int GetBCID() const { return m_bcid; }
70  unsigned int GetRunNumber() const { return m_runNumber; }
71  unsigned int GetLevel1ID() const { return m_level1ID; }
72  unsigned int GetNumBCs() const { return m_numBCs; }
73  unsigned int GetStatus() const { return m_status; }
74 
75  uint16_t GetTrigAvgA() const { return m_trigAvgA; }
76  uint16_t GetTrigAvgC() const { return m_trigAvgC; }
77 
78  std::vector<uint16_t> GetTrigData() const { return m_trigData; }
79  const ZdcLucrodChannel& GetChanData(int it) const { return m_chanData[it]; }
80 
81  unsigned int GetTrigDataSize() const { return m_trigData.size(); }
82  unsigned int GetChanDataSize() const { return m_chanData.size(); }
83 
84  std::string str() const {
85 
86  std::ostringstream ost;
87 
88  ost << " LucrodID: " << std::dec << m_lucrodID << std::endl
89  << " BCID: " << std::dec << m_bcid << std::endl
90  << " RunNumber: " << std::dec << m_runNumber << std::endl
91  << " Level1ID: 0x" << std::hex << m_level1ID << std::endl
92  << " NumBCs: " << std::dec << m_numBCs << std::endl
93  << " Status: " << std::dec << m_status << std::endl;
94 
95  for (unsigned int nch=0; nch<m_chanData.size(); nch++)
96  {
97 
98  std::vector<uint16_t> waveform = m_chanData[nch].waveform;
99 
100  ost << " ch: " << m_chanData[nch].id << " waveform:";
101 
102  for (unsigned int sample=0; sample<waveform.size(); sample++)
103  ost << " " << waveform[sample]/ADC2MV;
104 
105  ost << std::endl;
106  }
107 
108  ost << " trigAvgA: " << m_trigAvgA/ADC2MV << std::endl;
109  ost << " trigAvgC: " << m_trigAvgC/ADC2MV << std::endl;
110  ost << " trigAmpl:";
111 
112  for (unsigned int nch=0; nch<m_trigData.size(); nch++)
113  ost << " " << m_trigData[nch]/ADC2MV;
114 
115  ost << std::endl << " stat: " << m_status;
116 
117  return ost.str();
118  }
119 
120  std::ostream& operator<<(std::ostream& os) { os << str(); return os; }
121 
122  private:
123 
124  unsigned int m_lucrodID;
125  unsigned int m_bcid;
126  unsigned int m_runNumber;
127  unsigned int m_level1ID;
128  unsigned int m_numBCs;
129  unsigned int m_status;
130 
133 
134  std::vector<uint16_t> m_trigData;
135  std::vector<ZdcLucrodChannel> m_chanData;
136 };
137 
138 #endif
ZdcLucrodData::str
std::string str() const
Definition: ZdcLucrodData.h:84
ZdcLucrodChannelType
Definition: ZdcLucrodData.h:12
python.trigbs_prescaleL1.ost
ost
Definition: trigbs_prescaleL1.py:104
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
ZdcLucrodData::m_lucrodID
unsigned int m_lucrodID
Definition: ZdcLucrodData.h:124
ZdcLucrodData::~ZdcLucrodData
~ZdcLucrodData()
Definition: ZdcLucrodData.h:40
ZdcLucrodData::SetTrigAvgA
void SetTrigAvgA(uint16_t val)
Definition: ZdcLucrodData.h:48
ZdcLucrodData::m_trigAvgC
uint16_t m_trigAvgC
Definition: ZdcLucrodData.h:132
ZdcLucrodData::SetRunNumber
void SetRunNumber(unsigned int val)
Definition: ZdcLucrodData.h:43
ZdcLucrodData::AddChanData
bool AddChanData(unsigned int id, const std::vector< uint16_t > &waveform)
Definition: ZdcLucrodData.h:53
ZdcLucrodData::SetTrigAvgC
void SetTrigAvgC(uint16_t val)
Definition: ZdcLucrodData.h:49
skel.it
it
Definition: skel.GENtoEVGEN.py:423
ZdcLucrodData::ZdcLucrodData
ZdcLucrodData(unsigned int id)
Definition: ZdcLucrodData.h:24
ZdcLucrodData::m_runNumber
unsigned int m_runNumber
Definition: ZdcLucrodData.h:126
ZdcLucrodData::GetChanDataSize
unsigned int GetChanDataSize() const
Definition: ZdcLucrodData.h:82
ZdcLucrodData::operator<<
std::ostream & operator<<(std::ostream &os)
Definition: ZdcLucrodData.h:120
ZdcLucrodData::GetTrigDataSize
unsigned int GetTrigDataSize() const
Definition: ZdcLucrodData.h:81
ZdcLucrodData::SetLevel1ID
void SetLevel1ID(unsigned int val)
Definition: ZdcLucrodData.h:44
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:100
ZdcLucrodChannelType::waveform
std::vector< uint16_t > waveform
Definition: ZdcLucrodData.h:15
ZdcLucrodData::AddTrigData
void AddTrigData(uint16_t val)
Definition: ZdcLucrodData.h:51
ZdcLucrodData::GetTrigData
std::vector< uint16_t > GetTrigData() const
Definition: ZdcLucrodData.h:78
ZdcLucrodData::m_chanData
std::vector< ZdcLucrodChannel > m_chanData
Definition: ZdcLucrodData.h:135
ZdcLucrodData::GetNumBCs
unsigned int GetNumBCs() const
Definition: ZdcLucrodData.h:72
ZdcLucrodData::GetLevel1ID
unsigned int GetLevel1ID() const
Definition: ZdcLucrodData.h:71
ZdcLucrodData::m_level1ID
unsigned int m_level1ID
Definition: ZdcLucrodData.h:127
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
ZdcLucrodData::m_trigData
std::vector< uint16_t > m_trigData
Definition: ZdcLucrodData.h:134
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:191
ZdcLucrodData::GetChanData
const ZdcLucrodChannel & GetChanData(int it) const
Definition: ZdcLucrodData.h:79
ZdcLucrodData::SetStatus
void SetStatus(unsigned int val)
Definition: ZdcLucrodData.h:46
ZdcLucrodData::GetBCID
unsigned int GetBCID() const
Definition: ZdcLucrodData.h:69
ZdcLucrodData::m_bcid
unsigned int m_bcid
Definition: ZdcLucrodData.h:125
ZdcLucrodData::GetStatus
unsigned int GetStatus() const
Definition: ZdcLucrodData.h:73
ZdcLucrodData::SetNumBCs
void SetNumBCs(unsigned int val)
Definition: ZdcLucrodData.h:45
ADC2MV
#define ADC2MV
Definition: ZdcLucrodData.h:10
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
ZdcLucrodData
Definition: ZdcLucrodData.h:20
ZdcLucrodData::GetTrigAvgA
uint16_t GetTrigAvgA() const
Definition: ZdcLucrodData.h:75
ZdcLucrodChannelType::id
unsigned int id
Definition: ZdcLucrodData.h:14
ZdcLucrodData::m_trigAvgA
uint16_t m_trigAvgA
Definition: ZdcLucrodData.h:131
ZdcLucrodData::GetRunNumber
unsigned int GetRunNumber() const
Definition: ZdcLucrodData.h:70
ZdcLucrodData::SetBCID
void SetBCID(unsigned int val)
Definition: ZdcLucrodData.h:42
ZdcLucrodData::m_numBCs
unsigned int m_numBCs
Definition: ZdcLucrodData.h:128
ZdcLucrodData::GetLucrodID
unsigned int GetLucrodID() const
Definition: ZdcLucrodData.h:68
ZdcLucrodData::GetTrigAvgC
uint16_t GetTrigAvgC() const
Definition: ZdcLucrodData.h:76
ZdcLucrodData::m_status
unsigned int m_status
Definition: ZdcLucrodData.h:129
ZdcLucrodChannel
struct ZdcLucrodChannelType ZdcLucrodChannel