ATLAS Offline Software
Loading...
Searching...
No Matches
LArRodBlockStructure.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5// Implementation of LArRODBlockStructure class
6
7#include <cstdio>
8#include <iostream>
15
16//uint32_t LArRodBlockStructure::FebToOfflineGainMap[3]={2,1,0};
17//uint32_t LArRodBlockStructure::OfflineToFebGainMap[3]={2,1,0};
18// uint32_t LArRodBlockStructure::m_RawToOfflineGainMap[4]={0, 0, 1,2};
19// uint32_t LArRodBlockStructure::m_OfflineToRawGainMap[3]={1,2,3};
23 : m_Ex(0),
24 m_Ey(0),
25 m_Ez(0),
26 m_SumE(0),
28 m_error_next_feb(false),
31{
32
36 m_RodBlock=NULL;
37 m_FebBlock=NULL;
40#ifndef NDEBUG
45#endif
46 m_pRODblock=NULL;
47 m_vFragment=NULL;
50}
51
55
56//Error reporting for not implemented methods
57void LArRodBlockStructure::setDAC(const uint16_t)
58{
59 std::cout << "Error: Function setDAC not implemented in this instance of LArRodBlockStructure!\n";
60 return;
61}
62
64{
65 std::cout << "Error: Function setDelay not implemented in this instance of LArRodBlockStructure!\n";
66 return;
67}
68
70{
71 std::cout << "Error: Function setPulsed not implemented in this instance of LArRodBlockStructure!\n";
72 return;
73}
74
76{
77 std::cout << "Error: Function setNTrigger not implemented in this instance of LArRodBlockStructure!\n";
78 return;
79}
80
82{
83 std::cout << "Error: Function concatinateFEBs not implemented in this instance of LArRodBlockStructure!\n";
84 return;
85}
86
88int LArRodBlockStructure::getNextRawData(int&, std::vector<short>&, uint32_t&)
90 std::cout << "Error: Function getNextRawData not implemented in this instance of LArRodBlockStructure!\n";
91 return 0;
92}
93
94int LArRodBlockStructure::getNextAccumulatedCalibDigit(int&, std::vector < uint64_t >&, std::vector < uint64_t >& , uint32_t&, uint32_t&)
95{
96 std::cout << "Error: Function getNextAccumulatedCalibDigit not implemented in this instance of LArRodBlockStructure!\n";
97 return 0;
98}
99
100int LArRodBlockStructure::getNextAccumulatedDigit(int&, std::vector<uint64_t>&, std::vector < uint64_t >& , uint32_t&)
101{
102 std::cout << "Error: Function getNextAccumulatedDigit not implemented in this instance of LArRodBlockStructure!\n";
103 return 0;
104}
105
106void LArRodBlockStructure::setNextEnergy(const int, const int32_t, const int32_t, const int32_t, const uint32_t)
107{
108 std::cout << "Error: Function setNextEnergy not implemented in this instance of LArRodBlockStructure!\n";
109 return;
110}
111
112
113void LArRodBlockStructure::setRawData(const int , const std::vector<short>& , const uint32_t)
114{
115 std::cout << "Error: Function setRawData not implemented in this instance of LArRodBlockStructure!\n";
116 return;
117}
118
119
120void LArRodBlockStructure::setEtQ(const int, const int32_t, const int32_t, const int32_t, const uint32_t)
121{
122 std::cout << "Error: Function setEtQ not implemented in this instance of LArRodBlockStructure!\n";
123 return;
124}
125
126void LArRodBlockStructure::setRawDataFixed(const int , const std::vector<short>&, const uint32_t )
127{
128 std::cout << "Error: Function setRawDataFixed not implemented in this instance of LArRodBlockStructure!\n";
129 return;
131
133{
134 std::cout << "Error: Function setNumberOfSamples not implemented in this instance of LArRodBlockStructure!\n";
135 return;
136}
137
139{
140 std::cout << "Error: Function setNumberOfGains not implemented in this instance of LArRodBlockStructure!\n";
141 return;
142}
143
145{
146 std::cout << "Error: Function setTDCPhase not implemented in this instance of LArRodBlockStructure!\n";
147 return;
148}
150{
151 std::cout << "Error: Function getTDCPhase not implemented in this instance of LArRodBlockStructure!\n";
152 return 0;
153}
154
156{
157 int offset = getNumberOfWords()-1;
158 if(offset>=m_FebBlockSize) return 0;
159 if(offset<0) return 0;
160 return m_FebBlock[offset];
161}
162
164{
165 int end = getNumberOfWords()-3;
166 int start = 1;
167 uint32_t sum = 0;
168 if(end>m_FebBlockSize) end = m_FebBlockSize;
169 for(int i=start;i<end;i++) {
170 sum += m_FebBlock[i];
171 }
172 return sum & 0x7fffffff;
173}
174
176{
177 std::cout << "Error: Function dumpFragment() not implemented in this instance of LArRodBlockStructure!\n";
178 return;
179}
180
181
183{
184 std::cout << "Error: Function initializeFEB not implemented in this instance of LArRodBlockStructure!\n";
185 return;
186}
187
188void LArRodBlockStructure::initializeFragment(std::vector<uint32_t>& )
189{
190 std::cout << "Error: Function initializeFragment not implemented in this instance of LArRodBlockStructure!\n";
191 return;
192}
193
195{
196 std::cout << "Error: Function finalizeFEB not implemented in this instance of LArRodBlockStructure!\n";
197 return;
198}
199
201{
202 // Do not set anything
203 return;
204}
205
207{
208 // Do not set anything
209 return;
210}
211
213{
214 // Do not set anything
215 return;
216}
217
219{
220 // Do not set anything
221 return;
222}
223
225{
226 return 1;
227}
228
229//Default instances of sort-method. Default is to leave things unsorted.
230void LArRodBlockStructure::sortDataVector(std::vector<const LArRawChannel*>& )
231{return;}
232
233void LArRodBlockStructure::sortDataVector( std::vector<const LArDigit*>& )
234{return;}
235
236void LArRodBlockStructure::sortDataVector( std::vector<const LArCalibDigit*>& )
237{return;}
238
239void LArRodBlockStructure::sortDataVector( std::vector<const LArAccumulatedCalibDigit*>& )
240{return;}
241
242void LArRodBlockStructure::sortDataVector( std::vector<const LArAccumulatedDigit*>& )
243{return;}
244
245uint32_t LArRodBlockStructure::getNumberOfSamples() const { return 0; }
246uint32_t LArRodBlockStructure::getNumberOfGains() const { return 0; }
247uint32_t LArRodBlockStructure::getRadd(uint32_t /*adc*/, uint32_t /*sample*/) const { return 0; }
248uint16_t LArRodBlockStructure::getCtrl1(uint32_t /*adc*/) const { return 0; }
249uint16_t LArRodBlockStructure::getCtrl2(uint32_t /*adc*/) const { return 0; }
250uint16_t LArRodBlockStructure::getCtrl3(uint32_t /*adc*/) const { return 0; }
251uint32_t LArRodBlockStructure::getStatus() const { return 0; }
252uint16_t LArRodBlockStructure::getResults1Size() const { return 0; }
253uint16_t LArRodBlockStructure::getResults2Size() const { return 0; }
254uint16_t LArRodBlockStructure::getRawDataSize() const { return 0; }
255uint16_t LArRodBlockStructure::getNbSweetCells1() const { return 0; }
256uint16_t LArRodBlockStructure::getNbSweetCells2() const { return 0; }
257
259{
260 int i=getNumberOfWords()-2;
261 return m_FebBlock[i];
262}
263
265{
266 int i=getNumberOfWords()-1;
267 return m_FebBlock[i];
268}
virtual void sortDataVector(std::vector< const LArRawChannel * > &)
virtual uint16_t getCtrl1(uint32_t adc) const
virtual void setRawDataFixed(const int channel, const std::vector< short > &samples, const uint32_t gain)
virtual void setSumE(double)
virtual void setEy(double)
virtual void setEtQ(const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain)
virtual void setDAC(const uint16_t DACValue)
const uint32_t * m_virtualROBPointerLocal
virtual uint16_t getCtrl3(uint32_t adc) const
virtual uint16_t getResults1Size() const
virtual void setTDCPhase(const uint8_t n)
virtual uint16_t getRawDataSize() const
virtual int getNextAccumulatedCalibDigit(int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &Samples2Sum, uint32_t &nStepTriggers, uint32_t &gain)
virtual uint32_t getNumberOfGains() const
virtual void setEx(double)
virtual void initializeFragment(std::vector< uint32_t > &fragment)
const uint32_t * m_virtualROBPointer
virtual void setNTrigger(const uint16_t NTrigger)
virtual uint32_t getDspCodeVersion() const
virtual uint16_t getCtrl2(uint32_t adc) const
virtual uint8_t getTDCPhase() const
virtual uint32_t getRadd(uint32_t adc, uint32_t sample) const
virtual void setPulsed(const unsigned channelNumber)
virtual void initializeFEB(const uint32_t id)
std::vector< uint32_t > * m_pRODblock
virtual int setGain(const int GainValue)
virtual void setDelay(const uint16_t DelayValue)
virtual uint32_t offlineCheckSum() const
static const uint32_t m_OfflineToRawGainMap[3]
virtual void setNumberOfSamples(const uint8_t n)
std::vector< uint32_t > * m_vFragment
static const uint32_t m_RawToOfflineGainMap[4]
virtual uint16_t getNbSweetCells2() const
virtual void setRawData(const int channel, const std::vector< short > &samples, const uint32_t gain)
virtual uint32_t getNumberOfSamples() const
virtual void setNumberOfGains(const uint8_t n)
virtual int getNextRawData(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
virtual void setEz(double)
virtual uint32_t getStatus() const
virtual void setNextEnergy(const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain)
uint32_t getNumberOfWords() const
virtual uint16_t getResults2Size() const
virtual uint16_t getNbSweetCells1() const
virtual int32_t getDspEventCounter() const
virtual uint32_t onlineCheckSum() const
virtual int getNextAccumulatedDigit(int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &corr2Sum, uint32_t &gain)
setEventNumber uint32_t