|
ATLAS Offline Software
|
Emulator of DSP code in accumulation calibration mode.
More...
#include <LArCalibDigitsAccumulator.h>
|
| LArCalibDigitsAccumulator (const std::string &name, ISvcLocator *pSvcLocator) |
|
StatusCode | initialize () |
|
StatusCode | execute () |
|
StatusCode | finalize () |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
ToolHandle< ICaloSuperCellIDTool > | m_sc2ccMappingTool |
|
SG::ReadCondHandleKey< LArCalibLineMapping > | m_calibMapKey {this,"CalibCablingKey","LArCalibLineMap","SG Key of LArCalibLineMapping object"} |
|
SG::ReadCondHandleKey< LArCalibLineMapping > | m_calibMapSCKey {this,"CalibMapSCKey","LArCalibIdMapSC","SG Key of calib line mapping object"} |
|
SG::ReadCondHandleKey< LArOnOffIdMapping > | m_cablingKey {this, "OnOffMap", "LArOnOffIdMap", "SG key for mapping object"} |
|
SG::ReadCondHandleKey< LArOnOffIdMapping > | m_cablingKeySC {this,"ScCablingKey","LArOnOffIdMapSC","SG Key of SC LArOnOffIdMapping object"} |
|
const LArOnlineID_Base * | m_onlineHelper |
|
int | m_delay |
| Store delay. More...
|
|
std::string | m_calibAccuDigitContainerName |
| LArAccumulatedCalibDigitContainer name. More...
|
|
std::vector< std::string > | m_keylist |
| list of key for input digit container (=gain) More...
|
|
unsigned int | m_nStepTrigger |
| Number of intermediate accumulations (JO property) More...
|
|
double | m_delayScale |
| Set delay scale. More...
|
|
bool | m_keepPulsed |
| Tells you whether you keep only pulsed cells or all cells. More...
|
|
bool | m_isSC |
| Tells you whether you run on SuperCells or Cells. More...
|
|
bool | m_keepFullyPulsedSC |
| Tells you whether you keep only fully pulsed supercells or all supercells. More...
|
|
double | m_DropPercentTrig |
| Percentage of the used triggers that we will skip over at the end, in order ot ensure that the accumulation is done, even if there are lots of missing events from SC. More...
|
|
std::map< std::string, std::vector< LArAccumulated > > | m_Accumulated_map |
| Vector (index=hash ID) of accumulation quantities. More...
|
|
unsigned int | m_event_counter |
| Event counter. More...
|
|
unsigned int | m_eventNb = 0U |
|
int | m_sampleShift |
| Samples to shift by, usually used in the case of SCs. More...
|
|
DataObjIDColl | m_extendedExtraObjects |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Emulator of DSP code in accumulation calibration mode.
- Version
- $Id: LArCalibDigitsAccumulator.h,v 1.8 2008-06-12 14:51:35 lafaye Exp $
- Author
- Sandrine Laplace lapla.nosp@m.ce@l.nosp@m.app.i.nosp@m.n2p3.nosp@m..fr
- Date
- 22-January-2006 Input to this algorithm are LArCalibDigits. These LArCalibDigits are accumulated (sum and squared sum)over a number of triggers given by the calibration run settings. Intermediate sums are also computed if the JO property "StepOfTriggers" is set to a larger number than one. The output of the algorithm is a LArAccumulatedCalibDigitContainer.
Definition at line 33 of file LArCalibDigitsAccumulator.h.
◆ StoreGateSvc_t
◆ LArCalibDigitsAccumulator()
LArCalibDigitsAccumulator::LArCalibDigitsAccumulator |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode LArCalibDigitsAccumulator::execute |
( |
| ) |
|
first check if there is a -1 and continue
why this is not reset to -1 each event, does not make sense
assuming sizeSamples>m_sampleShift, is there a protection for this somehwere?
Definition at line 73 of file LArCalibDigitsAccumulator.cxx.
86 return StatusCode::FAILURE;
97 return StatusCode::FAILURE;
101 cablingLeg = {*cablingHdlLeg};
104 return StatusCode::FAILURE;
121 sc=
detStore()->retrieve(calibParams,
"LArCalibParams");
123 {
ATH_MSG_ERROR(
"Cannot load LArCalibParams from DetStore." );
124 return StatusCode::FAILURE;
136 ATH_MSG_ERROR(
"Can't retrieve LArCalibDigitContainer with key " <<
key <<
"from StoreGate." );
137 return StatusCode::SUCCESS;
139 ATH_MSG_DEBUG(
"Retrieved LArCalibDigitContainer with key " <<
key <<
" from StoreGate." );
142 if(calibDigitContainer->
empty()) {
145 ATH_MSG_DEBUG(
"LArCalibDigitContainer with key=" <<
key <<
" has size = " << calibDigitContainer->
size() );
149 std::vector<unsigned int> ntrigger, nTriggerPerStep, nStepTrigger, iStepTrigger;
151 ntrigger.resize(calibDigitContainer->
size(),0);
173 std::vector<Identifier> ccellIds(0);
174 unsigned numPulsedLeg = 0;
179 bool hasInvalid=
false;
180 for(
auto s :
digit->samples()){
186 if(hasInvalid)
continue;
191 HWIdentifier cellLegHWID = cablingLeg->createSignalChannelID(
id);
192 const std::vector<HWIdentifier>& calibLineLeg = clcabling->calibSlotLine(cellLegHWID);
193 numCL += calibLineLeg.size();
195 if ( calibParams->
isPulsed(eventNb,calibLineHWID) ){
198 if (
digit->isPulsed() )
ATH_MSG_WARNING(
"SC "<< chid <<
" constituent cell "<< cellLegHWID <<
" calib line "<< calibLineHWID<<
" not pulsed");}
201 if (
digit->isPulsed() && numPulsedLeg != numCL ){
202 ATH_MSG_WARNING(
"Number of pulsed legacy cells does not equal number of calibration lines "<<chid<<
"!! LArParams counter = " << numPulsedLeg <<
", SC2CCMappingTool = " << ccellIds.size() <<
", num CLs = "<< numCL);
205 ATH_MSG_WARNING(
"Discarding this SC ("<<chid<<
") as it is not fully pulsed");
209 ATH_MSG_DEBUG(
"SC "<<chid<<
" pulsed cells "<< numPulsedLeg <<
" or "<< ccellIds.size()<<
", "<<numCL<<
" calibration lines");
216 const std::vector<HWIdentifier>& calibLineID=clcabling->calibSlotLine(chid);
218 if(!calibLineID.empty()){
220 nTriggerPerStep[febhash] = calibParams->
NTrigger(calibModuleID);
221 ATH_MSG_DEBUG(
"Ntrigger per step = " << nTriggerPerStep[febhash] );
222 if(nTriggerPerStep[febhash] > 1000) nTriggerPerStep[febhash]=100;
225 nTriggerPerStep[febhash] = 100;
229 bool isPulsed =
digit->isPulsed();
238 ATH_MSG_DEBUG(
"Delay is changing to " <<
digit->delay() <<
" from " <<
m_delay <<
": book a new LArAccumulatedCalibDigitContainer" );
253 delete larAccuCalibDigitContainer;
254 return StatusCode::FAILURE;
258 LArAccumulated& cellAccumulated = accIter->second[hashid];
262 cellAccumulated.m_ntrigger++;
263 ATH_MSG_INFO(
"chid = " << chid <<
", trigger = " << cellAccumulated.m_ntrigger <<
", DAC = " <<
digit->DAC()<<
", Delay = "<<
digit->delay()<<
", isPulsed? "<<
digit->isPulsed() );
266 unsigned int sizeSamples =
digit->samples().size();
267 ATH_MSG_DEBUG(
"sizeSteps = " << sizeSteps <<
", # of samples = " << sizeSamples );
269 if(cellAccumulated.m_ntrigger==1){
270 cellAccumulated.m_sum.clear();
271 cellAccumulated.m_sum2.clear();
272 cellAccumulated.m_sum.resize(sizeSamples,0);
273 cellAccumulated.m_sum2.resize(sizeSamples,0);
277 for(
unsigned int j=0;j<sizeSamples;j++){
280 digis=
digit->samples()[sizeSamples-1];
281 cellAccumulated.m_sum[j] += digis;
282 cellAccumulated.m_sum2[j] += digis*digis;
285 digis=
digit->samples()[0];
286 cellAccumulated.m_sum[j] += digis;
287 cellAccumulated.m_sum2[j] += digis*digis;
290 cellAccumulated.m_sum[j] += digis;
291 cellAccumulated.m_sum2[j] += digis*digis;
296 unsigned int ntrigUsed = nTriggerPerStep[febhash];
301 if(cellAccumulated.m_ntrigger==ntrigUsed){
303 ATH_MSG_DEBUG(
"chid = " << chid <<
", gain = " <<
gain <<
", DAC = " <<
digit->DAC() <<
", isPulsed = " << isPulsed <<
", delay = " <<
m_delay <<
", trigPerStep = " << nTriggerPerStep[febhash] <<
", istep = " << iStepTrigger[febhash] );
308 ATH_MSG_DEBUG(
"Channel "<<chid<<
" DAC "<<
digit->DAC()<<
" will multiply by "<<numPulsedLeg<<
" = "<<
digit->DAC()*numPulsedLeg<<
" is pulsed??? "<<isPulsed);
315 accuCalibDigit->
setAddSubStep(cellAccumulated.m_sum,cellAccumulated.m_sum2,ntrigUsed);
316 iStepTrigger[febhash]++;
318 std::vector<float>
mean = accuCalibDigit->
mean();
319 std::vector<float>
RMS = accuCalibDigit->
RMS();
321 for(
unsigned int i=0;
i<
mean.size();
i++){
326 larAccuCalibDigitContainer->
push_back(accuCalibDigit);
328 cellAccumulated.m_nused = cellAccumulated.m_ntrigger;
329 cellAccumulated.m_ntrigger = 0;
337 if (
sc!=StatusCode::SUCCESS)
338 {
ATH_MSG_WARNING(
"Unable to record LArAccumulatedCalibDigitContainer with key " <<
key <<
" from DetectorStore. " );
341 ATH_MSG_DEBUG(
"Recorded succesfully LArAccumulatedCalibDigitContainer with key " <<
key <<
" with size " << larAccuCalibDigitContainer->
size());
343 sc =
evtStore()->setConst(larAccuCalibDigitContainer);
344 if (
sc.isFailure()) {
345 ATH_MSG_ERROR(
" Cannot lock LArAccumulatedCalibDigitContainer " );
346 return(StatusCode::FAILURE);
351 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode LArCalibDigitsAccumulator::finalize |
( |
| ) |
|
assuming 100 per step
Definition at line 361 of file LArCalibDigitsAccumulator.cxx.
363 if ( !
m_isSC )
return StatusCode::SUCCESS;
367 for(
auto &
sc :
acc.second){
368 if(
sc.m_onlineId &&
sc.m_nused != ntrigUsed){
369 ATH_MSG_WARNING(
"Not enough triggers for pattern " <<
pattern <<
" channel OnlineID " <<
sc.m_onlineId <<
" ntriggers " <<
sc.m_ntrigger );
374 return StatusCode::SUCCESS;
◆ getPatternName()
std::string LArCalibDigitsAccumulator::getPatternName |
( |
const std::string & |
gain, |
|
|
bool |
isPulsed, |
|
|
int |
delay, |
|
|
int |
dac |
|
) |
| |
|
staticprivate |
◆ initialize()
StatusCode LArCalibDigitsAccumulator::initialize |
( |
| ) |
|
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_Accumulated_map
std::map<std::string, std::vector<LArAccumulated> > LArCalibDigitsAccumulator::m_Accumulated_map |
|
private |
◆ m_cablingKey
◆ m_cablingKeySC
◆ m_calibAccuDigitContainerName
std::string LArCalibDigitsAccumulator::m_calibAccuDigitContainerName |
|
private |
◆ m_calibMapKey
◆ m_calibMapSCKey
◆ m_delay
int LArCalibDigitsAccumulator::m_delay |
|
private |
◆ m_delayScale
double LArCalibDigitsAccumulator::m_delayScale |
|
private |
◆ m_detStore
◆ m_DropPercentTrig
double LArCalibDigitsAccumulator::m_DropPercentTrig |
|
private |
Percentage of the used triggers that we will skip over at the end, in order ot ensure that the accumulation is done, even if there are lots of missing events from SC.
Definition at line 118 of file LArCalibDigitsAccumulator.h.
◆ m_event_counter
unsigned int LArCalibDigitsAccumulator::m_event_counter |
|
private |
◆ m_eventNb
unsigned int LArCalibDigitsAccumulator::m_eventNb = 0U |
|
private |
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_isSC
bool LArCalibDigitsAccumulator::m_isSC |
|
private |
◆ m_keepFullyPulsedSC
bool LArCalibDigitsAccumulator::m_keepFullyPulsedSC |
|
private |
◆ m_keepPulsed
bool LArCalibDigitsAccumulator::m_keepPulsed |
|
private |
◆ m_keylist
std::vector<std::string> LArCalibDigitsAccumulator::m_keylist |
|
private |
◆ m_nStepTrigger
unsigned int LArCalibDigitsAccumulator::m_nStepTrigger |
|
private |
◆ m_onlineHelper
◆ m_sampleShift
int LArCalibDigitsAccumulator::m_sampleShift |
|
private |
◆ m_sc2ccMappingTool
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
Data class for calibration ADC samples preprocessed by the DSP.
IdentifierHash channel_Hash(HWIdentifier channelId) const
Create channel_hash from channel_Id.
void mean(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
void setDelayScale(const double scale)
set the delay Scale
size_type febHashMax(void) const
define feb hash tables max size
uint64_t eventNumber() const
The current event's event number.
unsigned int m_nStepTrigger
Number of intermediate accumulations (JO property)
unsigned NTrigger(const HWIdentifier calibModuleID) const
std::vector< std::string > m_keylist
list of key for input digit container (=gain)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
double m_DropPercentTrig
Percentage of the used triggers that we will skip over at the end, in order ot ensure that the accumu...
bool m_keepPulsed
Tells you whether you keep only pulsed cells or all cells.
int m_sampleShift
Samples to shift by, usually used in the case of SCs.
bool m_isSC
Tells you whether you run on SuperCells or Cells.
unsigned int m_event_counter
Event counter.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
std::vector< SG::VarHandleKeyArray * > m_vhka
HWIdentifier calib_module_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Build calibration module identifier from fields.
static std::string getPatternName(const std::string &gain, bool isPulsed, int delay, int dac)
const std::string & key() const
Return the StoreGate ID for the referenced object.
value_type get_compact() const
Get the compact id.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
std::map< std::string, std::vector< LArAccumulated > > m_Accumulated_map
Vector (index=hash ID) of accumulation quantities.
Container class for LArCalibDigit.
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize() override
Override sysInitialize.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
double m_delayScale
Set delay scale.
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< float > RMS() const
Calculates and returns the RMS value of each ADC sample.
bool isPulsed(const unsigned event, const HWIdentifier calibLineID) const
std::string m_calibAccuDigitContainerName
LArAccumulatedCalibDigitContainer name.
double delay(std::size_t d)
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
SG::ReadCondHandleKey< LArCalibLineMapping > m_calibMapKey
std::vector< float > mean() const
Calculates and returns the Mean value of each ADC sample.
Helper for the Liquid Argon Calorimeter cell identifiers.
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKeySC
Base class for LArDigits taken during calibration runs.
size_type channelHashMax(void) const
Define channel hash tables max size.
bool m_keepFullyPulsedSC
Tells you whether you keep only fully pulsed supercells or all supercells.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
StatusCode initialize(bool used=true)
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Class describing the basic event information.
DataObjIDColl m_extendedExtraObjects
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
bool setAddSubStep(const std::vector< uint64_t > &sampleSum, const std::vector< uint64_t > &sample2Sum, const uint32_t nTriggerPerStep)
Sum up with another substep.
AthAlgorithm()
Default constructor:
const LArOnlineID_Base * m_onlineHelper
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
SG::ReadCondHandleKey< LArCalibLineMapping > m_calibMapSCKey
Container class for LArAccumulatedCalibDigit.
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
IdentifierHash feb_Hash(HWIdentifier febId) const
Create feb hash identifiers from feb identifiers.
bool empty() const noexcept
Returns true if the collection is empty.
ToolHandle< ICaloSuperCellIDTool > m_sc2ccMappingTool