/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/ds/include/RAT/DS/Classifier.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/ds/include/RAT/DS/Classifier.hh Source File
Ratpac-two
Classifier.hh
1 #ifndef __RAT_Classifier__
2 #define __RAT_Classifier__
3 
4 #include <TObject.h>
5 
6 #include <map>
7 #include <string>
8 #include <vector>
9 
10 namespace RAT {
11 namespace DS {
12 
13 class Classifier : public TObject {
14  public:
15  Classifier() : TObject(), classificationLabels(std::vector<std::string>{""}), classifier_name("") {
16  int index = 0;
17  for (auto &L : classificationLabels) {
18  this->nameIndexMap[L] = index++;
19  this->classificationResults.push_back(0.0);
20  }
21  }
22  Classifier(std::string name, std::vector<std::string> labels)
23  : TObject(), classificationLabels(labels), classifier_name(name) {
24  int index = 0;
25  for (auto &L : labels) {
26  this->nameIndexMap[L] = index++;
27  this->classificationResults.push_back(0.0);
28  }
29  }
30  virtual ~Classifier() {}
31 
32  // Classifier name
33  virtual const std::string &GetClassifierName() const { return classifier_name; }
34  virtual void SetClassifierName(const std::string &_name) { classifier_name = _name; }
35 
36  // Classifier Results
37  virtual void SetClassificationResult(const std::string &name, double val) {
38  classificationResults[nameIndexMap[name]] = val;
39  }
40  virtual double GetClassificationResult(const std::string &name) { return classificationResults[nameIndexMap[name]]; }
41 
42  // Classifier Results
43  std::vector<std::string> classificationLabels;
44  std::vector<double> classificationResults;
45  std::map<std::string, int> nameIndexMap;
46 
47  ClassDef(Classifier, 1);
48 
49  protected:
50  std::string classifier_name;
51 };
52 
53 } // namespace DS
54 } // namespace RAT
55 
56 #endif
Definition: Classifier.hh:13
Definition: CCCrossSecMessenger.hh:29