ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1CaloMonitoring
src
CpmMonitorAlgorithm.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
#ifndef TRIGT1CALOMONITORING_CPMMONITORALGORITHM_H
5
#define TRIGT1CALOMONITORING_CPMMONITORALGORITHM_H
6
7
#include "
AthenaMonitoring/AthMonitorAlgorithm.h
"
8
#include "
AthenaMonitoringKernel/Monitored.h
"
9
#include "
StoreGate/ReadHandleKey.h
"
10
#include "
StoreGate/WriteHandleKey.h
"
11
#include "
xAODTrigL1Calo/CPMTowerContainer.h
"
12
#include "
xAODTrigL1Calo/CPMTobRoIContainer.h
"
13
#include "
xAODTrigL1Calo/CMXCPTobContainer.h
"
14
#include "
xAODTrigL1Calo/CMXCPHitsContainer.h
"
15
#include "
xAODTrigL1Calo/TriggerTowerContainer.h
"
16
#include "
TrigT1Interfaces/TrigT1CaloDefs.h
"
17
18
19
class
CpmMonitorAlgorithm
:
public
AthMonitorAlgorithm
{
20
public
:
CpmMonitorAlgorithm
(
const
std::string& name, ISvcLocator* pSvcLocator );
21
virtual
~CpmMonitorAlgorithm
()=
default
;
22
virtual
StatusCode
initialize
()
override
;
23
virtual
StatusCode
fillHistograms
(
const
EventContext& ctx )
const override
;
24
25
// monitoring trigger tower structs for various towers
26
struct
MonitorTT
{
27
const
xAOD::TriggerTower_v2
*
ttower
{};
28
double
phi_scaled
{};
// rescaled for 2D plots
29
};
30
31
struct
MonitorCpmTT
{
32
const
xAOD::CPMTower_v2
*
ttower
{};
33
// some modified/derived information
34
double
phi_scaled
{};
// rescaled for 2D plots
35
int
slice
{};
// crate * m_maxSlices + emEnergyVec()).size() - 1;
36
// errors
37
bool
emParityError
{};
38
bool
emLinkDownError
{};
39
bool
hadParityError
{};
40
bool
hadLinkDownError
{};
41
};
42
43
struct
MonitorTobRoI
{
44
const
xAOD::CPMTobRoI_v1
*
tobroi
{};
45
// some modified/derived information
46
double
etaMod
{};
47
double
phiMod
{};
48
};
49
50
struct
MonitorCmxCpTob
{
51
MonitorCmxCpTob
() =
default
;
// suppresses a cppcheck false positive
52
const
xAOD::CMXCPTob_v1
*
tob
{};
53
// some modified/derived information
54
uint8_t
x
{};
// crate * m_modules + cpm - 1
55
uint8_t
y
{};
// chip * 4 + location
56
int
ybase
{};
// cmx * 5
57
// errors required to be used as masks
58
bool
parityError
{};
59
int
ybaseError
{};
60
};
61
62
struct
MonitorCmxCpHits
{
63
const
xAOD::CMXCPHits_v1
*
hit
{};
64
// some modified/derived information
65
uint8_t
crateSlices
{};
// crate * m_maxSlices + slices - 1
66
uint8_t
crateCmx
{};
// crate * 2 + cmx
67
// source flag
68
bool
srcTopoCheckSum
{};
69
};
70
71
72
private
:
73
74
// Phi scale for trigger tower eta/phi plots
75
double
m_phiScaleTT
{};
76
77
StringProperty
m_packageName
{
this
,
"PackageName"
,
"CpmMonitor"
,
"group name for histograming"
};
78
79
Gaudi::Property<int>
m_crates
{
this
,
"s_crates"
, 4,
"Number of CPM crates"
};
80
Gaudi::Property<int>
m_modules
{
this
,
"s_modules"
, 14,
"Number of modules per crate (modules numbered 1-14)"
};
81
Gaudi::Property<int>
m_maxSlices
{
this
,
"s_maxSlices"
, 5,
"Maximum number of slices"
};
82
Gaudi::Property<int>
m_tobsPerCPM
{
this
,
"s_tobsPerCPM"
, 5,
"Maximum number of TOBs per CPM sent to CMX"
};
83
Gaudi::Property<int>
m_isolBits
{
this
,
"s_isolBits"
, 5,
"Number of bits for encoded isolation"
};
84
Gaudi::Property<int>
m_threshBits
{
this
,
"s_threshBits"
, 3,
"Number of bits per threshold for hit sums"
};
85
Gaudi::Property<int>
m_thresholds
{
this
,
"s_thresholds"
, 16,
"Number of EM/Tau threshold bits"
};
86
Gaudi::Property<int>
m_maxTobsPerCmx
{
this
,
"MaxTOBsPerCMX"
, 70,
"Maximum number of TOBs per CMX plotted"
};
87
88
// Error vector StoreGate key
89
SG::WriteHandleKey<std::vector<int>
>
m_errorLocation
{
this
,
"ErrorLocation"
,
"L1CaloCPMErrorVector"
,
"Error vector name"
};
90
91
// Error summary plot bins
92
enum
SummaryErrors
{
EMParity
,
EMLink
,
HadParity
,
HadLink
,
CPMStatus
,
93
TOBParity
,
SumParity
,
CMXStatus
,
NumberOfSummaryBins
};
94
95
96
// container keys including steering parameter and description
97
SG::ReadHandleKey<xAOD::TriggerTowerContainer>
m_xAODTriggerTowerContainerName
{
this
,
"BS_xAODTriggerTowerContainer"
,
LVL1::TrigT1CaloDefs::xAODTriggerTowerLocation
,
"Trigger Tower Container"
};
98
SG::ReadHandleKey<xAOD::CPMTowerContainer>
m_cpmTowerLocation
{
this
,
"CPMTowerLocation"
,
LVL1::TrigT1CaloDefs::CPMTowerLocation
,
"CPM container"
};
99
SG::ReadHandleKey<xAOD::CPMTowerContainer>
m_cpmTowerLocationOverlap
{
this
,
"CPMTowerLocationOverlap"
,
LVL1::TrigT1CaloDefs::CPMTowerLocation
+
"Overlap"
,
"CPM Overlap container"
};
100
SG::ReadHandleKey<xAOD::CPMTobRoIContainer>
m_cpmTobRoiLocation
{
this
,
"CPMTobRoILocation"
,
LVL1::TrigT1CaloDefs::CPMTobRoILocation
,
"CPMTobRoI container"
};
101
SG::ReadHandleKey<xAOD::CMXCPTobContainer>
m_cmxCpTobLocation
{
this
,
"CMXCPTobLocation"
,
LVL1::TrigT1CaloDefs::CMXCPTobLocation
,
"CMXCPTob container"
};
102
SG::ReadHandleKey<xAOD::CMXCPHitsContainer>
m_cmxCpHitsLocation
{
this
,
"CMXCPHitsLocation"
,
LVL1::TrigT1CaloDefs::CMXCPHitsLocation
,
"CMXCPHits container"
};
103
104
std::vector<bool> getIsolationBits(
int
val,
int
nThresh,
int
nBits)
const
;
105
106
107
StatusCode fillCpmTowerVectors(
SG::ReadHandle<xAOD::CPMTowerContainer>
&cpmTower,
108
std::vector<MonitorCpmTT> &monCpmTTs_em, std::vector<MonitorCpmTT> &monCpmTTs_had,
109
std::vector<int> &errorsCPM,
110
bool
core,
111
Monitored::Scalar<int>
&cpmLoc,
112
Monitored::Scalar<int>
&GLinkParityError
113
)
const
;
114
115
116
};
117
#endif
AthMonitorAlgorithm.h
CMXCPHitsContainer.h
CMXCPTobContainer.h
CPMTobRoIContainer.h
CPMTowerContainer.h
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
TrigT1CaloDefs.h
TriggerTowerContainer.h
AthMonitorAlgorithm::AthMonitorAlgorithm
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition
AthMonitorAlgorithm.cxx:8
CpmMonitorAlgorithm::m_phiScaleTT
double m_phiScaleTT
Definition
CpmMonitorAlgorithm.h:75
CpmMonitorAlgorithm::m_cpmTowerLocationOverlap
SG::ReadHandleKey< xAOD::CPMTowerContainer > m_cpmTowerLocationOverlap
Definition
CpmMonitorAlgorithm.h:99
CpmMonitorAlgorithm::m_maxSlices
Gaudi::Property< int > m_maxSlices
Definition
CpmMonitorAlgorithm.h:81
CpmMonitorAlgorithm::m_modules
Gaudi::Property< int > m_modules
Definition
CpmMonitorAlgorithm.h:80
CpmMonitorAlgorithm::m_errorLocation
SG::WriteHandleKey< std::vector< int > > m_errorLocation
Definition
CpmMonitorAlgorithm.h:89
CpmMonitorAlgorithm::m_threshBits
Gaudi::Property< int > m_threshBits
Definition
CpmMonitorAlgorithm.h:84
CpmMonitorAlgorithm::m_crates
Gaudi::Property< int > m_crates
Definition
CpmMonitorAlgorithm.h:79
CpmMonitorAlgorithm::m_cmxCpHitsLocation
SG::ReadHandleKey< xAOD::CMXCPHitsContainer > m_cmxCpHitsLocation
Definition
CpmMonitorAlgorithm.h:102
CpmMonitorAlgorithm::m_cmxCpTobLocation
SG::ReadHandleKey< xAOD::CMXCPTobContainer > m_cmxCpTobLocation
Definition
CpmMonitorAlgorithm.h:101
CpmMonitorAlgorithm::m_packageName
StringProperty m_packageName
Definition
CpmMonitorAlgorithm.h:77
CpmMonitorAlgorithm::m_xAODTriggerTowerContainerName
SG::ReadHandleKey< xAOD::TriggerTowerContainer > m_xAODTriggerTowerContainerName
Definition
CpmMonitorAlgorithm.h:97
CpmMonitorAlgorithm::m_maxTobsPerCmx
Gaudi::Property< int > m_maxTobsPerCmx
Definition
CpmMonitorAlgorithm.h:86
CpmMonitorAlgorithm::m_thresholds
Gaudi::Property< int > m_thresholds
Definition
CpmMonitorAlgorithm.h:85
CpmMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition
CpmMonitorAlgorithm.cxx:46
CpmMonitorAlgorithm::~CpmMonitorAlgorithm
virtual ~CpmMonitorAlgorithm()=default
CpmMonitorAlgorithm::m_tobsPerCPM
Gaudi::Property< int > m_tobsPerCPM
Definition
CpmMonitorAlgorithm.h:82
CpmMonitorAlgorithm::m_cpmTobRoiLocation
SG::ReadHandleKey< xAOD::CPMTobRoIContainer > m_cpmTobRoiLocation
Definition
CpmMonitorAlgorithm.h:100
CpmMonitorAlgorithm::SummaryErrors
SummaryErrors
Definition
CpmMonitorAlgorithm.h:92
CpmMonitorAlgorithm::HadParity
@ HadParity
Definition
CpmMonitorAlgorithm.h:92
CpmMonitorAlgorithm::NumberOfSummaryBins
@ NumberOfSummaryBins
Definition
CpmMonitorAlgorithm.h:93
CpmMonitorAlgorithm::EMLink
@ EMLink
Definition
CpmMonitorAlgorithm.h:92
CpmMonitorAlgorithm::CMXStatus
@ CMXStatus
Definition
CpmMonitorAlgorithm.h:93
CpmMonitorAlgorithm::SumParity
@ SumParity
Definition
CpmMonitorAlgorithm.h:93
CpmMonitorAlgorithm::CPMStatus
@ CPMStatus
Definition
CpmMonitorAlgorithm.h:92
CpmMonitorAlgorithm::TOBParity
@ TOBParity
Definition
CpmMonitorAlgorithm.h:93
CpmMonitorAlgorithm::EMParity
@ EMParity
Definition
CpmMonitorAlgorithm.h:92
CpmMonitorAlgorithm::HadLink
@ HadLink
Definition
CpmMonitorAlgorithm.h:92
CpmMonitorAlgorithm::m_cpmTowerLocation
SG::ReadHandleKey< xAOD::CPMTowerContainer > m_cpmTowerLocation
Definition
CpmMonitorAlgorithm.h:98
CpmMonitorAlgorithm::m_isolBits
Gaudi::Property< int > m_isolBits
Definition
CpmMonitorAlgorithm.h:83
LVL1::TrigT1CaloDefs::CPMTobRoILocation
static const std::string CPMTobRoILocation
Definition
TrigT1CaloDefs.h:62
LVL1::TrigT1CaloDefs::xAODTriggerTowerLocation
static const std::string xAODTriggerTowerLocation
Definition
TrigT1CaloDefs.h:36
LVL1::TrigT1CaloDefs::CMXCPHitsLocation
static const std::string CMXCPHitsLocation
Definition
TrigT1CaloDefs.h:59
LVL1::TrigT1CaloDefs::CPMTowerLocation
static const std::string CPMTowerLocation
Definition
TrigT1CaloDefs.h:38
LVL1::TrigT1CaloDefs::CMXCPTobLocation
static const std::string CMXCPTobLocation
Definition
TrigT1CaloDefs.h:58
Monitored::Scalar
Declare a monitored scalar variable.
Definition
MonitoredScalar.h:34
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition
StoreGate/StoreGate/WriteHandleKey.h:40
xAOD::CMXCPHits_v1
Description of CMXCPHits_v1.
Definition
CMXCPHits_v1.h:27
xAOD::CMXCPTob_v1
Description of CMXCPTob_v1.
Definition
CMXCPTob_v1.h:27
xAOD::CPMTobRoI_v1
Description of CPMTobRoI_v1.
Definition
CPMTobRoI_v1.h:24
xAOD::CPMTower_v2
Description of CPMTower_v2.
Definition
CPMTower_v2.h:26
xAOD::TriggerTower_v2
Description of TriggerTower_v2.
Definition
TriggerTower_v2.h:49
CpmMonitorAlgorithm
Definition
CpmMonitorAlgorithm.py:1
initialize
void initialize()
Definition
run_EoverP.cxx:894
CpmMonitorAlgorithm::MonitorCmxCpHits
Definition
CpmMonitorAlgorithm.h:62
CpmMonitorAlgorithm::MonitorCmxCpHits::hit
const xAOD::CMXCPHits_v1 * hit
Definition
CpmMonitorAlgorithm.h:63
CpmMonitorAlgorithm::MonitorCmxCpHits::crateSlices
uint8_t crateSlices
Definition
CpmMonitorAlgorithm.h:65
CpmMonitorAlgorithm::MonitorCmxCpHits::crateCmx
uint8_t crateCmx
Definition
CpmMonitorAlgorithm.h:66
CpmMonitorAlgorithm::MonitorCmxCpHits::srcTopoCheckSum
bool srcTopoCheckSum
Definition
CpmMonitorAlgorithm.h:68
CpmMonitorAlgorithm::MonitorCmxCpTob::y
uint8_t y
Definition
CpmMonitorAlgorithm.h:55
CpmMonitorAlgorithm::MonitorCmxCpTob::ybase
int ybase
Definition
CpmMonitorAlgorithm.h:56
CpmMonitorAlgorithm::MonitorCmxCpTob::MonitorCmxCpTob
MonitorCmxCpTob()=default
CpmMonitorAlgorithm::MonitorCmxCpTob::tob
const xAOD::CMXCPTob_v1 * tob
Definition
CpmMonitorAlgorithm.h:52
CpmMonitorAlgorithm::MonitorCmxCpTob::parityError
bool parityError
Definition
CpmMonitorAlgorithm.h:58
CpmMonitorAlgorithm::MonitorCmxCpTob::x
uint8_t x
Definition
CpmMonitorAlgorithm.h:54
CpmMonitorAlgorithm::MonitorCmxCpTob::ybaseError
int ybaseError
Definition
CpmMonitorAlgorithm.h:59
CpmMonitorAlgorithm::MonitorCpmTT
Definition
CpmMonitorAlgorithm.h:31
CpmMonitorAlgorithm::MonitorCpmTT::phi_scaled
double phi_scaled
Definition
CpmMonitorAlgorithm.h:34
CpmMonitorAlgorithm::MonitorCpmTT::emLinkDownError
bool emLinkDownError
Definition
CpmMonitorAlgorithm.h:38
CpmMonitorAlgorithm::MonitorCpmTT::hadParityError
bool hadParityError
Definition
CpmMonitorAlgorithm.h:39
CpmMonitorAlgorithm::MonitorCpmTT::emParityError
bool emParityError
Definition
CpmMonitorAlgorithm.h:37
CpmMonitorAlgorithm::MonitorCpmTT::slice
int slice
Definition
CpmMonitorAlgorithm.h:35
CpmMonitorAlgorithm::MonitorCpmTT::hadLinkDownError
bool hadLinkDownError
Definition
CpmMonitorAlgorithm.h:40
CpmMonitorAlgorithm::MonitorCpmTT::ttower
const xAOD::CPMTower_v2 * ttower
Definition
CpmMonitorAlgorithm.h:32
CpmMonitorAlgorithm::MonitorTT
Definition
CpmMonitorAlgorithm.h:26
CpmMonitorAlgorithm::MonitorTT::phi_scaled
double phi_scaled
Definition
CpmMonitorAlgorithm.h:28
CpmMonitorAlgorithm::MonitorTT::ttower
const xAOD::TriggerTower_v2 * ttower
Definition
CpmMonitorAlgorithm.h:27
CpmMonitorAlgorithm::MonitorTobRoI
Definition
CpmMonitorAlgorithm.h:43
CpmMonitorAlgorithm::MonitorTobRoI::tobroi
const xAOD::CPMTobRoI_v1 * tobroi
Definition
CpmMonitorAlgorithm.h:44
CpmMonitorAlgorithm::MonitorTobRoI::etaMod
double etaMod
Definition
CpmMonitorAlgorithm.h:46
CpmMonitorAlgorithm::MonitorTobRoI::phiMod
double phiMod
Definition
CpmMonitorAlgorithm.h:47
Generated on
for ATLAS Offline Software by
1.17.0