ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonConditions
MuonCondGeneral
MuonCondData
MuonCondData
NswCalibDbTimeChargeData.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef MUONCONDDATA_NSWCALIBDBTIMECHARGEDATA_H
6
#define MUONCONDDATA_NSWCALIBDBTIMECHARGEDATA_H
7
8
9
10
// Athena includes
11
#include "
AthenaKernel/CondCont.h
"
12
#include "
AthenaKernel/BaseInfo.h
"
13
#include "
AthenaBaseComps/AthMessaging.h
"
14
#include "
MuonCondData/Defs.h
"
15
#include "Identifier/Identifier.h"
16
#include "
MuonIdHelpers/IMuonIdHelperSvc.h
"
17
18
// STL includes
19
#include <vector>
20
#include <map>
21
#include <iosfwd>
22
23
24
25
class
NswCalibDbTimeChargeData
:
public
AthMessaging
{
26
27
public
:
28
enum class
CalibDataType
{
29
TDO
,
30
PDO
,
31
nTypes
32
};
33
35
struct
CalibConstants
{
36
float
slope
{0.};
37
float
intercept
{0.};
38
//float slopeError{0.}; // keep for later
39
//float interceptError{0.};
40
};
41
42
NswCalibDbTimeChargeData
(
const
Muon::IMuonIdHelperSvc
* idHelperSvc);
43
~NswCalibDbTimeChargeData
() =
default
;
44
45
// setting functions
46
void
setData
(
CalibDataType
type
,
const
Identifier
& chnlId,
CalibConstants
constants
);
47
void
setZero
(
CalibDataType
type
,
MuonCond::CalibTechType
tech,
CalibConstants
constants
);
48
49
// retrieval functions
50
52
std::vector<Identifier>
getChannelIds
(
const
CalibDataType
type
,
const
std::string& tech,
const
std::string& side)
const
;
55
const
CalibConstants
*
getCalibForChannel
(
const
CalibDataType
type
,
const
Identifier
& channelId)
const
;
57
const
CalibConstants
*
getZeroCalibChannel
(
const
CalibDataType
type
,
const
MuonCond::CalibTechType
tech)
const
;
58
59
private
:
60
61
int
identToModuleIdx
(
const
Identifier
& chan_id)
const
;
62
// ID helpers
63
const
Muon::IMuonIdHelperSvc
*
m_idHelperSvc
{};
65
const
size_t
m_nMmElements
{
m_idHelperSvc
->hasMM() ?
66
4* (
m_idHelperSvc
->mmIdHelper().detectorElement_hash_max() + 1) : 0};
67
68
const
size_t
m_nStgcElements
{
m_idHelperSvc
->hasSTGC() ?
69
3*4 *(
m_idHelperSvc
->stgcIdHelper().detectorElement_hash_max() +1): 0};
70
71
// containers
72
struct
CalibModule
{
73
std::vector<std::unique_ptr<CalibConstants>>
channels
{};
74
Identifier
layer_id
{};
75
};
76
77
using
ChannelCalibMap
= std::vector<CalibModule>;
78
ChannelCalibMap
m_pdo_data
{};
79
ChannelCalibMap
m_tdo_data
{};
80
81
using
ZeroCalibMap
= std::array<
CalibConstants
,
Muon::MuonStationIndex::toInt
(
CalibDataType::nTypes
)>;
82
std::array<
ZeroCalibMap
,
Muon::MuonStationIndex::toInt
(
MuonCond::CalibTechType::nTypes
)>
m_zero
{};
83
84
};
85
86
std::ostream&
operator<<
(std::ostream& ostr,
const
NswCalibDbTimeChargeData::CalibConstants
& obj);
87
88
CLASS_DEF
(
NswCalibDbTimeChargeData
, 120842040 , 1 );
89
CONDCONT_DEF
(
NswCalibDbTimeChargeData
, 217895024 );
90
91
#endif
AthMessaging.h
CondCont.h
Hold mappings of ranges to condition objects.
CONDCONT_DEF
#define CONDCONT_DEF(...)
Definition
CondCont.h:1413
BaseInfo.h
Provide an interface for finding inheritance information at run time.
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition
Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:67
IMuonIdHelperSvc.h
Defs.h
operator<<
std::ostream & operator<<(std::ostream &ostr, const NswCalibDbTimeChargeData::CalibConstants &obj)
Definition
NswCalibDbTimeChargeData.cxx:11
AthMessaging::AthMessaging
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
Definition
AthMessaging.cxx:13
Muon::IMuonIdHelperSvc
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
Definition
IMuonIdHelperSvc.h:27
NswCalibDbTimeChargeData
Definition
NswCalibDbTimeChargeData.h:25
NswCalibDbTimeChargeData::getCalibForChannel
const CalibConstants * getCalibForChannel(const CalibDataType type, const Identifier &channelId) const
Retrieves the calibration constant for a particular readout channel.
Definition
NswCalibDbTimeChargeData.cxx:127
NswCalibDbTimeChargeData::m_idHelperSvc
const Muon::IMuonIdHelperSvc * m_idHelperSvc
Definition
NswCalibDbTimeChargeData.h:63
NswCalibDbTimeChargeData::identToModuleIdx
int identToModuleIdx(const Identifier &chan_id) const
Definition
NswCalibDbTimeChargeData.cxx:25
NswCalibDbTimeChargeData::CalibDataType
CalibDataType
Definition
NswCalibDbTimeChargeData.h:28
NswCalibDbTimeChargeData::CalibDataType::TDO
@ TDO
Definition
NswCalibDbTimeChargeData.h:29
NswCalibDbTimeChargeData::CalibDataType::PDO
@ PDO
Definition
NswCalibDbTimeChargeData.h:30
NswCalibDbTimeChargeData::CalibDataType::nTypes
@ nTypes
Definition
NswCalibDbTimeChargeData.h:31
NswCalibDbTimeChargeData::setZero
void setZero(CalibDataType type, MuonCond::CalibTechType tech, CalibConstants constants)
Definition
NswCalibDbTimeChargeData.cxx:80
NswCalibDbTimeChargeData::setData
void setData(CalibDataType type, const Identifier &chnlId, CalibConstants constants)
Definition
NswCalibDbTimeChargeData.cxx:42
NswCalibDbTimeChargeData::~NswCalibDbTimeChargeData
~NswCalibDbTimeChargeData()=default
NswCalibDbTimeChargeData::NswCalibDbTimeChargeData
NswCalibDbTimeChargeData(const Muon::IMuonIdHelperSvc *idHelperSvc)
Definition
NswCalibDbTimeChargeData.cxx:18
NswCalibDbTimeChargeData::m_pdo_data
ChannelCalibMap m_pdo_data
Definition
NswCalibDbTimeChargeData.h:78
NswCalibDbTimeChargeData::m_nMmElements
const size_t m_nMmElements
Segmentation of the elements is per NSW gasGap. Each wedge has 4 gasgaps.
Definition
NswCalibDbTimeChargeData.h:65
NswCalibDbTimeChargeData::getZeroCalibChannel
const CalibConstants * getZeroCalibChannel(const CalibDataType type, const MuonCond::CalibTechType tech) const
Returns the dummy calibration constant for the given technology type.
Definition
NswCalibDbTimeChargeData.cxx:146
NswCalibDbTimeChargeData::m_tdo_data
ChannelCalibMap m_tdo_data
Definition
NswCalibDbTimeChargeData.h:79
NswCalibDbTimeChargeData::getChannelIds
std::vector< Identifier > getChannelIds(const CalibDataType type, const std::string &tech, const std::string &side) const
Definition
NswCalibDbTimeChargeData.cxx:91
NswCalibDbTimeChargeData::ChannelCalibMap
std::vector< CalibModule > ChannelCalibMap
Definition
NswCalibDbTimeChargeData.h:77
NswCalibDbTimeChargeData::m_zero
std::array< ZeroCalibMap, Muon::MuonStationIndex::toInt(MuonCond::CalibTechType::nTypes)> m_zero
Definition
NswCalibDbTimeChargeData.h:82
NswCalibDbTimeChargeData::ZeroCalibMap
std::array< CalibConstants, Muon::MuonStationIndex::toInt(CalibDataType::nTypes)> ZeroCalibMap
Definition
NswCalibDbTimeChargeData.h:81
NswCalibDbTimeChargeData::m_nStgcElements
const size_t m_nStgcElements
Additionally reserve space for the 3 channel types.
Definition
NswCalibDbTimeChargeData.h:68
Identifier
Definition
IdentifierFieldParser.cxx:14
MuonCond::CalibTechType
CalibTechType
Definition
MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondData/MuonCondData/Defs.h:37
MuonCond::CalibTechType::nTypes
@ nTypes
Definition
MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondData/MuonCondData/Defs.h:40
Muon::MuonStationIndex::toInt
constexpr int toInt(const EnumType enumVal)
Definition
MuonStationIndex.h:62
constants
Definition
Calorimeter/CaloClusterCorrection/python/constants.py:1
type
NswCalibDbTimeChargeData::CalibConstants
Helper struct to cache all calibration constants in a common place of the memory.
Definition
NswCalibDbTimeChargeData.h:35
NswCalibDbTimeChargeData::CalibConstants::slope
float slope
Definition
NswCalibDbTimeChargeData.h:36
NswCalibDbTimeChargeData::CalibConstants::intercept
float intercept
Definition
NswCalibDbTimeChargeData.h:37
NswCalibDbTimeChargeData::CalibModule
Definition
NswCalibDbTimeChargeData.h:72
NswCalibDbTimeChargeData::CalibModule::channels
std::vector< std::unique_ptr< CalibConstants > > channels
Definition
NswCalibDbTimeChargeData.h:73
NswCalibDbTimeChargeData::CalibModule::layer_id
Identifier layer_id
Definition
NswCalibDbTimeChargeData.h:74
Generated on
for ATLAS Offline Software by
1.17.0