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

Tool to extend pixel detector element status data by the status extracted from the bytestream error container. More...

#include <PixelDetectorElementStatusCloneTool.h>

Inheritance diagram for PixelDetectorElementStatusCloneTool:
Collaboration diagram for PixelDetectorElementStatusCloneTool:

Public Member Functions

 PixelDetectorElementStatusCloneTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize () override
virtual std::unique_ptr< InDet::SiDetectorElementStatusgetDetectorElementStatus (const EventContext &ctx, SG::WriteCondHandle< InDet::SiDetectorElementStatus > *whandle) const override

Static Public Member Functions

static InterfaceID & interfaceID ()

Protected Member Functions

std::unique_ptr< InDet::SiDetectorElementStatuscreateDetectorElementStatus (const EventContext &ctx, SG::WriteCondHandle< InDet::SiDetectorElementStatus > *whandle) const
 Create a new detector element status element container.

Protected Attributes

const PixelIDm_pixelID {}

Private Attributes

SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollectionm_pixelDetEleCollKey {this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"}
SG::ReadCondHandleKey< InDet::SiDetectorElementStatusm_pixelDetElStatusCondKey {this, "PixelDetElStatusCondDataBaseKey", "" , "Optional conditions data key of an input SiDetectorElementStatus on which the newly created object will be based."}

Detailed Description

Tool to extend pixel detector element status data by the status extracted from the bytestream error container.

The input to the tool can only be conditions data, the output will have an invalid IOV. Thus, can only be event data.

Definition at line 11 of file PixelDetectorElementStatusCloneTool.h.

Constructor & Destructor Documentation

◆ PixelDetectorElementStatusCloneTool()

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

Definition at line 14 of file PixelDetectorElementStatusCloneTool.h.

15 : PixelDetectorElementStatusToolBase(type,name, parent)
16 {}
PixelDetectorElementStatusToolBase(const std::string &type, const std::string &name, const IInterface *parent)

Member Function Documentation

◆ createDetectorElementStatus()

std::unique_ptr< InDet::SiDetectorElementStatus > PixelDetectorElementStatusToolBase::createDetectorElementStatus ( const EventContext & ctx,
SG::WriteCondHandle< InDet::SiDetectorElementStatus > * whandle ) const
protectedinherited

Create a new detector element status element container.

Depending on the properties the container may be a copy of an event data or conditions data element status container.

Definition at line 34 of file PixelDetectorElementStatusToolBase.cxx.

35 {
36 if (!m_pixelDetElStatusCondKey.empty()) {
37 SG::ReadCondHandle<InDet::SiDetectorElementStatus> input_element_status{m_pixelDetElStatusCondKey, ctx};
38 if (whandle) {
39 whandle->addDependency (input_element_status);
40 }
41
42 return std::make_unique<InDet::PixelDetectorElementStatus>(*castToDerived(input_element_status.cptr()));
43 }
44 else {
45 SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> pixelDetEleHandle(m_pixelDetEleCollKey, ctx);
46 if (not pixelDetEleHandle.isValid() ) {
47 std::stringstream msg;
48 msg << m_pixelDetEleCollKey.fullKey() << " is not available.";
49 throw std::runtime_error(msg.str());
50 }
51 if (whandle) {
52 whandle->addDependency (pixelDetEleHandle);
53 }
54 const InDetDD::SiDetectorElementCollection* elements(*pixelDetEleHandle);
55 return std::make_unique<InDet::PixelDetectorElementStatus>(*elements);
56 }
57}
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
SG::ReadCondHandleKey< InDet::SiDetectorElementStatus > m_pixelDetElStatusCondKey
const_pointer_type cptr()
void addDependency(const EventIDRange &range)
MsgStream & msg
Definition testRead.cxx:32

◆ getDetectorElementStatus()

std::unique_ptr< InDet::SiDetectorElementStatus > PixelDetectorElementStatusCloneTool::getDetectorElementStatus ( const EventContext & ctx,
SG::WriteCondHandle< InDet::SiDetectorElementStatus > * whandle ) const
overridevirtual

Definition at line 9 of file PixelDetectorElementStatusCloneTool.cxx.

10 {
11 std::unique_ptr<InDet::SiDetectorElementStatus> element_status( createDetectorElementStatus(ctx, whandle));
12 std::vector<bool> &status=element_status->getElementStatus();
13 if (status.empty()) {
14 status.resize(m_pixelID->wafer_hash_max(),true );
15 }
16 std::vector<InDet::ChipFlags_t> &chip_status=element_status->getElementChipStatus();
17 if (chip_status.empty()) {
18 chip_status.resize(status.size(),0xffff);
19 }
20
21 if (whandle) {
22 ATH_MSG_ERROR("PixelDetectorElementStatusCloneTool is not for use with conditions objects");
24 }
25
26 return element_status;
27}
#define ATH_MSG_ERROR(x)
std::unique_ptr< InDet::SiDetectorElementStatus > createDetectorElementStatus(const EventContext &ctx, SG::WriteCondHandle< InDet::SiDetectorElementStatus > *whandle) const
Create a new detector element status element container.
status
Definition merge.py:16

◆ initialize()

StatusCode PixelDetectorElementStatusCloneTool::initialize ( )
overridevirtual

◆ interfaceID()

InterfaceID & PixelDetectorElementStatusCloneTool::interfaceID ( )
inlinestatic

Definition at line 26 of file PixelDetectorElementStatusCloneTool.h.

26 {
27 static InterfaceID IID_PixelDetectorElementStatusCloneTool("PixelDetectorElementStatusCloneTool", 1, 0);
28 return IID_PixelDetectorElementStatusCloneTool;
29}

Member Data Documentation

◆ m_pixelDetEleCollKey

SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> PixelDetectorElementStatusToolBase::m_pixelDetEleCollKey {this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"}
privateinherited

Definition at line 41 of file PixelDetectorElementStatusToolBase.h.

42{this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"};

◆ m_pixelDetElStatusCondKey

SG::ReadCondHandleKey<InDet::SiDetectorElementStatus> PixelDetectorElementStatusToolBase::m_pixelDetElStatusCondKey {this, "PixelDetElStatusCondDataBaseKey", "" , "Optional conditions data key of an input SiDetectorElementStatus on which the newly created object will be based."}
privateinherited

Definition at line 44 of file PixelDetectorElementStatusToolBase.h.

45{this, "PixelDetElStatusCondDataBaseKey", "" , "Optional conditions data key of an input SiDetectorElementStatus on which the newly created object will be based."};

◆ m_pixelID

const PixelID* PixelDetectorElementStatusToolBase::m_pixelID {}
protectedinherited

Definition at line 38 of file PixelDetectorElementStatusToolBase.h.

38{};

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