ATLAS Offline Software
Loading...
Searching...
No Matches
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
22class TileID;
23class TileHWID;
25class TileInfo;
26
27
31
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};
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
Header file to be included by clients of the Monitored infrastructure.
Property holding a SG store/key/clid from which a ReadHandle is made.
Information produced by TileDQstatusAlg (used to be done by TileBeamInfoProvider).
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
SG::ReadHandleKey< TileDigitsContainer > m_digitsContainerKey
float m_ADCmaskValueMinusEps
indicates channels which were masked in background dataset
std::vector< std::vector< int > > m_errorsInLBGroups
Gaudi::Property< float > m_negativeAmplitudeCutLG
Gaudi::Property< float > m_timeMaxThresh
virtual ~TileDQFragMonitorAlgorithm()=default
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
SG::ReadDecorHandleKey< xAOD::EventInfo > m_eventInfoTileStatusKey
Gaudi::Property< float > m_qualityCut
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Gaudi::Property< bool > m_ignoreNoRecoFragError
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
const TileCablingService * m_cabling
SG::ReadCondHandleKey< TileEMScale > m_emScaleKey
Name of TileEMScale in condition store.
Gaudi::Property< float > m_timeMinThresh
SG::ReadCondHandleKey< TileBadChannels > m_badChannelsKey
Name of TileBadChannels in condition store.
Gaudi::Property< float > m_negativeAmplitudeCutHG
SG::ReadCondHandleKey< TileDCSState > m_DCSStateKey
Name of TileDCSState object in condition store.
std::vector< std::vector< int > > m_errorsVsLBGroups
SG::ReadHandleKey< TileDQstatus > m_DQstatusKey
Gaudi::Property< bool > m_skipGapCells
Gaudi::Property< float > m_minGapEnergy
std::vector< std::vector< int > > m_errorsGroups
Gaudi::Property< bool > m_fillDigiErrorsInLB
Gaudi::Property< float > m_minChannelEnergy
Helper class for TileCal online (hardware) identifiers.
Definition TileHWID.h:49
Helper class for TileCal offline identifiers.
Definition TileID.h:67
void initialize()