ATLAS Offline Software
TileDQFragMonitorAlgorithm.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TILEMONITORING_TILEDQFRAGMONITORALGORITHM_H
6 #define TILEMONITORING_TILEDQFRAGMONITORALGORITHM_H
7 
15 
18 
21 
22 class TileID;
23 class TileHWID;
24 class TileCablingService;
25 class TileInfo;
26 
27 
33 
34  public:
35 
37  virtual ~TileDQFragMonitorAlgorithm() = default;
38  virtual StatusCode initialize() override;
39  virtual StatusCode fillHistograms(const EventContext& ctx) const override;
40 
41  private:
42 
43  enum TileFragStatus {ALL_OK = 0, CRC_ERR = 1, ALL_FF = 0x10, ALL_00 = 0x20, NO_FRAG = 0x40, NO_ROB = 0x80};
44 
49 
50  void setDigiError(std::vector<int>& dmus, std::vector<int>& errors, int dmu, int error) const;
51  void clearDigiError(std::vector<int>& dmus, std::vector<int>& errors) const;
52 
53  Gaudi::Property<bool> m_checkDCS{this, "CheckDCS", false, "Check Tile DCS status"};
54  Gaudi::Property<bool> m_skipMasked{this, "SkipMasked", true, "Ignore masked Tile channels"};
55  Gaudi::Property<bool> m_skipGapCells{this, "SkipGapCells", true, "Ignore E1-E4 cells in negative amplitude detection"};
56  Gaudi::Property<bool> m_ignoreNoRecoFragError{this, "IgnoreNoRecoFragError", false, "Ignore NO_RECO_FRAG error"};
57  Gaudi::Property<bool> m_fillDigiErrorsInLB{this,
58  "fillDigiErrorsHistogramsPerLB", false, "Fill Digi Errors histograms per LBs (reset every N LBs in online)"};
59 
60  Gaudi::Property<float> m_negativeAmplitudeCutHG{this,
61  "NegativeAmplitudeCutHG", -200.0, "Monitor Tile channels with negative amplitude in HG below this cut"};
62 
63  Gaudi::Property<float> m_negativeAmplitudeCutLG{this,
64  "NegativeAmplitudeCutLG", -15.0, "Monitor Tile channels with negative amplitude in LG below this cut"};
65 
66  Gaudi::Property<float> m_qualityCut{this,
67  "QualityCut", 254.0, "Monitor Tile channels reconstructed with quality below this cut"};
68 
69  Gaudi::Property<float> m_timeMinThresh{this,
70  "TimeMinForAmpCorrection", -12.5, "Correct amplitude is time is above time minimum threshold"};
71  Gaudi::Property<float> m_timeMaxThresh{this,
72  "TimeMaxForAmpCorrection", 12.5, "Correct amplitude is time is below time maximum threshold"};
73 
74  Gaudi::Property<float> m_minChannelEnergy{this,
75  "MinEnergyChan", -5000.0F, "Normal channel energy threshold for masking"};
76 
77  Gaudi::Property<float> m_minGapEnergy{this,
78  "MinEnergyGap", -10000.0F, "Gap channel energy threshold for masking"};
79 
84  "TileBadChannels", "TileBadChannels", "Input Tile bad channel status"};
85 
90  "TileCablingSvc", "TileCablingSvc", "The Tile cabling service"};
91 
93  "TileDQstatus", "TileDQstatus", "Tile DQ status name"};
94 
99  "TileDCS", "TileDCS", "Input Tile DCS status"};
100 
105  "TileEMScale", "TileEMScale", "Input Tile EMS calibration constants"};
106 
108  "TileRawChannelContainer", "TileRawChannelCnt", "Input Tile raw channel container key"};
109 
111  "TileDigitsContainer", "TileDigitsCnt", "Input Tile digits container key"};
112 
114  "EventInfo.TileStatus",
115  "Aid to MT scheduling, do not change"};
116 
117  std::vector<std::vector<int>> m_errorsGroups;
118  std::vector<std::vector<int>> m_errorsInLBGroups;
119  std::vector<std::vector<int>> m_errorsVsLBGroups;
120 
121  std::vector<int> m_badChannelJumpGroups;
123 
124  std::vector<int> m_badChannelNegGroups;
126 
127  std::vector<int> m_badPulseQualityGroups;
128  std::vector<int> m_negativeEnergyGroups;
129 
130  const TileID* m_tileID{nullptr};
131  const TileHWID* m_tileHWID{nullptr};
132  const TileCablingService* m_cabling{nullptr};
133 
134  static const int MAX_DMU{16};
135  static const int MAX_CORRUPTED_ERROR{13};
137 
138  // TileInfo
139  std::string m_infoName = "TileInfo";
140  const TileInfo* m_tileInfo{nullptr};
143 
144 };
145 
146 
147 #endif // TILEMONITORING_TILEDQFRAGMONITORALGORITHM_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
TileDCSState.h
TileDQFragMonitorAlgorithm::MEMO_PAR
@ MEMO_PAR
Definition: TileDQFragMonitorAlgorithm.h:45
TileDQFragMonitorAlgorithm::m_infoName
std::string m_infoName
Definition: TileDQFragMonitorAlgorithm.h:139
TileDQFragMonitorAlgorithm::m_skipMasked
Gaudi::Property< bool > m_skipMasked
Definition: TileDQFragMonitorAlgorithm.h:54
TileDQFragMonitorAlgorithm::TileBadPulse
TileBadPulse
Definition: TileDQFragMonitorAlgorithm.h:136
TileDQFragMonitorAlgorithm::m_ADCmaskValueMinusEps
float m_ADCmaskValueMinusEps
indicates channels which were masked in background dataset
Definition: TileDQFragMonitorAlgorithm.h:142
TileCablingSvc.h
TileDQFragMonitorAlgorithm::m_ADCmaxMinusEps
float m_ADCmaxMinusEps
Definition: TileDQFragMonitorAlgorithm.h:141
TileDQFragMonitorAlgorithm::MAX_DMU
static const int MAX_DMU
Definition: TileDQFragMonitorAlgorithm.h:134
TileEMScale.h
TileDQFragMonitorAlgorithm::m_negativeAmplitudeCutHG
Gaudi::Property< float > m_negativeAmplitudeCutHG
Definition: TileDQFragMonitorAlgorithm.h:60
TileDQFragMonitorAlgorithm::m_skipGapCells
Gaudi::Property< bool > m_skipGapCells
Definition: TileDQFragMonitorAlgorithm.h:55
TileDQFragMonitorAlgorithm::NO_RECO_FRAG
@ NO_RECO_FRAG
Definition: TileDQFragMonitorAlgorithm.h:47
TileDQFragMonitorAlgorithm::setDigiError
void setDigiError(std::vector< int > &dmus, std::vector< int > &errors, int dmu, int error) const
Definition: TileDQFragMonitorAlgorithm.cxx:506
TileDQFragMonitorAlgorithm::OK
@ OK
Definition: TileDQFragMonitorAlgorithm.h:45
TileDQFragMonitorAlgorithm::m_timeMinThresh
Gaudi::Property< float > m_timeMinThresh
Definition: TileDQFragMonitorAlgorithm.h:69
TileDQFragMonitorAlgorithm::BIG_NEGATIVE_AMPLITUDE
@ BIG_NEGATIVE_AMPLITUDE
Definition: TileDQFragMonitorAlgorithm.h:136
TileDQFragMonitorAlgorithm::m_badChannelNegNotMaskGroups
std::vector< int > m_badChannelNegNotMaskGroups
Definition: TileDQFragMonitorAlgorithm.h:125
TileDQFragMonitorAlgorithm::TileDigiErrors
TileDigiErrors
Definition: TileDQFragMonitorAlgorithm.h:45
TileDQFragMonitorAlgorithm::HEADER_PAR
@ HEADER_PAR
Definition: TileDQFragMonitorAlgorithm.h:45
TileDQFragMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: TileDQFragMonitorAlgorithm.cxx:15
TileInfo
Definition: TileInfo.h:49
SG::ReadHandleKey< TileDQstatus >
TileDQFragMonitorAlgorithm::m_tileID
const TileID * m_tileID
Definition: TileDQFragMonitorAlgorithm.h:130
TileDQFragMonitorAlgorithm
Definition: TileDQFragMonitorAlgorithm.py:1
TileDQFragMonitorAlgorithm::m_timeMaxThresh
Gaudi::Property< float > m_timeMaxThresh
Definition: TileDQFragMonitorAlgorithm.h:71
TileDQFragMonitorAlgorithm::m_digitsContainerKey
SG::ReadHandleKey< TileDigitsContainer > m_digitsContainerKey
Definition: TileDQFragMonitorAlgorithm.h:110
TileDQFragMonitorAlgorithm::NO_ROB
@ NO_ROB
Definition: TileDQFragMonitorAlgorithm.h:43
TileDQFragMonitorAlgorithm::BAD_QUALITY
@ BAD_QUALITY
Definition: TileDQFragMonitorAlgorithm.h:136
TileDQFragMonitorAlgorithm::m_negativeAmplitudeCutLG
Gaudi::Property< float > m_negativeAmplitudeCutLG
Definition: TileDQFragMonitorAlgorithm.h:63
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
TileRawChannelContainer.h
TileDQFragMonitorAlgorithm::m_tileHWID
const TileHWID * m_tileHWID
Definition: TileDQFragMonitorAlgorithm.h:131
TileHWID
Helper class for TileCal online (hardware) identifiers.
Definition: TileHWID.h:49
TileDQFragMonitorAlgorithm::TileFragStatus
TileFragStatus
Definition: TileDQFragMonitorAlgorithm.h:43
TileDQFragMonitorAlgorithm::m_badChannelsKey
SG::ReadCondHandleKey< TileBadChannels > m_badChannelsKey
Name of TileBadChannels in condition store.
Definition: TileDQFragMonitorAlgorithm.h:83
TileDQFragMonitorAlgorithm::clearDigiError
void clearDigiError(std::vector< int > &dmus, std::vector< int > &errors) const
Definition: TileDQFragMonitorAlgorithm.cxx:513
TileDQFragMonitorAlgorithm::DOUBLE_STB
@ DOUBLE_STB
Definition: TileDQFragMonitorAlgorithm.h:46
TileDQFragMonitorAlgorithm::m_cabling
const TileCablingService * m_cabling
Definition: TileDQFragMonitorAlgorithm.h:132
TileID
Helper class for TileCal offline identifiers.
Definition: TileID.h:68
TileDigitsContainer.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthMonitorAlgorithm.h
TileDQFragMonitorAlgorithm::m_badPulseQualityGroups
std::vector< int > m_badPulseQualityGroups
Definition: TileDQFragMonitorAlgorithm.h:127
TileDQFragMonitorAlgorithm::~TileDQFragMonitorAlgorithm
virtual ~TileDQFragMonitorAlgorithm()=default
TileDQFragMonitorAlgorithm::ROD_CRC
@ ROD_CRC
Definition: TileDQFragMonitorAlgorithm.h:45
TileDQFragMonitorAlgorithm::ANY_CH_BAD_HV
@ ANY_CH_BAD_HV
Definition: TileDQFragMonitorAlgorithm.h:47
TileDQFragMonitorAlgorithm::m_DQstatusKey
SG::ReadHandleKey< TileDQstatus > m_DQstatusKey
Definition: TileDQFragMonitorAlgorithm.h:92
TileDQFragMonitorAlgorithm::MAX_DIGI_ERROR
@ MAX_DIGI_ERROR
Definition: TileDQFragMonitorAlgorithm.h:48
TileDQFragMonitorAlgorithm::m_ignoreNoRecoFragError
Gaudi::Property< bool > m_ignoreNoRecoFragError
Definition: TileDQFragMonitorAlgorithm.h:56
TileCablingService
Definition: TileCablingService.h:23
TileDQFragMonitorAlgorithm::HEADER_FORM
@ HEADER_FORM
Definition: TileDQFragMonitorAlgorithm.h:45
TileDQFragMonitorAlgorithm::m_badChannelNegGroups
std::vector< int > m_badChannelNegGroups
Definition: TileDQFragMonitorAlgorithm.h:124
TileDQstatus.h
Information produced by TileDQstatusAlg (used to be done by TileBeamInfoProvider).
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
TileDQFragMonitorAlgorithm::m_errorsGroups
std::vector< std::vector< int > > m_errorsGroups
Definition: TileDQFragMonitorAlgorithm.h:117
ReadCondHandleKey.h
mergePhysValFiles.errors
list errors
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:43
TileDQFragMonitorAlgorithm::DUMMY_FRAG
@ DUMMY_FRAG
Definition: TileDQFragMonitorAlgorithm.h:47
TileDQFragMonitorAlgorithm::ALL_00
@ ALL_00
Definition: TileDQFragMonitorAlgorithm.h:43
TileDQFragMonitorAlgorithm::m_emScaleKey
SG::ReadCondHandleKey< TileEMScale > m_emScaleKey
Name of TileEMScale in condition store.
Definition: TileDQFragMonitorAlgorithm.h:104
TileDQFragMonitorAlgorithm::m_minChannelEnergy
Gaudi::Property< float > m_minChannelEnergy
Definition: TileDQFragMonitorAlgorithm.h:74
TileDQFragMonitorAlgorithm::SINGLE_STB
@ SINGLE_STB
Definition: TileDQFragMonitorAlgorithm.h:46
TileDQFragMonitorAlgorithm::SAMPLE_FORM
@ SAMPLE_FORM
Definition: TileDQFragMonitorAlgorithm.h:46
TileDQFragMonitorAlgorithm::NO_FRAG
@ NO_FRAG
Definition: TileDQFragMonitorAlgorithm.h:43
TileDQFragMonitorAlgorithm::m_rawChannelContainerKey
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
Definition: TileDQFragMonitorAlgorithm.h:107
TileDQFragMonitorAlgorithm::MAX_CORRUPTED_ERROR
static const int MAX_CORRUPTED_ERROR
Definition: TileDQFragMonitorAlgorithm.h:135
TileDQFragMonitorAlgorithm::ALL_OK
@ ALL_OK
Definition: TileDQFragMonitorAlgorithm.h:43
TileDQFragMonitorAlgorithm::m_eventInfoTileStatusKey
SG::ReadDecorHandleKey< xAOD::EventInfo > m_eventInfoTileStatusKey
Definition: TileDQFragMonitorAlgorithm.h:113
TileDQFragMonitorAlgorithm::GLOBAL_CRC
@ GLOBAL_CRC
Definition: TileDQFragMonitorAlgorithm.h:46
SG::ReadCondHandleKey< TileBadChannels >
TileDQFragMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: TileDQFragMonitorAlgorithm.cxx:65
TileDQFragMonitorAlgorithm::m_qualityCut
Gaudi::Property< float > m_qualityCut
Definition: TileDQFragMonitorAlgorithm.h:66
TileDQFragMonitorAlgorithm::FE_CRC
@ FE_CRC
Definition: TileDQFragMonitorAlgorithm.h:45
TileDQFragMonitorAlgorithm::m_badChannelJumpGroups
std::vector< int > m_badChannelJumpGroups
Definition: TileDQFragMonitorAlgorithm.h:121
TileDQFragMonitorAlgorithm::m_errorsInLBGroups
std::vector< std::vector< int > > m_errorsInLBGroups
Definition: TileDQFragMonitorAlgorithm.h:118
TileDQFragMonitorAlgorithm::ALL_FF
@ ALL_FF
Definition: TileDQFragMonitorAlgorithm.h:43
TileDQFragMonitorAlgorithm::MASKED
@ MASKED
Definition: TileDQFragMonitorAlgorithm.h:47
TileDQFragMonitorAlgorithm::m_DCSStateKey
SG::ReadCondHandleKey< TileDCSState > m_DCSStateKey
Name of TileDCSState object in condition store.
Definition: TileDQFragMonitorAlgorithm.h:98
AthMonitorAlgorithm::AthMonitorAlgorithm
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition: AthMonitorAlgorithm.cxx:7
TileBadChannels.h
TileDQFragMonitorAlgorithm::m_cablingSvc
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
Definition: TileDQFragMonitorAlgorithm.h:89
TileDQFragMonitorAlgorithm::m_errorsVsLBGroups
std::vector< std::vector< int > > m_errorsVsLBGroups
Definition: TileDQFragMonitorAlgorithm.h:119
TileDQFragMonitorAlgorithm::m_negativeEnergyGroups
std::vector< int > m_negativeEnergyGroups
Definition: TileDQFragMonitorAlgorithm.h:128
TileDQFragMonitorAlgorithm::BCID
@ BCID
Definition: TileDQFragMonitorAlgorithm.h:45
TileDQFragMonitorAlgorithm::m_fillDigiErrorsInLB
Gaudi::Property< bool > m_fillDigiErrorsInLB
Definition: TileDQFragMonitorAlgorithm.h:57
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
TileDQFragMonitorAlgorithm::m_badChannelJumpNotMaskGroups
std::vector< int > m_badChannelJumpNotMaskGroups
Definition: TileDQFragMonitorAlgorithm.h:122
error
Definition: IImpactPoint3dEstimator.h:70
TileDQFragMonitorAlgorithm::m_checkDCS
Gaudi::Property< bool > m_checkDCS
Definition: TileDQFragMonitorAlgorithm.h:53
TileDQFragMonitorAlgorithm::m_minGapEnergy
Gaudi::Property< float > m_minGapEnergy
Definition: TileDQFragMonitorAlgorithm.h:77
TileDQFragMonitorAlgorithm::CRC_ERR
@ CRC_ERR
Definition: TileDQFragMonitorAlgorithm.h:43
ServiceHandle< TileCablingSvc >
TileDQFragMonitorAlgorithm::SAMPLE_PAR
@ SAMPLE_PAR
Definition: TileDQFragMonitorAlgorithm.h:46
TileDQFragMonitorAlgorithm::m_tileInfo
const TileInfo * m_tileInfo
Definition: TileDQFragMonitorAlgorithm.h:140
TileDQFragMonitorAlgorithm::ALL_M_BAD_DCS
@ ALL_M_BAD_DCS
Definition: TileDQFragMonitorAlgorithm.h:47