Belle II Software  release-05-02-19
MLRange.h
1 /*************************************************************************
2 * BASF2 (Belle Analysis Framework 2) *
3 * Copyright(C) 2015 - Belle II Collaboration *
4 * *
5 * Author: The Belle II Collaboration *
6 * Contributors: Thomas Madlener *
7 * *
8 * This software is provided "as is" without any warranty. *
9 **************************************************************************/
10 
11 #pragma once
12 
13 #include <TTree.h>
14 #include <array>
15 
16 namespace Belle2 {
30  template<typename ClassifierType, size_t Ndims = 9, typename CutType = double>
31  class MLRange {
33  ClassifierType* m_classifier;
35  CutType m_cut;
36 
37  public:
42  MLRange(ClassifierType* classifier, CutType cut) : m_classifier(classifier), m_cut(cut) { ; }
43 
50  inline bool contains(std::array<double, Ndims> hits) const { return !(m_classifier->analyze(hits) < m_cut); }
51 
57  void persist(TTree* /*t*/, const std::string& /*branchname*/, const std::string& /*variablename*/)
58  {
59  // TODO
60  }
61  };
63 }
Belle2::MLRange::m_cut
CutType m_cut
Cut value.
Definition: MLRange.h:43
Belle2::MLRange::MLRange
MLRange(ClassifierType *classifier, CutType cut)
Constructor.
Definition: MLRange.h:50
Belle2::MLRange::persist
void persist(TTree *, const std::string &, const std::string &)
For Storing this range.
Definition: MLRange.h:65
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::MLRange::m_classifier
ClassifierType * m_classifier
Pointer to classifier to be used.
Definition: MLRange.h:41
Belle2::MLRange::contains
bool contains(std::array< double, Ndims > hits) const
method used to decide if a hit combination passes the Machine Learning filter
Definition: MLRange.h:58