1 #ifndef PhysicsTools_MVAComputer_MVAComputer_h 2 #define PhysicsTools_MVAComputer_MVAComputer_h 50 template<
typename Iterator_t>
53 template<
typename Iterator_t>
54 double deriv(Iterator_t first, Iterator_t last)
const;
57 template<
typename Container_t>
60 typedef typename Container_t::const_iterator Iterator_t;
61 return this->
template eval<Iterator_t>(
62 values.begin(), values.end());
65 template<
typename Container_t>
68 typedef typename Container_t::iterator Iterator_t;
69 return this->
template deriv<Iterator_t>(
70 values.begin(), values.end());
120 unsigned int nOutput) :
121 processor(processor), nOutput(nOutput) {}
138 values_(values), conf_(conf), n_(n) {}
143 unsigned int offset,
unsigned int out)
const 144 { proc->
eval(values_, conf_, output, outConf, loop, ctx, offset); }
147 {
return values_[conf_[
output]]; }
149 inline double *
values()
const {
return values_; }
150 inline int *
conf()
const {
return conf_; }
151 inline unsigned int n()
const {
return n_; }
164 unsigned int offset,
unsigned int out)
const;
166 double output(
unsigned int output,
167 std::vector<double> &derivs)
const;
169 inline double *
values()
const {
return &values_.front(); }
170 inline int *
conf()
const {
return &conf_.front(); }
171 inline unsigned int n()
const {
return n_; }
202 std::unique_ptr<Calibration::MVAComputer>
owned;
207 #include "PhysicsTools/MVAComputer/interface/MVAComputer.icc" 209 #endif // PhysicsTools_MVAComputer_MVAComputer_h
TrainProcessor *const proc
void eval(const VarProcessor *proc, int *outConf, double *output, int *loop, VarProcessor::LoopCtx &ctx, unsigned int offset, unsigned int out) const
EvalContext(double *values, int *conf, unsigned int n)
std::vector< double > deriv_
double output(unsigned int output) const
std::vector< double > values_
bool operator<(DTCELinkId const &lhs, DTCELinkId const &rhs)