This file is indexed.

/usr/include/root/TMVA/MethodLikelihood.h is in libroot-tmva-dev 5.34.30-0ubuntu8.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
// @(#)root/tmva $Id$ 
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss, Peter Speckmayer, Eckhard von Toerne, Jan Therhaag 

/**********************************************************************************
 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis       *
 * Package: TMVA                                                                  *
 * Class  : MethodLikelihood                                                      *
 * Web    : http://tmva.sourceforge.net                                           *
 *                                                                                *
 * Description:                                                                   *
 *      Likelihood analysis ("non-parametric approach")                           *
 *      Also implemented is a "diagonalized likelihood approach",                 *
 *      which improves over the uncorrelated likelihood ansatz by transforming    *
 *      linearly the input variables into a diagonal space, using the square-root *
 *      of the covariance matrix. This approach can be chosen by inserting        *
 *      the letter "D" into the option string.                                    *
 *                                                                                *
 * Authors (alphabetical):                                                        *
 *      Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland              *
 *      Peter Speckmayer   <Peter.Speckmazer@cern.ch> - CERN, Switzerland         *
 *      Joerg Stelzer      <Joerg.Stelzer@cern.ch>    - CERN, Switzerland         *
 *      Helge Voss         <Helge.Voss@cern.ch>       - MPI-K Heidelberg, Germany *
 *      Kai Voss        <Kai.Voss@cern.ch>       - U. of Victoria, Canada         *
 *      Jan Therhaag       <Jan.Therhaag@cern.ch>     - U of Bonn, Germany        *
 *      Eckhard v. Toerne  <evt@uni-bonn.de>          - U of Bonn, Germany        *
 *                                                                                *
 * Copyright (c) 2005-2011:                                                       *
 *      CERN, Switzerland                                                         * 
 *      U. of Victoria, Canada                                                    * 
 *      MPI-K Heidelberg, Germany                                                 * 
 *      U. of Bonn, Germany                                                       *
 *                                                                                *
 * Redistribution and use in source and binary forms, with or without             *
 * modification, are permitted according to the terms listed in LICENSE           *
 * (http://tmva.sourceforge.net/LICENSE)                                          *
 **********************************************************************************/

#ifndef ROOT_TMVA_MethodLikelihood
#define ROOT_TMVA_MethodLikelihood

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// MethodLikelihood                                                     //
//                                                                      //
// Likelihood analysis ("non-parametric approach")                      //
// Also implemented is a "diagonalized likelihood approach",            //
// which improves over the uncorrelated likelihood ansatz by            //
// transforming linearly the input variables into a diagonal space,     //
// using the square-root of the covariance matrix                       //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TMVA_MethodBase
#include "TMVA/MethodBase.h"
#endif
#ifndef ROOT_TMVA_PDF
#include "TMVA/PDF.h"
#endif

class TH1D;

namespace TMVA {

   class MethodLikelihood : public MethodBase {

   public:

      MethodLikelihood( const TString& jobName, 
                        const TString& methodTitle, 
                        DataSetInfo& theData,
                        const TString& theOption = "",
                        TDirectory* theTargetDir = 0 );
  
      MethodLikelihood( DataSetInfo& theData, 
                        const TString& theWeightFile,  
                        TDirectory* theTargetDir = NULL );

      virtual ~MethodLikelihood();
    
      virtual Bool_t HasAnalysisType( Types::EAnalysisType type, 
                                      UInt_t numberClasses, UInt_t numberTargets );

      // training method
      void Train();

      // write weights to file
      void WriteWeightsToStream( TFile& rf ) const;
      void AddWeightsXMLTo( void* parent ) const;

      // read weights from file
      void ReadWeightsFromStream( std::istream& istr );
      void ReadWeightsFromStream( TFile& istr );
      void ReadWeightsFromXML( void* wghtnode );
      // calculate the MVA value
      // the argument is used for internal ranking tests
      Double_t GetMvaValue( Double_t* err = 0, Double_t* errUpper = 0 );

      // write method specific histos to target file
      void WriteMonitoringHistosToFile() const;

      // ranking of input variables
      const Ranking* CreateRanking();

      virtual void WriteOptionsToStream ( std::ostream& o, const TString& prefix ) const;

   protected:

      void DeclareCompatibilityOptions();

      // make ROOT-independent C++ class for classifier response (classifier-specific implementation)
      void MakeClassSpecific( std::ostream&, const TString& ) const;

      // header and auxiliary classes
      void MakeClassSpecificHeader( std::ostream&, const TString& = "" ) const;

      // get help message text
      void GetHelpMessage() const;

   private:

      // returns transformed or non-transformed output
      Double_t TransformLikelihoodOutput( Double_t ps, Double_t pb ) const;

      // the option handling methods
      void Init();
      void DeclareOptions();
      void ProcessOptions();
      
      // options
      Double_t             fEpsilon;                   // minimum number of likelihood (to avoid zero)
      Bool_t               fTransformLikelihoodOutput; // likelihood output is sigmoid-transformed

      Int_t                fDropVariable;              //  for ranking test
      
      std::vector<TH1*>*   fHistSig;                   // signal PDFs (histograms)
      std::vector<TH1*>*   fHistBgd;                   // background PDFs (histograms)
      std::vector<TH1*>*   fHistSig_smooth;            // signal PDFs (smoothed histograms)
      std::vector<TH1*>*   fHistBgd_smooth;            // background PDFs (smoothed histograms)
  
      PDF*                 fDefaultPDFLik;             // pdf that contains default definitions
      std::vector<PDF*>*   fPDFSig;                    // list of PDFs (signal)    
      std::vector<PDF*>*   fPDFBgd;                    // list of PDFs (background)

      // default initialisation called by all constructors

      // obsolete variables kept for backward combatibility
      Int_t                fNsmooth;                   // number of smooth passes
      Int_t*               fNsmoothVarS;               // number of smooth passes
      Int_t*               fNsmoothVarB;               // number of smooth passes
      Int_t                fAverageEvtPerBin;          // average events per bin; used to calculate fNbins
      Int_t*               fAverageEvtPerBinVarS;      // average events per bin; used to calculate fNbins
      Int_t*               fAverageEvtPerBinVarB;      // average events per bin; used to calculate fNbins
      TString              fBorderMethodString;        // the method to take care about "border" effects (string)
      Float_t              fKDEfineFactor;             // fine tuning factor for Adaptive KDE
      TString              fKDEiterString;             // Number of iterations (string)
      TString              fKDEtypeString;             // Kernel type to use for KDE (string)
      TString*             fInterpolateString;         // which interpolation method used for reference histograms (individual for each variable)

      ClassDef(MethodLikelihood,0) // Likelihood analysis ("non-parametric approach") 
   };

} // namespace TMVA

#endif // MethodLikelihood_H