ATLAS Offline Software
Loading...
Searching...
No Matches
LArRawDataContByteStreamTool Class Reference

An AlgTool class to help converting LAr raw data objects to/from ByteStream. More...

#include <LArRawDataContByteStreamTool.h>

Inheritance diagram for LArRawDataContByteStreamTool:
Collaboration diagram for LArRawDataContByteStreamTool:

Public Types

using FEA_t = FullEventAssembler<RodRobIdMap>

Public Member Functions

 LArRawDataContByteStreamTool (const std::string &type, const std::string &name, const IInterface *parent)
 Constructor Standard AlgTool constructor.
virtual ~LArRawDataContByteStreamTool ()
 Destructor.
virtual StatusCode initialize () override
virtual StatusCode finalize () override
template<class COLLECTION, typename ... ARGS>
StatusCode convert (const RawEvent *re, COLLECTION *digit_cont, CaloGain::CaloGain gain, ARGS &&... args) const
 Templated conversion class form Raw Event to a container.
StatusCode WriteLArRawChannels (const LArRawChannelContainer *CannelCont, FEA_t &fea) const
 Fill channels from LArRawChannelContainer to a FullEvent.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool InterfaceID.

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

using RobIndex_t = std::map<eformat::SubDetectorGroup, std::vector<const uint32_t*> >
typedef ServiceHandle< StoreGateSvc > StoreGateSvc_t

Private Member Functions

StatusCode prepareRobIndex (const RawEvent *event, RobIndex_t &robIndex) const
 Prepare ROB index before conversion.
std::unique_ptr< LArRodBlockStructure > makeRodBlockStructure () const
 Construct a RodBlockStructure instance of the proper concrete type.
template<class COLLECTION>
bool checkGainConsistency (const COLLECTION *coll) const
 Check that all elements in a container have the same gain.
const Hid2RESrcID & getHid2RESrcID (const LArFebRodMapping &rodMapping) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

CxxUtils::CachedUniquePtr< Hid2RESrcID > m_hid2re
 Contains the mapping from channel to ROD (writing only).
PublicToolHandle< LArRodDecoder > m_decoder { this, "LArRodDecoder", "LArRodDecoder", "LArRodDecoder" }
unsigned m_DSPRunMode
 Indicates which version of DSP code should be used for writing.
unsigned short m_RodBlockVersion
 Minor ROD block version This is equivalent to the lower 16 bits of the version word in the ROD block header.
bool m_initializeForWriting
 JobOption to intitialize services needed only for writing.
uint16_t m_subDetId
double m_nfebsigma
bool m_includeDigits
std::string m_DigitContName
const LArOnlineID * m_onlineHelper = nullptr
SG::ReadCondHandleKey< CaloNoise > m_caloNoiseKey { this, "CaloNoiseKey", "totalNoise", "" }
SG::ReadCondHandleKey< LArOnOffIdMapping > m_onOffIdMappingKey { this, "OnOffIdMappingKey", "LArOnOffIdMap", "LArOnOffIdMap" }
SG::ReadCondHandleKey< LArFebRodMapping > m_febRodMappingKey { this, "FebRodMappingKey", "LArFebRodMap", "LArFebRodMap" }
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey { this, "CaloDetDescrManager", "CaloDetDescrManager", "SG Key for CaloDetDescrManager in the Condition Store" }
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

An AlgTool class to help converting LAr raw data objects to/from ByteStream.

This tool is used for reading as well as writing. It's main prupose is to find all LAr-Fragment in the full byte-stream event

Definition at line 48 of file LArRawDataContByteStreamTool.h.

Member Typedef Documentation

◆ FEA_t

◆ RobIndex_t

using LArRawDataContByteStreamTool::RobIndex_t = std::map<eformat::SubDetectorGroup, std::vector<const uint32_t*> >
private

Definition at line 100 of file LArRawDataContByteStreamTool.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 376 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ LArRawDataContByteStreamTool()

LArRawDataContByteStreamTool::LArRawDataContByteStreamTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Constructor Standard AlgTool constructor.

Definition at line 39 of file LArRawDataContByteStreamTool.cxx.

41 : AthAlgTool(type,name,parent)
42{ declareInterface< LArRawDataContByteStreamTool >( this );
43 declareProperty("DSPRunMode",m_DSPRunMode=4);
44 declareProperty("RodBlockVersion",m_RodBlockVersion=0);
45 declareProperty("FebNoiseCut",m_nfebsigma=2);
46 declareProperty("InitializeForWriting",m_initializeForWriting=false);
47 declareProperty("SubDetectorId",m_subDetId=0);
48 declareProperty("IncludeDigits",m_includeDigits=false);
49 declareProperty("DigitsContainer",m_DigitContName="LArDigitContainer_MC_Thinned");
50}
AthAlgTool()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
unsigned m_DSPRunMode
Indicates which version of DSP code should be used for writing.
unsigned short m_RodBlockVersion
Minor ROD block version This is equivalent to the lower 16 bits of the version word in the ROD block ...
bool m_initializeForWriting
JobOption to intitialize services needed only for writing.

◆ ~LArRawDataContByteStreamTool()

LArRawDataContByteStreamTool::~LArRawDataContByteStreamTool ( )
virtual

Destructor.

Definition at line 52 of file LArRawDataContByteStreamTool.cxx.

52 {
53}

Member Function Documentation

◆ checkGainConsistency()

template<class COLLECTION>
bool LArRawDataContByteStreamTool::checkGainConsistency ( const COLLECTION * coll) const
private

Check that all elements in a container have the same gain.

Parameters
collPointer to input container (template)
Returns
false if an incosistency is detected

◆ convert()

template<class COLLECTION, typename ... ARGS>
StatusCode LArRawDataContByteStreamTool::convert ( const RawEvent * re,
COLLECTION * digit_cont,
CaloGain::CaloGain gain,
ARGS &&... args ) const

Templated conversion class form Raw Event to a container.

Parameters
RawEventFull event in ByteStream format as defined in ByteStreamData/RawEvent.h
COLLECTIONTemplate for the raw data container. Can be the containers of LArRawChannel, LArDigit, LArCalibDigit, LArFebHeader or LArAccumulatedCalibDigit or LArAccumulatedDigit
gainFor fixed-gain mode (e.g. calibration digits), indicates which gain should be read
Returns
Gaudi StatusCode

Iterates though all levels of the Atlas ByteStream format (aka eformat) to get all ROD fragments belonging to LAr. Methods from LArRodDecoder are used to deal with the individual ROD fragments.

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

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

◆ finalize()

StatusCode LArRawDataContByteStreamTool::finalize ( )
overridevirtual

Definition at line 89 of file LArRawDataContByteStreamTool.cxx.

90{
91 ATH_CHECK( AthAlgTool::finalize() );
92 return StatusCode::SUCCESS;
93}
#define ATH_CHECK
Evaluate an expression and check for errors.

◆ getHid2RESrcID()

const Hid2RESrcID & LArRawDataContByteStreamTool::getHid2RESrcID ( const LArFebRodMapping & rodMapping) const
private

Definition at line 257 of file LArRawDataContByteStreamTool.cxx.

258{
259 if (!m_hid2re) {
260 auto hid2re = std::make_unique<Hid2RESrcID>();
261 if (hid2re->initialize (rodMapping).isFailure()) {
262 std::abort();
263 }
264 m_hid2re.set (std::move (hid2re));
265 }
266 return *m_hid2re.get();
267}
CxxUtils::CachedUniquePtr< Hid2RESrcID > m_hid2re
Contains the mapping from channel to ROD (writing only).

◆ initialize()

StatusCode LArRawDataContByteStreamTool::initialize ( )
overridevirtual

Definition at line 57 of file LArRawDataContByteStreamTool.cxx.

58{
59 ATH_CHECK( AthAlgTool::initialize() );
60 ATH_MSG_DEBUG ( "Initializing LArRawDataContByteStream" );
61
62 ATH_CHECK( m_decoder.retrieve() );
63
65 if (m_DSPRunMode == 0) {
66 // Obsolete mode
67 ATH_MSG_ERROR ( "LArRodBlockStructure type 0 is obsolete and can't be used any more." );
68 return StatusCode::FAILURE;
69 }
70
71 ATH_CHECK( detStore()->retrieve (m_onlineHelper, "LArOnlineID") );
72
73 ATH_MSG_INFO ( "Initialization done for reading and writing" );
74 }
75 else {
76 ATH_MSG_INFO ( "Initialization done for reading only" );
77 }
78
83
84 return StatusCode::SUCCESS;
85}
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_ERROR(x,...)
#define ATH_MSG_INFO(x,...)
const ServiceHandle< StoreGateSvc > & detStore() const
PublicToolHandle< LArRodDecoder > m_decoder
SG::ReadCondHandleKey< CaloNoise > m_caloNoiseKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_onOffIdMappingKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
SG::ReadCondHandleKey< LArFebRodMapping > m_febRodMappingKey

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

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.

◆ interfaceID()

const InterfaceID & LArRawDataContByteStreamTool::interfaceID ( )
static

AlgTool InterfaceID.

Definition at line 34 of file LArRawDataContByteStreamTool.cxx.

static const InterfaceID IID_ILArRawDataContByteStreamTool("LArRawDataContByteStreamTool", 1, 0)

◆ makeRodBlockStructure()

std::unique_ptr< LArRodBlockStructure > LArRawDataContByteStreamTool::makeRodBlockStructure ( ) const
private

Construct a RodBlockStructure instance of the proper concrete type.

Definition at line 223 of file LArRawDataContByteStreamTool.cxx.

224{
225 switch(m_DSPRunMode) {
226 case 0: // Obsolete; shouldn't get here.
227 std::abort();
228
229 case 2: //Transparent mode, DSP just copies FEB-data
230 ATH_MSG_DEBUG ( "Set Rod Block Type to LArRodBlockTransparent (#2)" );
231 return std::make_unique<LArRodBlockTransparentV0<LArRodBlockHeaderTransparentV0> >(this->msgSvc().get());
232 break;
233
234 case 4: //Physics assembly mode
235 if ( m_RodBlockVersion == 10 ){
236 ATH_MSG_DEBUG ( "Set Rod Block Type to LArRodBlockPhysics (#5)" );
237 return std::make_unique<LArRodBlockPhysicsV5>(this->msgSvc().get());
238 }
239 else if ( m_RodBlockVersion == 12 ){
240 ATH_MSG_DEBUG ( "Set Rod Block Type to LArRodBlockPhysics (#6)" );
241 return std::make_unique<LArRodBlockPhysicsV6>(this->msgSvc().get());
242 }
243 else {
244 ATH_MSG_ERROR ( "Unsupported Rod block version " << m_RodBlockVersion << " for physics assembly mode (#4)" );
245 std::abort();
246 }
247 break;
248
249 default:
250 ATH_MSG_ERROR ( "DSP runmode " << m_DSPRunMode << " is unknown." );
251 std::abort();
252 }
253}
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition hcg.cxx:132

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

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.

◆ prepareRobIndex()

StatusCode LArRawDataContByteStreamTool::prepareRobIndex ( const RawEvent * event,
RobIndex_t & robIndex ) const
private

Prepare ROB index before conversion.

Definition at line 191 of file LArRawDataContByteStreamTool.cxx.

193{
194 // This `optimization' leads to disaster if there ever happen to be
195 // two adjacent events with identical L1 IDs --- in that case,
196 // we'd be using the dangling ROB pointers from the last event.
197 // We should generally come through here only once per event anyway.
198 ATH_MSG_DEBUG( "Converting event (from ByteStream)" );
199
200 if (!re) {
201 ATH_MSG_ERROR ( "RawEvent passed to 'convert'-function is a null pointer!" );
202 return StatusCode::FAILURE;
203 }
204
205 if (!m_decoder->check_valid (re, msg())) return StatusCode::FAILURE;
206
207 ATH_MSG_VERBOSE ( "Full Event:" );
208 ATH_MSG_VERBOSE ( MSG::hex << "Full source ID: " << re->source_id() << MSG::dec );
209 ATH_MSG_VERBOSE ("Fragment size in words: " << re->fragment_size_word() );
210
211 // Need to clear up or it will accumulate
212 robIndex.clear();
213 eformat::helper::build_toc(*re, robIndex );
214 if ( robIndex.empty() ) { // This is a problem
215 return StatusCode::FAILURE;
216 }
217 return StatusCode::SUCCESS;
218}
const std::regex re(r_e)
#define ATH_MSG_VERBOSE(x,...)
MsgStream & msg() const

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 368 of file AthCommonDataStore.h.

369 {
370 h.renounce();
372 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 352 of file AthCommonDataStore.h.

352 {
354 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, and AthCheckedComponent<::AthAlgTool >.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 298 of file AthCommonDataStore.h.

298 {
299 for (auto &a : m_vhka) {
301 for (auto k : keys) {
302 k->setOwner(this);
303 }
304 }
305 }
std::vector< SG::VarHandleKeyArray * > m_vhka

◆ WriteLArRawChannels()

StatusCode LArRawDataContByteStreamTool::WriteLArRawChannels ( const LArRawChannelContainer * CannelCont,
FEA_t & fea ) const

Fill channels from LArRawChannelContainer to a FullEvent.

Parameters
digit_contPointer to LArRawChannelContainer (input)
feaPointer to FullEventAssember (output)
Returns
Gaudi StatusCode

Definition at line 96 of file LArRawDataContByteStreamTool.cxx.

98{
100 ATH_MSG_ERROR ( "Tool not setup for writing! Use property "
101 << name()<<".InitializeForWriting" );
102 return StatusCode::FAILURE;
103 }
104 if (!channelCont) {
105 ATH_MSG_DEBUG ( "Null pointer passed to WriteLArCalibDigit routine!" );
106 return StatusCode::FAILURE;
107 }
108
109 std::unique_ptr<LArRodBlockStructure> blstruct = makeRodBlockStructure();
110
111 if (!blstruct->canSetEnergy()) {
112 ATH_MSG_DEBUG ( "This instance of LArRodBlockStructure can't hold LArRawChannels!" );
113 return StatusCode::FAILURE;
114 }
115 FEA_t::RODDATA* theROD;
116 fea.setRodMinorVersion(m_RodBlockVersion);
117 fea.setDetEvtType(m_DSPRunMode);
118 ATH_MSG_DEBUG ( "Setting Detector Event Type to " << m_DSPRunMode
119 << "and Minor Version Number to " << m_RodBlockVersion );
120 LArRawChannelContainer::const_iterator it = channelCont->begin();
121 LArRawChannelContainer::const_iterator it_e= channelCont->end();
122 if ( it==it_e) {
123 ATH_MSG_WARNING ( "Attempt to persistify a empty LArDigitContainer to ByteStream" );
124 return StatusCode::SUCCESS;
125 }
126
127 const EventContext& ctx = Gaudi::Hive::currentContext();
128 SG::ReadCondHandle<LArOnOffIdMapping> onOffMapping (m_onOffIdMappingKey, ctx);
129 SG::ReadCondHandle<LArFebRodMapping> febRodMapping (m_febRodMappingKey, ctx);
130 SG::ReadCondHandle<CaloDetDescrManager> caloMgr (m_caloMgrKey, ctx);
131 const Hid2RESrcID& hid2re = getHid2RESrcID (**febRodMapping);
132
133 std::map<uint32_t, LArRodEncoder> mapEncoder;
134
135 auto getEncoder = [&] (uint32_t reid) -> LArRodEncoder&
136 { return mapEncoder.try_emplace (reid,
138 **caloMgr,
139 **onOffMapping,
140 blstruct.get()).first->second; };
141
142 ATH_MSG_DEBUG(" number of LArRawChannel container "<< channelCont->size() );
143 for(; it!=it_e; ++it){
144 const LArRawChannel& rawChan = *it;
145 HWIdentifier chid = rawChan.channelID() ;
146 uint32_t reid = hid2re.getRodID( **febRodMapping, chid );
147
148 getEncoder(reid).add (&rawChan);
149 }
150 // I may want to also include the digits
151 if ( m_includeDigits ) {
152 const LArDigitContainer* digitCont = nullptr;
153 if ( evtStore()->retrieve(digitCont,m_DigitContName).isFailure() ){
154 ATH_MSG_ERROR ( "Digits required but not really found" );
155 } else {
156 if ( blstruct->canIncludeRawData() ){
158 LArDigitContainer::const_iterator it_e=digitCont->end();
159 if (it_b==it_e) {
160 ATH_MSG_WARNING ( "Attempt to persistify a empty LArDigitContainer to ByteStream" );
161 }
162 for(; it_b!=it_e; ++it_b){
163 const LArDigit* digit = *it_b;
164 HWIdentifier chid = digit->hardwareID() ;
165 uint32_t reid = hid2re.getRodID( **febRodMapping, chid );
166 // Lets use anygain for the moment
167 getEncoder(reid).add (digit);
168 }
169 } // End of check whether format allows to include RawData
170 } // Finish checking for Digit container in SG
171 } // End of check for digits inclusion
172
173 SG::ReadCondHandle<CaloNoise> noise (m_caloNoiseKey, ctx);
174
175 // Now loop over map and fill all ROD Data Blocks
176 std::map<uint32_t,LArRodEncoder>::iterator it_m =mapEncoder.begin();
177 std::map<uint32_t,LArRodEncoder>::iterator it_m_e=mapEncoder.end();
178 // LArRodEncoder has collected all the channels, now can fill the
179 // ROD block data.
180 for(; it_m!=it_m_e;++it_m) {
181 theROD = fea.getRodData( (*it_m).first );
182 ((*it_m).second).fillROD( *theROD,msg(), **noise, m_nfebsigma ) ;
183 // delete ((*it_m).second);
184 // ((*it_m).second)=NULL;
185 }
186 ATH_MSG_DEBUG ( "Filled " << mapEncoder.size() << " Rod Blocks" );
187 return StatusCode::SUCCESS;
188}
#define ATH_MSG_WARNING(x,...)
ServiceHandle< StoreGateSvc > & evtStore()
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:861
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
uint32_t getRodID(const LArFebRodMapping &rodMapping, const HWIdentifier &hid) const
make a ROD SrcID for a HWIdentifier
HWIdentifier channelID() const
std::unique_ptr< LArRodBlockStructure > makeRodBlockStructure() const
Construct a RodBlockStructure instance of the proper concrete type.
const Hid2RESrcID & getHid2RESrcID(const LArFebRodMapping &rodMapping) const
setEventNumber uint32_t

Member Data Documentation

◆ m_caloMgrKey

SG::ReadCondHandleKey<CaloDetDescrManager> LArRawDataContByteStreamTool::m_caloMgrKey { this, "CaloDetDescrManager", "CaloDetDescrManager", "SG Key for CaloDetDescrManager in the Condition Store" }
private

Definition at line 155 of file LArRawDataContByteStreamTool.h.

156{ this, "CaloDetDescrManager", "CaloDetDescrManager", "SG Key for CaloDetDescrManager in the Condition Store" };

◆ m_caloNoiseKey

SG::ReadCondHandleKey<CaloNoise> LArRawDataContByteStreamTool::m_caloNoiseKey { this, "CaloNoiseKey", "totalNoise", "" }
private

Definition at line 146 of file LArRawDataContByteStreamTool.h.

147{ this, "CaloNoiseKey", "totalNoise", "" };

◆ m_decoder

PublicToolHandle<LArRodDecoder> LArRawDataContByteStreamTool::m_decoder { this, "LArRodDecoder", "LArRodDecoder", "LArRodDecoder" }
private

Definition at line 119 of file LArRawDataContByteStreamTool.h.

120{ this, "LArRodDecoder", "LArRodDecoder", "LArRodDecoder" };

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 381 of file AthCommonDataStore.h.

◆ m_DigitContName

std::string LArRawDataContByteStreamTool::m_DigitContName
private

Definition at line 142 of file LArRawDataContByteStreamTool.h.

◆ m_DSPRunMode

unsigned LArRawDataContByteStreamTool::m_DSPRunMode
private

Indicates which version of DSP code should be used for writing.

This is equivalent to the DetectorEventType word in the ROD block header. Only for writing.

Definition at line 126 of file LArRawDataContByteStreamTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 378 of file AthCommonDataStore.h.

◆ m_febRodMappingKey

SG::ReadCondHandleKey<LArFebRodMapping> LArRawDataContByteStreamTool::m_febRodMappingKey { this, "FebRodMappingKey", "LArFebRodMap", "LArFebRodMap" }
private

Definition at line 152 of file LArRawDataContByteStreamTool.h.

153{ this, "FebRodMappingKey", "LArFebRodMap", "LArFebRodMap" };

◆ m_hid2re

CxxUtils::CachedUniquePtr<Hid2RESrcID> LArRawDataContByteStreamTool::m_hid2re
private

Contains the mapping from channel to ROD (writing only).

Definition at line 118 of file LArRawDataContByteStreamTool.h.

◆ m_includeDigits

bool LArRawDataContByteStreamTool::m_includeDigits
private

Definition at line 140 of file LArRawDataContByteStreamTool.h.

◆ m_initializeForWriting

bool LArRawDataContByteStreamTool::m_initializeForWriting
private

JobOption to intitialize services needed only for writing.

Definition at line 136 of file LArRawDataContByteStreamTool.h.

◆ m_nfebsigma

double LArRawDataContByteStreamTool::m_nfebsigma
private

Definition at line 138 of file LArRawDataContByteStreamTool.h.

◆ m_onlineHelper

const LArOnlineID* LArRawDataContByteStreamTool::m_onlineHelper = nullptr
private

Definition at line 144 of file LArRawDataContByteStreamTool.h.

◆ m_onOffIdMappingKey

SG::ReadCondHandleKey<LArOnOffIdMapping> LArRawDataContByteStreamTool::m_onOffIdMappingKey { this, "OnOffIdMappingKey", "LArOnOffIdMap", "LArOnOffIdMap" }
private

Definition at line 149 of file LArRawDataContByteStreamTool.h.

150{ this, "OnOffIdMappingKey", "LArOnOffIdMap", "LArOnOffIdMap" };

◆ m_RodBlockVersion

unsigned short LArRawDataContByteStreamTool::m_RodBlockVersion
private

Minor ROD block version This is equivalent to the lower 16 bits of the version word in the ROD block header.

Only for writing.

Definition at line 132 of file LArRawDataContByteStreamTool.h.

◆ m_subDetId

uint16_t LArRawDataContByteStreamTool::m_subDetId
private

Definition at line 137 of file LArRawDataContByteStreamTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 387 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 386 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: