ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonCSC_CnvTools
src
CscRDO_Decoder.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
CscRDO_Decoder.h
"
6
7
#include "GaudiKernel/TypeNameString.h"
8
#include "
MuonIdHelpers/CscIdHelper.h
"
9
#include "
MuonRDO/CscRawData.h
"
10
12
Muon::CscRDO_Decoder::CscRDO_Decoder
(
const
std::string&
type
,
const
std::string& name,
const
IInterface* parent) :
13
base_class(
type
, name, parent) {}
14
15
StatusCode
Muon::CscRDO_Decoder::initialize
() {
16
ATH_MSG_DEBUG
(
"CscRDO_Decoder::initialize"
);
17
ATH_CHECK
(
m_cabling
.retrieve());
18
ATH_CHECK
(
m_cscCalibTool
.retrieve());
19
ATH_MSG_DEBUG
(
" Parameters are from CscCalibTool "
);
20
m_samplingTime
=
m_cscCalibTool
->getSamplingTime();
21
m_signalWidth
=
m_cscCalibTool
->getSignalWidth();
22
m_timeOffset
=
m_cscCalibTool
->getTimeOffset();
23
ATH_MSG_DEBUG
(
" Initialization is done!"
);
24
return
StatusCode::SUCCESS;
25
}
26
27
void
Muon::CscRDO_Decoder::getDigit
(
const
CscRawData
* rawData,
const
CscIdHelper
* cscIdHelper,
Identifier
& moduleId,
Identifier
& channelId,
28
double
& adc,
double
& time)
const
{
29
// get the raw data
30
uint32_t address = rawData->
address
();
31
32
// initialize some parameters
33
CscRODReadOut
rodReadOut;
34
rodReadOut.
set
(cscIdHelper);
35
rodReadOut.
setChamberBitVaue
(1);
36
rodReadOut.
setParams
(
m_timeOffset
,
m_signalWidth
);
37
38
adc = rodReadOut.
findCharge
(
m_samplingTime
, rawData->
samples
(), time);
39
40
// now decode the encoded fragments
41
// find the Identifier and charge
42
moduleId = rodReadOut.
decodeAddress
(address);
43
channelId = rodReadOut.
decodeAddress
(address, moduleId);
44
}
45
46
Identifier
Muon::CscRDO_Decoder::stationIdentifier
(
const
CscRawData
* rawData,
const
CscIdHelper
* cscIdHelper)
const
{
48
uint32_t address = rawData->
address
();
49
50
// initialize some parameters
51
CscRODReadOut
rodReadOut;
52
rodReadOut.
set
(cscIdHelper);
53
rodReadOut.
setChamberBitVaue
(1);
54
rodReadOut.
setParams
(
m_timeOffset
,
m_signalWidth
);
55
57
return
rodReadOut.
decodeAddress
(address);
58
}
59
60
Identifier
Muon::CscRDO_Decoder::channelIdentifier
(
const
CscRawData
* rawData,
const
CscIdHelper
* cscIdHelper,
int
j)
const
{
62
uint32_t address = rawData->
address
();
63
64
// initialize some parameters
65
CscRODReadOut
rodReadOut;
66
rodReadOut.
set
(cscIdHelper);
67
rodReadOut.
setChamberBitVaue
(1);
68
rodReadOut.
setParams
(
m_timeOffset
,
m_signalWidth
);
69
71
Identifier
moduleId = rodReadOut.
decodeAddress
(address);
72
73
ATH_MSG_DEBUG
(
" CscRDO_Decoder OUTPUT ::: "
<<
m_timeOffset
<<
" "
<<
m_samplingTime
<<
" "
<<
m_signalWidth
<<
" "
74
<<
" "
<<
m_detdescr
<<
" "
<< address <<
" "
<< moduleId <<
" "
<< j);
75
76
return
rodReadOut.
decodeAddress
(address, moduleId, j);
77
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
CscIdHelper.h
CscRDO_Decoder.h
CscRawData.h
CscIdHelper
Definition
CscIdHelper.h:52
CscRODReadOut
Definition
CscRODReadOut.h:22
CscRODReadOut::decodeAddress
Identifier decodeAddress(const uint32_t address) const
Definition
CscRODReadOut.h:161
CscRODReadOut::setParams
void setParams(double timeOffset, double signalWidth)
Definition
CscRODReadOut.h:110
CscRODReadOut::set
void set(const CscIdHelper *cscIdHelper)
Definition
CscRODReadOut.h:50
CscRODReadOut::findCharge
static int findCharge(double samplingTime, const std::vector< uint16_t > &litude, double &time)
Definition
CscRODReadOut.cxx:70
CscRODReadOut::setChamberBitVaue
void setChamberBitVaue(uint32_t value)
Definition
CscRODReadOut.h:51
CscRawData
Class to hold the electronic output for a single CSC readout channel: n sampling ADC data + the addre...
Definition
CscRawData.h:21
CscRawData::address
uint32_t address() const
Definition
CscRawData.h:131
CscRawData::samples
const std::vector< uint16_t > & samples() const
Definition
CscRawData.h:130
Muon::CscRDO_Decoder::m_signalWidth
double m_signalWidth
Definition
CscRDO_Decoder.h:55
Muon::CscRDO_Decoder::m_detdescr
std::string m_detdescr
Definition
CscRDO_Decoder.h:50
Muon::CscRDO_Decoder::channelIdentifier
virtual Identifier channelIdentifier(const CscRawData *rawData, const CscIdHelper *cscIdHelper, int j) const override final
Definition
CscRDO_Decoder.cxx:60
Muon::CscRDO_Decoder::CscRDO_Decoder
CscRDO_Decoder(const std::string &type, const std::string &name, const IInterface *parent)
constructor
Definition
CscRDO_Decoder.cxx:12
Muon::CscRDO_Decoder::m_samplingTime
double m_samplingTime
Definition
CscRDO_Decoder.h:54
Muon::CscRDO_Decoder::initialize
virtual StatusCode initialize() override final
Definition
CscRDO_Decoder.cxx:15
Muon::CscRDO_Decoder::m_cscCalibTool
ToolHandle< ICscCalibTool > m_cscCalibTool
Definition
CscRDO_Decoder.h:52
Muon::CscRDO_Decoder::getDigit
virtual void getDigit(const CscRawData *rawData, const CscIdHelper *cscIdHelper, Identifier &moduleId, Identifier &channelId, double &adc, double &time) const override final
Definition
CscRDO_Decoder.cxx:27
Muon::CscRDO_Decoder::m_cabling
ServiceHandle< CSCcablingSvc > m_cabling
Definition
CscRDO_Decoder.h:51
Muon::CscRDO_Decoder::m_timeOffset
double m_timeOffset
Definition
CscRDO_Decoder.h:53
Muon::CscRDO_Decoder::stationIdentifier
virtual Identifier stationIdentifier(const CscRawData *rawData, const CscIdHelper *cscIdHelper) const override final
Definition
CscRDO_Decoder.cxx:46
Identifier
Definition
IdentifierFieldParser.cxx:14
type
Generated on
for ATLAS Offline Software by
1.17.0