ATLAS Offline Software
Loading...
Searching...
No Matches
TileDigitsMonitorAlgorithm.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TILEMONITORING_TILEDIGITSMONITORALGORITHM_H
6#define TILEMONITORING_TILEDIGITSMONITORALGORITHM_H
7
12
17
21
23
24 public:
25
27 virtual ~TileDigitsMonitorAlgorithm() = default;
28 virtual StatusCode initialize() override;
29 virtual StatusCode fillHistograms(const EventContext& ctx) const override;
30
31 private:
32
33 enum TileFragStatus {ALL_OK = 0, ALL_FF = 0x10, ALL_00 = 0x20, NO_FRAG = 0x40, NO_ROB = 0x80};
34
37
38 void checkCRC(bool isCalibMode, uint32_t crc32, uint32_t crcMask, int nDMU, int ros, int drawer) const;
39 StatusCode checkROD_CRC(const TileDQstatus* dqStatus, const EventContext& ctx) const;
40 bool checkCorruptedData(const std::vector<std::reference_wrapper<const std::vector<uint32_t>>>& headerWordsAll,
41 uint32_t fragStatus, int ros, int drawer, std::vector<std::vector<bool>>& corruptedData) const;
42 void checkBCID(const std::vector<std::reference_wrapper<const std::vector<uint32_t>>>& headerWordsAll,
43 uint32_t rodBCID, int ros, int drawer) const;
44
45 Gaudi::Property<bool> m_fillPedestalDifference{this,
46 "fillPedestalDifference", true, "Fill pedestal difference between monitored pedestal and one from DB"};
47
48 Gaudi::Property<bool> m_fillErrorsHistograms{this,
49 "fillErrorsHistograms", true, "Fill histograms per channel/gain with DMU, CRC, BCID errors"};
50
51 Gaudi::Property<bool> m_fillPedestalHistograms{this,
52 "fillPedestalHistograms", true, "Fill histograms per channel/gain with pedestals"};
53
54 Gaudi::Property<bool> m_fillHighFrequencyNoiseHistograms{this,
55 "fillHighFrequencyNoiseHistograms", true, "Fill histograms per channel/gain with HFN"};
56
57 Gaudi::Property<bool> m_fillSamplesHistograms{this,
58 "fillSamplesHistograms", true, "Fill histograms per channel/gain with samples"};
59
60 Gaudi::Property<bool> m_fillProfileHistograms{this,
61 "fillProfileHistograms", true, "Fill histograms per channel/gain with profile"};
62
63 Gaudi::Property<bool> m_fillEventModule32Histograms{this,
64 "fillEventModule32Histograms", true, "Fill histograms per channel/gain with event number % 32"};
65
66 Gaudi::Property<bool> m_fillCorrelationsHistograms{this,
67 "fillCorrelationsHistograms", true, "Fill histograms which are used to produce correlation and corvariance plots"};
68
70 "TileDigitsContainer", "TileDigitsCnt", "Input Tile digits container key"};
71
73 "TileRawChannelContainer", "", "Input Tile raw channel container key"};
74
75 ToolHandle<TileCondToolNoiseSample> m_tileCondToolNoiseSample{this,
76 "TileCondToolNoiseSample", "TileCondToolNoiseSample", "Tile sample noise tool"};
77
78 std::vector<int> m_meanSampleGroups;
79 std::vector<int> m_meanSampleProdGroups;
80 std::vector<std::vector<int>> m_crcGlobalGroups;
81 std::vector<std::vector<int>> m_crcErrGroups;
82 std::vector<std::vector<std::vector<int>>> m_bcidGroups;
83 std::vector<std::vector<std::vector<int>>> m_bcidErrGroups;
84 std::vector<std::vector<std::vector<int>>> m_errorsGroups;
85
86 std::vector<std::vector<int>> m_pedGroups;
87 std::vector<std::vector<int>> m_hfnGroups;
88 std::vector<std::vector<int>> m_samplesGroups;
89 std::vector<std::vector<int>> m_profGroups;
90 std::vector<std::vector<int>> m_evtMod32Groups;
91
92 static const int MAX_DMU{16};
93 bool m_is12bit{false};
95};
96
97
98#endif // TILEMONITORING_TILEDIGITSMONITORALGORITHM_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.
Property holding a SG store/key/clid from which a ReadHandle is made.
TileCalibMonitorAlgorithm(const std::string &name, ISvcLocator *svcLocator)
Class that holds Data Quality fragment information and provides functions to extract the data quality...
Gaudi::Property< bool > m_fillProfileHistograms
Gaudi::Property< bool > m_fillPedestalHistograms
std::vector< std::vector< int > > m_profGroups
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
std::vector< std::vector< int > > m_crcErrGroups
std::vector< std::vector< int > > m_samplesGroups
virtual ~TileDigitsMonitorAlgorithm()=default
std::vector< std::vector< std::vector< int > > > m_bcidGroups
Gaudi::Property< bool > m_fillSamplesHistograms
Gaudi::Property< bool > m_fillHighFrequencyNoiseHistograms
std::vector< std::vector< int > > m_crcGlobalGroups
Gaudi::Property< bool > m_fillPedestalDifference
std::vector< std::vector< int > > m_pedGroups
SG::ReadHandleKey< TileDigitsContainer > m_digitsContainerKey
ToolHandle< TileCondToolNoiseSample > m_tileCondToolNoiseSample
Gaudi::Property< bool > m_fillErrorsHistograms
Gaudi::Property< bool > m_fillEventModule32Histograms
std::vector< std::vector< int > > m_evtMod32Groups
TileCalibMonitorAlgorithm(const std::string &name, ISvcLocator *svcLocator)
Gaudi::Property< bool > m_fillCorrelationsHistograms
std::vector< std::vector< int > > m_hfnGroups
std::vector< std::vector< std::vector< int > > > m_errorsGroups
std::vector< std::vector< std::vector< int > > > m_bcidErrGroups
void initialize()