ATLAS Offline Software
TileCalorimeter
TileSvc
TileByteStream
src
TileRawChannel2Bytes.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TileByteStream/TileRawChannel2Bytes.h
"
6
#include "
TileEvent/TileFastRawChannel.h
"
7
#include <algorithm>
8
#include <cmath>
9
10
int
TileRawChannel2Bytes::getBytes
(
const
TileFastRawChannel
* rc,
int
gain
, std::vector<short>&
v
) {
11
// pack raw data into 16bit integers
12
13
int
a
= std::lround(rc->amplitude() *
AMPLITUDE_FACTOR
);
14
int
t
= std::lround(rc->time() *
TIME_FACTOR
);
15
int
q
= std::lround(rc->quality() *
QUALITY_FACTOR
);
16
17
short
w1 =
std::min
(abs(
a
),
amplitude_range
());
18
if
(
a
< 0) w1 |=
AMPLITUDE_SIGN
;
19
if
(
gain
) w1 |=
GAIN_BIT
;
20
// w1 <<= AMPLITUDE_SHIFT;
21
22
short
w2 =
std::min
(abs(
t
),
time_range
());
23
if
(
t
< 0) w2 |=
TIME_SIGN
;
24
// w2 <<= TIME_SHIFT;
25
26
short
w3 =
std::min
(abs(
q
),
quality_range
());
27
if
(
q
< 0) w3 |=
QUALITY_SIGN
;
28
// w3 <<= QUALITY_SHIFT;
29
30
v
.push_back(w1);
31
v
.push_back(w2);
32
v
.push_back(w3);
33
34
return
3;
35
}
36
AMPLITUDE_SIGN
const int AMPLITUDE_SIGN
Definition:
TileRawChannel2Bytes.h:24
GAIN_BIT
const int GAIN_BIT
Definition:
TileRawChannel2Bytes.h:23
QUALITY_SIGN
const int QUALITY_SIGN
Definition:
TileRawChannel2Bytes.h:32
TileRawChannel2Bytes::time_range
int time_range()
Returns TIME_RANGE .
Definition:
TileRawChannel2Bytes.h:75
min
constexpr double min()
Definition:
ap_fixedTest.cxx:26
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition:
CaloCondBlobAlgs_fillNoiseFromASCII.py:110
read_hist_ntuple.t
t
Definition:
read_hist_ntuple.py:5
TileRawChannel2Bytes::amplitude_range
int amplitude_range()
Returns AMPLITUDE_RANGE .
Definition:
TileRawChannel2Bytes.h:71
QUALITY_FACTOR
const float QUALITY_FACTOR
Definition:
TileRawChannel2Bytes.h:38
TileRawChannel2Bytes::gain
int gain(short i) const
Returns the gain unpacked from the single 16-bit word w.
Definition:
TileRawChannel2Bytes.h:89
TileRawChannel2Bytes::getBytes
int getBytes(const TileFastRawChannel *rc, int gain, std::vector< short > &v)
Pack TileRawChannel information (gain, amplitude, phase and quality) in 3 16-bit words.
Definition:
TileRawChannel2Bytes.cxx:10
TIME_FACTOR
const float TIME_FACTOR
Definition:
TileRawChannel2Bytes.h:37
python.PyAthena.v
v
Definition:
PyAthena.py:154
TileRawChannel2Bytes::quality_range
int quality_range()
Retuns QUALITY_RANGE .
Definition:
TileRawChannel2Bytes.h:79
a
TList * a
Definition:
liststreamerinfos.cxx:10
AMPLITUDE_FACTOR
const float AMPLITUDE_FACTOR
Definition:
TileRawChannel2Bytes.h:36
extractSporadic.q
list q
Definition:
extractSporadic.py:98
TileFastRawChannel
Definition:
TileFastRawChannel.h:17
TileFastRawChannel.h
TIME_SIGN
const int TIME_SIGN
Definition:
TileRawChannel2Bytes.h:28
TileRawChannel2Bytes.h
Generated on Sun Dec 22 2024 21:19:54 for ATLAS Offline Software by
1.8.18