ATLAS Offline Software
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 
11 #include "TileMonitorAlgorithm.h"
12 
14 
16 
19 
20 class TileID;
21 class TileHWID;
22 class TileCablingService;
23 
24 
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};
106  const TileCablingService* m_cabling{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
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
TileCellMonitorAlgorithm::m_overThrOccupGainGroups
std::vector< std::vector< std::vector< int > > > m_overThrOccupGainGroups
Definition: TileCellMonitorAlgorithm.h:129
TileCellMonitorAlgorithm::m_cellSynchGroups
std::vector< int > m_cellSynchGroups
Definition: TileCellMonitorAlgorithm.h:110
TileCellMonitorAlgorithm::m_energyRangeForMuon
Gaudi::Property< std::vector< float > > m_energyRangeForMuon
Definition: TileCellMonitorAlgorithm.h:77
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:271
TileCablingSvc.h
TileCellMonitorAlgorithm::m_timeBalanceThreshold
Gaudi::Property< float > m_timeBalanceThreshold
Definition: TileCellMonitorAlgorithm.h:59
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
TileCellMonitorAlgorithm::m_detailOccupGroups
std::vector< std::vector< int > > m_detailOccupGroups
Definition: TileCellMonitorAlgorithm.h:124
TileCellMonitorAlgorithm::m_badChannelsKey
SG::ReadCondHandleKey< TileBadChannels > m_badChannelsKey
Name of TileBadChannels in condition store.
Definition: TileCellMonitorAlgorithm.h:98
TileCellMonitorAlgorithm::getDigitizer
int getDigitizer(int channel) const
Definition: TileCellMonitorAlgorithm.cxx:1049
TileCellMonitorAlgorithm::m_energyThresholdForGapScint
Gaudi::Property< float > m_energyThresholdForGapScint
Definition: TileCellMonitorAlgorithm.h:62
TileCellMonitorAlgorithm::m_fillTimeHistograms
Gaudi::Property< bool > m_fillTimeHistograms
Definition: TileCellMonitorAlgorithm.h:65
TileCellMonitorAlgorithm::m_chanTimeGroups
std::vector< std::vector< int > > m_chanTimeGroups
Definition: TileCellMonitorAlgorithm.h:120
TileCellMonitorAlgorithm::m_digiTimeGroups
std::vector< std::vector< int > > m_digiTimeGroups
Definition: TileCellMonitorAlgorithm.h:121
TileCellMonitorAlgorithm::m_energyLimitForTime
Gaudi::Property< float > m_energyLimitForTime
Definition: TileCellMonitorAlgorithm.h:53
TileCellMonitorAlgorithm::m_nCellsGroups
std::vector< std::vector< int > > m_nCellsGroups
Definition: TileCellMonitorAlgorithm.h:122
TileCellMonitorAlgorithm::m_maskedCellsLBGroups
std::vector< int > m_maskedCellsLBGroups
Definition: TileCellMonitorAlgorithm.h:115
SG::ReadHandleKey< TileDQstatus >
TileCellMonitorAlgorithm::m_negativeEnergyThreshold
Gaudi::Property< float > m_negativeEnergyThreshold
Definition: TileCellMonitorAlgorithm.h:47
TileCellMonitorAlgorithm::m_maskedOnFlyGroups
std::vector< int > m_maskedOnFlyGroups
Definition: TileCellMonitorAlgorithm.h:111
TileCellMonitorAlgorithm::m_maskedGroups
std::vector< std::vector< int > > m_maskedGroups
Definition: TileCellMonitorAlgorithm.h:116
TileCellMonitorAlgorithm::fillSynchronization
void fillSynchronization(const std::vector< const CaloCell * > &cells, const std::vector< int > &l1TriggersIndices) const
Definition: TileCellMonitorAlgorithm.cxx:1014
TileCellMonitorAlgorithm::m_overThrEtaPhiGroups
std::vector< std::vector< int > > m_overThrEtaPhiGroups
Definition: TileCellMonitorAlgorithm.h:138
TileCellMonitorAlgorithm::m_fillTimeAndEnergyDiffHistograms
Gaudi::Property< bool > m_fillTimeAndEnergyDiffHistograms
Definition: TileCellMonitorAlgorithm.h:74
TileHWID
Helper class for TileCal online (hardware) identifiers.
Definition: TileHWID.h:49
TileMonitorAlgorithm::TileMonitorAlgorithm
TileMonitorAlgorithm(const std::string &name, ISvcLocator *svcLocator)
Definition: TileMonitorAlgorithm.h:21
TileCellMonitorAlgorithm::m_timeRangeForMuon
Gaudi::Property< std::vector< float > > m_timeRangeForMuon
Definition: TileCellMonitorAlgorithm.h:80
TileCellMonitorAlgorithm::fillMaskedInDB
void fillMaskedInDB(const TileBadChannels *badChannels) const
Definition: TileCellMonitorAlgorithm.cxx:974
TileCellMonitorAlgorithm::m_energyBalanceThreshold
Gaudi::Property< float > m_energyBalanceThreshold
Definition: TileCellMonitorAlgorithm.h:56
TileCellMonitorAlgorithm::m_energyThreshold
Gaudi::Property< float > m_energyThreshold
Definition: TileCellMonitorAlgorithm.h:44
TileCellMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: TileCellMonitorAlgorithm.cxx:122
TileCellMonitorAlgorithm::m_timeDiffSampGroups
std::vector< std::vector< std::vector< int > > > m_timeDiffSampGroups
Definition: TileCellMonitorAlgorithm.h:135
TileCellMonitorAlgorithm::m_overThr30GeVOccupGroups
std::vector< std::vector< int > > m_overThr30GeVOccupGroups
Definition: TileCellMonitorAlgorithm.h:126
TileID
Helper class for TileCal offline identifiers.
Definition: TileID.h:68
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TileCellMonitorAlgorithm::m_maskedCellsDueDQGroups
std::vector< int > m_maskedCellsDueDQGroups
Definition: TileCellMonitorAlgorithm.h:113
TileCellMonitorAlgorithm::m_overThr300GeVOccupGroups
std::vector< std::vector< int > > m_overThr300GeVOccupGroups
Definition: TileCellMonitorAlgorithm.h:127
TileCellMonitorAlgorithm::m_caloCellContainerKey
SG::ReadHandleKey< CaloCellContainer > m_caloCellContainerKey
Definition: TileCellMonitorAlgorithm.h:101
TileCellMonitorAlgorithm::m_timeBalGroups
std::vector< int > m_timeBalGroups
Definition: TileCellMonitorAlgorithm.h:141
TileCellMonitorAlgorithm::m_nCellsOverThrGroups
std::vector< std::vector< int > > m_nCellsOverThrGroups
Definition: TileCellMonitorAlgorithm.h:123
TileCablingService
Definition: TileCablingService.h:23
TileDQstatus.h
Information produced by TileDQstatusAlg (used to be done by TileBeamInfoProvider).
TileCellMonitorAlgorithm::m_energyBalModPartGroups
std::vector< int > m_energyBalModPartGroups
Definition: TileCellMonitorAlgorithm.h:108
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
TileCellMonitorAlgorithm::m_energyThresholdForGain
Gaudi::Property< std::vector< float > > m_energyThresholdForGain
Definition: TileCellMonitorAlgorithm.h:83
ReadCondHandleKey.h
TileCellMonitorAlgorithm
Definition: TileCellMonitorAlgorithm.py:1
TileMonitorAlgorithm.h
TileCellMonitorAlgorithm::m_energySampEGroups
std::vector< std::vector< int > > m_energySampEGroups
Definition: TileCellMonitorAlgorithm.h:118
TileBadChannels
Condition object to keep Tile channel and ADC status.
Definition: TileBadChannels.h:24
CaloCellContainer.h
TileCellMonitorAlgorithm::m_detailOccupGainGroups
std::vector< std::vector< std::vector< int > > > m_detailOccupGainGroups
Definition: TileCellMonitorAlgorithm.h:130
TileCellMonitorAlgorithm::m_eneDiffSampGroups
std::vector< std::vector< std::vector< int > > > m_eneDiffSampGroups
Definition: TileCellMonitorAlgorithm.h:134
SG::ReadCondHandleKey< TileBadChannels >
TileCellMonitorAlgorithm::m_eneDiffChanModGroups
std::vector< std::vector< int > > m_eneDiffChanModGroups
Definition: TileCellMonitorAlgorithm.h:128
TileCellMonitorAlgorithm::m_maskedOnFlyLBGroups
std::vector< int > m_maskedOnFlyLBGroups
Definition: TileCellMonitorAlgorithm.h:114
TileCellMonitorAlgorithm::~TileCellMonitorAlgorithm
virtual ~TileCellMonitorAlgorithm()=default
TileCellMonitorAlgorithm::m_tileHWID
const TileHWID * m_tileHWID
Definition: TileCellMonitorAlgorithm.h:105
TileCellMonitorAlgorithm::m_moduleCorrGroups
std::vector< std::vector< int > > m_moduleCorrGroups
Definition: TileCellMonitorAlgorithm.h:119
TileCellMonitorAlgorithm::m_energyThresholdForTime
Gaudi::Property< float > m_energyThresholdForTime
Definition: TileCellMonitorAlgorithm.h:50
TileCellMonitorAlgorithm::m_fillChannelTimeHistograms
Gaudi::Property< bool > m_fillChannelTimeHistograms
Definition: TileCellMonitorAlgorithm.h:68
TileCellMonitorAlgorithm::m_maskedDueDQGroups
std::vector< int > m_maskedDueDQGroups
Definition: TileCellMonitorAlgorithm.h:112
TileCellMonitorAlgorithm::m_negOccupGroups
std::vector< int > m_negOccupGroups
Definition: TileCellMonitorAlgorithm.h:140
TileCellMonitorAlgorithm::m_chanTimeSampGroups
std::vector< std::vector< std::vector< int > > > m_chanTimeSampGroups
Definition: TileCellMonitorAlgorithm.h:133
TileCellMonitorAlgorithm::m_eneEtaPhiGroups
std::vector< std::vector< int > > m_eneEtaPhiGroups
Definition: TileCellMonitorAlgorithm.h:137
TileBadChannels.h
TileCellMonitorAlgorithm::m_cabling
const TileCablingService * m_cabling
Definition: TileCellMonitorAlgorithm.h:106
TileCellMonitorAlgorithm::m_energyBalGroups
std::vector< int > m_energyBalGroups
Definition: TileCellMonitorAlgorithm.h:142
TileCellMonitorAlgorithm::m_overThrOccupGroups
std::vector< std::vector< int > > m_overThrOccupGroups
Definition: TileCellMonitorAlgorithm.h:125
TileCellMonitorAlgorithm::m_tileID
const TileID * m_tileID
Definition: TileCellMonitorAlgorithm.h:104
TileCellMonitorAlgorithm::m_cablingSvc
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
Definition: TileCellMonitorAlgorithm.h:89
TileCellMonitorAlgorithm::m_fillGapScintHistograms
Gaudi::Property< bool > m_fillGapScintHistograms
Definition: TileCellMonitorAlgorithm.h:71
TileCellMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: TileCellMonitorAlgorithm.cxx:20
TileCellMonitorAlgorithm::m_timeBalModPartGroups
std::vector< int > m_timeBalModPartGroups
Definition: TileCellMonitorAlgorithm.h:109
TileCellMonitorAlgorithm::m_DQstatusKey
SG::ReadHandleKey< TileDQstatus > m_DQstatusKey
Definition: TileCellMonitorAlgorithm.h:92
ServiceHandle< TileCablingSvc >
TileCellMonitorAlgorithm::m_energyGapScintGroups
std::vector< std::vector< std::vector< int > > > m_energyGapScintGroups
Definition: TileCellMonitorAlgorithm.h:131
TileMonitorAlgorithm
Base class for Tile monitoring per L1 trigger type.
Definition: TileMonitorAlgorithm.h:17