ATLAS Offline Software
Loading...
Searching...
No Matches
TileCellMonitorAlgorithm.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_TILECELLMONITORALGORITHM_H
6#define TILEMONITORING_TILECELLMONITORALGORITHM_H
7
12
14
16
19
20class TileID;
21class TileHWID;
23
24
28
30
31 public:
32
34 virtual ~TileCellMonitorAlgorithm() = default;
35 virtual StatusCode initialize() override;
36 virtual StatusCode fillHistograms(const EventContext& ctx) const override;
37
38 private:
39
40 int getDigitizer(int channel) const;
41 void fillMaskedInDB(const TileBadChannels* badChannels) const;
42 void fillSynchronization(const std::vector<const CaloCell*>& cells, const std::vector<int>& l1TriggersIndices) const;
43
44 Gaudi::Property<float> m_energyThreshold{this,
45 "EnergyThreshold", 300.0F, "Energy threshold in MeV"};
46
47 Gaudi::Property<float> m_negativeEnergyThreshold{this,
48 "NegativeEnergyThreshold", -2000.0F, "Negative energy threshold in MeV"};
49
50 Gaudi::Property<float> m_energyThresholdForTime{this,
51 "EnergyThresholdForTime", 500.0F, "Energy threshold for timing in MeV"};
52
53 Gaudi::Property<float> m_energyLimitForTime{this,
54 "EnergyLimitForTime", 1000000.0F, "Energy limit for timing in MeV"};
55
56 Gaudi::Property<float> m_energyBalanceThreshold{this,
57 "EnergyBalanceThreshold", 3.0F, "Energy ratio threshold"};
58
59 Gaudi::Property<float> m_timeBalanceThreshold{this,
60 "TimeBalanceThreshold", 25.0F, "Time threshold in ns"};
61
62 Gaudi::Property<float> m_energyThresholdForGapScint{this,
63 "EnergyThresholdForGapScintilator", 0.0F, "Energy threshold for Gap Scintilator (E1-E4) in MeV"};
64
65 Gaudi::Property<bool> m_fillTimeHistograms{this,
66 "fillTimeHistograms", false, "Force filling timing histograms"};
67
68 Gaudi::Property<bool> m_fillChannelTimeHistograms{this,
69 "fillChannelTimeHistograms", true, "Fill histograms with channel time per sample"};
70
71 Gaudi::Property<bool> m_fillGapScintHistograms{this,
72 "fillGapScintilatorHistograms", false, "Fill histograms for indvidual Gap scintilators (E1-E4 cells)"};
73
74 Gaudi::Property<bool> m_fillTimeAndEnergyDiffHistograms{this, "fillTimeAndEnergyDiffHistograms", true,
75 "Fill histograms with time and energy difference between two PMTs of the same Cell"};
76
77 Gaudi::Property<std::vector<float>> m_energyRangeForMuon{this,
78 "EnergyRangeForMuon", {300.0F, 2000.F}, "Cell energy range for muon in MeV"};
79
80 Gaudi::Property<std::vector<float>> m_timeRangeForMuon{this,
81 "TimeRangeForMuon", {-60.0F, 60.F}, "Cell time range for muon in ns"};
82
83 Gaudi::Property<std::vector<float>> m_energyThresholdForGain{this,
84 "EnergyThresholdForGain", {10000.0F, 300.F}, "Channel energy threshold per gain for over thershold occupnacy maps"};
85
90 "TileCablingSvc", "TileCablingSvc", "Tile cabling service"};
91
93 "TileDQstatus", "TileDQstatus", "Tile DQ status name"};
94
99 "TileBadChannels", "TileBadChannels", "Input Tile bad channel status"};
100
102 "CaloCellContainer", "AllCalo", "Calo cell container name"};
103
104 const TileID* m_tileID{nullptr};
105 const TileHWID* m_tileHWID{nullptr};
107
108 std::vector<int> m_energyBalModPartGroups;
109 std::vector<int> m_timeBalModPartGroups;
110 std::vector<int> m_cellSynchGroups;
111 std::vector<int> m_maskedOnFlyGroups;
112 std::vector<int> m_maskedDueDQGroups;
113 std::vector<int> m_maskedCellsDueDQGroups;
114 std::vector<int> m_maskedOnFlyLBGroups;
115 std::vector<int> m_maskedCellsLBGroups;
116 std::vector<std::vector<int>> m_maskedGroups;
117
118 std::vector<std::vector<int>> m_energySampEGroups;
119 std::vector<std::vector<int>> m_moduleCorrGroups;
120 std::vector<std::vector<int>> m_chanTimeGroups;
121 std::vector<std::vector<int>> m_digiTimeGroups;
122 std::vector<std::vector<int>> m_nCellsGroups;
123 std::vector<std::vector<int>> m_nCellsOverThrGroups;
124 std::vector<std::vector<int>> m_detailOccupGroups;
125 std::vector<std::vector<int>> m_overThrOccupGroups;
126 std::vector<std::vector<int>> m_overThr30GeVOccupGroups;
127 std::vector<std::vector<int>> m_overThr300GeVOccupGroups;
128 std::vector<std::vector<int>> m_eneDiffChanModGroups;
129 std::vector<std::vector<std::vector<int>>> m_overThrOccupGainGroups;
130 std::vector<std::vector<std::vector<int>>> m_detailOccupGainGroups;
131 std::vector<std::vector<std::vector<int>>> m_energyGapScintGroups;
132
133 std::vector<std::vector<std::vector<int>>> m_chanTimeSampGroups;
134 std::vector<std::vector<std::vector<int>>> m_eneDiffSampGroups;
135 std::vector<std::vector<std::vector<int>>> m_timeDiffSampGroups;
136
137 std::vector<std::vector<int>> m_eneEtaPhiGroups;
138 std::vector<std::vector<int>> m_overThrEtaPhiGroups;
139
140 std::vector<int> m_negOccupGroups;
141 std::vector<int> m_timeBalGroups;
142 std::vector<int> m_energyBalGroups;
143
144};
145
146
147#endif // TILEMONITORING_TILECELLMONITORALGORITHM_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).
Property holding a SG store/key/clid from which a ReadHandle is made.
Condition object to keep Tile channel and ADC status.
SG::ReadCondHandleKey< TileBadChannels > m_badChannelsKey
Name of TileBadChannels in condition store.
std::vector< std::vector< int > > m_moduleCorrGroups
Gaudi::Property< bool > m_fillChannelTimeHistograms
std::vector< std::vector< int > > m_overThr30GeVOccupGroups
void fillMaskedInDB(const TileBadChannels *badChannels) const
SG::ReadHandleKey< CaloCellContainer > m_caloCellContainerKey
std::vector< std::vector< int > > m_detailOccupGroups
std::vector< std::vector< std::vector< int > > > m_energyGapScintGroups
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
std::vector< std::vector< std::vector< int > > > m_overThrOccupGainGroups
Gaudi::Property< float > m_energyThreshold
Gaudi::Property< std::vector< float > > m_energyRangeForMuon
Gaudi::Property< float > m_energyLimitForTime
Gaudi::Property< std::vector< float > > m_timeRangeForMuon
std::vector< std::vector< std::vector< int > > > m_eneDiffSampGroups
std::vector< int > m_timeBalModPartGroups
virtual ~TileCellMonitorAlgorithm()=default
std::vector< std::vector< std::vector< int > > > m_chanTimeSampGroups
std::vector< std::vector< int > > m_nCellsOverThrGroups
SG::ReadHandleKey< TileDQstatus > m_DQstatusKey
const TileCablingService * m_cabling
Gaudi::Property< float > m_timeBalanceThreshold
std::vector< std::vector< int > > m_nCellsGroups
std::vector< std::vector< std::vector< int > > > m_detailOccupGainGroups
Gaudi::Property< float > m_energyThresholdForTime
std::vector< std::vector< int > > m_overThrOccupGroups
Gaudi::Property< float > m_negativeEnergyThreshold
Gaudi::Property< bool > m_fillTimeHistograms
std::vector< std::vector< int > > m_overThrEtaPhiGroups
std::vector< std::vector< int > > m_chanTimeGroups
std::vector< std::vector< int > > m_eneEtaPhiGroups
Gaudi::Property< float > m_energyThresholdForGapScint
std::vector< std::vector< int > > m_eneDiffChanModGroups
Gaudi::Property< std::vector< float > > m_energyThresholdForGain
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
std::vector< int > m_maskedCellsDueDQGroups
TileMonitorAlgorithm(const std::string &name, ISvcLocator *svcLocator)
std::vector< int > m_energyBalModPartGroups
std::vector< std::vector< int > > m_digiTimeGroups
Gaudi::Property< float > m_energyBalanceThreshold
Gaudi::Property< bool > m_fillTimeAndEnergyDiffHistograms
std::vector< std::vector< int > > m_maskedGroups
void fillSynchronization(const std::vector< const CaloCell * > &cells, const std::vector< int > &l1TriggersIndices) const
std::vector< std::vector< int > > m_overThr300GeVOccupGroups
std::vector< std::vector< std::vector< int > > > m_timeDiffSampGroups
std::vector< std::vector< int > > m_energySampEGroups
Gaudi::Property< bool > m_fillGapScintHistograms
Helper class for TileCal online (hardware) identifiers.
Definition TileHWID.h:49
Helper class for TileCal offline identifiers.
Definition TileID.h:67
TileMonitorAlgorithm(const std::string &name, ISvcLocator *svcLocator)
void initialize()