|
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) |
|
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::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 34 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 617 of file TrigCaloDataAccessSvc.cxx.
620 std::set<uint32_t> missing;
623 const std::vector<LArCellCollection*>::const_iterator
it = larcell->
find( robID );
624 if (
it != larcell->end() && ( *it )->size()!=0 ) {
◆ convertROBs() [1/2]
Definition at line 548 of file TrigCaloDataAccessSvc.cxx.
556 size_t listIDsize = rIds.size();
557 std::vector<unsigned int>
tile;
tile.push_back(0);
559 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags1;
560 for (
size_t i = 0;
i < listIDsize; ++
i){
566 const std::vector<TileCellCollection*>::const_iterator
it =
567 (tilecell->
find(rIds[
i]));
569 if ( robFrags1.size()!=0 &&
col != NULL ) {
570 size_t roddatasize = robFrags1[0]->rod_ndata();
572 if (roddatasize < 3) {
574 "event: Empty ROD block (less than 3 words) : 0x"
575 << std::hex <<
tile[0] << std::dec );
576 msg(MSG::WARNING) <<
"Error reading bytestream "
577 <<
"event: Empty ROD block (less than 3 words) : 0x"
581 if ( !tilecell->
cached(rIds[
i])){
588 if ( !tilecell->
cached(rIds[
i]))
◆ convertROBs() [2/2]
Definition at line 488 of file TrigCaloDataAccessSvc.cxx.
493 for (
auto rob: robFrags ) {
494 uint32_t sourceID = rob->source_id();
495 const std::vector<LArCellCollection*>::const_iterator
it = larcell->
find( sourceID );
498 if (
it != larcell->end() && ( *it )->size() != 0 ) {
503 ATH_MSG_DEBUG(
"ROB of ID " << sourceID <<
" to be decoded" );
510 "event: Bad ROB block ( eformat checks ) : 0x"
511 << std::hex << sourceID << std::dec );
519 rob->rod_data( roddata );
520 size_t roddatasize = rob->rod_ndata();
521 if ( roddatasize < 3 ) {
523 "event: Empty ROD block ( less than 3 words ) : 0x"
524 << std::hex << sourceID << std::dec );
530 m_larDecoder->fillCollectionHLT( *rob, roddata, roddatasize, *coll, larRodBlockStructure_per_slot, rodMinorVersion, robBlockType );
◆ finalize()
StatusCode TrigCaloDataAccessSvc::finalize |
( |
| ) |
|
|
overridevirtual |
Definition at line 46 of file TrigCaloDataAccessSvc.cxx.
53 for (
size_t slot = 0; slot <
m_nSlots; ++ slot ) {
57 CHECK( cache->larContainer->finalize() );
58 delete cache->larContainer;
59 CHECK( cache->tileContainer->finalize() );
60 delete cache->tileContainer;
61 cache->d0cells->clear();
62 delete cache->d0cells;
63 cache->lastFSEvent = 0xFFFFFFFF;
64 delete cache->fullcont;
68 return StatusCode::SUCCESS;
◆ initialize()
StatusCode TrigCaloDataAccessSvc::initialize |
( |
| ) |
|
|
overridevirtual |
Temporary fix
Definition at line 20 of file TrigCaloDataAccessSvc.cxx.
23 m_autoRetrieveTools =
false;
24 m_checkToolDeps =
false;
43 return StatusCode::SUCCESS;
◆ lateInit()
unsigned int TrigCaloDataAccessSvc::lateInit |
( |
const EventContext & |
context | ) |
|
|
private |
Definition at line 285 of file TrigCaloDataAccessSvc.cxx.
297 std::vector<uint32_t> vrodid32lar;
298 std::vector<uint32_t> vrodid32em;
299 std::vector<uint32_t> vrodid32hec;
300 std::vector<uint32_t> vrodid32hec0;
301 std::vector<uint32_t> vrodid32hec1;
302 std::vector<uint32_t> vrodid32hec2;
303 std::vector<uint32_t> vrodid32hec3;
304 std::vector<uint32_t> vrodid32fcalem;
305 std::vector<uint32_t> vrodid32fcalhad;
308 std::vector<uint32_t> vrodid32tile;
309 std::vector<IdentifierHash> rIdstile;
327 auto iii = std::unique_copy(vrodid32tile.begin(),vrodid32tile.end(),
m_vrodid32tile.begin());
328 auto iij = std::unique_copy(rIdstile.begin(),rIdstile.end(),
m_rIdstile.begin());
336 vrodid32lar.insert(vrodid32lar.end(),vrodid32em.begin(),vrodid32em.end());
337 vrodid32hec.insert(vrodid32hec.end(),vrodid32hec0.begin(),vrodid32hec0.end());
338 vrodid32lar.insert(vrodid32lar.end(),vrodid32hec.begin(),vrodid32hec.end());
339 vrodid32lar.insert(vrodid32lar.end(),vrodid32fcalhad.begin(),vrodid32fcalhad.end());
340 vrodid32lar.insert(vrodid32lar.end(),vrodid32fcalem.begin(),vrodid32fcalem.end());
351 unsigned int nFebs=70;
371 for (
size_t slot = 0; slot <
m_nSlots; ++ slot ) {
376 cache->larRodBlockStructure_per_slot =
nullptr;
377 if ( cache->larContainer->initialize( **roimap, **onoff, **mcsym, **febrod, **larBadChan, *theCaloDDM).isFailure() )
379 std::vector<CaloCell*> local_cell_copy;
380 local_cell_copy.reserve(200000);
382 cache->lastFSEvent = 0xFFFFFFFF;
384 cachefullcont->
reserve(190000);
386 for(
unsigned int lcidx=0; lcidx < larcell->size(); lcidx++){
388 unsigned int lccsize = lcc->
size();
389 for(
unsigned int lccidx=0; lccidx<lccsize; lccidx++){
402 if (
good ) local_cell_copy.push_back(
cell );
409 cache->tileContainer = tilecell;
411 if( tilecell->
initialize().isFailure() )
return 0x1;
412 for (
unsigned int i=0;
i<4;
i++) {
423 for(
unsigned int lcidx=0; lcidx < tilecell->size(); lcidx++){
425 unsigned int lccsize = lcc->
size();
426 for(
unsigned int lccidx=0; lccidx<lccsize; lccidx++){
428 if (
cell ) local_cell_copy.push_back(
cell );
431 int ros = (frag_id >> 8);
433 int drawer = (frag_id & 0xFF);
441 cache->d0cells = d0cellsp;
444 for(
unsigned int i=0;
i<hashMax;
i++){
448 unsigned int localcellMax = local_cell_copy.size();
449 for(
unsigned int i=0;
i<localcellMax;
i++){
450 unsigned int j = local_cell_copy.at(
i)->caloDDE()->calo_hash();
452 cachefullcont->
at(j) = local_cell_copy.at(
i);
455 for(
unsigned int i=0;
i<hashMax;
i++)
456 if ( cachefullcont->
at(
i) == nullptr ){
460 if (
el->is_tile() ) {
474 cachefullcont->
order();
476 if ( hashMax != cachefullcont->
size() )
480 cache->fullcont = cachefullcont;
482 local_cell_copy.clear();
◆ loadCollections() [1/2]
Definition at line 79 of file TrigCaloDataAccessSvc.cxx.
85 std::vector<IdentifierHash> requestHashIDs;
87 ATH_MSG_DEBUG(
"LArTT requested for event " << context <<
" and RoI " << roi );
90 if (
sc )
return StatusCode::FAILURE;
94 std::lock_guard<std::mutex> getCollClock{
m_hLTCaloSlot.get( context )->mutex };
104 ATH_MSG_DEBUG(
"requestHashIDs.size() in LoadColl = " << requestHashIDs.size() <<
" hash checksum "
108 for(
unsigned int i = 0 ;
i < requestHashIDs.size() ;
i++ )
113 loadedCells.
setMap( *roimap );
117 std::lock_guard<std::mutex> getCollClock{
m_hLTCaloSlot.get( context )->mutex };
118 loadedCells.
setRoIs( requestHashIDs );
120 if (
sc )
return StatusCode::FAILURE;
121 else return StatusCode::SUCCESS;
◆ loadCollections() [2/2]
Definition at line 124 of file TrigCaloDataAccessSvc.cxx.
127 std::vector<IdentifierHash> requestHashIDs;
129 ATH_MSG_DEBUG(
"Tile requested for event " << context <<
" and RoI " << roi );
132 if (
sc )
return StatusCode::FAILURE;
136 std::lock_guard<std::mutex> getCollClock{
m_hLTCaloSlot.get( context )->mutex };
139 ATH_MSG_DEBUG(
"requestHashIDs.size() in LoadColl = " << requestHashIDs.size() <<
" hash checksum "
143 for(
unsigned int i = 0 ;
i < requestHashIDs.size() ;
i++ )
146 size_t listIDsize = requestHashIDs.size();
149 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags;
151 for (
size_t i = 0;
i < listIDsize; ++
i){
153 const std::vector<TileCellCollection*>::const_iterator
it =
154 (tilecell->
find(requestHashIDs[
i]));
156 if (
col == NULL )
continue;
159 for (;itt!=End;++itt){
161 loadedCells.push_back(
cell );
165 return StatusCode::SUCCESS;
◆ loadFullCollections()
◆ loadMBTS()
StatusCode TrigCaloDataAccessSvc::loadMBTS |
( |
const EventContext & |
context, |
|
|
std::vector< const TileCell * > & |
loadedCells |
|
) |
| |
|
overridevirtual |
Definition at line 756 of file TrigCaloDataAccessSvc.cxx.
762 if (
sc )
return StatusCode::FAILURE;
765 std::lock_guard<std::mutex> collectionLock { cache->mutex };
768 loadedCells.reserve(
mbts->size());
769 for (
size_t i=0;
i<
mbts->size(); ++
i)
770 loadedCells.push_back(
mbts->at(
i));
771 return StatusCode::SUCCESS;
◆ missingROBs()
fill the set of missing robs given the request and response from RoBDatProvider
Definition at line 602 of file TrigCaloDataAccessSvc.cxx.
606 std::set<uint32_t> receivedROBsSet;
608 receivedROBsSet.insert( rob->source_id() );
609 std::set<uint32_t> requestedROBsSet( request.begin(), request.end() );
611 std::set_difference( requestedROBsSet.begin(), requestedROBsSet.end(),
612 receivedROBsSet.begin(), receivedROBsSet.end(),
613 std::inserter( missing, missing.begin() ) );
◆ prepareFullCollections()
unsigned int TrigCaloDataAccessSvc::prepareFullCollections |
( |
const EventContext & |
context | ) |
|
|
private |
◆ prepareLArCollections()
LAr TT collections preparation code.
Definition at line 631 of file TrigCaloDataAccessSvc.cxx.
641 if ( cache->lastFSEvent == context.evt() )
return 0x0;
643 std::vector<uint32_t> requestROBs;
645 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags;
659 if ( robFrags.empty() && (!requestROBs.empty()) ) {
664 std::lock_guard<std::mutex> collectionLock { cache->mutex };
671 cache->larContainer->eventNumber( context.evt() );
677 if ( avgPtr && onoffPtr ) cache->larContainer->updateBCID( *avgPtr, *onoffPtr );
680 unsigned int status =
convertROBs( robFrags, ( cache->larContainer ), (cache->larRodBlockStructure_per_slot), cache->rodMinorVersion, cache->robBlockType );
682 if ( requestROBs.size() != robFrags.size() ) {
683 ATH_MSG_DEBUG(
"Missing ROBs, requested " << requestROBs.size() <<
" obtained " << robFrags.size() );
685 clearMissing( requestROBs, robFrags, ( cache->larContainer ) );
◆ prepareLArFullCollections()
unsigned int TrigCaloDataAccessSvc::prepareLArFullCollections |
( |
const EventContext & |
context | ) |
|
|
private |
Definition at line 204 of file TrigCaloDataAccessSvc.cxx.
206 ATH_MSG_DEBUG(
"Full Col " <<
" requested for event " << context );
215 std::lock_guard<std::mutex> collectionLock { cache->mutex };
218 if ( cache->lastFSEvent == context.evt() )
return 0x0;
219 cache->larContainer->eventNumber( context.evt() ) ;
225 if ( avgPtr && onoffPtr ) cache->larContainer->updateBCID( *avgPtr, *onoffPtr );
232 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags;
240 status |=
convertROBs( robFrags, ( cache->larContainer ), (cache->larRodBlockStructure_per_slot), cache->rodMinorVersion, cache->robBlockType );
242 if ( vrodid32fullDet.size() != robFrags.size() ) {
243 ATH_MSG_DEBUG(
"Missing ROBs, requested " << vrodid32fullDet.size() <<
" obtained " << robFrags.size() );
245 clearMissing( vrodid32fullDet, robFrags, ( cache->larContainer ) );
◆ prepareMBTSCollections()
unsigned int TrigCaloDataAccessSvc::prepareMBTSCollections |
( |
const EventContext & |
context | ) |
|
|
private |
Definition at line 726 of file TrigCaloDataAccessSvc.cxx.
733 if ( cache->lastFSEvent == context.evt() )
return 0x0;
735 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags;
740 std::lock_guard<std::mutex> collectionLock { cache->mutex };
742 if ( cache->tileContainer->eventNumber() != context.evt() )
743 cache->d0cells->clear();
744 cache->tileContainer->
eventNumber( context.evt() );
746 const std::vector<unsigned int>*
ids = tilecell->
MBTS_IDs();
747 std::vector<IdentifierHash> tileIds;
748 for(
size_t i=0;
i<
ids->size();
i++) tileIds.push_back( (*
ids)[
i] );
749 unsigned int status =
convertROBs( context, tileIds, cache->tileContainer, cache->d0cells );
◆ prepareTileCollections()
Definition at line 695 of file TrigCaloDataAccessSvc.cxx.
703 if ( cache->lastFSEvent == context.evt() )
return 0x0;
705 std::vector<uint32_t> requestROBs;
706 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFrags;
707 std::vector<IdentifierHash> rIds;
716 std::lock_guard<std::mutex> collectionLock { cache->mutex };
717 if ( cache->tileContainer->eventNumber() != context.evt() )
718 cache->d0cells->clear();
719 cache->tileContainer->eventNumber( context.evt() );
721 unsigned int status =
convertROBs( context, rIds, cache->tileContainer, cache->d0cells );
◆ prepareTileFullCollections()
unsigned int TrigCaloDataAccessSvc::prepareTileFullCollections |
( |
const EventContext & |
context | ) |
|
|
private |
Definition at line 256 of file TrigCaloDataAccessSvc.cxx.
258 ATH_MSG_DEBUG(
"Full Col " <<
" requested for event " << context );
267 std::lock_guard<std::mutex> collectionLock { cache->mutex };
270 if ( cache->lastFSEvent == context.evt() )
return 0x0;
271 if ( cache->tileContainer->eventNumber() != context.evt() )
272 cache->d0cells->clear();
273 cache->tileContainer->eventNumber( context.evt() );
◆ reset_LArCol()
◆ reset_TileCol()
Definition at line 98 of file TrigCaloDataAccessSvc.h.
101 (tr)->setTime_nonvirt(-100.0
F);
102 (tr)->setQuality_nonvirt(
static_cast<unsigned char>(255), 0, 0);
103 (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_dataPrepMutex
std::mutex TrigCaloDataAccessSvc::m_dataPrepMutex |
|
private |
◆ m_febRodMappingKey
◆ m_getCollMutex
std::mutex TrigCaloDataAccessSvc::m_getCollMutex |
|
private |
◆ m_hLTCaloSlot
◆ m_initMutex
std::mutex TrigCaloDataAccessSvc::m_initMutex |
|
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
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
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
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
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)
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
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
unsigned int convertROBs(const std::vector< const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment * > &robFrags, LArCellCont *larcell, LArRodBlockStructure *&larRodBlockStructure, uint16_t rodMinorVersion, uint32_t robBlockType)
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
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