6#ifndef CALOMONITORING_LARCELLMONALG_H
7#define CALOMONITORING_LARCELLMONALG_H
31#include <unordered_map>
45 LArCellMonAlg(
const std::string& name, ISvcLocator* pSvcLocator);
48 virtual StatusCode
initialize() override final;
57 Gaudi::Property<std::string>
m_MonGroupName {
this,
"MonGroupName",
"LArCellMonGroup"};
81 {1000., 1000., 3000., 1500., 3500., 3500., 3500., 3500., 1500., 3000., 3000., 2000., 10000., 10000., 10000.}
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"};
95 StringArrayProperty
m_partitionNames{
this,
"PartitionNames", {
"EMBA",
"EMBC",
"EMECA",
"EMECC",
"HECA",
"HECC",
"FCALA",
"FCALC"}};
105 BooleanProperty
m_ignoreKnownBadChannels{
this,
"MaskBadChannels",
false,
"Do not fill histograms with values from known bad channels"};
106 BooleanProperty
m_maskNoCondChannels{
this,
"MaskNoCondChannels",
false,
"Do not fill histograms with values from cells reco'ed w/o conditions database"};
141 StringArrayProperty
m_doEtaPhiAvgQualityNames{
this,
"DoEtaPhiAvgQualityNames", {},
"Turns on 'totQuality' and total 'Occupancy' plots. The ratio will be computed at post-processing stage"};
143 StringArrayProperty
m_doEtaPhiAvgTimeNames{
this,
"DoEtaPhiAvgTimeNames", {},
"Turns on 'totTime' and total 'Occupancy' plots. The ratio will be computed at post-processing stage"};
156 StatusCode initThresh();
157 void setLArCellBinning();
158 static bool isThrListed(
const std::vector<std::string>&
vec,
const std::string& s) ;
161 static std::string strToLower(
const std::string& input) ;
214 void checkTriggerAndBeamBackground(
bool passBeamBackgroundRemoval, std::vector<threshold_t> &thresholds)
const;
219 Gaudi::Property<std::vector<std::string> >
m_problemsToMask{
this,
"ProblemsToMask",{},
"Bad-Channel categories to mask"};
230 std::array<CaloMonitoring::LArCellBinning,MAXLAYER>
m_binning;
std::vector< size_t > vec
Container class for CaloCell.
Data object for each calorimeter readout cell.
std::map< std::string, std::map< std::string, int > > m_toolmapAll
Gaudi::Property< std::string > m_groupnameTotTimeEtaPhi
Gaudi::Property< std::string > m_groupnameFractionPastTthEtaPhi
virtual StatusCode fillHistograms(const EventContext &ctx) const override final
adds event to the monitoring histograms
BooleanProperty m_doEnergyVsTime
StringArrayProperty m_thresholdNameProp
BooleanProperty m_doUnnormalized1DEnergy
Gaudi::Property< std::vector< std::string > > m_problemsToMask
BooleanProperty m_useTrigger
const std::array< PartitionEnum, MAXLAYER > m_layerEnumtoPartitionEnum
FloatArrayProperty m_timeThresholdProp
BooleanProperty m_doDatabaseNoiseVsEtaPhi
StringArrayProperty m_doEtaOccupancyNames
std::vector< threshold_t > m_thresholds
Gaudi::Property< std::string > m_groupnamePercentageOccupancyEtaPhi
StringArrayProperty m_doEtaPhiAvgTimeNames
BooleanProperty m_ignoreKnownBadChannels
StringArrayProperty m_doEtaPhiTotalOccupancyNames
BooleanProperty m_doKnownBadChannelsVsEtaPhi
FloatArrayProperty m_eCutForTiming
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Gaudi::Property< std::string > m_groupnameTotalOccupancyEtaPhi
Gaudi::Property< std::string > m_MonGroupNamePerJob
FloatProperty m_threshold_em_S0S1
std::array< CaloMonitoring::LArCellBinning, MAXLAYER > m_binning
BooleanArrayProperty m_inSigNoise
StringArrayProperty m_thresholdColumnType
StringArrayProperty m_doEtaPhiAvgQualityNames
BooleanProperty m_maskNoCondChannels
void sporadicNoiseCandidate(const CaloCell *cell, const LArCellMonAlg::LayerEnum iLyr, const float threshold, const LArOnOffIdMapping *cabling) const
Gaudi::Property< std::string > m_groupnameTotEnergyEtaPhi
Gaudi::Property< std::string > m_groupnameFractionOverQthEtaPhi
UnsignedIntegerProperty m_sporadic_protc
UnsignedIntegerProperty m_minSporadicNoiseEventsPerCell
StringArrayProperty m_doEtaPhiTotEnergyNames
StringArrayProperty m_doEtaPhiFractionPastTthNames
Gaudi::Property< std::string > m_groupnameTotQualityEtaPhi
BooleanProperty m_sporadic_switch
StringArrayProperty m_thresholdTitleTemplates
LArBadChannelMask m_bcMask
FloatArrayProperty m_defaultThresholds
StringArrayProperty m_thresholdDirectionProp
SG::ReadCondHandleKey< CaloNoise > m_noiseCDOKey
StringArrayProperty m_triggersToIncludeProp
StringArrayProperty m_doEtaPhiFractionOverQthNames
Gaudi::Property< std::string > m_groupnameOccupancyEta
BooleanArrayProperty m_doBeamBackgroundRemovalProp
StringProperty m_triggerNames[NOTA]
StringArrayProperty m_layerNames
Gaudi::Property< std::string > m_groupnameOccupancyPhi
FloatArrayProperty m_qualityFactorThresholdProp
SG::ReadCondHandleKey< LArBadChannelCont > m_BCKey
Gaudi::Property< std::string > m_MonGroupName
IntegerArrayProperty m_layerNcells
StringArrayProperty m_partitionNames
UnsignedIntegerProperty m_sporadicPlotLimit
SG::ReadHandleKey< CaloCellContainer > m_cellContainerKey
const LArOnlineID * m_LArOnlineIDHelper
StringArrayProperty m_doEtaPhiPercentageOccupancyNames
FloatProperty m_threshold_HECFCALEMS2S3
StringArrayProperty m_doPhiOccupancyNames
StringArrayProperty m_triggersToExcludeProp
FloatArrayProperty m_thresholdsProp[MAXLYRNS]
Helper class for TileCal offline identifiers.
The common trigger namespace for trigger analysis tools.
float m_qualityFactorThreshold
std::array< float, MAXLYRNS > m_threshValue
Histogram title template.
std::string m_threshTitleTemplate
Name of this threshold.
bool m_doEtaPhiAverageQuality
bool m_doEtaPhiAverageTime
bool m_doPercentageOccupancy
std::array< std::string, MAXLYRNS > m_threshTitles
The actual threshold (per layer)
bool m_doEtaPhiFractionOverQth
size_t m_thrIndex
Part of the histogram title (containing the threshold value, so per-layer)
bool m_doEtaPhiFractionPastTth
std::bitset< MAXTRIGTYPE > m_triggersToExclude
bool m_inSigNoise
for filling in the eventCount plot
bool m_threshTriggerDecision
Direction m_threshDirection
Absolute threshold or in sigma noise?
std::bitset< MAXTRIGTYPE > m_triggersToInclude
bool m_doEtaPhiTotalEnergy
bool m_doBeamBackgroundRemoval