Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
LArCelldeadOTXTool Class Reference

#include <LArCelldeadOTXTool.h>

Inheritance diagram for LArCelldeadOTXTool:
Collaboration diagram for LArCelldeadOTXTool:

Public Member Functions

 ~LArCelldeadOTXTool ()=default
 
virtual StatusCode initialize () override final
 
virtual StatusCode finalize () override final
 
virtual StatusCode process (CaloCellContainer *cellCollection, const EventContext &ctx) const override final
 

Private Types

typedef std::map< HWIdentifier, std::vector< std::pair< IdentifierHash, float > > > scToDeadCellMap_t
 

Private Member Functions

void buildMap (const EventContext &ctx, scToDeadCellMap_t &map, StatusCode &sc) const
 

Private Attributes

SG::ReadHandleKey< LArRawSCContainerm_SCKey {this, "keySC", "SC_ET","Key for SuperCells container"}
 
SG::ReadCondHandleKey< LArBadFebContm_MFKey {this, "keyMF", "LArBadFeb", "Key for missing FEBs"}
 
SG::ReadCondHandleKey< LArBadChannelContm_badSCKey {this, "BadSCKey", "LArBadChannelSC", "Key of the LArBadChannelCont SC" }
 
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this, "keyCabling", "LArOnOffIdMap", "Key for the cabling"}
 
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingSCKey {this, "keySCCabling", "LArOnOffIdMapSC", "Key for the cabling of the SC"}
 
SG::ReadCondHandleKey< CaloDetDescrManagerm_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager"}
 
Gaudi::Property< int > m_scCut {this,"SCEneCut",70,"Do not use super-cells with values below this cut"}
 
Gaudi::Property< bool > m_testMode {this,"TestMode",false}
 
const LArOnlineIDm_onlineID =nullptr
 
const CaloCell_IDm_calo_id =nullptr
 
ToolHandle< ICaloSuperCellIDToolm_scidtool {this, "CaloSuperCellIDTool", "CaloSuperCellIDTool", "Offline / SuperCell ID mapping tool"}
 
std::once_flag m_onceFlag ATLAS_THREAD_SAFE
 
scToDeadCellMap_t m_scToDead ATLAS_THREAD_SAFE
 
std::unordered_map< int, std::pair< float, int > > m_testMap ATLAS_THREAD_SAFE
 
std::mutex m_mtx
 
std::atomic< int > m_nWarnings {0}
 

Detailed Description

Definition at line 23 of file LArCelldeadOTXTool.h.

Member Typedef Documentation

◆ scToDeadCellMap_t

typedef std::map<HWIdentifier,std::vector<std::pair<IdentifierHash,float> > > LArCelldeadOTXTool::scToDeadCellMap_t
private

Definition at line 47 of file LArCelldeadOTXTool.h.

Constructor & Destructor Documentation

◆ ~LArCelldeadOTXTool()

LArCelldeadOTXTool::~LArCelldeadOTXTool ( )
default

Member Function Documentation

◆ buildMap()

void LArCelldeadOTXTool::buildMap ( const EventContext &  ctx,
scToDeadCellMap_t map,
StatusCode &  sc 
) const
private

Definition at line 130 of file LArCelldeadOTXTool.cxx.

130  {
131  scToHwidMap.clear(); // Just to be sure ...
132 
133  sc = StatusCode::FAILURE;
134 
136  if (!cablingHdl.isValid()) {
137  ATH_MSG_ERROR("Do not have Onl-Ofl cabling map !!!!");
138  return;
139  }
140  const LArOnOffIdMapping* oflCabling = cablingHdl.cptr();
141 
143  if (!cablingSCHdl.isValid()) {
144  ATH_MSG_ERROR("Do not have Onl-Ofl cabling map for SuperCells !!!!");
145  return;
146  }
147 
148  const LArOnOffIdMapping* scCabling = cablingSCHdl.cptr();
149 
151  if (!mfHdl.isValid()) {
152  ATH_MSG_ERROR("Do not have Missing FEBs container !!!!");
153  return;
154  }
155 
157  if (!caloMgrHandle.isValid()) {
158  ATH_MSG_ERROR("Do not have CaloDetDescManager !!!");
159  return;
160  }
161 
162  const CaloDetDescrManager* caloDDM = *caloMgrHandle;
163 
165  if (!bcSCHdl.isValid()) {
166  ATH_MSG_ERROR("Do not have BadSCContainer !!!!");
167  return;
168  }
169  const LArBadChannelCont* bcSCCont = *bcSCHdl;
170 
171  const auto& badFebs = mfHdl->fullCont();
172 
173  unsigned nDeadFebs = 0;
174  for (const auto& idBF : badFebs) {
175  if (idBF.second.deadReadout()) {
176  ++nDeadFebs;
177  const HWIdentifier febid(idBF.first);
178  ATH_MSG_INFO("FEB " << m_onlineID->channel_name(febid) << " labelled as deadReadout");
179  const unsigned nChans = m_onlineID->channelInSlotMax(febid);
180  for (unsigned ch = 0; ch < nChans; ++ch) {
181  const HWIdentifier chid = m_onlineID->channel_Id(febid, ch);
182  const Identifier id = oflCabling->cnvToIdentifier(chid);
183  const IdentifierHash hashId = m_calo_id->calo_cell_hash(id);
184  const Identifier scID = m_scidtool->offlineToSuperCellID(id);
185  const HWIdentifier scHwid = scCabling->createSignalChannelID(scID);
186  if (!bcSCCont->status(scHwid).good()) {
187  ATH_MSG_DEBUG("SuperCell with id 0x" << std::hex << scHwid.get_identifier32().get_compact() << std::dec
188  << " is ignored b/c of it's bad-channel word. Connected to deadFEB channel " << m_onlineID->channel_name(chid));
189  continue;
190  }
191  const unsigned nCell = (m_scidtool->superCellToOfflineID(scID)).size();
192  const CaloDetDescrElement* dde = caloDDM->get_element(hashId);
193  if (ATH_UNLIKELY(!dde)) {
194  ATH_MSG_ERROR("No DetDescElement for cell hash" << hashId);
195  return;
196  }
197  const float convFactor = 12.5 * (1.0 / nCell) * (1.0 / dde->sinTh());
198  // 12.5: Convert SC ADC to MeV (Et), et ->e, scale by the number of regular cells connected to this super-cell
199  scToHwidMap[scHwid].emplace_back(hashId, convFactor);
200  } // end loop over channels of one dead FEB
201  } // end if feb is deadAll
202  } // end loop over dead febs
203 
204  // bit of log-output ...
205  ATH_MSG_INFO("Number of deadReadout FEBs for this run: " << nDeadFebs);
206  if (msgLvl(MSG::DEBUG)) {
207  for (const auto& p : scToHwidMap) {
208  ATH_MSG_DEBUG(" SuperCell with id 0x" << std::hex << p.first.get_identifier32().get_compact() << std::dec << " connected to " << p.second.size()
209  << " deadFEB channels.");
210  for (const auto& [h, convFactor] : p.second) {
211  const HWIdentifier hwid = cablingHdl->createSignalChannelIDFromHash(h);
212  ATH_MSG_DEBUG(" " << m_onlineID->channel_name(hwid) << " " << convFactor);
213  }
214  }
215  }
216  sc = StatusCode::SUCCESS;
217  return;
218 }

◆ finalize()

StatusCode LArCelldeadOTXTool::finalize ( )
finaloverridevirtual

Definition at line 220 of file LArCelldeadOTXTool.cxx.

220  {
221  if (m_testMode) {
222  ATH_MSG_INFO("Test mode for cell-patching:");
223  std::vector<std::pair<float, float> > avgList;
224  for (auto& [scEne, entry] : m_testMap) {
225  avgList.emplace_back(scEne, entry.first / entry.second);
226  }
227  auto ordering = [](const std::pair<float, float>& a, std::pair<float, float>& b) { return (a.first < b.first); };
228  std::sort(avgList.begin(), avgList.end(), ordering);
229  for (auto& p : avgList) {
230  ATH_MSG_INFO("SCEne=" << p.first << "Avg patching ratio=" << p.second);
231  }
232  }
233  return StatusCode::SUCCESS;
234 }

◆ initialize()

StatusCode LArCelldeadOTXTool::initialize ( )
finaloverridevirtual

Definition at line 13 of file LArCelldeadOTXTool.cxx.

13  {
14 
16  ATH_CHECK(m_MFKey.initialize());
17  ATH_CHECK(m_badSCKey.initialize());
21 
22  ATH_CHECK(detStore()->retrieve(m_onlineID, "LArOnlineID"));
23  ATH_CHECK(detStore()->retrieve(m_calo_id, "CaloCell_ID"));
24 
25  ATH_CHECK(m_scidtool.retrieve());
26 
27  if (m_testMode) {
29  "Test mode activated with additional debug output. Makes only sense if we try to patch a FEB that is actually there, so we have a reference");
30  }
31 
32  return StatusCode::SUCCESS;
33 }

◆ process()

StatusCode LArCelldeadOTXTool::process ( CaloCellContainer cellCollection,
const EventContext &  ctx 
) const
finaloverridevirtual

Definition at line 35 of file LArCelldeadOTXTool.cxx.

35  {
36 
37  ATH_MSG_VERBOSE(" in process...");
38  if (!cellCollection) {
39  ATH_MSG_ERROR("Cell Correction tool receives invalid cell Collection");
40  return StatusCode::FAILURE;
41  }
42 
43  if (!(cellCollection->hasCalo(CaloCell_ID::LAREM) ||
44  cellCollection->hasCalo(CaloCell_ID::LARHEC) ||
45  cellCollection->hasCalo(CaloCell_ID::LARFCAL))) {
46  ATH_MSG_VERBOSE("No LAr cell in CellContainer. Do nothing");
47  return StatusCode::SUCCESS;
48  }
49 
50  StatusCode sc = StatusCode::SUCCESS;
51  std::call_once(m_onceFlag, &LArCelldeadOTXTool::buildMap, this, ctx, m_scToDead, sc);
52 
53  if (sc.isFailure()) {
54  ATH_MSG_ERROR("Call to LArCelldeadOTXTool::buidMap returned an error");
55  return StatusCode::FAILURE;
56  }
57 
58  if (m_scToDead.empty()) {
59  return StatusCode::SUCCESS; // No dead FEBs, do nothing
60  }
61 
62  // get SuperCellContainer
64  if (!scHdl.isValid()) {
65  if (msgLvl(MSG::WARNING) && m_nWarnings < 5) {
66  ATH_MSG_WARNING("Do not have SuperCell container no patching !!!!");
67  ++m_nWarnings;
68  }
69  return StatusCode::SUCCESS;
70  }
71 
72  const unsigned int bcid = ctx.eventID().bunch_crossing_id();
73 
74  // get the SC, container is unordered, so have to loop
75  const LArRawSCContainer* scells = scHdl.cptr();
76  for (const auto* sc : *scells) {
77  if (!sc)
78  continue;
79  const HWIdentifier scHwid = sc->hardwareID();
80  auto itr = m_scToDead.find(scHwid);
81  if (itr == m_scToDead.end())
82  continue; // This SC is not connected to any deadFEB cell
83 
84  const std::vector<unsigned short>& bcids = sc->bcids();
85  const std::vector<int>& energies = sc->energies();
86  const std::vector<bool>& satur = sc->satur();
87 
88  // Look for bcid:
89  float scEne = 0;
90  const size_t nBCIDs = bcids.size();
91  size_t i = 0;
92  for (i = 0; i < nBCIDs && bcids[i] != bcid; i++)
93  ;
94 
95  if (ATH_LIKELY(!satur[i]))
96  scEne = energies[i];
97  if (scEne < m_scCut) {
98  ATH_MSG_VERBOSE("SC value " << scEne << " below threshold, ignoring");
99  continue;
100  }
101  float cellESum = 0;
102  float patchEneSum = 0;
103  for (const auto& [h, convFactor] : itr->second) { // Loop over all deadFEB cells connected to this SC
104  CaloCell* cell = cellCollection->findCell(h);
105  if (cell) {
106  const float patchEne = scEne * convFactor; // Convert ET (coming from LATOMEs) into Energy
107  if (m_testMode) {
108  cellESum += cell->energy();
109  patchEneSum += patchEne;
110  }
111  ATH_MSG_DEBUG("Cell id 0x" << std::hex << cell->ID().get_identifier32().get_compact() << " Replacing energy " << cell->energy() << " " << patchEne
112  << ", SCene=" << scEne);
113  cell->setEnergy(patchEne);
114  cell->setProvenance(cell->provenance() | LArProv::PATCHED);
115  } // end if cell obj found
116  } // end loop over all deadFEB cells connected to this SC
117  if (m_testMode) {
118  const float ratio = patchEneSum != 0 ? cellESum / patchEneSum : 0;
119  ATH_MSG_DEBUG("ESums=" << cellESum << "/" << patchEneSum << "=" << ratio);
120  std::scoped_lock l(m_mtx);
121  auto& entry = m_testMap[scEne];
122  entry.first += ratio;
123  entry.second++;
124  } // end if testMode
125  } // End loop over SuperCell container
126 
127  return StatusCode::SUCCESS;
128 }

Member Data Documentation

◆ ATLAS_THREAD_SAFE [1/3]

std::once_flag m_onceFlag LArCelldeadOTXTool::ATLAS_THREAD_SAFE
mutableprivate

Definition at line 51 of file LArCelldeadOTXTool.h.

◆ ATLAS_THREAD_SAFE [2/3]

scToDeadCellMap_t m_scToDead LArCelldeadOTXTool::ATLAS_THREAD_SAFE
mutableprivate

Definition at line 52 of file LArCelldeadOTXTool.h.

◆ ATLAS_THREAD_SAFE [3/3]

std::unordered_map<int,std::pair<float,int> > m_testMap LArCelldeadOTXTool::ATLAS_THREAD_SAFE
mutableprivate

Definition at line 54 of file LArCelldeadOTXTool.h.

◆ m_badSCKey

SG::ReadCondHandleKey<LArBadChannelCont> LArCelldeadOTXTool::m_badSCKey {this, "BadSCKey", "LArBadChannelSC", "Key of the LArBadChannelCont SC" }
private

Definition at line 36 of file LArCelldeadOTXTool.h.

◆ m_cablingKey

SG::ReadCondHandleKey<LArOnOffIdMapping> LArCelldeadOTXTool::m_cablingKey {this, "keyCabling", "LArOnOffIdMap", "Key for the cabling"}
private

Definition at line 37 of file LArCelldeadOTXTool.h.

◆ m_cablingSCKey

SG::ReadCondHandleKey<LArOnOffIdMapping> LArCelldeadOTXTool::m_cablingSCKey {this, "keySCCabling", "LArOnOffIdMapSC", "Key for the cabling of the SC"}
private

Definition at line 38 of file LArCelldeadOTXTool.h.

◆ m_calo_id

const CaloCell_ID* LArCelldeadOTXTool::m_calo_id =nullptr
private

Definition at line 44 of file LArCelldeadOTXTool.h.

◆ m_caloMgrKey

SG::ReadCondHandleKey<CaloDetDescrManager> LArCelldeadOTXTool::m_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager"}
private

Definition at line 39 of file LArCelldeadOTXTool.h.

◆ m_MFKey

SG::ReadCondHandleKey<LArBadFebCont> LArCelldeadOTXTool::m_MFKey {this, "keyMF", "LArBadFeb", "Key for missing FEBs"}
private

Definition at line 35 of file LArCelldeadOTXTool.h.

◆ m_mtx

std::mutex LArCelldeadOTXTool::m_mtx
mutableprivate

Definition at line 55 of file LArCelldeadOTXTool.h.

◆ m_nWarnings

std::atomic<int> LArCelldeadOTXTool::m_nWarnings {0}
mutableprivate

Definition at line 57 of file LArCelldeadOTXTool.h.

◆ m_onlineID

const LArOnlineID* LArCelldeadOTXTool::m_onlineID =nullptr
private

Definition at line 43 of file LArCelldeadOTXTool.h.

◆ m_scCut

Gaudi::Property<int> LArCelldeadOTXTool::m_scCut {this,"SCEneCut",70,"Do not use super-cells with values below this cut"}
private

Definition at line 41 of file LArCelldeadOTXTool.h.

◆ m_scidtool

ToolHandle<ICaloSuperCellIDTool> LArCelldeadOTXTool::m_scidtool {this, "CaloSuperCellIDTool", "CaloSuperCellIDTool", "Offline / SuperCell ID mapping tool"}
private

Definition at line 45 of file LArCelldeadOTXTool.h.

◆ m_SCKey

SG::ReadHandleKey<LArRawSCContainer> LArCelldeadOTXTool::m_SCKey {this, "keySC", "SC_ET","Key for SuperCells container"}
private

Definition at line 34 of file LArCelldeadOTXTool.h.

◆ m_testMode

Gaudi::Property<bool> LArCelldeadOTXTool::m_testMode {this,"TestMode",false}
private

Definition at line 42 of file LArCelldeadOTXTool.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
CaloCell_Base_ID::LARFCAL
@ LARFCAL
Definition: CaloCell_Base_ID.h:46
LArCelldeadOTXTool::m_scCut
Gaudi::Property< int > m_scCut
Definition: LArCelldeadOTXTool.h:41
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
CaloCell_Base_ID::calo_cell_hash
IdentifierHash calo_cell_hash(const Identifier cellId) const
create hash id from 'global' cell id
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
LArCelldeadOTXTool::m_MFKey
SG::ReadCondHandleKey< LArBadFebCont > m_MFKey
Definition: LArCelldeadOTXTool.h:35
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
LArCelldeadOTXTool::buildMap
void buildMap(const EventContext &ctx, scToDeadCellMap_t &map, StatusCode &sc) const
Definition: LArCelldeadOTXTool.cxx:130
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
LArRawSCContainer
Container class for LArRawSC.
Definition: LArRawSCContainer.h:17
LArBadXCont
Conditions-Data class holding LAr Bad Channel or Bad Feb information.
Definition: LArBadChannelCont.h:28
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
LArCelldeadOTXTool::m_badSCKey
SG::ReadCondHandleKey< LArBadChannelCont > m_badSCKey
Definition: LArCelldeadOTXTool.h:36
Identifier::get_identifier32
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
CaloCell_Base_ID::LARHEC
@ LARHEC
Definition: CaloCell_Base_ID.h:46
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
ATH_UNLIKELY
#define ATH_UNLIKELY(x)
Definition: AthUnlikelyMacros.h:17
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
HWIdentifier
Definition: HWIdentifier.h:13
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
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
LArCelldeadOTXTool::m_SCKey
SG::ReadHandleKey< LArRawSCContainer > m_SCKey
Definition: LArCelldeadOTXTool.h:34
LArBadXCont::fullCont
const BadChanVec & fullCont() const
Definition: LArBadChannelCont.h:84
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LArCelldeadOTXTool::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: LArCelldeadOTXTool.h:37
LArProv::PATCHED
@ PATCHED
Definition: LArProvenance.h:21
LArCelldeadOTXTool::m_scidtool
ToolHandle< ICaloSuperCellIDTool > m_scidtool
Definition: LArCelldeadOTXTool.h:45
lumiFormat.i
int i
Definition: lumiFormat.py:85
LArOnlineID_Base::channelInSlotMax
int channelInSlotMax(const HWIdentifier Id) const
Return the Maximum channel number of a given feb slot.
Definition: LArOnlineID_Base.cxx:287
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
LArOnlineID_Base::channel_Id
HWIdentifier channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create channel identifier from fields
Definition: LArOnlineID_Base.cxx:1565
LArCelldeadOTXTool::m_onlineID
const LArOnlineID * m_onlineID
Definition: LArCelldeadOTXTool.h:43
LArCelldeadOTXTool::m_testMode
Gaudi::Property< bool > m_testMode
Definition: LArCelldeadOTXTool.h:42
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
LArCelldeadOTXTool::m_cablingSCKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingSCKey
Definition: LArCelldeadOTXTool.h:38
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
LArOnOffIdMapping::createSignalChannelID
HWIdentifier createSignalChannelID(const Identifier &id) const
create a HWIdentifier from an Identifier (not inline)
Definition: LArOnOffIdMapping.h:126
LArCelldeadOTXTool::m_nWarnings
std::atomic< int > m_nWarnings
Definition: LArCelldeadOTXTool.h:57
CaloCellContainer::findCell
const CaloCell * findCell(const IdentifierHash theHash) const
fast find method given identifier hash.
Definition: CaloCellContainer.cxx:345
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
LArCelldeadOTXTool::m_caloMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Definition: LArCelldeadOTXTool.h:39
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
xAOD::bcid
setEventNumber setTimeStamp bcid
Definition: EventInfo_v1.cxx:133
ATH_LIKELY
#define ATH_LIKELY(x)
Definition: AthUnlikelyMacros.h:16
LArCelldeadOTXTool::m_mtx
std::mutex m_mtx
Definition: LArCelldeadOTXTool.h:55
a
TList * a
Definition: liststreamerinfos.cxx:10
h
python.compareTCTs.ratio
ratio
Definition: compareTCTs.py:295
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
LArOnOffIdMapping::cnvToIdentifier
Identifier cnvToIdentifier(const HWIdentifier &sid) const
create an Identifier from a HWIdentifier (inline)
Definition: LArOnOffIdMapping.h:116
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DEBUG
#define DEBUG
Definition: page_access.h:11
LArCelldeadOTXTool::m_calo_id
const CaloCell_ID * m_calo_id
Definition: LArCelldeadOTXTool.h:44
CaloCellContainer::hasCalo
bool hasCalo(const CaloCell_ID::SUBCALO caloNum) const
tell wether it has been filled with cells (maybe none) of a given calo
Definition: CaloCellContainer.cxx:209
CaloDetDescrElement::sinTh
float sinTh() const
for algorithm working in transverse Energy
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:383
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
CaloCell_Base_ID::LAREM
@ LAREM
Definition: CaloCell_Base_ID.h:46
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:219
hist_file_dump.ordering
ordering
Definition: hist_file_dump.py:86
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20
Identifier
Definition: IdentifierFieldParser.cxx:14