ATLAS Offline Software
PhysicsAnalysis
RingerSelectorTools
RingerSelectorTools
tools
RingerIOVarDepObj.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef RINGERSELECTORTOOLS_TOOLS_RINGERIOVARDEPOBJ_H
6
#define RINGERSELECTORTOOLS_TOOLS_RINGERIOVARDEPOBJ_H
7
8
// STL includes:
9
#include <string>
10
11
// Root includes:
12
#include <TFile.h>
13
14
// Local includes:
15
#include "
RingerSelectorTools/RingerSelectorToolsDefs.h
"
16
#include "
RingerSelectorTools/procedures/IRingerProcedure.h
"
17
#include "
RingerSelectorTools/tools/VariableDependency.h
"
18
98
#define RINGER_IO_VARDEP_BASE(self) \
99
public: \
100
\
101
RINGER_DEFINE_PROCEDURE(self) \
102
\
103
static void read(self *newObj, \
104
TDirectory *configDir, \
105
unsigned version ); \
106
\
107
virtual void write(TDirectory *configDir, const char* idxStr = "") \
108
const override;
109
113
#define RINGER_IO_VARDEP_BASE_NOMEMBER(self) \
114
public: \
115
\
116
RINGER_DEFINE_NOMEMBER_PROCEDURE(self) \
117
\
118
static void read(self *, \
119
TDirectory *, \
120
unsigned ) {;} \
121
\
122
virtual void write(TDirectory *, const char*) const \
123
override {;}
124
134
#define RINGER_IO_VARDEP_OBJ(self, base) \
135
\
136
public: \
137
typedef base base_t; \
138
\
139
template <typename T = const char*> \
140
static T procType() \
141
{ \
142
return base::template procType<T>(); \
143
} \
144
\
145
virtual std::string name() const \
146
override final \
147
{ \
148
return this->RingerIOVarDepObj<self>::name(); \
149
} \
150
\
151
void print(MSG::Level lvl) const \
152
override final \
153
{ \
154
this->base_t::print(lvl); \
155
} \
156
\
157
virtual void write(TDirectory *baseDir, const char* idxStr = "") const \
158
override final \
159
{ \
160
this->RingerIOVarDepObj<self>::write(baseDir, idxStr); \
161
} \
162
\
163
static self* read(TDirectory *configDir){ \
164
return RingerIOVarDepObj<self>::read(configDir); \
165
} \
166
\
167
typedef typename Ringer::template RingerProcedureType<base>:: \
168
baseInterface_t baseInterface_t; \
169
\
170
using baseInterface_t::procType;
171
172
namespace
Ringer
{
173
193
template
<
class
CRTP >
194
class
RingerIOVarDepObj
:
virtual
public
VariableDependency
195
{
196
197
public
:
201
//typedef CRTP crtp_t;
202
203
// Make sure we initialize the variable dependency
204
RingerIOVarDepObj
():
VariableDependency
(){;}
205
209
std::string
name
()
const
;
210
214
static
CRTP*
read
(TDirectory *configDir);
215
219
void
write
(TDirectory *baseDir,
const
char
* idxStr=
""
)
220
const
;
221
};
222
223
}
// namespace Ringer
224
225
#endif // RINGERSELECTORTOOLS_TOOLS_RINGERIOVARDEPOBJ_H
226
227
#ifndef INCLUDE_HEADER_ONLY // Use to avoid circular includes
228
#include "
RingerIOVarDepObj.icc
"
229
#endif // INCLUDE_HEADER_ONLY
VariableDependency.h
Ringer::RingerIOVarDepObj::name
std::string name() const
Retrieve name for this RingerIOVarDepObj.
Ringer::RingerIOVarDepObj::read
static CRTP * read(TDirectory *configDir)
Read Ringer procedure from configuration dir.
Ringer::RingerIOVarDepObj::RingerIOVarDepObj
RingerIOVarDepObj()
Typedef to CRTP type:
Definition:
RingerIOVarDepObj.h:204
RingerIOVarDepObj.icc
RingerSelectorToolsDefs.h
Ringer::RingerIOVarDepObj::write
void write(TDirectory *baseDir, const char *idxStr="") const
Write Ringer procedure to configuration directory.
Ringer::VariableDependency
Interface for possible Eta and Et variable dependency.
Definition:
VariableDependency.h:89
Ringer::RingerIOVarDepObj
Objects that can be recorded/read into/from configuration files.
Definition:
RingerIOVarDepObj.h:195
IRingerProcedure.h
Ringer
Namespace dedicated for Ringer utilities.
Definition:
CaloRingsDefs.h:9
Generated on Sun Dec 22 2024 21:17:07 for ATLAS Offline Software by
1.8.18