ATLAS Offline Software
LArSCvsRawChannelMonAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
8 #include "CaloDetDescr/CaloDetDescrElement.h"
10 
12 
17  ATH_CHECK(m_badChanKey.initialize());
18  ATH_CHECK(m_badSCKey.initialize());
20  ATH_CHECK(detStore()->retrieve(m_onlineID, "LArOnlineID"));
21  ATH_CHECK(detStore()->retrieve(m_calo_id, "CaloCell_ID"));
22  ATH_CHECK(m_scidtool.retrieve());
25 
26  ATH_MSG_INFO("Building tool map");
27  m_toolmapPerLayer = Monitored::buildToolMap<int>( m_tools, "LArSCvsRawChannelMon", m_layerNames);
28 
30 }
31 
32 struct MonValues {
33  float raw_eta;
34  float raw_phi;
35  float scEne;
36  float eneSum;
37  float eneFrac;
38 };
39 
40 
41 StatusCode LArSCvsRawChannelMonAlg::fillHistograms(const EventContext& ctx) const {
42 
44  if (!cablingHdl.isValid()) {
45  ATH_MSG_ERROR("Do not have Onl-Ofl cabling map !!!!");
46  return StatusCode::FAILURE;
47  }
48 
50  if (!cablingSCHdl.isValid()) {
51  ATH_MSG_ERROR("Do not have Onl-Ofl cabling map for SuperCells !!!!");
52  return StatusCode::FAILURE;
53  }
54 
56  if (!scDetMgr.isValid()) {
57  ATH_MSG_ERROR("Do not have CaloSuperCellDetDescrManager !!!!");
58  return StatusCode::FAILURE;
59  }
60 
62  if (!bcHdl.isValid()) {
63  ATH_MSG_ERROR("Do not have BadChannelContainer !!!!");
64  return StatusCode::FAILURE;
65  }
66  const LArBadChannelCont* bcCont = *bcHdl;
67 
69  if (!bcSCHdl.isValid()) {
70  ATH_MSG_ERROR("Do not have BadSCContainer !!!!");
71  return StatusCode::FAILURE;
72  }
73  const LArBadChannelCont* bcSCCont = *bcSCHdl;
74 
75  // get SuperCellContainer
77  if (!scHdl.isValid()) {
78  ATH_MSG_WARNING("Do not have LArRawSCContainer container with key" << m_SCKey.key());
79  return StatusCode::SUCCESS;
80  } else {
81  ATH_MSG_DEBUG("Reading SuperCell container with key " << m_SCKey.key() << ", size=" << scHdl->size());
82  }
83 
84  // get regular LArRawChannel container
86  if (!scHdl.isValid()) {
87  ATH_MSG_WARNING("Do not have LArRawChannel container with key" << m_RCKey.key());
88  return StatusCode::SUCCESS;
89  } else {
90  ATH_MSG_DEBUG("Reading LArRawChannel container with key " << m_RCKey.key() << ", size=" << rcHdl->size());
91  }
92 
93  const CaloBCIDAverage* bcidavgshift = nullptr;
94  if (!(m_caloBCIDAvg.key().empty())) {
95  SG::ReadHandle<CaloBCIDAverage> bcidavgshiftHdl(m_caloBCIDAvg, ctx);
96  bcidavgshift = bcidavgshiftHdl.cptr();
97  }
98 
99  const unsigned int bcid = ctx.eventID().bunch_crossing_id();
100 
101  std::vector<std::pair<Monitored::Scalar<float>, Monitored::Scalar<float> > > monVars;
102  for (int p = 0; p < MAXPARTITIONS; ++p) {
103  monVars.emplace_back(Monitored::Scalar<float>("scEne_" + m_partitionNames.value()[p], 0.0),
104  Monitored::Scalar<float>("eneSum_" + m_partitionNames.value()[p], 0.0));
105  }
106 
107  std::vector<std::vector<MonValues>> MonValueVec(m_layerNames.size());
108 
109  for (const LArRawSC* rawSC : *scHdl) {
110  const std::vector<unsigned short>& bcids = rawSC->bcids();
111  const std::vector<int>& energies = rawSC->energies();
112  const std::vector<bool>& satur = rawSC->satur();
113 
114  // Look for bcid:
115  float scEne = 0;
116 
117  const size_t nBCIDs = bcids.size();
118  size_t i = 0;
119  for (i = 0; i < nBCIDs && bcids[i] != bcid; i++)
120  ;
121  if (satur[i])
122  continue;
123 
124  if (!bcSCCont->status(rawSC->hardwareID()).good())
125  continue;
126 
127  scEne = energies[i];
128  if (scEne < m_scEneCut)
129  continue;
130  Identifier off_id = cablingSCHdl->cnvToIdentifier(rawSC->hardwareID());
131 
132 
133  const int iPart = getPartition(off_id);
134  if (iPart < 0) {
135  ATH_MSG_ERROR("Got unkonwn partition number " << iPart);
136  return StatusCode::FAILURE;
137  }
138  const std::vector<Identifier>& regularIDs = m_scidtool->superCellToOfflineID(off_id);
139  std::set<HWIdentifier> hwids;
140  for (const Identifier& id : regularIDs) {
141  hwids.insert(cablingHdl->createSignalChannelID(id));
142  }
143  // Loop over regular RawChannelContainer to find the relevant cells:
144  float eneSum = 0;
145  const size_t nChans = rcHdl->size();
146  bool hasBadChan = false;
147  for (size_t i = 0; i < nChans && !hwids.empty(); ++i) {
148  const LArRawChannel& rc = rcHdl->at(i);
149  if (hwids.contains(rc.hardwareID())) {
150  if (m_bcMask.cellShouldBeMasked(bcCont, rc.hardwareID())) {
151  hasBadChan = true;
152  break;
153  }
154 
155  bcHdl->status(rc.hardwareID()).deadReadout();
156  eneSum += rc.energy();
157  if (bcidavgshift)
158  eneSum -= bcidavgshift->average(rc.hardwareID());
159  hwids.erase(rc.hardwareID());
160  }
161  } // end loop over regular raw channels
162 
163  if (hasBadChan) {
164  ATH_MSG_DEBUG("SuperCell with id 0x" << std::hex << off_id.get_identifier32().get_compact() << std::dec << " E[" << i << "]=" << scEne
165  << " is connected to at least one bad channel. Ignoring SC.");
166  continue;
167  }
168  if (!hwids.empty()) {
169  ATH_MSG_ERROR("SuperCell with id 0x" << std::hex << off_id.get_identifier32().get_compact() << std::dec << ": " << hwids.size()
170  << " attached regular RawChannels not found");
171  continue; // Ignore this supercell
172  }
173  const CaloDetDescrElement* scDDE = scDetMgr->get_element(off_id);
174  scEne *= 12.5 / scDDE->sinTh();
175  ATH_MSG_VERBOSE("SuperCell with id 0x" << std::hex << off_id.get_identifier32().get_compact() << std::dec << ", eta=" << scDDE->eta() << " E[" << i
176  << "]=" << scEne << " Sum of RC energies=" << eneSum << ", Ratio=" << (eneSum != 0 ? scEne / eneSum : 0.0));
177 
178  if (m_warnOffenders && scEne > 15000 && eneSum < 5000) {
179  ATH_MSG_WARNING("SuperCell with id 0x" << std::hex << off_id.get_identifier32().get_compact() << std::dec << ", eta=" << scDDE->eta() << " E[" << i
180  << "]=" << scEne << " Sum of RC energies=" << eneSum);
181  }
182 
183  float eneFrac = 0;
184  if ( eneSum != 0 and scEne != 0 ){
185  eneFrac = scEne / eneSum;
186  }
187 
188 
189  const float eta = scDDE->eta_raw();
190  const float phi = scDDE->phi_raw();
191  const int calosample=scDDE->getSampling();
192  const unsigned iLyrNS=m_caloSamplingToLyrNS[calosample];
193  const int side = m_onlineID->pos_neg(rawSC->hardwareID());
194  const unsigned iLyr=iLyrNS*2+side;
195 
196  auto& lvaluemap = MonValueVec[iLyr];
197 
198  ATH_MSG_DEBUG("Chan "<<rawSC->hardwareID()<<" "<<rawSC->SourceId()<<" "<<m_onlineID->channel_name(rawSC->hardwareID())<<" iPart "<<iPart<<" iLyrNS "<<iLyrNS<<" side "<<side<<" iLyr "<<iLyr<<" "<<m_layerNames[iLyr]<<" MAXP "<<MAXPARTITIONS<<" MAXL "<<MAXLYRNS);
199 
200 
201  auto& monPair = monVars[iPart];
202  monPair.first = scEne;
203  monPair.second = eneSum;
204 
205 
206  lvaluemap.emplace_back(eta, phi, scEne, eneSum, eneFrac);
207 
208 
209  fill(m_MonGroupName, monPair.first, monPair.second); //, monPairLyr.first, monPairLyr.second);
210  }
211 
212 
213  for (size_t ilayer = 0; ilayer < MonValueVec.size(); ++ilayer) {
214  const auto& tool = MonValueVec[ilayer];
215  auto part_eta = Monitored::Collection("part_eta",tool,[](const auto& v){return v.raw_eta;});
216  auto part_phi = Monitored::Collection("part_phi",tool,[](const auto& v){return v.raw_phi;});
217  auto part_scEne = Monitored::Collection("part_scEne",tool,[](const auto& v){return v.scEne;});
218  auto part_eneSum = Monitored::Collection("part_eneSum",tool,[](const auto& v){return v.eneSum;});
219  auto part_eneFrac = Monitored::Collection("part_eneFrac",tool,[](const auto& v){return v.eneFrac;});
220 
222  part_eta, part_phi, part_scEne, part_eneSum, part_eneFrac);
223 
224  }
225 
226 
227  return StatusCode::SUCCESS;
228 }
229 
231  const int s = m_calo_id->calo_sample(id);
232 
233  // PreSamplerB=0, EMB1, EMB2, EMB3, PreSamplerE, EME1, EME2, EME3, HEC0, HEC1,
234  // HEC2, HEC3, TileBar0, TileBar1, TileBar2,TileGap1, TileGap2, TileGap3,
235  // TileExt0, TileExt1, TileExt2, FCAL0, FCAL1, FCAL2, MINIFCAL0, MINIFCAL1,
236  // MINIFCAL2, MINIFCAL3,
237  constexpr std::array<int, CaloSampling::getNumberOfSamplings()> samplingToPartitonMap{
238  0, 0, 0, 0, // Barrel BS to EMB3
239  2, 2, 2, 2, // EMEC PS to EME3
240  4, 4, 4, 4, // HEC0 to HEC3
241  -1, -1, -1, // TileBar0 - 2 (ignored)
242  -1, -1, -1, // Tile Gap 0 -2 (ignored)
243  -1, -1, -1, // TIleExt0 0-2 (ignored)
244  6, 6, 6, // FCAL 0-2
245  -1, -1, -1, -1 // MiniFCAL0-3 (ignored)
246  };
247 
248  const int pNoSide = samplingToPartitonMap[s];
249  if (ATH_UNLIKELY(pNoSide < 0)) {
250  return MAXPARTITIONS;
251  }
252 
253  return (m_calo_id->pos_neg(id) < 0) ? pNoSide + 1 : pNoSide;
254 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
LArRawSC
Liquid Argon SuperCell raw data.
Definition: LArRawSC.h:19
LArSCvsRawChannelMonAlg::m_scEneCut
Gaudi::Property< int > m_scEneCut
Definition: LArSCvsRawChannelMonAlg.h:46
LArSCvsRawChannelMonAlg::m_MonGroupName
Gaudi::Property< std::string > m_MonGroupName
Definition: LArSCvsRawChannelMonAlg.h:48
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
LArSCvsRawChannelMonAlg::getPartition
int getPartition(const Identifier &scid) const
Definition: LArSCvsRawChannelMonAlg.cxx:230
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
LArSCvsRawChannelMonAlg::m_onlineID
const LArOnlineID * m_onlineID
Definition: LArSCvsRawChannelMonAlg.h:96
LArBadXCont
Conditions-Data class holding LAr Bad Channel or Bad Feb information.
Definition: LArBadChannelCont.h:28
CaloCell_Base_ID::pos_neg
int pos_neg(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
CaloDetDescrManager_Base::get_element
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
Definition: CaloDetDescrManager.cxx:159
SG::ReadCondHandle::isValid
bool isValid()
Definition: ReadCondHandle.h:210
Identifier::get_identifier32
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
LArBadChannelMask::buildBitMask
StatusCode buildBitMask(const std::vector< std::string > &problemsToMask, MsgStream &msg)
Definition: LArBadChannelMask.cxx:10
ATH_UNLIKELY
#define ATH_UNLIKELY(x)
Definition: AthUnlikelyMacros.h:17
CaloCell_Base_ID::calo_sample
int calo_sample(const Identifier id) const
returns an int taken from Sampling enum and describing the subCalo to which the Id belongs.
Definition: CaloCell_Base_ID.cxx:142
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
LArBadChannelMask::cellShouldBeMasked
bool cellShouldBeMasked(const LArBadChannelCont *bcCont, const HWIdentifier &hardwareId) const
Definition: LArBadChannelMask.h:42
LArSCvsRawChannelMonAlg::m_scidtool
ToolHandle< ICaloSuperCellIDTool > m_scidtool
Definition: LArSCvsRawChannelMonAlg.h:98
LArBadXCont::status
LArBC_t status(const HWIdentifier channel) const
Query the status of a particular channel or FEB This is the main client access method.
Identifier32::get_compact
value_type get_compact() const
Get the compact id.
Definition: Identifier32.h:44
MonValues::scEne
float scEne
Definition: LArSCvsRawChannelMonAlg.cxx:35
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
Monitored::Collection
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
Definition: MonitoredCollection.h:38
LArSCvsRawChannelMonAlg::m_badChanKey
SG::ReadCondHandleKey< LArBadChannelCont > m_badChanKey
Definition: LArSCvsRawChannelMonAlg.h:41
TRT::Hit::side
@ side
Definition: HitInfo.h:83
LArSCvsRawChannelMonAlg::m_problemsToMask
Gaudi::Property< std::vector< std::string > > m_problemsToMask
Definition: LArSCvsRawChannelMonAlg.h:49
LArSCvsRawChannelMonAlg::m_caloSuperCellMgrKey
SG::ReadCondHandleKey< CaloSuperCellDetDescrManager > m_caloSuperCellMgrKey
Definition: LArSCvsRawChannelMonAlg.h:40
LArSCvsRawChannelMonAlg::m_cablingSCKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingSCKey
Definition: LArSCvsRawChannelMonAlg.h:39
LArSCvsRawChannelMonAlg::m_toolmapPerLayer
std::map< std::string, int > m_toolmapPerLayer
Definition: LArSCvsRawChannelMonAlg.h:94
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LArSCvsRawChannelMonAlg::m_SCKey
SG::ReadHandleKey< LArRawSCContainer > m_SCKey
Definition: LArSCvsRawChannelMonAlg.h:36
lumiFormat.i
int i
Definition: lumiFormat.py:85
LArRawChannel
Liquid Argon ROD output object base class.
Definition: LArRawChannel.h:40
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LArSCvsRawChannelMonAlg::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: LArSCvsRawChannelMonAlg.cxx:41
LArSCvsRawChannelMonAlg.h
MonValues::raw_eta
float raw_eta
Definition: LArSCvsRawChannelMonAlg.cxx:33
LArOnlineID_Base::pos_neg
int pos_neg(const HWIdentifier id) const
Return the side of a hardware cell identifier pos_neg = [0,1] positive-side or negative-side Barrel...
Definition: LArOnlineID_Base.cxx:1954
LArSCvsRawChannelMonAlg::m_bcMask
LArBadChannelMask m_bcMask
Definition: LArSCvsRawChannelMonAlg.h:100
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CaloBCIDAverage
Definition: CaloBCIDAverage.h:16
MonValues
Definition: LArSCvsRawChannelMonAlg.cxx:32
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
LArSCvsRawChannelMonAlg::m_RCKey
SG::ReadHandleKey< LArRawChannelContainer > m_RCKey
Definition: LArSCvsRawChannelMonAlg.h:37
LArOnOffIdMapping::createSignalChannelID
HWIdentifier createSignalChannelID(const Identifier &id) const
create a HWIdentifier from an Identifier (not inline)
Definition: LArOnOffIdMapping.h:126
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
LArSCvsRawChannelMonAlg::m_partitionNames
StringArrayProperty m_partitionNames
Definition: LArSCvsRawChannelMonAlg.h:52
LArSCvsRawChannelMonAlg::m_caloSamplingToLyrNS
const std::array< unsigned, CaloSampling::Unknown > m_caloSamplingToLyrNS
Definition: LArSCvsRawChannelMonAlg.h:63
lumiFormat.array
array
Definition: lumiFormat.py:91
AthMonitorAlgorithm::m_tools
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
Definition: AthMonitorAlgorithm.h:338
LArSCvsRawChannelMonAlg::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: LArSCvsRawChannelMonAlg.h:38
MonValues::raw_phi
float raw_phi
Definition: LArSCvsRawChannelMonAlg.cxx:34
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:452
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
xAOD::bcid
setEventNumber setTimeStamp bcid
Definition: EventInfo_v1.cxx:133
CaloSampling::getNumberOfSamplings
static constexpr unsigned int getNumberOfSamplings()
Get number of available samplings.
Definition: Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:30
LArSCvsRawChannelMonAlg::initialize
virtual StatusCode initialize() override final
initialize
Definition: LArSCvsRawChannelMonAlg.cxx:11
AthMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: AthMonitorAlgorithm.cxx:18
CaloBCIDAverage::average
float average(const Identifier &id) const
Definition: CaloBCIDAverage.h:27
LArSCvsRawChannelMonAlg::MAXPARTITIONS
@ MAXPARTITIONS
Definition: LArSCvsRawChannelMonAlg.h:53
python.PyAthena.v
v
Definition: PyAthena.py:154
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
CaloDetDescrElement::getSampling
CaloCell_ID::CaloSample getSampling() const
cell sampling
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:395
MonValues::eneFrac
float eneFrac
Definition: LArSCvsRawChannelMonAlg.cxx:37
LArOnOffIdMapping::cnvToIdentifier
Identifier cnvToIdentifier(const HWIdentifier &sid) const
create an Identifier from a HWIdentifier (inline)
Definition: LArOnOffIdMapping.h:116
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
MonValues::eneSum
float eneSum
Definition: LArSCvsRawChannelMonAlg.cxx:36
LArSCvsRawChannelMonAlg::m_caloBCIDAvg
SG::ReadHandleKey< CaloBCIDAverage > m_caloBCIDAvg
Definition: LArSCvsRawChannelMonAlg.h:44
AthCommonMsg< Gaudi::Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
python.SystemOfUnits.s
float s
Definition: SystemOfUnits.py:147
LArSCvsRawChannelMonAlg::m_badSCKey
SG::ReadCondHandleKey< LArBadChannelCont > m_badSCKey
Definition: LArSCvsRawChannelMonAlg.h:42
LArSCvsRawChannelMonAlg::m_calo_id
const CaloCell_ID * m_calo_id
Definition: LArSCvsRawChannelMonAlg.h:97
CaloDetDescrElement::eta
float eta() const
cell eta
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:344
LArSCvsRawChannelMonAlg::MAXLYRNS
@ MAXLYRNS
Definition: LArSCvsRawChannelMonAlg.h:59
CaloDetDescrElement::sinTh
float sinTh() const
for algorithm working in transverse Energy
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:383
Monitored::Scalar
Declare a monitored scalar variable.
Definition: MonitoredScalar.h:34
LArSCvsRawChannelMonAlg::m_warnOffenders
Gaudi::Property< bool > m_warnOffenders
Definition: LArSCvsRawChannelMonAlg.h:47
LArOnlineID_Base::channel_name
std::string channel_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.
Definition: LArOnlineID_Base.cxx:225
SG::AllowEmpty
@ AllowEmpty
Definition: StoreGate/StoreGate/VarHandleKey.h:27
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
LArSCvsRawChannelMonAlg::m_layerNames
StringArrayProperty m_layerNames
Definition: LArSCvsRawChannelMonAlg.h:55
LArOnlineID.h
CaloDetDescrElement::phi_raw
float phi_raw() const
cell phi_raw
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:352
Identifier
Definition: IdentifierFieldParser.cxx:14