1 #ifndef PhysicsTools_MVAComputer_ProcessRegistry_h
2 #define PhysicsTools_MVAComputer_ProcessRegistry_h
19 #include "oneapi/tbb/concurrent_unordered_map.h"
21 namespace PhysicsTools {
24 template <
class Base_t,
class CalibBase_t,
class Parent_t,
class Instance_t,
class Calibration_t>
38 template <
class Base_t,
class CalibBase_t,
class Parent_t>
44 template <
class Instance_t,
class Calibration_t>
60 static Base_t *
create(
const char *
name,
const CalibBase_t *calib, Parent_t *
parent = 0);
71 static Base_t *
create(
const char *
name,
const CalibBase_t *calib, Parent_t *
parent);
74 virtual Base_t *
instance(
const char *
name,
const CalibBase_t *calib, Parent_t *
parent)
const = 0;
80 typedef tbb::concurrent_unordered_map<std::string, const ProcessRegistry *>
RegistryMap;
97 template <
class Base_t,
class CalibBase_t,
class Parent_t,
class Instance_t,
class Calibration_t>
105 return new Instance_t(name, dynamic_cast<const Calibration_t *>(calib), parent);
111 #endif // PhysicsTools_MVAComputer_ProcessRegistry_h