31 namespace PhysicsTools {
36 static const char prefix[] =
"PhysicsTools::Calibration::";
39 if (
type.size() <=
sizeof prefix - 1 ||
42 <<
"getInstanceName failed for "
43 <<
typeid(*this).name() <<
"." << std::endl;
45 return type.substr(
sizeof prefix - 1);
48 std::unique_ptr<VarProcessor>
50 return(std::unique_ptr<VarProcessor>(
new VarProcessor(*
this)));
53 std::unique_ptr<VarProcessor>
55 return(std::unique_ptr<VarProcessor>(
new ProcOptional(*
this)));
58 std::unique_ptr<VarProcessor>
60 return(std::unique_ptr<VarProcessor>(
new ProcCount(*
this)));
63 std::unique_ptr<VarProcessor>
65 return(std::unique_ptr<VarProcessor>(
new ProcClassed(*
this)));
68 std::unique_ptr<VarProcessor>
70 return(std::unique_ptr<VarProcessor>(
new ProcSplitter(*
this)));
73 std::unique_ptr<VarProcessor>
75 return(std::unique_ptr<VarProcessor>(
new ProcForeach(*
this)));
78 std::unique_ptr<VarProcessor>
80 return(std::unique_ptr<VarProcessor>(
new ProcSort(*
this)));
83 std::unique_ptr<VarProcessor>
85 return(std::unique_ptr<VarProcessor>(
new ProcCategory(*
this)));
88 std::unique_ptr<VarProcessor>
90 return(std::unique_ptr<VarProcessor>(
new ProcNormalize(*
this)));
93 std::unique_ptr<VarProcessor>
98 std::unique_ptr<VarProcessor>
100 return(std::unique_ptr<VarProcessor>(
new ProcLinear(*
this)));
103 std::unique_ptr<VarProcessor>
105 return(std::unique_ptr<VarProcessor>(
new ProcMultiply(*
this)));
108 std::unique_ptr<VarProcessor>
110 return(std::unique_ptr<VarProcessor>(
new ProcMatrix(*
this)));
113 std::unique_ptr<VarProcessor>
115 return(std::unique_ptr<VarProcessor>(
new ProcExternal(*
this)));
118 std::unique_ptr<VarProcessor>
120 return(std::unique_ptr<VarProcessor>(
new ProcMLP(*
this)));
130 static std::atomic<MVAComputer::CacheId> nextCacheId{0};
132 return ++nextCacheId;
141 inputSet(orig.inputSet),
143 cacheId(orig.cacheId)
145 for(std::vector<VarProcessor*>::const_iterator iter =
153 for(std::vector<VarProcessor*>::iterator iter =
processors.begin();
165 for(std::vector<VarProcessor*>::iterator iter =
processors.begin();
170 for(std::vector<VarProcessor*>::const_iterator iter =
192 return ++nextCacheId;
210 public std::unary_function<const std::string&, bool> {
216 {
return entry.first ==
label; }
224 std::vector<Entry>::const_iterator pos =
230 <<
"Calibration record " << label
231 <<
" not found in MVAComputerContainer." << std::endl;
238 std::vector<Entry>::const_iterator pos =
241 if (pos ==
entries.end())
return false;
TrainProcessor *const proc
std::string const & className() const