ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArCnv
LArByteStream
LArByteStream
LArRodBlockCalibrationV3.h
Go to the documentation of this file.
1
//Dear emacs, this is -*- c++ -*-
2
3
/*
4
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
#ifndef LARBYTESTREAM_LARRODBLOCKCALIBRATIONV3_H
8
#define LARBYTESTREAM_LARRODBLOCKCALIBRATIONV3_H
9
19
20
#include "
LArByteStream/LArRodBlockStructure.h
"
21
#include "
CaloIdentifier/CaloGain.h
"
22
23
class
LArRodBlockCalibrationV3
:
public
LArRodBlockStructure
24
{
25
public
:
26
// ----------------- Header words indexes -----------------
27
enum
{
28
NWTot
,
// First words: DSP event header
29
NWTot_h
,
30
FEBID
,
31
FEBID_h
,
32
FEB_SN
,
// FEB serial number
33
FEB_SN_h
,
// FEB serial number
34
ResultsOff1
,
// Size of results (Calibration averages in DSP)
35
ResultsDim1
,
// Offset to results
36
ResultsOff2
,
// Size of times (in physics)
37
ResultsDim2
,
// Offset to times (in physics)
38
RawDataBlkOff
,
39
RawDataBlkDim
,
// Raw FEB event offset
40
EventStatus
,
// Bits describing the event
41
EventStatus_h
,
42
NGains
,
43
NSamples
,
44
FirstSampleIndex
,
45
FebConfig
,
46
InFPGAFormat
,
// added 08.09.2005 - wrong 28.09.2005?
47
InFPGAFormat_h
,
48
endtag
//This tag needs to be an odd number, see *) for constructor
49
};
50
enum
{
51
NTrigger
,
52
NTrigger_h
,
53
Dac
,
54
Dac_h
,
55
Delay
,
56
Delay_h
,
57
IsPulsed
,
58
IsPulsed1
,
59
IsPulsed2
,
60
IsPulsed3
,
61
IsPulsed4
,
62
IsPulsed5
,
63
IsPulsed6
,
64
IsPulsed7
,
65
StepIndex
,
66
NStep
,
67
feb_ssw
,
68
feb_ssw1
,
69
feb_ssw2
,
70
feb_ssw3
,
71
feb_ssw4
,
72
feb_ssw5
,
73
feb_ssw6
,
74
feb_ssw7
75
};
76
// constructor
77
LArRodBlockCalibrationV3
(IMessageSvc* msgSvc);
78
79
// ------ Identify RodBlockStructure -------
80
static
std::string
BlockType
() {
return
std::string(
"RodBlockCalibrationV3"
);}
81
public
:
82
//void dumpFragment() { dumpFragment(m_FebBlock); }
83
// ----------------- Encoding methods -----------------
84
// Never to be used while decoding!
85
// ----------------- Decoding methods -----------------
86
// Never to be used while encoding!
87
// set full ROD fragment before trying to get anything!
88
// in case there is more than 1 FEB in 1 fragment, jump to next FEB
89
virtual
uint8_t
getTDCPhase
()
const
;
90
virtual
int
getNextRawData
(
int
& channelNumber, std::vector<short>& samples, uint32_t& gain);
91
virtual
int
getNextAccumulatedCalibDigit
(
int
& channelNumber, std::vector < uint64_t >& samplesSum, std::vector < uint64_t >& samples2Sum, uint32_t& iStepTrigger, uint32_t& gain);
92
virtual
uint32_t
getNumberOfSamples
()
const
;
93
virtual
uint32_t
getNumberOfGains
()
const
;
94
virtual
uint32_t
getRadd
(uint32_t adc, uint32_t sample)
const
;
95
virtual
uint16_t
getResults1Size
()
const
;
96
virtual
uint16_t
getResults2Size
()
const
;
97
virtual
uint16_t
getRawDataSize
()
const
;
98
virtual
uint16_t
getCtrl1
(uint32_t adc)
const
;
99
virtual
uint16_t
getCtrl2
(uint32_t adc)
const
;
100
virtual
uint16_t
getCtrl3
(uint32_t adc)
const
;
101
virtual
uint32_t
getStatus
()
const
;
102
103
virtual
inline
int
setGain
(
const
int
GainValue);
// ---------------- Define gain for decoding
104
virtual
inline
uint32_t
hasCalibBlock
()
const
{
return
getHeader16
(
ResultsOff1
);} ;
105
virtual
inline
uint32_t
hasRawDataBlock
()
const
{
return
getHeader16
(
RawDataBlkOff
);} ;
106
virtual
inline
uint32_t
hasControlWords
()
const
{
return
getHeader16
(
RawDataBlkOff
);} ;
107
108
private
:
109
void
clearBlocks
();
110
virtual
void
resetPointers
();
111
//Separated blocks for encoding
112
113
// One raw data block per gain to start with
114
std::vector<uint32_t>
m_RawDataBlock
;
115
//Counter for channels inside of a FEB
116
int
m_Result1Counter
= 0;
117
int
m_Result1Index
= 0;
118
int
m_Result2Counter
= 0;
119
int
m_Result2Index
= 0;
120
int
m_RawDataCounter
= 0;
121
int
m_RawDataIndex
= 0;
122
//For fixed gain mode
123
unsigned
m_fixedGain
;
124
//FIXME, very ugly hack! See explanation in LArRodDecoder.h
125
public
:
126
inline
uint16_t
getNTrigger
()
const
;
127
inline
uint16_t
getStepIndex
()
const
;
128
inline
uint16_t
getNStep
()
const
;
129
inline
uint16_t
getDAC
()
const
;
130
inline
uint16_t
getDelay
()
const
;
131
inline
uint16_t
getFebConfig
()
const
;
132
inline
uint16_t
getFirstSampleIndex
()
const
;
133
134
inline
bool
getPulsed
(
const
unsigned
channelNumber)
const
;
135
136
virtual
bool
canSetCalibration
() {
return
false
;}
137
};
138
139
140
inline
int
LArRodBlockCalibrationV3::setGain
(
const
int
GainValue)
141
{
//This RodBlockStructure allows only predefined gains
142
if
(GainValue<0 || GainValue>3)
143
return
0;
144
m_fixedGain
=GainValue;
145
return
1;
146
}
147
148
inline
uint16_t
LArRodBlockCalibrationV3::getFebConfig
()
const
149
{
150
return
getHeader16
(
FebConfig
);
151
}
152
153
inline
uint16_t
LArRodBlockCalibrationV3::getFirstSampleIndex
()
const
154
{
155
return
getHeader16
(
FirstSampleIndex
);
156
}
157
158
inline
bool
LArRodBlockCalibrationV3::getPulsed
(
const
unsigned
channelNumber)
const
159
{
160
int
index
=
getHeader16
(
ResultsOff1
);
161
return
getBit
(
m_FebBlock
+
index
+
IsPulsed
/2,channelNumber);
162
}
163
164
165
166
#endif
CaloGain.h
LArRodBlockStructure.h
LArRodBlockCalibrationV3::m_fixedGain
unsigned m_fixedGain
Definition
LArRodBlockCalibrationV3.h:123
LArRodBlockCalibrationV3::hasCalibBlock
virtual uint32_t hasCalibBlock() const
Definition
LArRodBlockCalibrationV3.h:104
LArRodBlockCalibrationV3::getTDCPhase
virtual uint8_t getTDCPhase() const
Definition
LArRodBlockCalibrationV3.cxx:49
LArRodBlockCalibrationV3::hasControlWords
virtual uint32_t hasControlWords() const
Definition
LArRodBlockCalibrationV3.h:106
LArRodBlockCalibrationV3::resetPointers
virtual void resetPointers()
Definition
LArRodBlockCalibrationV3.cxx:37
LArRodBlockCalibrationV3::getStepIndex
uint16_t getStepIndex() const
Definition
LArRodBlockCalibrationV3.cxx:246
LArRodBlockCalibrationV3::m_Result2Counter
int m_Result2Counter
Definition
LArRodBlockCalibrationV3.h:118
LArRodBlockCalibrationV3::getFirstSampleIndex
uint16_t getFirstSampleIndex() const
Definition
LArRodBlockCalibrationV3.h:153
LArRodBlockCalibrationV3::LArRodBlockCalibrationV3
LArRodBlockCalibrationV3(IMessageSvc *msgSvc)
Definition
LArRodBlockCalibrationV3.cxx:23
LArRodBlockCalibrationV3::m_Result2Index
int m_Result2Index
Definition
LArRodBlockCalibrationV3.h:119
LArRodBlockCalibrationV3::EventStatus_h
@ EventStatus_h
Definition
LArRodBlockCalibrationV3.h:41
LArRodBlockCalibrationV3::FebConfig
@ FebConfig
Definition
LArRodBlockCalibrationV3.h:45
LArRodBlockCalibrationV3::NSamples
@ NSamples
Definition
LArRodBlockCalibrationV3.h:43
LArRodBlockCalibrationV3::FEB_SN
@ FEB_SN
Definition
LArRodBlockCalibrationV3.h:32
LArRodBlockCalibrationV3::FEBID_h
@ FEBID_h
Definition
LArRodBlockCalibrationV3.h:31
LArRodBlockCalibrationV3::FEBID
@ FEBID
Definition
LArRodBlockCalibrationV3.h:30
LArRodBlockCalibrationV3::InFPGAFormat
@ InFPGAFormat
Definition
LArRodBlockCalibrationV3.h:46
LArRodBlockCalibrationV3::RawDataBlkDim
@ RawDataBlkDim
Definition
LArRodBlockCalibrationV3.h:39
LArRodBlockCalibrationV3::NGains
@ NGains
Definition
LArRodBlockCalibrationV3.h:42
LArRodBlockCalibrationV3::NWTot_h
@ NWTot_h
Definition
LArRodBlockCalibrationV3.h:29
LArRodBlockCalibrationV3::ResultsDim1
@ ResultsDim1
Definition
LArRodBlockCalibrationV3.h:35
LArRodBlockCalibrationV3::NWTot
@ NWTot
Definition
LArRodBlockCalibrationV3.h:28
LArRodBlockCalibrationV3::FEB_SN_h
@ FEB_SN_h
Definition
LArRodBlockCalibrationV3.h:33
LArRodBlockCalibrationV3::RawDataBlkOff
@ RawDataBlkOff
Definition
LArRodBlockCalibrationV3.h:38
LArRodBlockCalibrationV3::ResultsOff1
@ ResultsOff1
Definition
LArRodBlockCalibrationV3.h:34
LArRodBlockCalibrationV3::ResultsOff2
@ ResultsOff2
Definition
LArRodBlockCalibrationV3.h:36
LArRodBlockCalibrationV3::ResultsDim2
@ ResultsDim2
Definition
LArRodBlockCalibrationV3.h:37
LArRodBlockCalibrationV3::InFPGAFormat_h
@ InFPGAFormat_h
Definition
LArRodBlockCalibrationV3.h:47
LArRodBlockCalibrationV3::EventStatus
@ EventStatus
Definition
LArRodBlockCalibrationV3.h:40
LArRodBlockCalibrationV3::endtag
@ endtag
Definition
LArRodBlockCalibrationV3.h:48
LArRodBlockCalibrationV3::FirstSampleIndex
@ FirstSampleIndex
Definition
LArRodBlockCalibrationV3.h:44
LArRodBlockCalibrationV3::m_Result1Counter
int m_Result1Counter
Definition
LArRodBlockCalibrationV3.h:116
LArRodBlockCalibrationV3::getRadd
virtual uint32_t getRadd(uint32_t adc, uint32_t sample) const
Definition
LArRodBlockCalibrationV3.cxx:275
LArRodBlockCalibrationV3::getDelay
uint16_t getDelay() const
Definition
LArRodBlockCalibrationV3.cxx:239
LArRodBlockCalibrationV3::m_RawDataCounter
int m_RawDataCounter
Definition
LArRodBlockCalibrationV3.h:120
LArRodBlockCalibrationV3::getResults1Size
virtual uint16_t getResults1Size() const
Definition
LArRodBlockCalibrationV3.cxx:253
LArRodBlockCalibrationV3::m_Result1Index
int m_Result1Index
Definition
LArRodBlockCalibrationV3.h:117
LArRodBlockCalibrationV3::getFebConfig
uint16_t getFebConfig() const
Definition
LArRodBlockCalibrationV3.h:148
LArRodBlockCalibrationV3::getRawDataSize
virtual uint16_t getRawDataSize() const
Definition
LArRodBlockCalibrationV3.cxx:263
LArRodBlockCalibrationV3::hasRawDataBlock
virtual uint32_t hasRawDataBlock() const
Definition
LArRodBlockCalibrationV3.h:105
LArRodBlockCalibrationV3::getNextAccumulatedCalibDigit
virtual int getNextAccumulatedCalibDigit(int &channelNumber, std::vector< uint64_t > &samplesSum, std::vector< uint64_t > &samples2Sum, uint32_t &iStepTrigger, uint32_t &gain)
Definition
LArRodBlockCalibrationV3.cxx:141
LArRodBlockCalibrationV3::getStatus
virtual uint32_t getStatus() const
Definition
LArRodBlockCalibrationV3.cxx:319
LArRodBlockCalibrationV3::getNumberOfSamples
virtual uint32_t getNumberOfSamples() const
Definition
LArRodBlockCalibrationV3.cxx:214
LArRodBlockCalibrationV3::BlockType
static std::string BlockType()
Definition
LArRodBlockCalibrationV3.h:80
LArRodBlockCalibrationV3::clearBlocks
void clearBlocks()
Definition
LArRodBlockCalibrationV3.cxx:32
LArRodBlockCalibrationV3::getPulsed
bool getPulsed(const unsigned channelNumber) const
Definition
LArRodBlockCalibrationV3.h:158
LArRodBlockCalibrationV3::m_RawDataIndex
int m_RawDataIndex
Definition
LArRodBlockCalibrationV3.h:121
LArRodBlockCalibrationV3::setGain
virtual int setGain(const int GainValue)
Definition
LArRodBlockCalibrationV3.h:140
LArRodBlockCalibrationV3::getNTrigger
uint16_t getNTrigger() const
Definition
LArRodBlockCalibrationV3.cxx:224
LArRodBlockCalibrationV3::getCtrl1
virtual uint16_t getCtrl1(uint32_t adc) const
Definition
LArRodBlockCalibrationV3.cxx:286
LArRodBlockCalibrationV3::getNextRawData
virtual int getNextRawData(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
Definition
LArRodBlockCalibrationV3.cxx:57
LArRodBlockCalibrationV3::getNumberOfGains
virtual uint32_t getNumberOfGains() const
Definition
LArRodBlockCalibrationV3.cxx:219
LArRodBlockCalibrationV3::getCtrl2
virtual uint16_t getCtrl2(uint32_t adc) const
Definition
LArRodBlockCalibrationV3.cxx:296
LArRodBlockCalibrationV3::getResults2Size
virtual uint16_t getResults2Size() const
Definition
LArRodBlockCalibrationV3.cxx:258
LArRodBlockCalibrationV3::m_RawDataBlock
std::vector< uint32_t > m_RawDataBlock
Definition
LArRodBlockCalibrationV3.h:114
LArRodBlockCalibrationV3::getCtrl3
virtual uint16_t getCtrl3(uint32_t adc) const
Definition
LArRodBlockCalibrationV3.cxx:306
LArRodBlockCalibrationV3::canSetCalibration
virtual bool canSetCalibration()
Definition
LArRodBlockCalibrationV3.h:136
LArRodBlockCalibrationV3::getDAC
uint16_t getDAC() const
Definition
LArRodBlockCalibrationV3.cxx:232
LArRodBlockCalibrationV3::Delay_h
@ Delay_h
Definition
LArRodBlockCalibrationV3.h:56
LArRodBlockCalibrationV3::Dac
@ Dac
Definition
LArRodBlockCalibrationV3.h:53
LArRodBlockCalibrationV3::IsPulsed7
@ IsPulsed7
Definition
LArRodBlockCalibrationV3.h:64
LArRodBlockCalibrationV3::Dac_h
@ Dac_h
Definition
LArRodBlockCalibrationV3.h:54
LArRodBlockCalibrationV3::feb_ssw3
@ feb_ssw3
Definition
LArRodBlockCalibrationV3.h:70
LArRodBlockCalibrationV3::NTrigger_h
@ NTrigger_h
Definition
LArRodBlockCalibrationV3.h:52
LArRodBlockCalibrationV3::IsPulsed2
@ IsPulsed2
Definition
LArRodBlockCalibrationV3.h:59
LArRodBlockCalibrationV3::IsPulsed4
@ IsPulsed4
Definition
LArRodBlockCalibrationV3.h:61
LArRodBlockCalibrationV3::feb_ssw6
@ feb_ssw6
Definition
LArRodBlockCalibrationV3.h:73
LArRodBlockCalibrationV3::feb_ssw
@ feb_ssw
Definition
LArRodBlockCalibrationV3.h:67
LArRodBlockCalibrationV3::IsPulsed
@ IsPulsed
Definition
LArRodBlockCalibrationV3.h:57
LArRodBlockCalibrationV3::IsPulsed6
@ IsPulsed6
Definition
LArRodBlockCalibrationV3.h:63
LArRodBlockCalibrationV3::feb_ssw7
@ feb_ssw7
Definition
LArRodBlockCalibrationV3.h:74
LArRodBlockCalibrationV3::feb_ssw2
@ feb_ssw2
Definition
LArRodBlockCalibrationV3.h:69
LArRodBlockCalibrationV3::StepIndex
@ StepIndex
Definition
LArRodBlockCalibrationV3.h:65
LArRodBlockCalibrationV3::IsPulsed1
@ IsPulsed1
Definition
LArRodBlockCalibrationV3.h:58
LArRodBlockCalibrationV3::Delay
@ Delay
Definition
LArRodBlockCalibrationV3.h:55
LArRodBlockCalibrationV3::IsPulsed3
@ IsPulsed3
Definition
LArRodBlockCalibrationV3.h:60
LArRodBlockCalibrationV3::IsPulsed5
@ IsPulsed5
Definition
LArRodBlockCalibrationV3.h:62
LArRodBlockCalibrationV3::feb_ssw5
@ feb_ssw5
Definition
LArRodBlockCalibrationV3.h:72
LArRodBlockCalibrationV3::NTrigger
@ NTrigger
Definition
LArRodBlockCalibrationV3.h:51
LArRodBlockCalibrationV3::NStep
@ NStep
Definition
LArRodBlockCalibrationV3.h:66
LArRodBlockCalibrationV3::feb_ssw4
@ feb_ssw4
Definition
LArRodBlockCalibrationV3.h:71
LArRodBlockCalibrationV3::feb_ssw1
@ feb_ssw1
Definition
LArRodBlockCalibrationV3.h:68
LArRodBlockCalibrationV3::getNStep
uint16_t getNStep() const
Definition
LArRodBlockCalibrationV3.cxx:268
LArRodBlockStructure::getBit
int getBit(const uint32_t *const p, const unsigned chan) const
Definition
LArRodBlockStructure.h:422
LArRodBlockStructure::getHeader16
uint16_t getHeader16(const unsigned n) const
Definition
LArRodBlockStructure.h:345
LArRodBlockStructure::m_FebBlock
const uint32_t * m_FebBlock
Definition
LArRodBlockStructure.h:221
LArRodBlockStructure::LArRodBlockStructure
LArRodBlockStructure(IMessageSvc *msgSvc, const std::string &blockType)
Definition
LArRodBlockStructure.cxx:18
index
Definition
index.py:1
Generated on
for ATLAS Offline Software by
1.17.0