ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArMonitoring
src
LArNoisyROMonAlg.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
10
11
#ifndef LARMONITORING_LARNOISYROMONALG_H
12
#define LARMONITORING_LARNOISYROMONALG_H
13
14
#include "
AthenaMonitoring/AthMonitorAlgorithm.h
"
15
#include "
TrigDecisionTool/TrigDecisionTool.h
"
16
17
#include "
Identifier/HWIdentifier.h
"
18
#include "
LArIdentifier/LArOnlineID.h
"
19
20
#include "
StoreGate/ReadHandleKey.h
"
21
#include "
StoreGate/ReadCondHandleKey.h
"
22
23
#include "
LArRecConditions/LArBadChannelCont.h
"
24
#include "
LArRecConditions/LArHVIdMapping.h
"
25
#include "
LArRecEvent/LArNoisyROSummary.h
"
26
27
#include "
xAODEventInfo/EventInfo.h
"
28
#include "
StoreGate/ReadDecorHandleKey.h
"
29
30
#include <string>
31
#include <array>
32
33
class
LArNoisyROMonAlg
final:
public
AthMonitorAlgorithm
34
{
35
public
:
36
LArNoisyROMonAlg
(
const
std::string& name, ISvcLocator* pSvcLocator);
37
38
virtual
~LArNoisyROMonAlg
() override final {};
39
40
virtual
StatusCode
initialize
() override final;
41
virtual StatusCode fillHistograms(
const
EventContext& ctx)
const
override final;
42
43
size_t
partitionNumber(
const
HWIdentifier
)
const
;
44
45
private
:
46
47
const
LArOnlineID
*
m_LArOnlineIDHelper
;
48
49
Gaudi
::
Property
<
std
::
string
>
m_MonGroupName
{
this
,
"NoisyROGroupName"
,
"LArNoisyROMonGroup"
};
50
Gaudi::Property<std::vector<std::string> >
m_SubDetNames
{
this
,
"SubDetNames"
, {} };
51
Gaudi::Property<std::vector<std::string> >
m_partitions
{
this
,
"PartitionNames"
, {} };
52
Gaudi::Property<bool>
m_doTrigger
{
this
,
"doTrigger"
,
false
};
53
Gaudi::Property<bool>
m_storeLooseMNBFEBs
{
this
,
"storeLooseMNBFEBs"
,
false
};
54
55
Gaudi::Property<std::vector<std::string> >
m_EF_NoiseBurst_Triggers
{
this
,
"EFNoiseBurstTriggers"
, {} };
56
Gaudi::Property<std::vector<std::string> >
m_L1_NoiseBurst_Triggers
{
this
,
"L1NoiseBurstTriggers"
, {} };
57
58
Gaudi::Property<bool>
m_doHisto
{
this
,
"doHisto"
,
true
};
59
60
SG::ReadHandleKey<LArNoisyROSummary>
m_inputKey
{
this
,
"inputKey"
,
"LArNoisyROSummary"
};
61
62
SG::ReadCondHandleKey<LArBadFebCont>
m_badFebKey
{
this
,
"KonwnBadFebKey"
,
"LArKnownBadFEBs"
,
"Key of known Bad-Feb object"
};
63
SG::ReadCondHandleKey<LArBadFebCont>
m_MNBFebKey
{
this
,
"KonwnMNBFebKey"
,
"LArKnownMNBFEBs"
,
"Key of known MNB-Feb object"
};
64
SG::ReadCondHandleKey<LArHVIdMapping>
m_hvMapKey
{
this
,
"HVMapKey"
,
""
,
"key to read OnOff mapping"
};
65
66
//To get the data-dependency right ...
67
SG::ReadDecorHandleKey<xAOD::EventInfo>
m_eventInfoDecorKey
{
this
,
"LArStatusFlag"
,
"EventInfo.larFlags"
,
"Key for EventInfo object"
};
68
69
struct
CandidateMNBStruct
70
{
71
unsigned
int
candidate_MNB_time
;
72
unsigned
int
candidate_MNB_time_ns
;
73
int
n_candidate_MNBTight_FEB
;
74
int
n_candidate_MNBTight_PsVeto_FEB
;
75
int
n_candidate_MNBLoose_FEB
;
76
std::vector<int>*
v_candidate_MNBTightFEB
;
77
std::vector<int>*
v_candidate_MNBTight_PsVetoFEB
;
78
std::vector<int>*
v_candidate_MNBLooseFEB
;
79
};
80
81
/* Histogram grouping (part) */
82
std::vector<std::map<std::string,int> >
m_histoGroups
;
83
84
// fill histogram of triggers
85
void
fillTriggerHisto
(
size_t
partition,
unsigned
long
triggerbits,
unsigned
long
L1triggerbits)
const
;
86
87
void
fillHistogramsOnce
(
const
EventContext& ctx,
const
bool
isMC
)
const
;
88
89
mutable
std::once_flag m_onceFlag
ATLAS_THREAD_SAFE
;
90
91
};
92
93
inline
size_t
LArNoisyROMonAlg::partitionNumber
(
const
HWIdentifier
hwid)
const
{
94
95
int
pn=
m_LArOnlineIDHelper
->pos_neg(hwid);
96
if
(
m_LArOnlineIDHelper
->isEMECchannel(hwid)) {
97
if
(pn)
98
return
3;
//positive EMECA side
99
else
100
return
2;
//negative EMECC side
101
}
102
if
(
m_LArOnlineIDHelper
->isEMBchannel(hwid)) {
103
if
(pn)
104
return
1;
//positive EMBA side
105
else
106
return
0;
//negative EMBC side
107
}
108
109
return
4;
//Anything else
110
}
111
112
113
#endif
AthMonitorAlgorithm.h
HWIdentifier.h
LArBadChannelCont.h
LArHVIdMapping.h
LArNoisyROSummary.h
LArOnlineID.h
ReadCondHandleKey.h
ReadDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
TrigDecisionTool.h
AthMonitorAlgorithm::AthMonitorAlgorithm
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition
AthMonitorAlgorithm.cxx:8
HWIdentifier
Definition
HWIdentifier.h:13
LArNoisyROMonAlg::m_EF_NoiseBurst_Triggers
Gaudi::Property< std::vector< std::string > > m_EF_NoiseBurst_Triggers
Definition
LArNoisyROMonAlg.h:55
LArNoisyROMonAlg::m_L1_NoiseBurst_Triggers
Gaudi::Property< std::vector< std::string > > m_L1_NoiseBurst_Triggers
Definition
LArNoisyROMonAlg.h:56
LArNoisyROMonAlg::fillTriggerHisto
void fillTriggerHisto(size_t partition, unsigned long triggerbits, unsigned long L1triggerbits) const
Definition
LArNoisyROMonAlg.cxx:423
LArNoisyROMonAlg::m_histoGroups
std::vector< std::map< std::string, int > > m_histoGroups
Definition
LArNoisyROMonAlg.h:82
LArNoisyROMonAlg::ATLAS_THREAD_SAFE
std::once_flag m_onceFlag ATLAS_THREAD_SAFE
Definition
LArNoisyROMonAlg.h:89
LArNoisyROMonAlg::m_inputKey
SG::ReadHandleKey< LArNoisyROSummary > m_inputKey
Definition
LArNoisyROMonAlg.h:60
LArNoisyROMonAlg::m_doTrigger
Gaudi::Property< bool > m_doTrigger
Definition
LArNoisyROMonAlg.h:52
LArNoisyROMonAlg::partitionNumber
size_t partitionNumber(const HWIdentifier) const
Definition
LArNoisyROMonAlg.h:93
LArNoisyROMonAlg::~LArNoisyROMonAlg
virtual ~LArNoisyROMonAlg() override final
Definition
LArNoisyROMonAlg.h:38
LArNoisyROMonAlg.isMC
isMC
Definition
LArNoisyROMonAlg.py:276
LArNoisyROMonAlg::m_MonGroupName
Gaudi::Property< std::string > m_MonGroupName
Definition
LArNoisyROMonAlg.h:49
LArNoisyROMonAlg::m_LArOnlineIDHelper
const LArOnlineID * m_LArOnlineIDHelper
Definition
LArNoisyROMonAlg.h:47
LArNoisyROMonAlg::m_storeLooseMNBFEBs
Gaudi::Property< bool > m_storeLooseMNBFEBs
Definition
LArNoisyROMonAlg.h:53
LArNoisyROMonAlg::m_partitions
Gaudi::Property< std::vector< std::string > > m_partitions
Definition
LArNoisyROMonAlg.h:51
LArNoisyROMonAlg::m_badFebKey
SG::ReadCondHandleKey< LArBadFebCont > m_badFebKey
Definition
LArNoisyROMonAlg.h:62
LArNoisyROMonAlg::m_eventInfoDecorKey
SG::ReadDecorHandleKey< xAOD::EventInfo > m_eventInfoDecorKey
Definition
LArNoisyROMonAlg.h:67
LArNoisyROMonAlg::m_hvMapKey
SG::ReadCondHandleKey< LArHVIdMapping > m_hvMapKey
Definition
LArNoisyROMonAlg.h:64
LArNoisyROMonAlg::m_MNBFebKey
SG::ReadCondHandleKey< LArBadFebCont > m_MNBFebKey
Definition
LArNoisyROMonAlg.h:63
LArNoisyROMonAlg::m_doHisto
Gaudi::Property< bool > m_doHisto
Definition
LArNoisyROMonAlg.h:58
LArNoisyROMonAlg::m_SubDetNames
Gaudi::Property< std::vector< std::string > > m_SubDetNames
Definition
LArNoisyROMonAlg.h:50
LArNoisyROMonAlg::fillHistogramsOnce
void fillHistogramsOnce(const EventContext &ctx, const bool isMC) const
Definition
LArNoisyROMonAlg.cxx:42
LArOnlineID
Definition
LArOnlineID.h:21
Property
Support class for PropertyMgr.
Definition
Property.h:23
SG::ReadCondHandleKey
Definition
ReadCondHandleKey.h:21
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition
StoreGate/StoreGate/ReadDecorHandleKey.h:86
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
const
Gaudi
=============================================================================
Definition
CaloGPUClusterAndCellDataMonitorOptions.h:273
LArNoisyROMonAlg
Definition
LArNoisyROMonAlg.py:1
std
STL namespace.
initialize
void initialize()
Definition
run_EoverP.cxx:894
LArNoisyROMonAlg::CandidateMNBStruct
Definition
LArNoisyROMonAlg.h:70
LArNoisyROMonAlg::CandidateMNBStruct::v_candidate_MNBTightFEB
std::vector< int > * v_candidate_MNBTightFEB
Definition
LArNoisyROMonAlg.h:76
LArNoisyROMonAlg::CandidateMNBStruct::n_candidate_MNBLoose_FEB
int n_candidate_MNBLoose_FEB
Definition
LArNoisyROMonAlg.h:75
LArNoisyROMonAlg::CandidateMNBStruct::n_candidate_MNBTight_PsVeto_FEB
int n_candidate_MNBTight_PsVeto_FEB
Definition
LArNoisyROMonAlg.h:74
LArNoisyROMonAlg::CandidateMNBStruct::candidate_MNB_time
unsigned int candidate_MNB_time
Definition
LArNoisyROMonAlg.h:71
LArNoisyROMonAlg::CandidateMNBStruct::candidate_MNB_time_ns
unsigned int candidate_MNB_time_ns
Definition
LArNoisyROMonAlg.h:72
LArNoisyROMonAlg::CandidateMNBStruct::v_candidate_MNBLooseFEB
std::vector< int > * v_candidate_MNBLooseFEB
Definition
LArNoisyROMonAlg.h:78
LArNoisyROMonAlg::CandidateMNBStruct::v_candidate_MNBTight_PsVetoFEB
std::vector< int > * v_candidate_MNBTight_PsVetoFEB
Definition
LArNoisyROMonAlg.h:77
LArNoisyROMonAlg::CandidateMNBStruct::n_candidate_MNBTight_FEB
int n_candidate_MNBTight_FEB
Definition
LArNoisyROMonAlg.h:73
private
#define private
Definition
testRead.cxx:27
EventInfo.h
Generated on
for ATLAS Offline Software by
1.17.0