ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
D3PDMaker
D3PDMakerUtils
D3PDMakerUtils
BlockFillerToolMulti.h
Go to the documentation of this file.
1
// This file's extension implies that it's C, but it's really -*- C++ -*-.
2
3
/*
4
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5
*/
13
14
15
#ifndef D3PDMAKERUTILS_BLOCKFILLERTOOLMULTI_H
16
#define D3PDMAKERUTILS_BLOCKFILLERTOOLMULTI_H
17
18
19
#include "
D3PDMakerUtils/Types.h
"
20
#include "
D3PDMakerUtils/BlockFillerToolImpl.h
"
21
#ifndef D3PDMAKERUTILS_BLOCKFILLERTOOL_H
// prevent recursive include
22
#include "
D3PDMakerUtils/BlockFillerTool.h
"
23
#endif
24
25
#include <cstdlib>
26
27
28
namespace
D3PD
{
29
30
45
template
<
class
T0>
46
class
BlockFillerTool
<
Types
<T0> >
47
:
public
BlockFillerToolImpl
48
{
49
public
:
56
BlockFillerTool
(
const
std::string&
type
,
57
const
std::string& name,
58
const
IInterface* parent);
59
60
69
virtual
StatusCode
configureD3PD
(
IAddVariable
*
tree
,
70
const
std::type_info& ti)
override
;
71
72
78
virtual
StatusCode
book
()
override
= 0;
79
80
89
virtual
StatusCode
fill
(
const
T0&
/*p*/
) = 0;
90
91
103
virtual
StatusCode
fillAgain
(
const
T0& p) {
return
this->
fill
(p); }
104
105
132
virtual
StatusCode fillUntyped (
const
void
* p,
bool
again
=
false
)
override
;
133
134
135
protected
:
137
size_t
m_which;
138
139
150
virtual
StatusCode
doFillUntyped
(
const
void
* p,
bool
again
,
size_t
count
);
151
152
160
virtual
void
push_ti
(std::vector<const std::type_info*>& tis);
161
};
162
163
164
}
// namespace D3PD
165
166
167
#include "
D3PDMakerUtils/BlockFillerToolMulti.icc
"
168
169
170
#endif
// not D3PDMAKERUTILS_BLOCKFILLERTOOLMULTI_H
BlockFillerToolImpl.h
Non-template parts of BlockFillerTool.
BlockFillerToolMulti.icc
BlockFillerTool.h
Type-safe wrapper for block filler tools.
Types.h
A simple tuple of multiple types.
D3PD::BlockFillerTool< Types< T0 > >::BlockFillerTool
BlockFillerTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
D3PD::BlockFillerTool< Types< T0 > >::fillAgain
virtual StatusCode fillAgain(const T0 &p)
Fill one block, after AGAIN has been returned (type-safe).
Definition
BlockFillerToolMulti.h:103
D3PD::BlockFillerTool< Types< T0 > >::fill
virtual StatusCode fill(const T0 &)=0
Fill one block — type-safe version.
D3PD::BlockFillerTool< Types< T0 > >::doFillUntyped
virtual StatusCode doFillUntyped(const void *p, bool again, size_t count)
Fill one block.
D3PD::BlockFillerTool< Types< T0 > >::push_ti
virtual void push_ti(std::vector< const std::type_info * > &tis)
Helper to collect the list of type_info's that we accept.
D3PD::BlockFillerTool< Types< T0 > >::configureD3PD
virtual StatusCode configureD3PD(IAddVariable *tree, const std::type_info &ti) override
Configure during initialization: type-check.
D3PD::BlockFillerTool< Types< T0 > >::book
virtual StatusCode book() override=0
Declare tuple variables.
D3PD::BlockFillerTool< Types< T0 > >::BlockFillerToolImpl
BlockFillerToolImpl(const std::string &type, const std::string &name, const IInterface *parent)
D3PD::IAddVariable
Common interface for adding a variable to a tuple.
Definition
IAddVariable.h:70
count
int count(std::string s, const std::string ®x)
count how many occurances of a regx are in a string
Definition
hcg.cxx:148
D3PD
Block filler tool for noisy FEB information.
Definition
CaloCellDetailsFillerTool.cxx:29
D3PD::Types
std::tuple< WrapType< TYPES >... > Types
A simple tuple of multiple types.
Definition
PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/Types.h:61
D3PD::again
bool again
Definition
VoidBlockFillerTool.cxx:79
D3PD::fill
virtual StatusCode fill()
Fill one object.
type
tree
TChain * tree
Definition
tile_monitor.h:30
Generated on
for ATLAS Offline Software by
1.17.0