Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:17:47

0001 /**********************************/
0002 /*  Program to arrange, init,     */
0003 /*   and calc an MVA response     */
0004 /*   Cameron Dean, LANL, 06/15/20 */
0005 /**********************************/
0006 
0007 #ifndef KFPARTICLESPHENIX_KFPARTICLEMVA_H
0008 #define KFPARTICLESPHENIX_KFPARTICLEMVA_H
0009 
0010 #include <Rtypes.h>  // for root's Float_t
0011 
0012 #include <string>
0013 #include <tuple>
0014 #include <vector>
0015 
0016 class KFParticle;
0017 class KFPVertex;
0018 
0019 namespace TMVA
0020 {
0021   class Reader;
0022 }
0023 
0024 class KFParticle_MVA
0025 {
0026  public:
0027   KFParticle_MVA() = default;
0028 
0029   virtual ~KFParticle_MVA() = default;
0030 
0031   std::tuple<TMVA::Reader*, std::vector<Float_t>> initMVA();
0032 
0033   Float_t evaluateMVA(TMVA::Reader* reader, std::vector<Float_t> reader_floats, const KFParticle& particle, const KFPVertex& vertex);
0034 
0035  protected:
0036   unsigned int m_nPars = 1;
0037   std::vector<std::string> m_mva_variable_list;
0038   std::string m_mva_type;
0039   std::string m_mva_path;
0040 
0041  private:
0042   unsigned int nMVApars = m_nPars;  // sizeof(m_mva_variable_list)/sizeof(m_mva_variable_list[0]);
0043   std::string method = m_mva_path + " method";
0044 };
0045 
0046 #endif  // KFPARTICLESPHENIX_KFPARTICLEMVA_H