|
ATLAS Offline Software
|
Building LArCell objects from LArRawChannel.
More...
#include <LArCellBuilderFromLArRawChannelTool.h>
|
SG::ReadHandleKey< LArRawChannelContainer > | m_rawChannelsKey {this,"RawChannelsName","LArRawChannels","Name of input container"} |
| rdo container name (jO) More...
|
|
Gaudi::Property< bool > | m_addDeadOTX {this,"addDeadOTX",true,"Add dummy cells for missing FEBs"} |
| activate addition of missing cells from dead OTX More...
|
|
Gaudi::Property< int > | m_initialDataPoolSize {this,"InitialCellPoolSize",-1,"Initial size of the DataPool<LArCells> (-1: Use nCells)"} |
| Initial size of DataPool<LArCell> More...
|
|
unsigned | m_nTotalCells =0 |
| Number of cells, set in Initialize() More...
|
|
SG::ReadCondHandleKey< LArOnOffIdMapping > | m_cablingKey {this,"LArCablingKey","LArOnOffIdMap","Key of conditions data object holding cabling"} |
|
const LArOnlineID * | m_onlineID =nullptr |
|
const CaloCell_ID * | m_caloCID =nullptr |
|
SG::ReadCondHandleKey< LArBadFebCont > | m_missingFebKey {this,"MissingFebKey","LArBadFeb","Key of conditions data object holding bad-feb info"} |
|
SG::ReadCondHandleKey< CaloDetDescrManager > | m_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager"} |
|
Building LArCell objects from LArRawChannel.
An AlgTool class to create a CaloCellContainer out of a LArRawChannel container.
AlgTool properties (name defined in cxx file): RawChannelsName : input RawChannelContainer EThreshold: energy threshold
Modified: Dec 4, 2002 Hong Ma Use MakeLArCellFromRaw to make LArCell. Modified: June 2, 2004, David Rousseau : converted to AlgTool
Inherits from ICaloCellMakerTool and should be called by an instance of the CaloCellMaker algorithm.
Definition at line 52 of file LArCellBuilderFromLArRawChannelTool.h.
◆ ~LArCellBuilderFromLArRawChannelTool()
virtual LArCellBuilderFromLArRawChannelTool::~LArCellBuilderFromLArRawChannelTool |
( |
| ) |
|
|
virtualdefault |
Destructor, deletes the MsgService.
◆ initialize()
StatusCode LArCellBuilderFromLArRawChannelTool::initialize |
( |
| ) |
|
|
overridevirtual |
Initialize method.
- Returns
- Gaudi status code.
Initialazes pointers to servies and private members variable. Sets the m_subCalo variable based on the m_lArRegion jobOption. Computes the total number of cells based on the subcalo hash-range.
Definition at line 31 of file LArCellBuilderFromLArRawChannelTool.cxx.
45 ATH_MSG_ERROR(
"Configuration problem: 'addDeadOTX' set, but no missing FEB container given." );
46 return StatusCode::FAILURE;
67 return StatusCode::SUCCESS;
◆ process()
StatusCode LArCellBuilderFromLArRawChannelTool::process |
( |
CaloCellContainer * |
theCellContainer, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
overridevirtual |
process method as defined in ICaloCellMaker interface
- Parameters
-
theCellContainer | Pointer to the CaloCellContainer we are working on |
ctx | The event context. |
- Returns
- Gaudi status code.
Definition at line 74 of file LArCellBuilderFromLArRawChannelTool.cxx.
78 ATH_MSG_ERROR(
"Called with a CaloCellContainer with wrong ownership policy! Need a VIEW container!" );
79 return StatusCode::FAILURE;
83 if(!rawColl.isValid()) {
86 return StatusCode::FAILURE;
89 const size_t nRawChannels=rawColl->size();
90 if (nRawChannels==0) {
92 return StatusCode::SUCCESS;
98 unsigned nCellsAdded=0;
99 std::bitset<CaloCell_ID::NSUBCALO> includedSubcalos;
101 if (!theCellContainer->
empty()) {
103 theCellContainer->
clear();
119 if(
cabling->isOnlineConnectedFromHash(onlHash)) {
131 rawChan.provenance(),
134 if ((*theCellContainer)[oflHash]) {
136 << oflHash <<
" online ID=0x" << std::hex
140 (*theCellContainer)[oflHash] = pCell;
148 unsigned nMissingButPresent=0;
160 for (
int ch=0;
ch<chansPerFeb; ++
ch) {
162 if (
cabling->isOnlineConnected(hwid)) {
176 if ((*theCellContainer)[hashid]) {
177 ++nMissingButPresent;
178 ATH_MSG_DEBUG(
"The supposedly missing channel with online ID=0x" << std::hex
181 <<
" is actually present in the LArRawChannel container");
184 (*theCellContainer)[hashid]=pCell;
196 if (includedSubcalos.test(iCalo))
200 if (nMissingButPresent)
202 <<
" supposedly missing channels where present in the LArRawChannelContainer" );
207 theCellContainer->
erase(end1,theCellContainer->
end());
211 ATH_MSG_DEBUG(
"All " << nCellsAdded <<
" cells filled (no holes)");
213 return StatusCode::SUCCESS;
◆ m_addDeadOTX
Gaudi::Property<bool> LArCellBuilderFromLArRawChannelTool::m_addDeadOTX {this,"addDeadOTX",true,"Add dummy cells for missing FEBs"} |
|
private |
◆ m_cablingKey
◆ m_caloCID
◆ m_caloMgrKey
◆ m_initialDataPoolSize
Gaudi::Property<int> LArCellBuilderFromLArRawChannelTool::m_initialDataPoolSize {this,"InitialCellPoolSize",-1,"Initial size of the DataPool<LArCells> (-1: Use nCells)"} |
|
private |
◆ m_missingFebKey
◆ m_nTotalCells
unsigned LArCellBuilderFromLArRawChannelTool::m_nTotalCells =0 |
|
private |
◆ m_onlineID
◆ m_rawChannelsKey
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
IdentifierHash channel_Hash(HWIdentifier channelId) const
Create channel_hash from channel_Id.
IdentifierHash calo_cell_hash(const Identifier cellId) const
create hash id from 'global' cell id
void setHasCalo(const CaloCell_ID::SUBCALO caloNum)
set which calo has been filled.
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
bool deadReadout() const
FEB is not sending readout data, but the L1 trigger path is working.
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
std::vector< BadChanEntry > BadChanVec
const std::string & key() const
Return the StoreGate ID for the referenced object.
value_type get_compact() const
Get the compact id.
@ OWN_ELEMENTS
this data object owns its elements
Liquid Argon ROD output object base class.
void calo_cell_hash_range(const Identifier id, IdentifierHash &caloCellMin, IdentifierHash &caloCellMax) const
to loop on 'global' cell hashes of one sub-calorimeter alone
int channelInSlotMax(const HWIdentifier Id) const
Return the Maximum channel number of a given feb slot.
bool deadAll() const
FEB is completely missing, e.g. powered off.
SUBCALO
enumeration of sub calorimeters
HWIdentifier channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create channel identifier from fields
int sub_calo(const Identifier id) const
returns an int taken from SUBCALO enum and describing the subCalo to which the Id belongs.
std::pair< ChanId_t, LArBC_t > BadChanEntry
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
void clear()
Erase all the elements in the collection.
void resize(size_type sz)
Resizes the collection to the specified number of elements.
StatusCode initialize(bool used=true)
Data object for LAr calorimeter readout cell.
Identifier cell_id(const int subCalo, const int barec_or_posneg, const int sampling_or_fcalmodule, const int region_or_dummy, const int eta, const int phi) const
Make a cell (== channel) ID from constituting fields and subCalo index; for (Mini)FCAL,...
bool deactivatedInOKS() const
Deactivated in OKS.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
This class provides the client interface for accessing the detector description information common to...
#define ATH_MSG_WARNING(x)
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
SG::OwnershipPolicy ownPolicy() const
Return the ownership policy setting for this container.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
iterator erase(iterator position)
Remove element at a given position.
std::string channel_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.
size_type size() const noexcept
Returns the number of elements in the collection.
bool empty() const noexcept
Returns true if the collection is empty.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.