ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArMonitoring
src
LArSuperCellMonAlg.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
// Morvaj, P.Strizenec - develop for Digital Trigger monitoring (2021)
5
6
#ifndef LARMONITORING_LARSUPERCELLMONALG_H
7
#define LARMONITORING_LARSUPERCELLMONALG_H
8
9
#include "
AthenaMonitoring/AthMonitorAlgorithm.h
"
10
11
//#include "LArRecConditions/ILArBadChannelMasker.h"
12
13
#include "
LArIdentifier/LArOnlineID.h
"
14
#include "
Identifier/IdentifierHash.h
"
15
16
#include "
StoreGate/ReadCondHandleKey.h
"
17
//#include "LArRecConditions/LArBadChannelCont.h"
18
#include "
LArCabling/LArOnOffIdMapping.h
"
19
#include "
CaloConditions/CaloNoise.h
"
20
#include "
CaloEvent/CaloCellContainer.h
"
21
22
//#include "TrigDecisionTool/TrigDecisionTool.h"
23
#include "
LumiBlockData/BunchCrossingCondData.h
"
24
25
#include <vector>
26
#include <string>
27
#include <bitset>
28
#include <array>
29
#include <map>
30
#include <unordered_map>
31
32
namespace
Trig
{
33
class
ChainGroup
;
34
}
35
36
class
CaloCell
;
37
class
TileID
;
38
class
CaloCell_ID
;
39
40
41
class
LArSuperCellMonAlg
:
public
AthMonitorAlgorithm
{
42
43
public
:
44
45
LArSuperCellMonAlg
(
const
std::string& name, ISvcLocator* pSvcLocator);
46
~LArSuperCellMonAlg
();
47
48
virtual
StatusCode
initialize
()
override
final
;
49
virtual
StatusCode
fillHistograms
(
const
EventContext& ctx)
const
override
final
;
50
51
52
private
:
53
54
// Job properties
55
SG::ReadHandleKey<CaloCellContainer>
m_superCellContainerKey
{
this
,
"CaloCellContainer"
,
"SCell"
,
"SG key of the input super cell container"
};
56
SG::ReadHandleKey<CaloCellContainer>
m_superCellContainerRefKey
{
this
,
"CaloCellContainerRef"
,
"SCellEm"
,
"SG key of the reference super cell container"
};
57
SG::ReadHandleKey<CaloCellContainer>
m_superCellContainerRecoKey
{
this
,
"CaloCellContainerReco"
,
""
,
"SG key of reconstructed SC"
};
58
60
SG::ReadCondHandleKey<BunchCrossingCondData>
m_bcDataKey
61
{
this
,
"BunchCrossingCondDataKey"
,
"BunchCrossingData"
,
"SG Key of BunchCrossing CDO"
};
62
63
Gaudi::Property<std::string>
m_MonGroupName
{
this
,
"MonGroupName"
,
"LArSuperCellMonGroup"
};
64
//Gaudi::Property<std::string> m_SuperCellContainer {this, "SuperCellContainer", "LArSuperCellContainer"};
65
// std::string m_SuperCellContainer;
66
67
Gaudi::Property<std::vector<std::string> >
m_streams
{
this
,
"Streams"
, {},
"Which streams to monitor, if empty, only simple profile per partition (offline case)"
};
68
Gaudi::Property<std::vector<std::string> >
m_SubDetNames
{
this
,
"SubDetNames"
, {} };
69
70
SG::ReadCondHandleKey<CaloNoise>
m_noiseCDOKey
{
this
,
"CaloNoiseKey"
,
"totalNoise"
,
"SG Key of CaloNoise data object"
};
71
72
//Tool maps, for thr. histograms
73
std::map<std::string,std::map<std::string,int>>
m_toolmapAll
;
74
75
76
// Thresholds for time and Time vs Energy plots:
77
// Energy thresholds hardcoded following official timing analysis. See for example:
78
// https://indico.cern.ch/event/522351/
79
FloatArrayProperty
m_eCutForTiming
{
this
,
"EcutForTiming"
,
80
//EMBPNS=0, EMB1NS, EMB2NS, EMB3NS, HEC0NS, HEC1NS, HEC2NS, HEC3NS,EMECPNS,EMEC1NS,EMEC2NS,EMEC3NS,FCAL1NS,FCAL2NS,FCAL3NS
81
{1000., 1000., 3000., 1500., 3500., 3500., 3500., 3500., 1500., 3000., 3000., 2000., 10000., 10000., 10000.}
82
};
83
84
StringArrayProperty
m_layerNames
{
this
,
"LayerNames"
, {
"EMBPA"
,
"EMBPC"
,
"EMB1A"
,
"EMB1C"
,
"EMB2A"
,
"EMB2C"
,
"EMB3A"
,
"EMB3C"
,
85
"HEC0A"
,
"HEC0C"
,
"HEC1A"
,
"HEC1C"
,
"HEC2A"
,
"HEC2C"
,
"HEC3A"
,
"HEC3C"
,
86
"EMECPA"
,
"EMECPC"
,
"EMEC1A"
,
"EMEC1C"
,
"EMEC2A"
,
"EMEC2C"
,
"EMEC3A"
,
"EMEC3C"
,
87
"FCAL1A"
,
"FCAL1C"
,
"FCAL2A"
,
"FCAL2C"
,
"FCAL3A"
,
"FCAL3C"
},
88
"Names of individual layers to monitor"
};
89
IntegerArrayProperty
m_layerNcells
{
this
,
"LayerNcells"
,{ 3905, 3905, 29376, 29376, 14595, 14595, 6912, 6912,
90
768, 768, 736, 736, 672, 672, 640, 640,
91
768, 768, 14272, 14272, 11712, 11712, 5120, 5120,
92
1008, 1008, 500, 500, 254, 254},
93
"Number of expected cells per layer"
};
94
95
BooleanProperty
m_doDatabaseNoiseVsEtaPhi
{
this
,
"doDatabaseNoiseVsEtaPhi"
,
true
};
96
97
BooleanProperty
m_doSCReco
{
this
,
"doSCReco"
,
false
};
98
99
//enums to help with the conversion of Layer, partitions and such:
100
//Enumerate layers
101
enum
LayerEnum
{
EMBPA
=0,
EMBPC
,
EMB1A
,
EMB1C
,
EMB2A
,
EMB2C
,
EMB3A
,
EMB3C
,
102
HEC0A
,
HEC0C
,
HEC1A
,
HEC1C
,
HEC2A
,
HEC2C
,
HEC3A
,
HEC3C
,
103
EMECPA
,
EMECPC
,
EMEC1A
,
EMEC1C
,
EMEC2A
,
EMEC2C
,
EMEC3A
,
EMEC3C
,
104
FCAL1A
,
FCAL1C
,
FCAL2A
,
FCAL2C
,
FCAL3A
,
FCAL3C
,
MAXLAYER
};
105
106
//Enumerate layer-types, ignoring sides. Useful for configuration that is per-definition symmetric
107
enum
LayerEnumNoSides
{
EMBPNS
=0,
EMB1NS
,
EMB2NS
,
EMB3NS
,
HEC0NS
,
HEC1NS
,
HEC2NS
,
HEC3NS
,
108
EMECPNS
,
EMEC1NS
,
EMEC2NS
,
EMEC3NS
,
FCAL1NS
,
FCAL2NS
,
FCAL3NS
,
MAXLYRNS
};
109
110
FloatArrayProperty
m_thresholdsProp
[
MAXLYRNS
];
111
FloatProperty
m_thresholdsForResolution
{
this
,
"Threshold"
,5e2};
112
BooleanProperty
m_removeMasked
{
this
,
"RemoveMasked"
,
true
};
113
114
//Enumerate partitions
115
enum
PartitionEnum
{
EMBA
,
EMBC
,
EMECA
,
EMECC
,
HECA
,
HECC
,
FCALA
,
FCALC
,
MAXPARTITIONS
};
116
117
118
119
//Mapping of CaloCell nomencature to CaloCellMonitoring nomencature
120
const
std::map<unsigned,LayerEnumNoSides>
m_caloSamplingToLyrNS
{
121
{CaloSampling::PreSamplerB,
EMBPNS
},{CaloSampling::EMB1,
EMB1NS
},{CaloSampling::EMB2,
EMB2NS
},{CaloSampling::EMB3,
EMB3NS
},
//LAr Barrel
122
{CaloSampling::PreSamplerE,
EMECPNS
},{CaloSampling::EME1,
EMEC1NS
}, {CaloSampling::EME2,
EMEC2NS
}, {CaloSampling::EME3,
EMEC3NS
},
//LAr Endcap
123
{CaloSampling::HEC0,
HEC0NS
}, {CaloSampling::HEC1,
HEC1NS
}, {CaloSampling::HEC2,
HEC2NS
}, {CaloSampling::HEC3,
HEC3NS
},
//Hadronic endcap
124
{CaloSampling::FCAL0,
FCAL1NS
}, {CaloSampling::FCAL1,
FCAL2NS
}, {CaloSampling::FCAL2,
FCAL3NS
}
//FCAL
125
};
126
127
//Private methods: Initialization and job-option interpretation
128
StatusCode initThresh();
129
130
std::string strToLower(
const
std::string& input)
const
;
131
132
133
//Private methods: Histogram filling
134
StatusCode createPerJobHistograms(
const
CaloCellContainer
* cellcont,
const
CaloNoise
*noisep)
const
;
135
136
//Helpers for histogram filling
137
void
getHistoCoordinates(
const
CaloDetDescrElement
* dde,
float
& celleta,
float
& cellphi,
unsigned
& iLyr,
unsigned
& iLyrNS)
const
;
138
139
// other private variables
140
141
142
// Identifer helpers and such
143
144
const
CaloCell_ID
*
m_calo_id
;
145
146
147
};
148
149
#endif
150
AthMonitorAlgorithm.h
BunchCrossingCondData.h
Replaces the BunchCrossing AlgTool used in run1/2.
CaloCellContainer.h
CaloNoise.h
IdentifierHash.h
LArOnOffIdMapping.h
LArOnlineID.h
ReadCondHandleKey.h
AthMonitorAlgorithm::AthMonitorAlgorithm
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition
AthMonitorAlgorithm.cxx:8
CaloCellContainer
Container class for CaloCell.
Definition
CaloCellContainer.h:55
CaloCell_ID
Helper class for offline cell identifiers.
Definition
CaloCell_ID.h:34
CaloCell
Data object for each calorimeter readout cell.
Definition
CaloCell.h:57
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell.
Definition
Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
CaloNoise
Definition
CaloNoise.h:17
LArSuperCellMonAlg::LayerEnum
LayerEnum
Definition
LArSuperCellMonAlg.h:101
LArSuperCellMonAlg::HEC3A
@ HEC3A
Definition
LArSuperCellMonAlg.h:102
LArSuperCellMonAlg::EMB3C
@ EMB3C
Definition
LArSuperCellMonAlg.h:101
LArSuperCellMonAlg::EMEC3A
@ EMEC3A
Definition
LArSuperCellMonAlg.h:103
LArSuperCellMonAlg::EMEC2A
@ EMEC2A
Definition
LArSuperCellMonAlg.h:103
LArSuperCellMonAlg::EMBPC
@ EMBPC
Definition
LArSuperCellMonAlg.h:101
LArSuperCellMonAlg::EMECPA
@ EMECPA
Definition
LArSuperCellMonAlg.h:103
LArSuperCellMonAlg::EMB2A
@ EMB2A
Definition
LArSuperCellMonAlg.h:101
LArSuperCellMonAlg::FCAL3C
@ FCAL3C
Definition
LArSuperCellMonAlg.h:104
LArSuperCellMonAlg::HEC2C
@ HEC2C
Definition
LArSuperCellMonAlg.h:102
LArSuperCellMonAlg::FCAL1A
@ FCAL1A
Definition
LArSuperCellMonAlg.h:104
LArSuperCellMonAlg::EMEC2C
@ EMEC2C
Definition
LArSuperCellMonAlg.h:103
LArSuperCellMonAlg::EMBPA
@ EMBPA
Definition
LArSuperCellMonAlg.h:101
LArSuperCellMonAlg::EMB1A
@ EMB1A
Definition
LArSuperCellMonAlg.h:101
LArSuperCellMonAlg::HEC3C
@ HEC3C
Definition
LArSuperCellMonAlg.h:102
LArSuperCellMonAlg::HEC0C
@ HEC0C
Definition
LArSuperCellMonAlg.h:102
LArSuperCellMonAlg::EMECPC
@ EMECPC
Definition
LArSuperCellMonAlg.h:103
LArSuperCellMonAlg::FCAL2C
@ FCAL2C
Definition
LArSuperCellMonAlg.h:104
LArSuperCellMonAlg::MAXLAYER
@ MAXLAYER
Definition
LArSuperCellMonAlg.h:104
LArSuperCellMonAlg::HEC1C
@ HEC1C
Definition
LArSuperCellMonAlg.h:102
LArSuperCellMonAlg::HEC2A
@ HEC2A
Definition
LArSuperCellMonAlg.h:102
LArSuperCellMonAlg::FCAL2A
@ FCAL2A
Definition
LArSuperCellMonAlg.h:104
LArSuperCellMonAlg::EMEC1C
@ EMEC1C
Definition
LArSuperCellMonAlg.h:103
LArSuperCellMonAlg::FCAL1C
@ FCAL1C
Definition
LArSuperCellMonAlg.h:104
LArSuperCellMonAlg::EMEC3C
@ EMEC3C
Definition
LArSuperCellMonAlg.h:103
LArSuperCellMonAlg::EMB2C
@ EMB2C
Definition
LArSuperCellMonAlg.h:101
LArSuperCellMonAlg::FCAL3A
@ FCAL3A
Definition
LArSuperCellMonAlg.h:104
LArSuperCellMonAlg::HEC0A
@ HEC0A
Definition
LArSuperCellMonAlg.h:102
LArSuperCellMonAlg::EMB1C
@ EMB1C
Definition
LArSuperCellMonAlg.h:101
LArSuperCellMonAlg::HEC1A
@ HEC1A
Definition
LArSuperCellMonAlg.h:102
LArSuperCellMonAlg::EMEC1A
@ EMEC1A
Definition
LArSuperCellMonAlg.h:103
LArSuperCellMonAlg::EMB3A
@ EMB3A
Definition
LArSuperCellMonAlg.h:101
LArSuperCellMonAlg::m_thresholdsProp
FloatArrayProperty m_thresholdsProp[MAXLYRNS]
Definition
LArSuperCellMonAlg.h:110
LArSuperCellMonAlg::m_removeMasked
BooleanProperty m_removeMasked
Definition
LArSuperCellMonAlg.h:112
LArSuperCellMonAlg::m_doSCReco
BooleanProperty m_doSCReco
Definition
LArSuperCellMonAlg.h:97
LArSuperCellMonAlg::m_SubDetNames
Gaudi::Property< std::vector< std::string > > m_SubDetNames
Definition
LArSuperCellMonAlg.h:68
LArSuperCellMonAlg::m_MonGroupName
Gaudi::Property< std::string > m_MonGroupName
Definition
LArSuperCellMonAlg.h:63
LArSuperCellMonAlg::LayerEnumNoSides
LayerEnumNoSides
Definition
LArSuperCellMonAlg.h:107
LArSuperCellMonAlg::FCAL1NS
@ FCAL1NS
Definition
LArSuperCellMonAlg.h:108
LArSuperCellMonAlg::EMEC2NS
@ EMEC2NS
Definition
LArSuperCellMonAlg.h:108
LArSuperCellMonAlg::EMB3NS
@ EMB3NS
Definition
LArSuperCellMonAlg.h:107
LArSuperCellMonAlg::FCAL3NS
@ FCAL3NS
Definition
LArSuperCellMonAlg.h:108
LArSuperCellMonAlg::EMECPNS
@ EMECPNS
Definition
LArSuperCellMonAlg.h:108
LArSuperCellMonAlg::FCAL2NS
@ FCAL2NS
Definition
LArSuperCellMonAlg.h:108
LArSuperCellMonAlg::HEC2NS
@ HEC2NS
Definition
LArSuperCellMonAlg.h:107
LArSuperCellMonAlg::EMBPNS
@ EMBPNS
Definition
LArSuperCellMonAlg.h:107
LArSuperCellMonAlg::EMB1NS
@ EMB1NS
Definition
LArSuperCellMonAlg.h:107
LArSuperCellMonAlg::HEC3NS
@ HEC3NS
Definition
LArSuperCellMonAlg.h:107
LArSuperCellMonAlg::EMEC1NS
@ EMEC1NS
Definition
LArSuperCellMonAlg.h:108
LArSuperCellMonAlg::EMEC3NS
@ EMEC3NS
Definition
LArSuperCellMonAlg.h:108
LArSuperCellMonAlg::EMB2NS
@ EMB2NS
Definition
LArSuperCellMonAlg.h:107
LArSuperCellMonAlg::HEC1NS
@ HEC1NS
Definition
LArSuperCellMonAlg.h:107
LArSuperCellMonAlg::HEC0NS
@ HEC0NS
Definition
LArSuperCellMonAlg.h:107
LArSuperCellMonAlg::MAXLYRNS
@ MAXLYRNS
Definition
LArSuperCellMonAlg.h:108
LArSuperCellMonAlg::m_superCellContainerKey
SG::ReadHandleKey< CaloCellContainer > m_superCellContainerKey
Definition
LArSuperCellMonAlg.h:55
LArSuperCellMonAlg::m_thresholdsForResolution
FloatProperty m_thresholdsForResolution
Definition
LArSuperCellMonAlg.h:111
LArSuperCellMonAlg::m_toolmapAll
std::map< std::string, std::map< std::string, int > > m_toolmapAll
Definition
LArSuperCellMonAlg.h:73
LArSuperCellMonAlg::PartitionEnum
PartitionEnum
Definition
LArSuperCellMonAlg.h:115
LArSuperCellMonAlg::EMBA
@ EMBA
Definition
LArSuperCellMonAlg.h:115
LArSuperCellMonAlg::FCALC
@ FCALC
Definition
LArSuperCellMonAlg.h:115
LArSuperCellMonAlg::FCALA
@ FCALA
Definition
LArSuperCellMonAlg.h:115
LArSuperCellMonAlg::EMECA
@ EMECA
Definition
LArSuperCellMonAlg.h:115
LArSuperCellMonAlg::EMECC
@ EMECC
Definition
LArSuperCellMonAlg.h:115
LArSuperCellMonAlg::EMBC
@ EMBC
Definition
LArSuperCellMonAlg.h:115
LArSuperCellMonAlg::MAXPARTITIONS
@ MAXPARTITIONS
Definition
LArSuperCellMonAlg.h:115
LArSuperCellMonAlg::HECA
@ HECA
Definition
LArSuperCellMonAlg.h:115
LArSuperCellMonAlg::HECC
@ HECC
Definition
LArSuperCellMonAlg.h:115
LArSuperCellMonAlg::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override final
adds event to the monitoring histograms
Definition
LArSuperCellMonAlg.cxx:73
LArSuperCellMonAlg::m_superCellContainerRefKey
SG::ReadHandleKey< CaloCellContainer > m_superCellContainerRefKey
Definition
LArSuperCellMonAlg.h:56
LArSuperCellMonAlg::m_layerNcells
IntegerArrayProperty m_layerNcells
Definition
LArSuperCellMonAlg.h:89
LArSuperCellMonAlg::m_noiseCDOKey
SG::ReadCondHandleKey< CaloNoise > m_noiseCDOKey
Definition
LArSuperCellMonAlg.h:70
LArSuperCellMonAlg::m_caloSamplingToLyrNS
const std::map< unsigned, LayerEnumNoSides > m_caloSamplingToLyrNS
Definition
LArSuperCellMonAlg.h:120
LArSuperCellMonAlg::m_calo_id
const CaloCell_ID * m_calo_id
Definition
LArSuperCellMonAlg.h:144
LArSuperCellMonAlg::m_layerNames
StringArrayProperty m_layerNames
Definition
LArSuperCellMonAlg.h:84
LArSuperCellMonAlg::m_superCellContainerRecoKey
SG::ReadHandleKey< CaloCellContainer > m_superCellContainerRecoKey
Definition
LArSuperCellMonAlg.h:57
LArSuperCellMonAlg::m_bcDataKey
SG::ReadCondHandleKey< BunchCrossingCondData > m_bcDataKey
Property: Bunch crossing data (MC only) (conditions input).
Definition
LArSuperCellMonAlg.h:61
LArSuperCellMonAlg::m_eCutForTiming
FloatArrayProperty m_eCutForTiming
Definition
LArSuperCellMonAlg.h:79
LArSuperCellMonAlg::m_streams
Gaudi::Property< std::vector< std::string > > m_streams
Definition
LArSuperCellMonAlg.h:67
LArSuperCellMonAlg::m_doDatabaseNoiseVsEtaPhi
BooleanProperty m_doDatabaseNoiseVsEtaPhi
Definition
LArSuperCellMonAlg.h:95
SG::ReadCondHandleKey
Definition
ReadCondHandleKey.h:21
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
TileID
Helper class for TileCal offline identifiers.
Definition
TileID.h:67
Trig::ChainGroup
Definition
ChainGroup.h:51
LArSuperCellMonAlg
Definition
LArSuperCellMonAlg.py:1
Trig
The common trigger namespace for trigger analysis tools.
Definition
LArCellMonAlg.h:33
initialize
void initialize()
Definition
run_EoverP.cxx:894
Generated on
for ATLAS Offline Software by
1.17.0