ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
TileCalorimeter
TileSvc
TileByteStream
src
TileRawChannel2Bytes4.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TileByteStream/TileRawChannel2Bytes4.h
"
6
#include "
TileEvent/TileFastRawChannel.h
"
7
#include <algorithm>
8
#include <cmath>
9
10
int
TileRawChannel2Bytes4::getBytes
(
const
TileFastRawChannel
&
rc
,
11
unsigned
int
unit
,
12
int
gain
,
13
std::vector<unsigned int>& v)
const
14
{
15
// pack raw data into one 32-bits integer
16
v.push_back(
getWord
(
rc
,
unit
,
gain
));
17
18
return
1;
// one int added to vector
19
}
20
21
unsigned
int
TileRawChannel2Bytes4::getWord
(
const
TileFastRawChannel
&
rc
,
22
unsigned
int
unit
,
23
int
gain
)
const
24
{
25
// pack raw data into one 32-bits integer
26
float
tmp =
rc
.amplitude();
27
if
(
unit
!= 0 &&
gain
== 1) tmp = tmp * 64.0F;
28
unsigned
int
a
= std::max(0, std::min(
AMPLITUDE_RANGE4
29
, (
int
) std::lround(tmp *
AMPLITUDE_FACTOR4
[
unit
] +
AMPLITUDE_OFFSET4
[
gain
])));
30
31
unsigned
int
t = std::max(0,std::min(
TIME_RANGE4
32
, (
int
) std::lround(
rc
.time() *
TIME_FACTOR4
+
TIME_OFFSET4
)));
33
34
unsigned
int
q = std::max(0,
35
std::min(
QUALITY_RANGE4_FLAG
,
36
(
int
) std::lround(
rc
.quality() *
QUALITY_FACTOR4
+
QUALITY_OFFSET4
)));
37
38
unsigned
int
w = (
a
<<
AMPLITUDE_SHIFT4
) | (t <<
TIME_SHIFT4
) | (q <<
QUALITY_SHIFT4
);
39
40
if
(
gain
) w |=
GAIN_BIT4
;
41
42
return
w;
43
}
44
unit
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
Definition
AmgMatrixBasePlugin.h:21
a
static Double_t a
Definition
LArPhysWaveHECTool.cxx:38
rc
static Double_t rc
Definition
LArPhysWaveHECTool.cxx:37
TileFastRawChannel.h
TileRawChannel2Bytes4.h
AMPLITUDE_OFFSET4
const float AMPLITUDE_OFFSET4[2]
Definition
TileRawChannel2Bytes4.h:40
QUALITY_FACTOR4
const float QUALITY_FACTOR4
Definition
TileRawChannel2Bytes4.h:57
TIME_FACTOR4
const float TIME_FACTOR4
Definition
TileRawChannel2Bytes4.h:49
GAIN_BIT4
const unsigned int GAIN_BIT4
Definition
TileRawChannel2Bytes4.h:33
TIME_SHIFT4
const int TIME_SHIFT4
Definition
TileRawChannel2Bytes4.h:51
QUALITY_OFFSET4
const float QUALITY_OFFSET4
Definition
TileRawChannel2Bytes4.h:56
TIME_OFFSET4
const float TIME_OFFSET4
Definition
TileRawChannel2Bytes4.h:48
AMPLITUDE_SHIFT4
const int AMPLITUDE_SHIFT4
Definition
TileRawChannel2Bytes4.h:43
TIME_RANGE4
const int TIME_RANGE4
Definition
TileRawChannel2Bytes4.h:50
QUALITY_SHIFT4
const int QUALITY_SHIFT4
Definition
TileRawChannel2Bytes4.h:62
AMPLITUDE_FACTOR4
const float AMPLITUDE_FACTOR4[4]
Definition
TileRawChannel2Bytes4.h:41
AMPLITUDE_RANGE4
const int AMPLITUDE_RANGE4
Definition
TileRawChannel2Bytes4.h:42
QUALITY_RANGE4_FLAG
const int QUALITY_RANGE4_FLAG
Definition
TileRawChannel2Bytes4.h:60
TileFastRawChannel
Definition
TileFastRawChannel.h:17
TileRawChannel2Bytes4::getWord
unsigned int getWord(const TileFastRawChannel &rc, unsigned int unit, int gain) const
Returns a single 32-bit word which encodes the TileRawChannel information (gain,amplitude,...
Definition
TileRawChannel2Bytes4.cxx:21
TileRawChannel2Bytes4::gain
int gain(unsigned int w) const
Returns the gain unpacked from the single 32-bit word w.
Definition
TileRawChannel2Bytes4.h:97
TileRawChannel2Bytes4::getBytes
int getBytes(const TileFastRawChannel &rc, unsigned int unit, int gain, std::vector< unsigned int > &v) const
Adds an entry to the vector<int> v for this TileRawChannel.
Definition
TileRawChannel2Bytes4.cxx:10
Generated on
for ATLAS Offline Software by
1.17.0