ATLAS Offline Software
TileDQFragMonitorAlgorithm.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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 
58  Gaudi::Property<float> m_negativeAmplitudeCutHG{this,
59  "NegativeAmplitudeCutHG", -200.0, "Monitor Tile channels with negative amplitude in HG below this cut"};
60 
61  Gaudi::Property<float> m_negativeAmplitudeCutLG{this,
62  "NegativeAmplitudeCutLG", -15.0, "Monitor Tile channels with negative amplitude in LG below this cut"};
63 
64  Gaudi::Property<float> m_qualityCut{this,
65  "QualityCut", 254.0, "Monitor Tile channels reconstructed with quality below this cut"};
66 
67  Gaudi::Property<float> m_timeMinThresh{this,
68  "TimeMinForAmpCorrection", -12.5, "Correct amplitude is time is above time minimum threshold"};
69  Gaudi::Property<float> m_timeMaxThresh{this,
70  "TimeMaxForAmpCorrection", 12.5, "Correct amplitude is time is below time maximum threshold"};
71 
72  Gaudi::Property<float> m_minChannelEnergy{this,
73  "MinEnergyChan", -5000.0F, "Normal channel energy threshold for masking"};
74 
75  Gaudi::Property<float> m_minGapEnergy{this,
76  "MinEnergyGap", -10000.0F, "Gap channel energy threshold for masking"};
77 
82  "TileBadChannels", "TileBadChannels", "Input Tile bad channel status"};
83 
88  "TileCablingSvc", "TileCablingSvc", "The Tile cabling service"};
89 
91  "TileDQstatus", "TileDQstatus", "Tile DQ status name"};
92 
97  "TileDCS", "TileDCS", "Input Tile DCS status"};
98 
103  "TileEMScale", "TileEMScale", "Input Tile EMS calibration constants"};
104 
106  "TileRawChannelContainer", "TileRawChannelCnt", "Input Tile raw channel container key"};
107 
109  "TileDigitsContainer", "TileDigitsCnt", "Input Tile digits container key"};
110 
112  "EventInfo.TileStatus",
113  "Aid to MT scheduling, do not change"};
114 
115  std::vector<std::vector<int>> m_errorsGroups;
116  std::vector<std::vector<int>> m_errorsVsLBGroups;
117 
118  std::vector<int> m_badChannelJumpGroups;
120 
121  std::vector<int> m_badChannelNegGroups;
123 
124  std::vector<int> m_badPulseQualityGroups;
125  std::vector<int> m_negativeEnergyGroups;
126 
127  const TileID* m_tileID{nullptr};
128  const TileHWID* m_tileHWID{nullptr};
129  const TileCablingService* m_cabling{nullptr};
130 
131  static const int MAX_DMU{16};
132  static const int MAX_CORRUPTED_ERROR{13};
134 
135  // TileInfo
136  std::string m_infoName = "TileInfo";
137  const TileInfo* m_tileInfo{nullptr};
140 
141 };
142 
143 
144 #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:136
TileDQFragMonitorAlgorithm::m_skipMasked
Gaudi::Property< bool > m_skipMasked
Definition: TileDQFragMonitorAlgorithm.h:54
TileDQFragMonitorAlgorithm::TileBadPulse
TileBadPulse
Definition: TileDQFragMonitorAlgorithm.h:133
TileDQFragMonitorAlgorithm::m_ADCmaskValueMinusEps
float m_ADCmaskValueMinusEps
indicates channels which were masked in background dataset
Definition: TileDQFragMonitorAlgorithm.h:139
TileCablingSvc.h
TileDQFragMonitorAlgorithm::m_ADCmaxMinusEps
float m_ADCmaxMinusEps
Definition: TileDQFragMonitorAlgorithm.h:138
TileDQFragMonitorAlgorithm::MAX_DMU
static const int MAX_DMU
Definition: TileDQFragMonitorAlgorithm.h:131
TileEMScale.h
TileDQFragMonitorAlgorithm::m_negativeAmplitudeCutHG
Gaudi::Property< float > m_negativeAmplitudeCutHG
Definition: TileDQFragMonitorAlgorithm.h:58
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:498
TileDQFragMonitorAlgorithm::OK
@ OK
Definition: TileDQFragMonitorAlgorithm.h:45
TileDQFragMonitorAlgorithm::m_timeMinThresh
Gaudi::Property< float > m_timeMinThresh
Definition: TileDQFragMonitorAlgorithm.h:67
TileDQFragMonitorAlgorithm::BIG_NEGATIVE_AMPLITUDE
@ BIG_NEGATIVE_AMPLITUDE
Definition: TileDQFragMonitorAlgorithm.h:133
TileDQFragMonitorAlgorithm::m_badChannelNegNotMaskGroups
std::vector< int > m_badChannelNegNotMaskGroups
Definition: TileDQFragMonitorAlgorithm.h:122
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:127
TileDQFragMonitorAlgorithm
Definition: TileDQFragMonitorAlgorithm.py:1
TileDQFragMonitorAlgorithm::m_timeMaxThresh
Gaudi::Property< float > m_timeMaxThresh
Definition: TileDQFragMonitorAlgorithm.h:69
TileDQFragMonitorAlgorithm::m_digitsContainerKey
SG::ReadHandleKey< TileDigitsContainer > m_digitsContainerKey
Definition: TileDQFragMonitorAlgorithm.h:108
TileDQFragMonitorAlgorithm::NO_ROB
@ NO_ROB
Definition: TileDQFragMonitorAlgorithm.h:43
TileDQFragMonitorAlgorithm::BAD_QUALITY
@ BAD_QUALITY
Definition: TileDQFragMonitorAlgorithm.h:133
TileDQFragMonitorAlgorithm::m_negativeAmplitudeCutLG
Gaudi::Property< float > m_negativeAmplitudeCutLG
Definition: TileDQFragMonitorAlgorithm.h:61
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
TileRawChannelContainer.h
TileDQFragMonitorAlgorithm::m_tileHWID
const TileHWID * m_tileHWID
Definition: TileDQFragMonitorAlgorithm.h:128
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:81
TileDQFragMonitorAlgorithm::clearDigiError
void clearDigiError(std::vector< int > &dmus, std::vector< int > &errors) const
Definition: TileDQFragMonitorAlgorithm.cxx:505
TileDQFragMonitorAlgorithm::DOUBLE_STB
@ DOUBLE_STB
Definition: TileDQFragMonitorAlgorithm.h:46
TileDQFragMonitorAlgorithm::m_cabling
const TileCablingService * m_cabling
Definition: TileDQFragMonitorAlgorithm.h:129
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:124
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:90
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:121
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:115
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:102
TileDQFragMonitorAlgorithm::m_minChannelEnergy
Gaudi::Property< float > m_minChannelEnergy
Definition: TileDQFragMonitorAlgorithm.h:72
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:105
TileDQFragMonitorAlgorithm::MAX_CORRUPTED_ERROR
static const int MAX_CORRUPTED_ERROR
Definition: TileDQFragMonitorAlgorithm.h:132
TileDQFragMonitorAlgorithm::ALL_OK
@ ALL_OK
Definition: TileDQFragMonitorAlgorithm.h:43
TileDQFragMonitorAlgorithm::m_eventInfoTileStatusKey
SG::ReadDecorHandleKey< xAOD::EventInfo > m_eventInfoTileStatusKey
Definition: TileDQFragMonitorAlgorithm.h:111
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:61
TileDQFragMonitorAlgorithm::m_qualityCut
Gaudi::Property< float > m_qualityCut
Definition: TileDQFragMonitorAlgorithm.h:64
TileDQFragMonitorAlgorithm::FE_CRC
@ FE_CRC
Definition: TileDQFragMonitorAlgorithm.h:45
TileDQFragMonitorAlgorithm::m_badChannelJumpGroups
std::vector< int > m_badChannelJumpGroups
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:96
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:87
TileDQFragMonitorAlgorithm::m_errorsVsLBGroups
std::vector< std::vector< int > > m_errorsVsLBGroups
Definition: TileDQFragMonitorAlgorithm.h:116
TileDQFragMonitorAlgorithm::m_negativeEnergyGroups
std::vector< int > m_negativeEnergyGroups
Definition: TileDQFragMonitorAlgorithm.h:125
TileDQFragMonitorAlgorithm::BCID
@ BCID
Definition: TileDQFragMonitorAlgorithm.h:45
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:119
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:75
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:137
TileDQFragMonitorAlgorithm::ALL_M_BAD_DCS
@ ALL_M_BAD_DCS
Definition: TileDQFragMonitorAlgorithm.h:47