72 #ifndef IClassifierReader__def
73 #define IClassifierReader__def
84 virtual double GetMvaValue(
const std::vector<double>& inputValues )
const = 0;
108 const char* inputVars[] = {
"abs(track_deta)",
"abs(cluster_deta)",
"abs(cluster_dphi)",
"abs(track_dlayer)",
"approach_dist" };
111 if (theInputVars.size() <= 0) {
112 std::cout <<
"Problem in class \"" <<
fClassName <<
"\": empty input vector" << std::endl;
116 if (theInputVars.size() !=
fNvars) {
117 std::cout <<
"Problem in class \"" <<
fClassName <<
"\": mismatch in number of input values: "
118 << theInputVars.size() <<
" != " <<
fNvars << std::endl;
123 for (
size_t ivar = 0; ivar < theInputVars.size(); ivar++) {
124 if (theInputVars[ivar] != inputVars[ivar]) {
125 std::cout <<
"Problem in class \"" <<
fClassName <<
"\": mismatch in input variable names" << std::endl
126 <<
" for variable [" << ivar <<
"]: " << theInputVars[ivar].c_str() <<
" != " << inputVars[ivar] << std::endl;
163 double GetMvaValue(
const std::vector<double>& inputValues )
const;
184 return 2*(x -
xmin)/(xmax - xmin) - 1.0;
192 double GetMvaValue__(
const std::vector<double>& inputValues )
const;
204 std::cout <<
"Problem in class \"" <<
fClassName <<
"\": cannot return classifier response"
205 <<
" because status is dirty" << std::endl;
211 std::vector<double> iV;
212 iV.reserve(inputValues.size());
214 for (std::vector<double>::const_iterator varIt = inputValues.begin();
215 varIt != inputValues.end(); varIt++, ivar++) {