ATLAS Offline Software
BlockFillerToolImpl.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // $Id$
16 
17 
18 namespace D3PD {
19 
20 
28  const std::string& name,
29  const IInterface* parent)
30  : base_class (type, name, parent),
31  AddVariable (m_prefix, m_blockName, m_suffix)
32 {
33  declareProperty ("Prefix", m_prefix = "",
34  "Tuple variable prefix for this block.");
35  declareProperty ("Suffix", m_suffix = "",
36  "Tuple variable suffix for this block.");
37  declareProperty ("BlockName", m_blockName = this->name(),
38  "The name of this block.");
39 }
40 
41 
56  const std::type_info& ti,
57  const std::type_info& fill_ti)
58 {
60  CHECK( m_converter.init (ti, fill_ti) );
61 
62  return StatusCode::SUCCESS;
63 }
64 
65 
84  const std::type_info& ti,
85  const std::vector<const std::type_info*>& tis,
86  size_t& which)
87 {
89  CHECK( m_converter.init (ti, tis, which) );
90  return StatusCode::SUCCESS;
91 }
92 
93 
105 BlockFillerToolImpl::convert (void const* & p) const
106 {
108  if (!p) {
109  REPORT_MESSAGE (MSG::ERROR)
110  << "Pointer conversion from " << m_converter.srcName() << " to "
111  << m_converter.dstName() << "failed.";
112  return StatusCode::FAILURE;
113  }
114  return StatusCode::SUCCESS;
115 }
116 
117 
118 
119 } // namespace D3PD
D3PD::IAddVariable
Common interface for adding a variable to a tuple.
Definition: IAddVariable.h:70
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
D3PD::AddVariable
Common implementation of IAddVariable.
Definition: AddVariable.h:38
D3PD::TypeConverter::dstName
std::string dstName() const
Return the name of the destination type, or an empty string.
Definition: TypeConverter.cxx:151
D3PD::AddVariable::configureD3PD
StatusCode configureD3PD(IAddVariable *tree)
Configure the parent tree.
Definition: AddVariable.cxx:61
tree
TChain * tree
Definition: tile_monitor.h:30
D3PD::BlockFillerToolImpl::m_suffix
std::string m_suffix
Property: the variable prefix for this block.
Definition: BlockFillerToolImpl.h:115
D3PD::BlockFillerToolImpl::BlockFillerToolImpl
BlockFillerToolImpl(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
Definition: BlockFillerToolImpl.cxx:27
D3PD::TypeConverter::init
StatusCode init(const std::type_info &src_ti, const std::type_info &dst_ti)
Initialize the converter.
Definition: TypeConverter.cxx:51
D3PD::TypeConverter::srcName
std::string srcName() const
Return the name of the source type, or an empty string.
Definition: TypeConverter.cxx:141
D3PD::BlockFillerToolImpl::convert
StatusCode convert(void const *&p) const
Do type conversion.
Definition: BlockFillerToolImpl.cxx:105
D3PD::TypeConverter::convertUntyped
const void * convertUntyped(const void *p) const
Convert pointer.
Definition: TypeConverter.cxx:116
D3PD
Block filler tool for noisy FEB information.
Definition: InnerDetector/InDetMonitoring/InDetGlobalMonitoring/macros/EnhancedPrimaryVertexMonitoring/TrigD3PD/ChainGroup.h:21
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
python.Utils.unixtools.which
def which(filename, env=os.environ)
UNIX-style which ---------------------------------------------------------—.
Definition: unixtools.py:39
D3PD::BlockFillerToolImpl::m_converter
TypeConverter m_converter
Helper to do type conversions.
Definition: BlockFillerToolImpl.h:121
D3PD::BlockFillerToolImpl::m_blockName
std::string m_blockName
Property: the name of this block.
Definition: BlockFillerToolImpl.h:118
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
errorcheck.h
Helpers for checking error return status codes and reporting errors.
REPORT_MESSAGE
#define REPORT_MESSAGE(LVL)
Report a message.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:365
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
BlockFillerToolImpl.h
Non-template parts of BlockFillerTool.
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
D3PD::BlockFillerToolImpl::configureImpl
StatusCode configureImpl(IAddVariable *tree, const std::type_info &ti, const std::type_info &fill_ti)
Configure during initialization: type-check.
Definition: BlockFillerToolImpl.cxx:55
D3PD::BlockFillerToolImpl::m_prefix
std::string m_prefix
Property: the variable prefix for this block.
Definition: BlockFillerToolImpl.h:112