22 using namespace PhysicsTools;
31 ProcCategory(
const char *
name,
34 virtual ~ProcCategory() {}
36 virtual void configure(ConfIterator iter,
unsigned int n);
37 virtual void eval(ValueIterator iter,
unsigned int n)
const;
47 ProcCategory::ProcCategory(
const char *
name,
54 void ProcCategory::configure(ConfIterator iter,
unsigned int n)
56 if (n !=
calib->variableBinLimits.size())
60 for(std::vector<BinLimits>::const_iterator
bin =
61 calib->variableBinLimits.begin();
63 categories *= (
bin->size() + 1);
69 iter++(Variable::FLAG_NONE);
71 iter << Variable::FLAG_NONE;
74 void ProcCategory::eval(ValueIterator iter,
unsigned int n)
const
77 for(std::vector<BinLimits>::const_iterator vars =
78 calib->variableBinLimits.begin();
79 vars !=
calib->variableBinLimits.end(); vars++, ++iter) {
80 unsigned int idx = std::upper_bound(vars->begin(), vars->end(),
81 *iter) - vars->begin();
82 category *= vars->size() + 1;
86 iter(
calib->categoryMapping[category]);
detail::ThreadSafeRegistry< ParameterSetID, ParameterSet, ProcessParameterSetIDCache > Registry
MVATrainerComputer * calib