ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1CaloMonitoring
src
PprMonitorAlgorithm.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
#ifndef TRIGT1CALOMONITORING_PPRMONITORALGORITHM_H
5
#define TRIGT1CALOMONITORING_PPRMONITORALGORITHM_H
6
7
#include "
AthenaMonitoring/AthMonitorAlgorithm.h
"
8
#include "
AthenaMonitoringKernel/Monitored.h
"
9
#include "
StoreGate/ReadHandleKey.h
"
10
11
12
class
PprMonitorAlgorithm
:
public
AthMonitorAlgorithm
{
13
public
:
PprMonitorAlgorithm
(
const
std::string& name, ISvcLocator* pSvcLocator );
14
virtual
~PprMonitorAlgorithm
()=
default
;
15
virtual
StatusCode
initialize
()
override
;
16
virtual
StatusCode
fillHistograms
(
const
EventContext& ctx )
const override
;
17
19
struct
MonitorTT
{
20
const
xAOD::TriggerTower_v2
*
tower
;
21
double
phiScaled
;
22
double
maxADC
;
23
int
jepET
;
24
};
25
26
27
private
:
28
29
StringProperty
m_packageName
{
this
,
"PackageName"
,
"PprMonitor"
,
"group name for histogramming"
};
30
32
SG::ReadHandleKey<xAOD::TriggerTowerContainer>
m_xAODTriggerTowerContainerName
{
this
,
"BS_xAODTriggerTowerContainer"
,
LVL1::TrigT1CaloDefs::xAODTriggerTowerLocation
,
"Trigger Tower Container"
};
33
34
36
Gaudi::Property<double>
m_phiScaleTT
{
this
,
"phiScaleTT"
, 32./
M_PI
,
"Scale factor to convert trigger tower phi to integer binning"
};
37
Gaudi::Property<int>
m_TT_ADC_HitMap_Thresh
{
this
,
"TT_ADC_HitMap_Thresh"
, 50,
"ADC cut for hit maps"
};
38
Gaudi::Property<int>
m_SliceNo
{
this
,
"SliceNo"
, 15,
"Number of possible time slices in the readout"
};
39
Gaudi::Property<int>
m_EMFADCCut
{
this
,
"EMFADCCut"
, 40,
"EM FADC cut for signal"
};
40
Gaudi::Property<int>
m_TT_ADC_Pedestal
{
this
,
"ADCPedestal"
, 32,
"Nominal pedestal value"
};
41
Gaudi::Property<std::vector<int>>
m_TT_HitMap_ThreshVec
{
this
,
"LUTHitMap_ThreshVec"
, {0, 1, 3, 5, 10, 20, 30, 50},
"Thresholds for LUT hitmaps"
};
42
44
std::map<std::string,int>
m_groupTimeslice_EM
;
45
std::map<std::string,int>
m_groupTimeslice_HAD
;
46
47
48
// Error vector StoreGate key
49
SG::WriteHandleKey<std::vector<int>
>
m_errorLocation
{
this
,
"ErrorLocationPPM"
,
"L1CaloPPMErrorVector"
,
"ErrorVector"
};
50
51
typedef
std::vector<int>
ErrorVector
;
53
54
StatusCode
makePPMTower
(
const
xAOD::TriggerTower_v2
* tt,
55
std::vector<MonitorTT> &vecMonTT)
const
;
56
57
double
recTime
(
const
std::vector<short unsigned int> &vFADC,
int
cut)
const
;
58
59
std::string
getPartition
(
int
layer,
double
eta
)
const
;
60
61
StatusCode
fillPPMEtaPhi
( MonitorTT &monTT,
62
const
std::string& groupName,
63
const
std::string& weightName,
64
double
weight=1.)
const
;
65
66
StatusCode
fillPPMPhi
( MonitorTT &monTT,
67
const
std::string& groupName)
const
;
68
69
70
// count number of error events per lumiblock across threads
71
mutable
std::mutex
m_mutex
{};
72
mutable
std::map<uint32_t, int> m_errorLB_tt_counter
ATLAS_THREAD_SAFE
;
73
74
};
75
#endif
M_PI
#define M_PI
Definition
ActiveFraction.h:14
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
AthMonitorAlgorithm.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.
AthMonitorAlgorithm::AthMonitorAlgorithm
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition
AthMonitorAlgorithm.cxx:8
LVL1::TrigT1CaloDefs::xAODTriggerTowerLocation
static const std::string xAODTriggerTowerLocation
Definition
TrigT1CaloDefs.h:36
PprMonitorAlgorithm::m_TT_HitMap_ThreshVec
Gaudi::Property< std::vector< int > > m_TT_HitMap_ThreshVec
Definition
PprMonitorAlgorithm.h:41
PprMonitorAlgorithm::ATLAS_THREAD_SAFE
std::map< uint32_t, int > m_errorLB_tt_counter ATLAS_THREAD_SAFE
Definition
PprMonitorAlgorithm.h:72
PprMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition
PprMonitorAlgorithm.cxx:45
PprMonitorAlgorithm::~PprMonitorAlgorithm
virtual ~PprMonitorAlgorithm()=default
PprMonitorAlgorithm::m_xAODTriggerTowerContainerName
SG::ReadHandleKey< xAOD::TriggerTowerContainer > m_xAODTriggerTowerContainerName
container keys including steering parameter and description
Definition
PprMonitorAlgorithm.h:32
PprMonitorAlgorithm::ErrorVector
std::vector< int > ErrorVector
Definition
PprMonitorAlgorithm.h:51
PprMonitorAlgorithm::fillPPMPhi
StatusCode fillPPMPhi(MonitorTT &monTT, const std::string &groupName) const
Definition
PprMonitorAlgorithm.cxx:568
PprMonitorAlgorithm::m_groupTimeslice_HAD
std::map< std::string, int > m_groupTimeslice_HAD
Definition
PprMonitorAlgorithm.h:45
PprMonitorAlgorithm::m_EMFADCCut
Gaudi::Property< int > m_EMFADCCut
Definition
PprMonitorAlgorithm.h:39
PprMonitorAlgorithm::makePPMTower
StatusCode makePPMTower(const xAOD::TriggerTower_v2 *tt, std::vector< MonitorTT > &vecMonTT) const
Helper functions.
Definition
PprMonitorAlgorithm.cxx:410
PprMonitorAlgorithm::recTime
double recTime(const std::vector< short unsigned int > &vFADC, int cut) const
Definition
PprMonitorAlgorithm.cxx:438
PprMonitorAlgorithm::m_groupTimeslice_EM
std::map< std::string, int > m_groupTimeslice_EM
Groups for GenericMonitoringArrays.
Definition
PprMonitorAlgorithm.h:44
PprMonitorAlgorithm::m_packageName
StringProperty m_packageName
Definition
PprMonitorAlgorithm.h:29
PprMonitorAlgorithm::m_SliceNo
Gaudi::Property< int > m_SliceNo
Definition
PprMonitorAlgorithm.h:38
PprMonitorAlgorithm::m_TT_ADC_Pedestal
Gaudi::Property< int > m_TT_ADC_Pedestal
Definition
PprMonitorAlgorithm.h:40
PprMonitorAlgorithm::m_errorLocation
SG::WriteHandleKey< std::vector< int > > m_errorLocation
Definition
PprMonitorAlgorithm.h:49
PprMonitorAlgorithm::fillPPMEtaPhi
StatusCode fillPPMEtaPhi(MonitorTT &monTT, const std::string &groupName, const std::string &weightName, double weight=1.) const
Definition
PprMonitorAlgorithm.cxx:523
PprMonitorAlgorithm::m_TT_ADC_HitMap_Thresh
Gaudi::Property< int > m_TT_ADC_HitMap_Thresh
Definition
PprMonitorAlgorithm.h:37
PprMonitorAlgorithm::m_mutex
std::mutex m_mutex
Definition
PprMonitorAlgorithm.h:71
PprMonitorAlgorithm::m_phiScaleTT
Gaudi::Property< double > m_phiScaleTT
Properties.
Definition
PprMonitorAlgorithm.h:36
PprMonitorAlgorithm::getPartition
std::string getPartition(int layer, double eta) const
Definition
PprMonitorAlgorithm.cxx:481
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition
StoreGate/StoreGate/WriteHandleKey.h:40
xAOD::TriggerTower_v2
Description of TriggerTower_v2.
Definition
TriggerTower_v2.h:49
PprMonitorAlgorithm
Definition
PprMonitorAlgorithm.py:1
initialize
void initialize()
Definition
run_EoverP.cxx:894
PprMonitorAlgorithm::MonitorTT
Struct to contain PPM trigger tower info.
Definition
PprMonitorAlgorithm.h:19
PprMonitorAlgorithm::MonitorTT::phiScaled
double phiScaled
Definition
PprMonitorAlgorithm.h:21
PprMonitorAlgorithm::MonitorTT::maxADC
double maxADC
phi for 2d maps with integer bins (taking into account granularity in eta)
Definition
PprMonitorAlgorithm.h:22
PprMonitorAlgorithm::MonitorTT::jepET
int jepET
max ADC timeslice
Definition
PprMonitorAlgorithm.h:23
PprMonitorAlgorithm::MonitorTT::tower
const xAOD::TriggerTower_v2 * tower
Definition
PprMonitorAlgorithm.h:20
Generated on
for ATLAS Offline Software by
1.17.0