1 #ifndef RecoEgamma_EgammaTools_MVAVariableManager_H 2 #define RecoEgamma_EgammaTools_MVAVariableManager_H 13 template <
class ParticleType>
18 std::ifstream
file(variableDefinitionFileEdm.
fullPath());
26 if (name.find(
"#") != std::string::npos) {
39 std::map<std::string, int>::iterator it =
indexMap_.find(name);
56 if (varInfo.auxIndex >= 0)
57 value = auxVariables[varInfo.auxIndex];
61 if (varInfo.hasLowerClip && value < varInfo.lowerClipValue) {
62 value = varInfo.lowerClipValue;
64 if (varInfo.hasUpperClip && value > varInfo.upperClipValue) {
65 value = varInfo.upperClipValue;
83 bool hasLowerClip = lowerClip.find(
"None") == std::string::npos;
84 bool hasUpperClip = upperClip.find(
"None") == std::string::npos;
85 bool isAuxiliary = formula.find(
"Rho") != std::string::npos;
100 MVAVariableInfo varInfo{
const std::string & getName(int index) const
MVAVariableManager(const std::string &variableDefinitionFileName)
std::vector< std::string > names_
std::map< std::string, int > indexMap_
std::vector< std::string > formulas_
float getValue(int index, const ParticleType &particle, const std::vector< float > &auxVariables) const
int getIndex(std::string const &name) const
std::vector< ThreadSafeStringCut< StringObjectFunction< ParticleType >, ParticleType > > functions_
void addVariable(const std::string &name, const std::string &formula, const std::string &lowerClip, const std::string &upperClip)
const MVAVariableIndexMap indexMap
int getVarIndex(const std::string &name)
std::string fullPath() const
std::vector< MVAVariableInfo > variableInfos_
ParticleType
Definition of particle types.