ATLAS Offline Software
LArSuperCellMonAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // NAME: LArSuperCellMonAlg.cxx
6 // based on LArCellMonAlg:
7 // L. Morvaj, P.Strizenec, D. Oliveira Damazio - develop for Digital Trigger monitoring (2021)
8 // ********************************************************************
9 #include "LArSuperCellMonAlg.h"
10 
11 
12 #include "CaloDetDescr/CaloDetDescrElement.h"
14 #include "Identifier/Identifier.h"
18 
19 //#include "AthenaMonitoring/DQBadLBFilterTool.h"
20 //#include "AthenaMonitoring/DQAtlasReadyFilterTool.h"
21 
23 #include "AthenaKernel/Units.h"
24 
26 
27 #include <cassert>
28 #include <algorithm>
29 
31 LArSuperCellMonAlg::LArSuperCellMonAlg(const std::string& name, ISvcLocator* pSvcLocator)
32  :AthMonitorAlgorithm(name, pSvcLocator),
33  // m_badChannelMask("BadLArRawChannelMask",this),
34  m_calo_id(nullptr)
35 {
36 }
37 
38 
39 
41 }
42 
45 
46  ATH_MSG_DEBUG("LArSuperCellMonAlg::initialize() start");
47 
48 
49  //Identfier-helpers
51 
56 
59 
60  ATH_MSG_DEBUG("LArSuperCellMonAlg::initialize() is done!");
61 
63 }
64 
65 
66 
68 
69  return StatusCode::SUCCESS;
70 }
71 
72 
74 StatusCode LArSuperCellMonAlg::fillHistograms(const EventContext& ctx) const{
75 
76  ATH_MSG_DEBUG("LArSuperCellMonAlg::fillHistograms() starts");
77 
79  const CaloCellContainer* superCellCont = superCellHdl.cptr();
80  if(!superCellCont){
81  ATH_MSG_ERROR("The requested SC container key " << m_superCellContainerKey.key() << " could not be retrieved. !!!");
82  return StatusCode::SUCCESS;
83  }
84 
86  const CaloCellContainer* superCellRefCont = superCellRefHdl.cptr();
87  if(!superCellRefCont){
88  ATH_MSG_ERROR("The requested SC ref container key " << m_superCellContainerRefKey.key() << " could not be retrieved. !!!");
89  return StatusCode::SUCCESS;
90  }
91 
93  const CaloNoise *noisep = *noiseHdl;
94 
96 
97  const CaloCellContainer *superCellRecoCont = nullptr;
98  if(m_doSCReco){
100  if (!hSCetRecoContainer.isValid()) {
101  ATH_MSG_ERROR("The requested SC ET reco container key could not be retrieved. !!!");
102  }else{
103  superCellRecoCont = hSCetRecoContainer.cptr();
104  ATH_MSG_DEBUG("SCetRecoContainer.size() " << hSCetRecoContainer->size());
105  }
106  }
107 
108  if (ctx.evt()==0) {
109  ATH_CHECK(createPerJobHistograms(superCellCont, noisep));
110  }
111 
112  //get LB
113  auto lumiBlock = Monitored::Scalar<unsigned int>("lumiBlock",0);
114  lumiBlock = ctx.eventID().lumi_block();
115  auto bcid = Monitored::Scalar<unsigned int>("bcid",0);
116  bcid = ctx.eventID().bunch_crossing_id();
118 
119 
120 
122 
123  CaloCellContainer::const_iterator SCit = superCellCont->begin();
124  CaloCellContainer::const_iterator SCit_e = superCellCont->end();
125 
126  std::vector<std::reference_wrapper<Monitored::IMonitoredVariable>> variables;
127 
128  for ( ; SCit!=SCit_e;++SCit) {
129 
130  const CaloCell* superCell = *SCit;
131  variables.clear();
132  // Discard masked cells from monitoring
133  int SCprov = superCell->provenance()&0xFFF;
134  if (m_removeMasked && ((SCprov&0x80)==0x80)) continue;
135  float SCet = superCell->et();
136  const CaloDetDescrElement* SCcaloDDE = superCell->caloDDE();
137  float SCeta,SCphi;
138  unsigned iLyr, iLyrNS;
139  float SCt = superCell->time();
140 
141  getHistoCoordinates(SCcaloDDE, SCeta, SCphi, iLyr, iLyrNS);
142 
143 
144  bool SCpassTime = LArProv::test(SCprov,LArProv::SCTIMEPASS);//SCprov & 0x200;
145  bool SCpassPF = LArProv::test(SCprov,LArProv::SCPASSBCIDMAX);// SCprov & 0x40;
146 
147  const CaloCell* superCellRef = superCellRefCont->findCell( SCcaloDDE->identifyHash() );
148  float SCetRef = superCellRef->et();
149  float SCetDiff = SCet - SCetRef;
150  float resolution = -1000;
151  float resolutionPass = -1000;
152  float resolutionHET = -1000;
153  if ( SCetRef > m_thresholdsForResolution) resolution = 100.0*(SCet-SCetRef)/SCetRef;
154  if ( SCpassTime || SCpassPF ) resolutionPass = resolution;
155  if ( SCet > 4e3 ) resolutionHET=resolution;
156 
157  // real monitoring business
158  auto MSCet = Monitored::Scalar<float>("superCellEt",SCet);
159  auto MSCt = Monitored::Scalar<float>("superCelltime",SCt);
160  auto MSCprov = Monitored::Scalar<int>("superCellprovenance",SCprov);
161  auto MSCeta = Monitored::Scalar<float>("superCellEta",SCeta);
162  auto MSCphi = Monitored::Scalar<float>("superCellPhi",SCphi);
163  auto MSCres = Monitored::Scalar<float>("resolution",resolution);
164  auto MSCresPass = Monitored::Scalar<float>("resolutionPass",resolutionPass);
165  auto MSCresHET = Monitored::Scalar<float>("resolutionHET",resolutionHET);
166  auto MSCetRef = Monitored::Scalar<float>("superCellEtRef",SCetRef);
167  auto MSCtRef = Monitored::Scalar<float>("superCelltimeRef",superCellRef->time());
168  auto MSCprovRef = Monitored::Scalar<int>("superCellprovenanceRef",(superCellRef->provenance()&0xFFF));
169  auto MSCetDiff = Monitored::Scalar<float>("superCellEtDiff",SCetDiff);
170  variables.push_back(MSCet);
171  variables.push_back(MSCt);
172  variables.push_back(MSCprov);
173  variables.push_back(MSCeta);
174  if ( SCetRef > m_thresholdsForResolution ) variables.push_back(MSCres);
175  if ( (SCetRef > m_thresholdsForResolution ) && (SCpassTime || SCpassPF ) ) variables.push_back(MSCresPass);
176  if ( (SCetRef > m_thresholdsForResolution ) && (SCet > 4e3 ) ) variables.push_back(MSCresHET);
177  variables.push_back(MSCphi);
178  variables.push_back(MSCetRef);
179  // let us put conditional to force building the linearity plot
180  // only when the new signal passes BCID
181  variables.push_back(MSCtRef);
182  variables.push_back(MSCprovRef);
183  variables.push_back(MSCetDiff);
184 
185  // per layer
186  auto layerName=m_layerNames[iLyr];
187  auto LMSCet = Monitored::Scalar<float>("superCellEt_"+layerName,SCet);
188  auto LMSCt = Monitored::Scalar<float>("superCelltime_"+layerName,SCt);
189  auto LMSCprov = Monitored::Scalar<int>("superCellprovenance_"+layerName,SCprov);
190  auto LMSCeta = Monitored::Scalar<float>("superCellEta_"+layerName,SCeta);
191  auto LMSCphi = Monitored::Scalar<float>("superCellPhi_"+layerName,SCphi);
192  auto LMSCres = Monitored::Scalar<float>("resolution_"+layerName,resolution);
193  auto LMSCresPass = Monitored::Scalar<float>("resolutionPass_"+layerName,resolutionPass);
194  auto LMSCresHET = Monitored::Scalar<float>("resolutionHET_"+layerName,resolutionHET);
195  auto LMSCetRef = Monitored::Scalar<float>("superCellEtRef_"+layerName,SCetRef);
196  auto LMSCtRef = Monitored::Scalar<float>("superCelltimeRef_"+layerName,superCellRef->time());
197  auto LMSCprovRef = Monitored::Scalar<int>("superCellprovenanceRef_"+layerName,(superCellRef->provenance()&0xFFF));
198 
199  auto MBCIDFFB = Monitored::Scalar<int>("BCID",bcidFFB);
200  auto LMSCetDiff = Monitored::Scalar<float>("superCellEtDiff_"+layerName,SCetDiff);
201  variables.push_back(LMSCet);
202  variables.push_back(LMSCt);
203  variables.push_back(LMSCprov);
204  variables.push_back(LMSCeta);
205  if ( SCetRef > m_thresholdsForResolution ) variables.push_back(LMSCres);
206  if ( (SCetRef > m_thresholdsForResolution ) && (SCpassTime || SCpassPF ) ) variables.push_back(LMSCresPass);
207  if ( (SCetRef > m_thresholdsForResolution ) && (SCet > 4e3 ) ) variables.push_back(LMSCresHET);
208  variables.push_back(LMSCphi);
209  variables.push_back(LMSCetRef);
210  if ( SCpassTime || SCpassPF ) variables.push_back(LMSCtRef);
211  variables.push_back(LMSCprovRef);
212  variables.push_back(MBCIDFFB);
213  variables.push_back(LMSCetDiff);
214 
215  auto MSCtReco = Monitored::Scalar<float>("superCelltimeReco",0.);
216  auto MSCetReco = Monitored::Scalar<float>("superCellEtReco",0.);
217  auto LMSCtReco = Monitored::Scalar<float>("superCelltimeReco_"+layerName,0.);
218  if(m_doSCReco){
219  const CaloCell* superCellReco = superCellRecoCont->findCell( SCcaloDDE->identifyHash() );
220  if(superCellReco) {
221  float SCetReco = superCellReco->et();
222  float SCtimeReco = superCellReco->time();
223  MSCtReco = SCtimeReco;
224  MSCetReco = SCetReco;
225  LMSCtReco = SCtimeReco;
226  variables.push_back(MSCtReco);
227  variables.push_back(LMSCtReco);
228  variables.push_back(MSCetReco);
229  }
230  }
232 
233  } // end loop over SC
234 
235 
236 
237 
238  ATH_MSG_DEBUG("LArSuperCellMonAlg::fillLarHists() is done");
239  return StatusCode::SUCCESS;
240 }
241 
242 
244 
245  ATH_MSG_INFO("Creating the once-per-job histograms");
246 
247  if(!noisep){
248  ATH_MSG_ERROR("Do not have DB noise, doing nothing !!!");
249  return StatusCode::SUCCESS;
250  }
251 
252  //The following histograms can be considered constants for one job
253  //(in fact, they are constant for an entire run or even run-periode)
254  //ActiveCells in eta/phi (to normalize 1D occupancy plots)
255  //BadChannel word
256  //Database noise
257 
258  auto doDatabaseNoisePlot = Monitored::Scalar<bool>("doDatabaseNoisePlot",m_doDatabaseNoiseVsEtaPhi);
259 
260  // if(!doDatabaseNoisePlot && !doCellsActiveEtaPlot && !doCellsActivePhiPlot) {
261  if(!doDatabaseNoisePlot) {
262  ATH_MSG_INFO("No once-per-job histogram requested");
263  return StatusCode::SUCCESS;
264  }
265 
266 
267  //filling:
268 
270  CaloCellContainer::const_iterator it_e = cellCont->end();
271  for ( ; it!=it_e;++it) {
272  const CaloCell* cell = *it;
273  Identifier id = cell->ID();
274  bool is_lar=m_calo_id->is_lar(id);
275  if(!is_lar) continue;
276  const CaloDetDescrElement* caloDDEl=cell->caloDDE();
277  float celleta, cellphi;
278  unsigned iLyr, iLyrNS;
279 
280 
281  getHistoCoordinates(caloDDEl, celleta, cellphi, iLyr, iLyrNS);
282 
283  auto mon_eta = Monitored::Scalar<float>("celleta_"+m_layerNames[iLyr],celleta);
284  auto mon_phi = Monitored::Scalar<float>("cellphi_"+m_layerNames[iLyr],cellphi);
285  auto cellnoisedb = Monitored::Scalar<float>("cellnoisedb_"+m_layerNames[iLyr],noisep->getNoise(id,cell->gain()));
286 
287  fill(m_MonGroupName,cellnoisedb,mon_eta,mon_phi);
288 
289 
290  }//end loop over cells
291 
292  return StatusCode::SUCCESS;
293 }
294 
295 
296 
297 std::string LArSuperCellMonAlg::strToLower(const std::string& input) const {
298  std::string output;
299  for (const auto& c : input) {
300  output.push_back(std::tolower(c));
301  }
302  return output;
303 }
304 
305 
306 
307 void LArSuperCellMonAlg::getHistoCoordinates(const CaloDetDescrElement* dde, float& celleta, float& cellphi, unsigned& iLyr, unsigned& iLyrNS) const {
308 
309  celleta=dde->eta_raw();
310  cellphi=dde->phi_raw();
311 
312  int calosample=dde->getSampling();
313  if (dde->is_lar_em_endcap_inner()) calosample-=1; //Here, we consider the two layers of the EMEC IW as EME1 and EME2 instad of layer 2 and 3
314  iLyrNS=m_caloSamplingToLyrNS.at(calosample); //will throw if out of bounds
315  if ((iLyrNS==EMB1NS || iLyrNS==EMB2NS) && m_calo_id->region(dde->identify())==1) {
316  //We are in the awkward region 1 of the EM Barrel
317  //Looking at the image at http://atlas.web.cern.ch/Atlas/GROUPS/LIQARGEXT/TDR/figures6/figure6-17.eps
318  //may be useful to understand what's going on here.
319 
320  //In brief: Region 1, layer 1 is closer related ot the middle compartment (aka layer 2)
321  // and region 1, layer 2 closer related to the back compartment (aka layer 3)
322  iLyrNS+=1;
323 
324  //Layer 2: 0<eta<1.4 + 1.4<eta<1.475, deta = 0.025. 3 rows of cells from region 1
325  //Layer 3: 0<eta<1.35 (deta=0.050) + 1.4<eta<1.475 (deta = 0.075). 1 row of cell from region 1 with different dEta
326  }
327 
328  const unsigned side=(celleta>0) ? 0 : 1; //Value >0 means A-side
329  iLyr=iLyrNS*2+side; //Getting LayerEnum value. This logic works because of the way the enums LayerEnum and LayerEnumNoSides are set up.
330  return;
331 }
332 
333 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
CaloDetDescrElement::is_lar_em_endcap_inner
bool is_lar_em_endcap_inner() const
cell belongs to the inner wheel of EM end cap
Definition: CaloDetDescrElement.cxx:114
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
LArSuperCellMonAlg::m_superCellContainerRefKey
SG::ReadHandleKey< CaloCellContainer > m_superCellContainerRefKey
Definition: LArSuperCellMonAlg.h:55
CaloCell_Base_ID::region
int region(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
checkCoolLatestUpdate.variables
variables
Definition: checkCoolLatestUpdate.py:13
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
LArSuperCellMonAlg.h
AtlasDetectorID::is_lar
bool is_lar(Identifier id) const
Definition: AtlasDetectorID.h:689
LArProv::SCPASSBCIDMAX
@ SCPASSBCIDMAX
Definition: LArProvenance.h:24
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
LArSuperCellMonAlg::m_doSCReco
BooleanProperty m_doSCReco
Definition: LArSuperCellMonAlg.h:96
skel.it
it
Definition: skel.GENtoEVGEN.py:423
LArSuperCellMonAlg::m_doDatabaseNoiseVsEtaPhi
BooleanProperty m_doDatabaseNoiseVsEtaPhi
Definition: LArSuperCellMonAlg.h:94
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
LArSuperCellMonAlg::m_thresholdsForResolution
FloatProperty m_thresholdsForResolution
Definition: LArSuperCellMonAlg.h:110
CaloCell::provenance
uint16_t provenance() const
get provenance (data member)
Definition: CaloCell.h:338
LArSuperCellMonAlg::m_calo_id
const CaloCell_ID * m_calo_id
Definition: LArSuperCellMonAlg.h:143
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
LArSuperCellMonAlg::m_layerNames
StringArrayProperty m_layerNames
Definition: LArSuperCellMonAlg.h:83
CaloCell::time
float time() const
get time (data member)
Definition: CaloCell.h:352
CaloNoise::getNoise
float getNoise(const IdentifierHash h, const int gain) const
Accessor by IdentifierHash and gain.
Definition: CaloNoise.h:34
Dedxcorrection::resolution
double resolution[nGasTypes][nParametersResolution]
Definition: TRT_ToT_Corrections.h:46
LArSuperCellMonAlg::m_superCellContainerKey
SG::ReadHandleKey< CaloCellContainer > m_superCellContainerKey
Definition: LArSuperCellMonAlg.h:54
CaloDetDescrManager.h
Definition of CaloDetDescrManager.
CaloDetDescrElement::eta_raw
float eta_raw() const
cell eta_raw
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:350
CaloCell_ID.h
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
TRT::Hit::side
@ side
Definition: HitInfo.h:83
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
LArSuperCellMonAlg::m_bcDataKey
SG::ReadCondHandleKey< BunchCrossingCondData > m_bcDataKey
Property: Bunch crossing data (MC only) (conditions input).
Definition: LArSuperCellMonAlg.h:60
CaloDetDescrElement::identify
Identifier identify() const override final
cell identifier
Definition: CaloDetDescrElement.cxx:64
LArSuperCellMonAlg::m_MonGroupName
Gaudi::Property< std::string > m_MonGroupName
Definition: LArSuperCellMonAlg.h:62
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
CheckAppliedSFs.e3
e3
Definition: CheckAppliedSFs.py:264
LArSuperCellMonAlg::LArSuperCellMonAlg
LArSuperCellMonAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: LArSuperCellMonAlg.cxx:31
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
LArSuperCellMonAlg::~LArSuperCellMonAlg
~LArSuperCellMonAlg()
Definition: LArSuperCellMonAlg.cxx:40
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArSuperCellMonAlg::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override final
adds event to the monitoring histograms
Definition: LArSuperCellMonAlg.cxx:74
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
CaloCell::caloDDE
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Definition: CaloCell.h:305
tolower
void tolower(std::string &s)
Definition: AthenaSummarySvc.cxx:113
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
BunchCrossingCondData::BunchCrossings
@ BunchCrossings
Distance in units of 25 nanoseconds.
Definition: BunchCrossingCondData.h:132
CaloCell::et
virtual double et() const override final
get et
Definition: CaloCell.h:407
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthMonitorAlgorithm::fill
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
LArProv::SCTIMEPASS
@ SCTIMEPASS
Definition: LArProvenance.h:29
LArSuperCellMonAlg::EMB1NS
@ EMB1NS
Definition: LArSuperCellMonAlg.h:106
LArSuperCellMonAlg::strToLower
std::string strToLower(const std::string &input) const
Definition: LArSuperCellMonAlg.cxx:297
BunchCrossingCondData::distanceFromFront
int distanceFromFront(const bcid_type bcid, const BunchDistanceType type=NanoSec) const
The distance of the specific bunch crossing from the front of the train.
Definition: BunchCrossingCondData.cxx:35
CaloCellContainer::findCell
const CaloCell * findCell(const IdentifierHash theHash) const
fast find method given identifier hash.
Definition: CaloCellContainer.cxx:345
CaloNoise
Definition: CaloNoise.h:16
merge.output
output
Definition: merge.py:17
LArSuperCellMonAlg::initThresh
StatusCode initThresh()
Definition: LArSuperCellMonAlg.cxx:67
HWIdentifier.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
LArProv::test
bool test(const uint16_t prov, const LArProvenance check)
Definition: LArProvenance.h:37
CaloDetDescrElement::identifyHash
IdentifierHash identifyHash() const override final
cell subcalo hash same as subcalo_hash(), but kept for backward compatibility
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:424
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
xAOD::bcid
setEventNumber setTimeStamp bcid
Definition: EventInfo_v1.cxx:133
Units.h
Wrapper to avoid constant divisions when using units.
CaloCellContainer.h
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
AthMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: AthMonitorAlgorithm.cxx:18
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
CaloDetDescrElement::getSampling
CaloCell_ID::CaloSample getSampling() const
cell sampling
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:395
LArSuperCellMonAlg::initialize
virtual StatusCode initialize() override final
initialize
Definition: LArSuperCellMonAlg.cxx:44
LArSuperCellMonAlg::m_superCellContainerRecoKey
SG::ReadHandleKey< CaloCellContainer > m_superCellContainerRecoKey
Definition: LArSuperCellMonAlg.h:56
LArSuperCellMonAlg::m_noiseCDOKey
SG::ReadCondHandleKey< CaloNoise > m_noiseCDOKey
Definition: LArSuperCellMonAlg.h:69
LArProvenance.h
LArSuperCellMonAlg::m_removeMasked
BooleanProperty m_removeMasked
Definition: LArSuperCellMonAlg.h:111
LArSuperCellMonAlg::m_caloSamplingToLyrNS
const std::map< unsigned, LayerEnumNoSides > m_caloSamplingToLyrNS
Definition: LArSuperCellMonAlg.h:119
Monitored::Scalar
Declare a monitored scalar variable.
Definition: MonitoredScalar.h:34
xAOD::lumiBlock
setTeId lumiBlock
Definition: L2StandAloneMuon_v1.cxx:327
CaloGain.h
LArSuperCellMonAlg::getHistoCoordinates
void getHistoCoordinates(const CaloDetDescrElement *dde, float &celleta, float &cellphi, unsigned &iLyr, unsigned &iLyrNS) const
Definition: LArSuperCellMonAlg.cxx:307
LArSuperCellMonAlg::EMB2NS
@ EMB2NS
Definition: LArSuperCellMonAlg.h:106
python.compressB64.c
def c
Definition: compressB64.py:93
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
CaloDetDescrElement::phi_raw
float phi_raw() const
cell phi_raw
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:352
LArSuperCellMonAlg::createPerJobHistograms
StatusCode createPerJobHistograms(const CaloCellContainer *cellcont, const CaloNoise *noisep) const
Definition: LArSuperCellMonAlg.cxx:243