Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <TrigCaloDataAccessSvc.h>
|
struct | FullDetIDs |
| Convenience structure to keep together all ROBs and IdentifierHashes for whole detectors. More...
|
|
struct | HLTCaloEventCache |
| convience structure to keep together a collection and auxiliar full collection selectors More...
|
|
|
void | reset_LArCol (LArCellCollection *coll) |
|
void | reset_TileCol (TileCellCollection *col) |
|
unsigned int | lateInit (const EventContext &context) |
|
unsigned int | convertROBs (const std::vector< const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment * > &robFrags, LArCellCont *larcell, LArRodBlockStructure *&larRodBlockStructure, uint16_t rodMinorVersion, uint32_t robBlockType, const LArDeadOTXFromSC *dead) |
|
unsigned int | convertROBs (const EventContext &context, const std::vector< IdentifierHash > &rIds, TileCellCont *tilecell, TileROD_Decoder::D0CellsHLT *d0cells) |
|
void | missingROBs (const std::vector< uint32_t > &request, const std::vector< const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment * > &response, std::set< uint32_t > &missing) const |
| fill the set of missing robs given the request and response from RoBDatProvider More...
|
|
void | clearMissing (const std::vector< uint32_t > &request, const std::vector< const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment * > &response, LArCellCont *larcell) |
| clear fragments of the collection for which ROBs were not available More...
|
|
unsigned int | prepareLArCollections (const EventContext &context, const IRoiDescriptor &roi, const int sampling, DETID detector) |
| LAr TT collections preparation code. More...
|
|
unsigned int | prepareTileCollections (const EventContext &context, const IRoiDescriptor &roi) |
|
unsigned int | prepareMBTSCollections (const EventContext &context) |
|
unsigned int | prepareFullCollections (const EventContext &context) |
|
unsigned int | prepareLArFullCollections (const EventContext &context) |
|
unsigned int | prepareTileFullCollections (const EventContext &context) |
|
|
PublicToolHandle< LArRodDecoder > | m_larDecoder { this, "LArDecoderTool", "LArRodDecoder/LArRodDecoder", "Tool to decode LAr raw data" } |
|
PublicToolHandle< TileROD_Decoder > | m_tileDecoder { this, "TileDecoderTool", "TileROD_Decoder/TileROD_Decoder", "Tool to decode Tile raw data" } |
|
ToolHandle< GenericMonitoringTool > | m_monTool { this, "MonTool", "", "Tool to monitor performance of the service" } |
|
ServiceHandle< IROBDataProviderSvc > | m_robDataProvider { this, "ROBDataProvider", "ROBDataProviderSvc/ROBDataProviderSvc", ""} |
|
ToolHandle< IRegSelTool > | m_regionSelector_TTEM { this, "RegSelToolEM", "RegSelTool/RegSelTool_TTEM" } |
|
ToolHandle< IRegSelTool > | m_regionSelector_TTHEC { this, "RegSelToolHEC", "RegSelTool/RegSelTool_TTHEC" } |
|
ToolHandle< IRegSelTool > | m_regionSelector_FCALEM { this, "RegSelToolFCALEM", "RegSelTool/RegSelTool_FCALEM" } |
|
ToolHandle< IRegSelTool > | m_regionSelector_FCALHAD { this, "RegSelToolFCALHAD", "RegSelTool/RegSelTool_FCALHAD" } |
|
ToolHandle< IRegSelTool > | m_regionSelector_TILE { this, "RegSelToolTILE", "RegSelTool/RegSelTool_TILE" } |
|
Gaudi::Property< bool > | m_applyOffsetCorrection { this, "ApplyOffsetCorrection", true, "Enable offset correction" } |
|
SG::ReadHandleKey< CaloBCIDAverage > | m_bcidAvgKey |
|
SG::ReadCondHandleKey< LArMCSym > | m_mcsymKey {this, "MCSymKey", "LArMCSym", "SG Key of LArMCSym object"} |
|
SG::ReadCondHandleKey< LArOnOffIdMapping > | m_onOffIdMappingKey {this, "CablingKey", "LArOnOffIdMap", "SG Key for LArOnOffIdMapping"} |
|
SG::ReadCondHandleKey< LArFebRodMapping > | m_febRodMappingKey {this, "RodFebKey", "LArFebRodMap", "SG Key for LArFebRodMapping"} |
|
SG::ReadCondHandleKey< LArBadChannelCont > | m_bcContKey {this, "LArBadChannelKey", "LArBadChannel", "Key of the LArBadChannelCont CDO" } |
|
SG::ReadCondHandleKey< LArRoIMap > | m_larRoIMapKey {this, "LArRoIMapKey", "LArRoIMap", "Key of the LArRoIMap CDO" } |
|
SG::ReadCondHandleKey< CaloDetDescrManager > | m_caloMgrKey {this, "CaloDetDescrManager", "CaloDetDescrManager", "SG Key for CaloDetDescrManager in the Condition Store" } |
|
SG::ReadCondHandleKey< TileHid2RESrcID > | m_tileHid2RESrcIDKey {this, "TileHid2RESrcID", "TileHid2RESrcIDHLT", "SG Key of TileHid2RESrcID object"} |
|
SG::ReadHandleKey< LArDeadOTXFromSC > | m_deadOTXFromSCKey {this, "LArDeadOTXFromSC", "DeadOTXFromSC", "Key of the DeadOTXFromSC CDO" } |
|
bool | m_correctDead |
|
std::vector< unsigned int > | m_insertedCells |
|
SG::SlotSpecificObj< HLTCaloEventCache > | m_hLTCaloSlot |
|
std::mutex | m_initMutex |
|
std::mutex | m_dataPrepMutex |
|
std::mutex | m_getCollMutex |
|
std::mutex | m_lardecoderProtect |
|
std::mutex | m_tiledecoderProtect |
|
bool | m_lateInitDone = false |
|
std::vector< uint32_t > | m_vrodid32fullDet |
|
std::vector< uint32_t > | m_vrodid32tile |
|
std::vector< unsigned int > | m_mbts_add_rods |
|
const std::vector< unsigned int > * | m_mbts_rods = nullptr |
|
std::vector< IdentifierHash > | m_rIdstile |
|
std::vector< std::vector< uint32_t > > | m_vrodid32fullDetHG |
|
size_t | m_nSlots |
|
Definition at line 35 of file TrigCaloDataAccessSvc.h.
◆ TrigCaloDataAccessSvc()
TrigCaloDataAccessSvc::TrigCaloDataAccessSvc |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ clearMissing()
clear fragments of the collection for which ROBs were not available
Definition at line 651 of file TrigCaloDataAccessSvc.cxx.
654 std::set<uint32_t> missing;
657 const std::vector<LArCellCollection*>::const_iterator
it = larcell->
find( robID );
658 if (
it != larcell->end() && ( *it )->size()!=0 ) {
◆ convertROBs() [1/2]
Definition at line 582 of file TrigCaloDataAccessSvc.cxx.
590 size_t listIDsize = rIds.size();
591 std::vector<unsigned int>
tile;
tile.push_back(0);
593 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags1;
594 for (
size_t i = 0;
i < listIDsize; ++
i){
600 const std::vector<TileCellCollection*>::const_iterator
it =
601 (tilecell->
find(rIds[
i]));
603 if ( robFrags1.size()!=0 &&
col != nullptr ) {
604 size_t roddatasize = robFrags1[0]->rod_ndata();
606 if (roddatasize < 3) {
608 "event: Empty ROD block (less than 3 words) : 0x"
609 << std::hex <<
tile[0] << std::dec );
610 msg(MSG::WARNING) <<
"Error reading bytestream "
611 <<
"event: Empty ROD block (less than 3 words) : 0x"
615 if ( !tilecell->
cached(rIds[
i])){
622 if ( !tilecell->
cached(rIds[
i]))
◆ convertROBs() [2/2]
Definition at line 505 of file TrigCaloDataAccessSvc.cxx.
510 for (
auto rob: robFrags ) {
511 uint32_t sourceID = rob->source_id();
512 const std::vector<LArCellCollection*>::const_iterator
it = larcell->
find( sourceID );
515 if (
it != larcell->end() && ( *it )->size() != 0 ) {
520 ATH_MSG_DEBUG(
"ROB of ID " << sourceID <<
" to be decoded" );
528 "event: Bad ROB block ( eformat checks ) : 0x"
529 << std::hex << sourceID << std::dec );
537 rob->rod_data( roddata );
538 size_t roddatasize = rob->rod_ndata();
539 if ( roddatasize < 3 ) {
541 "event: Empty ROD block ( less than 3 words ) : 0x"
542 << std::hex << sourceID << std::dec );
548 m_larDecoder->fillCollectionHLT( *rob, roddata, roddatasize, *coll, larRodBlockStructure_per_slot, rodMinorVersion, robBlockType );
550 if ( deadHandle->isThisOTXdead(feb_id_local) ) {
551 const std::vector<float>& corr = deadHandle->correctionFromThisOTXdead(feb_id_local);
553 for(
size_t i=0;
i<128;
i++) {
557 HWIdentifier feb_id_local2(larRodBlockStructure_per_slot->getFEBID());
558 if ( deadHandle->isThisOTXdead(feb_id_local2) ) {
559 const std::vector<float>& corr = deadHandle->correctionFromThisOTXdead(feb_id_local2);
◆ finalize()
StatusCode TrigCaloDataAccessSvc::finalize |
( |
| ) |
|
|
overridevirtual |
Definition at line 49 of file TrigCaloDataAccessSvc.cxx.
56 for (
size_t slot = 0; slot <
m_nSlots; ++ slot ) {
60 CHECK( cache->larContainer->finalize() );
61 delete cache->larContainer;
62 CHECK( cache->tileContainer->finalize() );
63 delete cache->tileContainer;
64 cache->d0cells->clear();
65 delete cache->d0cells;
66 cache->lastFSEvent = 0xFFFFFFFF;
68 delete cache->fullcont;
72 return StatusCode::SUCCESS;
◆ initialize()
StatusCode TrigCaloDataAccessSvc::initialize |
( |
| ) |
|
|
overridevirtual |
Temporary fix
Definition at line 21 of file TrigCaloDataAccessSvc.cxx.
24 m_autoRetrieveTools =
false;
25 m_checkToolDeps =
false;
46 return StatusCode::SUCCESS;
◆ lateInit()
unsigned int TrigCaloDataAccessSvc::lateInit |
( |
const EventContext & |
context | ) |
|
|
private |
Definition at line 300 of file TrigCaloDataAccessSvc.cxx.
312 std::vector<uint32_t> vrodid32lar;
313 std::vector<uint32_t> vrodid32em;
314 std::vector<uint32_t> vrodid32hec;
315 std::vector<uint32_t> vrodid32hec0;
316 std::vector<uint32_t> vrodid32hec1;
317 std::vector<uint32_t> vrodid32hec2;
318 std::vector<uint32_t> vrodid32hec3;
319 std::vector<uint32_t> vrodid32fcalem;
320 std::vector<uint32_t> vrodid32fcalhad;
323 std::vector<uint32_t> vrodid32tile;
324 std::vector<IdentifierHash> rIdstile;
342 auto iii = std::unique_copy(vrodid32tile.begin(),vrodid32tile.end(),
m_vrodid32tile.begin());
343 auto iij = std::unique_copy(rIdstile.begin(),rIdstile.end(),
m_rIdstile.begin());
351 vrodid32lar.insert(vrodid32lar.end(),vrodid32em.begin(),vrodid32em.end());
352 vrodid32hec.insert(vrodid32hec.end(),vrodid32hec0.begin(),vrodid32hec0.end());
353 vrodid32lar.insert(vrodid32lar.end(),vrodid32hec.begin(),vrodid32hec.end());
354 vrodid32lar.insert(vrodid32lar.end(),vrodid32fcalhad.begin(),vrodid32fcalhad.end());
355 vrodid32lar.insert(vrodid32lar.end(),vrodid32fcalem.begin(),vrodid32fcalem.end());
366 unsigned int nFebs=70;
386 for (
size_t slot = 0; slot <
m_nSlots; ++ slot ) {
391 cache->larRodBlockStructure_per_slot =
nullptr;
392 if ( cache->larContainer->initialize( **roimap, **onoff, **mcsym, **febrod, **larBadChan, *theCaloDDM).isFailure() )
394 std::vector<CaloCell*> local_cell_copy;
395 local_cell_copy.reserve(200000);
397 cache->lastFSEvent = 0xFFFFFFFF;
399 cachefullcont->
reserve(190000);
401 for(
unsigned int lcidx=0; lcidx < larcell->size(); lcidx++){
403 unsigned int lccsize = lcc->
size();
404 for(
unsigned int lccidx=0; lccidx<lccsize; lccidx++){
417 if (
good ) local_cell_copy.push_back(
cell );
424 cache->tileContainer = tilecell;
426 if( tilecell->
initialize().isFailure() )
return 0x1;
427 for (
unsigned int i=0;
i<4;
i++) {
438 for(
unsigned int lcidx=0; lcidx < tilecell->size(); lcidx++){
440 unsigned int lccsize = lcc->
size();
441 for(
unsigned int lccidx=0; lccidx<lccsize; lccidx++){
443 if (
cell ) local_cell_copy.push_back(
cell );
446 int ros = (frag_id >> 8);
448 int drawer = (frag_id & 0xFF);
456 cache->d0cells = d0cellsp;
459 for(
unsigned int i=0;
i<hashMax;
i++){
463 unsigned int localcellMax = local_cell_copy.size();
464 for(
unsigned int i=0;
i<localcellMax;
i++){
465 unsigned int j = local_cell_copy.at(
i)->caloDDE()->calo_hash();
467 cachefullcont->
at(j) = local_cell_copy.at(
i);
470 for(
unsigned int i=0;
i<hashMax;
i++)
471 if ( cachefullcont->
at(
i) == nullptr ){
475 if (
el->is_tile() ) {
491 cachefullcont->
order();
493 if ( hashMax != cachefullcont->
size() )
497 cache->fullcont = cachefullcont;
499 local_cell_copy.clear();
◆ loadCollections() [1/2]
Definition at line 83 of file TrigCaloDataAccessSvc.cxx.
89 std::vector<IdentifierHash> requestHashIDs;
91 ATH_MSG_DEBUG(
"LArTT requested for event " << context <<
" and RoI " << roi );
94 if (
sc )
return StatusCode::FAILURE;
98 std::lock_guard<std::mutex> getCollClock{
m_hLTCaloSlot.get( context )->mutex };
108 ATH_MSG_DEBUG(
"requestHashIDs.size() in LoadColl = " << requestHashIDs.size() <<
" hash checksum "
112 for(
unsigned int i = 0 ;
i < requestHashIDs.size() ;
i++ )
117 loadedCells.
setMap( *roimap );
121 std::lock_guard<std::mutex> getCollClock{
m_hLTCaloSlot.get( context )->mutex };
122 loadedCells.
setRoIs( requestHashIDs );
124 if (
sc )
return StatusCode::FAILURE;
125 else return StatusCode::SUCCESS;
◆ loadCollections() [2/2]
Definition at line 128 of file TrigCaloDataAccessSvc.cxx.
131 std::vector<IdentifierHash> requestHashIDs;
133 ATH_MSG_DEBUG(
"Tile requested for event " << context <<
" and RoI " << roi );
136 if (
sc )
return StatusCode::FAILURE;
140 std::lock_guard<std::mutex> getCollClock{
m_hLTCaloSlot.get( context )->mutex };
143 ATH_MSG_DEBUG(
"requestHashIDs.size() in LoadColl = " << requestHashIDs.size() <<
" hash checksum "
147 for(
unsigned int i = 0 ;
i < requestHashIDs.size() ;
i++ )
150 size_t listIDsize = requestHashIDs.size();
153 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags;
155 for (
size_t i = 0;
i < listIDsize; ++
i){
157 const std::vector<TileCellCollection*>::const_iterator
it =
158 (tilecell->
find(requestHashIDs[
i]));
160 if (
col ==
nullptr )
continue;
163 for (;itt!=End;++itt){
165 loadedCells.push_back(
cell );
169 return StatusCode::SUCCESS;
◆ loadFullCollections()
◆ loadMBTS()
StatusCode TrigCaloDataAccessSvc::loadMBTS |
( |
const EventContext & |
context, |
|
|
std::vector< const TileCell * > & |
loadedCells |
|
) |
| |
|
overridevirtual |
Definition at line 800 of file TrigCaloDataAccessSvc.cxx.
806 if (
sc )
return StatusCode::FAILURE;
809 std::lock_guard<std::mutex> collectionLock { cache->mutex };
812 loadedCells.reserve(
mbts->size());
813 for (
size_t i=0;
i<
mbts->size(); ++
i)
814 loadedCells.push_back(
mbts->at(
i));
815 return StatusCode::SUCCESS;
◆ missingROBs()
fill the set of missing robs given the request and response from RoBDatProvider
Definition at line 636 of file TrigCaloDataAccessSvc.cxx.
640 std::set<uint32_t> receivedROBsSet;
642 receivedROBsSet.insert( rob->source_id() );
643 std::set<uint32_t> requestedROBsSet( request.begin(), request.end() );
645 std::set_difference( requestedROBsSet.begin(), requestedROBsSet.end(),
646 receivedROBsSet.begin(), receivedROBsSet.end(),
647 std::inserter( missing, missing.begin() ) );
◆ prepareFullCollections()
unsigned int TrigCaloDataAccessSvc::prepareFullCollections |
( |
const EventContext & |
context | ) |
|
|
private |
◆ prepareLArCollections()
LAr TT collections preparation code.
Definition at line 665 of file TrigCaloDataAccessSvc.cxx.
675 if ( cache->lastFSEvent == context.evt() )
return 0x0;
677 std::vector<uint32_t> requestROBs;
679 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags;
693 if ( robFrags.empty() && (!requestROBs.empty()) ) {
698 std::lock_guard<std::mutex> collectionLock { cache->mutex };
705 cache->larContainer->eventNumber( context.evt() );
711 if ( avgPtr && onoffPtr ) cache->larContainer->updateBCID( *avgPtr, *onoffPtr );
717 if ( !deadHdl.isValid() ){
720 deadHandle = deadHdl.cptr();
724 unsigned int status =
convertROBs( robFrags, ( cache->larContainer ), (cache->larRodBlockStructure_per_slot), cache->rodMinorVersion, cache->robBlockType, deadHandle );
726 if ( requestROBs.size() != robFrags.size() ) {
727 ATH_MSG_DEBUG(
"Missing ROBs, requested " << requestROBs.size() <<
" obtained " << robFrags.size() );
729 clearMissing( requestROBs, robFrags, ( cache->larContainer ) );
◆ prepareLArFullCollections()
unsigned int TrigCaloDataAccessSvc::prepareLArFullCollections |
( |
const EventContext & |
context | ) |
|
|
private |
Definition at line 208 of file TrigCaloDataAccessSvc.cxx.
210 ATH_MSG_DEBUG(
"Full Col " <<
" requested for event " << context );
219 std::lock_guard<std::mutex> collectionLock { cache->mutex };
222 if ( cache->lastFSEvent == context.evt() )
return 0x0;
223 cache->larContainer->eventNumber( context.evt() ) ;
229 if ( avgPtr && onoffPtr ) cache->larContainer->updateBCID( *avgPtr, *onoffPtr );
238 if ( !deadHdl.isValid() ){
241 deadHandle = deadHdl.cptr();
247 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags;
255 status |=
convertROBs( robFrags, ( cache->larContainer ), (cache->larRodBlockStructure_per_slot), cache->rodMinorVersion, cache->robBlockType, deadHandle );
257 if ( vrodid32fullDet.size() != robFrags.size() ) {
258 ATH_MSG_DEBUG(
"Missing ROBs, requested " << vrodid32fullDet.size() <<
" obtained " << robFrags.size() );
260 clearMissing( vrodid32fullDet, robFrags, ( cache->larContainer ) );
◆ prepareMBTSCollections()
unsigned int TrigCaloDataAccessSvc::prepareMBTSCollections |
( |
const EventContext & |
context | ) |
|
|
private |
Definition at line 770 of file TrigCaloDataAccessSvc.cxx.
777 if ( cache->lastFSEvent == context.evt() )
return 0x0;
779 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags;
784 std::lock_guard<std::mutex> collectionLock { cache->mutex };
786 if ( cache->tileContainer->eventNumber() != context.evt() )
787 cache->d0cells->clear();
788 cache->tileContainer->
eventNumber( context.evt() );
790 const std::vector<unsigned int>*
ids = tilecell->
MBTS_IDs();
791 std::vector<IdentifierHash> tileIds;
792 for(
size_t i=0;
i<
ids->size();
i++) tileIds.push_back( (*
ids)[
i] );
793 unsigned int status =
convertROBs( context, tileIds, cache->tileContainer, cache->d0cells );
◆ prepareTileCollections()
Definition at line 739 of file TrigCaloDataAccessSvc.cxx.
747 if ( cache->lastFSEvent == context.evt() )
return 0x0;
749 std::vector<uint32_t> requestROBs;
750 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags;
751 std::vector<IdentifierHash> rIds;
760 std::lock_guard<std::mutex> collectionLock { cache->mutex };
761 if ( cache->tileContainer->eventNumber() != context.evt() )
762 cache->d0cells->clear();
763 cache->tileContainer->eventNumber( context.evt() );
765 unsigned int status =
convertROBs( context, rIds, cache->tileContainer, cache->d0cells );
◆ prepareTileFullCollections()
unsigned int TrigCaloDataAccessSvc::prepareTileFullCollections |
( |
const EventContext & |
context | ) |
|
|
private |
Definition at line 271 of file TrigCaloDataAccessSvc.cxx.
273 ATH_MSG_DEBUG(
"Full Col " <<
" requested for event " << context );
282 std::lock_guard<std::mutex> collectionLock { cache->mutex };
285 if ( cache->lastFSEvent == context.evt() )
return 0x0;
286 if ( cache->tileContainer->eventNumber() != context.evt() )
287 cache->d0cells->clear();
288 cache->tileContainer->eventNumber( context.evt() );
◆ reset_LArCol()
◆ reset_TileCol()
Definition at line 102 of file TrigCaloDataAccessSvc.h.
105 (tr)->setTime_nonvirt(-100.0
F);
106 (tr)->setQuality_nonvirt(
static_cast<unsigned char>(255), 0, 0);
107 (tr)->setQuality_nonvirt(
static_cast<unsigned char>(255), 0, 1);
◆ m_applyOffsetCorrection
Gaudi::Property<bool> TrigCaloDataAccessSvc::m_applyOffsetCorrection { this, "ApplyOffsetCorrection", true, "Enable offset correction" } |
|
private |
◆ m_bcContKey
◆ m_bcidAvgKey
◆ m_caloMgrKey
◆ m_correctDead
bool TrigCaloDataAccessSvc::m_correctDead |
|
private |
◆ m_dataPrepMutex
std::mutex TrigCaloDataAccessSvc::m_dataPrepMutex |
|
private |
◆ m_deadOTXFromSCKey
◆ m_febRodMappingKey
◆ m_getCollMutex
std::mutex TrigCaloDataAccessSvc::m_getCollMutex |
|
private |
◆ m_hLTCaloSlot
◆ m_initMutex
std::mutex TrigCaloDataAccessSvc::m_initMutex |
|
private |
◆ m_insertedCells
std::vector<unsigned int> TrigCaloDataAccessSvc::m_insertedCells |
|
private |
◆ m_larDecoder
◆ m_lardecoderProtect
std::mutex TrigCaloDataAccessSvc::m_lardecoderProtect |
|
private |
◆ m_larRoIMapKey
◆ m_lateInitDone
bool TrigCaloDataAccessSvc::m_lateInitDone = false |
|
private |
◆ m_mbts_add_rods
std::vector<unsigned int> TrigCaloDataAccessSvc::m_mbts_add_rods |
|
private |
◆ m_mbts_rods
const std::vector<unsigned int>* TrigCaloDataAccessSvc::m_mbts_rods = nullptr |
|
private |
◆ m_mcsymKey
◆ m_monTool
ToolHandle<GenericMonitoringTool> TrigCaloDataAccessSvc::m_monTool { this, "MonTool", "", "Tool to monitor performance of the service" } |
|
private |
◆ m_nSlots
size_t TrigCaloDataAccessSvc::m_nSlots |
|
private |
◆ m_onOffIdMappingKey
◆ m_regionSelector_FCALEM
ToolHandle<IRegSelTool> TrigCaloDataAccessSvc::m_regionSelector_FCALEM { this, "RegSelToolFCALEM", "RegSelTool/RegSelTool_FCALEM" } |
|
private |
◆ m_regionSelector_FCALHAD
ToolHandle<IRegSelTool> TrigCaloDataAccessSvc::m_regionSelector_FCALHAD { this, "RegSelToolFCALHAD", "RegSelTool/RegSelTool_FCALHAD" } |
|
private |
◆ m_regionSelector_TILE
ToolHandle<IRegSelTool> TrigCaloDataAccessSvc::m_regionSelector_TILE { this, "RegSelToolTILE", "RegSelTool/RegSelTool_TILE" } |
|
private |
◆ m_regionSelector_TTEM
ToolHandle<IRegSelTool> TrigCaloDataAccessSvc::m_regionSelector_TTEM { this, "RegSelToolEM", "RegSelTool/RegSelTool_TTEM" } |
|
private |
◆ m_regionSelector_TTHEC
ToolHandle<IRegSelTool> TrigCaloDataAccessSvc::m_regionSelector_TTHEC { this, "RegSelToolHEC", "RegSelTool/RegSelTool_TTHEC" } |
|
private |
◆ m_rIdstile
◆ m_robDataProvider
◆ m_tileDecoder
◆ m_tiledecoderProtect
std::mutex TrigCaloDataAccessSvc::m_tiledecoderProtect |
|
private |
◆ m_tileHid2RESrcIDKey
◆ m_vrodid32fullDet
std::vector<uint32_t> TrigCaloDataAccessSvc::m_vrodid32fullDet |
|
private |
◆ m_vrodid32fullDetHG
std::vector<std::vector<uint32_t> > TrigCaloDataAccessSvc::m_vrodid32fullDetHG |
|
private |
◆ m_vrodid32tile
std::vector<uint32_t> TrigCaloDataAccessSvc::m_vrodid32tile |
|
private |
The documentation for this class was generated from the following files:
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
unsigned int find_rod(const unsigned int &id) const
virtual double phi() const =0
Methods to retrieve data members.
void reset_TileCol(TileCellCollection *col)
SG::ReadCondHandleKey< LArOnOffIdMapping > m_onOffIdMappingKey
ToolHandle< IRegSelTool > m_regionSelector_TILE
std::vector< unsigned int > m_insertedCells
ToolHandle< IRegSelTool > m_regionSelector_TTEM
Const iterator class for DataVector/DataList.
bool good() const
Returns true if no problems at all (all bits at zero)
const std::vector< unsigned int > * MBTS_RODs()
Group
Properties of a chain group.
SG::ReadCondHandleKey< TileHid2RESrcID > m_tileHid2RESrcIDKey
constexpr float roiPhi(const AnyRoIPointer &roi)
ToolHandle< GenericMonitoringTool > m_monTool
void setContainer(const CONTAINER *c)
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
void clearMissing(const std::vector< uint32_t > &request, const std::vector< const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment * > &response, LArCellCont *larcell)
clear fragments of the collection for which ROBs were not available
std::mutex m_lardecoderProtect
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
std::mutex m_getCollMutex
const TileHid2RESrcID * getHashIdToROD() const
Conditions-Data class holding LAr Bad Channel or Bad Feb information.
void setIsOrdered(const bool ordered)
indicates that the container is ordered
void setHasCalo(const CaloCell_ID::SUBCALO caloNum)
set which calo has been filled.
const std::vector< LArCellCollection * >::const_iterator find(const HWIdentifier &id) const
Finds a collection by its LArReadoutModuleID.
std::mutex m_tiledecoderProtect
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
SG::ReadCondHandleKey< LArFebRodMapping > m_febRodMappingKey
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
SG::SlotSpecificObj< HLTCaloEventCache > m_hLTCaloSlot
unsigned int convertROBs(const std::vector< const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment * > &robFrags, LArCellCont *larcell, LArRodBlockStructure *&larRodBlockStructure, uint16_t rodMinorVersion, uint32_t robBlockType, const LArDeadOTXFromSC *dead)
const std::vector< int > & Rw2PmtMap(int section)
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
setTeId setLumiBlock setRoiId setRoiSubsystem setRoiNumber roiEta
Class which contains statically allocated LArCellCollections.
std::vector< size_t > vec
ToolHandle< IRegSelTool > m_regionSelector_FCALHAD
#define ATH_MSG_VERBOSE(x)
bool empty() const
Test if the key is blank.
HWIdentifier findsec(const unsigned int &id) const
Each Collection contains data from 2 FEBs.
LArBC_t offlineStatus(const Identifier id) const
Query the status of a particular channel by offline ID This is the main client access method.
void setHashIdToROD(const TileHid2RESrcID *p)
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
This class provides conversion between fragment ID and RESrcID.
const std::vector< TileCellCollection * >::const_iterator find(const unsigned int &id) const
Finds a collection.
void setIsOrdered(bool ordered)
indicates that the container is ordered
SG::ReadHandleKey< LArDeadOTXFromSC > m_deadOTXFromSCKey
virtual double eta() const =0
void applyBCIDCorrection(const unsigned int &rodid)
method to apply correction based on the luminosity to the energy
void clear()
Erase all the elements in the collection.
unsigned int prepareTileCollections(const EventContext &context, const IRoiDescriptor &roi)
void eventNumber(const unsigned int eN)
(Non-const) Iterator class for DataVector/DataList.
std::vector< unsigned int > m_mbts_add_rods
bool problematicForUnknownReason() const
void setIsOrderedAndComplete(bool ordered)
indicate that the container is complete and in order
void push_back_fast(const CaloCell *cell)
reimplementation of push_back to gain speed in readin
const std::vector< int > & Rw2CellMap(int section)
This class builds the Tile cells.
unsigned int prepareLArFullCollections(const EventContext &context)
void setRoIs(const VEC_TT_ID &ids)
#define CHECK(...)
Evaluate an expression and check for errors.
const TileCellCollection * MBTS_collection(void) const
Helper class for offline cell identifiers.
unsigned int prepareTileFullCollections(const EventContext &context)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
ToolHandle< IRegSelTool > m_regionSelector_TTHEC
std::vector< IdentifierHash > m_rIdstile
std::mutex m_dataPrepMutex
bool cached(const unsigned int &rodid)
void reset_LArCol(LArCellCollection *coll)
void push_back_fast(CaloCell *)
reimplementation of push_back to gain speed in readin
unsigned int prepareLArCollections(const EventContext &context, const IRoiDescriptor &roi, const int sampling, DETID detector)
LAr TT collections preparation code.
Container Class for LArCell in a ROB used by EF.
ToolHandle< IRegSelTool > m_regionSelector_FCALEM
Gaudi::Property< bool > m_applyOffsetCorrection
void order()
order container
StatusCode initialize(bool used=true)
Data object for LAr calorimeter readout cell.
Container class for CaloCell.
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,...
std::vector< uint32_t > m_vrodid32fullDet
std::map< unsigned int, unsigned int > & MBTS_map(void)
SG::ReadCondHandleKey< LArMCSym > m_mcsymKey
const std::vector< unsigned int > * m_mbts_rods
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
std::vector< std::vector< uint32_t > > m_vrodid32fullDetHG
accumulate
Update flags based on parser line args.
SG::ReadHandleKey< CaloBCIDAverage > m_bcidAvgKey
This class provides the client interface for accessing the detector description information common to...
Data object for each calorimeter readout cell.
SG::ReadCondHandleKey< LArBadChannelCont > m_bcContKey
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.
#define ATH_MSG_WARNING(x)
unsigned int prepareMBTSCollections(const EventContext &context)
void setMap(const LArRoIMap *map)
size_t getNSlots()
Return the number of event slots.
StatusCode initialize(void)
const CaloCell_ID * getCaloCell_ID() const
get calo cell ID helper
const T * at(size_type n) const
Access an element, as an rvalue.
PublicToolHandle< LArRodDecoder > m_larDecoder
Declare a monitored scalar variable.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
std::vector< uint32_t > m_vrodid32tile
const std::vector< unsigned int > * MBTS_IDs()
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
unsigned int lateInit(const EventContext &context)
size_type size() const noexcept
Returns the number of elements in the collection.
void setIsOrderedAndComplete(const bool ordered)
indicate that the container is complete and in order
void missingROBs(const std::vector< uint32_t > &request, const std::vector< const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment * > &response, std::set< uint32_t > &missing) const
fill the set of missing robs given the request and response from RoBDatProvider
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
size_type calo_cell_hash_max(void) const
cell 'global' hash table max size
SG::ReadCondHandleKey< LArRoIMap > m_larRoIMapKey
PublicToolHandle< TileROD_Decoder > m_tileDecoder