ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArCnv
LArByteStream
LArByteStream
LArRodBlockCalibrationV1.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_LARRODBLOCKCALIBRATIONV1_H
8
#define LARBYTESTREAM_LARRODBLOCKCALIBRATIONV1_H
9
17
18
#include "
LArByteStream/LArRodBlockStructure.h
"
19
#include "
CaloIdentifier/CaloGain.h
"
20
21
class
LArRodBlockCalibrationV1
:
public
LArRodBlockStructure
22
{
23
public
:
24
// ----------------- Header words indexes -----------------
25
enum
{
26
NWTot
,
// First words: DSP event header
27
NWTot_h
,
28
FEBID
,
29
FEBID_h
,
30
FEB_SN
,
// FEB serial number
31
FEB_SN_h
,
// FEB serial number
32
ResultsOff1
,
// Size of results (Calibration averages in DSP)
33
ResultsDim1
,
// Offset to results
34
ResultsOff2
,
// Size of times (in physics)
35
ResultsDim2
,
// Offset to times (in physics)
36
RawDataBlkOff
,
37
RawDataBlkDim
,
// Raw FEB event offset
38
EventStatus
,
// Bits describing the event
39
EventStatus_h
,
40
NGains
,
41
NSamples
,
42
FebConfig
,
43
FebConfig_h
,
44
InFPGAFormat
,
// added 08.09.2005 - wrong 28.09.2005?
45
InFPGAFormat_h
46
};
47
enum
{
48
NTrigger
,
49
NTrigger_h
,
50
Dac
,
51
Dac_h
,
52
Delay
,
53
Delay_h
,
54
IsPulsed
,
55
IsPulsed1
,
56
IsPulsed2
,
57
IsPulsed3
,
58
IsPulsed4
,
59
IsPulsed5
,
60
IsPulsed6
,
61
IsPulsed7
,
62
feb_ssw
,
63
feb_ssw1
,
64
feb_ssw2
,
65
feb_ssw3
,
66
feb_ssw4
,
67
feb_ssw5
,
68
feb_ssw6
,
69
feb_ssw7
,
70
endtag
//This tag needs to be an odd number, see *) for constructor
71
};
72
// constructor
73
LArRodBlockCalibrationV1
(IMessageSvc* msgSvc);
74
75
// ------ Identify RodBlockStructure -------
76
static
std::string
BlockType
() {
return
std::string(
"RodBlockCalibrationV1"
);}
77
public
:
78
//void dumpFragment() { dumpFragment(m_FebBlock); }
79
// ----------------- Encoding methods -----------------
80
// Never to be used while decoding!
81
// ----------------- Decoding methods -----------------
82
// Never to be used while encoding!
83
// set full ROD fragment before trying to get anything!
84
// in case there is more than 1 FEB in 1 fragment, jump to next FEB
85
virtual
uint8_t
getTDCPhase
()
const
;
86
virtual
int
getNextRawData
(
int
& channelNumber, std::vector<short>& samples, uint32_t& gain);
87
using
LArRodBlockStructure::getNextAccumulatedCalibDigit
;
88
virtual
int
getNextAccumulatedCalibDigit
(
int
& channelNumber, std::vector< std::vector < uint32_t > >& samplesSum, std::vector< std::vector < uint32_t > >& samples2Sum, uint32_t& iStepTrigger, uint32_t& gain);
89
virtual
uint32_t
getNumberOfSamples
()
const
;
90
virtual
uint32_t
getNumberOfGains
()
const
;
91
virtual
uint32_t
getRadd
(uint32_t adc, uint32_t sample)
const
;
92
virtual
uint16_t
getCtrl1
(uint32_t adc)
const
;
93
virtual
uint16_t
getCtrl2
(uint32_t adc)
const
;
94
virtual
uint16_t
getCtrl3
(uint32_t adc)
const
;
95
virtual
uint32_t
getStatus
()
const
;
96
97
virtual
inline
uint32_t
hasCalibBlock
()
const
{
return
getHeader16
(
ResultsOff1
);} ;
98
virtual
inline
uint32_t
hasPhysicsBlock
()
const
{
return
getHeader16
(
ResultsOff2
);} ;
99
virtual
inline
uint32_t
hasRawDataBlock
()
const
{
return
getHeader16
(
RawDataBlkOff
);} ;
100
virtual
inline
uint32_t
hasControlWords
()
const
{
return
getHeader16
(
RawDataBlkOff
);} ;
101
102
private
:
103
void
clearBlocks
();
104
virtual
void
resetPointers
();
105
//Separated blocks for encoding
106
107
// One raw data block per gain to start with
108
std::vector<uint32_t>
m_RawDataBlock
;
109
//Counter for channels inside of a FEB
110
int
m_Result1Counter
= 0;
111
int
m_Result1Index
= 0;
112
int
m_Result2Counter
= 0;
113
int
m_Result2Index
= 0;
114
int
m_RawDataCounter
= 0;
115
int
m_RawDataIndex
= 0;
116
//For fixed gain mode
117
int
m_fixedGain
;
118
//FIXME, very ugly hack! See explanation in LArRodDecoder.h
119
public
:
120
inline
uint16_t
getNTrigger
()
const
;
121
inline
uint16_t
getDAC
()
const
;
122
inline
uint16_t
getDelay
()
const
;
123
inline
uint32_t
getFebConfig
()
const
;
124
inline
bool
getPulsed
(
const
unsigned
channelNumber)
const
;
125
126
virtual
bool
canSetCalibration
() {
return
false
;}
127
};
128
129
130
inline
uint32_t
LArRodBlockCalibrationV1::getFebConfig
()
const
131
{
132
return
getHeader32
(
FebConfig
);
133
}
134
135
inline
bool
LArRodBlockCalibrationV1::getPulsed
(
const
unsigned
channelNumber)
const
136
{
137
int
index
=
getHeader16
(
ResultsOff1
);
138
return
getBit
(
m_FebBlock
+
index
+
IsPulsed
/2,channelNumber);
139
}
140
141
142
143
#endif
CaloGain.h
LArRodBlockStructure.h
LArRodBlockCalibrationV1::hasControlWords
virtual uint32_t hasControlWords() const
Definition
LArRodBlockCalibrationV1.h:100
LArRodBlockCalibrationV1::getNextAccumulatedCalibDigit
virtual int getNextAccumulatedCalibDigit(int &channelNumber, std::vector< std::vector< uint32_t > > &samplesSum, std::vector< std::vector< uint32_t > > &samples2Sum, uint32_t &iStepTrigger, uint32_t &gain)
Definition
LArRodBlockCalibrationV1.cxx:135
LArRodBlockCalibrationV1::hasPhysicsBlock
virtual uint32_t hasPhysicsBlock() const
Definition
LArRodBlockCalibrationV1.h:98
LArRodBlockCalibrationV1::m_Result1Index
int m_Result1Index
Definition
LArRodBlockCalibrationV1.h:111
LArRodBlockCalibrationV1::resetPointers
virtual void resetPointers()
Definition
LArRodBlockCalibrationV1.cxx:39
LArRodBlockCalibrationV1::m_RawDataBlock
std::vector< uint32_t > m_RawDataBlock
Definition
LArRodBlockCalibrationV1.h:108
LArRodBlockCalibrationV1::IsPulsed
@ IsPulsed
Definition
LArRodBlockCalibrationV1.h:54
LArRodBlockCalibrationV1::feb_ssw
@ feb_ssw
Definition
LArRodBlockCalibrationV1.h:62
LArRodBlockCalibrationV1::IsPulsed1
@ IsPulsed1
Definition
LArRodBlockCalibrationV1.h:55
LArRodBlockCalibrationV1::IsPulsed2
@ IsPulsed2
Definition
LArRodBlockCalibrationV1.h:56
LArRodBlockCalibrationV1::feb_ssw6
@ feb_ssw6
Definition
LArRodBlockCalibrationV1.h:68
LArRodBlockCalibrationV1::feb_ssw1
@ feb_ssw1
Definition
LArRodBlockCalibrationV1.h:63
LArRodBlockCalibrationV1::feb_ssw3
@ feb_ssw3
Definition
LArRodBlockCalibrationV1.h:65
LArRodBlockCalibrationV1::IsPulsed4
@ IsPulsed4
Definition
LArRodBlockCalibrationV1.h:58
LArRodBlockCalibrationV1::feb_ssw5
@ feb_ssw5
Definition
LArRodBlockCalibrationV1.h:67
LArRodBlockCalibrationV1::Delay_h
@ Delay_h
Definition
LArRodBlockCalibrationV1.h:53
LArRodBlockCalibrationV1::feb_ssw7
@ feb_ssw7
Definition
LArRodBlockCalibrationV1.h:69
LArRodBlockCalibrationV1::NTrigger_h
@ NTrigger_h
Definition
LArRodBlockCalibrationV1.h:49
LArRodBlockCalibrationV1::endtag
@ endtag
Definition
LArRodBlockCalibrationV1.h:70
LArRodBlockCalibrationV1::Dac_h
@ Dac_h
Definition
LArRodBlockCalibrationV1.h:51
LArRodBlockCalibrationV1::feb_ssw4
@ feb_ssw4
Definition
LArRodBlockCalibrationV1.h:66
LArRodBlockCalibrationV1::feb_ssw2
@ feb_ssw2
Definition
LArRodBlockCalibrationV1.h:64
LArRodBlockCalibrationV1::IsPulsed6
@ IsPulsed6
Definition
LArRodBlockCalibrationV1.h:60
LArRodBlockCalibrationV1::NTrigger
@ NTrigger
Definition
LArRodBlockCalibrationV1.h:48
LArRodBlockCalibrationV1::IsPulsed3
@ IsPulsed3
Definition
LArRodBlockCalibrationV1.h:57
LArRodBlockCalibrationV1::Delay
@ Delay
Definition
LArRodBlockCalibrationV1.h:52
LArRodBlockCalibrationV1::Dac
@ Dac
Definition
LArRodBlockCalibrationV1.h:50
LArRodBlockCalibrationV1::IsPulsed5
@ IsPulsed5
Definition
LArRodBlockCalibrationV1.h:59
LArRodBlockCalibrationV1::IsPulsed7
@ IsPulsed7
Definition
LArRodBlockCalibrationV1.h:61
LArRodBlockCalibrationV1::getDelay
uint16_t getDelay() const
Definition
LArRodBlockCalibrationV1.cxx:258
LArRodBlockCalibrationV1::m_Result1Counter
int m_Result1Counter
Definition
LArRodBlockCalibrationV1.h:110
LArRodBlockCalibrationV1::getCtrl3
virtual uint16_t getCtrl3(uint32_t adc) const
Definition
LArRodBlockCalibrationV1.cxx:296
LArRodBlockCalibrationV1::hasCalibBlock
virtual uint32_t hasCalibBlock() const
Definition
LArRodBlockCalibrationV1.h:97
LArRodBlockCalibrationV1::m_fixedGain
int m_fixedGain
Definition
LArRodBlockCalibrationV1.h:117
LArRodBlockCalibrationV1::getRadd
virtual uint32_t getRadd(uint32_t adc, uint32_t sample) const
Definition
LArRodBlockCalibrationV1.cxx:265
LArRodBlockCalibrationV1::getPulsed
bool getPulsed(const unsigned channelNumber) const
Definition
LArRodBlockCalibrationV1.h:135
LArRodBlockCalibrationV1::getNumberOfGains
virtual uint32_t getNumberOfGains() const
Definition
LArRodBlockCalibrationV1.cxx:238
LArRodBlockCalibrationV1::getNextRawData
virtual int getNextRawData(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
Definition
LArRodBlockCalibrationV1.cxx:59
LArRodBlockCalibrationV1::getTDCPhase
virtual uint8_t getTDCPhase() const
Definition
LArRodBlockCalibrationV1.cxx:51
LArRodBlockCalibrationV1::getDAC
uint16_t getDAC() const
Definition
LArRodBlockCalibrationV1.cxx:251
LArRodBlockCalibrationV1::getStatus
virtual uint32_t getStatus() const
Definition
LArRodBlockCalibrationV1.cxx:309
LArRodBlockCalibrationV1::getFebConfig
uint32_t getFebConfig() const
Definition
LArRodBlockCalibrationV1.h:130
LArRodBlockCalibrationV1::m_Result2Counter
int m_Result2Counter
Definition
LArRodBlockCalibrationV1.h:112
LArRodBlockCalibrationV1::getCtrl2
virtual uint16_t getCtrl2(uint32_t adc) const
Definition
LArRodBlockCalibrationV1.cxx:286
LArRodBlockCalibrationV1::clearBlocks
void clearBlocks()
Definition
LArRodBlockCalibrationV1.cxx:34
LArRodBlockCalibrationV1::m_Result2Index
int m_Result2Index
Definition
LArRodBlockCalibrationV1.h:113
LArRodBlockCalibrationV1::BlockType
static std::string BlockType()
Definition
LArRodBlockCalibrationV1.h:76
LArRodBlockCalibrationV1::getNumberOfSamples
virtual uint32_t getNumberOfSamples() const
Definition
LArRodBlockCalibrationV1.cxx:233
LArRodBlockCalibrationV1::FEBID_h
@ FEBID_h
Definition
LArRodBlockCalibrationV1.h:29
LArRodBlockCalibrationV1::FebConfig
@ FebConfig
Definition
LArRodBlockCalibrationV1.h:42
LArRodBlockCalibrationV1::ResultsOff1
@ ResultsOff1
Definition
LArRodBlockCalibrationV1.h:32
LArRodBlockCalibrationV1::ResultsDim2
@ ResultsDim2
Definition
LArRodBlockCalibrationV1.h:35
LArRodBlockCalibrationV1::FebConfig_h
@ FebConfig_h
Definition
LArRodBlockCalibrationV1.h:43
LArRodBlockCalibrationV1::FEBID
@ FEBID
Definition
LArRodBlockCalibrationV1.h:28
LArRodBlockCalibrationV1::ResultsDim1
@ ResultsDim1
Definition
LArRodBlockCalibrationV1.h:33
LArRodBlockCalibrationV1::FEB_SN_h
@ FEB_SN_h
Definition
LArRodBlockCalibrationV1.h:31
LArRodBlockCalibrationV1::InFPGAFormat
@ InFPGAFormat
Definition
LArRodBlockCalibrationV1.h:44
LArRodBlockCalibrationV1::NSamples
@ NSamples
Definition
LArRodBlockCalibrationV1.h:41
LArRodBlockCalibrationV1::EventStatus_h
@ EventStatus_h
Definition
LArRodBlockCalibrationV1.h:39
LArRodBlockCalibrationV1::RawDataBlkOff
@ RawDataBlkOff
Definition
LArRodBlockCalibrationV1.h:36
LArRodBlockCalibrationV1::InFPGAFormat_h
@ InFPGAFormat_h
Definition
LArRodBlockCalibrationV1.h:45
LArRodBlockCalibrationV1::NWTot_h
@ NWTot_h
Definition
LArRodBlockCalibrationV1.h:27
LArRodBlockCalibrationV1::ResultsOff2
@ ResultsOff2
Definition
LArRodBlockCalibrationV1.h:34
LArRodBlockCalibrationV1::FEB_SN
@ FEB_SN
Definition
LArRodBlockCalibrationV1.h:30
LArRodBlockCalibrationV1::EventStatus
@ EventStatus
Definition
LArRodBlockCalibrationV1.h:38
LArRodBlockCalibrationV1::RawDataBlkDim
@ RawDataBlkDim
Definition
LArRodBlockCalibrationV1.h:37
LArRodBlockCalibrationV1::NWTot
@ NWTot
Definition
LArRodBlockCalibrationV1.h:26
LArRodBlockCalibrationV1::NGains
@ NGains
Definition
LArRodBlockCalibrationV1.h:40
LArRodBlockCalibrationV1::m_RawDataCounter
int m_RawDataCounter
Definition
LArRodBlockCalibrationV1.h:114
LArRodBlockCalibrationV1::m_RawDataIndex
int m_RawDataIndex
Definition
LArRodBlockCalibrationV1.h:115
LArRodBlockCalibrationV1::getCtrl1
virtual uint16_t getCtrl1(uint32_t adc) const
Definition
LArRodBlockCalibrationV1.cxx:276
LArRodBlockCalibrationV1::LArRodBlockCalibrationV1
LArRodBlockCalibrationV1(IMessageSvc *msgSvc)
Definition
LArRodBlockCalibrationV1.cxx:25
LArRodBlockCalibrationV1::canSetCalibration
virtual bool canSetCalibration()
Definition
LArRodBlockCalibrationV1.h:126
LArRodBlockCalibrationV1::hasRawDataBlock
virtual uint32_t hasRawDataBlock() const
Definition
LArRodBlockCalibrationV1.h:99
LArRodBlockCalibrationV1::getNTrigger
uint16_t getNTrigger() const
Definition
LArRodBlockCalibrationV1.cxx:243
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::getNextAccumulatedCalibDigit
virtual int getNextAccumulatedCalibDigit(int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &Samples2Sum, uint32_t &nStepTriggers, uint32_t &gain)
Definition
LArRodBlockStructure.cxx:86
LArRodBlockStructure::getHeader32
uint32_t getHeader32(const unsigned n) const
Definition
LArRodBlockStructure.h:353
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