ATLAS Offline Software
LArCellMonTool.h
Go to the documentation of this file.
1 //Dear emacs, this is -*-c++-*-
2 
3 /*
4  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 
8 //W.Lampl - Spring 2017: Major re-design
9 
10 #ifndef CALOMONITORING_LARCELLMONTOOL_H
11 #define CALOMONITORING_LARCELLMONTOOL_H
12 
13 #include "CaloMonToolBase.h"
14 #include "GaudiKernel/ToolHandle.h"
15 
19 
22 
26 
28 
29 #include "LArCellBinning.h"
30 
31 #include <vector>
32 #include <string>
33 #include <bitset>
34 #include <array>
35 #include <map>
36 #include <unordered_map>
37 
38 namespace Trig {
39  class ChainGroup;
40 }
41 
42 class CaloCell;
43 class TileID;
44 class CaloCell_ID;
45 
46 class TH1F;
47 class TH1D;
48 class TH2F;
49 class TProfile;
50 
51 
53 
54  public:
55 
56  LArCellMonTool(const std::string & type, const std::string& name,
57  const IInterface* parent);
58  virtual ~LArCellMonTool();
59 
60  //Methods implementing the ManagedMonitorToolBase interface
61  virtual StatusCode initialize() override;
62  virtual StatusCode finalize() override;
63  virtual StatusCode bookHistograms() override;
64  virtual StatusCode procHistograms() override;
65  virtual StatusCode fillHistograms() override;
66 
67 private:
68 
69  //enums to help with the conversion of Layer, partitions and such:
70 
71  //Enumerate layers
76 
77  //Enumerate layer-types, ignoring sides. Useful for configuration that is per-definition symmetric
80 
81  //Enumerate partitions
83 
84 
85  //Mapping of layer-enum to their string-names (for histogram titles, etc)
86  const std::array<std::string,MAXLAYER> m_layerNames={{"EMBPA", "EMBPC", "EMB1A", "EMB1C", "EMB2A", "EMB2C", "EMB3A", "EMB3C",
87  "HEC0A", "HEC0C", "HEC1A", "HEC1C", "HEC2A", "HEC2C", "HEC3A", "HEC3C",
88  "EMECPA", "EMECPC", "EMEC1A", "EMEC1C", "EMEC2A", "EMEC2C", "EMEC3A", "EMEC3C",
89  "FCAL1A", "FCAL1C", "FCAL2A", "FCAL2C", "FCAL3A", "FCAL3C"}};
90 
91  //Mapping of layer-no-side enum to their string-names (for histogram titles, etc)
92  const std::array<std::string,MAXLYRNS> m_lyrNSNames={{"EMBPS","EMB1" ,"EMB2" ,"EMB3" ,"HEC0" ,"HEC1" ,"HEC2","HEC3",
93  "EMECP","EMEC1","EMEC2","EMEC3","FCAL1","FCAL2","FCAL3"}};
94  //Mapping of partition-enum to their string-name
95  const std::array<std::string,MAXPARTITIONS> m_partitionNames{{"EMBA","EMBC","EMECA","EMECC","HECA","HECC","FCALA","FCALC"}};
96 
97  //Mapping of CaloCell nomencature to CaloCellMonitoring nomencature
98  const std::map<unsigned,LayerEnumNoSides> m_caloSamplingToLyrNS{
103  };
104 
105  //Mapping of layers to the partition the layer belongs to
106  const std::array<PartitionEnum,MAXLAYER> m_layerEnumtoPartitionEnum{{
107  //EMBPA EMBPC, EMB1A, EMB1C, EMB2A, EMB2C, EMB3A, EMB3C,
108  EMBA, EMBC, EMBA, EMBC, EMBA, EMBC, EMBA, EMBC,
109  //HEC0A, HEC0C, HEC1A, HEC1C, HEC2A, HEC2C, HEC3A, HEC3C,
110  HECA, HECC, HECA, HECC, HECA, HECC, HECA, HECC,
111  //EMECPA, EMECPC,EMEC1A,EMEC1C,EMEC2A,EMEC2C,EMEC3A,EMEC3C,
113  //FCAL1A,FCAL1C,FCAL2A,FCAL2C, FCAL3A,FCAL3C,MAXLAYER
115  }};
116 
117  //Enumerations of possible threshold directions and trigger types:
120 
121 
122  //Histogram path in root file:
123  const std::string m_lArPath{"/CaloMonitoring/LArCellMon_NoTrigSel_OldTool/"};
124 
125  // Thresholds for time and Time vs Energy plots:
126  // Energy thresholds hardcoded following official timing analysis. See for example:
127  // https://indico.cern.ch/event/522351/
128  const std::array<float ,MAXLYRNS> m_eCutForTiming {
129  //EMBPNS=0, EMB1NS, EMB2NS, EMB3NS, HEC0NS, HEC1NS, HEC2NS, HEC3NS,EMECPNS,EMEC1NS,EMEC2NS,EMEC3NS,FCAL1NS,FCAL2NS,FCAL3NS
130  {1000., 1000., 3000., 1500., 3500., 3500., 3500., 3500., 1500., 3000., 3000., 2000., 10000., 10000., 10000.}
131  };
132 
133 
134  //Private methods: Initialization and job-option interpretation
136  void setLArCellBinning();
137  void resetInternals();
138 
139  //Private methods: Histogramm booking
143  static TH2F* newEtaPhiHist(const std::string& hName, const std::string& hTitle, const CaloMonitoring::LArCellBinning& binning) ;
144  static std::string strToLower(const std::string& input) ;
145  void regTempHist(TH1* h, MonGroup& mg) const;
146 
147  //Private methods: Histogram filling
148  StatusCode createPerJobHistograms(const EventContext& ctx,
149  const CaloCellContainer* cellcont);
152 
153  //Helpers for histogram filling
154  void getHistoCoordinates(const CaloDetDescrElement* dde, float& celleta, float& cellphi, unsigned& iLyr, unsigned& iLyrNS) const;
155  static void divideByOccupancy(TH2F* fraction, const TH2F* total, const TH2* occupancy) ;
156 
157 
158  //Job Properties and other private variables
160  SG::ReadHandleKey<CaloCellContainer> m_cellContainerName { this, "CaloCellContainer", "AllCalo", "SG key of the input cell container" };
161 
163  { this, "NoiseKey", "totalNoise", "SG key for noise" };
164 
166  , "CaloDetDescrManager"
167  , "CaloDetDescrManager"
168  , "SG Key for CaloDetDescrManager in the Condition Store" };
169 
170  // Trigger Awareness:
172  ToolHandle<Trig::TrigDecisionTool> m_trigDec;
173  std::array<std::string,NOTA> m_triggerNames;
174  std::array<const Trig::ChainGroup*, NOTA> m_chainGroups{{}};
175 
176  // bad channel mask
178  Gaudi::Property<std::vector<std::string> > m_problemsToMask{this,"ProblemsToMask",{}, "Bad-Channel categories to mask"};
179 
182 
190 
191  //threshold for sporadic plots
198 
199  // Variables to configure LAr threshold plots:
200  // Used to pass variable sized array through JO
201  StringArrayProperty m_thresholdNameProp;
202  StringArrayProperty m_thresholdDirectionProp;
203  StringArrayProperty m_triggersToIncludeProp;
204  StringArrayProperty m_triggersToExcludeProp;
205  StringArrayProperty m_thresholdTitleTemplates;
206  FloatArrayProperty m_defaultThresholds;
207  BooleanArrayProperty m_inSigNoise;
208  BooleanArrayProperty m_doPercentageOccupancyProp;
209  BooleanArrayProperty m_doEtaPhiOccupancyProp;
210  BooleanArrayProperty m_doEtaOccupancyProp;
211  BooleanArrayProperty m_doPhiOccupancyProp;
212  BooleanArrayProperty m_doEtaPhiTotalEnergyProp;
213  BooleanArrayProperty m_doEtaPhiAverageEnergyProp;
214  BooleanArrayProperty m_doEtaPhiAverageQualityProp;
215  BooleanArrayProperty m_doEtaPhiFractionOverQthProp;
216  FloatArrayProperty m_qualityFactorThresholdProp;
217  BooleanArrayProperty m_doEtaPhiAverageTimeProp;
218  BooleanArrayProperty m_doEtaPhiFractionPastTthProp;
219  FloatArrayProperty m_timeThresholdProp;
220  BooleanArrayProperty m_doBeamBackgroundRemovalProp;
221 
222  StringArrayProperty m_thresholdColumnType;
223  FloatArrayProperty m_thresholdsProp[MAXLYRNS];
224 
225  //The threshold-related variables and histograms are grouped in the following struct
226  //one instance per threshold-type
228  //Configuration variables
229  std::string m_threshName;
230  std::string m_threshTitleTemplate;
231  std::array<float,MAXLYRNS> m_threshValue{{}};
232  std::array<std::string,MAXLYRNS> m_threshTitles;
233  bool m_inSigNoise=false;
237  float m_timeThreshold=4.;
238 
239  //Variables related to trigger-filtering
240  std::bitset<MAXTRIGTYPE> m_triggersToInclude;
241  std::bitset<MAXTRIGTYPE> m_triggersToExclude;
243 
244  //Switch histograms on/off
247  bool m_doEtaOccupancy=false;
248  bool m_doPhiOccupancy=false;
249 
252 
255 
258 
259  //Histogram pointers, per layer
260  std::array<TH2F*,MAXLAYER> m_h_occupancy_etaphi{{}}; //Filled from m_occupancyCounter
261  std::array<TH1F*,MAXLAYER> m_h_occupancy_eta{{}}; //Filled from m_occupancyCounter
262  std::array<TH1F*,MAXLAYER> m_h_occupancy_phi{{}}; //Filled from m_occupancyCounter
263 
264  std::array<TH2F*,MAXLAYER> m_h_totalEnergy_etaphi{{}}; //Filled directly
265  std::array<TH2F*,MAXLAYER> m_h_averageEnergy_etaphi{{}}; //derived
266 
267  std::array<TH2F*,MAXLAYER> m_h_poorQualityOccupancy_etaphi{{}}; //Filled directly
268  std::array<TH2F*,MAXLAYER> m_h_totalQuality_etaphi{{}}; //Filled directly
269  std::array<TH2F*,MAXLAYER> m_h_fractionOverQth_etaphi{{}}; //derived
270  std::array<TH2F*,MAXLAYER> m_h_averageQuality_etaphi{{}};//derived
271 
272  std::array<TH2F*,MAXLAYER> m_h_poorTimeOccupancy_etaphi{{}}; //Filled directly
273  std::array<TH2F*,MAXLAYER> m_h_totalTime_etaphi{{}}; //Filled directly
274  std::array<TH2F*,MAXLAYER> m_h_fractionPastTth_etaphi{{}}; //derived
275  std::array<TH2F*,MAXLAYER> m_h_averageTime_etaphi{{}}; //derived
276 
277  //Occupancy-counter
278  std::array<unsigned,185000> m_occupancyCounter{}; //Hardwired max not ideal but more efficient
279 
280  //Counter (for normalization)
281  unsigned m_eventsPassed=0;
282  };
283 
284  std::vector<thresholdHist_t> m_thresholdHists;
285 
287  , const CaloDetDescrManager* detDescMgr);
288 
289  // Identifer helpers and such
290 
293 
294  SG::ReadCondHandleKey<LArOnOffIdMapping> m_cablingKey{this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"};
295  SG::ReadCondHandleKey<LArBadChannelCont> m_BCKey {this, "BadChanKey", "LArBadChannel", "SG key for LArBadChan object"};
296 
297  std::array<CaloMonitoring::LArCellBinning,MAXLAYER> m_binning;
298 
299  //Sporadic monitoring related variables and structs
300  std::string m_sporadicDir;
302 
304  TH1F* m_h_energy=nullptr;
305  TH1F* m_h_quality=nullptr;
307  unsigned m_counter=0;
308  //Note wrt AthenaMP: Counting noisy event is obviously flawed, even for
309  //serial processing as events are scattered over many files
310  };
311 
312  struct idHasher {
313  std::size_t operator()(const Identifier& id) const {
314  return std::hash<Identifier::value_type>{}(id.get_compact());
315  }
316  };
317 
318  std::unordered_map<Identifier,SporadicNoiseCell_t,idHasher> m_sporadicNoiseCells;
319 
321 
322  std::array<TH1F*,MAXPARTITIONS> m_h_sporadicHists;
323  std::array<unsigned,MAXPARTITIONS> m_sporadicPerPartCounter{};
324 
325 
326  // summary plot
328 
329  // energy and time distribution for cell neither badcell nor noconditions
330  std::array<TH1F*,MAXLAYER> m_h_energy{{}}; // define when m_doUnnormalized1DEnergy==1
331  std::array<TH2F*,MAXLAYER> m_h_energyVsTime{{}};
332  std::array<TH1F*,MAXLAYER> m_h_cellTime{{}};
333  std::array<TH1F*,MAXLAYER> m_h_energyVsTime_DifferThresholds{{}};
334 
335 
336  // Reference Type Histograms (Filled solely with database information)
337  std::array<TH2F*,MAXLAYER> m_h_badChannels_etaphi{{}};
338  std::array<TH2F*,MAXLAYER> m_h_dbnoise_etaphi{{}};
339 
340  // temporary plots used for m_percentOccupancy_eta(phi)
341  std::array<TH1F*,MAXLAYER> m_h_nActiveCellsFirstEvent_eta{{}};
342  std::array<TH1F*,MAXLAYER> m_h_nActiveCellsFirstEvent_phi{{}};
343 
344 };
345 
346 #endif
347 
348 //Histograms dropped during the redesign in spring 2017:
349 // * All inverse-masking
350 // * Cell Occupancy Eta/Phi Vs LumiBlock
351 // * DBNoiseNormalizedEnergy per layer
352 // * doEtaPhiEnergyRMS per layer and threshold
353 // * DoEtaPhiRMSvsDBnoise per layer and threshold
354 
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
LArCellMonTool::m_layerEnumtoPartitionEnum
const std::array< PartitionEnum, MAXLAYER > m_layerEnumtoPartitionEnum
Definition: LArCellMonTool.h:106
LArCellMonTool::m_thresholdDirectionProp
StringArrayProperty m_thresholdDirectionProp
Definition: LArCellMonTool.h:202
LArCellMonTool::EMBPNS
@ EMBPNS
Definition: LArCellMonTool.h:78
LArCellMonTool::m_oncePerJobHistosDone
bool m_oncePerJobHistosDone
Definition: LArCellMonTool.h:159
LArCellMonTool::FCALC
@ FCALC
Definition: LArCellMonTool.h:82
LArCellMonTool::fillOccupancyHist
StatusCode fillOccupancyHist(LArCellMonTool::thresholdHist_t &thr, const CaloDetDescrManager *detDescMgr)
Definition: LArCellMonTool.cxx:1267
LArCellMonTool::EMBPC
@ EMBPC
Definition: LArCellMonTool.h:72
LArCellMonTool::EMB1NS
@ EMB1NS
Definition: LArCellMonTool.h:78
LArCellMonTool::FCAL3C
@ FCAL3C
Definition: LArCellMonTool.h:75
LArCellMonTool::m_h_nActiveCellsFirstEvent_eta
std::array< TH1F *, MAXLAYER > m_h_nActiveCellsFirstEvent_eta
Definition: LArCellMonTool.h:341
LArCellMonTool::thresholdHist_t::m_timeThreshold
float m_timeThreshold
Definition: LArCellMonTool.h:237
LArCellMonTool::m_doEtaPhiAverageQualityProp
BooleanArrayProperty m_doEtaPhiAverageQualityProp
Definition: LArCellMonTool.h:214
LArCellMonTool::MISC
@ MISC
Definition: LArCellMonTool.h:119
LArCellMonTool::thresholdHist_t::m_h_fractionPastTth_etaphi
std::array< TH2F *, MAXLAYER > m_h_fractionPastTth_etaphi
Definition: LArCellMonTool.h:274
LArCellMonTool::thresholdHist_t::m_h_averageTime_etaphi
std::array< TH2F *, MAXLAYER > m_h_averageTime_etaphi
Definition: LArCellMonTool.h:275
LArCellMonTool::HEC0A
@ HEC0A
Definition: LArCellMonTool.h:73
LArCellMonTool::m_doBeamBackgroundRemovalProp
BooleanArrayProperty m_doBeamBackgroundRemovalProp
Definition: LArCellMonTool.h:220
AddEmptyComponent.binning
binning
Definition: AddEmptyComponent.py:34
get_generator_info.result
result
Definition: get_generator_info.py:21
constants.EMB1
int EMB1
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:53
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
LArCellMonTool::m_doEtaOccupancyProp
BooleanArrayProperty m_doEtaOccupancyProp
Definition: LArCellMonTool.h:210
LArCellMonTool::Direction
Direction
Definition: LArCellMonTool.h:118
LArCellMonTool
Definition: LArCellMonTool.h:52
LArCellMonTool::thresholdHist_t::m_doEtaPhiOccupancy
bool m_doEtaPhiOccupancy
Definition: LArCellMonTool.h:246
LArCellMonTool::CALO
@ CALO
Definition: LArCellMonTool.h:119
LArCellMonTool::m_threshold_em_S0S1
float m_threshold_em_S0S1
Definition: LArCellMonTool.h:193
LArCellMonTool::MINBIAS
@ MINBIAS
Definition: LArCellMonTool.h:119
LArCellMonTool::m_triggerNames
std::array< std::string, NOTA > m_triggerNames
Definition: LArCellMonTool.h:173
LArCellMonTool::m_thresholdTitleTemplates
StringArrayProperty m_thresholdTitleTemplates
Definition: LArCellMonTool.h:205
LArCellMonTool::m_trigDec
ToolHandle< Trig::TrigDecisionTool > m_trigDec
TDT handle.
Definition: LArCellMonTool.h:172
LArCellMonTool::thresholdHist_t::m_h_averageEnergy_etaphi
std::array< TH2F *, MAXLAYER > m_h_averageEnergy_etaphi
Definition: LArCellMonTool.h:265
LArCellMonTool::thresholdHist_t::m_h_totalEnergy_etaphi
std::array< TH2F *, MAXLAYER > m_h_totalEnergy_etaphi
Definition: LArCellMonTool.h:264
LArCellMonTool::TriggerType
TriggerType
Definition: LArCellMonTool.h:119
LArCellMonTool::OVER
@ OVER
Definition: LArCellMonTool.h:118
LArCellMonTool::m_maskNoCondChannels
bool m_maskNoCondChannels
Definition: LArCellMonTool.h:181
LArCellMonTool::HEC0NS
@ HEC0NS
Definition: LArCellMonTool.h:78
Trig
The common trigger namespace for trigger analysis tools.
Definition: CaloTowerVecMon.h:44
LArCellMonTool::MAXLYRNS
@ MAXLYRNS
Definition: LArCellMonTool.h:79
LArCellMonTool::LayerEnumNoSides
LayerEnumNoSides
Definition: LArCellMonTool.h:78
TH2F
Definition: rootspy.cxx:420
python.SystemOfUnits.mg
int mg
Definition: SystemOfUnits.py:171
LArCellMonTool::m_qualityFactorThresholdProp
FloatArrayProperty m_qualityFactorThresholdProp
Definition: LArCellMonTool.h:216
LArCellMonTool::thresholdHist_t::m_doEtaPhiFractionPastTth
bool m_doEtaPhiFractionPastTth
Definition: LArCellMonTool.h:257
LArCellMonTool::m_minSporadicNoiseEventsPerCell
unsigned m_minSporadicNoiseEventsPerCell
Definition: LArCellMonTool.h:197
LArCellMonTool::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: LArCellMonTool.h:294
LArCellMonTool::EMECA
@ EMECA
Definition: LArCellMonTool.h:82
LArCellMonTool::EMECPNS
@ EMECPNS
Definition: LArCellMonTool.h:79
LArCellMonTool::FCAL2A
@ FCAL2A
Definition: LArCellMonTool.h:75
LArCellMonTool::MAXPARTITIONS
@ MAXPARTITIONS
Definition: LArCellMonTool.h:82
LArCellMonTool::m_h_badChannels_etaphi
std::array< TH2F *, MAXLAYER > m_h_badChannels_etaphi
Definition: LArCellMonTool.h:337
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
LArCellMonTool::m_sporadicNoiseCells
std::unordered_map< Identifier, SporadicNoiseCell_t, idHasher > m_sporadicNoiseCells
Definition: LArCellMonTool.h:318
LArCellMonTool::thresholdHist_t::m_threshTitles
std::array< std::string, MAXLYRNS > m_threshTitles
The actual threshold (per layer)
Definition: LArCellMonTool.h:232
LArCellMonTool::FCAL3A
@ FCAL3A
Definition: LArCellMonTool.h:75
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
LArCellMonTool::thresholdHist_t::m_doEtaPhiAverageTime
bool m_doEtaPhiAverageTime
Definition: LArCellMonTool.h:256
LArCellMonTool::thresholdHist_t::m_triggersToExclude
std::bitset< MAXTRIGTYPE > m_triggersToExclude
Definition: LArCellMonTool.h:241
LArCellMonTool::HEC1A
@ HEC1A
Definition: LArCellMonTool.h:73
LArCellMonTool::EMEC2A
@ EMEC2A
Definition: LArCellMonTool.h:74
LArCellMonTool::HEC3C
@ HEC3C
Definition: LArCellMonTool.h:73
TH1D
Definition: rootspy.cxx:342
LArCellMonTool::thresholdHist_t::m_qualityFactorThreshold
float m_qualityFactorThreshold
Definition: LArCellMonTool.h:236
CaloCell_ID_FCS::FCAL1
@ FCAL1
Definition: FastCaloSim_CaloCell_ID.h:41
LArCellMonTool::m_doEtaPhiTotalEnergyProp
BooleanArrayProperty m_doEtaPhiTotalEnergyProp
Definition: LArCellMonTool.h:212
LArCellMonTool::regTempHist
void regTempHist(TH1 *h, MonGroup &mg) const
Definition: LArCellMonTool.cxx:861
LArCellMonTool::thresholdHist_t::m_h_poorTimeOccupancy_etaphi
std::array< TH2F *, MAXLAYER > m_h_poorTimeOccupancy_etaphi
Definition: LArCellMonTool.h:272
LArCellMonTool::newEtaPhiHist
static TH2F * newEtaPhiHist(const std::string &hName, const std::string &hTitle, const CaloMonitoring::LArCellBinning &binning)
Definition: LArCellMonTool.cxx:908
LArCellMonTool::thresholdHist_t::m_doEtaOccupancy
bool m_doEtaOccupancy
Definition: LArCellMonTool.h:247
LArCellMonTool::FCAL1NS
@ FCAL1NS
Definition: LArCellMonTool.h:79
LArCellMonTool::m_counter_sporadic_protc
unsigned m_counter_sporadic_protc
Definition: LArCellMonTool.h:301
TrigDecisionTool.h
LArCellMonTool::checkTriggerAndBeamBackground
void checkTriggerAndBeamBackground()
Definition: LArCellMonTool.cxx:506
LArCellMonTool::UNDER
@ UNDER
Definition: LArCellMonTool.h:118
LArCellMonTool::LayerEnum
LayerEnum
Definition: LArCellMonTool.h:72
LArCellMonTool::HEC2A
@ HEC2A
Definition: LArCellMonTool.h:73
LArCellMonTool::thresholdHist_t::m_h_occupancy_etaphi
std::array< TH2F *, MAXLAYER > m_h_occupancy_etaphi
Definition: LArCellMonTool.h:260
LArCellMonTool::thresholdHist_t::m_threshDirection
Direction m_threshDirection
Absolute threshold or in sigma noise?
Definition: LArCellMonTool.h:234
CaloCell_ID_FCS::HEC2
@ HEC2
Definition: FastCaloSim_CaloCell_ID.h:29
LArCellMonTool::m_caloSamplingToLyrNS
const std::map< unsigned, LayerEnumNoSides > m_caloSamplingToLyrNS
Definition: LArCellMonTool.h:98
LArCellMonTool::SporadicNoiseCell_t::m_h_energy
TH1F * m_h_energy
Definition: LArCellMonTool.h:304
LArCellMonTool::m_h_energy
std::array< TH1F *, MAXLAYER > m_h_energy
Definition: LArCellMonTool.h:330
LArCellMonTool::m_partitionNames
const std::array< std::string, MAXPARTITIONS > m_partitionNames
Definition: LArCellMonTool.h:95
LArCellMonTool::thresholdHist_t::m_eventsPassed
unsigned m_eventsPassed
Definition: LArCellMonTool.h:281
LArCellMonTool::thresholdHist_t::m_h_fractionOverQth_etaphi
std::array< TH2F *, MAXLAYER > m_h_fractionOverQth_etaphi
Definition: LArCellMonTool.h:269
SG::ReadHandleKey< CaloCellContainer >
LArCellMonTool::m_doPercentageOccupancyProp
BooleanArrayProperty m_doPercentageOccupancyProp
Definition: LArCellMonTool.h:208
LArCellMonTool::EMECPA
@ EMECPA
Definition: LArCellMonTool.h:74
LArCellMonTool::NOTA
@ NOTA
Definition: LArCellMonTool.h:119
LArCellMonTool::SporadicNoiseCell_t
Definition: LArCellMonTool.h:303
LArCellMonTool::m_sporadicPerPartCounter
std::array< unsigned, MAXPARTITIONS > m_sporadicPerPartCounter
Definition: LArCellMonTool.h:323
LArCellMonTool::m_h_nActiveCellsFirstEvent_phi
std::array< TH1F *, MAXLAYER > m_h_nActiveCellsFirstEvent_phi
Definition: LArCellMonTool.h:342
LArCellMonTool::m_doEtaPhiAverageTimeProp
BooleanArrayProperty m_doEtaPhiAverageTimeProp
Definition: LArCellMonTool.h:217
LArCellMonTool::m_LArOnlineIDHelper
const LArOnlineID * m_LArOnlineIDHelper
Definition: LArCellMonTool.h:291
LArCellMonTool::thresholdHist_t::m_doPercentageOccupancy
bool m_doPercentageOccupancy
Definition: LArCellMonTool.h:245
LArCellMonTool::RNDM
@ RNDM
Definition: LArCellMonTool.h:119
LArCellMonTool::idHasher::operator()
std::size_t operator()(const Identifier &id) const
Definition: LArCellMonTool.h:313
LArCellMonTool::FCAL1C
@ FCAL1C
Definition: LArCellMonTool.h:75
CaloMonToolBase.h
LArCellMonTool::m_cellContainerName
SG::ReadHandleKey< CaloCellContainer > m_cellContainerName
Definition: LArCellMonTool.h:160
CaloDetDescrManager.h
Definition of CaloDetDescrManager.
LArCellMonTool::thresholdHist_t::m_h_totalTime_etaphi
std::array< TH2F *, MAXLAYER > m_h_totalTime_etaphi
Definition: LArCellMonTool.h:273
LArCellMonTool::FCAL3NS
@ FCAL3NS
Definition: LArCellMonTool.h:79
LArCellMonTool::FCAL2NS
@ FCAL2NS
Definition: LArCellMonTool.h:79
LArCellMonTool::EMBA
@ EMBA
Definition: LArCellMonTool.h:82
LArCellMonTool::PartitionEnum
PartitionEnum
Definition: LArCellMonTool.h:82
LArCellMonTool::EMEC3C
@ EMEC3C
Definition: LArCellMonTool.h:74
LArCellMonTool::EMBC
@ EMBC
Definition: LArCellMonTool.h:82
LArCellMonTool::m_lyrNSNames
const std::array< std::string, MAXLYRNS > m_lyrNSNames
Definition: LArCellMonTool.h:92
LArCellMonTool::m_doPhiOccupancyProp
BooleanArrayProperty m_doPhiOccupancyProp
Definition: LArCellMonTool.h:211
LArCellMonTool::m_maskKnownBadChannels
bool m_maskKnownBadChannels
Definition: LArCellMonTool.h:180
LArCellMonTool::strToLower
static std::string strToLower(const std::string &input)
Definition: LArCellMonTool.cxx:1222
LArCellMonTool::m_BCKey
SG::ReadCondHandleKey< LArBadChannelCont > m_BCKey
Definition: LArCellMonTool.h:295
LArCellMonTool::m_h_n_trigEvent
TH1F * m_h_n_trigEvent
Definition: LArCellMonTool.h:327
LArCellMonTool::thresholdHist_t::m_threshName
std::string m_threshName
Definition: LArCellMonTool.h:229
LArCellMonTool::FCAL1A
@ FCAL1A
Definition: LArCellMonTool.h:75
LArCellMonTool::HEC1C
@ HEC1C
Definition: LArCellMonTool.h:73
LArCellMonTool::bookSporHists
StatusCode bookSporHists()
Definition: LArCellMonTool.cxx:392
LArCellMonTool::thresholdHist_t::m_doEtaPhiTotalEnergy
bool m_doEtaPhiTotalEnergy
Definition: LArCellMonTool.h:250
LArBadChannelCont.h
LArCellMonTool::m_doEtaPhiOccupancyProp
BooleanArrayProperty m_doEtaPhiOccupancyProp
Definition: LArCellMonTool.h:209
LArCellMonTool::HEC1NS
@ HEC1NS
Definition: LArCellMonTool.h:78
LArCellMonTool::m_sporadicPlotLimit
unsigned m_sporadicPlotLimit
Definition: LArCellMonTool.h:195
LArCellMonTool::m_doEtaPhiAverageEnergyProp
BooleanArrayProperty m_doEtaPhiAverageEnergyProp
Definition: LArCellMonTool.h:213
LArCellMonTool::EMECC
@ EMECC
Definition: LArCellMonTool.h:82
LArCellMonTool::m_h_energyVsTime
std::array< TH2F *, MAXLAYER > m_h_energyVsTime
Definition: LArCellMonTool.h:331
LArCellMonTool::m_noiseKey
SG::ReadCondHandleKey< CaloNoise > m_noiseKey
Definition: LArCellMonTool.h:163
LArCellMonTool::EMBPA
@ EMBPA
Definition: LArCellMonTool.h:72
LArCellMonTool::thresholdHist_t::m_h_occupancy_phi
std::array< TH1F *, MAXLAYER > m_h_occupancy_phi
Definition: LArCellMonTool.h:262
LArOnOffIdMapping.h
LArCellMonTool::thresholdHist_t::m_doEtaPhiAverageQuality
bool m_doEtaPhiAverageQuality
Definition: LArCellMonTool.h:253
LArCellMonTool::thresholdHist_t::m_doEtaPhiAverageEnergy
bool m_doEtaPhiAverageEnergy
Definition: LArCellMonTool.h:251
CaloCell_ID_FCS::HEC1
@ HEC1
Definition: FastCaloSim_CaloCell_ID.h:28
LArCellMonTool::m_threshold_HECFCALEMS2S3
float m_threshold_HECFCALEMS2S3
Definition: LArCellMonTool.h:194
LArCellMonTool::EMB1C
@ EMB1C
Definition: LArCellMonTool.h:72
constants.EMB2
int EMB2
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:54
LArCellMonTool::thresholdHist_t::m_triggersToInclude
std::bitset< MAXTRIGTYPE > m_triggersToInclude
Definition: LArCellMonTool.h:240
LArCellMonTool::finalize
virtual StatusCode finalize() override
Definition: LArCellMonTool.cxx:872
LArCellMonTool::m_triggersToIncludeProp
StringArrayProperty m_triggersToIncludeProp
Definition: LArCellMonTool.h:203
LArCellMonTool::m_doUnnormalized1DEnergy
bool m_doUnnormalized1DEnergy
Definition: LArCellMonTool.h:187
TileID
Helper class for TileCal offline identifiers.
Definition: TileID.h:68
LArCellMonTool::EMEC2NS
@ EMEC2NS
Definition: LArCellMonTool.h:79
LArCellMonTool::sporadicNoiseCandidate
void sporadicNoiseCandidate(const CaloCell *cell, const LArCellMonTool::LayerEnum iLyr, const float threshold, const LArOnOffIdMapping *cabling)
Definition: LArCellMonTool.cxx:540
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
LArCellMonTool::bookLarNonThreHists
StatusCode bookLarNonThreHists()
Definition: LArCellMonTool.cxx:414
LArCellMonTool::m_bcMask
LArBadChannelMask m_bcMask
Definition: LArCellMonTool.h:177
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArCellMonTool::bookNoisyCellHistos
void bookNoisyCellHistos(SporadicNoiseCell_t &result, const CaloDetDescrElement *dde, const PartitionEnum part, const float threshold, const LArOnOffIdMapping *cabling)
Definition: LArCellMonTool.cxx:569
LArCellMonTool::EMECPC
@ EMECPC
Definition: LArCellMonTool.h:74
LArCellMonTool::m_useTriggerCaloMon
bool m_useTriggerCaloMon
Definition: LArCellMonTool.h:171
LArCellMonTool::EMEC3A
@ EMEC3A
Definition: LArCellMonTool.h:74
LArCellMonTool::m_defaultThresholds
FloatArrayProperty m_defaultThresholds
Definition: LArCellMonTool.h:206
LArCellMonTool::MET
@ MET
Definition: LArCellMonTool.h:119
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
LArCellMonTool::m_timeThresholdProp
FloatArrayProperty m_timeThresholdProp
Definition: LArCellMonTool.h:219
LArCellMonTool::HEC2NS
@ HEC2NS
Definition: LArCellMonTool.h:78
LArCellMonTool::m_eCutForTiming
const std::array< float,MAXLYRNS > m_eCutForTiming
Definition: LArCellMonTool.h:128
CaloMonitoring::LArCellBinning
Definition: LArCellBinning.h:21
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LArCellMonTool::EMEC2C
@ EMEC2C
Definition: LArCellMonTool.h:74
LArCellMonTool::thresholdHist_t::m_threshValue
std::array< float, MAXLYRNS > m_threshValue
Histogram title template.
Definition: LArCellMonTool.h:231
constants.EME1
int EME1
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:55
LArCellMonTool::m_thresholdColumnType
StringArrayProperty m_thresholdColumnType
Definition: LArCellMonTool.h:222
LArCellMonTool::m_binning
std::array< CaloMonitoring::LArCellBinning, MAXLAYER > m_binning
Definition: LArCellMonTool.h:297
LArCellMonTool::thresholdHist_t::m_threshTitleTemplate
std::string m_threshTitleTemplate
Name of this threshold.
Definition: LArCellMonTool.h:230
LArCellMonTool::m_inSigNoise
BooleanArrayProperty m_inSigNoise
Definition: LArCellMonTool.h:207
CaloCell_ID
Helper class for offline cell identifiers.
Definition: CaloCell_ID.h:34
LArCellMonTool::m_h_cellTime
std::array< TH1F *, MAXLAYER > m_h_cellTime
Definition: LArCellMonTool.h:332
LArCellMonTool::EMEC3NS
@ EMEC3NS
Definition: LArCellMonTool.h:79
LArCellMonTool::getHistoCoordinates
void getHistoCoordinates(const CaloDetDescrElement *dde, float &celleta, float &cellphi, unsigned &iLyr, unsigned &iLyrNS) const
Definition: LArCellMonTool.cxx:1305
LArCellMonTool::setLArCellBinning
void setLArCellBinning()
Definition: LArCellMonSetBinning.cxx:8
LArCellMonTool::MAXLAYER
@ MAXLAYER
Definition: LArCellMonTool.h:75
LArCellMonTool::HEC3A
@ HEC3A
Definition: LArCellMonTool.h:73
TH2
Definition: rootspy.cxx:373
LArCellMonTool::m_useWeightedEffMerging
bool m_useWeightedEffMerging
Definition: LArCellMonTool.h:189
LArCellMonTool::m_useLogarithmicEnergyBinning
bool m_useLogarithmicEnergyBinning
Definition: LArCellMonTool.h:188
LArCellMonTool::NONE
@ NONE
Definition: LArCellMonTool.h:118
LArCellMonTool::m_sporadicDir
std::string m_sporadicDir
Definition: LArCellMonTool.h:300
LArCellMonTool::thresholdHist_t::m_threshTriggerDecision
bool m_threshTriggerDecision
Definition: LArCellMonTool.h:242
LArCellMonTool::fillHistograms
virtual StatusCode fillHistograms() override
An inheriting class should either override this function or fillHists().
Definition: LArCellMonTool.cxx:621
LArCellMonTool::m_doEnergyVsTime
bool m_doEnergyVsTime
Definition: LArCellMonTool.h:186
LArCellMonTool::m_doEtaPhiFractionPastTthProp
BooleanArrayProperty m_doEtaPhiFractionPastTthProp
Definition: LArCellMonTool.h:218
LArCellMonTool::m_calo_id
const CaloCell_ID * m_calo_id
Definition: LArCellMonTool.h:292
LArCellMonTool::resetInternals
void resetInternals()
Definition: LArCellMonTool.cxx:1230
LArCellMonTool::HECC
@ HECC
Definition: LArCellMonTool.h:82
LArCellMonTool::EMB1A
@ EMB1A
Definition: LArCellMonTool.h:72
LArCellMonTool::thresholdHist_t::m_h_totalQuality_etaphi
std::array< TH2F *, MAXLAYER > m_h_totalQuality_etaphi
Definition: LArCellMonTool.h:268
ReadCondHandleKey.h
LArCellMonTool::initThreshHists
StatusCode initThreshHists()
Definition: LArCellMonTool.cxx:193
CaloMonToolBase
Definition: CaloMonToolBase.h:17
LArCellMonTool::thresholdHist_t::m_h_poorQualityOccupancy_etaphi
std::array< TH2F *, MAXLAYER > m_h_poorQualityOccupancy_etaphi
Definition: LArCellMonTool.h:267
LArCellMonTool::m_doEtaPhiFractionOverQthProp
BooleanArrayProperty m_doEtaPhiFractionOverQthProp
Definition: LArCellMonTool.h:215
LArCellMonTool::EMB2A
@ EMB2A
Definition: LArCellMonTool.h:72
LArCellMonTool::procHistograms
virtual StatusCode procHistograms() override
An inheriting class should either override this function or finalHists().
Definition: LArCellMonTool.cxx:770
LArCellMonTool::thresholdHist_t::m_h_averageQuality_etaphi
std::array< TH2F *, MAXLAYER > m_h_averageQuality_etaphi
Definition: LArCellMonTool.h:270
LArCellMonTool::SporadicNoiseCell_t::m_h_energyVsLB
TProfile * m_h_energyVsLB
Definition: LArCellMonTool.h:306
LArCellMonTool::SporadicNoiseCell_t::m_h_quality
TH1F * m_h_quality
Definition: LArCellMonTool.h:305
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
CaloCell_ID_FCS::EME3
@ EME3
Definition: FastCaloSim_CaloCell_ID.h:26
LArCellMonTool::~LArCellMonTool
virtual ~LArCellMonTool()
IdentifierHash.h
LArCellMonTool::idHasher
Definition: LArCellMonTool.h:312
LArCellMonTool::thresholdHist_t::m_doEtaPhiFractionOverQth
bool m_doEtaPhiFractionOverQth
Definition: LArCellMonTool.h:254
CaloNoise.h
threshold
Definition: chainparser.cxx:74
LArCellMonTool::bookHistograms
virtual StatusCode bookHistograms() override
An inheriting class should either override this function or bookHists().
Definition: LArCellMonTool.cxx:374
LArCellMonTool::LArCellMonTool
LArCellMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: LArCellMonTool.cxx:40
LArCellBinning.h
LArCellMonTool::m_layerNames
const std::array< std::string, MAXLAYER > m_layerNames
Definition: LArCellMonTool.h:86
TProfile
Definition: rootspy.cxx:515
LArOnlineID
Definition: LArOnlineID.h:20
LArCellMonTool::m_h_dbnoise_etaphi
std::array< TH2F *, MAXLAYER > m_h_dbnoise_etaphi
Definition: LArCellMonTool.h:338
LArCellMonTool::EMEC1C
@ EMEC1C
Definition: LArCellMonTool.h:74
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
CaloCell_ID_FCS::HEC0
@ HEC0
Definition: FastCaloSim_CaloCell_ID.h:27
SG::ReadCondHandleKey< CaloNoise >
LArCellMonTool::m_doSaveTempHists
bool m_doSaveTempHists
Definition: LArCellMonTool.h:183
LArCellMonTool::EMB3NS
@ EMB3NS
Definition: LArCellMonTool.h:78
LArCellMonTool::m_h_sporadicHists
std::array< TH1F *, MAXPARTITIONS > m_h_sporadicHists
Definition: LArCellMonTool.h:322
h
LArCellMonTool::FCAL2C
@ FCAL2C
Definition: LArCellMonTool.h:75
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
LArCellMonTool::HEC3NS
@ HEC3NS
Definition: LArCellMonTool.h:78
LArCellMonTool::m_sporadic_protc
unsigned m_sporadic_protc
Definition: LArCellMonTool.h:196
TH1F
Definition: rootspy.cxx:320
LArCellMonTool::EMEC1NS
@ EMEC1NS
Definition: LArCellMonTool.h:79
LArCellMonTool::thresholdHist_t::m_doPhiOccupancy
bool m_doPhiOccupancy
Definition: LArCellMonTool.h:248
CaloCell_ID_FCS::PreSamplerE
@ PreSamplerE
Definition: FastCaloSim_CaloCell_ID.h:23
CaloCell_ID_FCS::PreSamplerB
@ PreSamplerB
Definition: FastCaloSim_CaloCell_ID.h:19
LArCellMonTool::SporadicNoiseCell_t::m_counter
unsigned m_counter
Definition: LArCellMonTool.h:307
LArCellMonTool::EMB3C
@ EMB3C
Definition: LArCellMonTool.h:72
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TH1
Definition: rootspy.cxx:268
LArCellMonTool::m_thresholdNameProp
StringArrayProperty m_thresholdNameProp
Definition: LArCellMonTool.h:201
LArCellMonTool::thresholdHist_t::m_h_occupancy_eta
std::array< TH1F *, MAXLAYER > m_h_occupancy_eta
Definition: LArCellMonTool.h:261
LArCellMonTool::thresholdHist_t
Definition: LArCellMonTool.h:227
LArCellMonTool::m_thresholdHists
std::vector< thresholdHist_t > m_thresholdHists
Definition: LArCellMonTool.h:284
LArCellMonTool::initialize
virtual StatusCode initialize() override
Definition: LArCellMonTool.cxx:139
LArCellMonTool::m_doDatabaseNoiseVsEtaPhi
bool m_doDatabaseNoiseVsEtaPhi
Definition: LArCellMonTool.h:185
LArCellMonTool::m_chainGroups
std::array< const Trig::ChainGroup *, NOTA > m_chainGroups
Definition: LArCellMonTool.h:174
CaloCell_ID_FCS::FCAL2
@ FCAL2
Definition: FastCaloSim_CaloCell_ID.h:42
LArCellMonTool::thresholdHist_t::m_inSigNoise
bool m_inSigNoise
Part of the histogram title (containing the threshold value, so per-layer)
Definition: LArCellMonTool.h:233
LArCellMonTool::createPerJobHistograms
StatusCode createPerJobHistograms(const EventContext &ctx, const CaloCellContainer *cellcont)
Definition: LArCellMonTool.cxx:921
LArCellMonTool::MAXTRIGTYPE
@ MAXTRIGTYPE
Definition: LArCellMonTool.h:119
LArCellMonTool::m_sporadic_switch
bool m_sporadic_switch
Definition: LArCellMonTool.h:192
LArCellMonTool::HECA
@ HECA
Definition: LArCellMonTool.h:82
LArCellMonTool::bookLarMultThreHists
StatusCode bookLarMultThreHists()
Definition: LArCellMonTool.cxx:1047
LArCellMonTool::m_lArPath
const std::string m_lArPath
Definition: LArCellMonTool.h:123
LArCellMonTool::divideByOccupancy
static void divideByOccupancy(TH2F *fraction, const TH2F *total, const TH2 *occupancy)
Definition: LArCellMonTool.cxx:1333
LArCellMonTool::m_triggersToExcludeProp
StringArrayProperty m_triggersToExcludeProp
Definition: LArCellMonTool.h:204
CaloCell_ID_FCS::HEC3
@ HEC3
Definition: FastCaloSim_CaloCell_ID.h:30
LArCellMonTool::m_problemsToMask
Gaudi::Property< std::vector< std::string > > m_problemsToMask
Definition: LArCellMonTool.h:178
LArCellMonTool::EMEC1A
@ EMEC1A
Definition: LArCellMonTool.h:74
CaloCell_ID_FCS::FCAL0
@ FCAL0
Definition: FastCaloSim_CaloCell_ID.h:40
LArCellMonTool::m_caloMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Definition: LArCellMonTool.h:165
LArBadChannelMask.h
CaloCell_ID_FCS::EMB3
@ EMB3
Definition: FastCaloSim_CaloCell_ID.h:22
LArCellMonTool::thresholdHist_t::m_doBeamBackgroundRemoval
bool m_doBeamBackgroundRemoval
Definition: LArCellMonTool.h:235
LArCellMonTool::EMB2C
@ EMB2C
Definition: LArCellMonTool.h:72
LArCellMonTool::HEC2C
@ HEC2C
Definition: LArCellMonTool.h:73
LArCellMonTool::FCALA
@ FCALA
Definition: LArCellMonTool.h:82
LArCellMonTool::HEC0C
@ HEC0C
Definition: LArCellMonTool.h:73
constants.EME2
int EME2
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:56
LArCellMonTool::m_thresholdsProp
FloatArrayProperty m_thresholdsProp[MAXLYRNS]
Definition: LArCellMonTool.h:223
LArCellMonTool::thresholdHist_t::m_occupancyCounter
std::array< unsigned, 185000 > m_occupancyCounter
Definition: LArCellMonTool.h:278
LArCellMonTool::m_h_energyVsTime_DifferThresholds
std::array< TH1F *, MAXLAYER > m_h_energyVsTime_DifferThresholds
Definition: LArCellMonTool.h:333
LArOnlineID.h
LArCellMonTool::BOTH
@ BOTH
Definition: LArCellMonTool.h:118
LArCellMonTool::m_doKnownBadChannelsVsEtaPhi
bool m_doKnownBadChannelsVsEtaPhi
Definition: LArCellMonTool.h:184
LArBadChannelMask
Definition: LArBadChannelMask.h:18
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20
LArCellMonTool::EMB3A
@ EMB3A
Definition: LArCellMonTool.h:72
LArCellMonTool::EMB2NS
@ EMB2NS
Definition: LArCellMonTool.h:78