This file is indexed.

/usr/include/root/TMVA/TransformationHandler.h is in libroot-tmva-dev 5.34.14-1build1.

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
// @(#)root/tmva $Id$
// Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss, Jan Therhaag, Eckhard von Toerne

/**********************************************************************************
 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis       *
 * Package: TMVA                                                                  *
 * Class  : TransformationHandler                                                 *
 * Web    : http://tmva.sourceforge.net                                           *
 *                                                                                *
 * Description:                                                                   *
 *      Contains all the data information                                         *
 *                                                                                *
 * Authors (alphabetical):                                                        *
 *      Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland              *
 *      Peter Speckmayer <speckmay@mail.cern.ch>  - CERN, Switzerland             *
 *      Joerg Stelzer   <Joerg.Stelzer@cern.ch>  - CERN, Switzerland              *
 *      Jan Therhaag       <Jan.Therhaag@cern.ch>     - U of Bonn, Germany        *
 *      Eckhard v. Toerne  <evt@uni-bonn.de>          - U of Bonn, Germany        *
 *      Helge Voss      <Helge.Voss@cern.ch>     - MPI-K Heidelberg, Germany      *
 *                                                                                *
 * Copyright (c) 2005-2011:                                                       *
 *      CERN, Switzerland                                                         *
 *      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_TransformationHandler
#define ROOT_TMVA_TransformationHandler

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TransformationHandler                                                //
//                                                                      //
// Class that contains all the data information                         //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TList
#include "TList.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif

#ifndef ROOT_TMVA_DataSetInfo
#include "TMVA/DataSetInfo.h"
#endif

namespace TMVA {

   class Event;
   class DataSet;
   class Ranking;
   class VariableTransformBase;
   class MsgLogger;
   
   class TransformationHandler {
   public:

      struct VariableStat {
         Double_t fMean;
         Double_t fRMS;
         Double_t fMin;
         Double_t fMax;
      };

      TransformationHandler( DataSetInfo&, const TString& callerName );
      ~TransformationHandler();

      TString GetName() const;
      TString GetVariableAxisTitle( const VariableInfo& info ) const;

      const Event* Transform(const Event*) const;
      const Event* InverseTransform(const Event*, Bool_t suppressIfNoTargets=true  ) const;

      // overrides the reference classes of all added transformations. Handle with care!!!
      void         SetTransformationReferenceClass( Int_t cls ); 

      VariableTransformBase* AddTransformation(VariableTransformBase*, Int_t cls );
      const TList& GetTransformationList()   const { return fTransformations; }
      Int_t        GetNumOfTransformations() const { return fTransformations.GetSize(); }
      const std::vector<Event*>* CalcTransformations( const std::vector<Event*>&, Bool_t createNewVector = kFALSE );
      
      void         CalcStats( const std::vector<Event*>& events );
      void         AddStats ( Int_t k, UInt_t ivar, Double_t mean, Double_t rms, Double_t min, Double_t max );
      Double_t     GetMean  ( Int_t ivar, Int_t cls = -1 ) const;
      Double_t     GetRMS   ( Int_t ivar, Int_t cls = -1 ) const;
      Double_t     GetMin   ( Int_t ivar, Int_t cls = -1 ) const;
      Double_t     GetMax   ( Int_t ivar, Int_t cls = -1 ) const;

      void         WriteToStream ( std::ostream& o ) const;
      void         AddXMLTo      ( void* parent=0 ) const;
      void         ReadFromStream( std::istream& istr );
      void         ReadFromXML   ( void* trfsnode );

      // writer of function code
      void         MakeFunction(std::ostream& fout, const TString& fncName, Int_t part) const;

      // variable ranking
      void         PrintVariableRanking() const;

      // provides string vector giving explicit transformation (only last transform at present -> later show full chain)
      std::vector<TString>* GetTransformationStringsOfLastTransform() const;
      const char*           GetNameOfLastTransform()                  const;

      // modify caller name for output
      void           SetCallerName( const TString& name );
      const TString& GetCallerName() const { return fCallerName; }

      // setting file dir for histograms
      TDirectory*    GetRootDir() const { return fRootBaseDir; }
      void           SetRootDir( TDirectory *d ) { fRootBaseDir = d; }

      void           PlotVariables( const std::vector<Event*>& events, TDirectory* theDirectory = 0 );

   private:
      
      std::vector<TMVA::Event*>* TransformCollection( VariableTransformBase* trf,
                                                      Int_t cls,
                                                      std::vector<TMVA::Event*>* events,
                                                      Bool_t replace ) const;
      
      const TMVA::VariableInfo& Variable(UInt_t ivar) const { return fDataSetInfo.GetVariableInfos().at(ivar); }
      const TMVA::VariableInfo& Target  (UInt_t itgt) const { return fDataSetInfo.GetTargetInfos()[itgt]; }

      DataSet* Data() { return fDataSetInfo.GetDataSet(); }

      DataSetInfo&          fDataSetInfo;                     // pointer to the datasetinfo
      TList                 fTransformations;                 //! list of transformations
      std::vector< Int_t >  fTransformationsReferenceClasses; //! reference classes for the transformations
      std::vector<std::vector<TMVA::TransformationHandler::VariableStat> >  fVariableStats; // first the variables, then the targets

      Int_t                 fNumC;               // number of categories (#classes +1)

      std::vector<Ranking*> fRanking;            //! ranking object
      TDirectory*           fRootBaseDir;        //! if set put input var hists
      TString               fCallerName;         //! name of the caller for output 
      mutable MsgLogger*    fLogger;             //! message logger
      MsgLogger& Log() const { return *fLogger; }                       
   };
}

#endif