ATLAS Offline Software
PixelRawDataProviderTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef PIXELRAWDATABYTESTREAMCNV_PIXELRAWDATAPROVIDERTOOL_H
6 #define PIXELRAWDATABYTESTREAMCNV_PIXELRAWDATAPROVIDERTOOL_H
7 
14 
15 #include "GaudiKernel/EventContext.h"
16 #include "GaudiKernel/ToolHandle.h"
17 
18 #include <atomic>
19 
20 // the tool to decode a ROB frament
22 {
23 
24  public:
25 
27  PixelRawDataProviderTool( const std::string& type, const std::string& name,
28  const IInterface* parent ) ;
29 
31  StatusCode initialize() override;
32 
34  StatusCode convert( std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>& vecRobs,
35  IPixelRDO_Container* rdoIdc,
36  IDCInDetBSErrContainer& decodingErrors, const EventContext& ctx) const final;
37 
39  int SizeOfIDCInDetBSErrContainer() const final;
40 
41 private:
42 
43  ToolHandle<IPixelRodDecoder> m_decoder
44  {this, "Decoder", "PixelRodDecoder", "Tool for PixelRodDecoder"};
45 
46 
47  SG::WriteHandleKey<InDetTimeCollection> m_LVL1CollectionKey{this, "LVL1CollectionName", "PixelLVL1ID"};
48  SG::WriteHandleKey<InDetTimeCollection> m_BCIDCollectionKey{this, "BCIDCollectionName", "PixelBCID"};
49  Gaudi::Property<bool> m_storeInDetTimeColls{this, "StoreInDetTimeCollections", true, "Store LVL1ID and BCID"};
50 
51  mutable std::atomic_int m_DecodeErrCount;
52 };
53 
54 #endif
PixelRawDataProviderTool
Definition: PixelRawDataProviderTool.h:22
PixelRawDataProviderTool::initialize
StatusCode initialize() override
initialize
Definition: PixelRawDataProviderTool.cxx:24
IDCInDetBSErrContainer
IDC like storage for BS errors, TODO, customise implementation further so that we store int rather th...
Definition: IDCInDetBSErrContainer.h:19
IPixelRawDataProviderTool
Definition: IPixelRawDataProviderTool.h:14
PixelRawDataProviderTool::PixelRawDataProviderTool
PixelRawDataProviderTool(const std::string &type, const std::string &name, const IInterface *parent)
constructor
Definition: PixelRawDataProviderTool.cxx:17
PixelRawDataProviderTool::m_LVL1CollectionKey
SG::WriteHandleKey< InDetTimeCollection > m_LVL1CollectionKey
Definition: PixelRawDataProviderTool.h:47
EventContainers::IIdentifiableCont
Definition: IIdentifiableCont.h:13
PixelRawDataProviderTool::m_DecodeErrCount
std::atomic_int m_DecodeErrCount
Definition: PixelRawDataProviderTool.h:51
PixelRawDataProviderTool::convert
StatusCode convert(std::vector< const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment * > &vecRobs, IPixelRDO_Container *rdoIdc, IDCInDetBSErrContainer &decodingErrors, const EventContext &ctx) const final
this is the main decoding method
Definition: PixelRawDataProviderTool.cxx:34
IPixelRawDataProviderTool.h
SG::WriteHandleKey< InDetTimeCollection >
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
IPixelRodDecoder.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
PixelRawDataProviderTool::m_storeInDetTimeColls
Gaudi::Property< bool > m_storeInDetTimeColls
Definition: PixelRawDataProviderTool.h:49
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
PixelRawDataProviderTool::SizeOfIDCInDetBSErrContainer
int SizeOfIDCInDetBSErrContainer() const final
Size of IDCInDetBSErrContainer.
Definition: PixelRawDataProviderTool.cxx:106
SlotSpecificObj.h
Maintain a set of objects, one per slot.
PixelRawDataProviderTool::m_BCIDCollectionKey
SG::WriteHandleKey< InDetTimeCollection > m_BCIDCollectionKey
Definition: PixelRawDataProviderTool.h:48
InDetTimeCollection.h
PixelRawDataProviderTool::m_decoder
ToolHandle< IPixelRodDecoder > m_decoder
Definition: PixelRawDataProviderTool.h:44
AthAlgTool
Definition: AthAlgTool.h:26