BDTEventWrapper.h | BDTEventWrapper.h | |||
---|---|---|---|---|
skipping to change at line 65 | skipping to change at line 65 | |||
// Set the index of the variable to compare on | // Set the index of the variable to compare on | |||
/** | /** | |||
* @param iVar - index of the variable in fEvent to use | * @param iVar - index of the variable in fEvent to use | |||
*/ | */ | |||
inline static void SetVarIndex( Int_t iVar ) { if (iVar >= 0) fVarInd ex = iVar; } | inline static void SetVarIndex( Int_t iVar ) { if (iVar >= 0) fVarInd ex = iVar; } | |||
// Return the value of variable fVarIndex for this event | // Return the value of variable fVarIndex for this event | |||
/** | /** | |||
* @return value of variable fVarIndex for this event | * @return value of variable fVarIndex for this event | |||
*/ | */ | |||
inline Double_t GetVal() const { return fEvent->GetVal(fVarIndex); } | inline Double_t GetVal() const { return fEvent->GetValue(fVarIndex); } | |||
const Event* operator*() const { return fEvent; } | const Event* operator*() const { return fEvent; } | |||
private: | private: | |||
static Int_t fVarIndex; // index of the variable to sort on | static Int_t fVarIndex; // index of the variable to sort on | |||
const Event* fEvent; // pointer to the event | const Event* fEvent; // pointer to the event | |||
Double_t fBkgWeight; // cumulative background weight for splittin g | Double_t fBkgWeight; // cumulative background weight for splittin g | |||
Double_t fSigWeight; // same for the signal weights | Double_t fSigWeight; // same for the signal weights | |||
}; | }; | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
BayesianCalculator.h | BayesianCalculator.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: BayesianCalculator.h 31276 2009-11-18 15:06:42Z m oneta $ | // @(#)root/roostats:$Id: BayesianCalculator.h 31742 2009-12-09 17:34:15Z m oneta $ | |||
// Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | // Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOSTATS_BayesianCalculator | #ifndef ROOSTATS_BayesianCalculator | |||
skipping to change at line 47 | skipping to change at line 47 | |||
class BayesianCalculator : public IntervalCalculator, public TNamed { | class BayesianCalculator : public IntervalCalculator, public TNamed { | |||
public: | public: | |||
// constructor | // constructor | |||
BayesianCalculator( ); | BayesianCalculator( ); | |||
BayesianCalculator( RooAbsData& data, | BayesianCalculator( RooAbsData& data, | |||
RooAbsPdf& pdf, | RooAbsPdf& pdf, | |||
const RooArgSet & POI, | const RooArgSet& POI, | |||
RooAbsPdf& priorPOI, | RooAbsPdf& priorPOI, | |||
const RooArgSet* nuisanceParameters = 0 ); | const RooArgSet* nuisanceParameters = 0 ); | |||
BayesianCalculator( RooAbsData& data, | BayesianCalculator( RooAbsData& data, | |||
ModelConfig & model); | ModelConfig& model ); | |||
// destructor | // destructor | |||
virtual ~BayesianCalculator() ; | virtual ~BayesianCalculator(); | |||
RooPlot* GetPosteriorPlot() const; | RooPlot* GetPosteriorPlot() const; | |||
// return posterior pdf (object is managed by the BayesianCalculator class) | // return posterior pdf (object is managed by the BayesianCalculator class) | |||
RooAbsPdf * GetPosteriorPdf() const; | RooAbsPdf* GetPosteriorPdf() const; | |||
virtual SimpleInterval* GetInterval() const ; | virtual SimpleInterval* GetInterval() const ; | |||
virtual void SetData(RooAbsData & data) { fData = &data; } | virtual void SetData( RooAbsData & data ) { fData = &data; } | |||
virtual void SetModel(const ModelConfig & model); | virtual void SetModel( const ModelConfig& model ); | |||
// set the size of the test (rate of Type I error) ( Eg. 0.05 for a 9 5% Confidence Interval) | // set the size of the test (rate of Type I error) ( Eg. 0.05 for a 9 5% Confidence Interval) | |||
virtual void SetTestSize(Double_t size) { | virtual void SetTestSize( Double_t size ) { | |||
fSize = size; | fSize = size; | |||
if (fInterval) delete fInterval; fInterval = 0; | if (fInterval) delete fInterval; | |||
fInterval = 0; | ||||
} | } | |||
// set the confidence level for the interval (eg. 0.95 for a 95% Conf idence Interval) | // set the confidence level for the interval (eg. 0.95 for a 95% Conf idence Interval) | |||
virtual void SetConfidenceLevel(Double_t cl) { SetTestSize( 1. - cl); } | virtual void SetConfidenceLevel( Double_t cl ) { SetTestSize(1.-cl); } | |||
// Get the size of the test (eg. rate of Type I error) | // Get the size of the test (eg. rate of Type I error) | |||
virtual Double_t Size() const {return fSize;} | virtual Double_t Size() const { return fSize; } | |||
// Get the Confidence level for the test | // Get the Confidence level for the test | |||
virtual Double_t ConfidenceLevel() const {return 1.-fSize;} | virtual Double_t ConfidenceLevel() const { return 1.-fSize; } | |||
protected: | protected: | |||
void ClearAll() const; | void ClearAll() const; | |||
private: | private: | |||
// compute the most probable value: move to public once implemented | ||||
// returns a RooArgSet | ||||
RooArgSet* GetMode( RooArgSet* parameters ) const; | ||||
// plan to replace the above: return a SimpleInterval integrating | ||||
// over all other parameters except the one specified as argument | ||||
//virtual SimpleInterval* GetInterval( RooRealVar* parameter ) const | ||||
{ return 0; } | ||||
RooAbsData* fData; | RooAbsData* fData; | |||
RooAbsPdf* fPdf; | RooAbsPdf* fPdf; | |||
RooArgSet fPOI; | RooArgSet fPOI; | |||
RooAbsPdf* fPriorPOI; | RooAbsPdf* fPriorPOI; | |||
RooArgSet fNuisanceParameters; | RooArgSet fNuisanceParameters; | |||
mutable RooAbsPdf* fProductPdf; | mutable RooAbsPdf* fProductPdf; | |||
mutable RooAbsReal* fLogLike; | mutable RooAbsReal* fLogLike; | |||
mutable RooAbsReal* fLikelihood; | mutable RooAbsReal* fLikelihood; | |||
mutable RooAbsReal* fIntegratedLikelihood; | mutable RooAbsReal* fIntegratedLikelihood; | |||
mutable RooAbsPdf* fPosteriorPdf; | mutable RooAbsPdf* fPosteriorPdf; | |||
mutable SimpleInterval* fInterval; // cached pointer to resulting interval | mutable SimpleInterval* fInterval; // cached pointer to resulting in terval | |||
double fSize; // size used for getting the interval | double fSize; // size used for getting the interval | |||
protected: | protected: | |||
ClassDef(BayesianCalculator,1) // BayesianCalculator class | ClassDef(BayesianCalculator,1) // BayesianCalculator class | |||
}; | }; | |||
} | } | |||
#endif | #endif | |||
End of changes. 15 change blocks. | ||||
14 lines changed or deleted | 23 lines changed or added | |||
BinarySearchTree.h | BinarySearchTree.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: BinarySearchTree.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: BinarySearchTree.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : BinarySearchTree * | * Class : BinarySearchTree * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* BinarySearchTree incl. volume Search method * | * BinarySearchTree incl. volume Search method * | |||
skipping to change at line 96 | skipping to change at line 96 | |||
virtual BinaryTree* CreateTree() const { return new BinarySearchTree( ); } | virtual BinaryTree* CreateTree() const { return new BinarySearchTree( ); } | |||
virtual const char* ClassName() const { return "BinarySearchTree"; } | virtual const char* ClassName() const { return "BinarySearchTree"; } | |||
// Searches for a node with the specified data | // Searches for a node with the specified data | |||
// by calling the private, recursive, function for searching | // by calling the private, recursive, function for searching | |||
BinarySearchTreeNode* Search( Event * event ) const; | BinarySearchTreeNode* Search( Event * event ) const; | |||
// Adds an item to the tree, | // Adds an item to the tree, | |||
void Insert( const Event * ); | void Insert( const Event * ); | |||
//get sum of weights of the nodes; | // get sum of weights of the nodes; | |||
Double_t GetSumOfWeights( void ) const; | Double_t GetSumOfWeights( void ) const; | |||
//get sum of weights of the nodes of given type; | //get sum of weights of the nodes of given type; | |||
Double_t GetSumOfWeights( Int_t theType ) const; | Double_t GetSumOfWeights( Int_t theType ) const; | |||
//set the periode (number of variables) | //set the periode (number of variables) | |||
void SetPeriode( Int_t p ) { fPeriod = p; } | void SetPeriode( Int_t p ) { fPeriod = p; } | |||
// return periode (number of variables) | // return periode (number of variables) | |||
UInt_t GetPeriode( void ) const { return fPeriod; } | UInt_t GetPeriode( void ) const { return fPeriod; } | |||
// counts events (weights) within a given volume | // counts events (weights) within a given volume | |||
Double_t SearchVolume( Volume*, std::vector<const TMVA::BinarySearchT reeNode*>* events = 0 ); | Double_t SearchVolume( Volume*, std::vector<const TMVA::BinarySearchT reeNode*>* events = 0 ); | |||
// Create the search tree from the event collection | // Create the search tree from the event collection | |||
// using ONLY the variables specified in "theVars" | // using ONLY the variables specified in "theVars" | |||
Double_t Fill( const std::vector<TMVA::Event*>& events, const std::ve ctor<Int_t>& theVars, Int_t theType = -1 ); | Double_t Fill( const std::vector<TMVA::Event*>& events, const std::ve ctor<Int_t>& theVars, Int_t theType = -1 ); | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 3 lines changed or added | |||
BinarySearchTreeNode.h | BinarySearchTreeNode.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: BinarySearchTreeNode.h 29195 2009-06-24 10:39:49Z bru n $ | // @(#)root/tmva $Id: BinarySearchTreeNode.h 31458 2009-11-30 13:58:20Z ste lzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Classes: Node, NodeID * | * Classes: Node, NodeID * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Node for the BinarySearch * | * Node for the BinarySearch * | |||
skipping to change at line 107 | skipping to change at line 107 | |||
virtual void Print( std::ostream& os ) const; | virtual void Print( std::ostream& os ) const; | |||
// recursive printout of the node and it daughters | // recursive printout of the node and it daughters | |||
virtual void PrintRec( std::ostream& os ) const; | virtual void PrintRec( std::ostream& os ) const; | |||
virtual void AddAttributesToNode(void* node) const; | virtual void AddAttributesToNode(void* node) const; | |||
virtual void AddContentToNode(std::stringstream& s) const; | virtual void AddContentToNode(std::stringstream& s) const; | |||
private: | private: | |||
// Read the data block | // Read the data block | |||
virtual void ReadAttributes(void* node); | virtual void ReadAttributes(void* node, UInt_t tmva_Version_Code = TM | |||
virtual Bool_t ReadDataRecord( std::istream& is ); | VA_VERSION_CODE ); | |||
virtual Bool_t ReadDataRecord( std::istream& is, UInt_t tmva_Version_ | ||||
Code = TMVA_VERSION_CODE ); | ||||
virtual void ReadContent(std::stringstream& s); | virtual void ReadContent(std::stringstream& s); | |||
std::vector<Float_t> fEventV; | std::vector<Float_t> fEventV; | |||
std::vector<Float_t> fTargets; | std::vector<Float_t> fTargets; | |||
Float_t fWeight; | Float_t fWeight; | |||
// Float_t fIsSignal; | // Float_t fIsSignal; | |||
Int_t fClass; | Int_t fClass; | |||
Short_t fSelector; // index of variable used in node select ion (decision tree) | Short_t fSelector; // index of variable used in node select ion (decision tree) | |||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 5 lines changed or added | |||
BinaryTree.h | BinaryTree.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: BinaryTree.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: BinaryTree.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : BinaryTree * | * Class : BinaryTree * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* BinaryTree: A base class for BinarySearch- or Decision-Trees * | * BinaryTree: A base class for BinarySearch- or Decision-Trees * | |||
skipping to change at line 31 | skipping to change at line 31 | |||
* MPI-K Heidelberg, Germany * | * MPI-K Heidelberg, Germany * | |||
* * | * * | |||
* Redistribution and use in source and binary forms, with or without * | * Redistribution and use in source and binary forms, with or without * | |||
* modification, are permitted according to the terms listed in LICENSE * | * modification, are permitted according to the terms listed in LICENSE * | |||
* (http://tmva.sourceforge.net/LICENSE) * | * (http://tmva.sourceforge.net/LICENSE) * | |||
************************************************************************** ********/ | ************************************************************************** ********/ | |||
#ifndef ROOT_TMVA_BinaryTree | #ifndef ROOT_TMVA_BinaryTree | |||
#define ROOT_TMVA_BinaryTree | #define ROOT_TMVA_BinaryTree | |||
#ifndef ROOT_TMVA_Version | ||||
#include "TMVA/Version.h" | ||||
#endif | ||||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
// BinaryTree // | // BinaryTree // | |||
// // | // // | |||
// Base class for BinarySearch and Decision Trees // | // Base class for BinarySearch and Decision Trees // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#include <iosfwd> | #include <iosfwd> | |||
#ifndef ROOT_TROOT | #ifndef ROOT_TROOT | |||
skipping to change at line 76 | skipping to change at line 80 | |||
public: | public: | |||
// or a tree with Root node "n", any daughters of this node are autom atically in the tree | // or a tree with Root node "n", any daughters of this node are autom atically in the tree | |||
BinaryTree( void ); | BinaryTree( void ); | |||
virtual ~BinaryTree(); | virtual ~BinaryTree(); | |||
virtual Node* CreateNode(UInt_t size=0) const = 0; | virtual Node* CreateNode(UInt_t size=0) const = 0; | |||
virtual BinaryTree* CreateTree() const = 0; | virtual BinaryTree* CreateTree() const = 0; | |||
static BinaryTree* CreateFromXML(void* node); | static BinaryTree* CreateFromXML(void* node, UInt_t tmva_Version_Cod e = TMVA_VERSION_CODE); | |||
virtual const char* ClassName() const = 0; | virtual const char* ClassName() const = 0; | |||
// set the root node of the tree | // set the root node of the tree | |||
void SetRoot( Node* r ) { fRoot = r; } | void SetRoot( Node* r ) { fRoot = r; } | |||
// Retrieves the address of the root node | // Retrieves the address of the root node | |||
Node* GetRoot() const { return fRoot; } | Node* GetRoot() const { return fRoot; } | |||
// get number of Nodes in the Tree as counted while booking the nodes ; | // get number of Nodes in the Tree as counted while booking the nodes ; | |||
UInt_t GetNNodes() const { return fNNodes; } | UInt_t GetNNodes() const { return fNNodes; } | |||
skipping to change at line 102 | skipping to change at line 106 | |||
UInt_t GetTotalTreeDepth() const { return fDepth; } | UInt_t GetTotalTreeDepth() const { return fDepth; } | |||
void SetTotalTreeDepth( Int_t depth ) { fDepth = depth; } | void SetTotalTreeDepth( Int_t depth ) { fDepth = depth; } | |||
void SetTotalTreeDepth( Node* n = NULL ); | void SetTotalTreeDepth( Node* n = NULL ); | |||
Node* GetLeftDaughter ( Node* n); | Node* GetLeftDaughter ( Node* n); | |||
Node* GetRightDaughter( Node* n); | Node* GetRightDaughter( Node* n); | |||
virtual void Print( ostream& os ) const; | virtual void Print( ostream& os ) const; | |||
virtual void Read ( istream& istr ); | virtual void Read ( istream& istr, UInt_t tmva_Version_Code = TMVA_VE RSION_CODE ); | |||
virtual void* AddXMLTo(void* parent) const; | virtual void* AddXMLTo(void* parent) const; | |||
virtual void ReadXML(void* node); | virtual void ReadXML(void* node, UInt_t tmva_Version_Code = TMVA_VER SION_CODE ); | |||
private: | private: | |||
Node* fRoot; //the root node of the tree | Node* fRoot; //the root node of the tree | |||
// the tree only has it's root node, the "daughters" are taken car | // the tree only has it's root node, the "daughters" are taken car | |||
// of by the "node" properties of the "root" | // of by the "node" properties of the "root" | |||
protected: | protected: | |||
// delete a node (and the corresponding event if owned by the tree) | // delete a node (and the corresponding event if owned by the tree) | |||
End of changes. 5 change blocks. | ||||
4 lines changed or deleted | 8 lines changed or added | |||
BrentMinimizer1D.h | BrentMinimizer1D.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: BrentMinimizer1D.h 24477 2008-06-23 12:58:47Z mon eta $ | // @(#)root/mathcore:$Id: BrentMinimizer1D.h 31583 2009-12-06 13:55:26Z rdm $ | |||
// Author: David Gonzalez Maline 2/2008 | // Author: David Gonzalez Maline 2/2008 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2004 Maline, CERN/PH-SFT * | * Copyright (c) 2004 Maline, CERN/PH-SFT * | |||
* * | * * | |||
* This library is free software; you can redistribute it and/or * | * This library is free software; you can redistribute it and/or * | |||
* modify it under the terms of the GNU General Public License * | * modify it under the terms of the GNU General Public License * | |||
* as published by the Free Software Foundation; either version 2 * | * as published by the Free Software Foundation; either version 2 * | |||
* of the License, or (at your option) any later version. * | * of the License, or (at your option) any later version. * | |||
* * | * * | |||
skipping to change at line 30 | skipping to change at line 30 | |||
* 330, Boston, MA 02111-1307 USA, or contact the author. * | * 330, Boston, MA 02111-1307 USA, or contact the author. * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class BrentMinimizer1D | // Header file for class BrentMinimizer1D | |||
// | // | |||
// Created by: Maline at Mon Feb 4 09:32:36 2008 | // Created by: Maline at Mon Feb 4 09:32:36 2008 | |||
// | // | |||
// | // | |||
#include "IMinimizer1D.h" | #include "Math/IMinimizer1D.h" | |||
#include "Math/IFunction.h" | #include "Math/IFunction.h" | |||
#ifndef ROOT_Math_BrentMinimizer1D | #ifndef ROOT_Math_BrentMinimizer1D | |||
#define ROOT_Math_BrentMinimizer1D | #define ROOT_Math_BrentMinimizer1D | |||
namespace ROOT { | namespace ROOT { | |||
namespace Math { | namespace Math { | |||
//_________________________________________________________________________ __________________ | //_________________________________________________________________________ __________________ | |||
/** | /** | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
CCTreeWrapper.h | CCTreeWrapper.h | |||
---|---|---|---|---|
skipping to change at line 39 | skipping to change at line 39 | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_SeparationBase | #ifndef ROOT_TMVA_SeparationBase | |||
#include "TMVA/SeparationBase.h" | #include "TMVA/SeparationBase.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_DecisionTree | #ifndef ROOT_TMVA_DecisionTree | |||
#include "TMVA/DecisionTree.h" | #include "TMVA/DecisionTree.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_DataSet | #ifndef ROOT_TMVA_DataSet | |||
#include "TMVA/DataSet.h" | #include "TMVA/DataSet.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Version | ||||
#include "TMVA/Version.h" | ||||
#endif | ||||
namespace TMVA { | namespace TMVA { | |||
class CCTreeWrapper { | class CCTreeWrapper { | |||
public: | public: | |||
typedef std::vector<Event*> EventList; | typedef std::vector<Event*> EventList; | |||
///////////////////////////////////////////////////////////// | ///////////////////////////////////////////////////////////// | |||
skipping to change at line 125 | skipping to change at line 128 | |||
inline virtual Bool_t GoesRight( const Event& e ) const { return ( GetDTNode() != NULL ? | inline virtual Bool_t GoesRight( const Event& e ) const { return ( GetDTNode() != NULL ? | |||
GetDTNode()->GoesRight(e) : false); } | GetDTNode()->GoesRight(e) : false); } | |||
// test event if it decends the tree at this node to the left | // test event if it decends the tree at this node to the left | |||
inline virtual Bool_t GoesLeft ( const Event& e ) const { return ( GetDTNode() != NULL ? | inline virtual Bool_t GoesLeft ( const Event& e ) const { return ( GetDTNode() != NULL ? | |||
GetDTNode()->GoesLeft(e) : false); } | GetDTNode()->GoesLeft(e) : false); } | |||
private: | private: | |||
// initialize a node from a data record | // initialize a node from a data record | |||
virtual void ReadAttributes(void* node); | virtual void ReadAttributes(void* node, UInt_t tmva_Version_Code = | |||
virtual Bool_t ReadDataRecord( std::istream& in ); | TMVA_VERSION_CODE); | |||
virtual Bool_t ReadDataRecord( std::istream& in, UInt_t tmva_Versi | ||||
on_Code = TMVA_VERSION_CODE ); | ||||
virtual void ReadContent(std::stringstream& s); | virtual void ReadContent(std::stringstream& s); | |||
Int_t fNLeafDaughters; //! number of terminal descendants | Int_t fNLeafDaughters; //! number of terminal descendants | |||
Double_t fNodeResubstitutionEstimate; //! R(t) = misclassification rate for node t | Double_t fNodeResubstitutionEstimate; //! R(t) = misclassification rate for node t | |||
Double_t fResubstitutionEstimate; //! R(T_t) = sum[t' in ~T_t]{ R( t) } | Double_t fResubstitutionEstimate; //! R(T_t) = sum[t' in ~T_t]{ R( t) } | |||
Double_t fAlphaC; //! critical point, g(t) = alpha_c(t) | Double_t fAlphaC; //! critical point, g(t) = alpha_c(t) | |||
Double_t fMinAlphaC; //! G(t), minimum critical point of t and its descendants | Double_t fMinAlphaC; //! G(t), minimum critical point of t and its descendants | |||
DecisionTreeNode* fDTNode; //! pointer to wrapped node in the deci sion tree | DecisionTreeNode* fDTNode; //! pointer to wrapped node in the deci sion tree | |||
}; | }; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 7 lines changed or added | |||
ClassifierFactory.h | ClassifierFactory.h | |||
---|---|---|---|---|
// @(#)Root/tmva $Id: ClassifierFactory.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)Root/tmva $Id: ClassifierFactory.h 31458 2009-11-30 13:58:20Z stelze r $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : Factory * | * Class : Factory * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* This template creates ClassifierFactory stores creator functors * | * This template creates ClassifierFactory stores creator functors * | |||
skipping to change at line 125 | skipping to change at line 125 | |||
/// TMVA::IMethod* CreateMethod() | /// TMVA::IMethod* CreateMethod() | |||
/// { | /// { | |||
/// return (TMVA::IMethod*) new TMVA::MethodFisher; | /// return (TMVA::IMethod*) new TMVA::MethodFisher; | |||
/// } | /// } | |||
/// Bool_t RegisteredMethod = TMVA::ClassifierFactory<TMVA::MethodBase>: :Instance(). | /// Bool_t RegisteredMethod = TMVA::ClassifierFactory<TMVA::MethodBase>: :Instance(). | |||
/// Register("Method", CreateMethodFisher); | /// Register("Method", CreateMethodFisher); | |||
/// } | /// } | |||
/// | /// | |||
///////////////////////////////////////////////////////////////// | ///////////////////////////////////////////////////////////////// | |||
#define REGISTER_METHOD(CLASS) \ | #define REGISTER_METHOD(CLASS) \ | |||
namespace \ | namespace \ | |||
{ \ | { \ | |||
TMVA::IMethod* CreateMethod##CLASS(const TString& job, const TString& title, TMVA::DataSetInfo& dsi, const TString& option) \ | TMVA::IMethod* CreateMethod##CLASS(const TString& job, const TString& title, TMVA::DataSetInfo& dsi, const TString& option) \ | |||
{ \ | { \ | |||
if(job=="" && title=="") { \ | if(job=="" && title=="") { \ | |||
return (TMVA::IMethod*) new TMVA::Method##CLASS(dsi, option); \ | return (TMVA::IMethod*) new TMVA::Method##CLASS(dsi, option); \ | |||
} else { \ | } else { \ | |||
return (TMVA::IMethod*) new TMVA::Method##CLASS(job, title, dsi , option); \ | return (TMVA::IMethod*) new TMVA::Method##CLASS(job, title, dsi , option); \ | |||
} \ | } \ | |||
} \ | } \ | |||
Bool_t RegisteredMethod = TMVA::ClassifierFactory::Instance(). \ | Bool_t RegisteredMethod = TMVA::ClassifierFactory::Instance(). \ | |||
Register(#CLASS, CreateMethod##CLASS); | Register(#CLASS, CreateMethod##CLASS); \ | |||
\ | ||||
Bool_t AddedTypeMapping = TMVA::Types::Instance().AddTypeMapping(TMVA ::Types::k##CLASS, #CLASS); \ | Bool_t AddedTypeMapping = TMVA::Types::Instance().AddTypeMapping(TMVA ::Types::k##CLASS, #CLASS); \ | |||
} | } | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
8 lines changed or deleted | 7 lines changed or added | |||
DataSetFactory.h | DataSetFactory.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: DataSetFactory.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: DataSetFactory.h 31466 2009-11-30 16:23:35Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Eckhard von To | |||
erne, Helge Voss | ||||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : DataSetFactory * | * Class : DataSetFactory * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Contains all the data information * | * Contains all the data information * | |||
* * | * * | |||
* Authors (alphabetical): * | * Authors (alphabetical): * | |||
* Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland * | * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland * | |||
* Joerg Stelzer <Joerg.Stelzer@cern.ch> - CERN, Switzerland * | * Joerg Stelzer <Joerg.Stelzer@cern.ch> - CERN, Switzerland * | |||
* Peter Speckmayer <Peter.Speckmayer@cern.ch> - CERN, Switzerland | ||||
* | ||||
* Eckhard von Toerne <evt@physik.uni-bonn.de> - U. of Bonn, Germany | ||||
* | ||||
* Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, German y * | * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, German y * | |||
* * | * * | |||
* Copyright (c) 2006: * | * Copyright (c) 2006: * | |||
* CERN, Switzerland * | * CERN, Switzerland * | |||
* MPI-K Heidelberg, Germany * | * MPI-K Heidelberg, Germany * | |||
* * | * * | |||
* Redistribution and use in source and binary forms, with or without * | * Redistribution and use in source and binary forms, with or without * | |||
* modification, are permitted according to the terms listed in LICENSE * | * modification, are permitted according to the terms listed in LICENSE * | |||
* (http://tmva.sourceforge.net/LICENSE) * | * (http://tmva.sourceforge.net/LICENSE) * | |||
************************************************************************** ********/ | ************************************************************************** ********/ | |||
#define ALTERNATIVE_EVENT_VECTOR_BUILDING 1 | ||||
#ifndef ROOT_TMVA_DataSetFactory | #ifndef ROOT_TMVA_DataSetFactory | |||
#define ROOT_TMVA_DataSetFactory | #define ROOT_TMVA_DataSetFactory | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
// DataSetFactory // | // DataSetFactory // | |||
// // | // // | |||
// Class that contains all the data information // | // Class that contains all the data information // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
skipping to change at line 59 | skipping to change at line 63 | |||
#endif | #endif | |||
#ifndef ROOT_TTreeFormula | #ifndef ROOT_TTreeFormula | |||
#include "TTreeFormula.h" | #include "TTreeFormula.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMatrixDfwd | #ifndef ROOT_TMatrixDfwd | |||
#include "TMatrixDfwd.h" | #include "TMatrixDfwd.h" | |||
#endif | #endif | |||
#ifndef ROOT_TPrincipal | #ifndef ROOT_TPrincipal | |||
#include "TPrincipal.h" | #include "TPrincipal.h" | |||
#endif | #endif | |||
#ifndef ROOT_TRandom3 | ||||
#include "TRandom3.h" | ||||
#endif | ||||
#ifndef ROOT_TMVA_Types | #ifndef ROOT_TMVA_Types | |||
#include "TMVA/Types.h" | #include "TMVA/Types.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_VariableInfo | #ifndef ROOT_TMVA_VariableInfo | |||
#include "TMVA/VariableInfo.h" | #include "TMVA/VariableInfo.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Event | #ifndef ROOT_TMVA_Event | |||
#include "TMVA/Event.h" | #include "TMVA/Event.h" | |||
#endif | #endif | |||
namespace TMVA { | namespace TMVA { | |||
class DataSet; | class DataSet; | |||
class DataSetInfo; | class DataSetInfo; | |||
class DataInputHandler; | class DataInputHandler; | |||
class TreeInfo; | class TreeInfo; | |||
class MsgLogger; | class MsgLogger; | |||
typedef std::vector< Event* > EventVector; | ||||
typedef std::vector< EventVector > EventVectorOf | ||||
Classes; | ||||
typedef std::map<Types::ETreeType, EventVectorOfClasses > EventVectorOf | ||||
ClassesOfTreeType; | ||||
typedef std::map<Types::ETreeType, EventVector > EventVectorOf | ||||
TreeType; | ||||
typedef std::vector< Double_t > ValuePerClass | ||||
; | ||||
typedef std::map<Types::ETreeType, ValuePerClass > ValuePerClass | ||||
OfTreeType; | ||||
typedef std::vector< Int_t > NumberPerClas | ||||
s; | ||||
typedef std::map<Types::ETreeType, NumberPerClass > NumberPerClas | ||||
sOfTreeType; | ||||
// =============== maybe move these elswhere (e.g. into the tools ) | ||||
// =============== functors ======================= | ||||
class RandomGenerator { | ||||
public: | ||||
RandomGenerator( UInt_t seed ){ | ||||
fRandom.SetSeed( seed ); | ||||
} | ||||
UInt_t operator() ( UInt_t n ) { | ||||
return fRandom.Integer(n); | ||||
} | ||||
private: | ||||
TRandom3 fRandom; // random generator | ||||
}; | ||||
// delete-functor (to be used in e.g. for_each algorithm) | ||||
template<class T> | ||||
struct DeleteFunctor_t | ||||
{ | ||||
DeleteFunctor_t& operator()(T* p) { | ||||
delete p; | ||||
return *this; | ||||
} | ||||
}; | ||||
template<class T> | ||||
DeleteFunctor_t<T> DeleteFunctor() | ||||
{ | ||||
return DeleteFunctor_t<T>(); | ||||
} | ||||
template< typename T > | ||||
class Increment { | ||||
T value; | ||||
public: | ||||
Increment( T start ) : value( start ){ } | ||||
T operator()() { | ||||
return value++; | ||||
} | ||||
}; | ||||
template <typename F> | ||||
class null_t | ||||
{ | ||||
private: | ||||
// returns argF | ||||
public: | ||||
typedef F argument_type; | ||||
F operator()(const F& argF) const | ||||
{ | ||||
return argF; | ||||
} | ||||
}; | ||||
template <typename F> | ||||
inline null_t<F> null() { | ||||
return null_t<F>(); | ||||
} | ||||
template <typename F, typename G, typename H> | ||||
class compose_binary_t : public std::binary_function<typename G::argumen | ||||
t_type, | ||||
typename H::argumen | ||||
t_type, | ||||
typename F::result_ | ||||
type> | ||||
{ | ||||
private: | ||||
const F& f; // f(g(argG),h(argH)) | ||||
const G& g; | ||||
const H& h; | ||||
public: | ||||
compose_binary_t(const F& _f, const G& _g, const H& _h) : f(_f), g(_g | ||||
), h(_h) | ||||
{ | ||||
} | ||||
typename F::result_type operator()(const typename G::argument_type& a | ||||
rgG, | ||||
const typename H::argument_type& a | ||||
rgH) const | ||||
{ | ||||
return f(g(argG),h(argH)); | ||||
} | ||||
}; | ||||
template <typename F, typename G, typename H> | ||||
inline compose_binary_t<F,G,H> compose_binary(const F& _f, const G& _g, | ||||
const H& _h) { | ||||
return compose_binary_t<F,G,H>(_f,_g,_h); | ||||
} | ||||
template <typename F, typename G> | ||||
class compose_unary_t : public std::unary_function<typename G::argument_ | ||||
type, | ||||
typename F::result_ty | ||||
pe> | ||||
{ | ||||
private: | ||||
const F& f; // f(g(argG)) | ||||
const G& g; | ||||
public: | ||||
compose_unary_t(const F& _f, const G& _g) : f(_f), g(_g) | ||||
{ | ||||
} | ||||
typename F::result_type operator()(const typename G::argument_type& | ||||
argG) const | ||||
{ | ||||
return f(g(argG)); | ||||
} | ||||
}; | ||||
template <typename F, typename G> | ||||
inline compose_unary_t<F,G> compose_unary(const F& _f, const G& _g) { | ||||
return compose_unary_t<F,G>(_f,_g); | ||||
} | ||||
// =============== functors ======================= | ||||
// ========================================================= | ||||
class DataSetFactory { | class DataSetFactory { | |||
public: | public: | |||
// singleton class | // singleton class | |||
static DataSetFactory& Instance() { if (!fgInstance) fgInstance = new DataSetFactory(); return *fgInstance; } | static DataSetFactory& Instance() { if (!fgInstance) fgInstance = new DataSetFactory(); return *fgInstance; } | |||
static void destroyInstance() { if (fgInstance) { delete fgInstance; fgInstance=0; } } | static void destroyInstance() { if (fgInstance) { delete fgInstance; fgInstance=0; } } | |||
DataSet* CreateDataSet( DataSetInfo &, DataInputHandler& ); | DataSet* CreateDataSet( DataSetInfo &, DataInputHandler& ); | |||
private: | protected: | |||
~DataSetFactory(); | ~DataSetFactory(); | |||
DataSetFactory(); | DataSetFactory(); | |||
static DataSetFactory *fgInstance; | static DataSetFactory *fgInstance; | |||
DataSet* BuildInitialDataSet( DataSetInfo&, TMVA::DataInputHandler& ); | DataSet* BuildInitialDataSet( DataSetInfo&, TMVA::DataInputHandler& ); | |||
DataSet* BuildDynamicDataSet( DataSetInfo& ); | DataSet* BuildDynamicDataSet( DataSetInfo& ); | |||
#ifndef ALTERNATIVE_EVENT_VECTOR_BUILDING | ||||
void BuildEventVector ( DataSetInfo& dsi, | void BuildEventVector ( DataSetInfo& dsi, | |||
DataInputHandler& dataInput, | DataInputHandler& dataInput, | |||
std::vector< std::vector< Event* > >& tmpEventVector, | std::vector< std::vector< Event* > >& tmpEventVector, | |||
std::vector<Double_t>& sumOfWeights, | std::vector<Double_t>& sumOfWeights, | |||
std::vector<Double_t>& nTempEvents, | std::vector<Double_t>& nTempEvents, | |||
std::vector<Double_t>& renormFactor, | std::vector<Double_t>& renormFactor, | |||
std::vector< std::vector< std::pair< Lo ng64_t, Types::ETreeType > > >& userDefinedEventTypes ); | std::vector< std::vector< std::pair< L ong64_t, Types::ETreeType > > >& userDefinedEventTypes ); | |||
DataSet* MixEvents ( DataSetInfo& dsi, | DataSet* MixEvents ( DataSetInfo& dsi, | |||
std::vector< std::vector< Event* > >& tmpEventVector, | std::vector< std::vector< Event* > >& tmpEventVector, | |||
std::vector< std::pair< Int_t, Int_t > >& nTrainTestEvents, | std::vector< std::pair< Int_t, Int_t > >& nTrainTestEvents, | |||
const TString& splitMode, UInt_t split Seed, | const TString& splitMode, UInt_t split Seed, | |||
std::vector<Double_t>& renormFactor, | std::vector<Double_t>& renormFactor, | |||
std::vector< std::vector< std::pair< Lo ng64_t, Types::ETreeType > > >& userDefinedEventTypes ); | std::vector< std::vector< std::pair< L ong64_t, Types::ETreeType > > >& userDefinedEventTypes ); | |||
void InitOptions ( DataSetInfo& dsi, | void InitOptions ( DataSetInfo& dsi, | |||
std::vector< std::pair< Int_t, Int_t > >& nTrainTestEvents, | std::vector< std::pair< Int_t, Int_t > >& nTrainTestEvents, | |||
TString& normMode, UInt_t& splitSeed, TString& splitMode ); | TString& normMode, UInt_t& splitSeed, TString& splitMode ); | |||
#else | ||||
// ---------- new versions | ||||
void BuildEventVector ( DataSetInfo& dsi, | ||||
DataInputHandler& dataInput, | ||||
EventVectorOfClassesOfTreeType& tmpEv | ||||
entVector); | ||||
DataSet* MixEvents ( DataSetInfo& dsi, | ||||
EventVectorOfClassesOfTreeType& tmpEv | ||||
entVector, | ||||
NumberPerClassOfTreeType& nTrainTestE | ||||
vents, | ||||
const TString& splitMode, | ||||
const TString& mixMode, | ||||
const TString& normMode, | ||||
UInt_t splitSeed); | ||||
void RenormEvents ( DataSetInfo& dsi, | ||||
EventVectorOfClassesOfTreeType& tmpEv | ||||
entVector, | ||||
const TString& normMode ); | ||||
void InitOptions ( DataSetInfo& dsi, | ||||
NumberPerClassOfTreeType& nTrainTestE | ||||
vents, | ||||
TString& normMode, UInt_t& splitSeed, | ||||
TString& splitMode, TString& mixMode ); | ||||
// ------------------------ | ||||
#endif | ||||
// auxiliary functions to compute correlations | // auxiliary functions to compute correlations | |||
TMatrixD* CalcCorrelationMatrix( DataSet*, const UInt_t classNumber ) ; | TMatrixD* CalcCorrelationMatrix( DataSet*, const UInt_t classNumber ) ; | |||
TMatrixD* CalcCovarianceMatrix ( DataSet*, const UInt_t classNumber ) ; | TMatrixD* CalcCovarianceMatrix ( DataSet*, const UInt_t classNumber ) ; | |||
void CalcMinMax ( DataSet*, DataSetInfo& dsi ); | void CalcMinMax ( DataSet*, DataSetInfo& dsi ); | |||
// resets branch addresses to current event | // resets branch addresses to current event | |||
void ResetBranchAndEventAddresses( TTree* ); | void ResetBranchAndEventAddresses( TTree* ); | |||
void ResetCurrentTree() { fCurrentTree = 0; } | void ResetCurrentTree() { fCurrentTree = 0; } | |||
void ChangeToNewTree( TreeInfo&, const DataSetInfo & ); | void ChangeToNewTree( TreeInfo&, const DataSetInfo & ); | |||
Bool_t CheckTTreeFormula( TTreeFormula* ttf, const TString& expressio | ||||
n, Bool_t& hasDollar ); | ||||
// verbosity | // verbosity | |||
Bool_t Verbose() { return fVerbose; } | Bool_t Verbose() { return fVerbose; } | |||
// data members | // data members | |||
// verbosity | // verbosity | |||
Bool_t fVerbose; //! Verbosity | Bool_t fVerbose; //! Verbosity | |||
TString fVerboseLevel; //! VerboseLevel | TString fVerboseLevel; //! VerboseLevel | |||
End of changes. 11 change blocks. | ||||
8 lines changed or deleted | 195 lines changed or added | |||
DataSetInfo.h | DataSetInfo.h | |||
---|---|---|---|---|
// // @(#)root/tmva $Id: DataSetInfo.h 29195 2009-06-24 10:39:49Z brun $ | // // @(#)root/tmva $Id: DataSetInfo.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : DataSetInfo * | * Class : DataSetInfo * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Contains all the data information * | * Contains all the data information * | |||
skipping to change at line 96 | skipping to change at line 96 | |||
// the data set | // the data set | |||
void ClearDataSet() const; | void ClearDataSet() const; | |||
DataSet* GetDataSet() const; | DataSet* GetDataSet() const; | |||
// --- | // --- | |||
// the variable data | // the variable data | |||
// --- | // --- | |||
VariableInfo& AddVariable( const TString& expression, const TStri ng& title = "", const TString& unit = "", | VariableInfo& AddVariable( const TString& expression, const TStri ng& title = "", const TString& unit = "", | |||
Double_t min = 0, Double_t max = 0, ch ar varType='F', | Double_t min = 0, Double_t max = 0, ch ar varType='F', | |||
Bool_t normalized = kTRUE, void* exter nal = 0 ); | Bool_t normalized = kTRUE, void* exter nal = 0 ); | |||
VariableInfo& AddVariable( const VariableInfo& varInfo ); | ||||
VariableInfo& AddTarget ( const TString& expression, const TStri ng& title, const TString& unit, | VariableInfo& AddTarget ( const TString& expression, const TStri ng& title, const TString& unit, | |||
Double_t min, Double_t max, Bool_t nor malized = kTRUE, void* external = 0 ); | Double_t min, Double_t max, Bool_t nor malized = kTRUE, void* external = 0 ); | |||
VariableInfo& AddTarget ( const VariableInfo& varInfo ); | ||||
VariableInfo& AddSpectator ( const TString& expression, const TSt ring& title, const TString& unit, | VariableInfo& AddSpectator ( const TString& expression, const TSt ring& title, const TString& unit, | |||
Double_t min, Double_t max, Bool_t nor | Double_t min, Double_t max, char typ | |||
malized = kTRUE, void* external = 0 ); | e = 'F', Bool_t normalized = kTRUE, void* external = 0 ); | |||
VariableInfo& AddSpectator ( const VariableInfo& varInfo ); | ||||
ClassInfo* AddClass ( const TString& className ); | ClassInfo* AddClass ( const TString& className ); | |||
// accessors | // accessors | |||
// general | // general | |||
std::vector<VariableInfo>& GetVariableInfos() { return fVariables; } | std::vector<VariableInfo>& GetVariableInfos() { return fVariables; } | |||
const std::vector<VariableInfo>& GetVariableInfos() const { return fVariables; } | const std::vector<VariableInfo>& GetVariableInfos() const { return fVariables; } | |||
VariableInfo& GetVariableInfo( Int_t i ) { return fVariables.at(i); } | VariableInfo& GetVariableInfo( Int_t i ) { return fVariables.at(i); } | |||
const VariableInfo& GetVariableInfo( Int_t i ) const { r eturn fVariables.at(i); } | const VariableInfo& GetVariableInfo( Int_t i ) const { r eturn fVariables.at(i); } | |||
skipping to change at line 123 | skipping to change at line 128 | |||
VariableInfo& GetTargetInfo( Int_t i ) { return fT argets.at(i); } | VariableInfo& GetTargetInfo( Int_t i ) { return fT argets.at(i); } | |||
const VariableInfo& GetTargetInfo( Int_t i ) const { ret urn fTargets.at(i); } | const VariableInfo& GetTargetInfo( Int_t i ) const { ret urn fTargets.at(i); } | |||
std::vector<VariableInfo>& GetSpectatorInfos() { return fSpectators; } | std::vector<VariableInfo>& GetSpectatorInfos() { return fSpectators; } | |||
const std::vector<VariableInfo>& GetSpectatorInfos() const { return fSpectators; } | const std::vector<VariableInfo>& GetSpectatorInfos() const { return fSpectators; } | |||
VariableInfo& GetSpectatorInfo( Int_t i ) { return fSpectators.at(i); } | VariableInfo& GetSpectatorInfo( Int_t i ) { return fSpectators.at(i); } | |||
const VariableInfo& GetSpectatorInfo( Int_t i ) const { return fSpectators.at(i); } | const VariableInfo& GetSpectatorInfo( Int_t i ) const { return fSpectators.at(i); } | |||
UInt_t GetNVariables() const { return fV ariables.size(); } | UInt_t GetNVariables() const { return fV ariables.size(); } | |||
UInt_t GetNTargets() const { return fT argets.size(); } | UInt_t GetNTargets() const { return fT argets.size(); } | |||
UInt_t GetNSpectators() const { return fSpectators.size(); } | UInt_t GetNSpectators(bool all=kTRUE) con st; | |||
const TString& GetNormalization() const { return fN ormalization; } | const TString& GetNormalization() const { return fN ormalization; } | |||
void SetNormalization( TString& norm ) { fNormalization = norm; } | void SetNormalization( const TString& nor m ) { fNormalization = norm; } | |||
// classification information | // classification information | |||
Int_t GetClassNameMaxLength() const; | Int_t GetClassNameMaxLength() const; | |||
ClassInfo* GetClassInfo( Int_t clNum ) const; | ClassInfo* GetClassInfo( Int_t clNum ) const; | |||
ClassInfo* GetClassInfo( const TString& name ) const; | ClassInfo* GetClassInfo( const TString& name ) const; | |||
void PrintClasses() const; | void PrintClasses() const; | |||
UInt_t GetNClasses() const { return fClasses.size(); } | UInt_t GetNClasses() const { return fClasses.size(); } | |||
Bool_t IsSignal( const Event* ev ) const; | Bool_t IsSignal( const Event* ev ) const; | |||
// by variable | // by variable | |||
End of changes. 6 change blocks. | ||||
5 lines changed or deleted | 10 lines changed or added | |||
DecisionTreeNode.h | DecisionTreeNode.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: DecisionTreeNode.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: DecisionTreeNode.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : DecisionTreeNode * | * Class : DecisionTreeNode * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Node for the Decision Tree * | * Node for the Decision Tree * | |||
skipping to change at line 43 | skipping to change at line 43 | |||
// DecisionTreeNode // | // DecisionTreeNode // | |||
// // | // // | |||
// Node for the Decision Tree // | // Node for the Decision Tree // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#ifndef ROOT_TMVA_Node | #ifndef ROOT_TMVA_Node | |||
#include "TMVA/Node.h" | #include "TMVA/Node.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Version | ||||
#include "TMVA/Version.h" | ||||
#endif | ||||
#include <vector> | #include <vector> | |||
#include <map> | #include <map> | |||
namespace TMVA { | namespace TMVA { | |||
class Event; | class Event; | |||
class MsgLogger; | class MsgLogger; | |||
class DecisionTreeNode: public Node { | class DecisionTreeNode: public Node { | |||
public: | public: | |||
skipping to change at line 251 | skipping to change at line 255 | |||
void SetCC(Double_t cc) {fCC = cc;}; | void SetCC(Double_t cc) {fCC = cc;}; | |||
Double_t GetCC() const {return fCC;}; | Double_t GetCC() const {return fCC;}; | |||
Float_t GetSampleMin(UInt_t ivar) const; | Float_t GetSampleMin(UInt_t ivar) const; | |||
Float_t GetSampleMax(UInt_t ivar) const; | Float_t GetSampleMax(UInt_t ivar) const; | |||
void SetSampleMin(UInt_t ivar, Float_t xmin); | void SetSampleMin(UInt_t ivar, Float_t xmin); | |||
void SetSampleMax(UInt_t ivar, Float_t xmax); | void SetSampleMax(UInt_t ivar, Float_t xmax); | |||
private: | private: | |||
virtual void ReadAttributes(void* node); | virtual void ReadAttributes(void* node, UInt_t tmva_Version_Code = TM | |||
virtual Bool_t ReadDataRecord( istream& is ); | VA_VERSION_CODE ); | |||
virtual Bool_t ReadDataRecord( istream& is, UInt_t tmva_Version_Code | ||||
= TMVA_VERSION_CODE ); | ||||
virtual void ReadContent(std::stringstream& s); | virtual void ReadContent(std::stringstream& s); | |||
Double_t fNodeR; // node resubstitution estimate, R(t) | Double_t fNodeR; // node resubstitution estimate, R(t) | |||
Double_t fSubTreeR; // R(T) = Sum(R(t) : t in ~T) | Double_t fSubTreeR; // R(T) = Sum(R(t) : t in ~T) | |||
Double_t fAlpha; // critical alpha for this node | Double_t fAlpha; // critical alpha for this node | |||
Double_t fG; // minimum alpha in subtree rooted at this node | Double_t fG; // minimum alpha in subtree rooted at this node | |||
Int_t fNTerminal; // number of terminal nodes in subtree roo ted at this node | Int_t fNTerminal; // number of terminal nodes in subtree roo ted at this node | |||
Double_t fNB; // sum of weights of background events fro m the pruning sample in this node | Double_t fNB; // sum of weights of background events fro m the pruning sample in this node | |||
Double_t fNS; // ditto for the signal events | Double_t fNS; // ditto for the signal events | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 9 lines changed or added | |||
Event.h | Event.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Event.h 29205 2009-06-24 19:33:19Z brun $ | // @(#)root/tmva $Id: Event.h 31800 2009-12-10 15:04:44Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : Event * | * Class : Event * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Event container * | * Event container * | |||
skipping to change at line 42 | skipping to change at line 42 | |||
#include <iosfwd> | #include <iosfwd> | |||
#include <vector> | #include <vector> | |||
#ifndef ROOT_Rtypes | #ifndef ROOT_Rtypes | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Types | #ifndef ROOT_TMVA_Types | |||
#include "TMVA/Types.h" | #include "TMVA/Types.h" | |||
#endif | #endif | |||
class TCut; | ||||
namespace TMVA { | namespace TMVA { | |||
class Event; | class Event; | |||
std::ostream& operator<<( std::ostream& os, const Event& event ); | std::ostream& operator<<( std::ostream& os, const Event& event ); | |||
std::ostream& operator<<( std::ostream& os, const Event* event ); | ||||
class Event { | class Event { | |||
friend std::ostream& operator<<( std::ostream& os, const Event& event ); | friend std::ostream& operator<<( std::ostream& os, const Event& event ); | |||
friend std::ostream& operator<<( std::ostream& os, const Event* event ); | ||||
public: | public: | |||
// constructors | // constructors | |||
Event(); | Event(); | |||
Event( const Event& ); | Event( const Event& ); | |||
explicit Event( const std::vector<Float_t>&, | explicit Event( const std::vector<Float_t>& values, | |||
const std::vector<Float_t>& targetValues, | const std::vector<Float_t>& targetValues, | |||
const std::vector<Float_t>& spectatorValues, | const std::vector<Float_t>& spectatorValues, | |||
UInt_t theClass = 0, Float_t weight = 1.0, Float_t bo ostweight = 1.0 ); | UInt_t theClass = 0, Float_t weight = 1.0, Float_t bo ostweight = 1.0 ); | |||
explicit Event( const std::vector<Float_t>&, | explicit Event( const std::vector<Float_t>& values, | |||
const std::vector<Float_t>& targetValues, | const std::vector<Float_t>& targetValues, | |||
UInt_t theClass = 0, Float_t weight = 1.0, Float_t bo ostweight = 1.0 ); | UInt_t theClass = 0, Float_t weight = 1.0, Float_t bo ostweight = 1.0 ); | |||
explicit Event( const std::vector<Float_t>&, | explicit Event( const std::vector<Float_t>&, | |||
UInt_t theClass, Float_t weight = 1.0, Float_t boostw eight = 1.0 ); | UInt_t theClass, Float_t weight = 1.0, Float_t boostw eight = 1.0 ); | |||
explicit Event( const std::vector<Float_t*>*& ); | explicit Event( const std::vector<Float_t*>*&, UInt_t nvar ); | |||
~Event(); | ~Event(); | |||
// accessors | // accessors | |||
Bool_t IsSignal() const { return (fClass==fSignalClass); } // deprecated: use <DataSetInfo>.IsSignal( Event* ) | Bool_t IsSignal() const { return (fClass==fSignalClass); } // deprecated: use <DataSetInfo>.IsSignal( Event* ) | |||
Bool_t IsDynamic() const {return fDynamic; } | ||||
Float_t GetWeight() const { return fWeight*fBoostWeight; } | Float_t GetWeight() const { return fWeight*fBoostWeight; } | |||
Float_t GetOriginalWeight() const { return fWeight; } | Float_t GetOriginalWeight() const { return fWeight; } | |||
Float_t GetBoostWeight() const { return TMath::Max(Float_t(0.0001) ,fBoostWeight); } | Float_t GetBoostWeight() const { return TMath::Max(Float_t(0.0001) ,fBoostWeight); } | |||
UInt_t GetType() const { return GetClass(); } // better u se GetClass() | ||||
UInt_t GetClass() const { return fClass; } | UInt_t GetClass() const { return fClass; } | |||
UInt_t Type() const { return fClass; } // backward com patible -> to be removed | Int_t GetSignalClass() const { return fSignalClass; } // interme diate solution to keep IsSignal() of Event working | |||
UInt_t GetNVariables() const { return fValues.size(); } | UInt_t GetNVariables() const; | |||
UInt_t GetNTargets() const { return fTargets.size(); } | UInt_t GetNTargets() const; | |||
UInt_t GetNSpectators() const { return fSpectators.size(); } | UInt_t GetNSpectators() const; | |||
UInt_t GetNVars() const { return fValues.size(); } // back | ||||
ward compatible -> to be removed | ||||
Float_t GetVal(UInt_t ivar) const; | const std::vector<UInt_t>* GetVariableArrangement() const { return fV | |||
Int_t GetSignalClass() const { return fSignalClass; } // interme | ariableArrangement; } | |||
diate solution to keep IsSignal() of Event working | ||||
Float_t GetValue( UInt_t ivar) const; | ||||
const std::vector<Float_t>& GetValues() const; | const std::vector<Float_t>& GetValues() const; | |||
Float_t GetValue ( UInt_t ivar) const { return GetVal( ivar | Float_t GetTarget( UInt_t itgt ) const { return fTargets.at(itgt); } | |||
); } | std::vector<Float_t>& GetTargets() const { return fTargets; } | |||
Float_t GetSpectator( UInt_t ivar) const; | ||||
std::vector<Float_t>& GetSpectators() const { return fSpectators; } | ||||
void ScaleWeight ( Float_t s ) { fWeight*=s; } | void ScaleWeight ( Float_t s ) { fWeight*=s; } | |||
void SetWeight ( Float_t w ) { fWeight=w; } | void SetWeight ( Float_t w ) { fWeight=w; } | |||
void SetBoostWeight ( Float_t w ) { fBoostWeight=w; } | void SetBoostWeight ( Float_t w ) { fBoostWeight=w; } | |||
void ScaleBoostWeight ( Float_t s ) { fBoostWeight *= s; } | void ScaleBoostWeight ( Float_t s ) { fBoostWeight *= s; } | |||
void SetType ( Int_t t ) { SetClass(t); } | void SetClass ( UInt_t t ) { fClass=t; } | |||
void SetClass ( UInt_t t ) { fClass=t; } | void SetVal ( UInt_t ivar, Float_t val ); | |||
void SetType ( Types::ESBType t ) { fClass=(t==Types::kS | void SetTarget ( UInt_t itgt, Float_t value ); | |||
ignal) ? 1 : 0; } | void SetSignalClass ( UInt_t cls ){ fSignalClass = cls; } / | |||
void SetVal ( UInt_t ivar, Float_t val ); | / intermediate solution to keep IsSignal() of Event working. TODO: remove I | |||
void SetValFloatNoCheck( UInt_t ivar, Float_t val ) { fValues[ivar | sSignal() from Event | |||
] = val; } | void SetSpectator ( UInt_t ivar, Float_t value ); | |||
void SetVariableArrangement( std::vector<UInt_t>* const m ) const; | ||||
void SetSignalClass ( UInt_t cls ){ fSignalClass = cls; } // in | ||||
termediate solution to keep IsSignal() of Event working. TODO: remove IsSig | ||||
nal() from Event | ||||
void SetTarget( UInt_t itgt, Float_t value ) { | ||||
if (fTargets.size() <= itgt) fTargets.resize( itgt+1 ); | ||||
fTargets.at(itgt) = value; | ||||
} | ||||
std::vector<Float_t>& GetTargets() const { return fTarget | ||||
s; } | ||||
Float_t GetTarget( UInt_t itgt ) const { return fTarget | ||||
s.at(itgt); } | ||||
void SetSpectator( UInt_t ivar, Float_t value ) { | ||||
if (fSpectators.size() <= ivar) fSpectators.resize( ivar+1 ); | ||||
fSpectators.at(ivar) = value; | ||||
} | ||||
std::vector<Float_t>& GetSpectators() const { return fSpec | ||||
tators; } | ||||
Float_t GetSpectator( UInt_t ivar) const { return fSpec | ||||
tators.at(ivar); } | ||||
static void ClearDynamicVariables(); | static void ClearDynamicVariables(); | |||
void CopyVarValues( const Event& other ); | void CopyVarValues( const Event& other ); | |||
void Print ( std::ostream & o ) const; | void Print ( std::ostream & o ) const; | |||
private: | private: | |||
mutable std::vector<Float_t> fValues; // the event values | mutable std::vector<Float_t> fValues; // the event va | |||
static std::vector<Float_t*>* fgValuesDynamic; // the event values | lues | |||
mutable std::vector<Float_t> fTargets; // target values for | static std::vector<Float_t*>* fgValuesDynamic; // the event va | |||
regression | lues | |||
mutable std::vector<Float_t> fTargets; // target value | ||||
mutable std::vector<Float_t> fSpectators; // "visisting" var | s for regression | |||
iables which are never used for any calculation | mutable std::vector<Float_t> fSpectators; // "visisting" | |||
variables which are never used for any calculation | ||||
mutable std::vector<UInt_t>* fVariableArrangement; // needed for M | ||||
ethodCategories, where we can train on other than the main variables | ||||
UInt_t fClass; // signal or backgro und type: signal=1, background=0 | UInt_t fClass; // signal or backgro und type: signal=1, background=0 | |||
Float_t fWeight; // event weight (pro duct of global and individual weights) | Float_t fWeight; // event weight (pro duct of global and individual weights) | |||
Float_t fBoostWeight; // internal weight t o be set by boosting algorithm | Float_t fBoostWeight; // internal weight t o be set by boosting algorithm | |||
Bool_t fDynamic; // is set when the d ynamic values are taken | Bool_t fDynamic; // is set when the d ynamic values are taken | |||
UInt_t fSignalClass; // intermediate solu tion to keep IsSignal() of Event working. TODO: remove IsSignal() from Even t | UInt_t fSignalClass; // intermediate solu tion to keep IsSignal() of Event working. TODO: remove IsSignal() from Even t | |||
static Int_t fgCount; // count instances o f Event | static Int_t fgCount; // count instances o f Event | |||
}; | }; | |||
} | } | |||
#endif | #endif | |||
End of changes. 17 change blocks. | ||||
59 lines changed or deleted | 41 lines changed or added | |||
FitMethodFunction.h | FitMethodFunction.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: FitMethodFunction.h 26014 2008-10-29 16:37:28Z mo neta $ | // @(#)root/mathcore:$Id: FitMethodFunction.h 31763 2009-12-10 10:40:21Z mo neta $ | |||
// Author: L. Moneta Thu Aug 16 15:40:28 2007 | // Author: L. Moneta Thu Aug 16 15:40:28 2007 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2007 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2007 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class FitMethodFunction | // Header file for class FitMethodFunction | |||
skipping to change at line 98 | skipping to change at line 98 | |||
reset number of function calls | reset number of function calls | |||
*/ | */ | |||
virtual void ResetNCalls() { fNCalls = 0; } | virtual void ResetNCalls() { fNCalls = 0; } | |||
public: | public: | |||
protected: | protected: | |||
private: | private: | |||
unsigned int fNDim; | unsigned int fNDim; // function dimension | |||
unsigned int fNPoints; // size of the data | unsigned int fNPoints; // size of the data | |||
mutable unsigned int fNCalls; | mutable unsigned int fNCalls; // number of function calls | |||
}; | }; | |||
// define the normal and gradient function | // define the normal and gradient function | |||
typedef BasicFitMethodFunction<ROOT::Math::IMultiGenFunction> FitMet hodFunction; | typedef BasicFitMethodFunction<ROOT::Math::IMultiGenFunction> FitMet hodFunction; | |||
typedef BasicFitMethodFunction<ROOT::Math::IMultiGradFunction> FitMet hodGradFunction; | typedef BasicFitMethodFunction<ROOT::Math::IMultiGradFunction> FitMet hodGradFunction; | |||
} // end namespace Math | } // end namespace Math | |||
} // end namespace ROOT | } // end namespace ROOT | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
FitResult.h | FitResult.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: FitResult.h 31261 2009-11-18 07:31:51Z moneta $ | // @(#)root/mathcore:$Id: FitResult.h 31604 2009-12-07 19:04:33Z moneta $ | |||
// Author: L. Moneta Wed Aug 30 11:05:34 2006 | // Author: L. Moneta Wed Aug 30 11:05:34 2006 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class FitResult | // Header file for class FitResult | |||
skipping to change at line 122 | skipping to change at line 122 | |||
unsigned int NTotalParameters() const { return fParams.size(); } | unsigned int NTotalParameters() const { return fParams.size(); } | |||
/// total number of parameters (abbreviation) | /// total number of parameters (abbreviation) | |||
unsigned int NPar() const { return NTotalParameters(); } | unsigned int NPar() const { return NTotalParameters(); } | |||
/// get total number of free parameters | /// get total number of free parameters | |||
unsigned int NFreeParameters() const { return fNFree; } | unsigned int NFreeParameters() const { return fNFree; } | |||
/// minimizer status code | /// minimizer status code | |||
int Status() const { return fStatus; } | int Status() const { return fStatus; } | |||
///covariance matrix status code | ||||
/// using Minuit convention : =0 not calculated, =1 approximated, =2 mad | ||||
e pos def , =3 accurate | ||||
int CovMatrixStatus() const { return fCovStatus; } | ||||
/** fitting quantities **/ | /** fitting quantities **/ | |||
/// Return pointer to model (fit) function with fitted parameter values. | /// Return pointer to model (fit) function with fitted parameter values. | |||
const IModelFunction * FittedFunction() const { return fFitFunc; } | const IModelFunction * FittedFunction() const { return fFitFunc; } | |||
/// Chi2 fit value | /// Chi2 fit value | |||
/// in case of likelihood must be computed ? | /// in case of likelihood must be computed ? | |||
double Chi2() const { return fChi2; } | double Chi2() const { return fChi2; } | |||
/// Number of degree of freedom | /// Number of degree of freedom | |||
skipping to change at line 192 | skipping to change at line 197 | |||
if (fCovMatrix.size() == 0) return 0; // no matrix is available in ca se of non-valid fits | if (fCovMatrix.size() == 0) return 0; // no matrix is available in ca se of non-valid fits | |||
double tmp = CovMatrix(i,i)*CovMatrix(j,j); | double tmp = CovMatrix(i,i)*CovMatrix(j,j); | |||
return ( tmp > 0) ? CovMatrix(i,j)/ std::sqrt(tmp) : 0; | return ( tmp > 0) ? CovMatrix(i,j)/ std::sqrt(tmp) : 0; | |||
} | } | |||
/// fill covariance matrix elements using a generic matrix class impleme nting operator(i,j) | /// fill covariance matrix elements using a generic matrix class impleme nting operator(i,j) | |||
/// the matrix must be previously allocates with right size (npar * npar ) | /// the matrix must be previously allocates with right size (npar * npar ) | |||
template<class Matrix> | template<class Matrix> | |||
void GetCovarianceMatrix(Matrix & mat) const { | void GetCovarianceMatrix(Matrix & mat) const { | |||
unsigned int npar = fErrors.size(); | unsigned int npar = fErrors.size(); | |||
assert(fCovMatrix.size() == npar*(npar+1)/2); | if (fCovMatrix.size() != npar*(npar+1)/2 ) return; // do nothing | |||
for (unsigned int i = 0; i< npar; ++i) { | for (unsigned int i = 0; i< npar; ++i) { | |||
for (unsigned int j = 0; j<=i; ++j) { | for (unsigned int j = 0; j<=i; ++j) { | |||
mat(i,j) = fCovMatrix[j + i*(i+1)/2 ]; | mat(i,j) = fCovMatrix[j + i*(i+1)/2 ]; | |||
if (i != j) mat(j,i) = mat(i,j); | if (i != j) mat(j,i) = mat(i,j); | |||
} | } | |||
} | } | |||
} | } | |||
/// fill a correlation matrix elements using a generic symmetric matrix class implementing operator(i,j) | /// fill a correlation matrix elements using a generic symmetric matrix class implementing operator(i,j) | |||
/// the matrix must be previously allocates with right size (npar * npar ) | /// the matrix must be previously allocates with right size (npar * npar ) | |||
template<class Matrix> | template<class Matrix> | |||
void GetCorrelationMatrix(Matrix & mat) const { | void GetCorrelationMatrix(Matrix & mat) const { | |||
unsigned int npar = fErrors.size(); | unsigned int npar = fErrors.size(); | |||
assert(fCovMatrix.size() == npar*(npar+1)/2); | if (fCovMatrix.size() != npar*(npar+1)/2) return; // do nothing | |||
for (unsigned int i = 0; i< npar; ++i) { | for (unsigned int i = 0; i< npar; ++i) { | |||
for (unsigned int j = 0; j<=i; ++j) { | for (unsigned int j = 0; j<=i; ++j) { | |||
double tmp = fCovMatrix[i * (i +3)/2 ] * fCovMatrix[ j * (j+3)/ 2 ]; | double tmp = fCovMatrix[i * (i +3)/2 ] * fCovMatrix[ j * (j+3)/ 2 ]; | |||
mat(i,j) = (tmp > 0) ? fCovMatrix[j + i*(i+1)/2 ] / std::sqrt(t mp) : 0; | mat(i,j) = (tmp > 0) ? fCovMatrix[j + i*(i+1)/2 ] / std::sqrt(t mp) : 0; | |||
if (i != j) mat(j,i) = mat(i,j); | if (i != j) mat(j,i) = mat(i,j); | |||
} | } | |||
} | } | |||
} | } | |||
/** | /** | |||
skipping to change at line 277 | skipping to change at line 282 | |||
void SetModelFunction(IModelFunction * func) { fFitFunc = func; } | void SetModelFunction(IModelFunction * func) { fFitFunc = func; } | |||
friend class Fitter; | friend class Fitter; | |||
bool fValid; // flag for indicating valid fit | bool fValid; // flag for indicating valid fit | |||
bool fNormalized; // flag for indicating is errors are normalized | bool fNormalized; // flag for indicating is errors are normalized | |||
unsigned int fNFree; // number of fit free parameters (total paramet ers are in size of parameter vector) | unsigned int fNFree; // number of fit free parameters (total paramet ers are in size of parameter vector) | |||
unsigned int fNdf; // number of degree of freedom | unsigned int fNdf; // number of degree of freedom | |||
unsigned int fNCalls; // number of function calls | unsigned int fNCalls; // number of function calls | |||
int fStatus; // minimizer status code | int fStatus; // minimizer status code | |||
int fCovStatus; // covariance matrix status code | ||||
double fVal; // minimum function value | double fVal; // minimum function value | |||
double fEdm; // expected distance from mimimum | double fEdm; // expected distance from mimimum | |||
double fChi2; // fit chi2 value (different than fval in case of chi2 fits) | double fChi2; // fit chi2 value (different than fval in case of chi2 fits) | |||
IModelFunction * fFitFunc; //! model function resulting from the fit. I t is given by Fitter but it is managed by FitResult | IModelFunction * fFitFunc; //! model function resulting from the fit. I t is given by Fitter but it is managed by FitResult | |||
std::vector<unsigned int> fFixedParams; // list of fixed parameters | std::vector<unsigned int> fFixedParams; // list of fixed parameters | |||
std::vector<unsigned int> fBoundParams; // list of limited parameters | std::vector<unsigned int> fBoundParams; // list of limited parameters | |||
std::vector<double> fParams; // parameter values. Size is total number of parameters | std::vector<double> fParams; // parameter values. Size is total number of parameters | |||
std::vector<double> fErrors; // errors | std::vector<double> fErrors; // errors | |||
std::vector<double> fCovMatrix; // covariance matrix (size is n par*(npar+1)/2) where npar is total parameters | std::vector<double> fCovMatrix; // covariance matrix (size is n par*(npar+1)/2) where npar is total parameters | |||
std::vector<double> fGlobalCC; // global Correlation coefficie nt | std::vector<double> fGlobalCC; // global Correlation coefficie nt | |||
End of changes. 5 change blocks. | ||||
3 lines changed or deleted | 10 lines changed or added | |||
Fitter.h | Fitter.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: Fitter.h 28946 2009-06-11 15:39:14Z moneta $ | // @(#)root/mathcore:$Id: Fitter.h 31873 2009-12-14 10:05:39Z brun $ | |||
// Author: L. Moneta Wed Aug 30 11:05:19 2006 | // Author: L. Moneta Wed Aug 30 11:05:19 2006 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class Fitter | // Header file for class Fitter | |||
skipping to change at line 257 | skipping to change at line 257 | |||
or is not defined (like in case of fitting through a ::FitFCN) | or is not defined (like in case of fitting through a ::FitFCN) | |||
*/ | */ | |||
bool IsBinFit() const { return fBinFit; } | bool IsBinFit() const { return fBinFit; } | |||
/** | /** | |||
return pointer to last used minimizer | return pointer to last used minimizer | |||
(is NULL in case fit is not yet done) | (is NULL in case fit is not yet done) | |||
This pointer will be valid as far as the data, the objective function | This pointer will be valid as far as the data, the objective function | |||
and the fitter class have not been deleted. | and the fitter class have not been deleted. | |||
To be used only after fitting. | To be used only after fitting. | |||
The pointer should not be stored and will be invalided after performi | ||||
ng a new fitting. | ||||
In this case a new instance of ROOT::Math::Minimizer will be re-creat | ||||
ed and can be | ||||
obtained calling again GetMinimizer() | ||||
*/ | */ | |||
ROOT::Math::Minimizer * GetMinimizer() { return fMinimizer.get(); } | ROOT::Math::Minimizer * GetMinimizer() { return fMinimizer.get(); } | |||
/** | /** | |||
return pointer to last used objective function | return pointer to last used objective function | |||
(is NULL in case fit is not yet done) | (is NULL in case fit is not yet done) | |||
This pointer will be valid as far as the data and the fitter class | This pointer will be valid as far as the data and the fitter class | |||
have not been deleted. To be used after the fitting | have not been deleted. To be used after the fitting. | |||
The pointer should not be stored and will be invalided after performi | ||||
ng a new fitting. | ||||
In this case a new instance of the function pointer will be re-create | ||||
d and can be | ||||
obtained calling again GetFCN() | ||||
*/ | */ | |||
ROOT::Math::IMultiGenFunction * GetFCN() { return fObjFunction.get(); } | ROOT::Math::IMultiGenFunction * GetFCN() { return fObjFunction.get(); } | |||
protected: | protected: | |||
/// least square fit | /// least square fit | |||
bool DoLeastSquareFit(const BinData & data); | bool DoLeastSquareFit(const BinData & data); | |||
/// binned likelihood fit | /// binned likelihood fit | |||
bool DoLikelihoodFit(const BinData & data); | bool DoLikelihoodFit(const BinData & data); | |||
/// un-binned likelihood fit | /// un-binned likelihood fit | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 12 lines changed or added | |||
GSLMinimizer.h | GSLMinimizer.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: GSLMinimizer.h 29068 2009-06-17 16:28:51Z moneta $ | // @(#)root/mathmore:$Id: GSLMinimizer.h 31604 2009-12-07 19:04:33Z moneta $ | |||
// Author: L. Moneta Wed Oct 18 11:48:00 2006 | // Author: L. Moneta Wed Oct 18 11:48:00 2006 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* This library is free software; you can redistribute it and/or * | * This library is free software; you can redistribute it and/or * | |||
* modify it under the terms of the GNU General Public License * | * modify it under the terms of the GNU General Public License * | |||
* as published by the Free Software Foundation; either version 2 * | * as published by the Free Software Foundation; either version 2 * | |||
* of the License, or (at your option) any later version. * | * of the License, or (at your option) any later version. * | |||
skipping to change at line 185 | skipping to change at line 185 | |||
virtual const double * Errors() const { | virtual const double * Errors() const { | |||
return 0; | return 0; | |||
} | } | |||
/** return covariance matrices elements | /** return covariance matrices elements | |||
if the variable is fixed the matrix is zero | if the variable is fixed the matrix is zero | |||
The ordering of the variables is the same as in errors | The ordering of the variables is the same as in errors | |||
*/ | */ | |||
virtual double CovMatrix(unsigned int , unsigned int ) const { return 0; } | virtual double CovMatrix(unsigned int , unsigned int ) const { return 0; } | |||
/// minos error for variable i, return false if Minos failed | ||||
virtual bool GetMinosError(unsigned int , double & /* errLow */ , double | ||||
& /* errUp */ ) { return false; } | ||||
/// return reference to the objective function | ||||
///virtual const ROOT::Math::IGenFunction & Function() const; | ||||
// method of only GSL minimizer (not inherited from interface) | // method of only GSL minimizer (not inherited from interface) | |||
/// return pointer to used objective gradient function | /// return pointer to used objective gradient function | |||
const ROOT::Math::IMultiGradFunction * ObjFunction() const { return fObj Func; } | const ROOT::Math::IMultiGradFunction * ObjFunction() const { return fObj Func; } | |||
/// return transformation function (NULL if not having a transformation) | /// return transformation function (NULL if not having a transformation) | |||
const ROOT::Math::MinimTransformFunction * TransformFunction() const; | const ROOT::Math::MinimTransformFunction * TransformFunction() const; | |||
protected: | protected: | |||
End of changes. 2 change blocks. | ||||
8 lines changed or deleted | 1 lines changed or added | |||
GSLNLSMinimizer.h | GSLNLSMinimizer.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: GSLNLSMinimizer.h 29104 2009-06-19 13:41:05Z mone ta $ | // @(#)root/mathmore:$Id: GSLNLSMinimizer.h 31604 2009-12-07 19:04:33Z mone ta $ | |||
// Author: L. Moneta Wed Dec 20 17:16:32 2006 | // Author: L. Moneta Wed Dec 20 17:16:32 2006 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* This library is free software; you can redistribute it and/or * | * This library is free software; you can redistribute it and/or * | |||
* modify it under the terms of the GNU General Public License * | * modify it under the terms of the GNU General Public License * | |||
* as published by the Free Software Foundation; either version 2 * | * as published by the Free Software Foundation; either version 2 * | |||
* of the License, or (at your option) any later version. * | * of the License, or (at your option) any later version. * | |||
skipping to change at line 233 | skipping to change at line 233 | |||
virtual unsigned int NDim() const { return fDim; } | virtual unsigned int NDim() const { return fDim; } | |||
/// number of free variables (real dimension of the problem) | /// number of free variables (real dimension of the problem) | |||
/// this is <= Function().NDim() which is the total | /// this is <= Function().NDim() which is the total | |||
virtual unsigned int NFree() const { return fNFree; } | virtual unsigned int NFree() const { return fNFree; } | |||
/// minimizer provides error and error matrix | /// minimizer provides error and error matrix | |||
virtual bool ProvidesError() const { return true; } | virtual bool ProvidesError() const { return true; } | |||
/// return errors at the minimum | /// return errors at the minimum | |||
virtual const double * Errors() const { return &fErrors.front(); } | virtual const double * Errors() const { return (fErrors.size() > 0) ? &f Errors.front() : 0; } | |||
// { | // { | |||
// static std::vector<double> err; | // static std::vector<double> err; | |||
// err.resize(fDim); | // err.resize(fDim); | |||
// return &err.front(); | // return &err.front(); | |||
// } | // } | |||
/** return covariance matrices elements | /** return covariance matrices elements | |||
if the variable is fixed the matrix is zero | if the variable is fixed the matrix is zero | |||
The ordering of the variables is the same as in errors | The ordering of the variables is the same as in errors | |||
*/ | */ | |||
virtual double CovMatrix(unsigned int , unsigned int ) const; | virtual double CovMatrix(unsigned int , unsigned int ) const; | |||
/// minos error for variable i, return false if Minos failed | /// return covariance matrix status | |||
virtual bool GetMinosError(unsigned int , double & /* errLow */ , double | virtual int CovMatrixStatus() const; | |||
& /* errUp */ ) { return false; } | ||||
/// return reference to the objective function | ||||
///virtual const ROOT::Math::IGenFunction & Function() const; | ||||
protected: | protected: | |||
private: | private: | |||
unsigned int fDim; // dimension of the function to be minimized | unsigned int fDim; // dimension of the function to be minimized | |||
unsigned int fNFree; // dimension of the internal function to be mi nimized | unsigned int fNFree; // dimension of the internal function to be mi nimized | |||
unsigned int fSize; // number of fit points (residuals) | unsigned int fSize; // number of fit points (residuals) | |||
ROOT::Math::GSLMultiFit * fGSLMultiFit; // pointer to GSL multi f it solver | ROOT::Math::GSLMultiFit * fGSLMultiFit; // pointer to GSL multi f it solver | |||
End of changes. 3 change blocks. | ||||
8 lines changed or deleted | 4 lines changed or added | |||
GSLRndmEngines.h | GSLRndmEngines.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: GSLRndmEngines.h 21553 2007-12-21 10:55:46Z monet a $ | // @(#)root/mathmore:$Id: GSLRndmEngines.h 31763 2009-12-10 10:40:21Z monet a $ | |||
// Author: L. Moneta, A. Zsenei 08/2005 | // Author: L. Moneta, A. Zsenei 08/2005 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2004 ROOT Foundation, CERN/PH-SFT * | * Copyright (c) 2004 ROOT Foundation, CERN/PH-SFT * | |||
* * | * * | |||
* This library is free software; you can redistribute it and/or * | * This library is free software; you can redistribute it and/or * | |||
* modify it under the terms of the GNU General Public License * | * modify it under the terms of the GNU General Public License * | |||
* as published by the Free Software Foundation; either version 2 * | * as published by the Free Software Foundation; either version 2 * | |||
* of the License, or (at your option) any later version. * | * of the License, or (at your option) any later version. * | |||
skipping to change at line 98 | skipping to change at line 98 | |||
If no rng is present the default one based on Mersenne and Twister is created | If no rng is present the default one based on Mersenne and Twister is created | |||
*/ | */ | |||
void Initialize(); | void Initialize(); | |||
/** | /** | |||
delete pointer to contained rng | delete pointer to contained rng | |||
*/ | */ | |||
void Terminate(); | void Terminate(); | |||
/** | /** | |||
no operation, rng is delete in Terminate() | call Terminate() | |||
*/ | */ | |||
virtual ~GSLRandomEngine() {} | virtual ~GSLRandomEngine(); | |||
/** | /** | |||
Generate a random number between ]0,1] | Generate a random number between ]0,1] | |||
0 is excluded and 1 is included | 0 is excluded and 1 is included | |||
*/ | */ | |||
double operator() () const; | double operator() () const; | |||
/** | /** | |||
Generate an integer number between [0,max-1] (including 0 and max -1) | Generate an integer number between [0,max-1] (including 0 and max -1) | |||
if max is larger than available range of algorithm | if max is larger than available range of algorithm | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
GSLSimAnMinimizer.h | GSLSimAnMinimizer.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: GSLSimAnMinimizer.h 29068 2009-06-17 16:28:51Z mo neta $ | // @(#)root/mathmore:$Id: GSLSimAnMinimizer.h 31604 2009-12-07 19:04:33Z mo neta $ | |||
// Author: L. Moneta Wed Dec 20 17:16:32 2006 | // Author: L. Moneta Wed Dec 20 17:16:32 2006 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* This library is free software; you can redistribute it and/or * | * This library is free software; you can redistribute it and/or * | |||
* modify it under the terms of the GNU General Public License * | * modify it under the terms of the GNU General Public License * | |||
* as published by the Free Software Foundation; either version 2 * | * as published by the Free Software Foundation; either version 2 * | |||
* of the License, or (at your option) any later version. * | * of the License, or (at your option) any later version. * | |||
skipping to change at line 164 | skipping to change at line 164 | |||
/// return errors at the minimum | /// return errors at the minimum | |||
virtual const double * Errors() const { return 0; } | virtual const double * Errors() const { return 0; } | |||
/** return covariance matrices elements | /** return covariance matrices elements | |||
if the variable is fixed the matrix is zero | if the variable is fixed the matrix is zero | |||
The ordering of the variables is the same as in errors | The ordering of the variables is the same as in errors | |||
*/ | */ | |||
virtual double CovMatrix(unsigned int , unsigned int ) const { return 0; } | virtual double CovMatrix(unsigned int , unsigned int ) const { return 0; } | |||
/// minos error for variable i, return false if Minos failed | ||||
virtual bool GetMinosError(unsigned int , double & /* errLow */ , double | ||||
& /* errUp */ ) { return false; } | ||||
/// return reference to the objective function | /// return reference to the objective function | |||
///virtual const ROOT::Math::IGenFunction & Function() const; | ///virtual const ROOT::Math::IGenFunction & Function() const; | |||
protected: | protected: | |||
private: | private: | |||
unsigned int fDim; // dimension of the function to be minimized | unsigned int fDim; // dimension of the function to be minimized | |||
bool fOwnFunc; // flag to indicate if objective function is manag ed | bool fOwnFunc; // flag to indicate if objective function is manag ed | |||
End of changes. 2 change blocks. | ||||
5 lines changed or deleted | 1 lines changed or added | |||
GeneticGenes.h | GeneticGenes.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: GeneticGenes.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: GeneticGenes.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Peter Speckmayer | // Author: Peter Speckmayer | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : GeneticGenes * | * Class : GeneticGenes * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Genes definition for genetic algorithm * | * Genes definition for genetic algorithm * | |||
skipping to change at line 54 | skipping to change at line 54 | |||
public: | public: | |||
GeneticGenes():fFitness(0) {} | GeneticGenes():fFitness(0) {} | |||
GeneticGenes( std::vector<Double_t> & f ); | GeneticGenes( std::vector<Double_t> & f ); | |||
virtual ~GeneticGenes() {} | virtual ~GeneticGenes() {} | |||
std::vector<Double_t>& GetFactors() { return fFactors; } | std::vector<Double_t>& GetFactors() { return fFactors; } | |||
void SetFitness(Double_t fitness) { fFitness = fitness; } | void SetFitness(Double_t fitness) { fFitness = fitness; } | |||
Double_t GetFitness() { return fFitness; } | Double_t GetFitness() const { return fFitness; } | |||
friend Bool_t operator <(const GeneticGenes&, const GeneticGenes&); | friend Bool_t operator <(const GeneticGenes&, const GeneticGenes&); | |||
private: | private: | |||
std::vector<Double_t> fFactors; // stores the factors (coefficients) of one individual | std::vector<Double_t> fFactors; // stores the factors (coefficients) of one individual | |||
Double_t fFitness; | Double_t fFitness; | |||
ClassDef(GeneticGenes,0) // Genes definition for genetic algorithm | ClassDef(GeneticGenes,0) // Genes definition for genetic algorithm | |||
}; | }; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
GeneticPopulation.h | GeneticPopulation.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: GeneticPopulation.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: GeneticPopulation.h 31574 2009-12-05 18:23:21Z stelze r $ | |||
// Author: Peter Speckmayer | // Author: Peter Speckmayer | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : GeneticPopulation * | * Class : GeneticPopulation * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Population definition for genetic algorithm * | * Population definition for genetic algorithm * | |||
skipping to change at line 62 | skipping to change at line 62 | |||
class TH1F; | class TH1F; | |||
namespace TMVA { | namespace TMVA { | |||
class MsgLogger; | class MsgLogger; | |||
class GeneticPopulation { | class GeneticPopulation { | |||
public: | public: | |||
GeneticPopulation(const std::vector<Interval*>& ranges, Int_t size, U Int_t seed = 0); | GeneticPopulation(const std::vector<TMVA::Interval*>& ranges, Int_t s ize, UInt_t seed = 0); | |||
virtual ~GeneticPopulation(); | virtual ~GeneticPopulation(); | |||
void SetRandomSeed( UInt_t seed = 0); | void SetRandomSeed( UInt_t seed = 0); | |||
void MakeChildren(); | void MakeChildren(); | |||
void Mutate( Double_t probability = 20, Int_t startIndex = 0, Bool_t near = kFALSE, | void Mutate( Double_t probability = 20, Int_t startIndex = 0, Bool_t near = kFALSE, | |||
Double_t spread = 0.1, Bool_t mirror = kFALSE ); | Double_t spread = 0.1, Bool_t mirror = kFALSE ); | |||
GeneticGenes* GetGenes( Int_t index ); | GeneticGenes* GetGenes( Int_t index ); | |||
Int_t GetPopulationSize() const { return fGenePool.size(); } | Int_t GetPopulationSize() const { return fGenePool.size(); } | |||
Double_t GetFitness() const { return fGenePool.size()>0? fGenePo | ||||
ol[0].GetFitness() : 0; } | ||||
const std::vector<TMVA::GeneticGenes>& GetGenePool() const { return f | ||||
GenePool; } | ||||
const std::vector<TMVA::GeneticRange*>& GetRanges() const { return fR | ||||
anges; } | ||||
std::vector<TMVA::GeneticGenes>& GetGenePool() { return fGenePool; } | std::vector<TMVA::GeneticGenes>& GetGenePool() { return fGenePool; } | |||
std::vector<TMVA::GeneticRange*>& GetRanges() { return fRanges; } | std::vector<TMVA::GeneticRange*>& GetRanges() { return fRanges; } | |||
void Print( Int_t untilIndex = -1 ); | void Print( Int_t untilIndex = -1 ); | |||
void Print( ostream & out, Int_t utilIndex = -1 ); | void Print( ostream & out, Int_t utilIndex = -1 ); | |||
TH1F* VariableDistribution( Int_t varNumber, Int_t bins, Int_t min, I nt_t max ); | TH1F* VariableDistribution( Int_t varNumber, Int_t bins, Int_t min, I nt_t max ); | |||
std::vector< Double_t > VariableDistribution( Int_t varNumber ); | std::vector< Double_t > VariableDistribution( Int_t varNumber ); | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 9 lines changed or added | |||
HFitInterface.h | HFitInterface.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: HFitInterface.h 31207 2009-11-16 16:52:00Z moneta $ | // @(#)root/hist:$Id: HFitInterface.h 31491 2009-12-01 18:11:55Z moneta $ | |||
// Author: L. Moneta Thu Aug 31 10:40:20 2006 | // Author: L. Moneta Thu Aug 31 10:40:20 2006 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class HFitInterface | // Header file for class HFitInterface | |||
skipping to change at line 87 | skipping to change at line 87 | |||
TFitResultPtr FitObject(THnSparse * s1, TF1 *f1, Foption_t & option, const ROOT::Math::MinimizerOptions & moption, const char *goption, ROOT::Fi t::DataRange & range); | TFitResultPtr FitObject(THnSparse * s1, TF1 *f1, Foption_t & option, const ROOT::Math::MinimizerOptions & moption, const char *goption, ROOT::Fi t::DataRange & range); | |||
#endif | #endif | |||
/** | /** | |||
fit an unbin data set (from tree or from histogram buffer) | fit an unbin data set (from tree or from histogram buffer) | |||
using a TF1 pointer and fit options. | using a TF1 pointer and fit options. | |||
N.B. ownership of fit data is passed to the UnBinFit function whi ch will be responsible of | N.B. ownership of fit data is passed to the UnBinFit function whi ch will be responsible of | |||
deleting the data after the fit. User calling this function MUST NOT delete UnBinData after | deleting the data after the fit. User calling this function MUST NOT delete UnBinData after | |||
calling it. | calling it. | |||
*/ | */ | |||
int UnBinFit(ROOT::Fit::UnBinData * data, TF1 * f1 , Foption_t & opti on , const ROOT::Math::MinimizerOptions & moption); | TFitResultPtr UnBinFit(ROOT::Fit::UnBinData * data, TF1 * f1 , Foptio n_t & option , const ROOT::Math::MinimizerOptions & moption); | |||
/** | /** | |||
fill the data vector from a TH1. Pass also the TF1 function which is | fill the data vector from a TH1. Pass also the TF1 function which is | |||
needed in case of integral option and to reject points rejected b y the function | needed in case of integral option and to reject points rejected b y the function | |||
*/ | */ | |||
void FillData ( BinData & dv, const TH1 * hist, TF1 * func = 0); | void FillData ( BinData & dv, const TH1 * hist, TF1 * func = 0); | |||
/** | /** | |||
fill the data vector from a TH1 with sparse data. Pass also the T F1 function which is | fill the data vector from a TH1 with sparse data. Pass also the T F1 function which is | |||
needed in case of integral option and to reject points rejected b y the function | needed in case of integral option and to reject points rejected b y the function | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
HybridCalculator.h | HybridCalculator.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: HybridCalculator.h 31285 2009-11-18 16:38:36Z mon eta $ | // @(#)root/roostats:$Id: HybridCalculator.h 31741 2009-12-09 17:27:53Z mon eta $ | |||
/************************************************************************* | /************************************************************************* | |||
* Project: RooStats * | * Project: RooStats * | |||
* Package: RooFit/RooStats * | * Package: RooFit/RooStats * | |||
* Authors: * | * Authors: * | |||
* Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke * | * Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke * | |||
************************************************************************* | ************************************************************************* | |||
* Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
skipping to change at line 142 | skipping to change at line 142 | |||
private: | private: | |||
void RunToys(std::vector<double>& bVals, std::vector<double>& sbVals, unsigned int nToys, bool usePriors) const; | void RunToys(std::vector<double>& bVals, std::vector<double>& sbVals, unsigned int nToys, bool usePriors) const; | |||
// check input parameters before performing the calculation | // check input parameters before performing the calculation | |||
bool DoCheckInputs() const; | bool DoCheckInputs() const; | |||
unsigned int fTestStatisticsIdx; // Index of the test statistics to u se | unsigned int fTestStatisticsIdx; // Index of the test statistics to u se | |||
unsigned int fNToys; // number of Toys MC | unsigned int fNToys; // number of Toys MC | |||
bool fUsePriorPdf; // use a prior for nuisance paramet ers | ||||
RooAbsPdf* fSbModel; // The pdf of the signal+background model | RooAbsPdf* fSbModel; // The pdf of the signal+background model | |||
RooAbsPdf* fBModel; // The pdf of the background model | RooAbsPdf* fBModel; // The pdf of the background model | |||
mutable RooArgList* fObservables; // Collection of the observables of the model | mutable RooArgList* fObservables; // Collection of the observables of the model | |||
const RooArgSet* fNuisanceParameters; // Collection of the nuisance parameters in the model | const RooArgSet* fNuisanceParameters; // Collection of the nuisance parameters in the model | |||
RooAbsPdf* fPriorPdf; // Prior PDF of the nuisance parameters | RooAbsPdf* fPriorPdf; // Prior PDF of the nuisance parameters | |||
RooAbsData * fData; // pointer to the data sets | RooAbsData * fData; // pointer to the data sets | |||
bool fGenerateBinned; //Flag to control binned generation | bool fGenerateBinned; //Flag to control binned generation | |||
bool fUsePriorPdf; // use a prior for nuisance paramet ers | ||||
// TString fSbModelName; // name of pdf of the signal+background mo del | // TString fSbModelName; // name of pdf of the signal+background mo del | |||
// TString fBModelName; // name of pdf of the background model | // TString fBModelName; // name of pdf of the background model | |||
// TString fPriorPdfName; // name of pdf of the background model | // TString fPriorPdfName; // name of pdf of the background model | |||
// TString fDataName; // name of the dataset in the workspace | // TString fDataName; // name of the dataset in the workspace | |||
protected: | protected: | |||
ClassDef(HybridCalculator,1) // Hypothesis test calculator using a B ayesian-frequentist hybrid method | ClassDef(HybridCalculator,1) // Hypothesis test calculator using a B ayesian-frequentist hybrid method | |||
}; | }; | |||
} | } | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
HypoTestInverter.h | HypoTestInverter.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: HypoTestInverter.h 31322 2009-11-19 16:47:43Z mon eta $ | // @(#)root/roostats:$Id: HypoTestInverter.h 31798 2009-12-10 14:57:15Z mon eta $ | |||
// Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | // Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOSTATS_HypoTestInverter | #ifndef ROOSTATS_HypoTestInverter | |||
skipping to change at line 38 | skipping to change at line 38 | |||
namespace RooStats { | namespace RooStats { | |||
class HypoTestInverter : public IntervalCalculator, public TNamed { | class HypoTestInverter : public IntervalCalculator, public TNamed { | |||
public: | public: | |||
// default constructor (used only for I/O) | // default constructor (used only for I/O) | |||
HypoTestInverter(); | HypoTestInverter(); | |||
// constructor | // constructor | |||
HypoTestInverter( const char* name, | HypoTestInverter( HypoTestCalculator& myhc0, | |||
HypoTestCalculator* myhc0, | RooRealVar& scannedVariable, | |||
RooRealVar* scannedVariable, | ||||
double size = 0.05) ; | double size = 0.05) ; | |||
virtual HypoTestInverterResult* GetInterval() const { return fResults; } ; | virtual HypoTestInverterResult* GetInterval() const { return fResults; } ; | |||
bool RunAutoScan( double xMin, double xMax, double target, double epsil on=0.005, int numAlgorithm=0 ); | bool RunAutoScan( double xMin, double xMax, double target, double epsil on=0.005, unsigned int numAlgorithm=0 ); | |||
bool RunFixedScan( int nBins, double xMin, double xMax ); | bool RunFixedScan( int nBins, double xMin, double xMax ); | |||
bool RunOnePoint( double thisX ); | bool RunOnePoint( double thisX ); | |||
void UseCLs( bool on = true) { fUseCLs = on; if (fResults) fResults->Us eCLs(on); } | void UseCLs( bool on = true) { fUseCLs = on; if (fResults) fResults->Us eCLs(on); } | |||
virtual void SetData(RooAbsData &) { } // not needed | virtual void SetData(RooAbsData &) { } // not needed | |||
virtual void SetModel(const ModelConfig &) { } // not needed | virtual void SetModel(const ModelConfig &) { } // not needed | |||
End of changes. 3 change blocks. | ||||
5 lines changed or deleted | 4 lines changed or added | |||
HypoTestInverterResult.h | HypoTestInverterResult.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: HypoTestInverterResult.h 31322 2009-11-19 16:47:4 3Z moneta $ | // @(#)root/roostats:$Id: HypoTestInverterResult.h 31798 2009-12-10 14:57:1 5Z moneta $ | |||
// Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | // Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOSTATS_HypoTestInverterResult | #ifndef ROOSTATS_HypoTestInverterResult | |||
#define ROOSTATS_HypoTestInverterResult | #define ROOSTATS_HypoTestInverterResult | |||
#ifndef ROOSTATS_SimpleInterval | #ifndef ROOSTATS_SimpleInterval | |||
#include "RooStats/SimpleInterval.h" | #include "RooStats/SimpleInterval.h" | |||
#endif | #endif | |||
#include "RooStats/HypoTestResult.h" | ||||
class RooRealVar; | class RooRealVar; | |||
namespace RooStats { | namespace RooStats { | |||
class HypoTestInverterResult : public SimpleInterval { | class HypoTestInverterResult : public SimpleInterval { | |||
public: | public: | |||
// default constructor | // default constructor | |||
explicit HypoTestInverterResult(const char* name = 0); | explicit HypoTestInverterResult(const char* name = 0); | |||
skipping to change at line 46 | skipping to change at line 48 | |||
// function to return the value of the parameter of interest for the i^ th entry in the results | // function to return the value of the parameter of interest for the i^ th entry in the results | |||
double GetXValue( int index ) const ; | double GetXValue( int index ) const ; | |||
// function to return the value of the confidence level for the i^th en try in the results | // function to return the value of the confidence level for the i^th en try in the results | |||
double GetYValue( int index ) const ; | double GetYValue( int index ) const ; | |||
// function to return the estimated error on the value of the confidenc e level for the i^th entry in the results | // function to return the estimated error on the value of the confidenc e level for the i^th entry in the results | |||
double GetYError( int index ) const ; | double GetYError( int index ) const ; | |||
// return a pointer to the i^th result object | ||||
HypoTestResult* GetResult( int index ) const ; | ||||
// number of entries in the results array | // number of entries in the results array | |||
int ArraySize() const { return fXValues.size(); }; | int ArraySize() const { return fXValues.size(); }; | |||
// set the size of the test (rate of Type I error) (eg. 0.05 for a 95% Confidence Interval) | // set the size of the test (rate of Type I error) (eg. 0.05 for a 95% Confidence Interval) | |||
virtual void SetTestSize( Double_t size ) { fConfidenceLevel = 1.-size; } | virtual void SetTestSize( Double_t size ) { fConfidenceLevel = 1.-size; } | |||
// set the confidence level for the interval (eg. 0.95 for a 95% Confid ence Interval) | // set the confidence level for the interval (eg. 0.95 for a 95% Confid ence Interval) | |||
virtual void SetConfidenceLevel( Double_t cl ) { fConfidenceLevel = cl; } | virtual void SetConfidenceLevel( Double_t cl ) { fConfidenceLevel = cl; } | |||
// flag to switch between using CLsb (default) or CLs as confidence lev el | // flag to switch between using CLsb (default) or CLs as confidence lev el | |||
void UseCLs( bool on = true ) { fUseCLs = on; } | void UseCLs( bool on = true ) { fUseCLs = on; } | |||
// lower and upper bound of the confidence interval (to get upper/lower limits, multiply the size( = 1-confidence level ) by 2 | // lower and upper bound of the confidence interval (to get upper/lower limits, multiply the size( = 1-confidence level ) by 2 | |||
Double_t LowerLimit(); | Double_t LowerLimit(); | |||
Double_t UpperLimit(); | Double_t UpperLimit(); | |||
// rough estimation of the error on the computed bound of the confidenc e interval | // rough estimation of the error on the computed bound of the confidenc e interval | |||
// Estimate of lower limit error | ||||
//function evaluates only a rought error on the lower limit. Be careful | ||||
when using this estimation | ||||
Double_t LowerLimitEstimatedError(); | Double_t LowerLimitEstimatedError(); | |||
// Estimate of lower limit error | ||||
//function evaluates only a rought error on the lower limit. Be careful | ||||
when using this estimation | ||||
Double_t UpperLimitEstimatedError(); | Double_t UpperLimitEstimatedError(); | |||
private: | private: | |||
// merge with the content of another HypoTestInverterResult object | ||||
bool Add( HypoTestInverterResult otherResult ); | ||||
double CalculateEstimatedError(double target); | double CalculateEstimatedError(double target); | |||
int FindClosestPointIndex(double target); | int FindClosestPointIndex(double target); | |||
double FindInterpolatedLimit(double target); | double FindInterpolatedLimit(double target); | |||
protected: | protected: | |||
bool fUseCLs; | bool fUseCLs; | |||
bool fInterpolateLowerLimit; | bool fInterpolateLowerLimit; | |||
bool fInterpolateUpperLimit; | bool fInterpolateUpperLimit; | |||
End of changes. 6 change blocks. | ||||
1 lines changed or deleted | 16 lines changed or added | |||
IMethod.h | IMethod.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: IMethod.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: IMethod.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : IMethod * | * Class : IMethod * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Interface for all concrete MVA method implementations * | * Interface for all concrete MVA method implementations * | |||
skipping to change at line 80 | skipping to change at line 80 | |||
// ------- virtual member functions to be implemented by each MVA met hod | // ------- virtual member functions to be implemented by each MVA met hod | |||
// the name of the method | // the name of the method | |||
virtual const char *GetName() const = 0; | virtual const char *GetName() const = 0; | |||
// calculate the MVA value - some methods may return a per-event erro r estimate (unless: *err = -1) | // calculate the MVA value - some methods may return a per-event erro r estimate (unless: *err = -1) | |||
virtual Double_t GetMvaValue( Double_t* err = 0 ) = 0; | virtual Double_t GetMvaValue( Double_t* err = 0 ) = 0; | |||
// training method | // training method | |||
virtual void Train( void ) = 0; | virtual void Train( void ) = 0; | |||
// write weights to output stream | ||||
virtual void WriteWeightsToStream( std::ostream& ) const = 0; | ||||
// read weights from output stream | // read weights from output stream | |||
virtual void ReadWeightsFromStream( std::istream& ) = 0; | virtual void ReadWeightsFromStream( std::istream& ) = 0; | |||
// write method specific monitoring histograms to target file | // write method specific monitoring histograms to target file | |||
virtual void WriteMonitoringHistosToFile( void ) const = 0; | virtual void WriteMonitoringHistosToFile( void ) const = 0; | |||
// make ROOT-independent C++ class for classifier response | // make ROOT-independent C++ class for classifier response | |||
virtual void MakeClass( const TString& classFileName = TString("") ) const = 0; | virtual void MakeClass( const TString& classFileName = TString("") ) const = 0; | |||
// create ranking | // create ranking | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 1 lines changed or added | |||
LikelihoodIntervalPlot.h | LikelihoodIntervalPlot.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: LikelihoodIntervalPlot.h 31276 2009-11-18 15:06:4 2Z moneta $ | // @(#)root/roostats:$Id: LikelihoodIntervalPlot.h 31793 2009-12-10 14:43:5 1Z moneta $ | |||
/************************************************************************* | /************************************************************************* | |||
* Project: RooStats * | * Project: RooStats * | |||
* Package: RooFit/RooStats * | * Package: RooFit/RooStats * | |||
* Authors: * | * Authors: * | |||
* Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke * | * Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke * | |||
************************************************************************* | ************************************************************************* | |||
* Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
skipping to change at line 43 | skipping to change at line 43 | |||
LikelihoodIntervalPlot(); | LikelihoodIntervalPlot(); | |||
LikelihoodIntervalPlot(LikelihoodInterval* theInterval); | LikelihoodIntervalPlot(LikelihoodInterval* theInterval); | |||
// Destructor of SamplingDistribution | // Destructor of SamplingDistribution | |||
virtual ~LikelihoodIntervalPlot(); | virtual ~LikelihoodIntervalPlot(); | |||
void SetLikelihoodInterval(LikelihoodInterval* theInterval); | void SetLikelihoodInterval(LikelihoodInterval* theInterval); | |||
void SetPlotParameters(const RooArgSet *params) ; | void SetPlotParameters(const RooArgSet *params) ; | |||
// set plot range (for 1D plot) | ||||
void SetRange(double x1, double x2) { fXmin = x1; fXmax = x2; } | ||||
// set plot range (for 2D plot) | ||||
void SetRange(double x1, double y1, double x2, double y2) { | ||||
fXmin = x1; fXmax = x2; | ||||
fYmin = y1; fYmax = y2; | ||||
} | ||||
//set plot precision (when drawing a RooPlot) | ||||
void SetPrecision(double eps) { fPrecision = eps; } | ||||
void SetContourColor(const Color_t color) {fColor = color;} | void SetContourColor(const Color_t color) {fColor = color;} | |||
void SetLineColor(const Color_t color) {fLineColor = color;} | void SetLineColor(const Color_t color) {fLineColor = color;} | |||
void SetMaximum(const Double_t theMaximum) {fMaximum = theMaximum;} | void SetMaximum(const Double_t theMaximum) {fMaximum = theMaximum;} | |||
void SetNPoints(Int_t np) { fNPoints = np; } | void SetNPoints(Int_t np) { fNPoints = np; } | |||
// draw the likelihood interval or contour | ||||
// for the 1D case a RooPlot is drawn by default of the profiled Log-Li | ||||
kelihood ratio | ||||
// if option "TF1" is used the objects is drawn using a TF1 scanning th | ||||
e LL function in a | ||||
// grid of the setetd points (by default | ||||
// the TF1 can be costumized by setting maximum and the number of point | ||||
s to scan | ||||
void Draw(const Option_t *options=0); | void Draw(const Option_t *options=0); | |||
private: | private: | |||
Int_t fColor; | Int_t fColor; | |||
Int_t fFillStyle; | Int_t fFillStyle; | |||
Int_t fLineColor; | Int_t fLineColor; | |||
Int_t fNdimPlot; | Int_t fNdimPlot; | |||
Int_t fNPoints; // number of points used to scan the PL | Int_t fNPoints; // number of points used to scan the PL | |||
Double_t fMaximum; | Double_t fMaximum; // function maximum | |||
// ranges for plots | ||||
Double_t fXmin; | ||||
Double_t fXmax; | ||||
Double_t fYmin; | ||||
Double_t fYmax; | ||||
Double_t fPrecision; // RooCurve precision | ||||
LikelihoodInterval *fInterval; | LikelihoodInterval *fInterval; | |||
RooArgSet *fParamsPlot; | RooArgSet *fParamsPlot; | |||
protected: | protected: | |||
ClassDef(LikelihoodIntervalPlot,1) // Class containing the results of the IntervalCalculator | ClassDef(LikelihoodIntervalPlot,1) // Class containing the results of the IntervalCalculator | |||
}; | }; | |||
} | } | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 27 lines changed or added | |||
MessageTypes.h | MessageTypes.h | |||
---|---|---|---|---|
/* @(#)root/base:$Id: MessageTypes.h 28362 2009-04-27 14:20:39Z rdm $ */ | /* @(#)root/base:$Id: MessageTypes.h 31489 2009-12-01 17:37:16Z rdm $ */ | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_MessageTypes | #ifndef ROOT_MessageTypes | |||
skipping to change at line 95 | skipping to change at line 95 | |||
kPROOF_LIB_INC_PATH = 1045, //a list of lib/inc paths follows | kPROOF_LIB_INC_PATH = 1045, //a list of lib/inc paths follows | |||
kPROOF_WORKERLISTS = 1046, //an action on any of the worker l ist follows | kPROOF_WORKERLISTS = 1046, //an action on any of the worker l ist follows | |||
kPROOF_DATASET_STATUS = 1047, //status of data set preparation b efore processing | kPROOF_DATASET_STATUS = 1047, //status of data set preparation b efore processing | |||
kPROOF_OUTPUTOBJECT = 1048, //output object follows | kPROOF_OUTPUTOBJECT = 1048, //output object follows | |||
kPROOF_SETENV = 1049, //buffer with env vars to set | kPROOF_SETENV = 1049, //buffer with env vars to set | |||
kPROOF_REALTIMELOG = 1050, //switch on/off real-time retrieva l of log messages | kPROOF_REALTIMELOG = 1050, //switch on/off real-time retrieva l of log messages | |||
kPROOF_VERSARCHCOMP = 1051, //String with worker version/archi tecture/compiler follows | kPROOF_VERSARCHCOMP = 1051, //String with worker version/archi tecture/compiler follows | |||
kPROOF_ENDINIT = 1052, //signals end of initialization on worker | kPROOF_ENDINIT = 1052, //signals end of initialization on worker | |||
kPROOF_TOUCH = 1053, //touch the client admin file | kPROOF_TOUCH = 1053, //touch the client admin file | |||
kPROOF_FORK = 1054, //ask the worker to clone itself | kPROOF_FORK = 1054, //ask the worker to clone itself | |||
kPROOF_GOASYNC = 1055, //Switch to asynchronous mode | kPROOF_GOASYNC = 1055, //switch to asynchronous mode | |||
kPROOF_SUBMERGER = 1056, //sub-merger based approach in fin | ||||
alization | ||||
//---- ROOTD message opcodes (2000 - 2099) | //---- ROOTD message opcodes (2000 - 2099) | |||
kROOTD_USER = 2000, //user id follows | kROOTD_USER = 2000, //user id follows | |||
kROOTD_PASS = 2001, //passwd follows | kROOTD_PASS = 2001, //passwd follows | |||
kROOTD_AUTH = 2002, //authorization status (to client) | kROOTD_AUTH = 2002, //authorization status (to client) | |||
kROOTD_FSTAT = 2003, //filename follows | kROOTD_FSTAT = 2003, //filename follows | |||
kROOTD_OPEN = 2004, //filename follows + mode | kROOTD_OPEN = 2004, //filename follows + mode | |||
kROOTD_PUT = 2005, //offset, number of bytes and buff er | kROOTD_PUT = 2005, //offset, number of bytes and buff er | |||
kROOTD_GET = 2006, //offset, number of bytes | kROOTD_GET = 2006, //offset, number of bytes | |||
kROOTD_FLUSH = 2007, //flush file | kROOTD_FLUSH = 2007, //flush file | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 4 lines changed or added | |||
MethodANNBase.h | MethodANNBase.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodANNBase.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodANNBase.h 31574 2009-12-05 18:23:21Z stelzer $ | |||
// Author: Andreas Hoecker, Matt Jachowski | // Author: Andreas Hoecker, Matt Jachowski | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodANNBase * | * Class : MethodANNBase * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Artificial neural network base class for the discrimination of sign al * | * Artificial neural network base class for the discrimination of sign al * | |||
skipping to change at line 70 | skipping to change at line 70 | |||
#ifndef ROOT_TMVA_TActivation | #ifndef ROOT_TMVA_TActivation | |||
#include "TMVA/TActivation.h" | #include "TMVA/TActivation.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_TNeuron | #ifndef ROOT_TMVA_TNeuron | |||
#include "TMVA/TNeuron.h" | #include "TMVA/TNeuron.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_TNeuronInput | #ifndef ROOT_TMVA_TNeuronInput | |||
#include "TMVA/TNeuronInput.h" | #include "TMVA/TNeuronInput.h" | |||
#endif | #endif | |||
class TH1; | ||||
class TH1F; | ||||
namespace TMVA { | namespace TMVA { | |||
class MethodANNBase : public MethodBase { | class MethodANNBase : public MethodBase { | |||
public: | public: | |||
// constructors dictated by subclassing off of MethodBase | // constructors dictated by subclassing off of MethodBase | |||
MethodANNBase( const TString& jobName, | MethodANNBase( const TString& jobName, | |||
Types::EMVA methodType, | Types::EMVA methodType, | |||
const TString& methodTitle, | const TString& methodTitle, | |||
skipping to change at line 109 | skipping to change at line 112 | |||
if (fInputCalculator != NULL) delete fInputCalculator; | if (fInputCalculator != NULL) delete fInputCalculator; | |||
fInputCalculator = inputCalculator; | fInputCalculator = inputCalculator; | |||
} | } | |||
// this will have to be overridden by every subclass | // this will have to be overridden by every subclass | |||
virtual void Train() = 0; | virtual void Train() = 0; | |||
// print network, for debugging | // print network, for debugging | |||
virtual void PrintNetwork() const; | virtual void PrintNetwork() const; | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
virtual void WriteWeightsToStream( ostream& o ) const; | ||||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
void ReadWeightsFromXML( void* wghtnode ); | void ReadWeightsFromXML( void* wghtnode ); | |||
// read weights from file | // read weights from file | |||
virtual void ReadWeightsFromStream( istream& istr ); | virtual void ReadWeightsFromStream( istream& istr ); | |||
// calculate the MVA value | // calculate the MVA value | |||
virtual Double_t GetMvaValue( Double_t* err = 0 ); | virtual Double_t GetMvaValue( Double_t* err = 0 ); | |||
virtual const std::vector<Float_t> &GetRegressionValues(); | virtual const std::vector<Float_t> &GetRegressionValues(); | |||
skipping to change at line 158 | skipping to change at line 159 | |||
void PrintMessage( TString message, Bool_t force = kFALSE ) const ; | void PrintMessage( TString message, Bool_t force = kFALSE ) const ; | |||
void ForceNetworkCalculations(); | void ForceNetworkCalculations(); | |||
void WaitForKeyboard(); | void WaitForKeyboard(); | |||
// accessors | // accessors | |||
Int_t NumCycles() { return fNcycles; } | Int_t NumCycles() { return fNcycles; } | |||
TNeuron* GetInputNeuron(Int_t index) { return (TNeuron*)fInputL ayer->At(index); } | TNeuron* GetInputNeuron(Int_t index) { return (TNeuron*)fInputL ayer->At(index); } | |||
TNeuron* GetOutputNeuron( Int_t index = 0) { return fOutputNeurons.at (index); } | TNeuron* GetOutputNeuron( Int_t index = 0) { return fOutputNeurons.at (index); } | |||
// protected variables | // protected variables | |||
TObjArray* fNetwork; // TObjArray of TObjArrays representing n | TObjArray* fNetwork; // TObjArray of TObjArrays representi | |||
etwork | ng network | |||
TObjArray* fSynapses; // array of pointers to synapses, no stru | TObjArray* fSynapses; // array of pointers to synapses, no | |||
ctural data | structural data | |||
TActivation* fActivation; // activation function to be used for hid | TActivation* fActivation; // activation function to be used for | |||
den layers | hidden layers | |||
TActivation* fIdentity; // activation for input and output layers | TActivation* fIdentity; // activation for input and output la | |||
TRandom3* frgen; // random number generator for various us | yers | |||
es | TRandom3* frgen; // random number generator for variou | |||
s uses | ||||
TNeuronInput* fInputCalculator; // input calculator for all neurons | TNeuronInput* fInputCalculator; // input calculator for all neurons | |||
// monitoring histograms | // monitoring histograms | |||
TH1F* fEstimatorHistTrain; // monitors convergence of training sample | TH1F* fEstimatorHistTrain; // monitors convergence of training sample | |||
TH1F* fEstimatorHistTest; // monitors convergence of independent tes t sample | TH1F* fEstimatorHistTest; // monitors convergence of independent tes t sample | |||
// the neuronal network can be initialized after the analysis type ha | // monitoring histograms (not available for regression) | |||
s been set. | void CreateWeightMonitoringHists( const TString& bulkname, std::vecto | |||
void SetAnalysisType( Types::EAnalysisType type ); | r<TH1*>* hv = 0 ) const; | |||
std::vector<TH1*> fEpochMonHistS; // epoch monitoring hitograms for s | ||||
ignal | ||||
std::vector<TH1*> fEpochMonHistB; // epoch monitoring hitograms for b | ||||
ackground | ||||
std::vector<TH1*> fEpochMonHistW; // epoch monitoring hitograms for w | ||||
eights | ||||
private: | private: | |||
// helper functions for building network | // helper functions for building network | |||
void BuildLayers(std::vector<Int_t>* layout, Bool_t from_file = false ); | void BuildLayers(std::vector<Int_t>* layout, Bool_t from_file = false ); | |||
void BuildLayer(Int_t numNeurons, TObjArray* curLayer, TObjArray* pre vLayer, | void BuildLayer(Int_t numNeurons, TObjArray* curLayer, TObjArray* pre vLayer, | |||
Int_t layerIndex, Int_t numLayers, Bool_t from_file = false); | Int_t layerIndex, Int_t numLayers, Bool_t from_file = false); | |||
void AddPreLinks(TNeuron* neuron, TObjArray* prevLayer); | void AddPreLinks(TNeuron* neuron, TObjArray* prevLayer); | |||
// helper functions for weight initialization | // helper functions for weight initialization | |||
skipping to change at line 193 | skipping to change at line 197 | |||
// helper functions for deleting network | // helper functions for deleting network | |||
void DeleteNetwork(); | void DeleteNetwork(); | |||
void DeleteNetworkLayer(TObjArray*& layer); | void DeleteNetworkLayer(TObjArray*& layer); | |||
// debugging utilities | // debugging utilities | |||
void PrintLayer(TObjArray* layer) const; | void PrintLayer(TObjArray* layer) const; | |||
void PrintNeuron(TNeuron* neuron) const; | void PrintNeuron(TNeuron* neuron) const; | |||
// private variables | // private variables | |||
Int_t fNcycles; // number of epochs to train | Int_t fNcycles; // number of epochs to trai | |||
TString fNeuronType; // name of neuron activation function cl | n | |||
ass | TString fNeuronType; // name of neuron activatio | |||
TString fNeuronInputType; // name of neuron input calculator class | n function class | |||
TObjArray* fInputLayer; // cache this for fast access | TString fNeuronInputType; // name of neuron input cal | |||
std::vector<TNeuron*> fOutputNeurons; // cache this for fast acc | culator class | |||
ess | TObjArray* fInputLayer; // cache this for fast acce | |||
TString fLayerSpec; // layout specification option | ss | |||
std::vector<TNeuron*> fOutputNeurons; // cache this for fast acce | ||||
ss | ||||
TString fLayerSpec; // layout specification opt | ||||
ion | ||||
// some static flags | // some static flags | |||
static const Bool_t fgDEBUG = kTRUE; // debug flag | static const Bool_t fgDEBUG = kTRUE; // debug flag | |||
static const Bool_t fgFIXED_SEED = kFALSE; // fix rand generator see d | static const Bool_t fgFIXED_SEED = kFALSE; // fix rand generator see d | |||
ClassDef(MethodANNBase,0) // Base class for TMVA ANNs | ClassDef(MethodANNBase,0) // Base class for TMVA ANNs | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
End of changes. 7 change blocks. | ||||
23 lines changed or deleted | 35 lines changed or added | |||
MethodBDT.h | MethodBDT.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodBDT.h 29226 2009-06-25 15:18:50Z brun $ | // @(#)root/tmva $Id: MethodBDT.h 31574 2009-12-05 18:23:21Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodBDT (Boosted Decision Trees) * | * Class : MethodBDT (Boosted Decision Trees) * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Analysis of Boosted Decision Trees * | * Analysis of Boosted Decision Trees * | |||
* * | * * | |||
* Authors (alphabetical): * | * Authors (alphabetical): * | |||
* Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland * | * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland * | |||
* Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, German y * | * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, German y * | |||
* Kai Voss <Kai.Voss@cern.ch> - U. of Victoria, Canada * | * Kai Voss <Kai.Voss@cern.ch> - U. of Victoria, Canada * | |||
* Doug Schouten <dschoute@sfu.ca> - Simon Fraser U., Canada * | * Doug Schouten <dschoute@sfu.ca> - Simon Fraser U., Canada * | |||
* Jan Therhaag <jan.therhaag@cern.ch> - U. of Bonn, Germany * | ||||
* * | * * | |||
* Copyright (c) 2005: * | * Copyright (c) 2005: * | |||
* CERN, Switzerland * | * CERN, Switzerland * | |||
* U. of Victoria, Canada * | * U. of Victoria, Canada * | |||
* MPI-K Heidelberg, Germany * | * MPI-K Heidelberg, Germany * | |||
* * | * * | |||
* Redistribution and use in source and binary forms, with or without * | * Redistribution and use in source and binary forms, with or without * | |||
* modification, are permitted according to the terms listed in LICENSE * | * modification, are permitted according to the terms listed in LICENSE * | |||
* (http://tmva.sourceforge.net/LICENSE) * | * (http://tmva.sourceforge.net/LICENSE) * | |||
************************************************************************** ********/ | ************************************************************************** ********/ | |||
skipping to change at line 87 | skipping to change at line 88 | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
// write all Events from the Tree into a vector of Events, that are | // write all Events from the Tree into a vector of Events, that are | |||
// more easily manipulated | // more easily manipulated | |||
void InitEventSample(); | void InitEventSample(); | |||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
void ReadWeightsFromXML(void* parent); | void ReadWeightsFromXML(void* parent); | |||
// write method specific histos to target file | // write method specific histos to target file | |||
void WriteMonitoringHistosToFile( void ) const; | void WriteMonitoringHistosToFile( void ) const; | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0); | Double_t GetMvaValue( Double_t* err = 0); | |||
Double_t GetMvaValue( Double_t* err , UInt_t useNTrees ); | Double_t GetMvaValue( Double_t* err , UInt_t useNTrees ); | |||
// regression response | // regression response | |||
const std::vector<Float_t>& GetRegressionValues(); | const std::vector<Float_t>& GetRegressionValues(); | |||
// apply the boost algorithm to a tree in the collection | // apply the boost algorithm to a tree in the collection | |||
Double_t Boost( std::vector<Event*>, DecisionTree *dt, Int_t iTree ); | Double_t Boost( std::vector<TMVA::Event*>, DecisionTree *dt, Int_t iT ree ); | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking(); | const Ranking* CreateRanking(); | |||
// the option handling methods | // the option handling methods | |||
void DeclareOptions(); | void DeclareOptions(); | |||
void ProcessOptions(); | void ProcessOptions(); | |||
// get the forest | // get the forest | |||
inline const std::vector<TMVA::DecisionTree*> & GetForest() const; | inline const std::vector<TMVA::DecisionTree*> & GetForest() const; | |||
// get the forest | // get the forest | |||
inline const std::vector<Event*> & GetTrainingEvents() const; | inline const std::vector<TMVA::Event*> & GetTrainingEvents() const; | |||
inline const std::vector<double> & GetBoostWeights() const; | inline const std::vector<double> & GetBoostWeights() const; | |||
//return the individual relative variable importance | //return the individual relative variable importance | |||
std::vector<Double_t> GetVariableImportance(); | std::vector<Double_t> GetVariableImportance(); | |||
Double_t GetVariableImportance(UInt_t ivar); | Double_t GetVariableImportance(UInt_t ivar); | |||
Double_t TestTreeQuality( DecisionTree *dt ); | Double_t TestTreeQuality( DecisionTree *dt ); | |||
// make ROOT-independent C++ class for classifier response (classifie r-specific implementation) | // make ROOT-independent C++ class for classifier response (classifie r-specific implementation) | |||
void MakeClassSpecific( std::ostream&, const TString& ) const; | void MakeClassSpecific( std::ostream&, const TString& ) const; | |||
// header and auxiliary classes | // header and auxiliary classes | |||
void MakeClassSpecificHeader( std::ostream&, const TString& ) const; | void MakeClassSpecificHeader( std::ostream&, const TString& ) const; | |||
void MakeClassInstantiateNode( DecisionTreeNode *n, std::ostream& fou t, | void MakeClassInstantiateNode( DecisionTreeNode *n, std::ostream& fou t, | |||
const TString& className ) const; | const TString& className ) const; | |||
void GetHelpMessage() const; | void GetHelpMessage() const; | |||
protected: | ||||
void DeclareCompatibilityOptions(); | ||||
private: | private: | |||
// Init used in the various constructors | // Init used in the various constructors | |||
void Init( void ); | void Init( void ); | |||
// boosting algorithm (adaptive boosting) | // boosting algorithm (adaptive boosting) | |||
Double_t AdaBoost( std::vector<Event*>, DecisionTree *dt ); | Double_t AdaBoost( std::vector<TMVA::Event*>, DecisionTree *dt ); | |||
// boosting as a random re-weighting | // boosting as a random re-weighting | |||
Double_t Bagging( std::vector<Event*>, Int_t iTree ); | Double_t Bagging( std::vector<TMVA::Event*>, Int_t iTree ); | |||
// boosting special for regression | // boosting special for regression | |||
Double_t RegBoost( std::vector<Event*>, DecisionTree *dt ); | Double_t RegBoost( std::vector<TMVA::Event*>, DecisionTree *dt ); | |||
// adaboost adapted to regression | // adaboost adapted to regression | |||
Double_t AdaBoostR2( std::vector<Event*>, DecisionTree *dt ); | Double_t AdaBoostR2( std::vector<TMVA::Event*>, DecisionTree *dt ); | |||
// binomial likelihood gradient boost for classification | // binomial likelihood gradient boost for classification | |||
// (see Friedman: "Greedy Function Approximation: a Gradient Boosting Machine" | // (see Friedman: "Greedy Function Approximation: a Gradient Boosting Machine" | |||
// Technical report, Dept. of Statistics, Stanford University) | // Technical report, Dept. of Statistics, Stanford University) | |||
Double_t GradBoost( std::vector<Event*>, DecisionTree *dt ); | Double_t GradBoost( std::vector<TMVA::Event*>, DecisionTree *dt ); | |||
void InitGradBoost( std::vector<Event*>); | Double_t GradBoostRegression(std::vector<TMVA::Event*>, DecisionTree | |||
void UpdateTargets( std::vector<Event*>); | *dt ); | |||
void InitGradBoost( std::vector<TMVA::Event*>); | ||||
void UpdateTargets( std::vector<TMVA::Event*>); | ||||
void UpdateTargetsRegression( std::vector<TMVA::Event*>,Bool_t first= | ||||
kFALSE); | ||||
Double_t GetGradBoostMVA(TMVA::Event& e, UInt_t nTrees); | Double_t GetGradBoostMVA(TMVA::Event& e, UInt_t nTrees); | |||
void GetRandomSubSample(); | void GetRandomSubSample(); | |||
Double_t GetWeightedQuantile(std::vector<std::vector<Double_t> > &vec , const Double_t quantile, const Double_t SumOfWeights = 0.0); | ||||
std::vector<Event*> fEventSample; // the training eve | std::vector<TMVA::Event*> fEventSample; // the training eve | |||
nts | nts | |||
std::vector<Event*> fValidationSample;// the Validation e | std::vector<TMVA::Event*> fValidationSample;// the Validation e | |||
vents | vents | |||
std::vector<Event*> fSubSample; // subsample for ba | std::vector<TMVA::Event*> fSubSample; // subsample for ba | |||
gged grad boost | gged grad boost | |||
Int_t fNTrees; // number of decisi on trees requested | Int_t fNTrees; // number of decisi on trees requested | |||
std::vector<DecisionTree*> fForest; // the collection o f decision trees | std::vector<DecisionTree*> fForest; // the collection o f decision trees | |||
std::vector<double> fBoostWeights; // the weights appl ied in the individual boosts | std::vector<double> fBoostWeights; // the weights appl ied in the individual boosts | |||
std::vector<double> fInitialWeights; // the initial even | ||||
t weights | ||||
std::vector<double> fRegResiduals; // temporary storag | ||||
e for regression residuals | ||||
TString fBoostType; // string specifyin g the boost type | TString fBoostType; // string specifyin g the boost type | |||
Double_t fSumOfWeights; // total sum of all event weights | ||||
Double_t fAdaBoostBeta; // beta parameter f or AdaBoost algorithm | Double_t fAdaBoostBeta; // beta parameter f or AdaBoost algorithm | |||
TString fAdaBoostR2Loss; // loss type used i n AdaBoostR2 (Linear,Quadratic or Exponential) | TString fAdaBoostR2Loss; // loss type used i n AdaBoostR2 (Linear,Quadratic or Exponential) | |||
Double_t fTransitionPoint; // break-down point for gradient regression | ||||
Double_t fShrinkage; // learning rate fo r gradient boost; | Double_t fShrinkage; // learning rate fo r gradient boost; | |||
Bool_t fBaggedGradBoost; // turn bagging in combination with grad boost on/off | Bool_t fBaggedGradBoost; // turn bagging in combination with grad boost on/off | |||
Double_t fSampleFraction; // fraction of even ts used for bagged grad boost | Double_t fSampleFraction; // fraction of even ts used for bagged grad boost | |||
//options for the decision Tree | //options for the decision Tree | |||
SeparationBase *fSepType; // the separation u sed in node splitting | SeparationBase *fSepType; // the separation u sed in node splitting | |||
TString fSepTypeS; // the separation ( option string) used in node splitting | TString fSepTypeS; // the separation ( option string) used in node splitting | |||
Int_t fNodeMinEvents; // min number of ev ents in node | Int_t fNodeMinEvents; // min number of ev ents in node | |||
Int_t fNCuts; // grid used in cut applied in node splitting | Int_t fNCuts; // grid used in cut applied in node splitting | |||
skipping to change at line 209 | skipping to change at line 218 | |||
Double_t fPruneStrength; // a parameter to set the "amount" of pruning..needs to be adjusted | Double_t fPruneStrength; // a parameter to set the "amount" of pruning..needs to be adjusted | |||
DecisionTree::EPruneMethod fPruneMethod; // method used for prunig | DecisionTree::EPruneMethod fPruneMethod; // method used for prunig | |||
TString fPruneMethodS; // prune method op tion String | TString fPruneMethodS; // prune method op tion String | |||
Bool_t fPruneBeforeBoost;// flag to prune b efore boosting | Bool_t fPruneBeforeBoost;// flag to prune b efore boosting | |||
Double_t fFValidationEvents; // fraction o f events to use for pruning | Double_t fFValidationEvents; // fraction o f events to use for pruning | |||
Bool_t fAutomatic; // use user given prune strength or automatically determined one using a validation sample | Bool_t fAutomatic; // use user given prune strength or automatically determined one using a validation sample | |||
Bool_t fRandomisedTrees; // choose a random subset of possible cut variables at each node during training | Bool_t fRandomisedTrees; // choose a random subset of possible cut variables at each node during training | |||
UInt_t fUseNvars; // the number of v ariables used in the randomised tree splitting | UInt_t fUseNvars; // the number of v ariables used in the randomised tree splitting | |||
UInt_t fUseNTrainEvents; // number of rando mly picked training events used in randomised (and bagged) trees | UInt_t fUseNTrainEvents; // number of rando mly picked training events used in randomised (and bagged) trees | |||
std::vector<Double_t> fVariableImportance; // the relative importance of the different variables | std::vector<Double_t> fVariableImportance; // the relative importance of the different variables | |||
// debugging flags | // debugging flags | |||
static const Int_t fgDebugLevel = 0; // debug level determining | static const Int_t fgDebugLevel; // debug level det | |||
some printout/control plots etc. | ermining some printout/control plots etc. | |||
// for backward compatibility | ||||
Double_t fSampleSizeFraction; // relative siz | ||||
e of bagged event sample to original sample size | ||||
Bool_t fNoNegWeightsInTraining; // ignore n | ||||
egative event weights in the training | ||||
ClassDef(MethodBDT,0) // Analysis of Boosted Decision Trees | ClassDef(MethodBDT,0) // Analysis of Boosted Decision Trees | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
const std::vector<TMVA::DecisionTree*>& TMVA::MethodBDT::GetForest() const { return fForest; } | const std::vector<TMVA::DecisionTree*>& TMVA::MethodBDT::GetForest() const { return fForest; } | |||
const std::vector<TMVA::Event*>& TMVA::MethodBDT::GetTrainingEvents( ) const { return fEventSample; } | const std::vector<TMVA::Event*>& TMVA::MethodBDT::GetTrainingEvents( ) const { return fEventSample; } | |||
const std::vector<double>& TMVA::MethodBDT::GetBoostWeights() const { return fBoostWeights; } | const std::vector<double>& TMVA::MethodBDT::GetBoostWeights() const { return fBoostWeights; } | |||
#endif | #endif | |||
End of changes. 20 change blocks. | ||||
22 lines changed or deleted | 42 lines changed or added | |||
MethodBase.h | MethodBase.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodBase.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodBase.h 31574 2009-12-05 18:23:21Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodBase * | * Class : MethodBase * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Virtual base class for all MVA method * | * Virtual base class for all MVA method * | |||
skipping to change at line 44 | skipping to change at line 44 | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
// MethodBase // | // MethodBase // | |||
// // | // // | |||
// Virtual base class for all TMVA method // | // Virtual base class for all TMVA method // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#include <iosfwd> | #include <iosfwd> | |||
#include <vector> | #include <vector> | |||
#include "assert.h" | ||||
#ifndef ROOT_TMVA_IMethod | #ifndef ROOT_TMVA_IMethod | |||
#include "TMVA/IMethod.h" | #include "TMVA/IMethod.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Configurable | #ifndef ROOT_TMVA_Configurable | |||
#include "TMVA/Configurable.h" | #include "TMVA/Configurable.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Types | #ifndef ROOT_TMVA_Types | |||
#include "TMVA/Types.h" | #include "TMVA/Types.h" | |||
#endif | #endif | |||
skipping to change at line 110 | skipping to change at line 111 | |||
virtual ~MethodBase(); | virtual ~MethodBase(); | |||
// declaration, processing and checking of configuration options | // declaration, processing and checking of configuration options | |||
void SetupMethod(); | void SetupMethod(); | |||
void ProcessSetup(); | void ProcessSetup(); | |||
virtual void CheckSetup(); // may be overwritten by derived class es | virtual void CheckSetup(); // may be overwritten by derived class es | |||
// ---------- main training and testing methods --------------------- --------- | // ---------- main training and testing methods --------------------- --------- | |||
// prepare tree branch with the method's discriminating variable | // prepare tree branch with the method's discriminating variable | |||
void AddOutput( Types::ETreeType type, Types::EAnalysisTy | void AddOutput( Types::ETreeType type, Types::EAnalysisTy | |||
pe analysisType ) { | pe analysisType ); | |||
if (analysisType == Types::kRegression) AddRegressionOutput( type | ||||
); | ||||
else { AddClassifierOutput( type ); if (HasMVAPdfs()) AddClassifie | ||||
rOutputProb( type ); } | ||||
} | ||||
// performs classifier training | // performs classifier training | |||
// calls methods Train() implemented by derived classes | // calls methods Train() implemented by derived classes | |||
void TrainMethod(); | void TrainMethod(); | |||
virtual void Train() = 0; | virtual void Train() = 0; | |||
// store and retrieve time used for training | // store and retrieve time used for training | |||
void SetTrainTime( Double_t trainTime ) { fTrainTime = tr ainTime; } | void SetTrainTime( Double_t trainTime ) { fTrainTime = tr ainTime; } | |||
Double_t GetTrainTime() const { return fTrainTime; } | Double_t GetTrainTime() const { return fTrainTime; } | |||
skipping to change at line 142 | skipping to change at line 140 | |||
virtual void TestRegression( Double_t& bias, Double_t& biasT, | virtual void TestRegression( Double_t& bias, Double_t& biasT, | |||
Double_t& dev, Double_t& devT, | Double_t& dev, Double_t& devT, | |||
Double_t& rms, Double_t& rmsT, | Double_t& rms, Double_t& rmsT, | |||
Double_t& mInf, Double_t& mInfT, // mutual information | Double_t& mInf, Double_t& mInfT, // mutual information | |||
Double_t& corr, | Double_t& corr, | |||
Types::ETreeType type ); | Types::ETreeType type ); | |||
// classifier response - some methods may return a per-event error es timate (unless: *err = -1) | // classifier response - some methods may return a per-event error es timate (unless: *err = -1) | |||
virtual Double_t GetMvaValue( Double_t* err = 0 ) = 0; | virtual Double_t GetMvaValue( Double_t* err = 0 ) = 0; | |||
Double_t GetMvaValue( const TMVA::Event* const ev, Double_t* err = 0 | ||||
); | ||||
// options treatment | // options treatment | |||
virtual void Init() = 0; | virtual void Init() = 0; | |||
virtual void DeclareOptions() = 0; | virtual void DeclareOptions() = 0; | |||
virtual void ProcessOptions() = 0; | virtual void ProcessOptions() = 0; | |||
virtual void DeclareCompatibilityOptions(); // declaration of pas t options | ||||
// regression response | // regression response | |||
virtual const std::vector<Float_t>& GetRegressionValues() { | virtual const std::vector<Float_t>& GetRegressionValues() { | |||
std::vector<Float_t>* ptr = new std::vector<Float_t>(0); | std::vector<Float_t>* ptr = new std::vector<Float_t>(0); | |||
return (*ptr); | return (*ptr); | |||
} | } | |||
// probability of classifier response (mvaval) to be signal (requires "CreateMvaPdf" option set) | // probability of classifier response (mvaval) to be signal (requires "CreateMvaPdf" option set) | |||
virtual Double_t GetProba( Double_t mvaVal, Double_t ap_sig ); | virtual Double_t GetProba( Double_t mvaVal, Double_t ap_sig ); | |||
skipping to change at line 171 | skipping to change at line 172 | |||
// perfrom extra actions during the boosting at different stages | // perfrom extra actions during the boosting at different stages | |||
virtual Bool_t MonitorBoost(MethodBoost* /*booster*/) {return kFALS E;}; | virtual Bool_t MonitorBoost(MethodBoost* /*booster*/) {return kFALS E;}; | |||
// make ROOT-independent C++ class | // make ROOT-independent C++ class | |||
virtual void MakeClass( const TString& classFileName = TString("" ) ) const; | virtual void MakeClass( const TString& classFileName = TString("" ) ) const; | |||
// print help message | // print help message | |||
void PrintHelpMessage() const; | void PrintHelpMessage() const; | |||
// | ||||
// streamer methods for training information (creates "weight" files) -------- | // streamer methods for training information (creates "weight" files) -------- | |||
// meta data characterising the method | // | |||
void WriteStateToFile () const; | public: | |||
void WriteStateToStream ( std::ostream& tf, Bool_t isCl | void WriteStateToFile () const; | |||
ass = kFALSE ) const; // obsolete | void ReadStateFromFile (); | |||
void WriteStateToStream ( TFile& rf ) const; | ||||
// obsolete | ||||
void WriteStateToXML ( void* parent ) const; | ||||
void ReadStateFromFile (); | ||||
void ReadStateFromStream ( std::istream& tf ); | ||||
// obsolete | ||||
void ReadStateFromStream ( TFile& rf ); | ||||
// obsolete | ||||
void ReadStateFromXML ( void* parent ); | ||||
// the variable information | ||||
void WriteVarsToStream ( std::ostream& o, const TStrin | ||||
g& prefix = "" ) const; // obsolete | ||||
void AddVarsXMLTo ( void* parent ) const; | ||||
void AddTargetsXMLTo ( void* parent ) const; | ||||
void ReadVarsFromStream ( std::istream& istr ); | ||||
// obsolete | ||||
void ReadVariablesFromXML ( void* varnode ); | ||||
void ReadTargetsFromXML ( void* tarnode ); | ||||
protected: | ||||
// the actual "weights" | // the actual "weights" | |||
virtual void WriteWeightsToStream ( std::ostream& ) const = 0; | virtual void AddWeightsXMLTo ( void* parent ) const = 0; | |||
// obsolete | virtual void ReadWeightsFromXML ( void* wghtnode ) = 0; | |||
virtual void WriteWeightsToStream ( TFile& ) const {} | virtual void ReadWeightsFromStream( std::istream& ) = 0; // bac | |||
// obsolete | kward compatibility | |||
virtual void AddWeightsXMLTo ( void* parent ) const = 0; | virtual void ReadWeightsFromStream( TFile& ) {} // bac | |||
kward compatibility | ||||
virtual void ReadWeightsFromStream( std::istream& ) = 0; | ||||
// obsolete | ||||
virtual void ReadWeightsFromStream( TFile& ) {} | ||||
// obsolete | ||||
virtual void ReadWeightsFromXML ( void* wghtnode ) = 0; | ||||
private: | ||||
friend class MethodCategory; | ||||
friend class MethodCommittee; | ||||
friend class MethodCompositeBase; | ||||
void WriteStateToXML ( void* parent ) const; | ||||
void ReadStateFromXML ( void* parent ); | ||||
void WriteStateToStream ( std::ostream& tf ) const; // needed for | ||||
MakeClass | ||||
void WriteVarsToStream ( std::ostream& tf, const TString& prefix = | ||||
"" ) const; // needed for MakeClass | ||||
void ReadStateFromStream ( std::istream& tf ); // backward c | ||||
ompatibility | ||||
void ReadStateFromStream ( TFile& rf ); // backward c | ||||
ompatibility | ||||
// the variable information | ||||
void AddVarsXMLTo ( void* parent ) const; | ||||
void AddSpectatorsXMLTo ( void* parent ) const; | ||||
void AddTargetsXMLTo ( void* parent ) const; | ||||
void ReadVariablesFromXML ( void* varnode ); | ||||
void ReadSpectatorsFromXML( void* specnode); | ||||
void ReadTargetsFromXML ( void* tarnode ); | ||||
void ReadVarsFromStream ( std::istream& istr ); // backward c | ||||
ompatibility | ||||
public: | ||||
// ------------------------------------------------------------------ --------- | // ------------------------------------------------------------------ --------- | |||
// write evaluation histograms into target file | // write evaluation histograms into target file | |||
virtual void WriteEvaluationHistosToFile(); | virtual void WriteEvaluationHistosToFile(Types::ETreeType treetyp e); | |||
// write classifier-specific monitoring information to target file | // write classifier-specific monitoring information to target file | |||
virtual void WriteMonitoringHistosToFile() const; | virtual void WriteMonitoringHistosToFile() const; | |||
// ---------- public evaluation methods ----------------------------- --------- | // ---------- public evaluation methods ----------------------------- --------- | |||
// individual initialistion for testing of each method | // individual initialistion for testing of each method | |||
// overload this one for individual initialisation of the testing, | // overload this one for individual initialisation of the testing, | |||
// it is then called automatically within the global "TestInit" | // it is then called automatically within the global "TestInit" | |||
skipping to change at line 244 | skipping to change at line 250 | |||
Types::EMVA GetMethodType () const { return fMethodType; } | Types::EMVA GetMethodType () const { return fMethodType; } | |||
const char* GetName () const { return fMethodName.Data( ); } | const char* GetName () const { return fMethodName.Data( ); } | |||
const TString& GetTestvarName () const { return fTestvar; } | const TString& GetTestvarName () const { return fTestvar; } | |||
const TString GetProbaName () const { return fTestvar + "_Prob a"; } | const TString GetProbaName () const { return fTestvar + "_Prob a"; } | |||
TString GetWeightFileName() const; | TString GetWeightFileName() const; | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t n umberClasses, UInt_t numberTargets ) = 0; | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t n umberClasses, UInt_t numberTargets ) = 0; | |||
// build classifier name in Test tree | // build classifier name in Test tree | |||
// MVA prefix (e.g., "TMVA_") | // MVA prefix (e.g., "TMVA_") | |||
void SetTestvarPrefix( TString prefix ) { fTestvarP | void SetTestvarName ( const TString & v="" ) { fTestvar | |||
refix = prefix; } | = (v=="") ? ("MVA_" + GetMethodName()) : v; } | |||
void SetTestvarName ( const TString & v="" ) { fTestvar | ||||
= (v=="") ? (fTestvarPrefix + GetMethodName()) : v; } | ||||
// number of input variable used by classifier | // number of input variable used by classifier | |||
UInt_t GetNvar() const { return DataInfo().GetNVariab les(); } | UInt_t GetNvar() const { return DataInfo().GetNVariab les(); } | |||
UInt_t GetNVariables() const { return DataInfo().GetNVariab les(); } | UInt_t GetNVariables() const { return DataInfo().GetNVariab les(); } | |||
UInt_t GetNTargets() const { return DataInfo().GetNTarget s(); }; | UInt_t GetNTargets() const { return DataInfo().GetNTarget s(); }; | |||
// internal names and expressions of input variables | // internal names and expressions of input variables | |||
const TString& GetInputVar ( Int_t i ) const { return DataInfo().G etVariableInfo(i).GetInternalName(); } | const TString& GetInputVar ( Int_t i ) const { return DataInfo().G etVariableInfo(i).GetInternalName(); } | |||
const TString& GetInputLabel( Int_t i ) const { return DataInfo().G etVariableInfo(i).GetLabel(); } | const TString& GetInputLabel( Int_t i ) const { return DataInfo().G etVariableInfo(i).GetLabel(); } | |||
const TString& GetInputTitle( Int_t i ) const { return DataInfo().G etVariableInfo(i).GetTitle(); } | const TString& GetInputTitle( Int_t i ) const { return DataInfo().G etVariableInfo(i).GetTitle(); } | |||
skipping to change at line 273 | skipping to change at line 278 | |||
// sets the minimum requirement on the MVA output to declare an event signal-like | // sets the minimum requirement on the MVA output to declare an event signal-like | |||
Double_t GetSignalReferenceCut() const { return fSignalRefere nceCut; } | Double_t GetSignalReferenceCut() const { return fSignalRefere nceCut; } | |||
// sets the minimum requirement on the MVA output to declare an event signal-like | // sets the minimum requirement on the MVA output to declare an event signal-like | |||
void SetSignalReferenceCut( Double_t cut ) { fSignalRefer enceCut = cut; } | void SetSignalReferenceCut( Double_t cut ) { fSignalRefer enceCut = cut; } | |||
// pointers to ROOT directories | // pointers to ROOT directories | |||
TDirectory* BaseDir() const; | TDirectory* BaseDir() const; | |||
TDirectory* MethodBaseDir() const; | TDirectory* MethodBaseDir() const; | |||
void SetMethodDir ( TDirectory* methodDir ) { fBaseDir = fMethodBaseDir = methodDir; } | void SetMethodDir ( TDirectory* methodDir ) { fBaseDir = fMethodBaseDir = methodDir; } | |||
void SetBaseDir( TDirectory* methodDir ){ fBaseDir = meth | ||||
odDir; } | ||||
void SetMethodBaseDir( TDirectory* methodDir ){ fMethodBa | ||||
seDir = methodDir; } | ||||
// the TMVA version can be obtained and checked using | // the TMVA version can be obtained and checked using | |||
// if (GetTrainingTMVAVersionCode()>TMVA_VERSION(3,7,2)) {...} | // if (GetTrainingTMVAVersionCode()>TMVA_VERSION(3,7,2)) {...} | |||
// or | // or | |||
// if (GetTrainingROOTVersionCode()>ROOT_VERSION(5,15,5)) {...} | // if (GetTrainingROOTVersionCode()>ROOT_VERSION(5,15,5)) {...} | |||
UInt_t GetTrainingTMVAVersionCode() const { return fTMVAT rainingVersion; } | UInt_t GetTrainingTMVAVersionCode() const { return fTMVAT rainingVersion; } | |||
UInt_t GetTrainingROOTVersionCode() const { return fROOTT rainingVersion; } | UInt_t GetTrainingROOTVersionCode() const { return fROOTT rainingVersion; } | |||
TString GetTrainingTMVAVersionString() const; | TString GetTrainingTMVAVersionString() const; | |||
TString GetTrainingROOTVersionString() const; | TString GetTrainingROOTVersionString() const; | |||
TransformationHandler& GetTransformationHandler() { return fTr ansformation; } | TransformationHandler& GetTransformationHandler() { return fTr ansformation; } | |||
const TransformationHandler& GetTransformationHandler() const { retu rn fTransformation; } | const TransformationHandler& GetTransformationHandler() const { retu rn fTransformation; } | |||
// ---------- event accessors --------------------------------------- --------- | // ---------- event accessors --------------------------------------- --------- | |||
// returns reference to data set | // returns reference to data set | |||
DataSetInfo& DataInfo() const { return fDataSetInfo; } | DataSetInfo& DataInfo() const { return fDataSetInfo; } | |||
mutable const Event* fTmpEvent; //! temporary event when testing on | ||||
a different DataSet than the own one | ||||
// event reference and update | // event reference and update | |||
UInt_t GetNEvents () const { return Data()->GetNEvents (); } | UInt_t GetNEvents () const { return Data()->GetNEvents (); } | |||
const Event* GetEvent () const; | const Event* GetEvent () const; | |||
const Event* GetEvent ( const TMVA::Event* ev ) const; | const Event* GetEvent ( const TMVA::Event* ev ) const; | |||
const Event* GetEvent ( Long64_t ievt ) const; | const Event* GetEvent ( Long64_t ievt ) const; | |||
const Event* GetEvent ( Long64_t ievt , Types::ETreeType t ype ) const; | const Event* GetEvent ( Long64_t ievt , Types::ETreeType t ype ) const; | |||
const Event* GetTrainingEvent( Long64_t ievt ) const; | const Event* GetTrainingEvent( Long64_t ievt ) const; | |||
const Event* GetTestingEvent ( Long64_t ievt ) const; | const Event* GetTestingEvent ( Long64_t ievt ) const; | |||
const std::vector<Event*>& GetEventCollection( Types::ETreeType type ); | const std::vector<TMVA::Event*>& GetEventCollection( Types::ETreeType type ); | |||
// ---------- public auxiliary methods ------------------------------ --------- | // ---------- public auxiliary methods ------------------------------ --------- | |||
// this method is used to decide whether an event is signal- or backg round-like | // this method is used to decide whether an event is signal- or backg round-like | |||
// the reference cut "xC" is taken to be where | // the reference cut "xC" is taken to be where | |||
// Int_[-oo,xC] { PDF_S(x) dx } = Int_[xC,+oo] { PDF_B(x) dx } | // Int_[-oo,xC] { PDF_S(x) dx } = Int_[xC,+oo] { PDF_B(x) dx } | |||
virtual Bool_t IsSignalLike() { return GetMvaValue() > GetSign alReferenceCut() ? kTRUE : kFALSE; } | virtual Bool_t IsSignalLike() { return GetMvaValue() > GetSign alReferenceCut() ? kTRUE : kFALSE; } | |||
DataSet* Data() const { return DataInfo().GetDataSet(); } | DataSet* Data() const { return DataInfo().GetDataSet(); } | |||
Bool_t HasMVAPdfs() const { return fHasMVAPdfs; } | Bool_t HasMVAPdfs() const { return fHasMVAPdfs; } | |||
virtual void SetAnalysisType( Types::EAnalysisType type ) { fAnalysisType = type; } | virtual void SetAnalysisType( Types::EAnalysisType type ) { fAnalysisType = type; } | |||
Types::EAnalysisType GetAnalysisType() const { return fAnalysisType; } | Types::EAnalysisType GetAnalysisType() const { return fAnalysisType; } | |||
Bool_t DoRegression() const { return fAnalysisType == Types::kRegression; } | Bool_t DoRegression() const { return fAnalysisType == Types::kRegression; } | |||
// setter method for suppressing writing to XML and writing of standa | ||||
lone classes | ||||
void DisableWriting(Bool_t setter){ fDisableWriting | ||||
= setter; } | ||||
protected: | protected: | |||
// ---------- protected acccessors ---------------------------------- --------- | // ---------- protected acccessors ---------------------------------- --------- | |||
//TDirectory* LocalTDir() const { return Data().LocalRootDir(); } | //TDirectory* LocalTDir() const { return Data().LocalRootDir(); } | |||
// weight file name and directory (given by global config variable) | // weight file name and directory (given by global config variable) | |||
void SetWeightFileName( TString ); | void SetWeightFileName( TString ); | |||
const TString& GetWeightFileDir() const { return fFileDir; } | const TString& GetWeightFileDir() const { return fFileDir; } | |||
skipping to change at line 366 | skipping to change at line 378 | |||
// static pointer to this object - required for ROOT finder (to be so lved differently) | // static pointer to this object - required for ROOT finder (to be so lved differently) | |||
static MethodBase* GetThisBase() { return fgThisBase; } | static MethodBase* GetThisBase() { return fgThisBase; } | |||
// some basic statistical analysis | // some basic statistical analysis | |||
void Statistics( Types::ETreeType treeType, const TString& theVarName , | void Statistics( Types::ETreeType treeType, const TString& theVarName , | |||
Double_t&, Double_t&, Double_t&, | Double_t&, Double_t&, Double_t&, | |||
Double_t&, Double_t&, Double_t& ); | Double_t&, Double_t&, Double_t& ); | |||
// if TRUE, write weights only to text files | // if TRUE, write weights only to text files | |||
Bool_t TxtWeightsOnly() const { return fTxtWeightsOnly; } | Bool_t TxtWeightsOnly() const { return kTRUE; } | |||
protected: | protected: | |||
// access to event information that needs method-specific information | // access to event information that needs method-specific information | |||
Float_t GetTWeight( const Event* ev ) const { | Float_t GetTWeight( const Event* ev ) const { | |||
return (fIgnoreNegWeightsInTraining && (ev->GetWeight() < 0)) ? 0. : ev->GetWeight(); | return (fIgnoreNegWeightsInTraining && (ev->GetWeight() < 0)) ? 0. : ev->GetWeight(); | |||
} | } | |||
Bool_t IsConstructedFromWeightFile() const { return fConstr | ||||
uctedFromWeightFile; } | ||||
public: | ||||
virtual void SetCurrentEvent( Long64_t ievt ) const { | ||||
Data()->SetCurrentEvent(ievt); | ||||
} | ||||
private: | private: | |||
// ---------- private definitions ----------------------------------- --------- | // ---------- private definitions ----------------------------------- --------- | |||
// Initialisation | // Initialisation | |||
void InitBase(); | void InitBase(); | |||
void DeclareBaseOptions(); | void DeclareBaseOptions(); | |||
void ProcessBaseOptions(); | void ProcessBaseOptions(); | |||
// used in efficiency computation | // used in efficiency computation | |||
enum ECutOrientation { kNegative = -1, kPositive = +1 }; | enum ECutOrientation { kNegative = -1, kPositive = +1 }; | |||
skipping to change at line 410 | skipping to change at line 429 | |||
Double_t GetEffForRoot ( Double_t ); // implementation | Double_t GetEffForRoot ( Double_t ); // implementation | |||
// used for file parsing | // used for file parsing | |||
Bool_t GetLine( std::istream& fin, char * buf ); | Bool_t GetLine( std::istream& fin, char * buf ); | |||
// fill test tree with classification or regression results | // fill test tree with classification or regression results | |||
virtual void AddClassifierOutput ( Types::ETreeType type ); | virtual void AddClassifierOutput ( Types::ETreeType type ); | |||
virtual void AddClassifierOutputProb( Types::ETreeType type ); | virtual void AddClassifierOutputProb( Types::ETreeType type ); | |||
virtual void AddRegressionOutput ( Types::ETreeType type ); | virtual void AddRegressionOutput ( Types::ETreeType type ); | |||
// ========== class members ========================================= | ||||
========= | ||||
private: | private: | |||
void AddInfoItem( void* gi, const TString& name, const TS tring& value) const; | void AddInfoItem( void* gi, const TString& name, const TS tring& value) const; | |||
void CreateVariableTransforms(const TString& trafoDefinit | ||||
ion ); | ||||
// ========== class members ========================================= | ||||
========= | ||||
protected: | protected: | |||
// direct accessors | // direct accessors | |||
Ranking* fRanking; // pointer to ranking ob ject (created by derived classifiers) | Ranking* fRanking; // pointer to ranking ob ject (created by derived classifiers) | |||
std::vector<TString>* fInputVars; // vector of input varia bles used in MVA | std::vector<TString>* fInputVars; // vector of input varia bles used in MVA | |||
// histogram binning | // histogram binning | |||
Int_t fNbins; // number of bins in rep resentative histograms | Int_t fNbins; // number of bins in rep resentative histograms | |||
Int_t fNbinsH; // number of bins in eva luation histograms | Int_t fNbinsH; // number of bins in eva luation histograms | |||
Types::EAnalysisType fAnalysisType; // method-mode : true -- > regression, false --> classification | Types::EAnalysisType fAnalysisType; // method-mode : true -- > regression, false --> classification | |||
std::vector<Float_t>* fRegressionReturnVal; // holds the return-valu e for the regression | std::vector<Float_t>* fRegressionReturnVal; // holds the return-valu e for the regression | |||
Bool_t IsConstructedFromWeightFile() const { return fConstr | ||||
uctedFromWeightFile; } | ||||
private: | private: | |||
// MethodCuts redefines some of the evaluation variables and histogra ms -> must access private members | // MethodCuts redefines some of the evaluation variables and histogra ms -> must access private members | |||
friend class MethodCuts; | friend class MethodCuts; | |||
Bool_t fDisableWriting; //! set to true in order to s | ||||
uppress writing to XML | ||||
// data sets | // data sets | |||
DataSetInfo& fDataSetInfo; //! the data set information ( sometimes needed) | DataSetInfo& fDataSetInfo; //! the data set information ( sometimes needed) | |||
Double_t fSignalReferenceCut; // minimum requirement on the MVA output to declare an event signal-like | Double_t fSignalReferenceCut; // minimum requirement on the MVA output to declare an event signal-like | |||
Types::ESBType fVariableTransformType; // this is the event type ( sig or bgd) assumed for variable transform | Types::ESBType fVariableTransformType; // this is the event type ( sig or bgd) assumed for variable transform | |||
// naming and versioning | // naming and versioning | |||
TString fJobName; // name of job -> user defined , appears in weight files | TString fJobName; // name of job -> user defined , appears in weight files | |||
TString fMethodName; // name of the method (set in derived class) | TString fMethodName; // name of the method (set in derived class) | |||
Types::EMVA fMethodType; // type of method (set in deri ved class) | Types::EMVA fMethodType; // type of method (set in deri ved class) | |||
TString fTestvarPrefix; // 'MVA_' prefix of MVA variab le | ||||
TString fTestvar; // variable used in evaluation , etc (mostly the MVA) | TString fTestvar; // variable used in evaluation , etc (mostly the MVA) | |||
UInt_t fTMVATrainingVersion; // TMVA version used for train ing | UInt_t fTMVATrainingVersion; // TMVA version used for train ing | |||
UInt_t fROOTTrainingVersion; // ROOT version used for train ing | UInt_t fROOTTrainingVersion; // ROOT version used for train ing | |||
Bool_t fNormalise; // normalise input variables | ||||
Bool_t fConstructedFromWeightFile; // is it obtained from w eight file? | Bool_t fConstructedFromWeightFile; // is it obtained from w eight file? | |||
// Directory structure: fMethodBaseDir/fBaseDir | // Directory structure: fMethodBaseDir/fBaseDir | |||
// where the first directory name is defined by the method type | // where the first directory name is defined by the method type | |||
// and the second is user supplied (the title given in Factory::BookM ethod()) | // and the second is user supplied (the title given in Factory::BookM ethod()) | |||
TDirectory* fBaseDir; // base directory for the inst ance, needed to know where to jump back from localDir | TDirectory* fBaseDir; // base directory for the inst ance, needed to know where to jump back from localDir | |||
mutable TDirectory* fMethodBaseDir; // base directory for the meth od | mutable TDirectory* fMethodBaseDir; // base directory for the meth od | |||
TString fParentDir; // method parent name, like bo oster name | TString fParentDir; // method parent name, like bo oster name | |||
skipping to change at line 492 | skipping to change at line 510 | |||
// basic statistics quantities of MVA | // basic statistics quantities of MVA | |||
Double_t fMeanS; // mean (signal) | Double_t fMeanS; // mean (signal) | |||
Double_t fMeanB; // mean (background) | Double_t fMeanB; // mean (background) | |||
Double_t fRmsS; // RMS (signal) | Double_t fRmsS; // RMS (signal) | |||
Double_t fRmsB; // RMS (background) | Double_t fRmsB; // RMS (background) | |||
Double_t fXmin; // minimum (signal and backgro und) | Double_t fXmin; // minimum (signal and backgro und) | |||
Double_t fXmax; // maximum (signal and backgro und) | Double_t fXmax; // maximum (signal and backgro und) | |||
// variable preprocessing | // variable preprocessing | |||
Bool_t fUseDecorr; // kept for backward c ompatibility | ||||
TString fVarTransformString; // labels variable tra nsform method | TString fVarTransformString; // labels variable tra nsform method | |||
TString fVariableTransformTypeString; // labels variable tra nsform type | ||||
TransformationHandler fTransformation; // the list of transfo rmations | TransformationHandler fTransformation; // the list of transfo rmations | |||
// help and verbosity | // help and verbosity | |||
Bool_t fVerbose; // verbose flag | Bool_t fVerbose; // verbose flag | |||
TString fVerbosityLevelString; // verbosity level (user inp ut string) | TString fVerbosityLevelString; // verbosity level (user inp ut string) | |||
EMsgType fVerbosityLevel; // verbosity level | EMsgType fVerbosityLevel; // verbosity level | |||
Bool_t fHelp; // help flag | Bool_t fHelp; // help flag | |||
Bool_t fHasMVAPdfs; // MVA Pdfs are created for this classifier | Bool_t fHasMVAPdfs; // MVA Pdfs are created for this classifier | |||
Bool_t fIgnoreNegWeightsInTraining;// If true, events with negative weights are not used in training | Bool_t fIgnoreNegWeightsInTraining;// If true, events with negative weights are not used in training | |||
protected: | protected: | |||
Bool_t IgnoreEventsWithNegWeightsInTraining() const { retur n fIgnoreNegWeightsInTraining; } | Bool_t IgnoreEventsWithNegWeightsInTraining() const { retur n fIgnoreNegWeightsInTraining; } | |||
Bool_t fTxtWeightsOnly; // if TRUE, write weights on ly to text files | ||||
// for signal/background | // for signal/background | |||
UInt_t fSignalClass; // index of the Signal-class | UInt_t fSignalClass; // index of the Signal-class | |||
UInt_t fBackgroundClass; // index of the Background-c lass | UInt_t fBackgroundClass; // index of the Background-c lass | |||
private: | private: | |||
// timing variables | // timing variables | |||
Double_t fTrainTime; // for timing measurements | Double_t fTrainTime; // for timing measurements | |||
Double_t fTestTime; // for timing measurements | Double_t fTestTime; // for timing measurements | |||
skipping to change at line 532 | skipping to change at line 547 | |||
// orientation of cut: depends on signal and background mean values | // orientation of cut: depends on signal and background mean values | |||
ECutOrientation fCutOrientation; // +1 if Sig>Bkg, -1 otherwise | ECutOrientation fCutOrientation; // +1 if Sig>Bkg, -1 otherwise | |||
// for root finder | // for root finder | |||
TSpline1* fSplRefS; // helper splines for RootFind er (signal) | TSpline1* fSplRefS; // helper splines for RootFind er (signal) | |||
TSpline1* fSplRefB; // helper splines for RootFind er (background) | TSpline1* fSplRefB; // helper splines for RootFind er (background) | |||
TSpline1* fSplTrainRefS; // helper splines for RootFind er (signal) | TSpline1* fSplTrainRefS; // helper splines for RootFind er (signal) | |||
TSpline1* fSplTrainRefB; // helper splines for RootFind er (background) | TSpline1* fSplTrainRefB; // helper splines for RootFind er (background) | |||
mutable std::vector<const std::vector<Event*>*> fEventCollections; // if the method needs the complete event-collection, the transformed event c oll. ist stored here. | mutable std::vector<const std::vector<TMVA::Event*>*> fEventCollectio ns; // if the method needs the complete event-collection, the transformed e vent coll. ist stored here. | |||
public: | public: | |||
Bool_t fSetupCompleted; // is method setup | Bool_t fSetupCompleted; // is method setup | |||
private: | private: | |||
// this carrier | // this carrier | |||
static MethodBase* fgThisBase; // this pointer | static MethodBase* fgThisBase; // this pointer | |||
// ===== depriciated options, kept for backward compatibility ===== | ||||
private: | ||||
Bool_t fNormalise; // normalise input var | ||||
iables | ||||
Bool_t fUseDecorr; // synonymous for deco | ||||
rrelation | ||||
TString fVariableTransformTypeString; // labels variable tra | ||||
nsform type | ||||
Bool_t fTxtWeightsOnly; // if TRUE, write weig | ||||
hts only to text files | ||||
Int_t fNbinsMVAPdf; // number of bins used | ||||
in histogram that creates PDF | ||||
Int_t fNsmoothMVAPdf; // number of times a h | ||||
istogram is smoothed before creating the PDF | ||||
protected: | protected: | |||
ClassDef(MethodBase,0) // Virtual base class for all TMVA method | ClassDef(MethodBase,0) // Virtual base class for all TMVA method | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
// ========== INLINE FUNCTIONS ============================================ ============= | // ========== INLINE FUNCTIONS ============================================ ============= | |||
//_______________________________________________________________________ | //_______________________________________________________________________ | |||
inline const TMVA::Event* TMVA::MethodBase::GetEvent( const TMVA::Event* ev ) const | inline const TMVA::Event* TMVA::MethodBase::GetEvent( const TMVA::Event* ev ) const | |||
{ | { | |||
return GetTransformationHandler().Transform(ev); | return GetTransformationHandler().Transform(ev); | |||
} | } | |||
inline const TMVA::Event* TMVA::MethodBase::GetEvent() const | inline const TMVA::Event* TMVA::MethodBase::GetEvent() const | |||
{ | { | |||
return GetTransformationHandler().Transform(Data()->GetEvent()); | if(fTmpEvent) | |||
return GetTransformationHandler().Transform(fTmpEvent); | ||||
else | ||||
return GetTransformationHandler().Transform(Data()->GetEvent()); | ||||
} | } | |||
inline const TMVA::Event* TMVA::MethodBase::GetEvent( Long64_t ievt ) const | inline const TMVA::Event* TMVA::MethodBase::GetEvent( Long64_t ievt ) const | |||
{ | { | |||
assert(fTmpEvent==0); | ||||
return GetTransformationHandler().Transform(Data()->GetEvent(ievt)); | return GetTransformationHandler().Transform(Data()->GetEvent(ievt)); | |||
} | } | |||
inline const TMVA::Event* TMVA::MethodBase::GetEvent( Long64_t ievt, Types: :ETreeType type ) const | inline const TMVA::Event* TMVA::MethodBase::GetEvent( Long64_t ievt, Types: :ETreeType type ) const | |||
{ | { | |||
assert(fTmpEvent==0); | ||||
return GetTransformationHandler().Transform(Data()->GetEvent(ievt, type) ); | return GetTransformationHandler().Transform(Data()->GetEvent(ievt, type) ); | |||
} | } | |||
inline const std::vector<TMVA::Event*>& TMVA::MethodBase::GetEventCollectio | ||||
n( Types::ETreeType type) | ||||
{ | ||||
if (GetTransformationHandler().GetTransformationList().GetEntries() <= 0 | ||||
) { | ||||
return (Data()->GetEventCollection(type)); | ||||
} | ||||
Int_t idx = Data()->TreeIndex(type); | ||||
if (fEventCollections.at(idx) == 0) { | ||||
fEventCollections.at(idx) = &(Data()->GetEventCollection(type)); | ||||
fEventCollections.at(idx) = GetTransformationHandler().CalcTransforma | ||||
tions(*(fEventCollections.at(idx)),kTRUE); | ||||
} | ||||
return *(fEventCollections.at(idx)); | ||||
} | ||||
inline const TMVA::Event* TMVA::MethodBase::GetTrainingEvent( Long64_t ievt ) const | inline const TMVA::Event* TMVA::MethodBase::GetTrainingEvent( Long64_t ievt ) const | |||
{ | { | |||
assert(fTmpEvent==0); | ||||
return GetEvent(ievt, Types::kTraining); | return GetEvent(ievt, Types::kTraining); | |||
} | } | |||
inline const TMVA::Event* TMVA::MethodBase::GetTestingEvent( Long64_t ievt ) const | inline const TMVA::Event* TMVA::MethodBase::GetTestingEvent( Long64_t ievt ) const | |||
{ | { | |||
assert(fTmpEvent==0); | ||||
return GetEvent(ievt, Types::kTesting); | return GetEvent(ievt, Types::kTesting); | |||
} | } | |||
//_______________________________________________________________________ | ||||
inline TString TMVA::MethodBase::GetTrainingTMVAVersionString() const | ||||
{ | ||||
// calculates the TMVA version string from the training version code on | ||||
the fly | ||||
UInt_t a = GetTrainingTMVAVersionCode() & 0xff0000; a>>=16; | ||||
UInt_t b = GetTrainingTMVAVersionCode() & 0x00ff00; b>>=8; | ||||
UInt_t c = GetTrainingTMVAVersionCode() & 0x0000ff; | ||||
return TString(Form("%i.%i.%i",a,b,c)); | ||||
} | ||||
//_______________________________________________________________________ | ||||
inline TString TMVA::MethodBase::GetTrainingROOTVersionString() const | ||||
{ | ||||
// calculates the ROOT version string from the training version code on | ||||
the fly | ||||
UInt_t a = GetTrainingROOTVersionCode() & 0xff0000; a>>=16; | ||||
UInt_t b = GetTrainingROOTVersionCode() & 0x00ff00; b>>=8; | ||||
UInt_t c = GetTrainingROOTVersionCode() & 0x0000ff; | ||||
return TString(Form("%i.%02i/%02i",a,b,c)); | ||||
} | ||||
#endif | #endif | |||
End of changes. 36 change blocks. | ||||
104 lines changed or deleted | 104 lines changed or added | |||
MethodBayesClassifier.h | MethodBayesClassifier.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodBayesClassifier.h 29122 2009-06-22 06:51:30Z br un $ | // @(#)root/tmva $Id: MethodBayesClassifier.h 31458 2009-11-30 13:58:20Z st elzer $ | |||
// Author: Abhishek Narain | // Author: Abhishek Narain | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodBayesClassifier * | * Class : MethodBayesClassifier * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Bayesian Classifier * | * Bayesian Classifier * | |||
skipping to change at line 69 | skipping to change at line 69 | |||
const TString& theWeightFile, | const TString& theWeightFile, | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
virtual ~MethodBayesClassifier( void ); | virtual ~MethodBayesClassifier( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
void ReadWeightsFromXML ( void* /*wghtnode*/ ) {} | void ReadWeightsFromXML ( void* /*wghtnode*/ ) {} | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
void Init( void ); | void Init( void ); | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 1 lines changed or added | |||
MethodBoost.h | MethodBoost.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodBoost.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodBoost.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss,Or Cohen | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss,Or Cohen | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodCompositeBase * | * Class : MethodCompositeBase * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Virtual base class for all MVA method * | * Virtual base class for all MVA method * | |||
skipping to change at line 127 | skipping to change at line 127 | |||
//training a single classifier | //training a single classifier | |||
void SingleTrain(); | void SingleTrain(); | |||
//calculating a boosting weight from the classifier, storing it in th e next one | //calculating a boosting weight from the classifier, storing it in th e next one | |||
void SingleBoost(); | void SingleBoost(); | |||
//writing the monitoring histograms and tree to a file | //writing the monitoring histograms and tree to a file | |||
void WriteMonitoringHistosToFile( void ) const; | void WriteMonitoringHistosToFile( void ) const; | |||
// write evaluation histograms into target file | // write evaluation histograms into target file | |||
virtual void WriteEvaluationHistosToFile(); | virtual void WriteEvaluationHistosToFile(Types::ETreeType treetype); | |||
// performs the MethodBase testing + testing of each boosted classifi er | // performs the MethodBase testing + testing of each boosted classifi er | |||
virtual void TestClassification(); | virtual void TestClassification(); | |||
//finding the MVA to cut between sig and bgd according to fMVACutPerc ,fMVACutType | //finding the MVA to cut between sig and bgd according to fMVACutPerc ,fMVACutType | |||
void FindMVACut(); | void FindMVACut(); | |||
//setting all the boost weights to 1 | //setting all the boost weights to 1 | |||
void ResetBoostWeights(); | void ResetBoostWeights(); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodCFMlpANN.h | MethodCFMlpANN.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodCFMlpANN.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodCFMlpANN.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodCFMlpANN * | * Class : MethodCFMlpANN * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Interface for Clermond-Ferrand artificial neural network. * | * Interface for Clermond-Ferrand artificial neural network. * | |||
skipping to change at line 123 | skipping to change at line 123 | |||
const TString& theWeightFile, | const TString& theWeightFile, | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
virtual ~MethodCFMlpANN( void ); | virtual ~MethodCFMlpANN( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t /*numberTargets*/ ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t /*numberTargets*/ ); | |||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
void ReadWeightsFromXML( void* wghtnode ); | void ReadWeightsFromXML( void* wghtnode ); | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
// data accessors for external functions | // data accessors for external functions | |||
Double_t GetData ( Int_t isel, Int_t ivar ) const { return (*fData)(i sel, ivar); } | Double_t GetData ( Int_t isel, Int_t ivar ) const { return (*fData)(i sel, ivar); } | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 1 lines changed or added | |||
MethodCommittee.h | MethodCommittee.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodCommittee.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodCommittee.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodCommittee * | * Class : MethodCommittee * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Boosting * | * Boosting * | |||
skipping to change at line 81 | skipping to change at line 81 | |||
virtual ~MethodCommittee( void ); | virtual ~MethodCommittee( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
// overloaded members from MethodBase | // overloaded members from MethodBase | |||
void WriteStateToFile() const; | void WriteStateToFile() const; | |||
// the training | // the training | |||
void Train(); | void Train(); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
void ReadWeightsFromXML ( void* /*wghtnode*/ ) {} | void ReadWeightsFromXML ( void* /*wghtnode*/ ) {} | |||
// write method specific histos to target file | // write method specific histos to target file | |||
void WriteMonitoringHistosToFile( void ) const; | void WriteMonitoringHistosToFile( void ) const; | |||
// calculate the MVA value | // calculate the MVA value | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 1 lines changed or added | |||
MethodCompositeBase.h | MethodCompositeBase.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodCompositeBase.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodCompositeBase.h 31458 2009-11-30 13:58:20Z stel zer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss,Or Cohen | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss,Or Cohen | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodCompositeBase * | * Class : MethodCompositeBase * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Virtual base class for all MVA method * | * Virtual base class for all MVA method * | |||
skipping to change at line 67 | skipping to change at line 67 | |||
const TString& methodTitle, | const TString& methodTitle, | |||
DataSetInfo& theData, | DataSetInfo& theData, | |||
const TString& theOption = "", | const TString& theOption = "", | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
MethodCompositeBase( Types::EMVA methodType, | MethodCompositeBase( Types::EMVA methodType, | |||
DataSetInfo& dsi, | DataSetInfo& dsi, | |||
const TString& weightFile, | const TString& weightFile, | |||
TDirectory* theBaseDir = 0 ); | TDirectory* theBaseDir = 0 ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
void ReadWeightsFromXML( void* wghtnode ); | void ReadWeightsFromXML( void* wghtnode ); | |||
// calculate the MVA value combining all classifiers according to thi er fMethodWeight | // calculate the MVA value combining all classifiers according to thi er fMethodWeight | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
// performs classifier training | // performs classifier training | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 1 lines changed or added | |||
MethodCuts.h | MethodCuts.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodCuts.h 29246 2009-06-26 16:50:00Z brun $ | // @(#)root/tmva $Id: MethodCuts.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Matt Jachowski, Peter Speckmayer, Helge Voss, K ai Voss | // Author: Andreas Hoecker, Matt Jachowski, Peter Speckmayer, Helge Voss, K ai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodCuts * | * Class : MethodCuts * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Multivariate optimisation of signal efficiency for given background * | * Multivariate optimisation of signal efficiency for given background * | |||
skipping to change at line 99 | skipping to change at line 99 | |||
// this is a workaround which is necessary since CINT is not capable of handling dynamic casts | // this is a workaround which is necessary since CINT is not capable of handling dynamic casts | |||
static MethodCuts* DynamicCast( IMethod* method ) { return dynamic_ca st<MethodCuts*>(method); } | static MethodCuts* DynamicCast( IMethod* method ) { return dynamic_ca st<MethodCuts*>(method); } | |||
virtual ~MethodCuts( void ); | virtual ~MethodCuts( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
void WriteWeightsToStream ( std::ostream & o ) const; | ||||
void AddWeightsXMLTo ( void* parent ) const; | void AddWeightsXMLTo ( void* parent ) const; | |||
void ReadWeightsFromStream( std::istream & i ); | void ReadWeightsFromStream( std::istream & i ); | |||
void ReadWeightsFromXML ( void* wghtnode ); | void ReadWeightsFromXML ( void* wghtnode ); | |||
// calculate the MVA value (for CUTs this is just a dummy) | // calculate the MVA value (for CUTs this is just a dummy) | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
// write method specific histos to target file | // write method specific histos to target file | |||
void WriteMonitoringHistosToFile( void ) const; | void WriteMonitoringHistosToFile( void ) const; | |||
skipping to change at line 182 | skipping to change at line 180 | |||
// - kUseEventSelection: computes efficiencies from given data sample | // - kUseEventSelection: computes efficiencies from given data sample | |||
// - kUsePDFs : creates smoothed PDFs from data samples, and | // - kUsePDFs : creates smoothed PDFs from data samples, and | |||
// uses this to compute efficiencies | // uses this to compute efficiencies | |||
enum EEffMethod { kUseEventSelection = 0, | enum EEffMethod { kUseEventSelection = 0, | |||
kUsePDFs }; | kUsePDFs }; | |||
// improve the Monte Carlo by providing some additional information | // improve the Monte Carlo by providing some additional information | |||
enum EFitParameters { kNotEnforced = 0, | enum EFitParameters { kNotEnforced = 0, | |||
kForceMin, | kForceMin, | |||
kForceMax, | kForceMax, | |||
kForceSmart, | kForceSmart }; | |||
kForceVerySmart }; | ||||
// general | // general | |||
TString fFitMethodS; // chosen fit method (st ring) | TString fFitMethodS; // chosen fit method (st ring) | |||
EFitMethodType fFitMethod; // chosen fit method | EFitMethodType fFitMethod; // chosen fit method | |||
TString fEffMethodS; // chosen efficiency cal culation method (string) | TString fEffMethodS; // chosen efficiency cal culation method (string) | |||
EEffMethod fEffMethod; // chosen efficiency cal culation method | EEffMethod fEffMethod; // chosen efficiency cal culation method | |||
std::vector<EFitParameters>* fFitParams; // vector for series of fit methods | std::vector<EFitParameters>* fFitParams; // vector for series of fit methods | |||
Double_t fTestSignalEff; // used to test optimize d signal efficiency | Double_t fTestSignalEff; // used to test optimize d signal efficiency | |||
Double_t fEffSMin; // used to test optimize d signal efficiency | Double_t fEffSMin; // used to test optimize d signal efficiency | |||
Double_t fEffSMax; // used to test optimize d signal efficiency | Double_t fEffSMax; // used to test optimize d signal efficiency | |||
End of changes. 4 change blocks. | ||||
5 lines changed or deleted | 2 lines changed or added | |||
MethodDT.h | MethodDT.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodDT.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodDT.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodDT (Boosted Decision Trees) * | * Class : MethodDT (Boosted Decision Trees) * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Analysis of Boosted Decision Trees * | * Analysis of Boosted Decision Trees * | |||
skipping to change at line 79 | skipping to change at line 79 | |||
MethodDT( DataSetInfo& dsi, | MethodDT( DataSetInfo& dsi, | |||
const TString& theWeightFile, | const TString& theWeightFile, | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
virtual ~MethodDT( void ); | virtual ~MethodDT( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
void ReadWeightsFromXML ( void* /*wghtnode*/ ) {} | void ReadWeightsFromXML ( void* /*wghtnode*/ ) {} | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
// the option handling methods | // the option handling methods | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 1 lines changed or added | |||
MethodFDA.h | MethodFDA.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodFDA.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodFDA.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Peter Speckmayer | // Author: Andreas Hoecker, Peter Speckmayer | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodFDA * | * Class : MethodFDA * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Function discriminant analysis (FDA). This simple classifier * | * Function discriminant analysis (FDA). This simple classifier * | |||
skipping to change at line 44 | skipping to change at line 44 | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
// MethodFDA // | // MethodFDA // | |||
// // | // // | |||
// Function discriminant analysis (FDA). This simple classifier // | // Function discriminant analysis (FDA). This simple classifier // | |||
// fits any user-defined TFormula (via option configuration string) to // | // fits any user-defined TFormula (via option configuration string) to // | |||
// the training data by requiring a formula response of 1 (0) to signal // | // the training data by requiring a formula response of 1 (0) to signal // | |||
// (background) events. The parameter fitting is done via the abstract // | // (background) events. The parameter fitting is done via the abstract // | |||
// class FitterBase, featuring Monte Carlo sampling, Genetic // | // class FitterBase, featuring Monte Carlo sampling, Genetic // | |||
// Algorithm, Simulated Annealing, MINUIT and combinations of these. // | // Algorithm, Simulated Annealing, MINUIT and combinations of these. // | |||
// | // // | |||
// Can compute one-dimensional regression // | ||||
// | ||||
// Can compute one-dimensional regression | ||||
// | ||||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#ifndef ROOT_TMVA_MethodBase | #ifndef ROOT_TMVA_MethodBase | |||
#include "TMVA/MethodBase.h" | #include "TMVA/MethodBase.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_IFitterTarget | #ifndef ROOT_TMVA_IFitterTarget | |||
#include "TMVA/IFitterTarget.h" | #include "TMVA/IFitterTarget.h" | |||
#endif | #endif | |||
skipping to change at line 85 | skipping to change at line 85 | |||
const TString& theWeightFile, | const TString& theWeightFile, | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
virtual ~MethodFDA( void ); | virtual ~MethodFDA( void ); | |||
Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t numberClass es, UInt_t numberTargets ); | Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t numberClass es, UInt_t numberTargets ); | |||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
void WriteWeightsToStream ( std::ostream & o ) const; | ||||
void AddWeightsXMLTo ( void* parent ) const; | void AddWeightsXMLTo ( void* parent ) const; | |||
void ReadWeightsFromStream( std::istream & i ); | void ReadWeightsFromStream( std::istream & i ); | |||
void ReadWeightsFromXML ( void* wghtnode ); | void ReadWeightsFromXML ( void* wghtnode ); | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
std::vector<Float_t>& GetRegressionValues(); | std::vector<Float_t>& GetRegressionValues(); | |||
void Init( void ); | void Init( void ); | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking() { return 0; } | const Ranking* CreateRanking() { return 0; } | |||
Double_t EstimatorFunction( std::vector<Double_t>& ); | Double_t EstimatorFunction( std::vector<Double_t>& ); | |||
// no check of options at this place | // no check of options at this place | |||
void CheckSetup() {} | void CheckSetup() {} | |||
skipping to change at line 150 | skipping to change at line 148 | |||
std::vector<Interval*> fParRange; // ranges of parameters | std::vector<Interval*> fParRange; // ranges of parameters | |||
std::vector<Double_t> fBestPars; // the pars that optimise (minimise) the estimator | std::vector<Double_t> fBestPars; // the pars that optimise (minimise) the estimator | |||
TString fFitMethod; // estimator optimisation method | TString fFitMethod; // estimator optimisation method | |||
TString fConverger; // fitmethod uses fConver ger as intermediate step to converge into local minimas | TString fConverger; // fitmethod uses fConver ger as intermediate step to converge into local minimas | |||
FitterBase* fFitter; // the fitter used in the training | FitterBase* fFitter; // the fitter used in the training | |||
IFitterTarget* fConvergerFitter; // intermediate fitter | IFitterTarget* fConvergerFitter; // intermediate fitter | |||
// sum of weights (this should become centrally available through the dataset) | // sum of weights (this should become centrally available through the dataset) | |||
Double_t fSumOfWeightsSig; // sum of weights (signal ) | Double_t fSumOfWeightsSig; // sum of weights (signal ) | |||
Double_t fSumOfWeightsBkg; // sum of weights (backgr ound) | Double_t fSumOfWeightsBkg; // sum of weights (backgr ound) | |||
Double_t fSumOfWeights; // sum of weights | Double_t fSumOfWeights; // sum of weights | |||
ClassDef(MethodFDA,0) // Function Discriminant Analysis | ClassDef(MethodFDA,0) // Function Discriminant Analysis | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif // MethodFDA_H | #endif // MethodFDA_H | |||
End of changes. 6 change blocks. | ||||
10 lines changed or deleted | 5 lines changed or added | |||
MethodFisher.h | MethodFisher.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodFisher.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodFisher.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Xavier Prudent, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Xavier Prudent, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodFisher * | * Class : MethodFisher * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Analysis of Fisher discriminant (Fisher or Mahalanobis approach) * | * Analysis of Fisher discriminant (Fisher or Mahalanobis approach) * | |||
skipping to change at line 79 | skipping to change at line 79 | |||
const TString& theWeightFile, | const TString& theWeightFile, | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
virtual ~MethodFisher( void ); | virtual ~MethodFisher( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to stream | // write weights to stream | |||
void WriteWeightsToStream( std::ostream & o) const; | ||||
void AddWeightsXMLTo ( void* parent ) const; | void AddWeightsXMLTo ( void* parent ) const; | |||
// read weights from stream | // read weights from stream | |||
void ReadWeightsFromStream( std::istream & i ); | void ReadWeightsFromStream( std::istream & i ); | |||
void ReadWeightsFromXML ( void* wghtnode ); | void ReadWeightsFromXML ( void* wghtnode ); | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
enum EFisherMethod { kFisher, kMahalanobis }; | enum EFisherMethod { kFisher, kMahalanobis }; | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 1 lines changed or added | |||
MethodHMatrix.h | MethodHMatrix.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodHMatrix.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodHMatrix.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodHMatrix * | * Class : MethodHMatrix * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* H-Matrix method, which is implemented as a simple comparison of * | * H-Matrix method, which is implemented as a simple comparison of * | |||
skipping to change at line 83 | skipping to change at line 83 | |||
const TString& theWeightFile, | const TString& theWeightFile, | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
virtual ~MethodHMatrix(); | virtual ~MethodHMatrix(); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
// training method | // training method | |||
void Train(); | void Train(); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
void ReadWeightsFromXML( void* wghtnode ); | void ReadWeightsFromXML( void* wghtnode ); | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking() { return 0; } | const Ranking* CreateRanking() { return 0; } | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 1 lines changed or added | |||
MethodKNN.h | MethodKNN.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodKNN.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodKNN.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Rustem Ospanov | // Author: Rustem Ospanov | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodKNN * | * Class : MethodKNN * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Analysis of k-nearest neighbor * | * Analysis of k-nearest neighbor * | |||
skipping to change at line 83 | skipping to change at line 83 | |||
virtual ~MethodKNN( void ); | virtual ~MethodKNN( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
void Train( void ); | void Train( void ); | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
const std::vector<Float_t>& GetRegressionValues(); | const std::vector<Float_t>& GetRegressionValues(); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
void WriteWeightsToStream(std::ostream& o) const; | ||||
void WriteWeightsToStream(TFile& rf) const; | void WriteWeightsToStream(TFile& rf) const; | |||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
void ReadWeightsFromXML( void* wghtnode ); | void ReadWeightsFromXML( void* wghtnode ); | |||
void ReadWeightsFromStream(std::istream& istr); | void ReadWeightsFromStream(std::istream& istr); | |||
void ReadWeightsFromStream(TFile &rf); | void ReadWeightsFromStream(TFile &rf); | |||
const Ranking* CreateRanking(); | const Ranking* CreateRanking(); | |||
protected: | protected: | |||
skipping to change at line 109 | skipping to change at line 107 | |||
void MakeClassSpecific( std::ostream&, const TString& ) const; | void MakeClassSpecific( std::ostream&, const TString& ) const; | |||
// get help message text | // get help message text | |||
void GetHelpMessage() const; | void GetHelpMessage() const; | |||
private: | private: | |||
// the option handling methods | // the option handling methods | |||
void DeclareOptions(); | void DeclareOptions(); | |||
void ProcessOptions(); | void ProcessOptions(); | |||
void DeclareCompatibilityOptions(); | ||||
// default initialisation called by all constructors | // default initialisation called by all constructors | |||
void Init( void ); | void Init( void ); | |||
// create kd-tree (binary tree) structure | // create kd-tree (binary tree) structure | |||
void MakeKNN( void ); | void MakeKNN( void ); | |||
// polynomial and Gaussian kernel weight function | // polynomial and Gaussian kernel weight function | |||
Double_t PolnKernel(Double_t value) const; | Double_t PolnKernel(Double_t value) const; | |||
Double_t GausKernel(const kNN::Event &event_knn, const kNN::Event &ev ent, const std::vector<Double_t> &svec) const; | Double_t GausKernel(const kNN::Event &event_knn, const kNN::Event &ev ent, const std::vector<Double_t> &svec) const; | |||
skipping to change at line 150 | skipping to change at line 149 | |||
Bool_t fTrim; // set equal number of signal and background events | Bool_t fTrim; // set equal number of signal and background events | |||
Bool_t fUseKernel; // use polynomial kernel weight function | Bool_t fUseKernel; // use polynomial kernel weight function | |||
Bool_t fUseWeight; // use weights to count kNN | Bool_t fUseWeight; // use weights to count kNN | |||
Bool_t fUseLDA; // use local linear discriminat analysis to c ompute MVA | Bool_t fUseLDA; // use local linear discriminat analysis to c ompute MVA | |||
kNN::EventVec fEvent; //! (untouched) events used for learning | kNN::EventVec fEvent; //! (untouched) events used for learning | |||
LDA fLDA; //! Experimental feature for local knn analys is | LDA fLDA; //! Experimental feature for local knn analys is | |||
// for backward compatibility | ||||
Int_t fTreeOptDepth; // number of binary tree levels used for opti | ||||
mization | ||||
ClassDef(MethodKNN,0) // k Nearest Neighbour classifier | ClassDef(MethodKNN,0) // k Nearest Neighbour classifier | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif // MethodKNN | #endif // MethodKNN | |||
End of changes. 5 change blocks. | ||||
3 lines changed or deleted | 6 lines changed or added | |||
MethodLD.h | MethodLD.h | |||
---|---|---|---|---|
skipping to change at line 13 | skipping to change at line 13 | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodLD * | * Class : MethodLD * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Linear Discriminant (Simple Linear Regression) * | * Linear Discriminant (Simple Linear Regression) * | |||
* * | * * | |||
* Authors (alphabetical): * | * Authors (alphabetical): * | |||
* Krzysztof Danielowski <danielow@cern.ch> - IFJ PAN & AGH, Poland | * Krzysztof Danielowski <danielow@cern.ch> - IFJ PAN & AGH, Poland | |||
* | * | |||
* Kamil Kraszewski <kalq@cern.ch> - IFJ PAN & UJ, Poland | * Kamil Kraszewski <kalq@cern.ch> - IFJ PAN & UJ, Poland | |||
* | * | |||
* Maciej Kruk <mkruk@cern.ch> - IFJ PAN & AGH, Poland * | * Maciej Kruk <mkruk@cern.ch> - IFJ PAN & AGH, Poland * | |||
* Peter Speckmayer <peter.speckmayer@cern.ch> - CERN, Switzerland * | * Peter Speckmayer <peter.speckmayer@cern.ch> - CERN, Switzerla nd * | |||
* Jan Therhaag <therhaag@physik.uni-bonn.de> - Uni Bonn, Ger many * | * Jan Therhaag <therhaag@physik.uni-bonn.de> - Uni Bonn, Ger many * | |||
* * | * * | |||
* Copyright (c) 2008: * | * Copyright (c) 2008: * | |||
* CERN, Switzerland * | * CERN, Switzerland * | |||
* PAN, Poland * | * PAN, Poland * | |||
* * | * * | |||
* Redistribution and use in source and binary forms, with or without * | * Redistribution and use in source and binary forms, with or without * | |||
* modification, are permitted according to the terms listed in LICENSE * | * modification, are permitted according to the terms listed in LICENSE * | |||
* (http://tmva.sourceforge.net/LICENSE) * | * (http://tmva.sourceforge.net/LICENSE) * | |||
* * | * * | |||
************************************************************************** ********/ | ************************************************************************** ********/ | |||
#ifndef ROOT_TMVA_MethodLD | #ifndef ROOT_TMVA_MethodLD | |||
#define ROOT_TMVA_MethodLD | #define ROOT_TMVA_MethodLD | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
// MethodLD // | // MethodLD // | |||
// // | // // | |||
// Linear Discriminant | // Linear Discriminant // | |||
// | // Can compute multidimensional output for regression // | |||
// Can compute multidimensional output for regression | // (although it computes every dimension separately) // | |||
// | ||||
// (although it computes every dimension separately) | ||||
// | ||||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#include <vector> | #include <vector> | |||
#ifndef ROOT_TMVA_MethodBase | #ifndef ROOT_TMVA_MethodBase | |||
#include "TMVA/MethodBase.h" | #include "TMVA/MethodBase.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMatrixDfwd | #ifndef ROOT_TMatrixDfwd | |||
#include "TMatrixDfwd.h" | #include "TMatrixDfwd.h" | |||
skipping to change at line 83 | skipping to change at line 83 | |||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
// calculate the Regression value | // calculate the Regression value | |||
virtual const std::vector<Float_t>& GetRegressionValues(); | virtual const std::vector<Float_t>& GetRegressionValues(); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
void WriteWeightsToStream ( std::ostream & o ) const; | ||||
void AddWeightsXMLTo ( void* parent ) const; | void AddWeightsXMLTo ( void* parent ) const; | |||
void ReadWeightsFromStream( std::istream & i ); | void ReadWeightsFromStream( std::istream & i ); | |||
void ReadWeightsFromXML ( void* wghtnode ); | void ReadWeightsFromXML ( void* wghtnode ); | |||
const Ranking* CreateRanking(); | const Ranking* CreateRanking(); | |||
void DeclareOptions(); | void DeclareOptions(); | |||
void ProcessOptions(); | void ProcessOptions(); | |||
protected: | protected: | |||
void MakeClassSpecific( std::ostream&, const TString& ) const; | void MakeClassSpecific( std::ostream&, const TString& ) const; | |||
void GetHelpMessage() const; | void GetHelpMessage() const; | |||
private: | private: | |||
Int_t fNRegOut; // size of the output | Int_t fNRegOut; // size of the output | |||
TMatrixD *fSumMatx; // Sum of coordinates product matrix | TMatrixD *fSumMatx; // Sum of coordinates product matrix | |||
TMatrixD *fSumValMatx; // Sum of values multiplied by coord inates | TMatrixD *fSumValMatx; // Sum of values multiplied by coord inates | |||
TMatrixD *fCoeffMatx; // Matrix of coefficients | TMatrixD *fCoeffMatx; // Matrix of coefficients | |||
std::vector< std::vector<Double_t>* > *fLDCoeff; // LD coefficients | std::vector< std::vector<Double_t>* > *fLDCoeff; // LD coefficients | |||
// default initialisation called by all constructors | // default initialisation called by all constructors | |||
void Init( void ); | void Init( void ); | |||
// Initialization and allocation of matrices | // Initialization and allocation of matrices | |||
End of changes. 7 change blocks. | ||||
15 lines changed or deleted | 10 lines changed or added | |||
MethodLikelihood.h | MethodLikelihood.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodLikelihood.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodLikelihood.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodLikelihood * | * Class : MethodLikelihood * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Likelihood analysis ("non-parametric approach") * | * Likelihood analysis ("non-parametric approach") * | |||
skipping to change at line 82 | skipping to change at line 82 | |||
virtual ~MethodLikelihood(); | virtual ~MethodLikelihood(); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, | |||
UInt_t numberClasses, UInt_t numberTa rgets ); | UInt_t numberClasses, UInt_t numberTa rgets ); | |||
// training method | // training method | |||
void Train(); | void Train(); | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void WriteWeightsToStream( TFile& rf ) const; | void WriteWeightsToStream( TFile& rf ) const; | |||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
void ReadWeightsFromStream( TFile& istr ); | void ReadWeightsFromStream( TFile& istr ); | |||
void ReadWeightsFromXML( void* wghtnode ); | void ReadWeightsFromXML( void* wghtnode ); | |||
// calculate the MVA value | // calculate the MVA value | |||
// the argument is used for internal ranking tests | // the argument is used for internal ranking tests | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
skipping to change at line 104 | skipping to change at line 103 | |||
// write method specific histos to target file | // write method specific histos to target file | |||
void WriteMonitoringHistosToFile() const; | void WriteMonitoringHistosToFile() const; | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking(); | const Ranking* CreateRanking(); | |||
virtual void WriteOptionsToStream ( ostream& o, const TString& prefix ) const; | virtual void WriteOptionsToStream ( ostream& o, const TString& prefix ) const; | |||
protected: | protected: | |||
void DeclareCompatibilityOptions(); | ||||
// make ROOT-independent C++ class for classifier response (classifie r-specific implementation) | // make ROOT-independent C++ class for classifier response (classifie r-specific implementation) | |||
void MakeClassSpecific( std::ostream&, const TString& ) const; | void MakeClassSpecific( std::ostream&, const TString& ) const; | |||
// header and auxiliary classes | // header and auxiliary classes | |||
void MakeClassSpecificHeader( std::ostream&, const TString& = "" ) co nst; | void MakeClassSpecificHeader( std::ostream&, const TString& = "" ) co nst; | |||
// get help message text | // get help message text | |||
void GetHelpMessage() const; | void GetHelpMessage() const; | |||
private: | private: | |||
skipping to change at line 140 | skipping to change at line 141 | |||
std::vector<TH1*>* fHistBgd; // background PDFs ( histograms) | std::vector<TH1*>* fHistBgd; // background PDFs ( histograms) | |||
std::vector<TH1*>* fHistSig_smooth; // signal PDFs (smoo thed histograms) | std::vector<TH1*>* fHistSig_smooth; // signal PDFs (smoo thed histograms) | |||
std::vector<TH1*>* fHistBgd_smooth; // background PDFs ( smoothed histograms) | std::vector<TH1*>* fHistBgd_smooth; // background PDFs ( smoothed histograms) | |||
PDF* fDefaultPDFLik; // pdf that contains default definitions | PDF* fDefaultPDFLik; // pdf that contains default definitions | |||
std::vector<PDF*>* fPDFSig; // list of PDFs (sig nal) | std::vector<PDF*>* fPDFSig; // list of PDFs (sig nal) | |||
std::vector<PDF*>* fPDFBgd; // list of PDFs (bac kground) | std::vector<PDF*>* fPDFBgd; // list of PDFs (bac kground) | |||
// default initialisation called by all constructors | // 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 pe | ||||
r bin; used to calculate fNbins | ||||
Int_t* fAverageEvtPerBinVarS; // average events pe | ||||
r bin; used to calculate fNbins | ||||
Int_t* fAverageEvtPerBinVarB; // average events pe | ||||
r bin; used to calculate fNbins | ||||
TString fBorderMethodString; // the method to tak | ||||
e care about "border" effects (string) | ||||
Float_t fKDEfineFactor; // fine tuning facto | ||||
r for Adaptive KDE | ||||
TString fKDEiterString; // Number of iterati | ||||
ons (string) | ||||
TString fKDEtypeString; // Kernel type to us | ||||
e for KDE (string) | ||||
TString* fInterpolateString; // which interpolati | ||||
on method used for reference histograms (individual for each variable) | ||||
ClassDef(MethodLikelihood,0) // Likelihood analysis ("non-parametric approach") | ClassDef(MethodLikelihood,0) // Likelihood analysis ("non-parametric approach") | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif // MethodLikelihood_H | #endif // MethodLikelihood_H | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 27 lines changed or added | |||
MethodMLP.h | MethodMLP.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodMLP.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodMLP.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Matt Jachowski | // Author: Andreas Hoecker, Matt Jachowski | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodMLP * | * Class : MethodMLP * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* ANN Multilayer Perceptron class for the discrimination of signal * | * ANN Multilayer Perceptron class for the discrimination of signal * | |||
skipping to change at line 134 | skipping to change at line 134 | |||
// the option handling methods | // the option handling methods | |||
void DeclareOptions(); | void DeclareOptions(); | |||
void ProcessOptions(); | void ProcessOptions(); | |||
// general helper functions | // general helper functions | |||
void Train( Int_t nEpochs ); | void Train( Int_t nEpochs ); | |||
void Init(); | void Init(); | |||
void InitializeLearningRates(); // although this is only needed b y backprop | void InitializeLearningRates(); // although this is only needed b y backprop | |||
// used as a measure of success in all minimization techniques | // used as a measure of success in all minimization techniques | |||
Double_t CalculateEstimator( Types::ETreeType treeType = Types::kTrai ning ); | Double_t CalculateEstimator( Types::ETreeType treeType = Types::kTrai ning, Int_t iEpoch = -1 ); | |||
// BFGS functions | // BFGS functions | |||
void BFGSMinimize( Int_t nEpochs ); | void BFGSMinimize( Int_t nEpochs ); | |||
void SetGammaDelta( TMatrixD &Gamma, TMatrixD &Delta, std::vector <Double_t> &Buffer ); | void SetGammaDelta( TMatrixD &Gamma, TMatrixD &Delta, std::vector <Double_t> &Buffer ); | |||
void SteepestDir( TMatrixD &Dir ); | void SteepestDir( TMatrixD &Dir ); | |||
Bool_t GetHessian( TMatrixD &Hessian, TMatrixD &Gamma, TMatrixD &De lta ); | Bool_t GetHessian( TMatrixD &Hessian, TMatrixD &Gamma, TMatrixD &De lta ); | |||
void SetDir( TMatrixD &Hessian, TMatrixD &Dir ); | void SetDir( TMatrixD &Hessian, TMatrixD &Dir ); | |||
Double_t DerivDir( TMatrixD &Dir ); | Double_t DerivDir( TMatrixD &Dir ); | |||
Bool_t LineSearch( TMatrixD &Dir, std::vector<Double_t> &Buffer ); | Bool_t LineSearch( TMatrixD &Dir, std::vector<Double_t> &Buffer ); | |||
void ComputeDEDw(); | void ComputeDEDw(); | |||
skipping to change at line 169 | skipping to change at line 169 | |||
void CalculateNeuronDeltas(); | void CalculateNeuronDeltas(); | |||
void UpdateSynapses(); | void UpdateSynapses(); | |||
void AdjustSynapseWeights(); | void AdjustSynapseWeights(); | |||
// faster backpropagation | // faster backpropagation | |||
void TrainOneEventFast( Int_t ievt, Float_t*& branchVar, Int_t& t ype ); | void TrainOneEventFast( Int_t ievt, Float_t*& branchVar, Int_t& t ype ); | |||
// genetic algorithm functions | // genetic algorithm functions | |||
void GeneticMinimize(); | void GeneticMinimize(); | |||
// the neuronal network can be initialized after the analysis type ha | ||||
s been set. | ||||
void SetAnalysisType( Types::EAnalysisType type ); | ||||
#ifdef MethodMLP_UseMinuit__ | #ifdef MethodMLP_UseMinuit__ | |||
// minuit functions -- commented out because they rely on a static po inter | // minuit functions -- commented out because they rely on a static po inter | |||
void MinuitMinimize(); | void MinuitMinimize(); | |||
static MethodMLP* GetThisPtr() { return fgThis; } | static MethodMLP* GetThisPtr() { return fgThis; } | |||
static void IFCN( Int_t& npars, Double_t* grad, Double_t &f, Double_t * fitPars, Int_t ifl ); | static void IFCN( Int_t& npars, Double_t* grad, Double_t &f, Double_t * fitPars, Int_t ifl ); | |||
void FCN( Int_t& npars, Double_t* grad, Double_t &f, Double_t* fitPar s, Int_t ifl ); | void FCN( Int_t& npars, Double_t* grad, Double_t &f, Double_t* fitPar s, Int_t ifl ); | |||
#endif | #endif | |||
// general | // general | |||
ETrainingMethod fTrainingMethod; // method of training, BP or GA | ETrainingMethod fTrainingMethod; // method of training, BP or GA | |||
skipping to change at line 202 | skipping to change at line 199 | |||
Double_t fTau; // line search variable | Double_t fTau; // line search variable | |||
Int_t fResetStep; // reset time (how often we clear he ssian matrix) | Int_t fResetStep; // reset time (how often we clear he ssian matrix) | |||
// backpropagation variable | // backpropagation variable | |||
Double_t fLearnRate; // learning rate for synapse weight adjustments | Double_t fLearnRate; // learning rate for synapse weight adjustments | |||
Double_t fDecayRate; // decay rate for above learning rat e | Double_t fDecayRate; // decay rate for above learning rat e | |||
EBPTrainingMode fBPMode; // backprop learning mode (sequentia l or batch) | EBPTrainingMode fBPMode; // backprop learning mode (sequentia l or batch) | |||
TString fBpModeS; // backprop learning mode option str ing (sequential or batch) | TString fBpModeS; // backprop learning mode option str ing (sequential or batch) | |||
Int_t fBatchSize; // batch size, only matters if in ba tch learning mode | Int_t fBatchSize; // batch size, only matters if in ba tch learning mode | |||
Int_t fTestRate; // test for overtraining performed a t each #th epochs | Int_t fTestRate; // test for overtraining performed a t each #th epochs | |||
Bool_t fEpochMon; // create and fill epoch-wise monito ring histograms (makes outputfile big!) | ||||
// genetic algorithm variables | // genetic algorithm variables | |||
Int_t fGA_nsteps; // GA settings: number of steps | Int_t fGA_nsteps; // GA settings: number of steps | |||
Int_t fGA_preCalc; // GA settings: number of pre-calc s teps | Int_t fGA_preCalc; // GA settings: number of pre-calc s teps | |||
Int_t fGA_SC_steps; // GA settings: SC_steps | Int_t fGA_SC_steps; // GA settings: SC_steps | |||
Int_t fGA_SC_rate; // GA settings: SC_rate | Int_t fGA_SC_rate; // GA settings: SC_rate | |||
Double_t fGA_SC_factor; // GA settings: SC_factor | Double_t fGA_SC_factor; // GA settings: SC_factor | |||
#ifdef MethodMLP_UseMinuit__ | #ifdef MethodMLP_UseMinuit__ | |||
// minuit variables -- commented out because they rely on a static po inter | // minuit variables -- commented out because they rely on a static po inter | |||
End of changes. 4 change blocks. | ||||
6 lines changed or deleted | 3 lines changed or added | |||
MethodPDEFoam.h | MethodPDEFoam.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodPDEFoam.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: MethodPDEFoam.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Tancredi Carli, Dominik Dannheim, Alexander Voigt | // Author: Tancredi Carli, Dominik Dannheim, Alexander Voigt | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate Data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate Data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodPDEFoam * | * Class : MethodPDEFoam * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* The PDEFoam method is an extension of the PDERS method, which divid es * | * The PDEFoam method is an extension of the PDERS method, which divid es * | |||
skipping to change at line 103 | skipping to change at line 103 | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
// training methods | // training methods | |||
void Train( void ); | void Train( void ); | |||
void TrainMonoTargetRegression( void ); // Regression output: one value | void TrainMonoTargetRegression( void ); // Regression output: one value | |||
void TrainMultiTargetRegression( void ); // Regression output: any number of values | void TrainMultiTargetRegression( void ); // Regression output: any number of values | |||
void TrainSeparatedClassification( void ); // Classification: one foa m for Sig, one for Bg | void TrainSeparatedClassification( void ); // Classification: one foa m for Sig, one for Bg | |||
void TrainUnifiedClassification( void ); // Classification: one foa m for Signal and Bg | void TrainUnifiedClassification( void ); // Classification: one foa m for Signal and Bg | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to stream | // write weights to stream | |||
void WriteWeightsToStream( std::ostream & o) const; | ||||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
// read weights from stream | // read weights from stream | |||
void ReadWeightsFromStream( std::istream & i ); | void ReadWeightsFromStream( std::istream & i ); | |||
void ReadWeightsFromXML ( void* wghtnode ); | void ReadWeightsFromXML ( void* wghtnode ); | |||
// write/read pure foams to/from xml file | // write/read pure foams to/from file | |||
void WriteFoamsToXMLFile() const; | void WriteFoamsToFile() const; | |||
void ReadFoamsFromXMLFile(); | void ReadFoamsFromFile(); | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
// regression procedure | // regression procedure | |||
virtual const std::vector<Float_t>& GetRegressionValues(); | virtual const std::vector<Float_t>& GetRegressionValues(); | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking() { return 0; } | const Ranking* CreateRanking() { return 0; } | |||
skipping to change at line 213 | skipping to change at line 211 | |||
// options to be used | // options to be used | |||
Bool_t fSigBgSeparated; // Separate Sig and Bg, or not | Bool_t fSigBgSeparated; // Separate Sig and Bg, or not | |||
Double_t fFrac; // Fraction used for calc of Xmin, Xm ax | Double_t fFrac; // Fraction used for calc of Xmin, Xm ax | |||
Double_t fDiscrErrCut; // cut on discrimant error | Double_t fDiscrErrCut; // cut on discrimant error | |||
Int_t fVolFrac; // inverse volume fraction (used for density calculation during buildup) | Int_t fVolFrac; // inverse volume fraction (used for density calculation during buildup) | |||
Float_t fVolFracInv; // volume fraction (used for density calculation during buildup) | Float_t fVolFracInv; // volume fraction (used for density calculation during buildup) | |||
Int_t fnCells; // Number of Cells (1000) | Int_t fnCells; // Number of Cells (1000) | |||
Int_t fnActiveCells; // Number of active cells | Int_t fnActiveCells; // Number of active cells | |||
Int_t fnSampl; // Number of MC events per cell in bu ild-up (1000) | Int_t fnSampl; // Number of MC events per cell in bu ild-up (1000) | |||
Int_t fnBin; // Number of bins in build-up (100) | Int_t fnBin; // Number of bins in build-up (100) | |||
Int_t fOptRej; // Wted events for OptRej=0; wt=1 for | ||||
OptRej=1 (default) | ||||
Int_t fOptDrive; // (D=2) Option, type of Drive =1,2 f | ||||
or Variance,WtMax driven reduction | ||||
Int_t fEvPerBin; // Maximum events (equiv.) per bin in buid-up (1000) | Int_t fEvPerBin; // Maximum events (equiv.) per bin in buid-up (1000) | |||
Int_t fChat; // Chat level | ||||
Float_t fNSigBgRatio; // ratio of number of signal events / bg events (training) | Float_t fNSigBgRatio; // ratio of number of signal events / bg events (training) | |||
Bool_t fCompress; // compress XML file | Bool_t fCompress; // compress foam output file | |||
Bool_t fMultiTargetRegression; // do regression on multible ta rgets | Bool_t fMultiTargetRegression; // do regression on multible ta rgets | |||
UInt_t fNmin; // minimal number of events in cell n ecessary to split cell" | UInt_t fNmin; // minimal number of events in cell n ecessary to split cell" | |||
Bool_t fCutNmin; // Grabbing cell with maximal RMS to split next (TFoam default) | Bool_t fCutNmin; // Grabbing cell with maximal RMS to split next (TFoam default) | |||
Double_t fRMSmin; // minimal number of events in cell n ecessary to split cell" | Double_t fRMSmin; // minimal number of events in cell n ecessary to split cell" | |||
Bool_t fCutRMSmin; // Grabbing cell with maximal RMS to split next (TFoam default) | Bool_t fCutRMSmin; // Grabbing cell with maximal RMS to split next (TFoam default) | |||
TString fKernelStr; // Kernel for GetMvaValue() (option s tring) | TString fKernelStr; // Kernel for GetMvaValue() (option s tring) | |||
EKernel fKernel; // Kernel for GetMvaValue() | EKernel fKernel; // Kernel for GetMvaValue() | |||
TString fTargetSelectionStr; // method of selecting the target (only mulit target regr.) | TString fTargetSelectionStr; // method of selecting the target (only mulit target regr.) | |||
ETargetSelection fTargetSelection; // method of selecting the target (only mulit target regr.) | ETargetSelection fTargetSelection; // method of selecting the target (only mulit target regr.) | |||
std::vector<Double_t> Xmin, Xmax; // range for histograms and foams | std::vector<Double_t> Xmin, Xmax; // range for histograms and foams | |||
// foams and densities | // foams and densities | |||
PDEFoam* foam[FOAM_NUMBER]; // foam[0]=signal, if Sig and BG are Sepe rated; else foam[0]=signal/bg | PDEFoam* foam[FOAM_NUMBER]; // foam[0]=signal, if Sig and BG are Sepe rated; else foam[0]=signal/bg | |||
// foam[1]=background, if Sig and BG are Seperated; else it is not used | // foam[1]=background, if Sig and BG are Seperated; else it is not used | |||
TRandom3 *PseRan; // random generator for PDEFoams | ||||
// default initialisation called by all constructors | // default initialisation called by all constructors | |||
void Init( void ); | void Init( void ); | |||
ClassDef(MethodPDEFoam,0) // Analysis of PDEFoam discriminant (PDEFoa m or Mahalanobis approach) | ClassDef(MethodPDEFoam,0) // Analysis of PDEFoam discriminant (PDEFoa m or Mahalanobis approach) | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif // MethodPDEFoam_H | #endif // MethodPDEFoam_H | |||
End of changes. 8 change blocks. | ||||
13 lines changed or deleted | 5 lines changed or added | |||
MethodPDERS.h | MethodPDERS.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodPDERS.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodPDERS.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Yair Mahalalel, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Yair Mahalalel, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodPDERS * | * Class : MethodPDERS * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Multidimensional Likelihood using the "Probability density estimato r * | * Multidimensional Likelihood using the "Probability density estimato r * | |||
skipping to change at line 89 | skipping to change at line 89 | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
virtual ~MethodPDERS( void ); | virtual ~MethodPDERS( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void WriteWeightsToStream( TFile& rf ) const; | void WriteWeightsToStream( TFile& rf ) const; | |||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
void ReadWeightsFromStream( TFile& istr ); | void ReadWeightsFromStream( TFile& istr ); | |||
void ReadWeightsFromXML( void* wghtnode ); | void ReadWeightsFromXML( void* wghtnode ); | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 1 lines changed or added | |||
MethodRuleFit.h | MethodRuleFit.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodRuleFit.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodRuleFit.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Fredrik Tegenfeldt | // Author: Fredrik Tegenfeldt | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodRuleFit * | * Class : MethodRuleFit * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Friedman's RuleFit method * | * Friedman's RuleFit method * | |||
skipping to change at line 78 | skipping to change at line 78 | |||
const TString& theWeightFile, | const TString& theWeightFile, | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
virtual ~MethodRuleFit( void ); | virtual ~MethodRuleFit( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t /*numberTargets*/ ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t /*numberTargets*/ ); | |||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void AddWeightsXMLTo ( void* parent ) const; | void AddWeightsXMLTo ( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
void ReadWeightsFromXML ( void* wghtnode ); | void ReadWeightsFromXML ( void* wghtnode ); | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
// write method specific histos to target file | // write method specific histos to target file | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 1 lines changed or added | |||
MethodSVM.h | MethodSVM.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodSVM.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: MethodSVM.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Marcin Wolter, Andrzej Zemla | // Author: Marcin Wolter, Andrzej Zemla | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodSVM * | * Class : MethodSVM * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Support Vector Machine * | * Support Vector Machine * | |||
skipping to change at line 80 | skipping to change at line 80 | |||
MethodSVM( DataSetInfo& theData, const TString& theWeightFile, TDirec tory* theTargetDir = NULL ); | MethodSVM( DataSetInfo& theData, const TString& theWeightFile, TDirec tory* theTargetDir = NULL ); | |||
virtual ~MethodSVM( void ); | virtual ~MethodSVM( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( std::ostream& o ) const; | ||||
void WriteWeightsToStream( TFile& fout ) const; | void WriteWeightsToStream( TFile& fout ) const; | |||
void AddWeightsXMLTo ( void* parent ) const; | void AddWeightsXMLTo ( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( std::istream& istr ); | void ReadWeightsFromStream( std::istream& istr ); | |||
void ReadWeightsFromStream( TFile& fFin ); | void ReadWeightsFromStream( TFile& fFin ); | |||
void ReadWeightsFromXML ( void* wghtnode ); | void ReadWeightsFromXML ( void* wghtnode ); | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0 ); | |||
skipping to change at line 114 | skipping to change at line 112 | |||
// make ROOT-independent C++ class for classifier response (classifie r-specific implementation) | // make ROOT-independent C++ class for classifier response (classifie r-specific implementation) | |||
void MakeClassSpecific( std::ostream&, const TString& ) const; | void MakeClassSpecific( std::ostream&, const TString& ) const; | |||
// get help message text | // get help message text | |||
void GetHelpMessage() const; | void GetHelpMessage() const; | |||
private: | private: | |||
// the option handling methods | // the option handling methods | |||
void DeclareOptions(); | void DeclareOptions(); | |||
void DeclareCompatibilityOptions(); | ||||
void ProcessOptions(); | void ProcessOptions(); | |||
Float_t fCost; // cost value | Float_t fCost; // cost value | |||
Float_t fTolerance; // tolerance parameter | Float_t fTolerance; // tolerance parameter | |||
UInt_t fMaxIter; // max number of iteration | UInt_t fMaxIter; // max number of iteration | |||
UShort_t fNSubSets; // nr of subsets, de | UShort_t fNSubSets; // nr of subsets, default 1 | |||
fault 1 | ||||
Float_t fBparm; // free plane coefficient | Float_t fBparm; // free plane coefficient | |||
Float_t fGamma; // RBF Kernel parameter | Float_t fGamma; // RBF Kernel parameter | |||
SVWorkingSet* fWgSet; // svm working set | ||||
SVWorkingSet* fWgSet; // svm working set | std::vector<TMVA::SVEvent*>* fInputData; // vector of training | |||
std::vector<TMVA::SVEvent*>* fInputData; // vector of trainin | data in SVM format | |||
g data in SVM format | std::vector<TMVA::SVEvent*>* fSupportVectors; // contains support ve | |||
std::vector<TMVA::SVEvent*>* fSupportVectors; // contains support | ctors | |||
vectors | SVKernelFunction* fSVKernelFunction; // kernel function | |||
SVKernelFunction* fSVKernelFunction; // kernel function | ||||
TVectorD* fMinVars; // for normalization //is i | ||||
TVectorD* fMinVars; // for normalization | t still needed?? | |||
//is it still needed?? | TVectorD* fMaxVars; // for normalization //is i | |||
TVectorD* fMaxVars; // for normalization | t still needed?? | |||
//is it still needed?? | ||||
// for backward compatibility | ||||
TString fTheKernel; // kernel name | ||||
Float_t fDoubleSigmaSquared; // for RBF Kernel | ||||
Int_t fOrder; // for Polynomial Kernel ( polynomi | ||||
al order ) | ||||
Float_t fTheta; // for Sigmoidal Kernel | ||||
Float_t fKappa; // for Sigmoidal Kernel | ||||
ClassDef(MethodSVM,0) // Support Vector Machine | ClassDef(MethodSVM,0) // Support Vector Machine | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif // MethodSVM_H | #endif // MethodSVM_H | |||
End of changes. 7 change blocks. | ||||
21 lines changed or deleted | 25 lines changed or added | |||
MethodSeedDistance.h | MethodSeedDistance.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodSeedDistance.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodSeedDistance.h 31574 2009-12-05 18:23:21Z stelz er $ | |||
// Author: Andreas Hoecker, Peter Speckmayer | // Author: Andreas Hoecker, Peter Speckmayer | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodSeedDistance * | * Class : MethodSeedDistance * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* * | * * | |||
skipping to change at line 71 | skipping to change at line 71 | |||
const TString& theWeightFile, | const TString& theWeightFile, | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
virtual ~MethodSeedDistance( void ); | virtual ~MethodSeedDistance( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
// training method | // training method | |||
virtual void Train( void ); | virtual void Train( void ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
void ReadWeightsFromXML ( void* /*wghtnode*/ ) {} | void ReadWeightsFromXML ( void* /*wghtnode*/ ) {} | |||
// calculate the MVA value | // calculate the MVA value | |||
virtual Double_t GetMvaValue( Double_t* err = 0 ); | virtual Double_t GetMvaValue( Double_t* err = 0 ); | |||
void Init( void ); | void Init( void ); | |||
skipping to change at line 140 | skipping to change at line 138 | |||
std::vector<Double_t> fMetricPars; // | std::vector<Double_t> fMetricPars; // | |||
std::vector<Double_t> fPars; // the pars that optimise (mi nimise) the estimator | std::vector<Double_t> fPars; // the pars that optimise (mi nimise) the estimator | |||
Int_t fDataSeeds; | Int_t fDataSeeds; | |||
Int_t fBackSeeds; | Int_t fBackSeeds; | |||
TString fMetricType; | TString fMetricType; | |||
Bool_t fPow2Estimator; | Bool_t fPow2Estimator; | |||
Int_t fNPars; // number of parameters | Int_t fNPars; // number of parameters | |||
std::vector<Interval*> fParRange; // ranges of parameters | std::vector<TMVA::Interval*> fParRange; // ranges of parame ters | |||
TString fFitMethod; // estimator optimisation method | TString fFitMethod; // estimator optimisation method | |||
TString fConverger; // fitmethod uses fConver ger as intermediate step to converge into local minimas | TString fConverger; // fitmethod uses fConver ger as intermediate step to converge into local minimas | |||
FitterBase* fFitter; // the fitter used in the training | FitterBase* fFitter; // the fitter used in the training | |||
IFitterTarget* fIntermediateFitter; // intermediate fitter | IFitterTarget* fIntermediateFitter; // intermediate fitter | |||
// speed up access to training events by caching | // speed up access to training events by caching | |||
std::vector<const Event*> fEventsSig; // event cache (sig nal) | std::vector<const Event*> fEventsSig; // event cache (sig nal) | |||
std::vector<const Event*> fEventsBkg; // event cache (bac kground) | std::vector<const Event*> fEventsBkg; // event cache (bac kground) | |||
// sum of weights (this should become centrally available through the dataset) | // sum of weights (this should become centrally available through the dataset) | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 2 lines changed or added | |||
MethodTMlpANN.h | MethodTMlpANN.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodTMlpANN.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: MethodTMlpANN.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MethodTMlpANN * | * Class : MethodTMlpANN * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Implementation of interface for Root-integrated artificial neural * | * Implementation of interface for Root-integrated artificial neural * | |||
skipping to change at line 72 | skipping to change at line 72 | |||
const TString& theWeightFile, | const TString& theWeightFile, | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
virtual ~MethodTMlpANN( void ); | virtual ~MethodTMlpANN( void ); | |||
virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | virtual Bool_t HasAnalysisType( Types::EAnalysisType type, UInt_t num berClasses, UInt_t numberTargets ); | |||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::WriteWeightsToStream; | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
void WriteWeightsToStream( ostream& o ) const; | ||||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
void ReadWeightsFromXML(void* wghtnode); | void ReadWeightsFromXML(void* wghtnode); | |||
// calculate the MVA value ... | // calculate the MVA value ... | |||
// - here it is just a dummy, as it is done in the overwritten | // - here it is just a dummy, as it is done in the overwritten | |||
// - PrepareEvaluationtree... ugly but necessary due to the strucure | // - PrepareEvaluationtree... ugly but necessary due to the strucure | |||
// of TMultiLayerPercepton in ROOT grr... :-( | // of TMultiLayerPercepton in ROOT grr... :-( | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 1 lines changed or added | |||
MinimTransformFunction.h | MinimTransformFunction.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: MinimTransformFunction.h 29104 2009-06-19 13:41:0 5Z moneta $ | // @(#)root/mathmore:$Id: MinimTransformFunction.h 31763 2009-12-10 10:40:2 1Z moneta $ | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class MinimTransformFunction | // Header file for class MinimTransformFunction | |||
#ifndef ROOT_Math_MinimTransformFunction | #ifndef ROOT_Math_MinimTransformFunction | |||
skipping to change at line 119 | skipping to change at line 119 | |||
MinimTransformFunction & operator= ( const MinimTransformFunction & ) { | MinimTransformFunction & operator= ( const MinimTransformFunction & ) { | |||
return *this; | return *this; | |||
} | } | |||
private: | private: | |||
mutable std::vector<double> fX; // internal cached of exte rnal values | mutable std::vector<double> fX; // internal cached of exte rnal values | |||
std::vector<MinimizerVariable> fVariables; // vector of variable sett ings and tranformation function | std::vector<MinimizerVariable> fVariables; // vector of variable sett ings and tranformation function | |||
std::vector<unsigned int> fIndex; // vector with external in dices for internal variables | std::vector<unsigned int> fIndex; // vector with external in dices for internal variables | |||
const IMultiGradFunction * fFunc; // user function | const IMultiGradFunction * fFunc; // user function | |||
bool fHasTransform; // a function transformation is applied | ||||
}; | }; | |||
} // end namespace Math | } // end namespace Math | |||
} // end namespace ROOT | } // end namespace ROOT | |||
#endif /* ROOT_Math_MinimTransformFunction */ | #endif /* ROOT_Math_MinimTransformFunction */ | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 1 lines changed or added | |||
Minimizer.h | Minimizer.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: Minimizer.h 31180 2009-11-16 10:54:05Z moneta $ | // @(#)root/mathcore:$Id: Minimizer.h 31604 2009-12-07 19:04:33Z moneta $ | |||
// Author: L. Moneta Fri Sep 22 15:06:47 2006 | // Author: L. Moneta Fri Sep 22 15:06:47 2006 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class Minimizer | // Header file for class Minimizer | |||
skipping to change at line 235 | skipping to change at line 235 | |||
virtual const double * Errors() const = 0; | virtual const double * Errors() const = 0; | |||
/** return covariance matrices elements | /** return covariance matrices elements | |||
if the variable is fixed the matrix is zero | if the variable is fixed the matrix is zero | |||
The ordering of the variables is the same as in errors | The ordering of the variables is the same as in errors | |||
*/ | */ | |||
virtual double CovMatrix(unsigned int i, unsigned int j) const = 0; | virtual double CovMatrix(unsigned int i, unsigned int j) const = 0; | |||
///return status of covariance matrix | ///return status of covariance matrix | |||
/// using Minuit convention {0 not calculated 1 approximated 2 made pos def , 3 accurate} | /// using Minuit convention {0 not calculated 1 approximated 2 made pos def , 3 accurate} | |||
virtual int CovMatrixStatus() const { return ( (fValidError) ? 3 : 1); | /// Minimizer who implements covariance matrix calculation will re-imple | |||
} | ment the method | |||
virtual int CovMatrixStatus() const { return 0; } | ||||
/** | /** | |||
return correlation coefficient between variable i and j. | return correlation coefficient between variable i and j. | |||
If the variable is fixed or const the return value is zero | If the variable is fixed or const the return value is zero | |||
*/ | */ | |||
virtual double Correlation(unsigned int i, unsigned int j ) const { | virtual double Correlation(unsigned int i, unsigned int j ) const { | |||
double tmp = CovMatrix(i,i) * CovMatrix(j,j); | double tmp = CovMatrix(i,i) * CovMatrix(j,j); | |||
return ( tmp < 0) ? 0 : CovMatrix(i,j) / std::sqrt( tmp ); | return ( tmp < 0) ? 0 : CovMatrix(i,j) / std::sqrt( tmp ); | |||
} | } | |||
skipping to change at line 257 | skipping to change at line 258 | |||
return global correlation coefficient for variable i | return global correlation coefficient for variable i | |||
This is a number between zero and one which gives | This is a number between zero and one which gives | |||
the correlation between the i-th parameter and that linear combinati on of all | the correlation between the i-th parameter and that linear combinati on of all | |||
other parameters which is most strongly correlated with i. | other parameters which is most strongly correlated with i. | |||
Minimizer must overload method if implemented | Minimizer must overload method if implemented | |||
*/ | */ | |||
virtual double GlobalCC(unsigned int ) const { return -1; } | virtual double GlobalCC(unsigned int ) const { return -1; } | |||
/** | /** | |||
minos error for variable i, return false if Minos failed or not suppo rted | minos error for variable i, return false if Minos failed or not suppo rted | |||
and the lower and upper errors are returned in errLow and errUp | ||||
An extra flag specifies if only the lower (runopt=-1) or the upper ( | ||||
runopt=+1) error calculation is run | ||||
(This feature isnot yet implemented) | ||||
*/ | */ | |||
virtual bool GetMinosError(unsigned int /* i */, double & errLow, double & errUp) { | virtual bool GetMinosError(unsigned int /* i */, double & errLow, double & errUp, int = 0) { | |||
errLow = 0; errUp = 0; | errLow = 0; errUp = 0; | |||
return false; | return false; | |||
} | } | |||
/** | /** | |||
perform a full calculation of the Hessian matrix for error calculatio n | perform a full calculation of the Hessian matrix for error calculatio n | |||
*/ | */ | |||
virtual bool Hesse() { return false; } | virtual bool Hesse() { return false; } | |||
/** | /** | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 9 lines changed or added | |||
MinimizerOptions.h | MinimizerOptions.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: MinimizerOptions.h 29513 2009-07-17 15:30:07Z mon eta $ | // @(#)root/mathcore:$Id: MinimizerOptions.h 31604 2009-12-07 19:04:33Z mon eta $ | |||
// Author: L. Moneta Fri Aug 15 2008 | // Author: L. Moneta Fri Aug 15 2008 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2008 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2008 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
#ifndef ROOT_Math_MinimizerOptions | #ifndef ROOT_Math_MinimizerOptions | |||
skipping to change at line 35 | skipping to change at line 35 | |||
*/ | */ | |||
class MinimizerOptions { | class MinimizerOptions { | |||
public: | public: | |||
// static methods for setting and retrieving the default options | // static methods for setting and retrieving the default options | |||
static void SetDefaultMinimizer(const char * type, const char * algo = 0 ); | static void SetDefaultMinimizer(const char * type, const char * algo = 0 ); | |||
static void SetDefaultErrorDef( double up); | static void SetDefaultErrorDef( double up); | |||
static void SetDefaultTolerance(double tol); | static void SetDefaultTolerance(double tol); | |||
static void SetDefaultPrecision(double prec); | ||||
static void SetDefaultMaxFunctionCalls(int maxcall); | static void SetDefaultMaxFunctionCalls(int maxcall); | |||
static void SetDefaultMaxIterations(int maxiter); | static void SetDefaultMaxIterations(int maxiter); | |||
static void SetDefaultStrategy(int strat); | static void SetDefaultStrategy(int strat); | |||
static void SetDefaultPrintLevel(int level); | static void SetDefaultPrintLevel(int level); | |||
static const std::string & DefaultMinimizerType(); | static const std::string & DefaultMinimizerType(); | |||
static const std::string & DefaultMinimizerAlgo(); | static const std::string & DefaultMinimizerAlgo(); | |||
static double DefaultErrorDef(); | static double DefaultErrorDef(); | |||
static double DefaultTolerance(); | static double DefaultTolerance(); | |||
static double DefaultPrecision(); | ||||
static int DefaultMaxFunctionCalls(); | static int DefaultMaxFunctionCalls(); | |||
static int DefaultMaxIterations(); | static int DefaultMaxIterations(); | |||
static int DefaultStrategy(); | static int DefaultStrategy(); | |||
static int DefaultPrintLevel(); | static int DefaultPrintLevel(); | |||
// default options | // constructor using the default options | |||
MinimizerOptions() : | MinimizerOptions(); | |||
fLevel( MinimizerOptions::DefaultPrintLevel()), | ||||
fMaxCalls( MinimizerOptions::DefaultMaxFunctionCalls() ), | ||||
fMaxIter( MinimizerOptions::DefaultMaxIterations() ), | ||||
fStrategy( MinimizerOptions::DefaultStrategy() ), | ||||
fErrorDef( MinimizerOptions::DefaultErrorDef() ), | ||||
fTolerance( MinimizerOptions::DefaultTolerance() ), | ||||
fMinimType( MinimizerOptions::DefaultMinimizerType() ), | ||||
fAlgoType( MinimizerOptions::DefaultMinimizerAlgo() ) | ||||
{} | ||||
/** non-static methods for retrivieng options */ | /** non-static methods for retrivieng options */ | |||
/// set print level | /// set print level | |||
int PrintLevel() const { return fLevel; } | int PrintLevel() const { return fLevel; } | |||
/// max number of function calls | /// max number of function calls | |||
unsigned int MaxFunctionCalls() const { return fMaxCalls; } | unsigned int MaxFunctionCalls() const { return fMaxCalls; } | |||
/// max iterations | /// max iterations | |||
unsigned int MaxIterations() const { return fMaxIter; } | unsigned int MaxIterations() const { return fMaxIter; } | |||
/// strategy | /// strategy | |||
int Strategy() const { return fStrategy; } | int Strategy() const { return fStrategy; } | |||
/// absolute tolerance | /// absolute tolerance | |||
double Tolerance() const { return fTolerance; } | double Tolerance() const { return fTolerance; } | |||
/// precision in the objective funciton calculation (value <=0 means lef | ||||
t to default) | ||||
double Precision() const { return fPrecision; } | ||||
/// error definition | /// error definition | |||
double ErrorDef() const { return fErrorDef; } | double ErrorDef() const { return fErrorDef; } | |||
/// type of minimizer | /// type of minimizer | |||
const std::string & MinimizerType() const { return fMinimType; } | const std::string & MinimizerType() const { return fMinimType; } | |||
/// type of algorithm | /// type of algorithm | |||
const std::string & MinimizerAlgorithm() const { return fAlgoType; } | const std::string & MinimizerAlgorithm() const { return fAlgoType; } | |||
/** non-static methods for setting options */ | /** non-static methods for setting options */ | |||
skipping to change at line 101 | skipping to change at line 97 | |||
///set maximum of function calls | ///set maximum of function calls | |||
void SetMaxFunctionCalls(unsigned int maxfcn) { fMaxCalls = maxfcn; } | void SetMaxFunctionCalls(unsigned int maxfcn) { fMaxCalls = maxfcn; } | |||
/// set maximum iterations (one iteration can have many function calls) | /// set maximum iterations (one iteration can have many function calls) | |||
void SetMaxIterations(unsigned int maxiter) { fMaxIter = maxiter; } | void SetMaxIterations(unsigned int maxiter) { fMaxIter = maxiter; } | |||
/// set the tolerance | /// set the tolerance | |||
void SetTolerance(double tol) { fTolerance = tol; } | void SetTolerance(double tol) { fTolerance = tol; } | |||
/// set the precision | ||||
void SetPrecision(double prec) { fPrecision = prec; } | ||||
/// set the strategy | /// set the strategy | |||
void SetStrategy(int stra) { fStrategy = stra; } | void SetStrategy(int stra) { fStrategy = stra; } | |||
/// set error def | /// set error def | |||
void SetErrorDef(double err) { fErrorDef = err; } | void SetErrorDef(double err) { fErrorDef = err; } | |||
/// set minimizer type | /// set minimizer type | |||
void SetMinimizerType(const char * type) { fMinimType = type; } | void SetMinimizerType(const char * type) { fMinimType = type; } | |||
/// set minimizer algorithm | /// set minimizer algorithm | |||
void SetMinimizerAlgorithm(const char *type) { fAlgoType = type; } | void SetMinimizerAlgorithm(const char *type) { fAlgoType = type; } | |||
private: | private: | |||
int fLevel; // debug print level | int fLevel; // debug print level | |||
int fMaxCalls; // maximum number of function calls | int fMaxCalls; // maximum number of function calls | |||
int fMaxIter; // maximum number of iterations | int fMaxIter; // maximum number of iterations | |||
int fStrategy; // minimizer strategy (used by Minuit) | int fStrategy; // minimizer strategy (used by Minuit) | |||
double fErrorDef; // error definition (=1. for getting 1 sigma e rror for chi2 fits) | double fErrorDef; // error definition (=1. for getting 1 sigma e rror for chi2 fits) | |||
double fTolerance; // minimize tolerance to reach solution | double fTolerance; // minimize tolerance to reach solution | |||
double fPrecision; // precision of the objective funciton evaluat ion (value <=0 means left to default) | ||||
std::string fMinimType; // Minimizer type (Minuit, Minuit2, etc.. | std::string fMinimType; // Minimizer type (Minuit, Minuit2, etc.. | |||
std::string fAlgoType; // Minimizer algorithmic specification (Migrad , Minimize, ...) | std::string fAlgoType; // Minimizer algorithmic specification (Migrad , Minimize, ...) | |||
}; | }; | |||
} // end namespace Math | } // end namespace Math | |||
} // end namespace ROOT | } // end namespace ROOT | |||
#endif | #endif | |||
End of changes. 7 change blocks. | ||||
12 lines changed or deleted | 13 lines changed or added | |||
Minuit2Minimizer.h | Minuit2Minimizer.h | |||
---|---|---|---|---|
skipping to change at line 214 | skipping to change at line 214 | |||
A minimizaiton must be performed befre, return false if no minimizati on has been done | A minimizaiton must be performed befre, return false if no minimizati on has been done | |||
In case of Minos failed the status error is updated as following | In case of Minos failed the status error is updated as following | |||
status += 10 * minosStatus where the minos status is: | status += 10 * minosStatus where the minos status is: | |||
status = 1 : maximum number of function calls exceeded when runni ng for lower error | status = 1 : maximum number of function calls exceeded when runni ng for lower error | |||
status = 2 : maximum number of function calls exceeded when runni ng for upper error | status = 2 : maximum number of function calls exceeded when runni ng for upper error | |||
status = 3 : new minimum found when running for lower error | status = 3 : new minimum found when running for lower error | |||
status = 4 : new minimum found when running for upper error | status = 4 : new minimum found when running for upper error | |||
status = 5 : any other failure | status = 5 : any other failure | |||
*/ | */ | |||
virtual bool GetMinosError(unsigned int i, double & errLow, double & err Up); | virtual bool GetMinosError(unsigned int i, double & errLow, double & err Up, int = 0); | |||
/** | /** | |||
scan a parameter i around the minimum. A minimization must have been done before, | scan a parameter i around the minimum. A minimization must have been done before, | |||
return false if it is not the case | return false if it is not the case | |||
*/ | */ | |||
virtual bool Scan(unsigned int i, unsigned int & nstep, double * x, doub le * y, double xmin = 0, double xmax = 0); | virtual bool Scan(unsigned int i, unsigned int & nstep, double * x, doub le * y, double xmin = 0, double xmax = 0); | |||
/** | /** | |||
find the contour points (xi,xj) of the function for parameter i and j around the minimum | find the contour points (xi,xj) of the function for parameter i and j around the minimum | |||
The contour will be find for value of the function = Min + ErrorUp(); | The contour will be find for value of the function = Min + ErrorUp(); | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
ModulekNN.h | ModulekNN.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: ModulekNN.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: ModulekNN.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Rustem Ospanov | // Author: Rustem Ospanov | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : ModulekNN * | * Class : ModulekNN * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Module for k-nearest neighbor algorithm * | * Module for k-nearest neighbor algorithm * | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
MsgLogger.h | MsgLogger.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MsgLogger.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: MsgLogger.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Attila Krasznahorkay | // Author: Attila Krasznahorkay | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : MsgLogger * | * Class : MsgLogger * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* TMVA output logger class producing nicely formatted log messages * | * TMVA output logger class producing nicely formatted log messages * | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
Node.h | Node.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Node.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: Node.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Classes: Node * | * Classes: Node * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Node for the BinarySearch or Decision Trees * | * Node for the BinarySearch or Decision Trees * | |||
skipping to change at line 44 | skipping to change at line 44 | |||
// // | // // | |||
// Node base class for the BinarySearch or Decision Trees Nodes // | // Node base class for the BinarySearch or Decision Trees Nodes // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#include <iosfwd> | #include <iosfwd> | |||
#ifndef ROOT_Rtypes | #ifndef ROOT_Rtypes | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Version | ||||
#include "TMVA/Version.h" | ||||
#endif | ||||
namespace TMVA { | namespace TMVA { | |||
class Node; | class Node; | |||
class Event; | class Event; | |||
class BinaryTree; | class BinaryTree; | |||
std::ostream& operator<<( std::ostream& os, const Node& node ); | std::ostream& operator<<( std::ostream& os, const Node& node ); | |||
std::ostream& operator<<( std::ostream& os, const Node* node ); | std::ostream& operator<<( std::ostream& os, const Node* node ); | |||
// a class used to identify a Node; (needed for recursive reading from t ext file) | // a class used to identify a Node; (needed for recursive reading from t ext file) | |||
skipping to change at line 110 | skipping to change at line 114 | |||
//recursively go through the part of the tree below this node and cou nt all daughters | //recursively go through the part of the tree below this node and cou nt all daughters | |||
Int_t CountMeAndAllDaughters() const; | Int_t CountMeAndAllDaughters() const; | |||
// printout of the node | // printout of the node | |||
virtual void Print( std::ostream& os ) const = 0; | virtual void Print( std::ostream& os ) const = 0; | |||
// recursive printout of the node and it daughters | // recursive printout of the node and it daughters | |||
virtual void PrintRec ( std::ostream& os ) const = 0; | virtual void PrintRec ( std::ostream& os ) const = 0; | |||
void* AddXMLTo(void* parent) const; | void* AddXMLTo(void* parent) const; | |||
void ReadXML(void* node); | void ReadXML(void* node, UInt_t tmva_Version_Code = TMVA_VERSION_COD E ); | |||
virtual void AddAttributesToNode(void* node) const = 0; | virtual void AddAttributesToNode(void* node) const = 0; | |||
virtual void AddContentToNode(std::stringstream& s) const = 0; | virtual void AddContentToNode(std::stringstream& s) const = 0; | |||
// Set depth, layer of the where the node is within the tree, seen fr om the top (root) | // Set depth, layer of the where the node is within the tree, seen fr om the top (root) | |||
void SetDepth(UInt_t d){fDepth=d;} | void SetDepth(UInt_t d){fDepth=d;} | |||
// Return depth, layer of the where the node is within the tree, seen from the top (root) | // Return depth, layer of the where the node is within the tree, seen from the top (root) | |||
UInt_t GetDepth() const {return fDepth;} | UInt_t GetDepth() const {return fDepth;} | |||
// set node position, i.e, the node is a left (l) or right (r) daugth er | // set node position, i.e, the node is a left (l) or right (r) daugth er | |||
skipping to change at line 134 | skipping to change at line 138 | |||
char GetPos() const {return fPos;} | char GetPos() const {return fPos;} | |||
// Return the pointer to the Parent tree to which the Node belongs | // Return the pointer to the Parent tree to which the Node belongs | |||
TMVA::BinaryTree* GetParentTree() const {return fParentTree;} | TMVA::BinaryTree* GetParentTree() const {return fParentTree;} | |||
// set the pointer to the Parent Tree to which the Node belongs | // set the pointer to the Parent Tree to which the Node belongs | |||
void SetParentTree(TMVA::BinaryTree* t) {fParentTree = t;} | void SetParentTree(TMVA::BinaryTree* t) {fParentTree = t;} | |||
int GetCount(){return fgCount;} | int GetCount(){return fgCount;} | |||
virtual Bool_t ReadDataRecord( std::istream& ) = 0; | virtual Bool_t ReadDataRecord( std::istream&, UInt_t tmva_Version_Cod | |||
virtual void ReadAttributes(void* node) = 0; | e = TMVA_VERSION_CODE ) = 0; | |||
virtual void ReadAttributes(void* node, UInt_t tmva_Version_Code = TM | ||||
VA_VERSION_CODE ) = 0; | ||||
virtual void ReadContent(std::stringstream& s) =0; | virtual void ReadContent(std::stringstream& s) =0; | |||
private: | private: | |||
Node* fParent; // the previous (parent) node | Node* fParent; // the previous (parent) node | |||
Node* fLeft; // pointers to the two "daughter" nodes | Node* fLeft; // pointers to the two "daughter" nodes | |||
Node* fRight; // pointers to the two "daughter" nodes | Node* fRight; // pointers to the two "daughter" nodes | |||
char fPos; // position, i.e. it is a left (l) or r ight (r) daughter | char fPos; // position, i.e. it is a left (l) or r ight (r) daughter | |||
UInt_t fDepth; // depth of the node within the tree (s een from root node) | UInt_t fDepth; // depth of the node within the tree (s een from root node) | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 10 lines changed or added | |||
NodekNN.h | NodekNN.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: NodekNN.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: NodekNN.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Rustem Ospanov | // Author: Rustem Ospanov | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : Node * | * Class : Node * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* kd-tree (binary tree) template * | * kd-tree (binary tree) template * | |||
skipping to change at line 134 | skipping to change at line 134 | |||
// recursive search for k-nearest neighbor: k = nfind | // recursive search for k-nearest neighbor: k = nfind | |||
template<class T> | template<class T> | |||
UInt_t Find(std::list<std::pair<const Node<T> *, Float_t> > &nlist, | UInt_t Find(std::list<std::pair<const Node<T> *, Float_t> > &nlist, | |||
const Node<T> *node, const T &event, UInt_t nfind); | const Node<T> *node, const T &event, UInt_t nfind); | |||
// recursive search for k-nearest neighbor | // recursive search for k-nearest neighbor | |||
// find k events with sum of event weights >= nfind | // find k events with sum of event weights >= nfind | |||
template<class T> | template<class T> | |||
UInt_t Find(std::list<std::pair<const Node<T> *, Float_t> > &nlist, | UInt_t Find(std::list<std::pair<const Node<T> *, Float_t> > &nlist, | |||
const Node<T> *node, const T &event, Double_t nfind, Doubl e_t ncurr); | const Node<T> *node, const T &event, Double_t nfind, Doub le_t ncurr); | |||
// recursively travel upward until root node is reached | // recursively travel upward until root node is reached | |||
template <class T> | template <class T> | |||
UInt_t Depth(const Node<T> *node); | UInt_t Depth(const Node<T> *node); | |||
// prInt_t node content and content of its children | // prInt_t node content and content of its children | |||
//template <class T> | //template <class T> | |||
//std::ostream& operator<<(std::ostream& os, const Node<T> &node); | //std::ostream& operator<<(std::ostream& os, const Node<T> &node); | |||
// | // | |||
skipping to change at line 395 | skipping to change at line 395 | |||
// need typename keyword because qualified dependent names | // need typename keyword because qualified dependent names | |||
// are not valid types unless preceded by 'typename'. | // are not valid types unless preceded by 'typename'. | |||
typename std::list<std::pair<const Node<T> *, Float_t> >::iterator lit = nlist.begin(); | typename std::list<std::pair<const Node<T> *, Float_t> >::iterator lit = nlist.begin(); | |||
// find a place where current node should be inserted | // find a place where current node should be inserted | |||
for (; lit != nlist.end(); ++lit) { | for (; lit != nlist.end(); ++lit) { | |||
if (distance < lit->second) { | if (distance < lit->second) { | |||
break; | break; | |||
} | } | |||
else { | else { | |||
continue; | continue; | |||
} | } | |||
} | } | |||
nlist.insert(lit, std::pair<const Node<T> *, Float_t>(node, distan ce)); | nlist.insert(lit, std::pair<const Node<T> *, Float_t>(node, distan ce)); | |||
if (remove_back) { | if (remove_back) { | |||
nlist.pop_back(); | nlist.pop_back(); | |||
} | } | |||
} | } | |||
} | } | |||
skipping to change at line 492 | skipping to change at line 492 | |||
if (distance < max_dist) { | if (distance < max_dist) { | |||
insert_this = kTRUE; | insert_this = kTRUE; | |||
} | } | |||
} | } | |||
else { | else { | |||
std::cerr << "TMVA::kNN::Find() - logic error in recursive procedu re" << std::endl; | std::cerr << "TMVA::kNN::Find() - logic error in recursive procedu re" << std::endl; | |||
return 1; | return 1; | |||
} | } | |||
if (insert_this) { | if (insert_this) { | |||
// (re)compute total current weight when inserting a new node | // (re)compute total current weight when inserting a new node | |||
ncurr = 0; | ncurr = 0; | |||
// need typename keyword because qualified dependent names | // need typename keyword because qualified dependent names | |||
// are not valid types unless preceded by 'typename'. | // are not valid types unless preceded by 'typename'. | |||
typename std::list<std::pair<const Node<T> *, Float_t> >::iterator lit = nlist.begin(); | typename std::list<std::pair<const Node<T> *, Float_t> >::iterator lit = nlist.begin(); | |||
// find a place where current node should be inserted | // find a place where current node should be inserted | |||
for (; lit != nlist.end(); ++lit) { | for (; lit != nlist.end(); ++lit) { | |||
if (distance < lit->second) { | if (distance < lit->second) { | |||
break; | break; | |||
} | } | |||
ncurr += lit -> first -> GetWeight(); | ncurr += lit -> first -> GetWeight(); | |||
} | } | |||
lit = nlist.insert(lit, std::pair<const Node<T> *, Float_t>(node, distance)); | lit = nlist.insert(lit, std::pair<const Node<T> *, Float_t>(node, distance)); | |||
for (; lit != nlist.end(); ++lit) { | for (; lit != nlist.end(); ++lit) { | |||
ncurr += lit -> first -> GetWeight(); | ncurr += lit -> first -> GetWeight(); | |||
if (!(ncurr < nfind)) { | if (!(ncurr < nfind)) { | |||
++lit; | ++lit; | |||
break; | break; | |||
} | } | |||
} | } | |||
if(lit != nlist.end()) | if(lit != nlist.end()) | |||
{ | { | |||
nlist.erase(lit, nlist.end()); | nlist.erase(lit, nlist.end()); | |||
} | } | |||
} | } | |||
} | } | |||
UInt_t count = 1; | UInt_t count = 1; | |||
if (node->GetNodeL() && node->GetNodeR()) { | if (node->GetNodeL() && node->GetNodeR()) { | |||
if (value < node->GetVarDis()) { | if (value < node->GetVarDis()) { | |||
count += Find(nlist, node->GetNodeL(), event, nfind, ncurr); | count += Find(nlist, node->GetNodeL(), event, nfind, ncurr); | |||
count += Find(nlist, node->GetNodeR(), event, nfind, ncurr); | count += Find(nlist, node->GetNodeR(), event, nfind, ncurr); | |||
} | } | |||
else { | else { | |||
End of changes. 6 change blocks. | ||||
18 lines changed or deleted | 18 lines changed or added | |||
PDEFoam.h | PDEFoam.h | |||
---|---|---|---|---|
// @(#)root/foam:$Name: not supported by cvs2svn $:$Id: PDEFoam.h 29246 200 | ||||
9-06-26 16:50:00Z brun $ | ||||
// Author: S. Jadach <mailto:Stanislaw.jadach@ifj.edu.pl>, P.Sawicki <mailt | ||||
o:Pawel.Sawicki@ifj.edu.pl> | ||||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Classes: PDEFoam, PDEFoamCell, PDEFoamIntegrand, PDEFoamMaxwt, PDEFoamVe | * Classes: PDEFoam | |||
ct, * | * | |||
* TFDISTR | ||||
* | ||||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Collection of helper classes to be used with MethodPDEFoam * | * Class for PDEFoam object * | |||
* * | * * | |||
* Authors (alphabetical): * | * Authors (alphabetical): * | |||
* S. Jadach - Institute of Nuclear Physics, Cracow, Poland * | * S. Jadach - Institute of Nuclear Physics, Cracow, Poland * | |||
* Tancredi Carli - CERN, Switzerland * | * Tancredi Carli - CERN, Switzerland * | |||
* Dominik Dannheim - CERN, Switzerland * | * Dominik Dannheim - CERN, Switzerland * | |||
* Alexander Voigt - CERN, Switzerland * | * Alexander Voigt - CERN, Switzerland * | |||
* * | * * | |||
* Copyright (c) 2008: * | * Copyright (c) 2008: * | |||
* CERN, Switzerland * | * CERN, Switzerland * | |||
* MPI-K Heidelberg, Germany * | * MPI-K Heidelberg, Germany * | |||
skipping to change at line 34 | skipping to change at line 31 | |||
* Redistribution and use in source and binary forms, with or without * | * Redistribution and use in source and binary forms, with or without * | |||
* modification, are permitted according to the terms listed in LICENSE * | * modification, are permitted according to the terms listed in LICENSE * | |||
* (http://tmva.sourceforge.net/LICENSE) * | * (http://tmva.sourceforge.net/LICENSE) * | |||
************************************************************************** ********/ | ************************************************************************** ********/ | |||
#ifndef ROOT_TMVA_PDEFoam | #ifndef ROOT_TMVA_PDEFoam | |||
#define ROOT_TMVA_PDEFoam | #define ROOT_TMVA_PDEFoam | |||
#include <iosfwd> | #include <iosfwd> | |||
#ifndef ROOT_TMath | ||||
#include "TMath.h" | ||||
#endif | ||||
#ifndef ROOT_TH2D | #ifndef ROOT_TH2D | |||
#include "TH2D.h" | #include "TH2D.h" | |||
#endif | #endif | |||
#ifndef ROOT_TObjArray | #ifndef ROOT_TObjArray | |||
#include "TObjArray.h" | #include "TObjArray.h" | |||
#endif | #endif | |||
#ifndef ROOT_TObjString | #ifndef ROOT_TObjString | |||
#include "TObjString.h" | #include "TObjString.h" | |||
#endif | #endif | |||
#ifndef ROOT_TVectorT | #ifndef ROOT_TVectorT | |||
#include "TVectorT.h" | #include "TVectorT.h" | |||
#endif | #endif | |||
#ifndef ROOT_TString | #ifndef ROOT_TString | |||
#include "TString.h" | #include "TString.h" | |||
#endif | #endif | |||
#ifndef ROOT_TRefArray | ||||
#include "TRefArray.h" | ||||
#endif | ||||
#ifndef ROOT_TMethodCall | ||||
#include "TMethodCall.h" | ||||
#endif | ||||
#ifndef ROOT_TMVA_BinarySearchTree | ||||
#include "TMVA/BinarySearchTree.h" | ||||
#endif | ||||
#ifndef ROOT_TMVA_VariableInfo | #ifndef ROOT_TMVA_VariableInfo | |||
#include "TMVA/VariableInfo.h" | #include "TMVA/VariableInfo.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Timer | #ifndef ROOT_TMVA_Timer | |||
#include "TMVA/Timer.h" | #include "TMVA/Timer.h" | |||
#endif | #endif | |||
#ifndef ROOT_TRef | ||||
#include "TRef.h" | ||||
#endif | ||||
#ifndef ROOT_TObject | #ifndef ROOT_TObject | |||
#include "TObject.h" | #include "TObject.h" | |||
#endif | #endif | |||
#ifndef ROOT_TRandom3 | ||||
#include "TRandom3.h" | ||||
#endif | ||||
class TRandom3; | #ifndef ROOT_TMVA_PDEFoamDistr | |||
#include "TMVA/PDEFoamDistr.h" | ||||
#endif | ||||
#ifndef ROOT_TMVA_PDEFoamVect | ||||
#include "TMVA/PDEFoamVect.h" | ||||
#endif | ||||
#ifndef ROOT_TMVA_PDEFoamCell | ||||
#include "TMVA/PDEFoamCell.h" | ||||
#endif | ||||
namespace TMVA { | namespace TMVA { | |||
class PDEFoam; | class PDEFoam; | |||
class PDEFoamCell; | class PDEFoamCell; | |||
class PDEFoamIntegrand; | ||||
class PDEFoamVect; | ||||
class PDEFoamMaxwt; | ||||
class MsgLogger; | ||||
enum EKernel { kNone, kGaus, kLinN }; | enum EKernel { kNone, kGaus, kLinN }; | |||
enum ETargetSelection { kMean, kMpv }; | enum ETargetSelection { kMean, kMpv }; | |||
enum ECellType { kAll, kActive, kInActive }; | enum ECellType { kAll, kActive, kInActive }; | |||
enum EFoamType { kSeparate, kDiscr, kMonoTarget, kMultiTarget }; | ||||
// possible values, saved in foam cells | // enum type for possible foam cell values | |||
// kNev : number of events (saved in cell element 0) | // kNev : number of events (saved in cell element 0) | |||
// kDiscriminator : discriminator (saved in cell element 0) | // kDiscriminator : discriminator (saved in cell element 0) | |||
// kDiscriminatorError : error on discriminator (saved in cell element 1 ) | ||||
// kTarget0 : target 0 (saved in cell element 0) | // kTarget0 : target 0 (saved in cell element 0) | |||
// kTargetError : error on target 0 (saved in cell element 1) | ||||
// kMeanValue : mean sampling value (saved in fIntegral) | // kMeanValue : mean sampling value (saved in fIntegral) | |||
// kRms : rms of sampling distribution (saved in fDriver) | // kRms : rms of sampling distribution (saved in fDriver) | |||
// kRmsOvMean : rms/mean of sampling distribution (saved in fDriver | // kRmsOvMean : rms/mean of sampling distribution (saved in | |||
and fIntegral) | // fDriver and fIntegral) | |||
// kDensity : number of events/cell volume | // kDensity : number of events/cell volume | |||
enum ECellValue { kNev, kDiscriminator, kTarget0, kMeanValue, kRms, kRms | enum ECellValue { kNev, kDiscriminator, kDiscriminatorError, kTarget0, | |||
OvMean, kDensity }; | kTarget0Error, kMeanValue, kRms, kRmsOvMean, kDensity | |||
// options for filling density (used in Density() to build up foam) | }; | |||
// kEVENT_DENSITY : use event density for foam buildup | ||||
// kDISCRIMINATOR : use N_sig/(N_sig + N_bg) for foam buildup | ||||
// kTARGET : use GetTarget(0) for foam build up | ||||
enum TDensityCalc { kEVENT_DENSITY, kDISCRIMINATOR, kTARGET }; | ||||
} | } | |||
////////////////////////////////////////////////////////////// | ||||
// // | ||||
// Class PDEFoamIntegrand is an Abstract class representing // | ||||
// n-dimensional real positive integrand function // | ||||
// // | ||||
////////////////////////////////////////////////////////////// | ||||
namespace TMVA { | namespace TMVA { | |||
class PDEFoamIntegrand : public ::TObject { | ||||
public: | ||||
PDEFoamIntegrand(); | ||||
virtual ~PDEFoamIntegrand() { } | ||||
virtual Double_t Density(Int_t ndim, Double_t *) = 0; | ||||
virtual Double_t Density(Int_t ndim, Double_t *, Double_t &) = 0; | ||||
ClassDef(PDEFoamIntegrand,1); //n-dimensional real positive integrand | ||||
of FOAM | ||||
}; // end of PDEFoamIntegrand | ||||
} // namespace TMVA | ||||
/////////////////////////////////////////////////////////////////////////// | ||||
/// | ||||
// | ||||
// | ||||
// TFDISTR is a child class of PDEFoamIntegrand and contains Methods to | ||||
// | ||||
// create a probability density by filling in events. | ||||
// | ||||
// The main function is Density() which provides the event density at a | ||||
// | ||||
// given point during the foam build-up (sampling). | ||||
// | ||||
// | ||||
// | ||||
/////////////////////////////////////////////////////////////////////////// | ||||
/// | ||||
namespace TMVA { | ||||
// class definition of underlying density | ||||
class TFDISTR : public PDEFoamIntegrand | ||||
{ | ||||
private: | ||||
Int_t fDim; // number of dimensions | ||||
Float_t *fXmin; //[fDim] minimal value of phase space in al | ||||
l dimension | ||||
Float_t *fXmax; //[fDim] maximal value of phase space in al | ||||
l dimension | ||||
Float_t fVolFrac; // volume fraction (with respect to total p | ||||
hase space | ||||
BinarySearchTree *fBst; // Binary tree to find events within a volu | ||||
me | ||||
TDensityCalc fDensityCalc;// method of density calculation | ||||
protected: | ||||
Int_t fSignalClass; // TODO: intermediate solution to keep IsSig | ||||
nal() of Event working. TODO: remove IsSignal() from Event | ||||
Int_t fBackgroundClass; // TODO: intermediate solution to keep IsSig | ||||
nal() of Event working. TODO: remove IsSignal() from Event | ||||
mutable MsgLogger* fLogger; //! message logger | ||||
MsgLogger& Log() const { return *fLogger; } | ||||
public: | ||||
TFDISTR(); | ||||
virtual ~TFDISTR(); | ||||
// Getter and setter for VolFrac option | ||||
void SetVolumeFraction(Float_t vfr){fVolFrac=vfr; return;} | ||||
Float_t GetVolumeFraction(){return fVolFrac;} | ||||
// set foam dimension (mandatory before foam build-up!) | ||||
void SetDim(Int_t idim){ | ||||
fDim = idim; | ||||
if (fXmin) delete [] fXmin; | ||||
if (fXmax) delete [] fXmax; | ||||
fXmin = new Float_t[fDim]; | ||||
fXmax = new Float_t[fDim]; | ||||
return; | ||||
} | ||||
// set foam boundaries | ||||
void SetXmin(Int_t idim,Float_t wmin){fXmin[idim]=wmin; return;} | ||||
void SetXmax(Int_t idim,Float_t wmax){fXmax[idim]=wmax; return;} | ||||
// transformation functions for event variable into foam boundaries | ||||
// reason: foam allways has boundaries [0, 1] | ||||
Float_t VarTransform(Int_t idim, Float_t x){ // transform [xmi | ||||
n, xmax] --> [0, 1] | ||||
Float_t b=fXmax[idim]-fXmin[idim]; | ||||
return (x-fXmin[idim])/b; | ||||
} | ||||
Float_t VarTransformInvers(Int_t idim, Float_t x){ // transform [0, | ||||
1] --> [xmin, xmax] | ||||
Float_t b=fXmax[idim]-fXmin[idim]; | ||||
return x*b + fXmin[idim]; | ||||
} | ||||
// debug function | ||||
void PrintDensity(); | ||||
// density build-up functions | ||||
void Initialize(Int_t ndim = 2); | ||||
void FillBinarySearchTree( const Event* ev, EFoamType ft, Bool_t NoNe | ||||
gWeights=kFALSE ); | ||||
// Dominik Dannheim 10.Jan.2008 | ||||
// new method to fill edge histograms directly, without MC sampling | ||||
void FillEdgeHist(Int_t nDim, TObjArray *myfHistEdg , Double_t *cellP | ||||
osi, Double_t *cellSize, Double_t *ceSum, Double_t ceVol); | ||||
// main function used by PDEFoam | ||||
// returns density at a given point by range searching in BST | ||||
Double_t Density(int nDim, Double_t *Xarg, Double_t &event_density); | ||||
Double_t Density(int nDim, Double_t *Xarg){ | ||||
Double_t event_density = 0; | ||||
return Density(nDim, Xarg, event_density); | ||||
}; | ||||
// helper functions on BST | ||||
UInt_t GetNEvents(PDEFoamCell* cell); // gets number of events in cel | ||||
l (from fBst) | ||||
Bool_t CellRMSCut(PDEFoamCell* cell, Float_t rms_cut, Int_t nbin); // | ||||
calc cell rms and compare with rms_cut | ||||
// Getters and setters for foam filling method | ||||
void SetDensityCalc( TDensityCalc dc ){ fDensityCalc = dc; }; | ||||
Bool_t FillDiscriminator(){ return fDensityCalc == kDISCRIMINATOR; } | ||||
Bool_t FillTarget0() { return fDensityCalc == kTARGET; } | ||||
Bool_t FillEventDensity() { return fDensityCalc == kEVENT_DENSITY; } | ||||
void SetSignalClass( Int_t cls ) { fSignalClass = cls; } // TODO | ||||
: intermediate solution to keep IsSignal() of Event working. TODO: remove I | ||||
sSignal() from Event | ||||
void SetBackgroundClass( Int_t cls ) { fBackgroundClass = cls; } // | ||||
TODO: intermediate solution to keep IsSignal() of Event working. TODO: remo | ||||
ve IsSignal() from Event | ||||
TH2D* MakeHistogram(Int_t nbinsx, Int_t nbinsy); | ||||
ClassDef(TFDISTR,3) //Class for Event density | ||||
}; //end of TFDISTR | ||||
} // namespace TMVA | ||||
/////////////////////////////////////////////////////////////////////////// | ||||
/// | ||||
// | ||||
// | ||||
// PDEFoam is the child class of the multi-dimensional general purpose | ||||
// | ||||
// Monte Carlo event generator (integrator) PDEFoam. | ||||
// | ||||
// | ||||
// | ||||
/////////////////////////////////////////////////////////////////////////// | ||||
/// | ||||
namespace TMVA { | ||||
class PDEFoamCell; | ||||
class PDEFoam; | ||||
std::ostream& operator<< ( std::ostream& os, const PDEFoam& pdefoam ); | std::ostream& operator<< ( std::ostream& os, const PDEFoam& pdefoam ); | |||
std::istream& operator>> ( std::istream& istr, PDEFoam& pdefoam ); | std::istream& operator>> ( std::istream& istr, PDEFoam& pdefoam ); | |||
class PDEFoam : public TObject { | class PDEFoam : public TObject { | |||
protected: | protected: | |||
// COMPONENTS // | // COMPONENTS // | |||
//-------------- Input parameters | //-------------- Input parameters | |||
TString fName; // Name of a given instance of the FOAM cl ass | TString fName; // Name of a given instance of the FOAM cl ass | |||
TString fVersion; // Actual version of the FOAM like (1.01m) | ||||
TString fDate; // Release date of FOAM | ||||
Int_t fDim; // Dimension of the integration/simulation space | Int_t fDim; // Dimension of the integration/simulation space | |||
Int_t fNCells; // Maximum number of cells | Int_t fNCells; // Maximum number of cells | |||
Int_t fRNmax; // Maximum No. of the rand. numb. requeste | ||||
d at once | ||||
//------------------- | ||||
Int_t fOptDrive; // Optimization switch =1,2 for variance o | ||||
r maximum weight optimization | ||||
Int_t fChat; // Chat=0,1,2 chat level in output, Chat=1 | ||||
normal level | ||||
Int_t fOptRej; // Switch =0 for weighted events; =1 for u | ||||
nweighted events in MC | ||||
//------------------- | //------------------- | |||
Int_t fNBin; // No. of bins in the edge histogram for c ell MC exploration | Int_t fNBin; // No. of bins in the edge histogram for c ell MC exploration | |||
Int_t fNSampl; // No. of MC events, when dividing (explor ing) cell | Int_t fNSampl; // No. of MC events, when dividing (explor ing) cell | |||
Int_t fEvPerBin; // Maximum number of effective (wt=1) even ts per bin | Int_t fEvPerBin; // Maximum number of effective (wt=1) even ts per bin | |||
//------------------- MULTI-BRANCHING --------------------- | //------------------- MULTI-BRANCHING --------------------- | |||
Int_t *fMaskDiv; //! [fDim] Dynamic Mask for cell division | Int_t *fMaskDiv; //! [fDim] Dynamic Mask for cell division | |||
Int_t *fInhiDiv; //! [fDim] Flags for inhibiting cell divis ion | Int_t *fInhiDiv; //! [fDim] Flags for inhibiting cell divis ion | |||
Int_t fOptPRD; // Option switch for predefined division, | ||||
for quick check | ||||
PDEFoamVect **fXdivPRD; //! Lists of division values encoded in on | ||||
e vector per direction | ||||
//------------------- GEOMETRY ---------------------------- | //------------------- GEOMETRY ---------------------------- | |||
Int_t fNoAct; // Number of active cells | Int_t fNoAct; // Number of active cells | |||
Int_t fLastCe; // Index of the last cell | Int_t fLastCe; // Index of the last cell | |||
PDEFoamCell **fCells; // [fNCells] Array of ALL cells | PDEFoamCell **fCells; // [fNCells] Array of ALL cells | |||
//------------------ M.C. generation---------------------------- | //------------------ M.C. generation---------------------------- | |||
PDEFoamMaxwt *fMCMonit; // Monitor of the MC weight for measuring | ||||
MC efficiency | ||||
Double_t fMaxWtRej; // Maximum weight in rejection for getting | ||||
wt=1 events | ||||
TRefArray *fCellsAct; // Array of pointers to active cells, cons | ||||
tructed at the end of foam build-up | ||||
Double_t *fPrimAcu; // [fNoAct] Array of cumulative probabilit | ||||
y of all active cells | ||||
TObjArray *fHistEdg; // Histograms of wt, one for each cell edg e | TObjArray *fHistEdg; // Histograms of wt, one for each cell edg e | |||
TObjArray *fHistDbg; // Histograms of wt, for debug | Double_t *fRvec; // [fDim] random number vector from r.n. g | |||
TH1D *fHistWt; // Histogram of the MC wt | enerator fDim+1 maximum elements | |||
Double_t *fMCvect; // [fDim] Generated MC vector for the outs | ||||
ide user | ||||
Double_t fMCwt; // MC weight | ||||
Double_t *fRvec; // [fRNmax] random number vector from r.n. | ||||
generator fDim+1 maximum elements | ||||
//----------- Procedures | //----------- Procedures | |||
PDEFoamIntegrand *fRho; //! Pointer to the user-defined integrand | ||||
function/distribution | ||||
TMethodCall *fMethodCall; //! ROOT's pointer to user-defined global | ||||
distribution function | ||||
TRandom3 *fPseRan; // Pointer to user-defined generator of ps eudorandom numbers | TRandom3 *fPseRan; // Pointer to user-defined generator of ps eudorandom numbers | |||
//----------- Statistics and MC results | ||||
Long_t fNCalls; // Total number of the function calls | ||||
Long_t fNEffev; // Total number of effective events (wt=1) | ||||
in the foam buildup | ||||
Double_t fSumWt, fSumWt2; // Total sum of wt and wt^2 | ||||
Double_t fSumOve; // Total Sum of overveighted events | ||||
Double_t fNevGen; // Total number of the generated MC events | ||||
Double_t fWtMax, fWtMin; // Maximum/Minimum MC weight | ||||
Double_t fPrime; // Primary integral R' (R=R'<wt>) | ||||
Double_t fMCresult; // True Integral R from MC series | ||||
Double_t fMCerror; // and its error | ||||
//---------- working space for CELL exploration ------------- | //---------- working space for CELL exploration ------------- | |||
Double_t *fAlpha; // [fDim] Internal parameters of the hyper rectangle | Double_t *fAlpha; // [fDim] Internal parameters of the hyper rectangle | |||
// --------- PDE-Foam specific variables | // --------- PDE-Foam specific variables | |||
EFoamType fFoamType; // type of foam | ||||
Double_t *fXmin; // [fDim] minimum for variable transform | Double_t *fXmin; // [fDim] minimum for variable transform | |||
Double_t *fXmax; // [fDim] maximum for variable transform | Double_t *fXmax; // [fDim] maximum for variable transform | |||
UInt_t fNElements; // number of variables in every cell | UInt_t fNElements; // number of variables in every cell | |||
Bool_t fCutNmin; // true: activate cut on minimal number of e vents in cell | Bool_t fCutNmin; // true: activate cut on minimal number of e vents in cell | |||
UInt_t fNmin; // minimal number of events in cell to split cell | UInt_t fNmin; // minimal number of events in cell to split cell | |||
Bool_t fCutRMSmin; // true: peek cell with max. RMS for next s plit | Bool_t fCutRMSmin; // true: peek cell with max. RMS for next sp lit | |||
Double_t fRMSmin; // activate cut: minimal RMS in cell to spli t cell | Double_t fRMSmin; // activate cut: minimal RMS in cell to spli t cell | |||
Float_t fVolFrac; // volume fraction (with respect to total ph ase space | Float_t fVolFrac; // volume fraction (with respect to total ph ase space | |||
TFDISTR *fDistr; //! density from extern | PDEFoamDistr *fDistr; //! distribution of training events | |||
Timer *fTimer; // timer for graphical output | Timer *fTimer; // timer for graphical output | |||
TObjArray *fVariableNames;// collection of all variable names | TObjArray *fVariableNames;// collection of all variable names | |||
Int_t fSignalClass; // TODO: intermediate solution to keep IsSig nal() of Event working. TODO: remove IsSignal() from Event | Int_t fSignalClass; // TODO: intermediate solution to keep IsSig nal() of Event working. TODO: remove IsSignal() from Event | |||
Int_t fBackgroundClass; // TODO: intermediate solution to keep IsSig nal() of Event working. TODO: remove IsSignal() from Event | Int_t fBackgroundClass; // TODO: intermediate solution to keep IsSig nal() of Event working. TODO: remove IsSignal() from Event | |||
mutable MsgLogger* fLogger; //! message logger | mutable MsgLogger* fLogger; //! message logger | |||
MsgLogger& Log() const { return *fLogger; } | MsgLogger& Log() const { return *fLogger; } | |||
///////////////////////////////////////////////////////////////////// | ///////////////////////////////////////////////////////////////// | |||
///////////////////////// | // METHODS // | |||
// METHODS | ///////////////////////////////////////////////////////////////// | |||
// | ||||
///////////////////////////////////////////////////////////////////// | ||||
///////////////////////// | ||||
private: | private: | |||
Double_t Sqr(Double_t x) const { return x*x;} // Square function | Double_t Sqr(Double_t x) const { return x*x;} // Square function | |||
protected: | protected: | |||
// override PDEFoam::OutputGrow(Bool_t) for nicer TMVA output | // ---------- TMVA console output | |||
virtual void OutputGrow(Bool_t finished = false ); | ||||
// weight result from function with kernel | void OutputGrow(Bool_t finished = false ); // nice TMVA console outpu | |||
Double_t WeightGaus(PDEFoamCell*, std::vector<Float_t>, UInt_t dim=0) | t | |||
; | ||||
Double_t WeightLinNeighbors( std::vector<Float_t> txvec, ECellValue c | ||||
v ); | ||||
public: | // ---------- Weighting functions for kernels | |||
PDEFoam(); // Default constructor (used only by ROOT | ||||
streamer) | ||||
PDEFoam(const TString&); // Principal user-defined constructor | ||||
virtual ~PDEFoam(); // Default destructor | ||||
PDEFoam(const PDEFoam&); // Copy Constructor NOT USED | ||||
// Initialization | Float_t WeightGaus(PDEFoamCell*, std::vector<Float_t>, UInt_t dim=0); | |||
virtual void Initialize(Bool_t CreateCellElements); // Initialisa | ||||
tion of foam | ||||
virtual void Initialize(TRandom3*, PDEFoamIntegrand *); // Alternativ | ||||
e initialization method, backward compatibility | ||||
virtual void InitCells(Bool_t CreateCellElements); // Initialisa | ||||
tion of all foam cells | ||||
virtual Int_t CellFill(Int_t, PDEFoamCell*);// Allocates new empty ce | ||||
ll and return its index | ||||
virtual void Explore(PDEFoamCell *Cell); // Exploration of the new | ||||
cell, determine <wt>, wtMax etc. | ||||
virtual void Carver(Int_t&,Double_t&,Double_t&);// Determines the bes | ||||
t edge, wt_max reduction | ||||
virtual void Varedu(Double_t [], Int_t&, Double_t&,Double_t&); // Det | ||||
ermines the best edge, variace reduction | ||||
virtual void MakeAlpha(); // Provides random point in | ||||
side hyperrectangle | ||||
virtual void Grow(); // build up foam | ||||
virtual Long_t PeekMax(); // peek cell with max. driv | ||||
er integral | ||||
virtual Int_t Divide(PDEFoamCell *); // Divide iCell into two da | ||||
ughters; iCell retained, taged as inactive | ||||
virtual void MakeActiveList(); // Creates table of active | ||||
cells | ||||
virtual void GenerCel2(PDEFoamCell *&); // Chose an active cell the | ||||
with probability ~ Primary integral | ||||
// Generation | ||||
virtual Double_t Eval(Double_t *xRand, Double_t &event_density); // e | ||||
valuate distribution on point 'xRand' | ||||
virtual Double_t Eval(Double_t *xRand){ // evaluate distribution on | ||||
point 'xRand' | ||||
Double_t event_density = 0; | ||||
return Eval(xRand, event_density); | ||||
}; | ||||
virtual void MakeEvent(); // Makes (generates) single | ||||
MC event | ||||
virtual void GetMCvect(Double_t *); // Provides generated rando | ||||
mly MC vector | ||||
virtual void GetMCwt(Double_t &); // Provides generated MC we | ||||
ight | ||||
virtual Double_t GetMCwt(); // Provides generates MC we | ||||
ight | ||||
virtual Double_t MCgenerate(Double_t *MCvect);// All three above func | ||||
tion in one | ||||
// Finalization | ||||
virtual void GetIntegMC(Double_t&, Double_t&); // Provides Integrand | ||||
and abs. error from MC run | ||||
virtual void GetIntNorm(Double_t&, Double_t&); // Provides normaliza | ||||
tion Inegrand | ||||
virtual void GetWtParams(Double_t, Double_t&, Double_t&, Double_t&);/ | ||||
/ Provides MC weight parameters | ||||
virtual void Finalize( Double_t&, Double_t&); // Prints summary o | ||||
f MC integration | ||||
virtual PDEFoamIntegrand *GetRho(){return fRho;} // Gets pointer of | ||||
the distribut. (after restoring from disk) | ||||
virtual TRandom3*GetPseRan() const {return fPseRan;} // Gets pointe | ||||
r of r.n. generator (after restoring from disk) | ||||
virtual void SetRhoInt(void *Rho); // Set new integrand | ||||
distr. in interactive mode | ||||
virtual void SetRho(PDEFoamIntegrand *Rho); // Set new integrand | ||||
distr. in compiled mode | ||||
virtual void ResetRho(PDEFoamIntegrand *Rho); // Set new | ||||
distribution, delete old | ||||
virtual void SetPseRan(TRandom3*PseRan){fPseRan=PseRan;} // Set new | ||||
r.n. generator | ||||
virtual void ResetPseRan(TRandom3*PseRan); // Set new | ||||
r.n.g, delete old | ||||
// Getters and Setters | ||||
virtual void SetkDim(Int_t kDim){ // Sets dimension of cubical space | ||||
fDim = kDim; | ||||
if (fXmin) delete [] fXmin; | ||||
if (fXmax) delete [] fXmax; | ||||
fXmin = new Double_t[GetTotDim()]; | ||||
fXmax = new Double_t[GetTotDim()]; | ||||
} | ||||
virtual void SetnCells(Long_t nCells){fNCells =nCells;} // Sets maxi | ||||
mum number of cells | ||||
virtual void SetnSampl(Long_t nSampl){fNSampl =nSampl;} // Sets no o | ||||
f MC events in cell exploration | ||||
virtual void SetnBin(Int_t nBin){fNBin = nBin;} // Sets no o | ||||
f bins in histogs in cell exploration | ||||
virtual void SetChat(Int_t Chat){fChat = Chat;} // Sets opti | ||||
on Chat, chat level | ||||
virtual void SetOptRej(Int_t OptRej){fOptRej =OptRej;} // Sets opti | ||||
on for MC rejection | ||||
virtual void SetOptDrive(Int_t OptDrive){fOptDrive =OptDrive;} // S | ||||
ets optimization switch | ||||
virtual void SetEvPerBin(Int_t EvPerBin){fEvPerBin =EvPerBin;} // S | ||||
ets max. no. of effective events per bin | ||||
virtual void SetMaxWtRej(Double_t MaxWtRej){fMaxWtRej=MaxWtRej;} // S | ||||
ets max. weight for rejection | ||||
virtual void SetInhiDiv(Int_t, Int_t ); // Set inhibition | ||||
of cell division along certain edge | ||||
virtual void SetXdivPRD(Int_t, Int_t, Double_t[]); // Set predefined | ||||
division points | ||||
// Getters and Setters | ||||
virtual const char *GetVersion() const {return fVersion.Data();}// Ge | ||||
t version of the FOAM | ||||
virtual Int_t GetTotDim() const { return fDim;} // Ge | ||||
t total dimension | ||||
virtual Double_t GetPrimary() const {return fPrime;} // Ge | ||||
t value of primary integral R' | ||||
virtual void GetPrimary(Double_t &prime) {prime = fPrime;} // Ge | ||||
t value of primary integral R' | ||||
virtual Long_t GetnCalls() const {return fNCalls;} // Ge | ||||
t total no. of the function calls | ||||
virtual Long_t GetnEffev() const {return fNEffev;} // Ge | ||||
t total no. of effective wt=1 events | ||||
virtual TString GetFoamName() const {return fName;} // Ge | ||||
t name of foam | ||||
// Debug | ||||
virtual void CheckAll(Int_t); // Checks correctness of the entire | ||||
data structure in the FOAM object | ||||
virtual void PrintCells(); // Prints content of all cells | ||||
virtual void LinkCells(void); // Void function for backward compa | ||||
tibility | ||||
// getter and setter to activate cut options | ||||
void CutNmin(Bool_t cut ) { fCutNmin = cut; } | ||||
Bool_t CutNmin() { return fCutNmin; } | ||||
void CutRMSmin(Bool_t cut ) { fCutRMSmin = cut; } | ||||
Bool_t CutRMSmin() { return fCutRMSmin; } | ||||
// getter and setter for cut values | ||||
void SetNmin(UInt_t val) { fNmin=val; } | ||||
UInt_t GetNmin() { return fNmin; } | ||||
void SetRMSmin(Double_t val) { fRMSmin=val; } | ||||
Double_t GetRMSmin() { return fRMSmin; } | ||||
// foam output operators | Double_t WeightLinNeighbors( std::vector<Float_t> txvec, ECellValue c | |||
friend std::ostream& operator<< ( std::ostream& os, const PDEFoam& pd | v, | |||
efoam ); | Int_t dim1=-1, Int_t dim2=-1, | |||
friend std::istream& operator>> ( std::istream& istr, PDEFoam& pd | Bool_t TreatEmptyCells=kFALSE ); | |||
efoam ); | ||||
void ReadStream(istream &); // read foam from stream | // ---------- Foam build-up functions | |||
void PrintStream(ostream &) const; // write foam from stream | ||||
void ReadXML( void* parent ); // read foam variables from xml | ||||
void AddXMLTo( void* parent ); // write foam variables to xml | ||||
// getters/ setters for foam boundaries | // Internal foam initialization functions | |||
void SetXmin(Int_t idim, Double_t wmin){ | void InitCells(Bool_t CreateCellElements); // Initialisation of | |||
fXmin[idim]=wmin; | all foam cells | |||
fDistr->SetXmin(idim, wmin); | Int_t CellFill(Int_t, PDEFoamCell*);// Allocates new empty cell and r | |||
return; | eturn its index | |||
} | void Explore(PDEFoamCell *Cell); // Exploration of the new cell, d | |||
void SetXmax(Int_t idim, Double_t wmax){ | etermine <wt>, wtMax etc. | |||
fXmax[idim]=wmax; | void Varedu(Double_t [], Int_t&, Double_t&,Double_t&); // Determines | |||
fDistr->SetXmax(idim, wmax); | the best edge, variace reduction | |||
return; | void MakeAlpha(); // Provides random point inside hyperre | |||
} | ctangle | |||
Double_t GetXmin(Int_t idim){return fXmin[idim];} | void Grow(); // build up foam | |||
Double_t GetXmax(Int_t idim){return fXmax[idim];} | Long_t PeekMax(); // peek cell with max. driver integral | |||
Int_t Divide(PDEFoamCell *); // Divide iCell into two daughters; iCe | ||||
ll retained, taged as inactive | ||||
Double_t Eval(Double_t *xRand, Double_t &event_density); // evaluate | ||||
distribution on point 'xRand' | ||||
// getter/ setter for variable name | // ---------- Cell value access functions | |||
void AddVariableName(const char *s){ | ||||
TObjString *os = new TObjString(s); | ||||
AddVariableName(os); | ||||
}; | ||||
void AddVariableName(TObjString *s){ | ||||
fVariableNames->Add(s); | ||||
}; | ||||
TObjString* GetVariableName(Int_t idx){ | ||||
return dynamic_cast<TObjString*>(fVariableNames->At(idx)); | ||||
}; | ||||
// transformation functions for event variable into foam boundaries | // low level functions to access a certain cell value | |||
// reason: foam allways has boundaries [0, 1] | TVectorD* GetCellElements(std::vector<Float_t>); // return cell | |||
Float_t VarTransform(Int_t idim, Float_t x){ // transform [xmi | elements of cell with given coordinates | |||
n, xmax] --> [0, 1] | Double_t GetCellElement(PDEFoamCell *cell, UInt_t i); // get Element | |||
Float_t b=fXmax[idim]-fXmin[idim]; | 'i' in cell 'cell' | |||
return (x-fXmin[idim])/b; | void SetCellElement(PDEFoamCell *cell, UInt_t i, Double_t value); // | |||
} | set Element 'i' in cell 'cell' to value 'value' | |||
std::vector<Float_t> VarTransform(std::vector<Float_t> invec){ | ||||
std::vector<Float_t> outvec; | ||||
for(UInt_t i=0; i<invec.size(); i++) | ||||
outvec.push_back(VarTransform(i, invec.at(i))); | ||||
return outvec; | ||||
} | ||||
Float_t VarTransformInvers(Int_t idim, Float_t x){ // transform [0, | ||||
1] --> [xmin, xmax] | ||||
Float_t b=fXmax[idim]-fXmin[idim]; | ||||
return x*b + fXmin[idim]; | ||||
} | ||||
std::vector<Float_t> VarTransformInvers(std::vector<Float_t> invec){ | ||||
std::vector<Float_t> outvec; | ||||
for(UInt_t i=0; i<invec.size(); i++) | ||||
outvec.push_back(VarTransformInvers(i, invec.at(i))); | ||||
return outvec; | ||||
} | ||||
// projection method | // helper functions to access cell data | |||
virtual TH2D* Project2(Int_t idim1, Int_t idim2, const char *opt="nev | Double_t GetCellValue(PDEFoamCell*, ECellValue); | |||
", const char *ker="kNone", UInt_t maxbins=0); | ||||
// Project foam by creating MC events | // specific function used during evaluation; determines, whether a ce | |||
virtual TH2D* ProjectMC(Int_t idim1, Int_t idim2, Int_t nevents, Int_ | ll value is undefined | |||
t nbin); | Bool_t CellValueIsUndefined( PDEFoamCell* ); | |||
// Draw a 1-dim histogram | // finds cell according to given event variables | |||
virtual TH1D* Draw1Dim(const char *opt, Int_t nbin); | PDEFoamCell* FindCell(std::vector<Float_t>); //! | |||
std::vector<TMVA::PDEFoamCell*> FindCells(std::vector<Float_t>); //! | ||||
// Generates C++ code (root macro) for drawing foam with boxes (only | // find cells, which fit a given event vector | |||
2-dim!) | void FindCellsRecursive(std::vector<Float_t>, PDEFoamCell*, | |||
virtual void RootPlot2dim( const TString& filename, std::string what, | std::vector<PDEFoamCell*> &); | |||
Bool_t CreateCanvas = kTRUE, Bool_t colors | ||||
= kTRUE, Bool_t log_colors = kFALSE ); | // calculates the mean/ mpv target values for a given event 'tvals' | |||
std::vector<Float_t> GetCellTargets( std::vector<Float_t> tvals, ETar | ||||
getSelection ts ); | ||||
// get number of events in cell during foam build-up | ||||
Double_t GetBuildUpCellEvents(PDEFoamCell* cell); | ||||
// init TObject pointer on cells | // ---------- Public functions ---------------------------------- | |||
void ResetCellElements(Bool_t allcells = false); | public: | |||
PDEFoam(); // Default constructor (used only by ROOT | ||||
streamer) | ||||
PDEFoam(const TString&); // Principal user-defined constructor | ||||
virtual ~PDEFoam(); // Default destructor | ||||
PDEFoam(const PDEFoam&); // Copy Constructor NOT USED | ||||
// low level functions to access a certain cell value | // ---------- Foam creation functions | |||
TVectorD* GetCellElements(std::vector<Float_t>); // return cell | ||||
elements of cell with given coordinates | ||||
Double_t GetCellElement(PDEFoamCell *cell, UInt_t i); // get Element | ||||
'i' in cell 'cell' | ||||
void SetCellElement(PDEFoamCell *cell, UInt_t i, Double_t value); // | ||||
set Element 'i' in cell 'cell' to value 'value' | ||||
void SetNElements(UInt_t numb){ fNElements = numb; } // init every | ||||
cell element (TVectorD*) | ||||
UInt_t GetNElements(){ return fNElements; } // returns num | ||||
ber of elements, saved on every cell | ||||
void DisplayCellContent(void); // debug function | void Init(); // initialize PDEFoamDistr | |||
void FillBinarySearchTree( const Event* ev, Bool_t NoNegWeights=kFALS | ||||
E ); | ||||
void Create(Bool_t CreateCellElements=false); // build-up foam | ||||
// functions to fill created cells with certain values | // function to fill created cell with given value | |||
void FillFoamCells(const Event* ev, EFoamType ft, Bool_t NoNegWeights | void FillFoamCells(const Event* ev, Bool_t NoNegWeights=kFALSE); | |||
=kFALSE); | ||||
// functions to calc discriminators/ mean targets for every cell | // functions to calc discriminators/ mean targets for every cell | |||
// using filled cell values | // using filled cell values | |||
void CalcCellDiscr(); | void CalcCellDiscr(); | |||
void CalcCellTarget(); | void CalcCellTarget(); | |||
// helper functions to access cell data | // init TObject pointer on cells | |||
Double_t GetCellMean(std::vector<Float_t> xvec); | void ResetCellElements(Bool_t allcells = false); | |||
Double_t GetCellRMS(std::vector<Float_t> xvec); | ||||
Double_t GetCellEntries(std::vector<Float_t> xvec); | ||||
Double_t GetCellDiscr(std::vector<Float_t> xvec, EKernel kernel=kNone | ||||
); | ||||
Double_t GetCellDiscrError(std::vector<Float_t> xvec); | ||||
Double_t GetCellDensity(std::vector<Float_t> xvec, EKernel kernel=kNo | ||||
ne); | ||||
Double_t GetCellMean(PDEFoamCell* cell); | // ---------- Getters and Setters | |||
Double_t GetCellRMS(PDEFoamCell* cell); | ||||
Double_t GetCellRMSovMean(PDEFoamCell* cell); | ||||
Double_t GetCellEntries(PDEFoamCell* cell); | ||||
Double_t GetCellEvents(PDEFoamCell* cell); | ||||
Double_t GetCellDiscr(PDEFoamCell* cell); | ||||
Double_t GetCellDiscrError(PDEFoamCell* cell); | ||||
Double_t GetCellRegValue0(PDEFoamCell* cell); // returns regression v | ||||
alue (regression method 1) | ||||
Double_t GetCellDensity(PDEFoamCell*); | ||||
// returns regression value (mono target regression) | void SetkDim(Int_t kDim); // Sets dimension of cubical space | |||
Double_t GetCellRegValue0(std::vector<Float_t>, EKernel kernel=kNone) | void SetnCells(Long_t nCells){fNCells =nCells;} // Sets maximum numb | |||
; | er of cells | |||
// returns regression value i, given all variables (multi target regr | void SetnSampl(Long_t nSampl){fNSampl =nSampl;} // Sets no of MC eve | |||
ession) | nts in cell exploration | |||
Double_t GetProjectedRegValue(UInt_t i, std::vector<Float_t> vals, EK | void SetnBin(Int_t nBin){fNBin = nBin;} // Sets no of bins i | |||
ernel kernel=kNone, ETargetSelection ts=kMean); | n histogs in cell exploration | |||
Double_t GetCellTarget(UInt_t target_number, std::vector<Float_t> tva | void SetEvPerBin(Int_t EvPerBin){fEvPerBin =EvPerBin;} // Sets max. n | |||
ls, ETargetSelection ts); | o. of effective events per bin | |||
void SetInhiDiv(Int_t, Int_t ); // Set inhibition of cell division al | ||||
ong certain edge | ||||
void SetNElements(UInt_t numb){fNElements = numb;} // init every cell | ||||
element (TVectorD*) | ||||
void SetPDEFoamVolumeFraction(Double_t vfr){fVolFrac = vfr;} // set V | ||||
olFrac to PDEFoam | ||||
void SetVolumeFraction(Double_t); // set VolFrac to PDEFoamDistr | ||||
void SetFoamType(EFoamType ft); // set foam type | ||||
// helper/ debug functions | void SetSignalClass( Int_t cls ) { fSignalClass = cls; fDistr->Se | |||
Double_t GetSumCellIntg(); // test function. calculates sum | tSignalClass( cls ); } // TODO: intermediate solution to keep IsSignal() of | |||
over all cell->GetIntg() | Event working. TODO: remove IsSignal() from Event | |||
Double_t GetSumCellElements(UInt_t); // test function. calculates sum | void SetBackgroundClass( Int_t cls ) { fBackgroundClass = cls; fDistr | |||
over all cell->GetCellElement() | ->SetBackgroundClass( cls ); } // TODO: intermediate solution to keep IsSig | |||
UInt_t GetNActiveCells(); // returns number of active cell | nal() of Event working. TODO: remove IsSignal() from Event | |||
s | ||||
UInt_t GetNInActiveCells(); // returns number of not active | ||||
cells | ||||
UInt_t GetNCells(); // returns number of cells | ||||
PDEFoamCell* GetRootCell(); // get pointer to root cell | ||||
Int_t GetSumCellMemory(ECellType ct = kAll); // return memory cons | ||||
umtion of all cells | ||||
void CheckCells(Bool_t remove_empty_cells=false); // check all ce | ||||
lls with respect to critical values | ||||
void RemoveEmptyCell(Int_t iCell); // removes iCell if its volume | ||||
is zero | ||||
void PrintCellElements(); // print all cells with its el | ||||
ements | ||||
// find cell according to given event variables | Int_t GetTotDim() const {return fDim; } // Get total dimension | |||
PDEFoamCell* FindCell(std::vector<Float_t>); //! | TString GetFoamName() const {return fName; } // Get name of foam | |||
UInt_t GetNElements() const {return fNElements; } // returns number | ||||
of elements, saved on every cell | ||||
Double_t GetPDEFoamVolumeFraction() const {return fVolFrac;} // get V | ||||
olFrac from PDEFoam | ||||
EFoamType GetFoamType() const {return fFoamType;}; // get foam t | ||||
ype | ||||
UInt_t GetNActiveCells() const {return fNoAct;}; // returns numbe | ||||
r of active cells | ||||
UInt_t GetNInActiveCells() const {return GetNCells()-GetNActiveCell | ||||
s();}; // returns number of not active cells | ||||
UInt_t GetNCells() const {return fNCells;}; // returns nu | ||||
mber of cells | ||||
PDEFoamCell* GetRootCell() const {return fCells[0];}; // get pointe | ||||
r to root cell | ||||
// Getters and Setters for user cut options | ||||
void CutNmin(Bool_t cut ) { fCutNmin = cut; } | ||||
Bool_t CutNmin() { return fCutNmin; } | ||||
void CutRMSmin(Bool_t cut ) { fCutRMSmin = cut; } | ||||
Bool_t CutRMSmin() { return fCutRMSmin; } | ||||
void SetNmin(UInt_t val) { fNmin=val; } | ||||
UInt_t GetNmin() { return fNmin; } | ||||
void SetRMSmin(Double_t val) { fRMSmin=val; } | ||||
Double_t GetRMSmin() { return fRMSmin; } | ||||
// helper functions to include TFDISTR into the PDEFoam class | // Getters and Setters for foam boundaries | |||
// set VolFrac to PDEFoam | void SetXmin(Int_t idim, Double_t wmin); | |||
void SetPDEFoamVolumeFraction( Double_t vfr) { fVolFrac = vfr; } | void SetXmax(Int_t idim, Double_t wmax); | |||
// get VolFrac from PDEFoam | Double_t GetXmin(Int_t idim){return fXmin[idim];} | |||
Double_t GetPDEFoamVolumeFraction() const { return fVolFrac; } | Double_t GetXmax(Int_t idim){return fXmax[idim];} | |||
void SetVolumeFraction(Double_t); // set VolFrac to TFDISTR | ||||
void FillBinarySearchTree( const Event* ev, EFoamType ft, Bool_t NoNe | ||||
gWeights=kFALSE ); | ||||
void Create(Bool_t CreateCellElements=false); // create PDEFoam | ||||
void Init(); // initialize TFDISTR | ||||
void PrintDensity(); // debug output | ||||
void SetFoamType(EFoamType ft); | ||||
void SetSignalClass( Int_t cls ) { fSignalClass = cls; fDistr->Se | // Getters and Setters for variable names | |||
tSignalClass( cls ); } // TODO: intermediate solution to keep IsSignal() of | void AddVariableName(const char *s) { AddVariableName(new TObjString( | |||
Event working. TODO: remove IsSignal() from Event | s)); }; | |||
void SetBackgroundClass( Int_t cls ) { fBackgroundClass = cls; fDistr | void AddVariableName(TObjString *s) { fVariableNames->Add(s); }; | |||
->SetBackgroundClass( cls ); } // TODO: intermediate solution to keep IsSig | TObjString* GetVariableName(Int_t idx) {return dynamic_cast<TObjStrin | |||
nal() of Event working. TODO: remove IsSignal() from Event | g*>(fVariableNames->At(idx));}; | |||
///////////////////////////////////////////////////////////////////// | // ---------- Transformation functions for event variables into foam | |||
///////////////////////// | boundaries | |||
ClassDef(PDEFoam,3) // General purpose self-adapting binning | // reason: foam allways has boundaries [0, 1] | |||
}; // end of PDEFoam | ||||
} // namespace TMVA | Float_t VarTransform(Int_t idim, Float_t x); // transform [xmin | |||
, xmax] --> [0, 1] | ||||
std::vector<Float_t> VarTransform(std::vector<Float_t> invec); | ||||
Float_t VarTransformInvers(Int_t idim, Float_t x); // transform [0, 1 | ||||
] --> [xmin, xmax] | ||||
std::vector<Float_t> VarTransformInvers(std::vector<Float_t> invec); | ||||
// ---------- Debug functions | ||||
void CheckAll(Int_t); // Checks correctness of the entire data s | ||||
tructure in the FOAM object | ||||
void PrintCells(); // Prints content of all cells | ||||
void CheckCells(Bool_t remove_empty_cells=false); // check all | ||||
cells with respect to critical values | ||||
void RemoveEmptyCell(Int_t iCell); // removes iCell if its volume | ||||
is zero | ||||
void PrintCellElements(); // print all cells with its el | ||||
ements | ||||
/////////////////////////////////////////////////////////////////////////// | // ---------- Foam output | |||
///////// | ||||
// | ||||
// | ||||
// Class PDEFoamCell used in PDEFoam | ||||
// | ||||
// | ||||
// | ||||
// Objects of this class are hyperrectangular cells organized in the binary | ||||
tree. // | ||||
// Special algoritm for encoding relalive positioning of the cells | ||||
// | ||||
// saves total memory allocation needed for the system of cells. | ||||
// | ||||
// | ||||
// | ||||
/////////////////////////////////////////////////////////////////////////// | ||||
///////// | ||||
namespace TMVA { | friend std::ostream& operator<< ( std::ostream& os, const PDEFoam& pd | |||
efoam ); | ||||
friend std::istream& operator>> ( std::istream& istr, PDEFoam& pd | ||||
efoam ); | ||||
class PDEFoamVect; | void ReadStream(istream &); // read foam from stream | |||
void PrintStream(ostream &) const; // write foam from stream | ||||
void ReadXML( void* parent ); // read foam variables from xml | ||||
void AddXMLTo( void* parent ); // write foam variables to xml | ||||
class PDEFoamCell : public TObject { | // ---------- Foam projection methods | |||
// static, the same for all cells! | // project foam to two-dimensional histogram | |||
private: | TH2D* Project2(Int_t idim1, Int_t idim2, const char *opt="nev", | |||
Short_t fDim; // Dimension of the vector space | const char *ker="kNone", UInt_t maxbins=0); | |||
// MEMBERS | ||||
// helper function for Project2() | ||||
Double_t GetProjectionCellValue( PDEFoamCell* cell, | ||||
Int_t idim1, Int_t idim2, ECellValue | ||||
cv ); | ||||
private: | // Project one-dimensional foam to a 1-dim histogram | |||
//--- linked tree organization --- | TH1D* Draw1Dim(const char *opt, Int_t nbin); | |||
Int_t fSerial; // Serial number | ||||
Int_t fStatus; // Status (active, inactive) | ||||
TRef fParent; // Pointer to parent cell | ||||
TRef fDaught0; // Pointer to daughter 1 | ||||
TRef fDaught1; // Pointer to daughter 2 | ||||
//--- M.C. sampling and choice of the best edge --- | ||||
private: | // Generates C++ code (root macro) for drawing foam with boxes (only | |||
Double_t fXdiv; // Factor for division | 2-dim!) | |||
Int_t fBest; // Best Edge for division | void RootPlot2dim( const TString& filename, std::string what, | |||
//--- Integrals of all kinds --- | Bool_t CreateCanvas = kTRUE, Bool_t colors = kTRUE | |||
Double_t fVolume; // Cartesian Volume of cell | , | |||
Double_t fIntegral; // Integral over cell (estimate from | Bool_t log_colors = kFALSE ); | |||
exploration) | ||||
Double_t fDrive; // Driver integral, only for cell b | ||||
uild-up | ||||
Double_t fPrimary; // Primary integral, only for MC gen | ||||
eration | ||||
//---------- working space for the user -------------- | ||||
TObject *fElement; // may set by the user to save some | ||||
data in this cell | ||||
///////////////////////////////////////////////////////////////////// | ||||
///////////////// | ||||
// METHODS | ||||
// | ||||
///////////////////////////////////////////////////////////////////// | ||||
///////////////// | ||||
public: | ||||
PDEFoamCell(); // Default Constructor for RO | ||||
OT streamers | ||||
PDEFoamCell(Int_t); // User Constructor | ||||
PDEFoamCell(PDEFoamCell &); // Copy Constructor | ||||
virtual ~PDEFoamCell(); // Destructor | ||||
void Fill(Int_t, PDEFoamCell*, PDEFoamCell*, PDEFoamCell*); // As | ||||
signs values of attributes | ||||
PDEFoamCell& operator=(const PDEFoamCell&); // Substitution op | ||||
erator (never used) | ||||
//--------------- Geometry ---------------------------------- | ||||
Double_t GetXdiv() const { return fXdiv;} // Pointer to Xdi | ||||
v | ||||
Int_t GetBest() const { return fBest;} // Pointer to Bes | ||||
t | ||||
void SetBest(Int_t Best){ fBest =Best;} // Set Best edge | ||||
candidate | ||||
void SetXdiv(Double_t Xdiv){ fXdiv =Xdiv;} // Set x-division | ||||
for best edge cand. | ||||
void GetHcub( PDEFoamVect&, PDEFoamVect&) const; // Get positi | ||||
on and size vectors (h-cubical subspace) | ||||
void GetHSize( PDEFoamVect& ) const; // Get size onl | ||||
y of cell vector (h-cubical subspace) | ||||
//--------------- Integrals/Volumes ------------------------- | ||||
void CalcVolume(); // Calculates vol | ||||
ume of cell | ||||
Double_t GetVolume() const { return fVolume;} // Volume of cell | ||||
Double_t GetIntg() const { return fIntegral;} // Get Integral | ||||
Double_t GetDriv() const { return fDrive;} // Get Drive | ||||
Double_t GetPrim() const { return fPrimary;} // Get Primary | ||||
void SetIntg(Double_t Intg){ fIntegral=Intg;} // Set true integ | ||||
ral | ||||
void SetDriv(Double_t Driv){ fDrive =Driv;} // Set driver int | ||||
egral | ||||
void SetPrim(Double_t Prim){ fPrimary =Prim;} // Set primary in | ||||
tegral | ||||
//--------------- linked tree organization ------------------ | ||||
Int_t GetStat() const { return fStatus;} // Get Status | ||||
void SetStat(Int_t Stat){ fStatus=Stat;} // Set Status | ||||
PDEFoamCell* GetPare() const { return (PDEFoamCell*) fParent.GetObjec | ||||
t(); } // Get Pointer to parent cell | ||||
PDEFoamCell* GetDau0() const { return (PDEFoamCell*) fDaught0.GetObje | ||||
ct(); } // Get Pointer to 1-st daughter vertex | ||||
PDEFoamCell* GetDau1() const { return (PDEFoamCell*) fDaught1.GetObje | ||||
ct(); } // Get Pointer to 2-nd daughter vertex | ||||
void SetDau0(PDEFoamCell* Daug){ fDaught0 = Daug;} // Set point | ||||
er to 1-st daughter | ||||
void SetDau1(PDEFoamCell* Daug){ fDaught1 = Daug;} // Set point | ||||
er to 2-nd daughter | ||||
void SetPare(PDEFoamCell* Pare){ fParent = Pare;} // Set point | ||||
er to parent | ||||
void SetSerial(Int_t Serial){ fSerial=Serial;} // Set serial | ||||
number | ||||
Int_t GetSerial() const { return fSerial;} // Get serial | ||||
number | ||||
//--- other --- | ||||
void Print(Option_t *option) const ; // Prints cell | ||||
content | ||||
//--- getter and setter for user variable --- | ||||
void SetElement(TObject* fobj){ fElement = fobj; } // Set user va | ||||
riable | ||||
TObject* GetElement(){ return fElement; } // Get pointer | ||||
to user varibale | ||||
///////////////////////////////////////////////////////////////////// | ||||
/////// | ||||
ClassDef(PDEFoamCell,1) //Single cell of FOAM | ||||
}; // end of PDEFoamCell | ||||
} // namespace TMVA | ||||
////////////////////////////////////////////////////////////////// | ||||
// // | ||||
// Small auxiliary class for controlling MC weight. // | ||||
// // | ||||
////////////////////////////////////////////////////////////////// | ||||
namespace TMVA { | // ---------- Foam evaluation functions | |||
class PDEFoamMaxwt : public TObject { | // get cell value for a given event | |||
Double_t GetCellValue(std::vector<Float_t>, ECellValue); | ||||
private: | // helper functions to access cell data with kernel | |||
Double_t fNent; // No. of MC events | Double_t GetCellDiscr(std::vector<Float_t> xvec, EKernel kernel=kNone | |||
Int_t fnBin; // No. of bins on the weight distribution | ); | |||
Double_t fwmax; // Maximum analyzed weight | Double_t GetCellDensity(std::vector<Float_t> xvec, EKernel kernel=kNo | |||
ne); | ||||
protected: | // calc mean cell value of neighbor cells | |||
mutable MsgLogger* fLogger; //! message logger | Double_t GetAverageNeighborsValue(std::vector<Float_t> txvec, ECellVa | |||
MsgLogger& Log() const { return *fLogger; } | lue cv); | |||
public: | // returns regression value (mono target regression) | |||
Double_t GetCellRegValue0(std::vector<Float_t>, EKernel kernel=kNone) | ||||
; | ||||
TH1D *fWtHst1; // Histogram of the weight wt | // returns regression value i, given all variables (multi target regr | |||
TH1D *fWtHst2; // Histogram of wt filled with wt | ession) | |||
std::vector<Float_t> GetProjectedRegValue(std::vector<Float_t> vals, | ||||
EKernel kernel=kNone, ETargetSelection ts=kMean); | ||||
public: | // ---------- ROOT class definition | |||
// constructor | ClassDef(PDEFoam,3) | |||
PDEFoamMaxwt(); // NOT IMPLEMENTED (NEVER US | }; // end of PDEFoam | |||
ED) | ||||
PDEFoamMaxwt(Double_t, Int_t); // Principal Constructor | ||||
PDEFoamMaxwt(PDEFoamMaxwt &From); // Copy constructor | ||||
virtual ~PDEFoamMaxwt(); // Destructor | ||||
void Reset(); // Reset | ||||
PDEFoamMaxwt& operator=(const PDEFoamMaxwt &); // operator = | ||||
void Fill(Double_t); | ||||
void Make(Double_t, Double_t&); | ||||
void GetMCeff(Double_t, Double_t&, Double_t&); // get MC efficiency= | ||||
<w>/wmax | ||||
ClassDef(PDEFoamMaxwt,1); //Controlling of the MC weight (maximum wei | ||||
ght) | ||||
}; // end of PDEFoamMaxwt | ||||
} // namespace TMVA | ||||
/////////////////////////////////////////////////////////////////////////// | ||||
///// | ||||
// | ||||
// | ||||
// Auxiliary class PDEFoamVect of n-dimensional vector, with dynamic alloca | ||||
tion // | ||||
// used for the cartesian geometry of the PDEFoam cells | ||||
// | ||||
// | ||||
// | ||||
/////////////////////////////////////////////////////////////////////////// | ||||
///// | ||||
namespace TMVA { | } // namespace TMVA | |||
//////////////////////////////////////////////////////////////////////// | ||||
/////// | ||||
class PDEFoamVect : public TObject { | ||||
private: | // ---------- Inline functions | |||
Int_t fDim; // Dimension | ||||
Double_t *fCoords; // [fDim] Coordinates | ||||
PDEFoamVect *fNext; // pointer for tree constructio | ||||
n | ||||
PDEFoamVect *fPrev; // pointer for tree constructio | ||||
n | ||||
protected: | //_____________________________________________________________________ | |||
mutable MsgLogger* fLogger; //! message logger | inline Float_t TMVA::PDEFoam::VarTransform(Int_t idim, Float_t x) | |||
MsgLogger& Log() const { return *fLogger; } | { | |||
// transform variable x from [xmin, xmax] --> [0, 1] | ||||
return (x-fXmin[idim])/(fXmax[idim]-fXmin[idim]); | ||||
} | ||||
public: | //_____________________________________________________________________ | |||
// constructor | inline std::vector<Float_t> TMVA::PDEFoam::VarTransform(std::vector<Float_t | |||
PDEFoamVect(); // Constructor | > invec) | |||
PDEFoamVect(Int_t); // USER Constructor | { | |||
PDEFoamVect(const PDEFoamVect &); // Copy constructor | // transform vector invec from [xmin, xmax] --> [0, 1] | |||
virtual ~PDEFoamVect(); // Destructor | std::vector<Float_t> outvec; | |||
for(UInt_t i=0; i<invec.size(); i++) | ||||
///////////////////////////////////////////////////////////////////// | outvec.push_back(VarTransform(i, invec.at(i))); | |||
///////// | return outvec; | |||
// Overloading operators | } | |||
// | ||||
///////////////////////////////////////////////////////////////////// | ||||
///////// | ||||
PDEFoamVect& operator =( const PDEFoamVect& ); // = operator; Substit | ||||
ution | ||||
Double_t & operator[]( Int_t ); // [] provides POINTER | ||||
to coordinate | ||||
PDEFoamVect& operator =( Double_t [] ); // LOAD IN entire doub | ||||
le vector | ||||
PDEFoamVect& operator =( Double_t ); // LOAD IN double numb | ||||
er | ||||
////////////////////////// OTHER METHODS /////////////////////// | ||||
/////////// | ||||
PDEFoamVect& operator+=( const PDEFoamVect& ); // +=; add vector u+ | ||||
=v (FAST) | ||||
PDEFoamVect& operator-=( const PDEFoamVect& ); // +=; add vector u+ | ||||
=v (FAST) | ||||
PDEFoamVect& operator*=( const Double_t& ); // *=; mult. by scal | ||||
ar v*=x (FAST) | ||||
PDEFoamVect operator+ ( const PDEFoamVect& ); // +; u=v+s, NEVER | ||||
USE IT, SLOW!!! | ||||
PDEFoamVect operator- ( const PDEFoamVect& ); // -; u=v-s, NEVER | ||||
USE IT, SLOW!!! | ||||
void Print(Option_t *option) const; // Prints vector | ||||
void PrintList(); // Prints vector and the | ||||
following linked list | ||||
Int_t GetDim() const { return fDim; } // Returns dimension | ||||
Double_t GetCoord(Int_t i) const { return fCoords[i]; } // Return | ||||
s coordinate | ||||
ClassDef(PDEFoamVect,1) //n-dimensional vector with dynamical allocat | //_____________________________________________________________________ | |||
ion | inline Float_t TMVA::PDEFoam::VarTransformInvers(Int_t idim, Float_t x) | |||
}; // end of PDEFoamVect | { | |||
} // namespace TMVA | // transform variable x from [0, 1] --> [xmin, xmax] | |||
return x*(fXmax[idim]-fXmin[idim]) + fXmin[idim]; | ||||
} | ||||
//_____________________________________________________________________ | ||||
inline std::vector<Float_t> TMVA::PDEFoam::VarTransformInvers(std::vector<F | ||||
loat_t> invec) | ||||
{ | ||||
// transform vector invec from [0, 1] --> [xmin, xmax] | ||||
std::vector<Float_t> outvec; | ||||
for(UInt_t i=0; i<invec.size(); i++) | ||||
outvec.push_back(VarTransformInvers(i, invec.at(i))); | ||||
return outvec; | ||||
} | ||||
#endif | #endif | |||
End of changes. 73 change blocks. | ||||
785 lines changed or deleted | 265 lines changed or added | |||
PoissonLikelihoodFCN.h | PoissonLikelihoodFCN.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: PoissonLikelihoodFCN.h 30539 2009-10-01 13:13:09Z moneta $ | // @(#)root/mathcore:$Id: PoissonLikelihoodFCN.h 31763 2009-12-10 10:40:21Z moneta $ | |||
// Author: L. Moneta Fri Aug 17 14:29:24 2007 | // Author: L. Moneta Fri Aug 17 14:29:24 2007 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2007 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2007 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class PoissonLikelihoodFCN | // Header file for class PoissonLikelihoodFCN | |||
skipping to change at line 141 | skipping to change at line 141 | |||
virtual double DoDerivative(const double * x, unsigned int icoord ) con st { | virtual double DoDerivative(const double * x, unsigned int icoord ) con st { | |||
Gradient(x, &fGrad[0]); | Gradient(x, &fGrad[0]); | |||
return fGrad[icoord]; | return fGrad[icoord]; | |||
} | } | |||
//data member | //data member | |||
const BinData & fData; | const BinData & fData; | |||
const IModelFunction & fFunc; | const IModelFunction & fFunc; | |||
unsigned int fNDim; | ||||
unsigned int fNPoints; // size of the data | ||||
mutable unsigned int fNEffPoints; // number of effective points used in the fit | mutable unsigned int fNEffPoints; // number of effective points used in the fit | |||
mutable unsigned int fNCalls; | ||||
mutable std::vector<double> fGrad; // for derivatives | mutable std::vector<double> fGrad; // for derivatives | |||
}; | }; | |||
// define useful typedef's | // define useful typedef's | |||
typedef PoissonLikelihoodFCN<ROOT::Math::IMultiGenFunction> PoissonLL Function; | typedef PoissonLikelihoodFCN<ROOT::Math::IMultiGenFunction> PoissonLL Function; | |||
typedef PoissonLikelihoodFCN<ROOT::Math::IMultiGradFunction> PoissonL LGradFunction; | typedef PoissonLikelihoodFCN<ROOT::Math::IMultiGradFunction> PoissonL LGradFunction; | |||
} // end namespace Fit | } // end namespace Fit | |||
End of changes. 3 change blocks. | ||||
4 lines changed or deleted | 1 lines changed or added | |||
ProfileLikelihoodTestStat.h | ProfileLikelihoodTestStat.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: ProfileLikelihoodTestStat.h 31276 2009-11-18 15:0 6:42Z moneta $ | // @(#)root/roostats:$Id: ProfileLikelihoodTestStat.h 31529 2009-12-03 14:5 7:25Z moneta $ | |||
// Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | // Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOSTATS_ProfileLikelihoodTestStat | #ifndef ROOSTATS_ProfileLikelihoodTestStat | |||
skipping to change at line 138 | skipping to change at line 138 | |||
// store best fit parameters | // store best fit parameters | |||
// RooProfileLL::bestFitParams returns best fit of nuisance param eters only | // RooProfileLL::bestFitParams returns best fit of nuisance param eters only | |||
// fCachedBestFitParams = (RooArgSet*) (fProfile->bestFitPar ams().clone("lastBestFit")); | // fCachedBestFitParams = (RooArgSet*) (fProfile->bestFitPar ams().clone("lastBestFit")); | |||
// ProfileLL::getParameters returns current value of the paramete rs | // ProfileLL::getParameters returns current value of the paramete rs | |||
// fCachedBestFitParams = (RooArgSet*) (fProfile->getParamet ers(data)->clone("lastBestFit")); | // fCachedBestFitParams = (RooArgSet*) (fProfile->getParamet ers(data)->clone("lastBestFit")); | |||
//cout << "making fCachedBestFitParams: " << fCachedBestFitParams << fCachedBestFitParams->getSize() << endl; | //cout << "making fCachedBestFitParams: " << fCachedBestFitParams << fCachedBestFitParams->getSize() << endl; | |||
// store original values, since minimization will change them. | // store original values, since minimization will change them. | |||
RooArgSet* origParamVals = (RooArgSet*) paramsOfInterest.snapshot (); | RooArgSet* origParamVals = (RooArgSet*) paramsOfInterest.snapshot (); | |||
// find minimum | // find minimum - add these extra lines to avoid calling first SE | |||
T WARN in RooMinuit constructor | ||||
Bool_t smode = RooMsgService::instance().silentMode() ; | ||||
RooMsgService::instance().setSilentMode(kTRUE) ; | ||||
RooMinuit minuit(*nll); | RooMinuit minuit(*nll); | |||
if (!smode) RooMsgService::instance().setSilentMode(kFALSE) ; | ||||
minuit.setPrintLevel(-999); | minuit.setPrintLevel(-999); | |||
minuit.setNoWarn(); | minuit.setNoWarn(); | |||
minuit.migrad(); | minuit.migrad(); | |||
// store the best fit values for future use | // store the best fit values for future use | |||
fCachedBestFitParams = (RooArgSet*) (nll->getParameters(data)->sn apshot()); | fCachedBestFitParams = (RooArgSet*) (nll->getParameters(data)->sn apshot()); | |||
// restore parameters | // restore parameters | |||
SetParameters(origParamVals, ¶msOfInterest ); | SetParameters(origParamVals, ¶msOfInterest ); | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 6 lines changed or added | |||
RConfigOptions.h | RConfigOptions.h | |||
---|---|---|---|---|
#ifndef ROOT_RConfigOptions | #ifndef ROOT_RConfigOptions | |||
#define ROOT_RConfigOptions | #define ROOT_RConfigOptions | |||
#define R__CONFIGUREOPTIONS "QTDIR=/afs/cern.ch/sw/lcg/external/qt/4.4.2/ i686-slc5-gcc43-opt PYTHONDIR=/afs/cern.ch/sw/lcg/external/Python/2.5.4p2/i 686-slc5-gcc43-opt --fail-on-missing --enable-cintex --enable-explicitlink --enable-gdml --enable-genvector --enable-krb5 --enable-mathmore --enable-m inuit2 --enable-mysql --enable-oracle --enable-python --enable-qt --enable- qtgsi --enable-reflex --enable-roofit --enable-table --enable-unuran --with -castor-incdir=/afs/cern.ch/sw/lcg/external/castor/2.1.8-10/i686-slc5-gcc43 -opt/usr/include/shift --with-castor-libdir=/afs/cern.ch/sw/lcg/external/ca stor/2.1.8-10/i686-slc5-gcc43-opt/usr/lib --with-cern-libdir=/afs/cern.ch/s w/lcg/external/cernlib/2006a/i686-slc5-gcc43-opt/lib --with-dcap-libdir=/af s/cern.ch/sw/lcg/external/dcache_client/1.9.3/i686-slc5-gcc43-opt/dcap/lib --with-dcap-incdir=/afs/cern.ch/sw/lcg/external/dcache_client/1.9.3/i686-sl c5-gcc43-opt/dcap/include --with-fftw3-incdir=/afs/cern.ch/sw/lcg/external/ fftw3/3.1.2/i686-slc5-gcc43-opt/include --with-fftw3-libdir=/afs/cern.ch/sw /lcg/external/fftw3/3.1.2/i686-slc5-gcc43-opt/lib --with-gccxml=/afs/cern.c h/sw/lcg/external/gccxml/0.9.0_20090601/i686-slc5-gcc43-opt/bin --with-gfal -libdir=/afs/cern.ch/sw/lcg/external/Grid/gfal/1.11.8-3/i686-slc5-gcc43-opt /lib --with-gfal-incdir=/afs/cern.ch/sw/lcg/external/Grid/gfal/1.11.8-3/i68 6-slc5-gcc43-opt/include --with-globus-incdir=/afs/cern.ch/sw/lcg/external/ Grid/globus/4.0.3-VDT-1.6.0/i686-slc5-gcc43-opt/globus/include --with-globu s-libdir=/afs/cern.ch/sw/lcg/external/Grid/globus/4.0.3-VDT-1.6.0/i686-slc5 -gcc43-opt/globus/lib --with-gsl-incdir=/afs/cern.ch/sw/lcg/external/GSL/1. 10/i686-slc5-gcc43-opt/include --with-gsl-libdir=/afs/cern.ch/sw/lcg/extern al/GSL/1.10/i686-slc5-gcc43-opt/lib --with-mysql-incdir=/afs/cern.ch/sw/lcg /external/mysql/5.0.18/i686-slc5-gcc43-opt/include --with-mysql-libdir=/afs /cern.ch/sw/lcg/external/mysql/5.0.18/i686-slc5-gcc43-opt/lib --with-oracle -incdir=/afs/cern.ch/sw/lcg/external/oracle/11.2.0.1.0/i686-slc5-gcc43-opt/ include --with-oracle-libdir=/afs/cern.ch/sw/lcg/external/oracle/11.2.0.1.0 /i686-slc5-gcc43-opt/lib --with-shift-incdir=/afs/cern.ch/sw/lcg/external/c astor/2.1.8-10/i686-slc5-gcc43-opt/usr/include/shift --with-shift-libdir=/a fs/cern.ch/sw/lcg/external/castor/2.1.8-10/i686-slc5-gcc43-opt/usr/lib --wi th-pythia6-libdir=/afs/cern.ch/user/b/bellenot/scratch0/dist/pythia6/i686-s lc5-gcc43-opt --with-pythia8-incdir=/afs/cern.ch/user/b/bellenot/scratch0/d ist/pythia8/i686-slc5-gcc43-opt/include --with-pythia8-libdir=/afs/cern.ch/ user/b/bellenot/scratch0/dist/pythia8/i686-slc5-gcc43-opt/lib --with-gviz-i ncdir=/build/bellenot/libraries/i686-slc5-gcc43-opt/graphviz-2.24.0/include /graphviz --with-gviz-libdir=/build/bellenot/libraries/i686-slc5-gcc43-opt/ graphviz-2.24.0/lib" | #define R__CONFIGUREOPTIONS "QTDIR=/afs/cern.ch/sw/lcg/external/qt/4.4.2/ i686-slc5-gcc43-opt PYTHONDIR=/afs/cern.ch/sw/lcg/external/Python/2.5.4p2/i 686-slc5-gcc43-opt --fail-on-missing --enable-cintex --enable-explicitlink --enable-gdml --enable-genvector --enable-krb5 --enable-mathmore --enable-m inuit2 --enable-mysql --enable-oracle --enable-python --enable-qt --enable- qtgsi --enable-reflex --enable-roofit --enable-table --enable-unuran --with -castor-incdir=/afs/cern.ch/sw/lcg/external/castor/2.1.8-10/i686-slc5-gcc43 -opt/usr/include/shift --with-castor-libdir=/afs/cern.ch/sw/lcg/external/ca stor/2.1.8-10/i686-slc5-gcc43-opt/usr/lib --with-cern-libdir=/afs/cern.ch/s w/lcg/external/cernlib/2006a/i686-slc5-gcc43-opt/lib --with-dcap-libdir=/af s/cern.ch/sw/lcg/external/dcache_client/1.9.3/i686-slc5-gcc43-opt/dcap/lib --with-dcap-incdir=/afs/cern.ch/sw/lcg/external/dcache_client/1.9.3/i686-sl c5-gcc43-opt/dcap/include --with-fftw3-incdir=/afs/cern.ch/sw/lcg/external/ fftw3/3.1.2/i686-slc5-gcc43-opt/include --with-fftw3-libdir=/afs/cern.ch/sw /lcg/external/fftw3/3.1.2/i686-slc5-gcc43-opt/lib --with-gccxml=/afs/cern.c h/sw/lcg/external/gccxml/0.9.0_20090601/i686-slc5-gcc43-opt/bin --with-gfal -libdir=/afs/cern.ch/sw/lcg/external/Grid/gfal/1.11.8-3/i686-slc5-gcc43-opt /lib --with-gfal-incdir=/afs/cern.ch/sw/lcg/external/Grid/gfal/1.11.8-3/i68 6-slc5-gcc43-opt/include --with-globus-incdir=/afs/cern.ch/sw/lcg/external/ Grid/globus/4.0.3-VDT-1.6.0/i686-slc5-gcc43-opt/globus/include --with-globu s-libdir=/afs/cern.ch/sw/lcg/external/Grid/globus/4.0.3-VDT-1.6.0/i686-slc5 -gcc43-opt/globus/lib --with-gsl-incdir=/afs/cern.ch/sw/lcg/external/GSL/1. 10/i686-slc5-gcc43-opt/include --with-gsl-libdir=/afs/cern.ch/sw/lcg/extern al/GSL/1.10/i686-slc5-gcc43-opt/lib --with-mysql-incdir=/afs/cern.ch/sw/lcg /external/mysql/5.0.18/i686-slc5-gcc43-opt/include --with-mysql-libdir=/afs /cern.ch/sw/lcg/external/mysql/5.0.18/i686-slc5-gcc43-opt/lib --with-oracle -incdir=/afs/cern.ch/sw/lcg/external/oracle/11.2.0.1.0/i686-slc5-gcc43-opt/ include --with-oracle-libdir=/afs/cern.ch/sw/lcg/external/oracle/11.2.0.1.0 /i686-slc5-gcc43-opt/lib --with-shift-incdir=/afs/cern.ch/sw/lcg/external/c astor/2.1.8-10/i686-slc5-gcc43-opt/usr/include/shift --with-shift-libdir=/a fs/cern.ch/sw/lcg/external/castor/2.1.8-10/i686-slc5-gcc43-opt/usr/lib --wi th-pythia6-libdir=/afs/cern.ch/user/b/bellenot/scratch0/dist/pythia6/i686-s lc5-gcc43-opt --with-pythia8-incdir=/afs/cern.ch/user/b/bellenot/scratch0/d ist/pythia8/i686-slc5-gcc43-opt/include --with-pythia8-libdir=/afs/cern.ch/ user/b/bellenot/scratch0/dist/pythia8/i686-slc5-gcc43-opt/lib --with-gviz-i ncdir=/build/bellenot/libraries/i686-slc5-gcc43-opt/graphviz-2.24.0/include /graphviz --with-gviz-libdir=/build/bellenot/libraries/i686-slc5-gcc43-opt/ graphviz-2.24.0/lib" | |||
#define R__CONFIGUREFEATURES "asimage astiff builtin_afterimage builtin_ft gl builtin_freetype builtin_glew builtin_pcre builtin_zlib castor cint5 cin tex editline dcache exceptions explicitlink fftw3 gviz gdml genvector gfal krb5 ldap mathmore memstat minuit2 mysql opengl oracle pythia6 pythia8 pyth on qt qtgsi reflex roofit rfio shadowpw shared ssl table tmva unuran xft xm l xrootd thread" | #define R__CONFIGUREFEATURES "asimage astiff builtin_afterimage builtin_ft gl builtin_freetype builtin_glew builtin_pcre builtin_zlib castor cint5 cin tex editline dcache exceptions explicitlink fftw3 gviz gdml genvector gfal globus krb5 ldap mathmore memstat minuit2 mysql opengl oracle pythia6 pythi a8 python qt qtgsi reflex roofit rfio shadowpw shared ssl table tmva unuran xft xml xrootd thread" | |||
#endif | #endif | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
RVersion.h | RVersion.h | |||
---|---|---|---|---|
skipping to change at line 17 | skipping to change at line 17 | |||
* These macros can be used in the following way: | * These macros can be used in the following way: | |||
* | * | |||
* #if ROOT_VERSION_CODE >= ROOT_VERSION(2,23,4) | * #if ROOT_VERSION_CODE >= ROOT_VERSION(2,23,4) | |||
* #include <newheader.h> | * #include <newheader.h> | |||
* #else | * #else | |||
* #include <oldheader.h> | * #include <oldheader.h> | |||
* #endif | * #endif | |||
* | * | |||
*/ | */ | |||
#define ROOT_RELEASE "5.25/04" | #define ROOT_RELEASE "5.26/00" | |||
#define ROOT_RELEASE_DATE "Nov 23 2009" | #define ROOT_RELEASE_DATE "Dec 14 2009" | |||
#define ROOT_RELEASE_TIME "22:31:15" | #define ROOT_RELEASE_TIME "15:43:39" | |||
#define ROOT_SVN_REVISION 31399 | #define ROOT_SVN_REVISION 31878 | |||
#define ROOT_SVN_BRANCH "trunk" | #define ROOT_SVN_BRANCH "trunk" | |||
#define ROOT_VERSION_CODE 334084 | #define ROOT_VERSION_CODE 334336 | |||
#define ROOT_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) | #define ROOT_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
5 lines changed or deleted | 5 lines changed or added | |||
Reader.h | Reader.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Reader.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: Reader.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : Reader * | * Class : Reader * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Reader class to be used in the user application to interpret the tr ained * | * Reader class to be used in the user application to interpret the tr ained * | |||
skipping to change at line 123 | skipping to change at line 123 | |||
virtual const char* GetName() const { return "Reader"; } | virtual const char* GetName() const { return "Reader"; } | |||
Bool_t Verbose( void ) const { return fVerbose; } | Bool_t Verbose( void ) const { return fVerbose; } | |||
void SetVerbose( Bool_t v ) { fVerbose = v; } | void SetVerbose( Bool_t v ) { fVerbose = v; } | |||
const DataSetInfo& DataInfo() const { return fDataSetInfo; } | const DataSetInfo& DataInfo() const { return fDataSetInfo; } | |||
DataSetInfo& DataInfo() { return fDataSetInfo; } | DataSetInfo& DataInfo() { return fDataSetInfo; } | |||
void AddVariable( const TString& expression, Float_t* ); | void AddVariable( const TString& expression, Float_t* ); | |||
void AddVariable( const TString& expression, Int_t* ); | void AddVariable( const TString& expression, Int_t* ); | |||
void AddSpectator( const TString& expression, Float_t* ); | ||||
void AddSpectator( const TString& expression, Int_t* ); | ||||
private: | private: | |||
TString GetMethodTypeFromFile( const TString& filename ); | ||||
// this booking method is internal | // this booking method is internal | |||
IMethod* BookMVA( Types::EMVA method, const TString& weightfile ); | IMethod* BookMVA( Types::EMVA method, const TString& weightfile ); | |||
DataSetInfo fDataSetInfo; // the data set | DataSetInfo fDataSetInfo; // the data set | |||
DataInputHandler fDataInputHandler; | DataInputHandler fDataInputHandler; | |||
// Init Reader class | // Init Reader class | |||
void Init( void ); | void Init( void ); | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 6 lines changed or added | |||
RooConstraintSum.h | RooConstraintSum.h | |||
---|---|---|---|---|
/************************************************************************** *** | /************************************************************************** *** | |||
* Project: RooFit * | * Project: RooFit * | |||
* Package: RooFitCore * | * Package: RooFitCore * | |||
* File: $Id: RooConstraintSum.h 24269 2008-06-13 15:37:03Z wouter $ | * File: $Id: RooConstraintSum.h 31654 2009-12-08 13:38:37Z wouter $ | |||
* Authors: * | * Authors: * | |||
* WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu * | * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu * | |||
* DK, David Kirkby, UC Irvine, dkirkby@uci.edu * | * DK, David Kirkby, UC Irvine, dkirkby@uci.edu * | |||
* * | * * | |||
* Copyright (c) 2000-2005, Regents of the University of California * | * Copyright (c) 2000-2005, Regents of the University of California * | |||
* and Stanford University. All rights reserved. * | * and Stanford University. All rights reserved. * | |||
* * | * * | |||
* Redistribution and use in source and binary forms, * | * Redistribution and use in source and binary forms, * | |||
* with or without modification, are permitted according to the terms * | * with or without modification, are permitted according to the terms * | |||
* listed in LICENSE (http://roofit.sourceforge.net/license.txt) * | * listed in LICENSE (http://roofit.sourceforge.net/license.txt) * | |||
************************************************************************** ***/ | ************************************************************************** ***/ | |||
#ifndef ROO_CONSTRAINT_SUM | #ifndef ROO_CONSTRAINT_SUM | |||
#define ROO_CONSTRAINT_SUM | #define ROO_CONSTRAINT_SUM | |||
#include "RooAbsReal.h" | #include "RooAbsReal.h" | |||
#include "RooListProxy.h" | #include "RooListProxy.h" | |||
#include "RooSetProxy.h" | ||||
class RooRealVar; | class RooRealVar; | |||
class RooArgList ; | class RooArgList ; | |||
class RooConstraintSum : public RooAbsReal { | class RooConstraintSum : public RooAbsReal { | |||
public: | public: | |||
RooConstraintSum() ; | RooConstraintSum() ; | |||
RooConstraintSum(const char *name, const char *title, const RooArgSet& co nstraintSet) ; | RooConstraintSum(const char *name, const char *title, const RooArgSet& co nstraintSet, const RooArgSet& paramSet) ; | |||
virtual ~RooConstraintSum() ; | virtual ~RooConstraintSum() ; | |||
RooConstraintSum(const RooConstraintSum& other, const char* name = 0); | RooConstraintSum(const RooConstraintSum& other, const char* name = 0); | |||
virtual TObject* clone(const char* newname) const { return new RooConstra intSum(*this, newname); } | virtual TObject* clone(const char* newname) const { return new RooConstra intSum(*this, newname); } | |||
protected: | protected: | |||
RooListProxy _set1 ; // Set of constraint terms | RooListProxy _set1 ; // Set of constraint terms | |||
RooSetProxy _paramSet ; // Set of parameters to which constraints apply | ||||
TIterator* _setIter1 ; //! do not persist | TIterator* _setIter1 ; //! do not persist | |||
Double_t evaluate() const; | Double_t evaluate() const; | |||
ClassDef(RooConstraintSum,1) // sum of -log of set of RooAbsPdf represent ing parameter constraints | ClassDef(RooConstraintSum,2) // sum of -log of set of RooAbsPdf represent ing parameter constraints | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 5 change blocks. | ||||
3 lines changed or deleted | 5 lines changed or added | |||
RooDataSet.h | RooDataSet.h | |||
---|---|---|---|---|
skipping to change at line 75 | skipping to change at line 75 | |||
const RooCmdArg& arg5=RooCmdArg::none(), const R ooCmdArg& arg6=RooCmdArg::none(), | const RooCmdArg& arg5=RooCmdArg::none(), const R ooCmdArg& arg6=RooCmdArg::none(), | |||
const RooCmdArg& arg7=RooCmdArg::none(), const R ooCmdArg& arg8=RooCmdArg::none()) const ; | const RooCmdArg& arg7=RooCmdArg::none(), const R ooCmdArg& arg8=RooCmdArg::none()) const ; | |||
// Read data from a text file and create a dataset from it. | // Read data from a text file and create a dataset from it. | |||
// The possible options are: (D)ebug, (Q)uiet. | // The possible options are: (D)ebug, (Q)uiet. | |||
static RooDataSet *read(const char *filename, const RooArgList &variables , | static RooDataSet *read(const char *filename, const RooArgList &variables , | |||
const char *opts= "", const char* commonPath="", | const char *opts= "", const char* commonPath="", | |||
const char *indexCatName=0) ; | const char *indexCatName=0) ; | |||
Bool_t write(const char* filename) ; | Bool_t write(const char* filename) ; | |||
/* void setWeightVar(const char* name=0) ; */ | void setWeightVar(const char* name=0) ; | |||
/* void setWeightVar(const RooAbsArg& arg) { */ | void setWeightVar(const RooAbsArg& arg) { | |||
/* // Interpret given argument as event weight */ | // Interpret given argument as event weight | |||
/* setWeightVar(arg.GetName()) ; */ | setWeightVar(arg.GetName()) ; | |||
/* } */ | } | |||
virtual Bool_t isWeighted() const ; | virtual Bool_t isWeighted() const ; | |||
virtual Bool_t isNonPoissonWeighted() const ; | virtual Bool_t isNonPoissonWeighted() const ; | |||
virtual Double_t weight() const ; | virtual Double_t weight() const ; | |||
virtual void weightError(Double_t& lo, Double_t& hi,ErrorType etype=SumW2 ) const ; | virtual void weightError(Double_t& lo, Double_t& hi,ErrorType etype=SumW2 ) const ; | |||
Double_t weightError(ErrorType etype=SumW2) const ; | Double_t weightError(ErrorType etype=SumW2) const ; | |||
virtual const RooArgSet* get(Int_t index) const; | virtual const RooArgSet* get(Int_t index) const; | |||
virtual const RooArgSet* get() const ; | virtual const RooArgSet* get() const ; | |||
End of changes. 1 change blocks. | ||||
5 lines changed or deleted | 6 lines changed or added | |||
RooProfileLL.h | RooProfileLL.h | |||
---|---|---|---|---|
skipping to change at line 37 | skipping to change at line 37 | |||
RooProfileLL(const RooProfileLL& other, const char* name=0) ; | RooProfileLL(const RooProfileLL& other, const char* name=0) ; | |||
virtual TObject* clone(const char* newname) const { return new RooProfile LL(*this,newname); } | virtual TObject* clone(const char* newname) const { return new RooProfile LL(*this,newname); } | |||
virtual ~RooProfileLL() ; | virtual ~RooProfileLL() ; | |||
void setAlwaysStartFromMin(Bool_t flag) { _startFromMin = flag ; } | void setAlwaysStartFromMin(Bool_t flag) { _startFromMin = flag ; } | |||
Bool_t alwaysStartFromMin() const { return _startFromMin ; } | Bool_t alwaysStartFromMin() const { return _startFromMin ; } | |||
RooMinuit* minuit() { return _minuit ; } | RooMinuit* minuit() { return _minuit ; } | |||
RooAbsReal& nll() { return const_cast<RooAbsReal&>(_nll.arg()) ; } | RooAbsReal& nll() { return const_cast<RooAbsReal&>(_nll.arg()) ; } | |||
const RooArgSet& bestFitParams() const ; | const RooArgSet& bestFitParams() const ; | |||
const RooArgSet& bestFitObs() const ; | ||||
virtual RooAbsReal* createProfile(const RooArgSet& paramsOfInterest) ; | virtual RooAbsReal* createProfile(const RooArgSet& paramsOfInterest) ; | |||
virtual Bool_t redirectServersHook(const RooAbsCollection& /*newServerLis t*/, Bool_t /*mustReplaceAll*/, Bool_t /*nameChange*/, Bool_t /*isRecursive */) ; | virtual Bool_t redirectServersHook(const RooAbsCollection& /*newServerLis t*/, Bool_t /*mustReplaceAll*/, Bool_t /*nameChange*/, Bool_t /*isRecursive */) ; | |||
void clearAbsMin() { _absMinValid = kFALSE ; } | void clearAbsMin() { _absMinValid = kFALSE ; } | |||
protected: | protected: | |||
void validateAbsMin() const ; | void validateAbsMin() const ; | |||
skipping to change at line 61 | skipping to change at line 62 | |||
Bool_t _startFromMin ; // Always start minimization for global minimum? | Bool_t _startFromMin ; // Always start minimization for global minimum? | |||
TIterator* _piter ; //! Iterator over profile likelihood parameters to be minimized | TIterator* _piter ; //! Iterator over profile likelihood parameters to be minimized | |||
TIterator* _oiter ; //! Iterator of profile likelihood output parameter(s ) | TIterator* _oiter ; //! Iterator of profile likelihood output parameter(s ) | |||
mutable RooMinuit* _minuit ; //! Internal minuit instance | mutable RooMinuit* _minuit ; //! Internal minuit instance | |||
mutable Bool_t _absMinValid ; // flag if absmin is up-to-date | mutable Bool_t _absMinValid ; // flag if absmin is up-to-date | |||
mutable Double_t _absMin ; // absolute minimum of -log(L) | mutable Double_t _absMin ; // absolute minimum of -log(L) | |||
mutable RooArgSet _paramAbsMin ; // Parameter values at absolute minimum | mutable RooArgSet _paramAbsMin ; // Parameter values at absolute minimum | |||
mutable RooArgSet _obsAbsMin ; // Observable values at absolute minimum | ||||
mutable std::map<std::string,bool> _paramFixed ; // Parameter constant st atus at last time of use | mutable std::map<std::string,bool> _paramFixed ; // Parameter constant st atus at last time of use | |||
Double_t evaluate() const ; | Double_t evaluate() const ; | |||
private: | private: | |||
ClassDef(RooProfileLL,0) // Real-valued function representing profile lik elihood of external (likelihood) function | ClassDef(RooProfileLL,0) // Real-valued function representing profile lik elihood of external (likelihood) function | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
RootFinder.h | RootFinder.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: RootFinder.h 25486 2008-09-22 12:43:03Z moneta $ | // @(#)root/tmva $Id: RootFinder.h 29195 2009-06-24 10:39:49Z brun $ | |||
// Authors: L. Moneta, A. Zsenei 08/2005 | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/********************************************************************** | /************************************************************************** | |||
* * | ******** | |||
* Copyright (c) 2004 ROOT Foundation, CERN/PH-SFT * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis | |||
* * | * | |||
* This library is free software; you can redistribute it and/or * | * Package: TMVA | |||
* modify it under the terms of the GNU General Public License * | * | |||
* as published by the Free Software Foundation; either version 2 * | * Class : RootFinder | |||
* of the License, or (at your option) any later version. * | * | |||
* * | * Web : http://tmva.sourceforge.net | |||
* This library is distributed in the hope that it will be useful, * | * | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of * | * | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * | * | |||
* General Public License for more details. * | * Description: | |||
* * | * | |||
* You should have received a copy of the GNU General Public License * | * Root finding using Brents algorithm | |||
* along with this library (see file COPYING); if not, write * | * | |||
* to the Free Software Foundation, Inc., 59 Temple Place, Suite * | * (translated from CERNLIB function RZERO) | |||
* 330, Boston, MA 02111-1307 USA, or contact the author. * | * | |||
* * | * | |||
**********************************************************************/ | * | |||
* Authors (alphabetical): | ||||
// Header file for class RootFinder | * | |||
// | * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland | |||
// Created by: moneta at Sun Nov 14 16:59:55 2004 | * | |||
// | * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, German | |||
// Last update: Sun Nov 14 16:59:55 2004 | y * | |||
// | * Kai Voss <Kai.Voss@cern.ch> - U. of Victoria, Canada | |||
#ifndef ROOT_Math_RootFinder | * | |||
#define ROOT_Math_RootFinder | * | |||
* | ||||
* Copyright (c) 2005: | ||||
* | ||||
* CERN, Switzerland | ||||
* | ||||
* U. of Victoria, Canada | ||||
* | ||||
* MPI-K Heidelberg, 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_RootFinder | ||||
#define ROOT_TMVA_RootFinder | ||||
////////////////////////////////////////////////////////////////////////// | ||||
// // | ||||
// RootFinder // | ||||
// // | ||||
// Root finding using Brents algorithm // | ||||
// (translated from CERNLIB function RZERO) // | ||||
// // | ||||
////////////////////////////////////////////////////////////////////////// | ||||
#ifndef ROOT_Math_IFunctionfwd | #ifndef ROOT_TObject | |||
#include "Math/IFunctionfwd.h" | #include "TObject.h" | |||
#endif | #endif | |||
#ifndef ROOT_Math_IRootFinderMethod | namespace TMVA { | |||
#include "Math/IRootFinderMethod.h" | ||||
#endif | ||||
/** | class MsgLogger; | |||
@defgroup RootFinders One-dimensional Root-Finding algorithms | ||||
@ingroup NumAlgo | class RootFinder : public TObject { | |||
*/ | ||||
public: | ||||
namespace ROOT { | ||||
namespace Math { | ||||
//_________________________________________________________________________ | ||||
____________ | ||||
/** | ||||
Class to find the Root of one dimensional functions. | ||||
The class is templated on the type of Root solver algorithms. | ||||
The possible types of Root-finding algorithms are: | ||||
<ul> | ||||
<li>Root Bracketing Algorithms which they do not require function | ||||
derivatives | ||||
<ol> | ||||
<li>Roots::Bisection | ||||
<li>Roots::FalsePos | ||||
<li>Roots::Brent | ||||
</ol> | ||||
<li>Root Finding Algorithms using Derivatives | ||||
<ol> | ||||
<li>Roots::Newton | ||||
<li>Roots::Secant | ||||
<li>Roots::Steffenson | ||||
</ol> | ||||
</ul> | ||||
This class does not cupport copying | ||||
@ingroup RootFinders | ||||
*/ | ||||
class RootFinder { | ||||
public: | ||||
enum EType { kBRENT, // Methods | ||||
from MathCore | ||||
kGSL_BISECTION, kGSL_FALSE_POS, kGSL_BRENT, // GSL Nor | ||||
mal | ||||
kGSL_NEWTON, kGSL_SECANT, kGSL_STEFFENSON // GSL Der | ||||
ivatives | ||||
}; | ||||
/** | ||||
Construct a Root-Finder algorithm | ||||
*/ | ||||
RootFinder(RootFinder::EType type = RootFinder::kBRENT); | ||||
virtual ~RootFinder(); | ||||
private: | ||||
// usually copying is non trivial, so we make this unaccessible | ||||
RootFinder(const RootFinder & ) {} | ||||
RootFinder & operator = (const RootFinder & rhs) | ||||
{ | ||||
if (this == &rhs) return *this; // time saving self-test | ||||
return *this; | ||||
} | ||||
public: | ||||
int SetMethod(RootFinder::EType type = RootFinder::kBRENT); | ||||
/** | ||||
Provide to the solver the function and the initial search inter | ||||
val [xlow, xup] | ||||
for algorithms not using derivatives (bracketing algorithms) | ||||
The templated function f must be of a type implementing the \a | ||||
operator() method, | ||||
<em> double operator() ( double x ) </em> | ||||
Returns non zero if interval is not valid (i.e. does not contai | ||||
ns a root) | ||||
*/ | ||||
int SetFunction( const IGenFunction & f, double xlow, double xup) | ||||
{ | ||||
return fSolver->SetFunction( f, xlow, xup); | ||||
} | ||||
/** | ||||
Provide to the solver the function and an initial estimate of t | ||||
he root, | ||||
for algorithms using derivatives. | ||||
The templated function f must be of a type implementing the \a | ||||
operator() | ||||
and the \a Gradient() methods. | ||||
<em> double operator() ( double x ) </em> | ||||
Returns non zero if starting point is not valid | ||||
*/ | ||||
int SetFunction( const IGradFunction & f, double xstart) { | ||||
return fSolver->SetFunction( f, xstart); | ||||
} | ||||
template<class Function, class Derivative> | ||||
int Solve(Function f, Derivative d, double start, | ||||
int maxIter = 100, double absTol = 1E-3, double relTol = | ||||
1E-6); | ||||
template<class Function> | ||||
int Solve(Function f, double min, double max, | ||||
int maxIter = 100, double absTol = 1E-3, double relTol = | ||||
1E-6); | ||||
/** | ||||
Compute the roots iterating until the estimate of the Root is | ||||
within the required tolerance returning | ||||
the iteration Status | ||||
*/ | ||||
int Solve( int maxIter = 100, double absTol = 1E-3, double relTol | ||||
= 1E-6) { | ||||
return fSolver->Solve( maxIter, absTol, relTol ); | ||||
} | ||||
/** | ||||
Return the number of iteration performed to find the Root. | ||||
*/ | ||||
int Iterations() const { | ||||
return fSolver->Iterations(); | ||||
} | ||||
/** | ||||
Perform a single iteration and return the Status | ||||
*/ | ||||
int Iterate() { | ||||
return fSolver->Iterate(); | ||||
} | ||||
/** | ||||
Return the current and latest estimate of the Root | ||||
*/ | ||||
double Root() const { | ||||
return fSolver->Root(); | ||||
} | ||||
/** | ||||
Return the current and latest estimate of the lower value of th | ||||
e Root-finding interval (for bracketing algorithms) | ||||
*/ | ||||
/* double XLower() const { */ | ||||
/* return fSolver->XLower(); */ | ||||
/* } */ | ||||
/** | ||||
Return the current and latest estimate of the upper value of th | ||||
e Root-finding interval (for bracketing algorithms) | ||||
*/ | ||||
/* double XUpper() const { */ | ||||
/* return fSolver->XUpper(); */ | ||||
/* } */ | ||||
/** | ||||
Get Name of the Root-finding solver algorithm | ||||
*/ | ||||
const char * Name() const { | ||||
return fSolver->Name(); | ||||
} | ||||
#ifdef LATER | ||||
/** | ||||
Test convertgence Status of current iteration using interval va | ||||
lues (for bracketing algorithms) | ||||
*/ | ||||
static int TestInterval( double xlow, double xup, double epsAbs, d | ||||
ouble epsRel) { | ||||
return GSLRootHelper::TestInterval(xlow, xup, epsAbs, epsRel); | ||||
} | ||||
/** | ||||
Test convergence Status of current iteration using last Root es | ||||
timates (for algorithms using function derivatives) | ||||
*/ | ||||
static int TestDelta( double r1, double r0, double epsAbs, double | ||||
epsRel) { | ||||
return GSLRootHelper::TestDelta(r1, r0, epsAbs, epsRel); | ||||
} | ||||
/** | ||||
Test function residual | ||||
*/ | ||||
static int TestResidual(double f, double epsAbs) { | ||||
return GSLRootHelper::TestResidual(f, epsAbs); | ||||
} | ||||
#endif | ||||
protected: | RootFinder( Double_t (*rootVal)( Double_t ), | |||
Double_t rootMin, Double_t rootMax, | ||||
Int_t maxIterations = 100, | ||||
Double_t absTolerance = 0.0 ); | ||||
virtual ~RootFinder( void ); | ||||
private: | // returns the root of the function | |||
Double_t Root( Double_t refValue ); | ||||
IRootFinderMethod* fSolver; // type of algorithm to be used | private: | |||
}; | Double_t fRootMin; // minimum root value | |||
Double_t fRootMax; // maximum root value | ||||
Int_t fMaxIter; // maximum number of iterations | ||||
Double_t fAbsTol; // absolute tolerance deviation | ||||
} // namespace Math | // function pointer | |||
} // namespace ROOT | Double_t (*fGetRootVal)( Double_t ); | |||
#include "Math/WrappedFunction.h" | ||||
#include "Math/Functor.h" | ||||
template<class Function, class Derivative> | ||||
int ROOT::Math::RootFinder::Solve(Function f, Derivative d, double start, | ||||
int maxIter, double absTol, double relTol | ||||
) | ||||
{ | ||||
ROOT::Math::GradFunctor1D wf(f, d); | ||||
if (fSolver) fSolver->SetFunction(wf, start); | ||||
return Solve(maxIter, absTol, relTol); | ||||
} | ||||
template<class Function> | ||||
int ROOT::Math::RootFinder::Solve(Function f, double min, double max, | ||||
int maxIter, double absTol, double relTol | ||||
) | ||||
{ | ||||
ROOT::Math::WrappedFunction<Function> wf(f); | ||||
if (fSolver) fSolver->SetFunction(wf, min, max); | ||||
return Solve(maxIter, absTol, relTol); | ||||
} | ||||
#endif /* ROOT_Math_RootFinder */ | mutable MsgLogger* fLogger; //! message logger | |||
MsgLogger& Log() const { return *fLogger; } | ||||
ClassDef(RootFinder,0) // Root finding using Brents algorithm | ||||
}; | ||||
} // namespace TMVA | ||||
#endif | ||||
End of changes. 11 change blocks. | ||||
253 lines changed or deleted | 84 lines changed or added | |||
RuleCut.h | RuleCut.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: RuleCut.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: RuleCut.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Fredrik Tegenfeldt, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Fredrik Tegenfeldt, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : Rule * | * Class : Rule * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* A class describing a 'rule cut' * | * A class describing a 'rule cut' * | |||
* * | * * | |||
skipping to change at line 131 | skipping to change at line 131 | |||
// evaluate event using the cut | // evaluate event using the cut | |||
// Loop over all cuts | // Loop over all cuts | |||
Int_t sel; | Int_t sel; | |||
Double_t val; | Double_t val; | |||
Bool_t done=kFALSE; | Bool_t done=kFALSE; | |||
Bool_t minOK, cutOK; | Bool_t minOK, cutOK; | |||
UInt_t nc=0; | UInt_t nc=0; | |||
while (!done) { | while (!done) { | |||
sel = fSelector[nc]; | sel = fSelector[nc]; | |||
val = eve.GetVal(sel); | val = eve.GetValue(sel); | |||
minOK = (fCutDoMin[nc] ? (val>fCutMin[nc]):kTRUE); // min cut ok | minOK = (fCutDoMin[nc] ? (val>fCutMin[nc]):kTRUE); // min cut ok | |||
cutOK = (minOK ? ((fCutDoMax[nc] ? (val<fCutMax[nc]):kTRUE)) : kFALSE ); // cut ok | cutOK = (minOK ? ((fCutDoMax[nc] ? (val<fCutMax[nc]):kTRUE)) : kFALSE ); // cut ok | |||
nc++; | nc++; | |||
done = ((!cutOK) || (nc==fSelector.size())); // done if | done = ((!cutOK) || (nc==fSelector.size())); // done if | |||
} | } | |||
// return ( cutOK ? 1.0: 0.0 ); | // return ( cutOK ? 1.0: 0.0 ); | |||
return cutOK; | return cutOK; | |||
} | } | |||
//_______________________________________________________________________ | //_______________________________________________________________________ | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
RuleEnsemble.h | RuleEnsemble.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: RuleEnsemble.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: RuleEnsemble.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Fredrik Tegenfeldt, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Fredrik Tegenfeldt, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : RuleEnsemble * | * Class : RuleEnsemble * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* A class generating an ensemble of rules * | * A class generating an ensemble of rules * | |||
skipping to change at line 555 | skipping to change at line 555 | |||
rval += EvalLinEvent( evtidx, lincoefs ); | rval += EvalLinEvent( evtidx, lincoefs ); | |||
} | } | |||
return rval; | return rval; | |||
} | } | |||
//_______________________________________________________________________ | //_______________________________________________________________________ | |||
inline Double_t TMVA::RuleEnsemble::EvalLinEventRaw( UInt_t vind, const TMV A::Event & e, Bool_t norm) const | inline Double_t TMVA::RuleEnsemble::EvalLinEventRaw( UInt_t vind, const TMV A::Event & e, Bool_t norm) const | |||
{ | { | |||
// evaluate the event linearly (not normalized) | // evaluate the event linearly (not normalized) | |||
Double_t val = e.GetVal(vind); | Double_t val = e.GetValue(vind); | |||
Double_t rval = TMath::Min( fLinDP[vind], TMath::Max( fLinDM[vind], val ) ); | Double_t rval = TMath::Min( fLinDP[vind], TMath::Max( fLinDM[vind], val ) ); | |||
if (norm) rval *= fLinNorm[vind]; | if (norm) rval *= fLinNorm[vind]; | |||
return rval; | return rval; | |||
} | } | |||
//_______________________________________________________________________ | //_______________________________________________________________________ | |||
inline Double_t TMVA::RuleEnsemble::EvalLinEventRaw( UInt_t vind, UInt_t ev tidx, Bool_t norm) const | inline Double_t TMVA::RuleEnsemble::EvalLinEventRaw( UInt_t vind, UInt_t ev tidx, Bool_t norm) const | |||
{ | { | |||
// evaluate the event linearly (not normalized) | // evaluate the event linearly (not normalized) | |||
Double_t val = (*fRuleMapEvents)[evtidx]->GetVal(vind); | Double_t val = (*fRuleMapEvents)[evtidx]->GetValue(vind); | |||
Double_t rval = TMath::Min( fLinDP[vind], TMath::Max( fLinDM[vind], val ) ); | Double_t rval = TMath::Min( fLinDP[vind], TMath::Max( fLinDM[vind], val ) ); | |||
if (norm) rval *= fLinNorm[vind]; | if (norm) rval *= fLinNorm[vind]; | |||
return rval; | return rval; | |||
} | } | |||
//_______________________________________________________________________ | //_______________________________________________________________________ | |||
inline Double_t TMVA::RuleEnsemble::EvalLinEvent() const | inline Double_t TMVA::RuleEnsemble::EvalLinEvent() const | |||
{ | { | |||
// evaluate event linearly | // evaluate event linearly | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
RuleFitAPI.h | RuleFitAPI.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: RuleFitAPI.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/tmva $Id: RuleFitAPI.h 31574 2009-12-05 18:23:21Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Fredrik Tegenfeldt, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Fredrik Tegenfeldt, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : RuleFitAPI * | * Class : RuleFitAPI * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Interface to Friedman's RuleFit method * | * Interface to Friedman's RuleFit method * | |||
skipping to change at line 43 | skipping to change at line 43 | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
// RuleFitAPI // | // RuleFitAPI // | |||
// // | // // | |||
// J Friedman's RuleFit method // | // J Friedman's RuleFit method // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#include <fstream> | #include <fstream> | |||
#include "TMVA/MsgLogger.h" | ||||
namespace TMVA { | namespace TMVA { | |||
class MsgLogger; | ||||
class MethodRuleFit; | class MethodRuleFit; | |||
class RuleFitAPI { | class RuleFitAPI { | |||
public: | public: | |||
RuleFitAPI( const TMVA::MethodRuleFit *rfbase, TMVA::RuleFit *rulefit , EMsgType minType ); | RuleFitAPI( const TMVA::MethodRuleFit *rfbase, TMVA::RuleFit *rulefit , EMsgType minType ); | |||
virtual ~RuleFitAPI(); | virtual ~RuleFitAPI(); | |||
skipping to change at line 190 | skipping to change at line 191 | |||
std::vector<Float_t> fRFYhat; // score results from test sample | std::vector<Float_t> fRFYhat; // score results from test sample | |||
std::vector<Float_t> fRFVarImp; // variable importances | std::vector<Float_t> fRFVarImp; // variable importances | |||
std::vector<Int_t> fRFVarImpInd; // variable index | std::vector<Int_t> fRFVarImpInd; // variable index | |||
TString fRFWorkDir; // working directory | TString fRFWorkDir; // working directory | |||
IntParms fRFIntParms; // integer parameters | IntParms fRFIntParms; // integer parameters | |||
RealParms fRFRealParms; // real parameters | RealParms fRFRealParms; // real parameters | |||
std::vector<int> fRFLx; // variable selector | std::vector<int> fRFLx; // variable selector | |||
ERFProgram fRFProgram; // what to run | ERFProgram fRFProgram; // what to run | |||
TString fModelType; // model type string | TString fModelType; // model type string | |||
mutable MsgLogger fLogger; // message logger | mutable MsgLogger fLogger; // message logger | |||
ClassDef(RuleFitAPI,0) // Friedman's RuleFit method | ClassDef(RuleFitAPI,0) // Friedman's RuleFit method | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
//_______________________________________________________________________ | //_______________________________________________________________________ | |||
void TMVA::RuleFitAPI::TrainRuleFit() | void TMVA::RuleFitAPI::TrainRuleFit() | |||
{ | { | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 4 lines changed or added | |||
SVEvent.h | SVEvent.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: SVEvent.h 29205 2009-06-24 19:33:19Z brun $ | // @(#)root/tmva $Id: SVEvent.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andrzej Zemla | // Author: Andrzej Zemla | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : SVEvent * | * Class : SVEvent * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Event class for Support Vector Machine * | * Event class for Support Vector Machine * | |||
skipping to change at line 54 | skipping to change at line 54 | |||
public: | public: | |||
SVEvent(); | SVEvent(); | |||
SVEvent( const Event*, const Float_t ); | SVEvent( const Event*, const Float_t ); | |||
SVEvent( const std::vector<Float_t>*, Float_t alpha, const Int_t type Flag, const UInt_t ns ); | SVEvent( const std::vector<Float_t>*, Float_t alpha, const Int_t type Flag, const UInt_t ns ); | |||
SVEvent( const std::vector<Float_t>* svector, Float_t alpha, Float_t alpha_p,const Int_t typeFlag); | SVEvent( const std::vector<Float_t>* svector, Float_t alpha, Float_t alpha_p,const Int_t typeFlag); | |||
virtual ~SVEvent(); | virtual ~SVEvent(); | |||
void SetAlpha ( Float_t alpha ) { fAlpha = alpha; } | void SetAlpha ( Float_t alpha ) { fAlpha = alpha; } | |||
void SetAlpha_p ( Float_t alpha ) { fAlpha_p = alpha; } | void SetAlpha_p ( Float_t alpha ) { fAlpha_p = alpha; } | |||
void SetErrorCache ( Float_t err_cache ) { fErrorCache = err_cach e; } | void SetErrorCache ( Float_t err_cache ) { fErrorCache = err_cach e; } | |||
void SetIsShrinked ( Int_t isshrinked ) { fIsShrinked = isshrink ed; } | void SetIsShrinked ( Int_t isshrinked ) { fIsShrinked = isshrink ed; } | |||
void SetLine ( Float_t* line ) { fLine = line; } | void SetLine ( Float_t* line ) { fLine = line; } | |||
void SetIdx ( Int_t idx ) { fIdx = idx; } | void SetIdx ( Int_t idx ) { fIdx = idx; } | |||
void SetNs ( UInt_t ns ) { fNs = ns; } | void SetNs ( UInt_t ns ) { fNs = ns; } | |||
void UpdateErrorCache(Float_t upercache ) { fErrorCache += upercache; } | void UpdateErrorCache(Float_t upercache ) { fErrorCache += upercac he; } | |||
std::vector<Float_t>* GetDataVector() { return &fDataVector; } | std::vector<Float_t>* GetDataVector() { return &fDataVector; } | |||
Float_t GetAlpha() const { return fAlpha; } | Float_t GetAlpha() const { return fAlpha; } | |||
Float_t GetAlpha_p() const { return fAlpha_p; } | Float_t GetAlpha_p() const { return fAlpha_p; } | |||
Float_t GetDeltaAlpha() const { return fAlpha - fAlpha_p; | Float_t GetDeltaAlpha() const { return fAlpha - fAlpha_p; } | |||
} | ||||
Float_t GetErrorCache() const { return fErrorCache; } | Float_t GetErrorCache() const { return fErrorCache; } | |||
Int_t GetTypeFlag() const { return fTypeFlag; } | Int_t GetTypeFlag() const { return fTypeFlag; } | |||
Int_t GetNVar() const { return fNVar; } | Int_t GetNVar() const { return fNVar; } | |||
Int_t GetIdx() const { return fIdx;} | Int_t GetIdx() const { return fIdx;} | |||
Float_t* GetLine() const { return fLine;} | Float_t* GetLine() const { return fLine;} | |||
UInt_t GetNs() const { return fNs;} | UInt_t GetNs() const { return fNs;} | |||
Float_t GetCweight() const { return fCweight;} | Float_t GetCweight() const { return fCweight;} | |||
Float_t GetTarget() const { return fTarget;} | Float_t GetTarget() const { return fTarget;} | |||
Bool_t IsInI0a() const { return (0.< fAlpha) && (fAlpha<fCweight); } | Bool_t IsInI0a() const { return (0.< fAlpha) && (fAlpha<fCweight); } | |||
Bool_t IsInI0b() const { return (0.< fAlpha) && (fAlpha_p<fCweight); } | Bool_t IsInI0b() const { return (0.< fAlpha) && (fAlpha_p<fCweight); } | |||
Bool_t IsInI0() const { return (IsInI0a() || IsInI0b()); } | Bool_t IsInI0() const { return (IsInI0a() || IsInI0b()); } | |||
Bool_t IsInI1() const { return (fAlpha == 0. && fAlpha_p == | Bool_t IsInI1() const { return (fAlpha == 0. && fAlpha_p == 0.); } | |||
0.); } | Bool_t IsInI2() const { return (fAlpha == 0. && fAlpha_p == fCweigh | |||
Bool_t IsInI2() const { return (fAlpha == 0. && fAlpha_p == fCweight | t); } | |||
); } | Bool_t IsInI3() const { return (fAlpha == fCweight && fAlpha_p == 0 | |||
Bool_t IsInI3() const { return (fAlpha == fCweight && fAlpha_p == 0. | .); } | |||
); } | ||||
void Print( std::ostream& os ) const; | void Print( std::ostream& os ) const; | |||
void PrintData(); | void PrintData(); | |||
private: | private: | |||
std::vector<Float_t> fDataVector; | std::vector<Float_t> fDataVector; | |||
const Float_t fCweight; // svm cost weight | const Float_t fCweight; // svm cost weight | |||
Float_t fAlpha; // lagrange multiplier | Float_t fAlpha; // lagrange multiplier | |||
Float_t fAlpha_p; // lagrange multiplier | Float_t fAlpha_p; // lagrange multiplier | |||
Float_t fErrorCache; // optimization parameter | Float_t fErrorCache; // optimization parameter | |||
UInt_t fNVar; // number of variables | ||||
UInt_t fNVar; // number of variables | const Int_t fTypeFlag; // is sig or bkg - svm requieres 1 | |||
const Int_t fTypeFlag; // is sig or bkg - svm requieres 1 for | for sig and -1 for bkg | |||
sig and -1 for bkg | Int_t fIdx; // index flag | |||
Int_t fIdx; // index flag | UInt_t fNs; // documentation | |||
UInt_t fNs; // documentation | Int_t fIsShrinked; // shrinking flag, see documentati | |||
Int_t fIsShrinked; // shrinking flag, see documentation | on | |||
Float_t* fLine; // pointer to column of kerenl matrix | Float_t* fLine; // pointer to column of kerenl mat | |||
const Float_t fTarget; // regression target | rix | |||
const Float_t fTarget; // regression target | ||||
ClassDef(SVEvent,0) // Event for SVM | ClassDef(SVEvent,0) // Event for SVM | |||
}; | }; | |||
} | } | |||
#endif //ROOT_TMVA_SVEvent | #endif //ROOT_TMVA_SVEvent | |||
End of changes. 8 change blocks. | ||||
30 lines changed or deleted | 29 lines changed or added | |||
SVKernelFunction.h | SVKernelFunction.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: SVKernelFunction.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: SVKernelFunction.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andrzej Zemla | // Author: Andrzej Zemla | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : SVKernelFunction * | * Class : SVKernelFunction * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Kernel for Support Vector Machine * | * Kernel for Support Vector Machine * | |||
skipping to change at line 37 | skipping to change at line 37 | |||
#ifndef ROOT_TMVA_SVKernelFunction | #ifndef ROOT_TMVA_SVKernelFunction | |||
#define ROOT_TMVA_SVKernelFunction | #define ROOT_TMVA_SVKernelFunction | |||
#ifndef ROOT_Rtypes | #ifndef ROOT_Rtypes | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
namespace TMVA { | namespace TMVA { | |||
class SVEvent; | class SVEvent; | |||
class SVKernelFunction { | class SVKernelFunction { | |||
public: | public: | |||
SVKernelFunction(); | SVKernelFunction(); | |||
SVKernelFunction( Float_t ); | SVKernelFunction( Float_t ); | |||
~SVKernelFunction(); | ~SVKernelFunction(); | |||
Float_t Evaluate( SVEvent* ev1, SVEvent* ev2 ); | Float_t Evaluate( SVEvent* ev1, SVEvent* ev2 ); | |||
enum EKernelType { kLinear , kRBF, kPolynomial, kSigmoidal }; | ||||
void setCompatibilityParams(EKernelType k, UInt_t order, Float_t thet | ||||
a, Float_t kappa); | ||||
private: | private: | |||
Float_t fGamma; // documentation | Float_t fGamma; // documentation | |||
}; | ||||
// kernel, order, theta, and kappa are for backward compatibility | ||||
EKernelType fKernel; | ||||
UInt_t fOrder; | ||||
Float_t fTheta; | ||||
Float_t fKappa; | ||||
}; | ||||
} | } | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 15 lines changed or added | |||
SVKernelMatrix.h | SVKernelMatrix.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: SVKernelMatrix.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: SVKernelMatrix.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andrzej Zemla | // Author: Andrzej Zemla | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : SVKernelMatrix * | * Class : SVKernelMatrix * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Kernel matrix for Support Vector Machine * | * Kernel matrix for Support Vector Machine * | |||
skipping to change at line 61 | skipping to change at line 61 | |||
//destructor | //destructor | |||
~SVKernelMatrix(); | ~SVKernelMatrix(); | |||
//functions | //functions | |||
Float_t* GetLine ( UInt_t ); | Float_t* GetLine ( UInt_t ); | |||
Float_t* GetColumn ( UInt_t col ) { return this->GetLine(col);} | Float_t* GetColumn ( UInt_t col ) { return this->GetLine(col);} | |||
Float_t GetElement( UInt_t i, UInt_t j ); | Float_t GetElement( UInt_t i, UInt_t j ); | |||
private: | private: | |||
UInt_t fSize; // matrix size | UInt_t fSize; // matrix size | |||
SVKernelFunction* fKernelFunction; // kernel function | SVKernelFunction* fKernelFunction; // kernel function | |||
Float_t** fSVKernelMatrix; // kernel matrix | Float_t** fSVKernelMatrix; // kernel matrix | |||
mutable MsgLogger* fLogger; //! message logger | mutable MsgLogger* fLogger; //! message logger | |||
MsgLogger& Log() const { return *fLogger; } | MsgLogger& Log() const { return *fLogger; } | |||
}; | }; | |||
} | } | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
SVWorkingSet.h | SVWorkingSet.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: SVWorkingSet.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: SVWorkingSet.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andrzej Zemla | // Author: Andrzej Zemla | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : SVWorkingSet * | * Class : SVWorkingSet * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Working class for Support Vector Machine * | * Working class for Support Vector Machine * | |||
skipping to change at line 55 | skipping to change at line 55 | |||
public: | public: | |||
SVWorkingSet(); | SVWorkingSet(); | |||
SVWorkingSet( std::vector<TMVA::SVEvent*>*, SVKernelFunction*, Float_ t , Bool_t); | SVWorkingSet( std::vector<TMVA::SVEvent*>*, SVKernelFunction*, Float_ t , Bool_t); | |||
~SVWorkingSet(); | ~SVWorkingSet(); | |||
Bool_t ExamineExample( SVEvent*); | Bool_t ExamineExample( SVEvent*); | |||
Bool_t TakeStep ( SVEvent*, SVEvent*); | Bool_t TakeStep ( SVEvent*, SVEvent*); | |||
Bool_t Terminated(); | Bool_t Terminated(); | |||
void Train(); | void Train(UInt_t nIter=1000); | |||
void PrintStat(); | void PrintStat(); | |||
std::vector<TMVA::SVEvent*>* GetSupportVectors(); | std::vector<TMVA::SVEvent*>* GetSupportVectors(); | |||
Float_t GetBpar() {return 0.5*(fB_low + fB_up);} | Float_t GetBpar() {return 0.5*(fB_low + fB_up);} | |||
//for regression | //for regression | |||
Bool_t ExamineExampleReg(SVEvent*); | Bool_t ExamineExampleReg(SVEvent*); | |||
Bool_t TakeStepReg(SVEvent*, SVEvent*); | Bool_t TakeStepReg(SVEvent*, SVEvent*); | |||
Bool_t IsDiffSignificant(Float_t, Float_t, Float_t); | Bool_t IsDiffSignificant(Float_t, Float_t, Float_t); | |||
void TrainReg(); | void TrainReg(); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
SimulatedAnnealing.h | SimulatedAnnealing.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: SimulatedAnnealing.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: SimulatedAnnealing.h 31574 2009-12-05 18:23:21Z stelz er $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Krzysztof Danielowsk i, Kamil Kraszewski, Maciej Kruk | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Krzysztof Danielowsk i, Kamil Kraszewski, Maciej Kruk | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : SimulatedAnnealing * | * Class : SimulatedAnnealing * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Implementation of simulated annealing fitting procedure * | * Implementation of simulated annealing fitting procedure * | |||
skipping to change at line 58 | skipping to change at line 58 | |||
namespace TMVA { | namespace TMVA { | |||
class IFitterTarget; | class IFitterTarget; | |||
class Interval; | class Interval; | |||
class MsgLogger; | class MsgLogger; | |||
class SimulatedAnnealing { | class SimulatedAnnealing { | |||
public: | public: | |||
SimulatedAnnealing( IFitterTarget& target, const std::vector<Interval *>& ranges ); | SimulatedAnnealing( IFitterTarget& target, const std::vector<TMVA::In terval*>& ranges ); | |||
virtual ~SimulatedAnnealing(); | virtual ~SimulatedAnnealing(); | |||
// returns FCN value at minimum | // returns FCN value at minimum | |||
Double_t Minimize( std::vector<Double_t>& parameters ); | Double_t Minimize( std::vector<Double_t>& parameters ); | |||
// accessors | // accessors | |||
void SetMaxCalls ( Int_t mc ) { fMaxCalls = mc; } | void SetMaxCalls ( Int_t mc ) { fMaxCalls = mc; } | |||
void SetInitTemp ( Double_t it ) { fInitialTemperature = it; } | void SetInitTemp ( Double_t it ) { fInitialTemperature = it; } | |||
void SetMinTemp ( Double_t min ) { fMinTemperature = min; } | void SetMinTemp ( Double_t min ) { fMinTemperature = min; } | |||
void SetAccuracy ( Double_t eps ) { fEps = eps; } | void SetAccuracy ( Double_t eps ) { fEps = eps; } | |||
skipping to change at line 99 | skipping to change at line 99 | |||
void ReWriteParameters( std::vector<Double_t>& from, std::vector<Doub le_t>& to ); | void ReWriteParameters( std::vector<Double_t>& from, std::vector<Doub le_t>& to ); | |||
void GenerateNewTemperature(Double_t& currentTemperature, Int_t Iter ); | void GenerateNewTemperature(Double_t& currentTemperature, Int_t Iter ); | |||
void GenerateNeighbour( std::vector<Double_t>& parameters, std::vecto r<Double_t>& oldParameters, Double_t currentTemperature ); | void GenerateNeighbour( std::vector<Double_t>& parameters, std::vecto r<Double_t>& oldParameters, Double_t currentTemperature ); | |||
Bool_t ShouldGoIn( Double_t currentFit, Double_t localFit, Double_t c urrentTemperature ); | Bool_t ShouldGoIn( Double_t currentFit, Double_t localFit, Double_t c urrentTemperature ); | |||
void SetDefaultScale(); | void SetDefaultScale(); | |||
Double_t GenerateMaxTemperature( std::vector<Double_t>& parameters ); | Double_t GenerateMaxTemperature( std::vector<Double_t>& parameters ); | |||
std::vector<Double_t> GenerateNeighbour( std::vector<Double_t>& param eters, Double_t currentTemperature ); | std::vector<Double_t> GenerateNeighbour( std::vector<Double_t>& param eters, Double_t currentTemperature ); | |||
IFitterTarget& fFitterTarget; // the fitter target | IFitterTarget& fFitterTarget; // the fitter target | |||
TRandom* fRandom; // random gene rator | TRandom* fRandom; // random gene rator | |||
const std::vector<Interval*>& fRanges; // parameter r anges | const std::vector<TMVA::Interval*>& fRanges; // param eter ranges | |||
// fitter setup | // fitter setup | |||
Int_t fMaxCalls; // maximum num ber of minimisation calls | Int_t fMaxCalls; // maximum num ber of minimisation calls | |||
Double_t fInitialTemperature; // initial tem perature | Double_t fInitialTemperature; // initial tem perature | |||
Double_t fMinTemperature; // mimimum tem perature | Double_t fMinTemperature; // mimimum tem perature | |||
Double_t fEps; // epsilon | Double_t fEps; // epsilon | |||
Double_t fTemperatureScale; // how fast te mperature change | Double_t fTemperatureScale; // how fast te mperature change | |||
Double_t fAdaptiveSpeed; // how fast te mperature change in adaptive (in adaptive two variables describe | Double_t fAdaptiveSpeed; // how fast te mperature change in adaptive (in adaptive two variables describe | |||
// the change of temperature, but fAdaptiveSpeed should be 1.0 and its not | // the change of temperature, but fAdaptiveSpeed should be 1.0 and its not | |||
// recomended to change it) | // recomended to change it) | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
TApplication.h | TApplication.h | |||
---|---|---|---|---|
// @(#)root/base:$Id: TApplication.h 27160 2009-01-15 16:24:27Z pcanal $ | // @(#)root/base:$Id: TApplication.h 31670 2009-12-08 15:22:08Z rdm $ | |||
// Author: Fons Rademakers 22/12/95 | // Author: Fons Rademakers 22/12/95 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 61 | skipping to change at line 61 | |||
private: | private: | |||
Int_t fArgc; //Number of com mand line argument s | Int_t fArgc; //Number of com mand line argument s | |||
char **fArgv; //Command line arguments | char **fArgv; //Command line arguments | |||
TApplicationImp *fAppImp; //!Window system specific applicatio n implementation | TApplicationImp *fAppImp; //!Window system specific applicatio n implementation | |||
Bool_t fIsRunning; //True when in event loop (Run() has been called) | Bool_t fIsRunning; //True when in event loop (Run() has been called) | |||
Bool_t fReturnFromRun; //When true return from Run() | Bool_t fReturnFromRun; //When true return from Run() | |||
Bool_t fNoLog; //Do not process logon and logoff ma cros | Bool_t fNoLog; //Do not process logon and logoff ma cros | |||
Bool_t fNoLogo; //Do not show splash screen and welc ome message | Bool_t fNoLogo; //Do not show splash screen and welc ome message | |||
Bool_t fQuit; //Exit after having processed input files | Bool_t fQuit; //Exit after having processed input files | |||
Bool_t fGraphInit; //True if graphics has been initiali zed | ||||
TObjArray *fFiles; //Array of input files (TObjString's ) specified via argv | TObjArray *fFiles; //Array of input files (TObjString's ) specified via argv | |||
TString fWorkDir; //Working directory specified via ar gv | TString fWorkDir; //Working directory specified via ar gv | |||
TString fIdleCommand; //Command to execute while applicati on is idle | TString fIdleCommand; //Command to execute while applicati on is idle | |||
TTimer *fIdleTimer; //Idle timer | TTimer *fIdleTimer; //Idle timer | |||
TSignalHandler *fSigHandler; //Interrupt handler | TSignalHandler *fSigHandler; //Interrupt handler | |||
static Bool_t fgGraphNeeded; // True if graphics libs need to be initialized | static Bool_t fgGraphNeeded; // True if graphics libs need to be initialized | |||
static Bool_t fgGraphInit; // True if graphics libs initialized | static Bool_t fgGraphInit; // True if graphics libs initialized | |||
TApplication(const TApplication&); // not implemented | TApplication(const TApplication&); // not implemented | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 1 lines changed or added | |||
TBackCompFitter.h | TBackCompFitter.h | |||
---|---|---|---|---|
// @(#)root/minuit2:$Id: TBackCompFitter.h 28022 2009-04-01 14:41:58Z monet a $ | // @(#)root/minuit2:$Id: TBackCompFitter.h 31873 2009-12-14 10:05:39Z brun $ | |||
// Author: L. Moneta 08/2008 | // Author: L. Moneta 08/2008 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2008 ROOT Foundation, CERN/PH-SFT * | * Copyright (c) 2008 ROOT Foundation, CERN/PH-SFT * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
#ifndef ROOT_TBackCompFitter_H_ | #ifndef ROOT_TBackCompFitter_H_ | |||
#define ROOT_TBackCompFitter_H_ | #define ROOT_TBackCompFitter_H_ | |||
skipping to change at line 41 | skipping to change at line 41 | |||
/** | /** | |||
TVirtualFitter backward compatibility implementation using new ROOT::Fi t::Fitter | TVirtualFitter backward compatibility implementation using new ROOT::Fi t::Fitter | |||
*/ | */ | |||
class TGraph; | class TGraph; | |||
namespace ROOT { | namespace ROOT { | |||
namespace Fit { | namespace Fit { | |||
class FitData; | class FitData; | |||
} | } | |||
namespace Math { | ||||
class Minimizer; | ||||
} | ||||
} | } | |||
class TBackCompFitter : public TVirtualFitter { | class TBackCompFitter : public TVirtualFitter { | |||
public: | public: | |||
TBackCompFitter(); | TBackCompFitter(); | |||
//TBackCompFitter(ROOT::Fit::Fitter & fitter, ROOT::Fit::FitData * ); | //TBackCompFitter(ROOT::Fit::Fitter & fitter, ROOT::Fit::FitData * ); | |||
TBackCompFitter( std::auto_ptr<ROOT::Fit::Fitter> fitter, std::auto_ptr <ROOT::Fit::FitData> data ); | TBackCompFitter( std::auto_ptr<ROOT::Fit::Fitter> fitter, std::auto_ptr <ROOT::Fit::FitData> data ); | |||
skipping to change at line 104 | skipping to change at line 107 | |||
// get reference to Fit configuration (NOTE: it will be invalid when cla ss is deleted) | // get reference to Fit configuration (NOTE: it will be invalid when cla ss is deleted) | |||
ROOT::Fit::FitConfig & GetFitConfig() { return fFitter->Config(); } | ROOT::Fit::FitConfig & GetFitConfig() { return fFitter->Config(); } | |||
// get reference to Fit Result object (NOTE: it will be invalid when cla ss is deleted) | // get reference to Fit Result object (NOTE: it will be invalid when cla ss is deleted) | |||
const ROOT::Fit::FitResult & GetFitResult() const { return fFitter->Resu lt(); } | const ROOT::Fit::FitResult & GetFitResult() const { return fFitter->Resu lt(); } | |||
// get reference to Fit Data object (NOTE: it will be invalid when class is deleted) | // get reference to Fit Data object (NOTE: it will be invalid when class is deleted) | |||
const ROOT::Fit::FitData & GetFitData() const { return *fFitData; } | const ROOT::Fit::FitData & GetFitData() const { return *fFitData; } | |||
// return pointer to last used minimizer | ||||
ROOT::Math::Minimizer * GetMinimizer(); | ||||
// return pointer to last used objective function | ||||
ROOT::Math::IMultiGenFunction * GetObjFunction(); | ||||
// scan likelihood value of parameter and fill the given graph. | // scan likelihood value of parameter and fill the given graph. | |||
bool Scan(unsigned int ipar, TGraph * gr, double xmin = 0, double xmax = 0); | bool Scan(unsigned int ipar, TGraph * gr, double xmin = 0, double xmax = 0); | |||
// // scan likelihood value for two parameters and fill the given graph . | // // scan likelihood value for two parameters and fill the given graph . | |||
// bool Scan2D(unsigned int ipar, unsigned int jpar, TGraph2D * gr, | // bool Scan2D(unsigned int ipar, unsigned int jpar, TGraph2D * gr, | |||
// double xmin = 0, double xmax = 0, double ymin = 0, double ymax = 0); | // double xmin = 0, double xmax = 0, double ymin = 0, double ymax = 0); | |||
// create contour of two parameters around the minimum | // create contour of two parameters around the minimum | |||
// pass as option confidence level: default is a value of 0.683 | // pass as option confidence level: default is a value of 0.683 | |||
bool Contour(unsigned int ipar, unsigned int jpar, TGraph * gr , double confLevel = 0.683); | bool Contour(unsigned int ipar, unsigned int jpar, TGraph * gr , double confLevel = 0.683); | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 10 lines changed or added | |||
TClass.h | TClass.h | |||
---|---|---|---|---|
// @(#)root/meta:$Id: TClass.h 29000 2009-06-15 13:53:52Z rdm $ | // @(#)root/meta:$Id: TClass.h 31472 2009-11-30 17:59:33Z pcanal $ | |||
// Author: Rene Brun 07/01/95 | // Author: Rene Brun 07/01/95 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 290 | skipping to change at line 290 | |||
TVirtualStreamerInfo *GetStreamerInfo(Int_t version=0) const; | TVirtualStreamerInfo *GetStreamerInfo(Int_t version=0) const; | |||
const type_info *GetTypeInfo() const { return fTypeInfo; }; | const type_info *GetTypeInfo() const { return fTypeInfo; }; | |||
void IgnoreTObjectStreamer(Bool_t ignore=kTRUE); | void IgnoreTObjectStreamer(Bool_t ignore=kTRUE); | |||
Bool_t InheritsFrom(const char *cl) const; | Bool_t InheritsFrom(const char *cl) const; | |||
Bool_t InheritsFrom(const TClass *cl) const; | Bool_t InheritsFrom(const TClass *cl) const; | |||
Bool_t IsFolder() const { return kTRUE; } | Bool_t IsFolder() const { return kTRUE; } | |||
Bool_t IsLoaded() const; | Bool_t IsLoaded() const; | |||
Bool_t IsForeign() const; | Bool_t IsForeign() const; | |||
Bool_t IsStartingWithTObject() const; | Bool_t IsStartingWithTObject() const; | |||
Bool_t IsTObject() const; | Bool_t IsTObject() const; | |||
void ls(Option_t *opt="") const; | ||||
void MakeCustomMenuList(); | void MakeCustomMenuList(); | |||
void Move(void *arenaFrom, void *arenaTo) const; | void Move(void *arenaFrom, void *arenaTo) const; | |||
void *New(ENewType defConstructor = kClassNew) const; | void *New(ENewType defConstructor = kClassNew) const; | |||
void *New(void *arena, ENewType defConstructor = kClassNew) const; | void *New(void *arena, ENewType defConstructor = kClassNew) const; | |||
void *NewArray(Long_t nElements, ENewType defConstructor = kClassNew) const; | void *NewArray(Long_t nElements, ENewType defConstructor = kClassNew) const; | |||
void *NewArray(Long_t nElements, void *arena, ENewType defC onstructor = kClassNew) const; | void *NewArray(Long_t nElements, void *arena, ENewType defC onstructor = kClassNew) const; | |||
virtual void PostLoadCheck(); | virtual void PostLoadCheck(); | |||
Long_t Property() const; | Long_t Property() const; | |||
Int_t ReadBuffer(TBuffer &b, void *pointer, Int_t version, UInt_t start, UInt_t count); | Int_t ReadBuffer(TBuffer &b, void *pointer, Int_t version, UInt_t start, UInt_t count); | |||
Int_t ReadBuffer(TBuffer &b, void *pointer); | Int_t ReadBuffer(TBuffer &b, void *pointer); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TCollectionProxyInfo.h | TCollectionProxyInfo.h | |||
---|---|---|---|---|
// @(#)root/cont:$Id: TCollectionProxyInfo.h 28776 2009-06-02 15:16:39Z pca nal $ | // @(#)root/cont:$Id: TCollectionProxyInfo.h 31743 2009-12-09 19:08:37Z pca nal $ | |||
// Author: Markus Frank 28/10/04. Philippe Canal 02/01/2007 | // Author: Markus Frank 28/10/04. Philippe Canal 02/01/2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 58 | skipping to change at line 58 | |||
* | * | |||
* Small helper to save proxy environment in the event of | * Small helper to save proxy environment in the event of | |||
* recursive calls. | * recursive calls. | |||
* | * | |||
* @author M.Frank | * @author M.Frank | |||
* @version 1.0 | * @version 1.0 | |||
* @date 10/10/2004 | * @date 10/10/2004 | |||
*/ | */ | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
struct EnvironBase { | struct EnvironBase { | |||
private: | ||||
EnvironBase(const EnvironBase&); // Intentionally not implement, copy | ||||
is not supported | ||||
EnvironBase &operator=(const EnvironBase&); // Intentionally not impl | ||||
ement, copy is not supported | ||||
public: | ||||
EnvironBase() : fIdx(0), fSize(0), fObject(0), fStart(0), fTemp(0), f UseTemp(kFALSE), fRefCount(1), fSpace(0) | EnvironBase() : fIdx(0), fSize(0), fObject(0), fStart(0), fTemp(0), f UseTemp(kFALSE), fRefCount(1), fSpace(0) | |||
{ | { | |||
// fprintf("Running default constructor on %p\n",this); | ||||
} | } | |||
virtual ~EnvironBase() {} | virtual ~EnvironBase() {} | |||
size_t fIdx; | size_t fIdx; | |||
size_t fSize; | size_t fSize; | |||
void* fObject; | void* fObject; | |||
void* fStart; | void* fStart; | |||
void* fTemp; | void* fTemp; | |||
Bool_t fUseTemp; | Bool_t fUseTemp; | |||
int fRefCount; | int fRefCount; | |||
size_t fSpace; | size_t fSpace; | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 7 lines changed or added | |||
TEveArrow.h | TEveArrow.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveArrow.h 31016 2009-11-06 17:39:41Z matevz $ | // @(#)root/eve:$Id: TEveArrow.h 31517 2009-12-03 11:56:23Z matevz $ | |||
// Author: Matevz Tadel 2007 | // Author: Matevz Tadel 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEveArrow | #ifndef ROOT_TEveArrow | |||
#define ROOT_TEveArrow | #define ROOT_TEveArrow | |||
#include "TEveElement.h" | #include "TEveElement.h" | |||
#include "TEveVector.h" | ||||
#include "TNamed.h" | #include "TNamed.h" | |||
#include "TAtt3D.h" | #include "TAtt3D.h" | |||
#include "TAttBBox.h" | #include "TAttBBox.h" | |||
#include "TEveVSDStructs.h" | ||||
class TEveArrow : public TEveElement, | class TEveArrow : public TEveElement, | |||
public TNamed, | public TNamed, | |||
public TAtt3D, | public TAtt3D, | |||
public TAttBBox | public TAttBBox | |||
{ | { | |||
friend class TEveArrowGL; | friend class TEveArrowGL; | |||
friend class TEveArrowEditor; | friend class TEveArrowEditor; | |||
private: | private: | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TEveBoxSet.h | TEveBoxSet.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveBoxSet.h 27157 2009-01-15 14:05:12Z brun $ | // @(#)root/eve:$Id: TEveBoxSet.h 31517 2009-12-03 11:56:23Z matevz $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEveBoxSet | #ifndef ROOT_TEveBoxSet | |||
#define ROOT_TEveBoxSet | #define ROOT_TEveBoxSet | |||
#include "TEveDigitSet.h" | #include "TEveDigitSet.h" | |||
#include "TEveVSDStructs.h" | #include "TEveVector.h" | |||
class TGeoMatrix; | class TGeoMatrix; | |||
class TRandom; | class TRandom; | |||
class TEveBoxSet: public TEveDigitSet | class TEveBoxSet: public TEveDigitSet | |||
{ | { | |||
friend class TEveBoxSetGL; | friend class TEveBoxSetGL; | |||
TEveBoxSet(const TEveBoxSet&); // Not implemented | TEveBoxSet(const TEveBoxSet&); // Not implemented | |||
TEveBoxSet& operator=(const TEveBoxSet&); // Not implemented | TEveBoxSet& operator=(const TEveBoxSet&); // Not implemented | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TEveBoxSetGL.h | TEveBoxSetGL.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveBoxSetGL.h 26250 2008-11-17 20:56:44Z matevz $ | // @(#)root/eve:$Id: TEveBoxSetGL.h 31450 2009-11-27 14:25:37Z matevz $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 34 | skipping to change at line 34 | |||
TEveBoxSet *fM; // Model object. | TEveBoxSet *fM; // Model object. | |||
mutable UInt_t fBoxDL; // Display-list id for a box atom. | mutable UInt_t fBoxDL; // Display-list id for a box atom. | |||
Int_t PrimitiveType() const; | Int_t PrimitiveType() const; | |||
Bool_t SetupColor(const TEveDigitSet::DigitBase_t& q) const; | Bool_t SetupColor(const TEveDigitSet::DigitBase_t& q) const; | |||
void MakeOriginBox(Float_t p[24], Float_t dx, Float_t dy, Float_t dz) const; | void MakeOriginBox(Float_t p[24], Float_t dx, Float_t dy, Float_t dz) const; | |||
void RenderBox(const Float_t p[24]) const; | void RenderBox(const Float_t p[24]) const; | |||
void MakeDisplayList() const; | void MakeDisplayList() const; | |||
void RenderBoxes(TGLRnrCtx & rnrCtx) const; | ||||
public: | public: | |||
TEveBoxSetGL(); | TEveBoxSetGL(); | |||
virtual ~TEveBoxSetGL(); | virtual ~TEveBoxSetGL(); | |||
virtual Bool_t ShouldDLCache(const TGLRnrCtx & rnrCtx) const; | virtual Bool_t ShouldDLCache(const TGLRnrCtx & rnrCtx) const; | |||
virtual void DLCacheDrop(); | virtual void DLCacheDrop(); | |||
virtual void DLCachePurge(); | virtual void DLCachePurge(); | |||
virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0); | virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0); | |||
virtual void SetBBox(); | virtual void SetBBox(); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
TEveCaloLegoGL.h | TEveCaloLegoGL.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveCaloLegoGL.h 30929 2009-10-30 15:18:51Z matevz $ | // @(#)root/eve:$Id: TEveCaloLegoGL.h 31517 2009-12-03 11:56:23Z matevz $ | |||
// Author: Alja Mrak-Tadel 2007 | // Author: Alja Mrak-Tadel 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEveCaloLegoGL | #ifndef ROOT_TEveCaloLegoGL | |||
#define ROOT_TEveCaloLegoGL | #define ROOT_TEveCaloLegoGL | |||
#include "TGLObject.h" | #include "TGLObject.h" | |||
#include "TGLAxisPainter.h" | #include "TGLAxisPainter.h" | |||
#include "TEveCaloData.h" | #include "TEveCaloData.h" | |||
#include "TEveVSDStructs.h" | #include "TEveVector.h" | |||
#include "TEveCalo.h" | #include "TEveCalo.h" | |||
#include <map> | #include <map> | |||
class TEveCaloLego; | class TEveCaloLego; | |||
class TEveCaloLegoGL : public TGLObject | class TEveCaloLegoGL : public TGLObject | |||
{ | { | |||
private: | private: | |||
struct Cell2D_t | struct Cell2D_t | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TEveGedEditor.h | TEveGedEditor.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveGedEditor.h 31326 2009-11-19 17:04:40Z matevz $ | // @(#)root/eve:$Id: TEveGedEditor.h 31428 2009-11-25 17:03:52Z matevz $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEveGedEditor | #ifndef ROOT_TEveGedEditor | |||
#define ROOT_TEveGedEditor | #define ROOT_TEveGedEditor | |||
#include "TGedEditor.h" | #include "TGedEditor.h" | |||
#include "TGedFrame.h" | #include "TGedFrame.h" | |||
#include "TGButton.h" | ||||
class TEveElement; | class TEveElement; | |||
class TContextMenu; | ||||
//========================================================================= ===== | //========================================================================= ===== | |||
// TEveGedEditor | // TEveGedEditor | |||
//========================================================================= ===== | //========================================================================= ===== | |||
class TEveGedEditor : public TGedEditor | class TEveGedEditor : public TGedEditor | |||
{ | { | |||
TEveGedEditor(const TEveGedEditor&); // Not implemented | TEveGedEditor(const TEveGedEditor&); // Not implemented | |||
TEveGedEditor& operator=(const TEveGedEditor&); // Not implemented | TEveGedEditor& operator=(const TEveGedEditor&); // Not implemented | |||
skipping to change at line 41 | skipping to change at line 43 | |||
protected: | protected: | |||
TEveElement *fElement; // Cached eve-element pointer. | TEveElement *fElement; // Cached eve-element pointer. | |||
TObject *fObject; // Cached tobj pointer. | TObject *fObject; // Cached tobj pointer. | |||
virtual TGedFrame* CreateNameFrame(const TGWindow* parent, const char* t ab_name); | virtual TGedFrame* CreateNameFrame(const TGWindow* parent, const char* t ab_name); | |||
static Int_t fgMaxExtraEditors; | static Int_t fgMaxExtraEditors; | |||
static TList *fgExtraEditors; | static TList *fgExtraEditors; | |||
static TContextMenu *fgContextMenu; | ||||
public: | public: | |||
TEveGedEditor(TCanvas* canvas=0, UInt_t width=250, UInt_t height=400); | TEveGedEditor(TCanvas* canvas=0, UInt_t width=250, UInt_t height=400); | |||
virtual ~TEveGedEditor(); | virtual ~TEveGedEditor(); | |||
virtual void CloseWindow(); | virtual void CloseWindow(); | |||
virtual void DeleteWindow(); | virtual void DeleteWindow(); | |||
TEveElement* GetEveElement() const; | TEveElement* GetEveElement() const; | |||
void DisplayElement(TEveElement* re); | void DisplayElement(TEveElement* re); | |||
skipping to change at line 64 | skipping to change at line 68 | |||
virtual void Update(TGedFrame* gframe=0); | virtual void Update(TGedFrame* gframe=0); | |||
// --- Statics for extra editors. --- | // --- Statics for extra editors. --- | |||
static void SpawnNewEditor(TObject* obj); | static void SpawnNewEditor(TObject* obj); | |||
static void ElementChanged(TEveElement* el); | static void ElementChanged(TEveElement* el); | |||
static void ElementDeleted(TEveElement* el); | static void ElementDeleted(TEveElement* el); | |||
static void DestroyEditors(); | static void DestroyEditors(); | |||
static TContextMenu* GetContextMenu(); | ||||
ClassDef(TEveGedEditor, 0); // Specialization of TGedEditor for proper u pdate propagation to TEveManager. | ClassDef(TEveGedEditor, 0); // Specialization of TGedEditor for proper u pdate propagation to TEveManager. | |||
}; | }; | |||
//========================================================================= ===== | //========================================================================= ===== | |||
// TEveGedNameFrame | // TEveGedNameFrame | |||
//========================================================================= ===== | //========================================================================= ===== | |||
class TEveGedNameFrame : public TGedFrame | class TEveGedNameFrame : public TGedFrame | |||
{ | { | |||
private: | private: | |||
TEveGedNameFrame(const TEveGedNameFrame&); // Not implemented | TEveGedNameFrame(const TEveGedNameFrame&); // Not implemented | |||
TEveGedNameFrame& operator=(const TEveGedNameFrame&); // Not implemented | TEveGedNameFrame& operator=(const TEveGedNameFrame&); // Not implemented | |||
protected: | protected: | |||
TGTextButton *fNCButton; // Name/Class button. | TGTextButton *fNCButton; // Name/Class button. | |||
public: | public: | |||
TEveGedNameFrame(const TGWindow *p=0, Int_t width=140, Int_t height=30, | TEveGedNameFrame(const TGWindow *p=0, Int_t width=140, Int_t height=30, | |||
UInt_t options=kChildFrame | kHorizontalFrame); | UInt_t options=kChildFrame | kHorizontalFrame); | |||
virtual ~TEveGedNameFrame(); | virtual ~TEveGedNameFrame(); | |||
virtual void SetModel(TObject* obj); | virtual void SetModel(TObject* obj); | |||
void SpawnEditorClone(); | void SpawnEditorClone(); | |||
ClassDef(TEveGedNameFrame, 0); // Top name-frame used in EVE. | ClassDef(TEveGedNameFrame, 0); // Top name-frame used in EVE. | |||
}; | }; | |||
//========================================================================= | ||||
===== | ||||
// TEveGedNameTextButton | ||||
//========================================================================= | ||||
===== | ||||
class TEveGedNameTextButton : public TGTextButton | ||||
{ | ||||
TEveGedNameFrame *fFrame; | ||||
public: | ||||
TEveGedNameTextButton(TEveGedNameFrame* p); | ||||
virtual ~TEveGedNameTextButton(); | ||||
virtual Bool_t HandleButton(Event_t* event); | ||||
ClassDef(TEveGedNameTextButton, 0); // Button for GED name-frame. | ||||
}; | ||||
#endif | #endif | |||
End of changes. 7 change blocks. | ||||
2 lines changed or deleted | 27 lines changed or added | |||
TEveJetCone.h | TEveJetCone.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveJetCone.h 28214 2009-04-15 11:32:25Z matevz $ | // @(#)root/eve:$Id: TEveJetCone.h 31517 2009-12-03 11:56:23Z matevz $ | |||
// Author: Matevz Tadel, Jochen Thaeder 2009 | // Author: Matevz Tadel, Jochen Thaeder 2009 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEveJetCone | #ifndef ROOT_TEveJetCone | |||
#define ROOT_TEveJetCone | #define ROOT_TEveJetCone | |||
#include "TEveElement.h" | #include "TEveElement.h" | |||
#include "TEveVSDStructs.h" | #include "TEveVector.h" | |||
#include "TAttBBox.h" | #include "TAttBBox.h" | |||
class TEveJetCone : public TEveElementList, | class TEveJetCone : public TEveElementList, | |||
public TAttBBox | public TAttBBox | |||
{ | { | |||
friend class TEveJetConeGL; | friend class TEveJetConeGL; | |||
private: | private: | |||
TEveJetCone(const TEveJetCone&); // Not implemented | TEveJetCone(const TEveJetCone&); // Not implemented | |||
TEveJetCone& operator=(const TEveJetCone&); // Not implemented | TEveJetCone& operator=(const TEveJetCone&); // Not implemented | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TEveLine.h | TEveLine.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveLine.h 30840 2009-10-23 09:03:14Z matevz $ | // @(#)root/eve:$Id: TEveLine.h 31517 2009-12-03 11:56:23Z matevz $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEveLine | #ifndef ROOT_TEveLine | |||
#define ROOT_TEveLine | #define ROOT_TEveLine | |||
#include "TEveUtil.h" | ||||
#include "TEvePointSet.h" | #include "TEvePointSet.h" | |||
#include "TEveVector.h" | ||||
#include "TAttLine.h" | #include "TAttLine.h" | |||
//------------------------------------------------------------------------- ----- | //------------------------------------------------------------------------- ----- | |||
// TEveLine | // TEveLine | |||
//------------------------------------------------------------------------- ----- | //------------------------------------------------------------------------- ----- | |||
class TEveLine : public TEvePointSet, | class TEveLine : public TEvePointSet, | |||
public TAttLine | public TAttLine | |||
{ | { | |||
skipping to change at line 46 | skipping to change at line 46 | |||
Bool_t fRnrPoints; | Bool_t fRnrPoints; | |||
Bool_t fSmooth; | Bool_t fSmooth; | |||
static Bool_t fgDefaultSmooth; | static Bool_t fgDefaultSmooth; | |||
public: | public: | |||
TEveLine(Int_t n_points=0, ETreeVarType_e tv_type=kTVT_XYZ); | TEveLine(Int_t n_points=0, ETreeVarType_e tv_type=kTVT_XYZ); | |||
TEveLine(const char* name, Int_t n_points=0, ETreeVarType_e tv_type=kTVT _XYZ); | TEveLine(const char* name, Int_t n_points=0, ETreeVarType_e tv_type=kTVT _XYZ); | |||
virtual ~TEveLine() {} | virtual ~TEveLine() {} | |||
virtual void SetLineColor(Color_t col) { SetMainColor(col); } | ||||
virtual void SetMarkerColor(Color_t col); | virtual void SetMarkerColor(Color_t col); | |||
virtual void SetLineColor(Color_t col) { SetMainColor(col); } | ||||
virtual void SetLineStyle(Style_t lstyle); | ||||
virtual void SetLineWidth(Width_t lwidth); | ||||
Bool_t GetRnrLine() const { return fRnrLine; } | Bool_t GetRnrLine() const { return fRnrLine; } | |||
Bool_t GetRnrPoints() const { return fRnrPoints; } | Bool_t GetRnrPoints() const { return fRnrPoints; } | |||
Bool_t GetSmooth() const { return fSmooth; } | Bool_t GetSmooth() const { return fSmooth; } | |||
void SetRnrLine(Bool_t r); | void SetRnrLine(Bool_t r); | |||
void SetRnrPoints(Bool_t r); | void SetRnrPoints(Bool_t r); | |||
void SetSmooth(Bool_t r); | void SetSmooth(Bool_t r); | |||
void ReduceSegmentLengths(Float_t max); | void ReduceSegmentLengths(Float_t max); | |||
TEveVector GetLineStart() const; | TEveVector GetLineStart() const; | |||
End of changes. 5 change blocks. | ||||
3 lines changed or deleted | 6 lines changed or added | |||
TEvePointSet.h | TEvePointSet.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEvePointSet.h 31327 2009-11-19 17:13:58Z matevz $ | // @(#)root/eve:$Id: TEvePointSet.h 31517 2009-12-03 11:56:23Z matevz $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEvePointSet | #ifndef ROOT_TEvePointSet | |||
#define ROOT_TEvePointSet | #define ROOT_TEvePointSet | |||
#include "TEveVSDStructs.h" | ||||
#include "TEveElement.h" | #include "TEveElement.h" | |||
#include "TEveProjectionBases.h" | #include "TEveProjectionBases.h" | |||
#include "TEveTreeTools.h" | #include "TEveTreeTools.h" | |||
#include "TArrayI.h" | #include "TArrayI.h" | |||
#include "TPointSet3D.h" | #include "TPointSet3D.h" | |||
#include "TQObject.h" | #include "TQObject.h" | |||
class TTree; | class TTree; | |||
class TF3; | class TF3; | |||
skipping to change at line 82 | skipping to change at line 81 | |||
{ fName = n; fTitle = t; NameTitleChanged(); } | { fName = n; fTitle = t; NameTitleChanged(); } | |||
Int_t GetIntIdsPerPoint() const { return fIntIdsPerPoint; } | Int_t GetIntIdsPerPoint() const { return fIntIdsPerPoint; } | |||
Int_t* GetPointIntIds(Int_t p) const; | Int_t* GetPointIntIds(Int_t p) const; | |||
Int_t GetPointIntId(Int_t p, Int_t i) const; | Int_t GetPointIntId(Int_t p, Int_t i) const; | |||
void SetPointIntIds(Int_t* ids); | void SetPointIntIds(Int_t* ids); | |||
void SetPointIntIds(Int_t n, Int_t* ids); | void SetPointIntIds(Int_t n, Int_t* ids); | |||
virtual void SetMarkerColor(Color_t col) { SetMainColor(col); } | virtual void SetMarkerColor(Color_t col) { SetMainColor(col); } | |||
virtual void SetMarkerStyle(Style_t mstyle=1); | ||||
virtual void SetMarkerSize(Size_t msize=1); | ||||
virtual void Paint(Option_t* option=""); | virtual void Paint(Option_t* option=""); | |||
virtual void InitFill(Int_t subIdNum); | virtual void InitFill(Int_t subIdNum); | |||
virtual void TakeAction(TEvePointSelector*); | virtual void TakeAction(TEvePointSelector*); | |||
virtual void PointSelected(Int_t id); // *SIGNAL* | virtual void PointSelected(Int_t id); // *SIGNAL* | |||
virtual const TGPicture* GetListTreeIcon(Bool_t open=kFALSE); | virtual const TGPicture* GetListTreeIcon(Bool_t open=kFALSE); | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 3 lines changed or added | |||
TEvePolygonSetProjected.h | TEvePolygonSetProjected.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEvePolygonSetProjected.h 30840 2009-10-23 09:03:14Z m atevz $ | // @(#)root/eve:$Id: TEvePolygonSetProjected.h 31517 2009-12-03 11:56:23Z m atevz $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEvePolygonSetProjected | #ifndef ROOT_TEvePolygonSetProjected | |||
#define ROOT_TEvePolygonSetProjected | #define ROOT_TEvePolygonSetProjected | |||
#include "TEveElement.h" | #include "TEveElement.h" | |||
#include "TEveProjectionBases.h" | #include "TEveProjectionBases.h" | |||
#include "TNamed.h" | #include "TNamed.h" | |||
#include "TAtt3D.h" | #include "TAtt3D.h" | |||
#include "TAttBBox.h" | #include "TAttBBox.h" | |||
#include "TColor.h" | #include "TColor.h" | |||
#include "TEveVSDStructs.h" | ||||
class TBuffer3D; | class TBuffer3D; | |||
class TEveVector; | class TEveVector; | |||
class TEvePolygonSetProjected : public TEveElementList, | class TEvePolygonSetProjected : public TEveElementList, | |||
public TEveProjected, | public TEveProjected, | |||
public TAtt3D, | public TAtt3D, | |||
public TAttBBox | public TAttBBox | |||
{ | { | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 1 lines changed or added | |||
TEveProjectionManager.h | TEveProjectionManager.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveProjectionManager.h 30840 2009-10-23 09:03:14Z mat evz $ | // @(#)root/eve:$Id: TEveProjectionManager.h 31517 2009-12-03 11:56:23Z mat evz $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEveProjectionManager | #ifndef ROOT_TEveProjectionManager | |||
#define ROOT_TEveProjectionManager | #define ROOT_TEveProjectionManager | |||
#include "TEveElement.h" | #include "TEveElement.h" | |||
#include "TAttBBox.h" | #include "TAttBBox.h" | |||
#include "TEveProjections.h" | #include "TEveProjections.h" | |||
#include "TEveVSDStructs.h" | ||||
class TEveProjectionManager : public TEveElementList, | class TEveProjectionManager : public TEveElementList, | |||
public TAttBBox | public TAttBBox | |||
{ | { | |||
private: | private: | |||
TEveProjectionManager(const TEveProjectionManager&); // Not i mplemented | TEveProjectionManager(const TEveProjectionManager&); // Not i mplemented | |||
TEveProjectionManager& operator=(const TEveProjectionManager&); // Not i mplemented | TEveProjectionManager& operator=(const TEveProjectionManager&); // Not i mplemented | |||
protected: | protected: | |||
TEveProjection* fProjections[TEveProjection::kPT_End]; | TEveProjection* fProjections[TEveProjection::kPT_End]; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 1 lines changed or added | |||
TEveProjections.h | TEveProjections.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveProjections.h 30840 2009-10-23 09:03:14Z matevz $ | // @(#)root/eve:$Id: TEveProjections.h 31517 2009-12-03 11:56:23Z matevz $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEveProjections | #ifndef ROOT_TEveProjections | |||
#define ROOT_TEveProjections | #define ROOT_TEveProjections | |||
#include "TEveVSDStructs.h" | #include "TEveVector.h" | |||
#include "TString.h" | ||||
#include <vector> | #include <vector> | |||
//========================================================================= ===== | //========================================================================= ===== | |||
// TEveProjection | // TEveProjection | |||
//========================================================================= ===== | //========================================================================= ===== | |||
class TEveProjection | class TEveProjection | |||
{ | { | |||
public: | public: | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 3 lines changed or added | |||
TEveTrack.h | TEveTrack.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveTrack.h 30840 2009-10-23 09:03:14Z matevz $ | // @(#)root/eve:$Id: TEveTrack.h 31517 2009-12-03 11:56:23Z matevz $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEveTrack | #ifndef ROOT_TEveTrack | |||
#define ROOT_TEveTrack | #define ROOT_TEveTrack | |||
#include <vector> | #include <vector> | |||
#include "TEveVSDStructs.h" | #include "TEveVector.h" | |||
#include "TEveElement.h" | #include "TEveElement.h" | |||
#include "TEveLine.h" | #include "TEveLine.h" | |||
#include "TPolyMarker3D.h" | #include "TPolyMarker3D.h" | |||
#include "TMarker.h" | #include "TMarker.h" | |||
class TEveTrackPropagator; | class TEveTrackPropagator; | |||
class TEveTrackList; | class TEveTrackList; | |||
class TEveRecTrack; | ||||
class TEveMCTrack; | ||||
class TParticle; | ||||
class TEveTrack : public TEveLine | class TEveTrack : public TEveLine | |||
{ | { | |||
friend class TEveTrackPropagator; | friend class TEveTrackPropagator; | |||
friend class TEveTrackList; | friend class TEveTrackList; | |||
friend class TEveTrackGL; | friend class TEveTrackGL; | |||
private: | private: | |||
TEveTrack& operator=(const TEveTrack&); // Not implemented | TEveTrack& operator=(const TEveTrack&); // Not implemented | |||
public: | public: | |||
skipping to change at line 109 | skipping to change at line 113 | |||
const vPathMark_t& RefPathMarks() const { return fPathMarks; } | const vPathMark_t& RefPathMarks() const { return fPathMarks; } | |||
void PrintPathMarks(); // *MENU* | void PrintPathMarks(); // *MENU* | |||
void SetLockPoints(Bool_t l) { fLockPoints = l; } | void SetLockPoints(Bool_t l) { fLockPoints = l; } | |||
Bool_t GetLockPoints() const { return fLockPoints; } | Bool_t GetLockPoints() const { return fLockPoints; } | |||
//------------------------------------------------------------------- | //------------------------------------------------------------------- | |||
virtual void SecSelected(TEveTrack*); // *SIGNAL* | virtual void SecSelected(TEveTrack*); // *SIGNAL* | |||
virtual void SetLineStyle(Style_t lstyle); | ||||
virtual const TGPicture* GetListTreeIcon(Bool_t open=kFALSE); | virtual const TGPicture* GetListTreeIcon(Bool_t open=kFALSE); | |||
virtual void CopyVizParams(const TEveElement* el); | virtual void CopyVizParams(const TEveElement* el); | |||
virtual void WriteVizParams(ostream& out, const TString& var); | virtual void WriteVizParams(ostream& out, const TString& var); | |||
virtual TClass* ProjectedClass(const TEveProjection* p) const; | virtual TClass* ProjectedClass(const TEveProjection* p) const; | |||
Bool_t ShouldBreakTrack() const; | Bool_t ShouldBreakTrack() const; | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 6 lines changed or added | |||
TEveTrackPropagator.h | TEveTrackPropagator.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveTrackPropagator.h 29919 2009-08-26 20:43:36Z matev z $ | // @(#)root/eve:$Id: TEveTrackPropagator.h 31540 2009-12-03 17:02:17Z matev z $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEveTrackPropagator | #ifndef ROOT_TEveTrackPropagator | |||
#define ROOT_TEveTrackPropagator | #define ROOT_TEveTrackPropagator | |||
#include "TEveVSDStructs.h" | #include "TEveVector.h" | |||
#include "TEveUtil.h" | #include "TEveUtil.h" | |||
#include "TEveElement.h" | #include "TEveElement.h" | |||
#include "TMarker.h" | #include "TMarker.h" | |||
#include <vector> | #include <vector> | |||
class TEvePointSet; | class TEvePointSet; | |||
//========================================================================= ===== | //========================================================================= ===== | |||
// TEveMagField | // TEveMagField | |||
skipping to change at line 283 | skipping to change at line 283 | |||
TMarker& RefPMAtt() { return fPMAtt; } | TMarker& RefPMAtt() { return fPMAtt; } | |||
TMarker& RefFVAtt() { return fFVAtt; } | TMarker& RefFVAtt() { return fFVAtt; } | |||
static Bool_t IsOutsideBounds(const TEveVector& point, Float_t maxRsqr, Float_t maxZ); | static Bool_t IsOutsideBounds(const TEveVector& point, Float_t maxRsqr, Float_t maxZ); | |||
static Float_t fgDefMagField; // Default value for constant solenoid magnetic field. | static Float_t fgDefMagField; // Default value for constant solenoid magnetic field. | |||
static const Float_t fgkB2C; // Constant for conversion of momentum to curvature. | static const Float_t fgkB2C; // Constant for conversion of momentum to curvature. | |||
static TEveTrackPropagator fgDefault; // Default track propagator. | static TEveTrackPropagator fgDefault; // Default track propagator. | |||
static Float_t fgEditorMaxR; // Max R that can be set in GU | ||||
I editor. | ||||
static Float_t fgEditorMaxZ; // Max Z that can be set in GU | ||||
I editor. | ||||
ClassDef(TEveTrackPropagator, 0); // Calculates path of a particle takin g into account special path-marks and imposed boundaries. | ClassDef(TEveTrackPropagator, 0); // Calculates path of a particle takin g into account special path-marks and imposed boundaries. | |||
}; | }; | |||
//_________________________________________________________________________ _____ | //_________________________________________________________________________ _____ | |||
inline Bool_t TEveTrackPropagator::IsOutsideBounds(const TEveVector& point, | inline Bool_t TEveTrackPropagator::IsOutsideBounds(const TEveVector& point, | |||
Float_t maxRsq r, | Float_t maxRsq r, | |||
Float_t maxZ) | Float_t maxZ) | |||
{ | { | |||
// Return true if point% is outside of cylindrical bounds detrmined by | // Return true if point% is outside of cylindrical bounds detrmined by | |||
// square radius and z. | // square radius and z. | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 7 lines changed or added | |||
TEveVSDStructs.h | TEveVSDStructs.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveVSDStructs.h 29908 2009-08-25 18:09:53Z matevz $ | // @(#)root/eve:$Id: TEveVSDStructs.h 31517 2009-12-03 11:56:23Z matevz $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TEveVSDStructs | #ifndef ROOT_TEveVSDStructs | |||
#define ROOT_TEveVSDStructs | #define ROOT_TEveVSDStructs | |||
#include "TObject.h" | #include "TObject.h" | |||
#include "TMath.h" | ||||
#include "TParticle.h" | #include "TParticle.h" | |||
#include "TEveVector.h" | ||||
/************************************************************************** ****/ | /************************************************************************** ****/ | |||
// VSD Structures | // VSD Structures | |||
/************************************************************************** ****/ | /************************************************************************** ****/ | |||
// Basic structures for Reve VSD concept. Design criteria: | // Basic structures for Reve VSD concept. Design criteria: | |||
// | // | |||
// * provide basic cross-referencing functionality; | // * provide basic cross-referencing functionality; | |||
// | // | |||
// * small memory/disk footprint (floats / count on compression in | // * small memory/disk footprint (floats / count on compression in | |||
// split mode); | // split mode); | |||
// | // | |||
// * simple usage from tree selections; | // * simple usage from tree selections; | |||
// | // | |||
// * placement in TClonesArray (composites are TObject derived); | // * placement in TClonesArray (composites are TObject derived); | |||
// | // | |||
// * minimal member-naming (impossible to make everybody happy). | // * minimal member-naming (impossible to make everybody happy). | |||
// | // | |||
/************************************************************************** ****/ | /************************************************************************** ****/ | |||
// TEveVector | ||||
/************************************************************************** | ||||
****/ | ||||
class TEveVector | ||||
{ | ||||
public: | ||||
Float_t fX, fY, fZ; // Components of the vector. | ||||
TEveVector() : fX(0), fY(0), fZ(0) {} | ||||
TEveVector(const Float_t* v) : fX(v[0]), fY(v[1]), fZ(v[2]) {} | ||||
TEveVector(const Double_t* v) : fX(v[0]), fY(v[1]), fZ(v[2]) {} | ||||
TEveVector(Float_t x, Float_t y, Float_t z) : fX(x), fY(y), fZ(z) {} | ||||
virtual ~TEveVector() {} | ||||
void Dump() const; | ||||
operator const Float_t*() const { return &fX; } | ||||
operator Float_t*() { return &fX; } | ||||
TEveVector& operator *=(Float_t s) { fX *= s; fY *= s; f | ||||
Z *= s; return *this; } | ||||
TEveVector& operator +=(const TEveVector& v) { fX += v.fX; fY += v.fY; f | ||||
Z += v.fZ; return *this; } | ||||
TEveVector& operator -=(const TEveVector& v) { fX -= v.fX; fY -= v.fY; f | ||||
Z -= v.fZ; return *this; } | ||||
TEveVector operator + (const TEveVector &) const; | ||||
TEveVector operator - (const TEveVector &) const; | ||||
TEveVector operator * (Float_t a) const; | ||||
Float_t& operator [] (Int_t indx); | ||||
Float_t operator [] (Int_t indx) const; | ||||
const Float_t* Arr() const { return &fX; } | ||||
Float_t* Arr() { return &fX; } | ||||
void Set(const Float_t* v) { fX = v[0]; fY = v[1]; fZ = v[2]; } | ||||
void Set(const Double_t* v) { fX = v[0]; fY = v[1]; fZ = v[2]; } | ||||
void Set(Float_t x, Float_t y, Float_t z) { fX = x; fY = y; fZ = z; } | ||||
void Set(Double_t x, Double_t y, Double_t z) { fX = x; fY = y; fZ = z; } | ||||
void Set(const TVector3& v) { fX = v.x(); fY = v.y(); fZ = v.z(); } | ||||
void Set(const TEveVector& v) { fX = v.fX; fY = v.fY; fZ = v.fZ; } | ||||
void NegateXYZ() { fX = - fX; fY = -fY; fZ = -fZ; } | ||||
void Normalize(Float_t length=1); | ||||
Float_t Phi() const; | ||||
Float_t Theta() const; | ||||
Float_t CosTheta() const; | ||||
Float_t Eta() const; | ||||
Float_t Mag() const { return TMath::Sqrt(fX*fX + fY*fY + fZ*fZ);} | ||||
Float_t Mag2() const { return fX*fX + fY*fY + fZ*fZ;} | ||||
Float_t Perp() const { return TMath::Sqrt(fX*fX + fY*fY);} | ||||
Float_t Perp2() const { return fX*fX + fY*fY;} | ||||
Float_t R() const { return Perp(); } | ||||
Float_t Distance(const TEveVector& v) const; | ||||
Float_t SquareDistance(const TEveVector& v) const; | ||||
Float_t Dot(const TEveVector& a) const; | ||||
TEveVector Cross(const TEveVector& a) const; | ||||
TEveVector& Sub(const TEveVector& p, const TEveVector& q); | ||||
TEveVector& Mult(const TEveVector& a, Float_t af); | ||||
TEveVector Orthogonal() const; | ||||
void OrthoNormBase(TEveVector& a, TEveVector& b) const; | ||||
ClassDef(TEveVector, 1); // Float three-vector; a minimal Float_t copy o | ||||
f TVector3 used to represent points and momenta (also used in VSD). | ||||
}; | ||||
//_________________________________________________________________________ | ||||
_____ | ||||
inline Float_t TEveVector::Phi() const | ||||
{ | ||||
return fX == 0.0 && fY == 0.0 ? 0.0 : TMath::ATan2(fY, fX); | ||||
} | ||||
//_________________________________________________________________________ | ||||
_____ | ||||
inline Float_t TEveVector::Theta() const | ||||
{ | ||||
return fX == 0.0 && fY == 0.0 && fZ == 0.0 ? 0.0 : TMath::ATan2(Perp(), | ||||
fZ); | ||||
} | ||||
//_________________________________________________________________________ | ||||
_____ | ||||
inline Float_t TEveVector::CosTheta() const | ||||
{ | ||||
Float_t ptot = Mag(); return ptot == 0.0 ? 1.0 : fZ/ptot; | ||||
} | ||||
//_________________________________________________________________________ | ||||
_____ | ||||
inline Float_t TEveVector::Distance( const TEveVector& b) const | ||||
{ | ||||
return TMath::Sqrt((fX - b.fX)*(fX - b.fX) + | ||||
(fY - b.fY)*(fY - b.fY) + | ||||
(fZ - b.fZ)*(fZ - b.fZ)); | ||||
} | ||||
//_________________________________________________________________________ | ||||
_____ | ||||
inline Float_t TEveVector::SquareDistance(const TEveVector& b) const | ||||
{ | ||||
return ((fX - b.fX) * (fX - b.fX) + | ||||
(fY - b.fY) * (fY - b.fY) + | ||||
(fZ - b.fZ) * (fZ - b.fZ)); | ||||
} | ||||
//_________________________________________________________________________ | ||||
_____ | ||||
inline Float_t TEveVector::Dot(const TEveVector& a) const | ||||
{ | ||||
return a.fX*fX + a.fY*fY + a.fZ*fZ; | ||||
} | ||||
//_________________________________________________________________________ | ||||
_____ | ||||
inline TEveVector TEveVector::Cross(const TEveVector& a) const | ||||
{ | ||||
TEveVector r; | ||||
r.fX = fY * a.fZ - fZ * a.fY; | ||||
r.fY = fZ * a.fX - fX * a.fZ; | ||||
r.fZ = fX * a.fY - fY * a.fX; | ||||
return r; | ||||
} | ||||
//_________________________________________________________________________ | ||||
_____ | ||||
inline TEveVector& TEveVector::Sub(const TEveVector& p, const TEveVector& q | ||||
) | ||||
{ | ||||
fX = p.fX - q.fX; | ||||
fY = p.fY - q.fY; | ||||
fZ = p.fZ - q.fZ; | ||||
return *this; | ||||
} | ||||
//_________________________________________________________________________ | ||||
_____ | ||||
inline TEveVector& TEveVector::Mult(const TEveVector& a, Float_t af) | ||||
{ | ||||
fX = a.fX * af; | ||||
fY = a.fY * af; | ||||
fZ = a.fZ * af; | ||||
return *this; | ||||
} | ||||
//_________________________________________________________________________ | ||||
_____ | ||||
inline Float_t& TEveVector::operator [] (Int_t idx) | ||||
{ | ||||
return (&fX)[idx]; | ||||
} | ||||
//_________________________________________________________________________ | ||||
_____ | ||||
inline Float_t TEveVector::operator [] (Int_t idx) const | ||||
{ | ||||
return (&fX)[idx]; | ||||
} | ||||
/************************************************************************** | ||||
****/ | ||||
// TEveVector4 | ||||
/************************************************************************** | ||||
****/ | ||||
class TEveVector4 : public TEveVector | ||||
{ | ||||
public: | ||||
Float_t fT; | ||||
TEveVector4() : TEveVector(), fT(0) {} | ||||
TEveVector4(const TEveVector& v) : TEveVector(v), fT(0) {} | ||||
TEveVector4(Float_t x, Float_t y, Float_t z, Float_t t=0) : | ||||
TEveVector(x, y, z), fT(t) {} | ||||
virtual ~TEveVector4() {} | ||||
void Dump() const; | ||||
TEveVector4 operator + (const TEveVector4 & b) const | ||||
{ return TEveVector4(fX + b.fX, fY + b.fY, fZ + b.fZ, fT + b.fT); } | ||||
TEveVector4 operator - (const TEveVector4 & b) const | ||||
{ return TEveVector4(fX - b.fX, fY - b.fY, fZ - b.fZ, fT - b.fT); } | ||||
TEveVector4 operator * (Float_t a) const | ||||
{ return TEveVector4(a*fX, a*fY, a*fZ, a*fT); } | ||||
TEveVector4& operator += (const TEveVector4 & b) | ||||
{ fX += b.fX; fY += b.fY; fZ += b.fZ; fT += b.fT; return *this; } | ||||
ClassDef(TEveVector4, 1); // Float four-vector. | ||||
}; | ||||
/************************************************************************** | ||||
****/ | ||||
// TEvePathMark | ||||
/************************************************************************** | ||||
****/ | ||||
class TEvePathMark | ||||
{ | ||||
public: | ||||
enum EType_e { kReference, kDaughter, kDecay, kCluster2D }; | ||||
EType_e fType; // Mark-type. | ||||
TEveVector fV; // Vertex. | ||||
TEveVector fP; // Momentum. | ||||
TEveVector fE; // Extra, meaning depends on fType. | ||||
Float_t fTime; // Time. | ||||
TEvePathMark(EType_e type=kReference) : | ||||
fType(type), fV(), fP(), fE(), fTime(0) {} | ||||
TEvePathMark(EType_e type, const TEveVector& v, Float_t time=0) : | ||||
fType(type), fV(v), fP(), fE(), fTime(time) {} | ||||
TEvePathMark(EType_e type, const TEveVector& v, const TEveVector& p, Flo | ||||
at_t time=0) : | ||||
fType(type), fV(v), fP(p), fE(), fTime(time) {} | ||||
TEvePathMark(EType_e type, const TEveVector& v, const TEveVector& p, con | ||||
st TEveVector& e, Float_t time=0) : | ||||
fType(type), fV(v), fP(p), fE(e), fTime(time) {} | ||||
virtual ~TEvePathMark() {} | ||||
const char* TypeName(); | ||||
ClassDef(TEvePathMark, 1); // Special-point on track: position/momentum | ||||
reference, daughter creation or decay (also used in VSD). | ||||
}; | ||||
/************************************************************************** | ||||
****/ | ||||
// TEveMCTrack | // TEveMCTrack | |||
/************************************************************************** ****/ | /************************************************************************** ****/ | |||
class TEveMCTrack : public TParticle // ?? Copy stuff over ?? | class TEveMCTrack : public TParticle // ?? Copy stuff over ?? | |||
{ | { | |||
public: | public: | |||
Int_t fLabel; // Label of the track | Int_t fLabel; // Label of the track | |||
Int_t fIndex; // Index of the track (in some source array) | Int_t fIndex; // Index of the track (in some source array) | |||
Int_t fEvaLabel; // Label of primary particle | Int_t fEvaLabel; // Label of primary particle | |||
End of changes. 4 change blocks. | ||||
247 lines changed or deleted | 2 lines changed or added | |||
TEveViewer.h | TEveViewer.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveViewer.h 31299 2009-11-18 21:06:28Z matevz $ | // @(#)root/eve:$Id: TEveViewer.h 31821 2009-12-10 18:22:44Z matevz $ | |||
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 55 | skipping to change at line 55 | |||
public: | public: | |||
TEveViewer(const char* n="TEveViewer", const char* t=""); | TEveViewer(const char* n="TEveViewer", const char* t=""); | |||
virtual ~TEveViewer(); | virtual ~TEveViewer(); | |||
virtual void PreUndock(); | virtual void PreUndock(); | |||
virtual void PostDock(); | virtual void PostDock(); | |||
TGLViewer* GetGLViewer() const { return fGLViewer; } | TGLViewer* GetGLViewer() const { return fGLViewer; } | |||
void SetGLViewer(TGLViewer* viewer, TGFrame* frame); | void SetGLViewer(TGLViewer* viewer, TGFrame* frame); | |||
TGLSAViewer* SpawnGLViewer(TGedEditor* ged); | TGLSAViewer* SpawnGLViewer(TGedEditor* ged=0, Bool_t stereo=kFALSE | |||
TGLEmbeddedViewer* SpawnGLEmbeddedViewer(TGedEditor* ged, Int_t border=0 | ); | |||
); | TGLEmbeddedViewer* SpawnGLEmbeddedViewer(TGedEditor* ged=0, Int_t border | |||
=0); | ||||
void Redraw(Bool_t resetCameras=kFALSE); | void Redraw(Bool_t resetCameras=kFALSE); | |||
void SwitchStereo(); | ||||
virtual void AddScene(TEveScene* scene); | virtual void AddScene(TEveScene* scene); | |||
virtual void RemoveElementLocal(TEveElement* el); | virtual void RemoveElementLocal(TEveElement* el); | |||
virtual void RemoveElementsLocal(); | virtual void RemoveElementsLocal(); | |||
virtual TObject* GetEditorObject(const TEveException& eh="TEveViewer::Ge tEditorObject ") const; | virtual TObject* GetEditorObject(const TEveException& eh="TEveViewer::Ge tEditorObject ") const; | |||
virtual Bool_t HandleElementPaste(TEveElement* el); | virtual Bool_t HandleElementPaste(TEveElement* el); | |||
End of changes. 3 change blocks. | ||||
4 lines changed or deleted | 6 lines changed or added | |||
TFileCacheRead.h | TFileCacheRead.h | |||
---|---|---|---|---|
// @(#)root/io:$Id: TFileCacheRead.h 31077 2009-11-11 08:51:57Z brun $ | // @(#)root/io:$Id: TFileCacheRead.h 31503 2009-12-02 10:36:50Z brun $ | |||
// Author: Rene Brun 19/05/2006 | // Author: Rene Brun 19/05/2006 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 67 | skipping to change at line 67 | |||
TFileCacheRead(const TFileCacheRead &); //cannot be copied | TFileCacheRead(const TFileCacheRead &); //cannot be copied | |||
TFileCacheRead& operator=(const TFileCacheRead &); | TFileCacheRead& operator=(const TFileCacheRead &); | |||
public: | public: | |||
TFileCacheRead(); | TFileCacheRead(); | |||
TFileCacheRead(TFile *file, Int_t buffersize); | TFileCacheRead(TFile *file, Int_t buffersize); | |||
virtual ~TFileCacheRead(); | virtual ~TFileCacheRead(); | |||
virtual void AddBranch(TBranch * /*b*/, Bool_t /*subbranches*/ = kFALSE) {} | virtual void AddBranch(TBranch * /*b*/, Bool_t /*subbranches*/ = kFALSE) {} | |||
virtual void AddBranch(const char * /*branch*/, Bool_t /*subbranc hes*/ = kFALSE) {} | virtual void AddBranch(const char * /*branch*/, Bool_t /*subbranc hes*/ = kFALSE) {} | |||
virtual Int_t GetBufferSize() const { return fBufferSize; }; | virtual Int_t GetBufferSize() const { return fBufferSize; }; | |||
virtual Int_t GetUnzipBuffer(char ** /*buf*/, Long64_t /*pos*/, In t_t /*len*/, Bool_t * /*free*/) { return -1; } | ||||
virtual Bool_t IsAsyncReading() const { return fAsyncReading; }; | virtual Bool_t IsAsyncReading() const { return fAsyncReading; }; | |||
virtual Bool_t IsLearning() const {return kFALSE;} | virtual Bool_t IsLearning() const {return kFALSE;} | |||
virtual void Prefetch(Long64_t pos, Int_t len); | virtual void Prefetch(Long64_t pos, Int_t len); | |||
virtual void Print(Option_t *option="") const; | virtual void Print(Option_t *option="") const; | |||
virtual Int_t ReadBufferExt(char *buf, Long64_t pos, Int_t len, In t_t &loc); | virtual Int_t ReadBufferExt(char *buf, Long64_t pos, Int_t len, In t_t &loc); | |||
virtual Int_t ReadBuffer(char *buf, Long64_t pos, Int_t len); | virtual Int_t ReadBuffer(char *buf, Long64_t pos, Int_t len); | |||
virtual void SetFile(TFile *file); | virtual void SetFile(TFile *file); | |||
virtual void SetSkipZip(Bool_t /*skip*/ = kTRUE) {} // This funct ion is only used by TTreeCacheUnzip (ignore it) | virtual void SetSkipZip(Bool_t /*skip*/ = kTRUE) {} // This funct ion is only used by TTreeCacheUnzip (ignore it) | |||
virtual void Sort(); | virtual void Sort(); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TFumiliMinimizer.h | TFumiliMinimizer.h | |||
---|---|---|---|---|
// @(#)root/fumili:$Id: TFumiliMinimizer.h 26866 2008-12-12 10:50:07Z monet a $ | // @(#)root/fumili:$Id: TFumiliMinimizer.h 31604 2009-12-07 19:04:33Z monet a $ | |||
// Author: L. Moneta Wed Oct 25 16:28:55 2006 | // Author: L. Moneta Wed Oct 25 16:28:55 2006 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class TFumiliMinimizer | // Header file for class TFumiliMinimizer | |||
skipping to change at line 137 | skipping to change at line 137 | |||
virtual const double * Errors() const { return &fErrors.front(); } | virtual const double * Errors() const { return &fErrors.front(); } | |||
/** return covariance matrices elements | /** return covariance matrices elements | |||
if the variable is fixed the matrix is zero | if the variable is fixed the matrix is zero | |||
The ordering of the variables is the same as in errors | The ordering of the variables is the same as in errors | |||
*/ | */ | |||
virtual double CovMatrix(unsigned int i, unsigned int j) const { | virtual double CovMatrix(unsigned int i, unsigned int j) const { | |||
return fCovar[i + fDim* j]; | return fCovar[i + fDim* j]; | |||
} | } | |||
/* | ||||
return covariance matrix status | ||||
*/ | ||||
virtual int CovMatrixStatus() const { | ||||
if (fCovar.size() == 0) return 0; | ||||
return (fStatus ==0) ? 3 : 1; | ||||
} | ||||
protected: | protected: | |||
/// implementation of FCN for Fumili | /// implementation of FCN for Fumili | |||
static void Fcn( int &, double * , double & f, double * , int); | static void Fcn( int &, double * , double & f, double * , int); | |||
/// implementation of FCN for Fumili when user provided gradient is used | /// implementation of FCN for Fumili when user provided gradient is used | |||
//static void FcnGrad( int &, double * g, double & f, double * , int); | //static void FcnGrad( int &, double * g, double & f, double * , int); | |||
/// static function implementing the evaluation of the FCN (it uses stat ic instance fgFumili) | /// static function implementing the evaluation of the FCN (it uses stat ic instance fgFumili) | |||
static double EvaluateFCN(const double * x, double * g); | static double EvaluateFCN(const double * x, double * g); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 9 lines changed or added | |||
TGL5DPainter.h | TGL5DPainter.h | |||
---|---|---|---|---|
skipping to change at line 42 | skipping to change at line 42 | |||
enum EDefaults { | enum EDefaults { | |||
kNContours = 4, | kNContours = 4, | |||
kNLowPts = 50 | kNLowPts = 50 | |||
}; | }; | |||
typedef Rgl::Mc::TIsoMesh<Float_t> Mesh_t; | typedef Rgl::Mc::TIsoMesh<Float_t> Mesh_t; | |||
//Iso surface. | //Iso surface. | |||
struct Surf_t { | struct Surf_t { | |||
Surf_t() | Surf_t() | |||
: f4D(0.), fShowCloud(kFALSE), fHide(kFALSE), | : f4D(0.), fRange(0.), fShowCloud(kFALSE), fHide(kFALSE), | |||
fColor(0), fHighlight(kFALSE), fAlpha(100) | fColor(0), fHighlight(kFALSE), fAlpha(100) | |||
{ | { | |||
} | } | |||
Mesh_t fMesh; //Mesh. | Mesh_t fMesh; //Mesh. | |||
Double_t f4D; //Iso-level. | Double_t f4D; //Iso-level. | |||
Double_t fRange; //Selection critera (f4D +- fRange). | Double_t fRange; //Selection critera (f4D +- fRange). | |||
Bool_t fShowCloud;//Show/Hide original cloud. | Bool_t fShowCloud;//Show/Hide original cloud. | |||
Bool_t fHide; //Show/Hide surface. | Bool_t fHide; //Show/Hide surface. | |||
Color_t fColor; //Color. | Color_t fColor; //Color. | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
TGLAxisPainter.h | TGLAxisPainter.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TGLAxisPainter.h 30425 2009-09-24 19:45:11Z matevz $ | // @(#)root/eve:$Id: TGLAxisPainter.h 31671 2009-12-08 15:22:31Z matevz $ | |||
// Author: Alja Mrak-Tadel 2009 | // Author: Alja Mrak-Tadel 2009 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 43 | skipping to change at line 43 | |||
typedef std::vector<TM_t> TMVec_t; // vector od tick line s | typedef std::vector<TM_t> TMVec_t; // vector od tick line s | |||
private: | private: | |||
TGLAxisPainter(const TGLAxisPainter&); // Not implemented | TGLAxisPainter(const TGLAxisPainter&); // Not implemented | |||
TGLAxisPainter& operator=(const TGLAxisPainter&); // Not implemented | TGLAxisPainter& operator=(const TGLAxisPainter&); // Not implemented | |||
// Print format derived from attributers. | // Print format derived from attributers. | |||
Int_t fExp; | Int_t fExp; | |||
Int_t fMaxDigits; | Int_t fMaxDigits; | |||
Int_t fDecimals; | Int_t fDecimals; | |||
char fFormat[8]; | TString fFormat; | |||
// Font derived from axis attributes. | // Font derived from axis attributes. | |||
TGLFont fLabelFont; | TGLFont fLabelFont; | |||
TGLFont fTitleFont; | TGLFont fTitleFont; | |||
// Print format. | // Print format. | |||
void LabelsLimits(const char *label, Int_t &first, Int_t &last) const; | void LabelsLimits(const char *label, Int_t &first, Int_t &last) const; | |||
void FormAxisValue(Double_t x, TString &s) const; | void FormAxisValue(Double_t x, TString &s) const; | |||
protected: | protected: | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TGLClip.h | TGLClip.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLClip.h 28607 2009-05-13 15:11:33Z matevz $ | // @(#)root/gl:$Id: TGLClip.h 31541 2009-12-03 20:00:32Z matevz $ | |||
// Author: Richard Maunder 16/09/2005 | // Author: Richard Maunder 16/09/2005 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 50 | skipping to change at line 50 | |||
UInt_t fTimeStamp; | UInt_t fTimeStamp; | |||
Bool_t fValid; | Bool_t fValid; | |||
public: | public: | |||
TGLClip(const TGLLogicalShape & logical, const TGLMatrix & transform, co nst float color[4]); | TGLClip(const TGLLogicalShape & logical, const TGLMatrix & transform, co nst float color[4]); | |||
virtual ~TGLClip(); | virtual ~TGLClip(); | |||
virtual void Modified() { TGLPhysicalShape::Modified(); IncTimeStamp(); } | virtual void Modified() { TGLPhysicalShape::Modified(); IncTimeStamp(); } | |||
virtual void Setup(const TGLBoundingBox & bbox) = 0; | virtual void Setup(const TGLBoundingBox & bbox) = 0; | |||
virtual void Setup(const TGLVector3&, const TGLVector3&); | ||||
EMode GetMode() const { return fMode; } | EMode GetMode() const { return fMode; } | |||
void SetMode(EMode mode) { if (mode != fMode) { fMode = mode; ++fTimeS tamp; } } | void SetMode(EMode mode) { if (mode != fMode) { fMode = mode; ++fTimeS tamp; } } | |||
UInt_t TimeStamp() const { return fTimeStamp; } | UInt_t TimeStamp() const { return fTimeStamp; } | |||
void IncTimeStamp() { ++fTimeStamp; } | void IncTimeStamp() { ++fTimeStamp; } | |||
Bool_t IsValid() const { return fValid; } | Bool_t IsValid() const { return fValid; } | |||
void Invalidate() { fValid = kFALSE; } | void Invalidate() { fValid = kFALSE; } | |||
skipping to change at line 86 | skipping to change at line 87 | |||
class TGLClipPlane : public TGLClip | class TGLClipPlane : public TGLClip | |||
{ | { | |||
private: | private: | |||
static const float fgColor[4]; //! Fixed color of clip plane | static const float fgColor[4]; //! Fixed color of clip plane | |||
public: | public: | |||
TGLClipPlane(); | TGLClipPlane(); | |||
virtual ~TGLClipPlane(); | virtual ~TGLClipPlane(); | |||
virtual void Setup(const TGLBoundingBox & bbox); | virtual void Setup(const TGLBoundingBox & bbox); | |||
virtual void Setup(const TGLVector3& point, const TGLVector3& normal); | ||||
void Set(const TGLPlane & plane); | void Set(const TGLPlane & plane); | |||
virtual void PlaneSet(TGLPlaneSet_t & set) const; | virtual void PlaneSet(TGLPlaneSet_t & set) const; | |||
ClassDef(TGLClipPlane, 0); // clipping plane | ClassDef(TGLClipPlane, 0); // clipping plane | |||
}; | }; | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
skipping to change at line 113 | skipping to change at line 115 | |||
class TGLClipBox : public TGLClip | class TGLClipBox : public TGLClip | |||
{ | { | |||
private: | private: | |||
static const float fgColor[4]; //! Fixed color of clip box | static const float fgColor[4]; //! Fixed color of clip box | |||
public: | public: | |||
TGLClipBox(); | TGLClipBox(); | |||
virtual ~TGLClipBox(); | virtual ~TGLClipBox(); | |||
virtual void Setup(const TGLBoundingBox & bbox); | virtual void Setup(const TGLBoundingBox & bbox); | |||
virtual void Setup(const TGLVector3& min_point, const TGLVector3& max_po int); | ||||
virtual void PlaneSet(TGLPlaneSet_t & set) const; | virtual void PlaneSet(TGLPlaneSet_t & set) const; | |||
ClassDef(TGLClipBox, 0); // clipping box | ClassDef(TGLClipBox, 0); // clipping box | |||
}; | }; | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// | // | |||
// TGLClipSet | // TGLClipSet | |||
// | // | |||
End of changes. 4 change blocks. | ||||
1 lines changed or deleted | 4 lines changed or added | |||
TGLFormat.h | TGLFormat.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLFormat.h 21453 2007-12-18 15:18:30Z matevz $ | // @(#)root/gl:$Id: TGLFormat.h 31821 2009-12-10 18:22:44Z matevz $ | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TGLFormat | #ifndef ROOT_TGLFormat | |||
#define ROOT_TGLFormat | #define ROOT_TGLFormat | |||
skipping to change at line 38 | skipping to change at line 38 | |||
-with/without accum buffer | -with/without accum buffer | |||
-double/single buffered | -double/single buffered | |||
*/ | */ | |||
class TGLFormat { | class TGLFormat { | |||
public: | public: | |||
enum EFormatOptions { | enum EFormatOptions { | |||
kDoubleBuffer = 1, | kDoubleBuffer = 1, | |||
kDepth = 2, | kDepth = 2, | |||
kAccum = 4, | kAccum = 4, | |||
kStencil = 8 | kStencil = 8, | |||
kStereo = 16 | ||||
}; | }; | |||
private: | private: | |||
Bool_t fDoubleBuffered; | Bool_t fDoubleBuffered; | |||
Bool_t fStereo; | ||||
UInt_t fDepthSize; | UInt_t fDepthSize; | |||
UInt_t fAccumSize; | UInt_t fAccumSize; | |||
UInt_t fStencilSize; | UInt_t fStencilSize; | |||
public: | public: | |||
TGLFormat(); | TGLFormat(); | |||
TGLFormat(EFormatOptions options); | TGLFormat(EFormatOptions options); | |||
//Virtual dtor only to supress warnings from g++ - | //Virtual dtor only to supress warnings from g++ - | |||
//ClassDef adds virtual functions, so g++ wants virtual dtor. | //ClassDef adds virtual functions, so g++ wants virtual dtor. | |||
skipping to change at line 73 | skipping to change at line 75 | |||
void SetStencilSize(UInt_t stencil); | void SetStencilSize(UInt_t stencil); | |||
Bool_t HasStencil()const; | Bool_t HasStencil()const; | |||
UInt_t GetAccumSize()const; | UInt_t GetAccumSize()const; | |||
void SetAccumSize(UInt_t accum); | void SetAccumSize(UInt_t accum); | |||
Bool_t HasAccumBuffer()const; | Bool_t HasAccumBuffer()const; | |||
Bool_t IsDoubleBuffered()const; | Bool_t IsDoubleBuffered()const; | |||
void SetDoubleBuffered(Bool_t db); | void SetDoubleBuffered(Bool_t db); | |||
Bool_t IsStereo()const; | ||||
void SetStereo(Bool_t db); | ||||
ClassDef(TGLFormat, 0) // Describes GL buffer format. | ClassDef(TGLFormat, 0) // Describes GL buffer format. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 7 lines changed or added | |||
TGLIsoMesh.h | TGLIsoMesh.h | |||
---|---|---|---|---|
skipping to change at line 93 | skipping to change at line 93 | |||
template<class V> | template<class V> | |||
class TGridGeometry { | class TGridGeometry { | |||
public: | public: | |||
enum EVertexPosition{ | enum EVertexPosition{ | |||
kBinCenter, | kBinCenter, | |||
kBinEdge | kBinEdge | |||
}; | }; | |||
TGridGeometry() : fMinX(0), fStepX(0), | TGridGeometry() : fMinX(0), fStepX(0), | |||
fMinY(0), fStepY(0), | fMinY(0), fStepY(0), | |||
fMinZ(0), fStepZ(0) | fMinZ(0), fStepZ(0), | |||
fXScaleInverted(1.), | ||||
fYScaleInverted(1.), | ||||
fZScaleInverted(1.) | ||||
{ | { | |||
//Default constructor. | //Default constructor. | |||
} | } | |||
TGridGeometry(const TAxis *x, const TAxis *y, const TAxis *z, | TGridGeometry(const TAxis *x, const TAxis *y, const TAxis *z, | |||
Double_t xs = 1., Double_t ys = 1., Double_t zs = 1., | Double_t xs = 1., Double_t ys = 1., Double_t zs = 1., | |||
EVertexPosition pos = kBinCenter) | EVertexPosition pos = kBinCenter) | |||
: fMinX(0), fStepX(0), | : fMinX(0), fStepX(0), | |||
fMinY(0), fStepY(0), | fMinY(0), fStepY(0), | |||
fMinZ(0), fStepZ(0), | fMinZ(0), fStepZ(0), | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 4 lines changed or added | |||
TGLPerspectiveCamera.h | TGLPerspectiveCamera.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLPerspectiveCamera.h 28201 2009-04-14 16:04:20Z matev z $ | // @(#)root/gl:$Id: TGLPerspectiveCamera.h 31821 2009-12-10 18:22:44Z matev z $ | |||
// Author: Richard Maunder 25/05/2005 | // Author: Richard Maunder 25/05/2005 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 45 | skipping to change at line 45 | |||
static Double_t fgFOVMin, fgFOVDefault, fgFOVMax; | static Double_t fgFOVMin, fgFOVDefault, fgFOVMax; | |||
static UInt_t fgFOVDeltaSens; | static UInt_t fgFOVDeltaSens; | |||
public: | public: | |||
TGLPerspectiveCamera(const TGLVector3 & hAxis, const TGLVector3 & vAxis) ; | TGLPerspectiveCamera(const TGLVector3 & hAxis, const TGLVector3 & vAxis) ; | |||
virtual ~TGLPerspectiveCamera(); | virtual ~TGLPerspectiveCamera(); | |||
virtual Bool_t IsPerspective() const { return kTRUE; } | virtual Bool_t IsPerspective() const { return kTRUE; } | |||
Double_t GetFOV() const { return fFOV; } | ||||
virtual void Setup(const TGLBoundingBox & box, Bool_t reset=kTRUE); | virtual void Setup(const TGLBoundingBox & box, Bool_t reset=kTRUE); | |||
virtual void Reset(); | virtual void Reset(); | |||
virtual Bool_t Zoom (Int_t delta, Bool_t mod1, Bool_t mod2); | virtual Bool_t Zoom (Int_t delta, Bool_t mod1, Bool_t mod2); | |||
using TGLCamera::Truck; | using TGLCamera::Truck; | |||
virtual Bool_t Truck(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod 2); | virtual Bool_t Truck(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod 2); | |||
virtual void Apply(const TGLBoundingBox & box, const TGLRect * pickRec t = 0) const; | virtual void Apply(const TGLBoundingBox & box, const TGLRect * pickRec t = 0) const; | |||
// External scripting control | // External scripting control | |||
virtual void Configure(Double_t fov, Double_t dolly, Double_t center[3], | virtual void Configure(Double_t fov, Double_t dolly, Double_t center[3], | |||
Double_t hRotate, Double_t vRotate); | Double_t hRotate, Double_t vRotate); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
TGLSAViewer.h | TGLSAViewer.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLSAViewer.h 31299 2009-11-18 21:06:28Z matevz $ | // @(#)root/gl:$Id: TGLSAViewer.h 31821 2009-12-10 18:22:44Z matevz $ | |||
// Author: Richard Maunder / Timur Pocheptsov | // Author: Richard Maunder / Timur Pocheptsov | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TGLSAViewer | #ifndef ROOT_TGLSAViewer | |||
#define ROOT_TGLSAViewer | #define ROOT_TGLSAViewer | |||
#include "TGLViewer.h" | #include "TGLViewer.h" | |||
#include "TString.h" | #include "TString.h" | |||
class TGLSAFrame; | class TGLSAFrame; | |||
class TGLFormat; | ||||
class TGWindow; | class TGWindow; | |||
class TGFrame; | class TGFrame; | |||
class TGCompositeFrame; | class TGCompositeFrame; | |||
class TGPopupMenu; | class TGPopupMenu; | |||
class TGButton; | class TGButton; | |||
class TGedEditor; | class TGedEditor; | |||
class TGLEventHandler; | class TGLEventHandler; | |||
class TGMenuBar; | class TGMenuBar; | |||
skipping to change at line 51 | skipping to change at line 52 | |||
kGLXOY, kGLXOZ, kGLZOY, | kGLXOY, kGLXOZ, kGLZOY, | |||
kGLXnOY, kGLXnOZ, kGLZnOY, | kGLXnOY, kGLXnOZ, kGLZnOY, | |||
kGLOrthoRotate, kGLOrthoDolly, | kGLOrthoRotate, kGLOrthoDolly, | |||
kGLSaveEPS, kGLSavePDF, kGLSavePNG, kGLSaveGIF, kGLSaveAnimGIF, | kGLSaveEPS, kGLSavePDF, kGLSavePNG, kGLSaveGIF, kGLSaveAnimGIF, | |||
kGLSaveJPG, kGLSaveAS, kGLCloseViewer, kGLQuitROOT, | kGLSaveJPG, kGLSaveAS, kGLCloseViewer, kGLQuitROOT, | |||
kGLEditObject }; | kGLEditObject }; | |||
private: | private: | |||
// GUI components | // GUI components | |||
TGLSAFrame *fFrame; | TGLSAFrame *fFrame; | |||
TGLFormat *fFormat; | ||||
TGPopupMenu *fFileMenu; | TGPopupMenu *fFileMenu; | |||
TGPopupMenu *fFileSaveMenu; | TGPopupMenu *fFileSaveMenu; | |||
TGPopupMenu *fCameraMenu; | TGPopupMenu *fCameraMenu; | |||
TGPopupMenu *fHelpMenu; | TGPopupMenu *fHelpMenu; | |||
// Ged | // Ged | |||
TGCompositeFrame *fLeftVerticalFrame; | TGCompositeFrame *fLeftVerticalFrame; | |||
TGCompositeFrame *fRightVerticalFrame; | TGCompositeFrame *fRightVerticalFrame; | |||
skipping to change at line 86 | skipping to change at line 88 | |||
static const char *fgHelpText2; | static const char *fgHelpText2; | |||
void CreateMenus(); | void CreateMenus(); | |||
void CreateFrames(); | void CreateFrames(); | |||
// non-copyable class | // non-copyable class | |||
TGLSAViewer(const TGLSAViewer &); | TGLSAViewer(const TGLSAViewer &); | |||
TGLSAViewer & operator = (const TGLSAViewer &); | TGLSAViewer & operator = (const TGLSAViewer &); | |||
public: | public: | |||
TGLSAViewer(TVirtualPad *pad); | TGLSAViewer(TVirtualPad* pad, TGLFormat* format=0); | |||
TGLSAViewer(const TGWindow *parent, TVirtualPad *pad, TGedEditor *ged=0) | TGLSAViewer(const TGWindow* parent, TVirtualPad *pad, TGedEditor *ged=0, | |||
; | TGLFormat* format=0); | |||
~TGLSAViewer(); | ~TGLSAViewer(); | |||
virtual void CreateGLWidget(); | virtual void CreateGLWidget(); | |||
virtual void DestroyGLWidget(); | virtual void DestroyGLWidget(); | |||
virtual const char* GetName() const { return "GLViewer"; } | virtual const char* GetName() const { return "GLViewer"; } | |||
virtual void SelectionChanged(); | virtual void SelectionChanged(); | |||
void Show(); | void Show(); | |||
skipping to change at line 111 | skipping to change at line 114 | |||
void EnableMenuBarHiding(); | void EnableMenuBarHiding(); | |||
void HandleMenuBarHiding(Event_t* ev); | void HandleMenuBarHiding(Event_t* ev); | |||
// GUI events - editors, frame etc | // GUI events - editors, frame etc | |||
Bool_t ProcessFrameMessage(Long_t msg, Long_t parm1, Long_t); | Bool_t ProcessFrameMessage(Long_t msg, Long_t parm1, Long_t); | |||
TGCompositeFrame* GetFrame() const; | TGCompositeFrame* GetFrame() const; | |||
TGCompositeFrame* GetLeftVerticalFrame() const { return fLeftVerticalFra me; } | TGCompositeFrame* GetLeftVerticalFrame() const { return fLeftVerticalFra me; } | |||
TGLFormat* GetFormat() const { return fFormat; } | ||||
void ToggleEditObject(); | void ToggleEditObject(); | |||
void ToggleOrthoRotate(); | void ToggleOrthoRotate(); | |||
void ToggleOrthoDolly(); | void ToggleOrthoDolly(); | |||
ClassDef(TGLSAViewer, 0); // Standalone GL viewer. | ClassDef(TGLSAViewer, 0); // Standalone GL viewer. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 5 change blocks. | ||||
4 lines changed or deleted | 8 lines changed or added | |||
TGLSurfacePainter.h | TGLSurfacePainter.h | |||
---|---|---|---|---|
skipping to change at line 17 | skipping to change at line 17 | |||
#ifndef ROOT_TGLPlotPainter | #ifndef ROOT_TGLPlotPainter | |||
#include "TGLPlotPainter.h" | #include "TGLPlotPainter.h" | |||
#endif | #endif | |||
#ifndef ROOT_TString | #ifndef ROOT_TString | |||
#include "TString.h" | #include "TString.h" | |||
#endif | #endif | |||
#ifndef ROOT_TGLUtil | #ifndef ROOT_TGLUtil | |||
#include "TGLUtil.h" | #include "TGLUtil.h" | |||
#endif | #endif | |||
class TRandom; | ||||
class TGLSurfacePainter : public TGLPlotPainter { | class TGLSurfacePainter : public TGLPlotPainter { | |||
private: | private: | |||
enum ESurfaceType { | enum ESurfaceType { | |||
kSurf, | kSurf, | |||
kSurf1, | kSurf1, | |||
kSurf2, | kSurf2, | |||
kSurf3, | kSurf3, | |||
kSurf4, | kSurf4, | |||
kSurf5 | kSurf5 | |||
}; | }; | |||
skipping to change at line 101 | skipping to change at line 103 | |||
void GenTexMap()const; | void GenTexMap()const; | |||
void DrawContoursProjection()const; | void DrawContoursProjection()const; | |||
Bool_t Textured()const; | Bool_t Textured()const; | |||
Bool_t HasSections()const; | Bool_t HasSections()const; | |||
Bool_t HasProjections()const; | Bool_t HasProjections()const; | |||
void DrawPalette()const; | void DrawPalette()const; | |||
void DrawPaletteAxis()const; | void DrawPaletteAxis()const; | |||
static TRandom *fgRandom; | ||||
ClassDef(TGLSurfacePainter, 0)//Surface painter. | ClassDef(TGLSurfacePainter, 0)//Surface painter. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 4 lines changed or added | |||
TGLViewer.h | TGLViewer.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLViewer.h 31299 2009-11-18 21:06:28Z matevz $ | // @(#)root/gl:$Id: TGLViewer.h 31821 2009-12-10 18:22:44Z matevz $ | |||
// Author: Richard Maunder 25/05/2005 | // Author: Richard Maunder 25/05/2005 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 86 | skipping to change at line 86 | |||
TContextMenu *fContextMenu; //! | TContextMenu *fContextMenu; //! | |||
// Cameras | // Cameras | |||
// TODO: Put in vector and allow external creation | // TODO: Put in vector and allow external creation | |||
TGLPerspectiveCamera fPerspectiveCameraXOZ; //! | TGLPerspectiveCamera fPerspectiveCameraXOZ; //! | |||
TGLPerspectiveCamera fPerspectiveCameraYOZ; //! | TGLPerspectiveCamera fPerspectiveCameraYOZ; //! | |||
TGLPerspectiveCamera fPerspectiveCameraXOY; //! | TGLPerspectiveCamera fPerspectiveCameraXOY; //! | |||
TGLOrthoCamera fOrthoXOYCamera; //! | TGLOrthoCamera fOrthoXOYCamera; //! | |||
TGLOrthoCamera fOrthoXOZCamera; //! | TGLOrthoCamera fOrthoXOZCamera; //! | |||
TGLOrthoCamera fOrthoZOYCamera; //! | TGLOrthoCamera fOrthoZOYCamera; //! | |||
TGLOrthoCamera fOrthoXnOYCamera; //! | TGLOrthoCamera fOrthoXnOYCamera; //! | |||
TGLOrthoCamera fOrthoXnOZCamera; //! | TGLOrthoCamera fOrthoXnOZCamera; //! | |||
TGLOrthoCamera fOrthoZnOYCamera; //! | TGLOrthoCamera fOrthoZnOYCamera; //! | |||
TGLCamera *fCurrentCamera; //! | TGLCamera *fCurrentCamera; //! | |||
// Stereo | ||||
Bool_t fStereo; //! use stereo rendering | ||||
Float_t fStereoZeroParallax; //! position of zero-paralla | ||||
x plane: 0 - near clipping plane, 1 - far clipping plane | ||||
Float_t fStereoEyeOffsetFac; //! | ||||
Float_t fStereoFrustumAsymFac; //! | ||||
// Lights | // Lights | |||
TGLLightSet *fLightSet; //! | TGLLightSet *fLightSet; //! | |||
// Clipping | // Clipping | |||
TGLClipSet *fClipSet; //! | TGLClipSet *fClipSet; //! | |||
Bool_t fClipAutoUpdate; //! | Bool_t fClipAutoUpdate; //! | |||
// Selected physical | // Selected physical | |||
TGLSelectRecord fCurrentSelRec; //! select record in use as selected | TGLSelectRecord fCurrentSelRec; //! select record in use as selected | |||
TGLSelectRecord fSelRec; //! select record from last select (should go to context) | TGLSelectRecord fSelRec; //! select record from last select (should go to context) | |||
TGLSelectRecord fSecSelRec; //! select record from last secondary select (should go to context) | TGLSelectRecord fSecSelRec; //! select record from last secondary select (should go to context) | |||
TGLManipSet *fSelectedPShapeRef; //! | TGLManipSet *fSelectedPShapeRef; //! | |||
skipping to change at line 265 | skipping to change at line 271 | |||
Double_t center[3], Double_t hRotate, Double_t vRotate); | Double_t center[3], Double_t hRotate, Double_t vRotate); | |||
void GetGuideState(Int_t & axesType, Bool_t & axesDepthTest, Bool_t & re ferenceOn, Double_t* referencePos) const; | void GetGuideState(Int_t & axesType, Bool_t & axesDepthTest, Bool_t & re ferenceOn, Double_t* referencePos) const; | |||
void SetGuideState(Int_t axesType, Bool_t axesDepthTest, Bool_t referenc eOn, const Double_t* referencePos); | void SetGuideState(Int_t axesType, Bool_t axesDepthTest, Bool_t referenc eOn, const Double_t* referencePos); | |||
void SetDrawCameraCenter(Bool_t x); | void SetDrawCameraCenter(Bool_t x); | |||
Bool_t GetDrawCameraCenter() { return fDrawCameraCenter; } | Bool_t GetDrawCameraCenter() { return fDrawCameraCenter; } | |||
void PickCameraCenter() { fPushAction = kPushCamCenter; RefreshPadE ditor(this); } | void PickCameraCenter() { fPushAction = kPushCamCenter; RefreshPadE ditor(this); } | |||
void PickAnnotate() { fPushAction = kPushAnnotate; RefreshPadE ditor(this); } | void PickAnnotate() { fPushAction = kPushAnnotate; RefreshPadE ditor(this); } | |||
TGLCameraOverlay* GetCameraOverlay() const { return fCameraOverlay; } | TGLCameraOverlay* GetCameraOverlay() const { return fCameraOverlay; } | |||
void SetCameraOverlay(TGLCameraOverlay* m) { fCameraOverlay = m; } | void SetCameraOverlay(TGLCameraOverlay* m) { fCameraOverlay = m; } | |||
// Stereo | ||||
Bool_t GetStereo() const { return fStereo; } | ||||
Float_t GetStereoZeroParallax() const { return fStereoZeroParallax; | ||||
} | ||||
Float_t GetStereoEyeOffsetFac() const { return fStereoEyeOffsetFac; | ||||
} | ||||
Float_t GetStereoFrustumAsymFac() const { return fStereoFrustumAsymFac; | ||||
} | ||||
void SetStereo(Bool_t s) { fStereo = s; } | ||||
void SetStereoZeroParallax(Float_t f) { fStereoZeroParallax = f; } | ||||
void SetStereoEyeOffsetFac(Float_t f) { fStereoEyeOffsetFac = f; } | ||||
void SetStereoFrustumAsymFac(Float_t f) { fStereoFrustumAsymFac = f; } | ||||
// Push / drag action | ||||
EPushAction GetPushAction() const { return fPushAction; } | EPushAction GetPushAction() const { return fPushAction; } | |||
EDragAction GetDragAction() const { return fDragAction; } | EDragAction GetDragAction() const { return fDragAction; } | |||
const TGLPhysicalShape * GetSelected() const; | const TGLPhysicalShape * GetSelected() const; | |||
// Draw and selection | // Draw and selection | |||
// Scene rendering timeouts | // Scene rendering timeouts | |||
Float_t GetMaxSceneDrawTimeHQ() const { return fMaxSceneDrawTimeHQ; } | Float_t GetMaxSceneDrawTimeHQ() const { return fMaxSceneDrawTimeHQ; } | |||
Float_t GetMaxSceneDrawTimeLQ() const { return fMaxSceneDrawTimeLQ; } | Float_t GetMaxSceneDrawTimeLQ() const { return fMaxSceneDrawTimeLQ; } | |||
void SetMaxSceneDrawTimeHQ(Float_t t) { fMaxSceneDrawTimeHQ = t; } | void SetMaxSceneDrawTimeHQ(Float_t t) { fMaxSceneDrawTimeHQ = t; } | |||
void SetMaxSceneDrawTimeLQ(Float_t t) { fMaxSceneDrawTimeLQ = t; } | void SetMaxSceneDrawTimeLQ(Float_t t) { fMaxSceneDrawTimeLQ = t; } | |||
// Request methods post cross thread request via TROOT::ProcessLineFast( ). | // Request methods post cross thread request via TROOT::ProcessLineFast( ). | |||
void RequestDraw(Short_t LOD = TGLRnrCtx::kLODMed); // Cross thread draw request | void RequestDraw(Short_t LOD = TGLRnrCtx::kLODMed); // Cross thread draw request | |||
virtual void PreRender(); | virtual void PreRender(); | |||
virtual void PostRender(); | virtual void PostRender(); | |||
void DoDraw(); | void DoDraw(); | |||
void DoDrawMono(); | ||||
void DoDrawStereo(); | ||||
void DrawGuides(); | void DrawGuides(); | |||
void DrawDebugInfo(); | void DrawDebugInfo(); | |||
Bool_t RequestSelect(Int_t x, Int_t y); // Cross thread select request | Bool_t RequestSelect(Int_t x, Int_t y); // Cross thread select request | |||
Bool_t DoSelect(Int_t x, Int_t y); // First level selecton (shapes/objects). | Bool_t DoSelect(Int_t x, Int_t y); // First level selecton (shapes/objects). | |||
Bool_t RequestSecondarySelect(Int_t x, Int_t y); // Cross thread seconda ry select request | Bool_t RequestSecondarySelect(Int_t x, Int_t y); // Cross thread seconda ry select request | |||
Bool_t DoSecondarySelect(Int_t x, Int_t y); // Second level selecto n (inner structure). | Bool_t DoSecondarySelect(Int_t x, Int_t y); // Second level selecto n (inner structure). | |||
void ApplySelection(); | void ApplySelection(); | |||
End of changes. 5 change blocks. | ||||
4 lines changed or deleted | 28 lines changed or added | |||
TGLViewerEditor.h | TGLViewerEditor.h | |||
---|---|---|---|---|
skipping to change at line 34 | skipping to change at line 34 | |||
class TGLLightSetSubEditor; | class TGLLightSetSubEditor; | |||
class TGLClipSetSubEditor; | class TGLClipSetSubEditor; | |||
class TGLViewerEditor : public TGedFrame | class TGLViewerEditor : public TGedFrame | |||
{ | { | |||
private: | private: | |||
//Pointers to manipulate with tabs | //Pointers to manipulate with tabs | |||
TGCompositeFrame *fGuidesFrame; | TGCompositeFrame *fGuidesFrame; | |||
TGCompositeFrame *fClipFrame; | TGCompositeFrame *fClipFrame; | |||
TGCompositeFrame *fStereoFrame; | ||||
TGLLightSetSubEditor *fLightSet; | TGLLightSetSubEditor *fLightSet; | |||
TGColorSelect *fClearColor; | TGColorSelect *fClearColor; | |||
TGCheckButton *fIgnoreSizesOnUpdate; | TGCheckButton *fIgnoreSizesOnUpdate; | |||
TGCheckButton *fResetCamerasOnUpdate; | TGCheckButton *fResetCamerasOnUpdate; | |||
TGTextButton *fUpdateScene; | TGTextButton *fUpdateScene; | |||
TGTextButton *fCameraHome; | TGTextButton *fCameraHome; | |||
TGNumberEntry *fMaxSceneDrawTimeHQ; | TGNumberEntry *fMaxSceneDrawTimeHQ; | |||
skipping to change at line 82 | skipping to change at line 83 | |||
TGNumberEntry *fReferencePosX; | TGNumberEntry *fReferencePosX; | |||
TGNumberEntry *fReferencePosY; | TGNumberEntry *fReferencePosY; | |||
TGNumberEntry *fReferencePosZ; | TGNumberEntry *fReferencePosZ; | |||
TGGroupFrame *fCamContainer; | TGGroupFrame *fCamContainer; | |||
TGComboBox* fCamMode; | TGComboBox* fCamMode; | |||
TGCheckButton* fCamOverlayOn; | TGCheckButton* fCamOverlayOn; | |||
TGLClipSetSubEditor *fClipSet; | TGLClipSetSubEditor *fClipSet; | |||
TGNumberEntry *fStereoZeroParallax; | ||||
TGNumberEntry *fStereoEyeOffsetFac; | ||||
TGNumberEntry *fStereoFrustumAsymFac; | ||||
//Model | //Model | |||
TGLViewer *fViewer; | TGLViewer *fViewer; | |||
Bool_t fIsInPad; | Bool_t fIsInPad; | |||
void ConnectSignals2Slots(); | void ConnectSignals2Slots(); | |||
TGLViewerEditor(const TGLViewerEditor &); | TGLViewerEditor(const TGLViewerEditor &); | |||
TGLViewerEditor &operator = (const TGLViewerEditor &); | TGLViewerEditor &operator = (const TGLViewerEditor &); | |||
void CreateStyleTab(); | void CreateStyleTab(); | |||
void CreateGuidesTab(); | void CreateGuidesTab(); | |||
void CreateClippingTab(); | void CreateClippingTab(); | |||
void CreateStereoTab(); | ||||
void UpdateReferencePosState(); | void UpdateReferencePosState(); | |||
public: | public: | |||
TGLViewerEditor(const TGWindow *p=0, Int_t width=140, Int_t height=30, | TGLViewerEditor(const TGWindow *p=0, Int_t width=140, Int_t height=30, | |||
UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrame Background()); | UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrame Background()); | |||
~TGLViewerEditor(); | ~TGLViewerEditor(); | |||
virtual void ViewerRedraw(); | virtual void ViewerRedraw(); | |||
skipping to change at line 123 | skipping to change at line 129 | |||
void UpdatePointLineStuff(); | void UpdatePointLineStuff(); | |||
void DoCameraCenterExt(); | void DoCameraCenterExt(); | |||
void DoCaptureCenter(); | void DoCaptureCenter(); | |||
void DoAnnotation(); | void DoAnnotation(); | |||
void DoDrawCameraCenter(); | void DoDrawCameraCenter(); | |||
void UpdateCameraCenter(); | void UpdateCameraCenter(); | |||
//Axis manipulation | //Axis manipulation | |||
void UpdateViewerAxes(Int_t id); | void UpdateViewerAxes(Int_t id); | |||
void UpdateViewerReference(); | void UpdateViewerReference(); | |||
void DoCameraOverlay(); | void DoCameraOverlay(); | |||
// Stereo | ||||
void UpdateStereo(); | ||||
void DetachFromPad(){fIsInPad = kFALSE;} | void DetachFromPad(){fIsInPad = kFALSE;} | |||
static TGNumberEntry* MakeLabeledNEntry(TGCompositeFrame* p, const char* name, | static TGNumberEntry* MakeLabeledNEntry(TGCompositeFrame* p, const char* name, | |||
Int_t labelw, Int_t nd=7, Int_t s=5); | Int_t labelw, Int_t nd=7, Int_t s=5); | |||
ClassDef(TGLViewerEditor, 0); //GUI for editing TGLViewer attributes | ClassDef(TGLViewerEditor, 0); //GUI for editing TGLViewer attributes | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
0 lines changed or deleted | 8 lines changed or added | |||
TGeoNode.h | TGeoNode.h | |||
---|---|---|---|---|
// @(#)root/geom:$Id: TGeoNode.h 27731 2009-03-09 17:40:56Z brun $ | // @(#)root/geom:$Id: TGeoNode.h 31454 2009-11-30 07:39:14Z brun $ | |||
// Author: Andrei Gheata 24/10/01 | // Author: Andrei Gheata 24/10/01 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 212 | skipping to change at line 212 | |||
virtual TGeoPatternFinder *GetFinder() const {return fFinder;} | virtual TGeoPatternFinder *GetFinder() const {return fFinder;} | |||
virtual TGeoMatrix *GetMatrix() const {cd(); return fFinder->GetMatrix() ;} | virtual TGeoMatrix *GetMatrix() const {cd(); return fFinder->GetMatrix() ;} | |||
virtual TGeoNode *MakeCopyNode() const; | virtual TGeoNode *MakeCopyNode() const; | |||
void SetFinder(const TGeoPatternFinder *finder) {fFinder = (TGeoPatternFinder*)finder;} | void SetFinder(const TGeoPatternFinder *finder) {fFinder = (TGeoPatternFinder*)finder;} | |||
ClassDef(TGeoNodeOffset, 1) // a geometry node with just an offset | ClassDef(TGeoNodeOffset, 1) // a geometry node with just an offset | |||
}; | }; | |||
/////////////////////////////////////////////////////////////////////////// / | /////////////////////////////////////////////////////////////////////////// / | |||
// / / | // / / | |||
// TGeoIteratorPlugin - Plugin for a TGeoIterator providing the method / | ||||
/ | ||||
// ProcessNode each time Next is called. / | ||||
/ | ||||
// / | ||||
/ | ||||
/////////////////////////////////////////////////////////////////////////// | ||||
/ | ||||
class TGeoIterator; | ||||
class TGeoIteratorPlugin : public TObject | ||||
{ | ||||
private: | ||||
const TGeoIterator *fIterator; // Caller iterator | ||||
// No copy | ||||
TGeoIteratorPlugin(const TGeoIteratorPlugin &); | ||||
TGeoIteratorPlugin &operator=(const TGeoIteratorPlugin &); | ||||
public: | ||||
TGeoIteratorPlugin() : TObject(),fIterator(0) {} | ||||
virtual ~TGeoIteratorPlugin() {} | ||||
virtual void ProcessNode() = 0; | ||||
void SetIterator(const TGeoIterator *iter) {fIterator = ite | ||||
r;} | ||||
ClassDef(TGeoIteratorPlugin, 0) // ABC for user plugins connecter to a | ||||
geometry iterator. | ||||
}; | ||||
/////////////////////////////////////////////////////////////////////////// | ||||
/ | ||||
// / | ||||
/ | ||||
// TGeoIterator - iterator for the node tree / / | // TGeoIterator - iterator for the node tree / / | |||
// / / | // / / | |||
/////////////////////////////////////////////////////////////////////////// / | /////////////////////////////////////////////////////////////////////////// / | |||
class TGeoIterator | class TGeoIterator | |||
{ | { | |||
private: | private: | |||
TGeoVolume *fTop; // Top volume of the iterated b ranch | TGeoVolume *fTop; // Top volume of the iterated b ranch | |||
Bool_t fMustResume; // Private flag to resume from current node. | Bool_t fMustResume; // Private flag to resume from current node. | |||
Bool_t fMustStop; // Private flag to signal that the iterator has finished. | Bool_t fMustStop; // Private flag to signal that the iterator has finished. | |||
Int_t fLevel; // Current level in the tree | Int_t fLevel; // Current level in the tree | |||
Int_t fType; // Type of iteration | Int_t fType; // Type of iteration | |||
Int_t *fArray; // Array of node indices for th e current path | Int_t *fArray; // Array of node indices for th e current path | |||
TGeoHMatrix *fMatrix; // Current global matrix | TGeoHMatrix *fMatrix; // Current global matrix | |||
TString fTopName; // User name for top | TString fTopName; // User name for top | |||
TGeoIteratorPlugin | ||||
*fPlugin; // User iterator plugin | ||||
Bool_t fPluginAutoexec; // Plugin automatically execute | ||||
d during next() | ||||
void IncreaseArray(); | void IncreaseArray(); | |||
protected: | protected: | |||
TGeoIterator() : fTop(0), fMustResume(0), fMustStop(0), | TGeoIterator() : fTop(0), fMustResume(0), fMustStop(0), fLevel(0), fType | |||
fLevel(0), fType(0), fArray(0), fMatrix(0), fTopName() | (0), | |||
{ } | fArray(0), fMatrix(0), fTopName(), fPlugin(0), fPluginA | |||
utoexec(kFALSE) { } | ||||
public: | public: | |||
TGeoIterator(TGeoVolume *top); | TGeoIterator(TGeoVolume *top); | |||
TGeoIterator(const TGeoIterator &iter); | TGeoIterator(const TGeoIterator &iter); | |||
virtual ~TGeoIterator(); | virtual ~TGeoIterator(); | |||
TGeoIterator &operator=(const TGeoIterator &iter); | TGeoIterator &operator=(const TGeoIterator &iter); | |||
TGeoNode *operator()(); | TGeoNode *operator()(); | |||
TGeoNode *Next(); | TGeoNode *Next(); | |||
const TGeoMatrix *GetCurrentMatrix() const; | const TGeoMatrix *GetCurrentMatrix() const; | |||
Int_t GetIndex(Int_t i) const {return ((i<=fLevel)?fArray[i]:- 1);} | Int_t GetIndex(Int_t i) const {return ((i<=fLevel)?fArray[i]:- 1);} | |||
Int_t GetLevel() const {return fLevel;} | Int_t GetLevel() const {return fLevel;} | |||
TGeoNode *GetNode(Int_t level) const; | TGeoNode *GetNode(Int_t level) const; | |||
void GetPath(TString &path) const; | void GetPath(TString &path) const; | |||
TGeoIteratorPlugin | ||||
*GetUserPlugin() const {return fPlugin;} | ||||
TGeoVolume *GetTopVolume() const {return fTop;} | TGeoVolume *GetTopVolume() const {return fTop;} | |||
Int_t GetType() const {return fType;} | Int_t GetType() const {return fType;} | |||
void Reset(TGeoVolume *top=0); | void Reset(TGeoVolume *top=0); | |||
void SetUserPlugin(TGeoIteratorPlugin *plugin); | ||||
void SetPluginAutoexec(Bool_t mode) {fPluginAutoexec = mode;} | ||||
void SetType(Int_t type) {fType = type;} | void SetType(Int_t type) {fType = type;} | |||
void SetTopName(const char* name); | void SetTopName(const char* name); | |||
void Skip(); | void Skip(); | |||
ClassDef(TGeoIterator,0) //Iterator for geometry. | ClassDef(TGeoIterator,0) //Iterator for geometry. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 6 change blocks. | ||||
4 lines changed or deleted | 48 lines changed or added | |||
TGeoPainter.h | TGeoPainter.h | |||
---|---|---|---|---|
skipping to change at line 71 | skipping to change at line 71 | |||
TString fVolInfo; // volume info | TString fVolInfo; // volume info | |||
TGeoNode *fCheckedNode; // checked node | TGeoNode *fCheckedNode; // checked node | |||
TGeoOverlap *fOverlap; // current overlap | TGeoOverlap *fOverlap; // current overlap | |||
TGeoHMatrix *fGlobal; // current global matrix | TGeoHMatrix *fGlobal; // current global matrix | |||
TBuffer3D *fBuffer; // buffer used for painting | TBuffer3D *fBuffer; // buffer used for painting | |||
TGeoManager *fGeoManager; // geometry to which applies | TGeoManager *fGeoManager; // geometry to which applies | |||
TGeoChecker *fChecker; // geometry checker | TGeoChecker *fChecker; // geometry checker | |||
TGeoShape *fClippingShape; // clipping shape | TGeoShape *fClippingShape; // clipping shape | |||
TGeoVolume *fTopVolume; // top drawn volume | TGeoVolume *fTopVolume; // top drawn volume | |||
TGeoVolume *fLastVolume; // last drawn volume | TGeoVolume *fLastVolume; // last drawn volume | |||
TGeoIteratorPlugin | ||||
*fPlugin; // User iterator plugin for changi | ||||
ng pain volume properties | ||||
TObjArray *fVisVolumes; // list of visible volumes | TObjArray *fVisVolumes; // list of visible volumes | |||
Bool_t fIsEditable; // flag that geometry is editable | Bool_t fIsEditable; // flag that geometry is editable | |||
void DefineColors() const; | void DefineColors() const; | |||
void LocalToMasterVect(const Double_t *local, Double_t *ma ster) const; | void LocalToMasterVect(const Double_t *local, Double_t *ma ster) const; | |||
protected: | protected: | |||
virtual void ClearVisibleVolumes(); | virtual void ClearVisibleVolumes(); | |||
public: | public: | |||
skipping to change at line 156 | skipping to change at line 158 | |||
virtual void RandomPoints(const TGeoVolume *vol, Int_t npoints, Op tion_t *option=""); | virtual void RandomPoints(const TGeoVolume *vol, Int_t npoints, Op tion_t *option=""); | |||
virtual void RandomRays(Int_t nrays, Double_t startx, Double_t sta rty, Double_t startz); | virtual void RandomRays(Int_t nrays, Double_t startx, Double_t sta rty, Double_t startz); | |||
virtual void Raytrace(Option_t *option=""); | virtual void Raytrace(Option_t *option=""); | |||
virtual TGeoNode *SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char* g3path); | virtual TGeoNode *SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char* g3path); | |||
virtual void SetBombFactors(Double_t bombx=1.3, Double_t bomby=1.3 , Double_t bombz=1.3, Double_t bombr=1.3); | virtual void SetBombFactors(Double_t bombx=1.3, Double_t bomby=1.3 , Double_t bombz=1.3, Double_t bombr=1.3); | |||
virtual void SetClippingShape(TGeoShape *shape) {fClippingShape = shape;} | virtual void SetClippingShape(TGeoShape *shape) {fClippingShape = shape;} | |||
virtual void SetExplodedView(Int_t iopt=0); | virtual void SetExplodedView(Int_t iopt=0); | |||
virtual void SetNsegments(Int_t nseg=20); | virtual void SetNsegments(Int_t nseg=20); | |||
virtual void SetNmeshPoints(Int_t npoints); | virtual void SetNmeshPoints(Int_t npoints); | |||
virtual void SetGeoManager(TGeoManager *geom) {fGeoManager=geom;} | virtual void SetGeoManager(TGeoManager *geom) {fGeoManager=geom;} | |||
virtual void SetIteratorPlugin(TGeoIteratorPlugin *plugin) {fPlugi n = plugin; ModifiedPad();} | ||||
virtual void SetCheckedNode(TGeoNode *node); | virtual void SetCheckedNode(TGeoNode *node); | |||
virtual void SetRaytracing(Bool_t flag=kTRUE) {fIsRaytracing = fla g;} | virtual void SetRaytracing(Bool_t flag=kTRUE) {fIsRaytracing = fla g;} | |||
virtual void SetTopVisible(Bool_t vis=kTRUE); | virtual void SetTopVisible(Bool_t vis=kTRUE); | |||
virtual void SetTopVolume(TGeoVolume *vol) {fTopVolume = vol;} | virtual void SetTopVolume(TGeoVolume *vol) {fTopVolume = vol;} | |||
virtual void SetVisLevel(Int_t level=3); | virtual void SetVisLevel(Int_t level=3); | |||
virtual void SetVisOption(Int_t option=0); | virtual void SetVisOption(Int_t option=0); | |||
virtual Int_t ShapeDistancetoPrimitive(const TGeoShape *shape, Int_ t numpoints, Int_t px, Int_t py) const; | virtual Int_t ShapeDistancetoPrimitive(const TGeoShape *shape, Int_ t numpoints, Int_t px, Int_t py) const; | |||
virtual void Test(Int_t npoints, Option_t *option); | virtual void Test(Int_t npoints, Option_t *option); | |||
virtual void TestOverlaps(const char *path); | virtual void TestOverlaps(const char *path); | |||
virtual Bool_t TestVoxels(TGeoVolume *vol); | virtual Bool_t TestVoxels(TGeoVolume *vol); | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 4 lines changed or added | |||
TGraph.h | TGraph.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: TGraph.h 31207 2009-11-16 16:52:00Z moneta $ | // @(#)root/hist:$Id: TGraph.h 31491 2009-12-01 18:11:55Z moneta $ | |||
// Author: Rene Brun, Olivier Couet 12/12/94 | // Author: Rene Brun, Olivier Couet 12/12/94 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 50 | skipping to change at line 50 | |||
#endif | #endif | |||
class TBrowser; | class TBrowser; | |||
class TAxis; | class TAxis; | |||
class TH1; | class TH1; | |||
class TH1F; | class TH1F; | |||
class TCollection; | class TCollection; | |||
class TF1; | class TF1; | |||
class TSpline; | class TSpline; | |||
#include "TFitResultPtr.h" | ||||
class TGraph : public TNamed, public TAttLine, public TAttFill, public TAtt Marker { | class TGraph : public TNamed, public TAttLine, public TAttFill, public TAtt Marker { | |||
protected: | protected: | |||
Int_t fMaxSize; //!Current dimension of arrays fX and fY | Int_t fMaxSize; //!Current dimension of arrays fX and fY | |||
Int_t fNpoints; //Number of points <= fMaxSize | Int_t fNpoints; //Number of points <= fMaxSize | |||
Double_t *fX; //[fNpoints] array of X points | Double_t *fX; //[fNpoints] array of X points | |||
Double_t *fY; //[fNpoints] array of Y points | Double_t *fY; //[fNpoints] array of Y points | |||
TList *fFunctions; //Pointer to list of functions (fits and user) | TList *fFunctions; //Pointer to list of functions (fits and user) | |||
TH1F *fHistogram; //Pointer to histogram used for drawing a xis | TH1F *fHistogram; //Pointer to histogram used for drawing a xis | |||
skipping to change at line 116 | skipping to change at line 118 | |||
virtual void DrawGraph(Int_t n, const Int_t *x, const Int_t *y, Option_t *option=""); | virtual void DrawGraph(Int_t n, const Int_t *x, const Int_t *y, Option_t *option=""); | |||
virtual void DrawGraph(Int_t n, const Float_t *x, const Float_t *y, Option_t *option=""); | virtual void DrawGraph(Int_t n, const Float_t *x, const Float_t *y, Option_t *option=""); | |||
virtual void DrawGraph(Int_t n, const Double_t *x=0, const Doub le_t *y=0, Option_t *option=""); | virtual void DrawGraph(Int_t n, const Double_t *x=0, const Doub le_t *y=0, Option_t *option=""); | |||
virtual void DrawPanel(); // *MENU* | virtual void DrawPanel(); // *MENU* | |||
virtual Double_t Eval(Double_t x, TSpline *spline=0, Option_t *opti on="") const; | virtual Double_t Eval(Double_t x, TSpline *spline=0, Option_t *opti on="") const; | |||
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py); | virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py); | |||
virtual void Expand(Int_t newsize); | virtual void Expand(Int_t newsize); | |||
virtual void Expand(Int_t newsize, Int_t step); | virtual void Expand(Int_t newsize, Int_t step); | |||
virtual TObject *FindObject(const char *name) const; | virtual TObject *FindObject(const char *name) const; | |||
virtual TObject *FindObject(const TObject *obj) const; | virtual TObject *FindObject(const TObject *obj) const; | |||
virtual Int_t Fit(const char *formula ,Option_t *option="" ,Opti | virtual TFitResultPtr Fit(const char *formula ,Option_t *option="" ,Opti | |||
on_t *goption="", Axis_t xmin=0, Axis_t xmax=0); // *MENU* | on_t *goption="", Axis_t xmin=0, Axis_t xmax=0); // *MENU* | |||
virtual Int_t Fit(TF1 *f1 ,Option_t *option="" ,Option_t *goptio | virtual TFitResultPtr Fit(TF1 *f1 ,Option_t *option="" ,Option_t *goptio | |||
n="", Axis_t xmin=0, Axis_t xmax=0); | n="", Axis_t xmin=0, Axis_t xmax=0); | |||
virtual void FitPanel(); // *MENU* | virtual void FitPanel(); // *MENU* | |||
Bool_t GetEditable() const; | Bool_t GetEditable() const; | |||
TF1 *GetFunction(const char *name) const; | TF1 *GetFunction(const char *name) const; | |||
TH1F *GetHistogram() const; | TH1F *GetHistogram() const; | |||
TList *GetListOfFunctions() const { return fFunctions; } | TList *GetListOfFunctions() const { return fFunctions; } | |||
virtual Double_t GetCorrelationFactor() const; | virtual Double_t GetCorrelationFactor() const; | |||
virtual Double_t GetCovariance() const; | virtual Double_t GetCovariance() const; | |||
virtual Double_t GetMean(Int_t axis=1) const; | virtual Double_t GetMean(Int_t axis=1) const; | |||
virtual Double_t GetRMS(Int_t axis=1) const; | virtual Double_t GetRMS(Int_t axis=1) const; | |||
Int_t GetMaxSize() const {return fMaxSize;} | Int_t GetMaxSize() const {return fMaxSize;} | |||
End of changes. 3 change blocks. | ||||
5 lines changed or deleted | 7 lines changed or added | |||
TGraph2D.h | TGraph2D.h | |||
---|---|---|---|---|
skipping to change at line 47 | skipping to change at line 47 | |||
#endif | #endif | |||
class TAxis; | class TAxis; | |||
class TList; | class TList; | |||
class TF2; | class TF2; | |||
class TH2; | class TH2; | |||
class TH2D; | class TH2D; | |||
class TView; | class TView; | |||
class TDirectory; | class TDirectory; | |||
#include "TFitResultPtr.h" | ||||
class TGraph2D : public TNamed, public TAttLine, public TAttFill, public TA ttMarker { | class TGraph2D : public TNamed, public TAttLine, public TAttFill, public TA ttMarker { | |||
protected: | protected: | |||
Int_t fNpoints; // Number of points in the data set | Int_t fNpoints; // Number of points in the data set | |||
Int_t fNpx; // Number of bins along X in fHistogram | Int_t fNpx; // Number of bins along X in fHistogram | |||
Int_t fNpy; // Number of bins along Y in fHistogram | Int_t fNpy; // Number of bins along Y in fHistogram | |||
Int_t fMaxIter; // Maximum number of iterations to find Delaun ay t> | Int_t fMaxIter; // Maximum number of iterations to find Delaun ay t> | |||
Int_t fSize; //!Real size of fX, fY and fZ | Int_t fSize; //!Real size of fX, fY and fZ | |||
Double_t *fX; //[fNpoints] | Double_t *fX; //[fNpoints] | |||
skipping to change at line 99 | skipping to change at line 101 | |||
TGraph2D& operator=(const TGraph2D &); | TGraph2D& operator=(const TGraph2D &); | |||
virtual void Clear(Option_t *option=""); | virtual void Clear(Option_t *option=""); | |||
virtual void DirectoryAutoAdd(TDirectory *); | virtual void DirectoryAutoAdd(TDirectory *); | |||
Int_t DistancetoPrimitive(Int_t px, Int_t py); | Int_t DistancetoPrimitive(Int_t px, Int_t py); | |||
virtual void Draw(Option_t *option=""); | virtual void Draw(Option_t *option=""); | |||
void ExecuteEvent(Int_t event, Int_t px, Int_t py); | void ExecuteEvent(Int_t event, Int_t px, Int_t py); | |||
virtual TObject *FindObject(const char *name) const; | virtual TObject *FindObject(const char *name) const; | |||
virtual TObject *FindObject(const TObject *obj) const; | virtual TObject *FindObject(const TObject *obj) const; | |||
virtual Int_t Fit(const char *formula ,Option_t *option="" ,Option_t | virtual TFitResultPtr Fit(const char *formula ,Option_t *option="" ,Opti | |||
*goption=""); // *MENU* | on_t *goption=""); // *MENU* | |||
virtual Int_t Fit(TF2 *f2 ,Option_t *option="" ,Option_t *goption="") | virtual TFitResultPtr Fit(TF2 *f2 ,Option_t *option="" ,Option_t *goptio | |||
; // *MENU* | n=""); // *MENU* | |||
virtual void FitPanel(); // *MENU* | virtual void FitPanel(); // *MENU* | |||
TList *GetContourList(Double_t contour); | TList *GetContourList(Double_t contour); | |||
TDirectory *GetDirectory() const {return fDirectory;} | TDirectory *GetDirectory() const {return fDirectory;} | |||
Int_t GetNpx() const {return fNpx;} | Int_t GetNpx() const {return fNpx;} | |||
Int_t GetNpy() const {return fNpy;} | Int_t GetNpy() const {return fNpy;} | |||
TH2D *GetHistogram(Option_t *option=""); | TH2D *GetHistogram(Option_t *option=""); | |||
TList *GetListOfFunctions() const { return fFunctions; } | TList *GetListOfFunctions() const { return fFunctions; } | |||
virtual Double_t GetErrorX(Int_t bin) const; | virtual Double_t GetErrorX(Int_t bin) const; | |||
virtual Double_t GetErrorY(Int_t bin) const; | virtual Double_t GetErrorY(Int_t bin) const; | |||
virtual Double_t GetErrorZ(Int_t bin) const; | virtual Double_t GetErrorZ(Int_t bin) const; | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 6 lines changed or added | |||
TGraphTime.h | TGraphTime.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: TGraphTime.h 29482 2009-07-16 07:42:31Z brun $ | // @(#)root/hist:$Id: TGraphTime.h 31667 2009-12-08 15:11:34Z brun $ | |||
// Author: Rene Brun 13/07/2009 | // Author: Rene Brun 13/07/2009 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2009, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2009, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 50 | skipping to change at line 50 | |||
TObjArray *fSteps; //array of TLists for each time step | TObjArray *fSteps; //array of TLists for each time step | |||
TH1 *fFrame; //TH1 object used for the pad range | TH1 *fFrame; //TH1 object used for the pad range | |||
public: | public: | |||
TGraphTime(); | TGraphTime(); | |||
TGraphTime(Int_t nsteps, Double_t xmin, Double_t ymin, Double_t xmax, Do uble_t ymax); | TGraphTime(Int_t nsteps, Double_t xmin, Double_t ymin, Double_t xmax, Do uble_t ymax); | |||
TGraphTime(const TGraphTime &gr); | TGraphTime(const TGraphTime &gr); | |||
virtual ~TGraphTime(); | virtual ~TGraphTime(); | |||
virtual Int_t Add(const TObject *obj, Int_t slot, Option_t *opti | virtual Int_t Add(const TObject *obj, Int_t slot, Option_t *option="") | |||
on=""); | ; | |||
virtual void Draw(Option_t *chopt=""); | virtual void Draw(Option_t *chopt=""); | |||
TObjArray *GetSteps() const {return fSteps;} | TObjArray *GetSteps() const {return fSteps;} | |||
virtual void Paint(Option_t *chopt=""); | virtual void Paint(Option_t *chopt=""); | |||
virtual void SetSleepTime(Int_t stime=0) {fSleepTime = stime;} | virtual void SaveAnimatedGif(const char *filename="") const; | |||
virtual void SetSleepTime(Int_t stime=0) {fSleepTime = stime;} | ||||
ClassDef(TGraphTime,1) //An array of objects evolving with time | ClassDef(TGraphTime,1) //An array of objects evolving with time | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
7 lines changed or deleted | 8 lines changed or added | |||
THnSparse.h | THnSparse.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: THnSparse.h 31207 2009-11-16 16:52:00Z moneta $ | // @(#)root/hist:$Id: THnSparse.h 31491 2009-12-01 18:11:55Z moneta $ | |||
// Author: Axel Naumann (2007-09-11) | // Author: Axel Naumann (2007-09-11) | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 61 | skipping to change at line 61 | |||
class TAxis; | class TAxis; | |||
class TCollection; | class TCollection; | |||
class TFitResultPtr; | class TFitResultPtr; | |||
class TH1; | class TH1; | |||
class TH1D; | class TH1D; | |||
class TH2D; | class TH2D; | |||
class TH3D; | class TH3D; | |||
class TF1; | class TF1; | |||
#include "TFitResultPtr.h" | ||||
class THnSparseArrayChunk: public TObject { | class THnSparseArrayChunk: public TObject { | |||
private: | private: | |||
THnSparseArrayChunk(const THnSparseArrayChunk&); // Not implemented | THnSparseArrayChunk(const THnSparseArrayChunk&); // Not implemented | |||
THnSparseArrayChunk& operator=(const THnSparseArrayChunk&); // Not imple mented | THnSparseArrayChunk& operator=(const THnSparseArrayChunk&); // Not imple mented | |||
public: | public: | |||
THnSparseArrayChunk(): | THnSparseArrayChunk(): | |||
fCoordinateAllocationSize(-1), fSingleCoordinateSize(0), fCoordinates Size(0), fCoordinates(0), | fCoordinateAllocationSize(-1), fSingleCoordinateSize(0), fCoordinates Size(0), fCoordinates(0), | |||
fContent(0), fSumw2(0) {} | fContent(0), fSumw2(0) {} | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
TInetAddress.h | TInetAddress.h | |||
---|---|---|---|---|
// @(#)root/base:$Id: TInetAddress.h 20877 2007-11-19 11:17:07Z rdm $ | // @(#)root/base:$Id: TInetAddress.h 31825 2009-12-10 20:16:27Z pcanal $ | |||
// Author: Fons Rademakers 16/12/96 | // Author: Fons Rademakers 16/12/96 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 54 | skipping to change at line 54 | |||
friend class TSocket; | friend class TSocket; | |||
friend class TServerSocket; | friend class TServerSocket; | |||
friend class TXSocket; // special for BaBar | friend class TXSocket; // special for BaBar | |||
public: | public: | |||
typedef std::vector<UInt_t> AddressList_t; | typedef std::vector<UInt_t> AddressList_t; | |||
typedef std::vector<TString> AliasList_t; | typedef std::vector<TString> AliasList_t; | |||
private: | private: | |||
TString fHostname; // fully qualified hostname | TString fHostname; // fully qualified hostname | |||
UInt_t fAddress; // IP address in host byte order | ||||
Int_t fFamily; // address family | Int_t fFamily; // address family | |||
Int_t fPort; // port through which we are connected | Int_t fPort; // port through which we are connected | |||
AddressList_t fAddresses; // list of all IP addresses in host byte ord er | AddressList_t fAddresses; // list of all IP addresses in host byte ord er | |||
AliasList_t fAliases; // list of aliases | AliasList_t fAliases; // list of aliases | |||
TInetAddress(const char *host, UInt_t addr, Int_t family, Int_t port = - 1); | TInetAddress(const char *host, UInt_t addr, Int_t family, Int_t port = - 1); | |||
void AddAddress(UInt_t addr); | void AddAddress(UInt_t addr); | |||
void AddAlias(const char *alias); | void AddAlias(const char *alias); | |||
public: | public: | |||
skipping to change at line 83 | skipping to change at line 82 | |||
const char *GetHostName() const { return (const char *) fHostname; } | const char *GetHostName() const { return (const char *) fHostname; } | |||
Int_t GetFamily() const { return fFamily; } | Int_t GetFamily() const { return fFamily; } | |||
Int_t GetPort() const { return fPort; } | Int_t GetPort() const { return fPort; } | |||
const AddressList_t &GetAddresses() const { return fAddresses; } | const AddressList_t &GetAddresses() const { return fAddresses; } | |||
const AliasList_t &GetAliases() const { return fAliases; } | const AliasList_t &GetAliases() const { return fAliases; } | |||
Bool_t IsValid() const { return fFamily == -1 ? kFALSE : kTRUE; } | Bool_t IsValid() const { return fFamily == -1 ? kFALSE : kTRUE; } | |||
void Print(Option_t *option="") const; | void Print(Option_t *option="") const; | |||
static const char *GetHostAddress(UInt_t addr); | static const char *GetHostAddress(UInt_t addr); | |||
ClassDef(TInetAddress,3) //Represents an Internet Protocol (IP) address | ClassDef(TInetAddress,4) //Represents an Internet Protocol (IP) address | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 2 lines changed or added | |||
TLinearMinimizer.h | TLinearMinimizer.h | |||
---|---|---|---|---|
// @(#)root/minuit:$Id: TLinearMinimizer.h 25486 2008-09-22 12:43:03Z monet a $ | // @(#)root/minuit:$Id: TLinearMinimizer.h 31604 2009-12-07 19:04:33Z monet a $ | |||
// Author: L. Moneta Wed Oct 25 16:28:55 2006 | // Author: L. Moneta Wed Oct 25 16:28:55 2006 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class TLinearMinimizer | // Header file for class TLinearMinimizer | |||
skipping to change at line 117 | skipping to change at line 117 | |||
virtual const double * Errors() const { return &fErrors.front(); } | virtual const double * Errors() const { return &fErrors.front(); } | |||
/** return covariance matrices elements | /** return covariance matrices elements | |||
if the variable is fixed the matrix is zero | if the variable is fixed the matrix is zero | |||
The ordering of the variables is the same as in errors | The ordering of the variables is the same as in errors | |||
*/ | */ | |||
virtual double CovMatrix(unsigned int i, unsigned int j) const { | virtual double CovMatrix(unsigned int i, unsigned int j) const { | |||
return fCovar[i + fDim* j]; | return fCovar[i + fDim* j]; | |||
} | } | |||
/// return covariance matrix status | ||||
virtual int CovMatrixStatus() const { | ||||
if (fCovar.size() == 0) return 0; | ||||
return (fStatus ==0) ? 3 : 1; | ||||
} | ||||
/// return reference to the objective function | /// return reference to the objective function | |||
///virtual const ROOT::Math::IGenFunction & Function() const; | ///virtual const ROOT::Math::IGenFunction & Function() const; | |||
protected: | protected: | |||
private: | private: | |||
bool fRobust; | bool fRobust; | |||
unsigned int fDim; | unsigned int fDim; | |||
unsigned int fNFree; | unsigned int fNFree; | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 7 lines changed or added | |||
TMinuitMinimizer.h | TMinuitMinimizer.h | |||
---|---|---|---|---|
// @(#)root/minuit:$Id: TMinuitMinimizer.h 31181 2009-11-16 11:00:58Z monet a $ | // @(#)root/minuit:$Id: TMinuitMinimizer.h 31604 2009-12-07 19:04:33Z monet a $ | |||
// Author: L. Moneta Wed Oct 25 16:28:55 2006 | // Author: L. Moneta Wed Oct 25 16:28:55 2006 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class TMinuitMinimizer | // Header file for class TMinuitMinimizer | |||
skipping to change at line 152 | skipping to change at line 152 | |||
return ( fCovar.size() > (i + fDim* j) ) ? fCovar[i + fDim* j] : 0; | return ( fCovar.size() > (i + fDim* j) ) ? fCovar[i + fDim* j] : 0; | |||
} | } | |||
///return status of covariance matrix | ///return status of covariance matrix | |||
virtual int CovMatrixStatus() const; | virtual int CovMatrixStatus() const; | |||
///global correlation coefficient for variable i | ///global correlation coefficient for variable i | |||
virtual double GlobalCC(unsigned int ) const; | virtual double GlobalCC(unsigned int ) const; | |||
/// minos error for variable i, return false if Minos failed | /// minos error for variable i, return false if Minos failed | |||
virtual bool GetMinosError(unsigned int i, double & errLow, double & err Up); | virtual bool GetMinosError(unsigned int i, double & errLow, double & err Up, int = 0); | |||
/** | /** | |||
perform a full calculation of the Hessian matrix for error calculatio n | perform a full calculation of the Hessian matrix for error calculatio n | |||
*/ | */ | |||
virtual bool Hesse(); | virtual bool Hesse(); | |||
/** | /** | |||
scan a parameter i around the minimum. A minimization must have been done before, | scan a parameter i around the minimum. A minimization must have been done before, | |||
return false if it is not the case | return false if it is not the case | |||
*/ | */ | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TMonitor.h | TMonitor.h | |||
---|---|---|---|---|
// @(#)root/net:$Id: TMonitor.h 28779 2009-06-02 16:17:10Z rdm $ | // @(#)root/net:$Id: TMonitor.h 31598 2009-12-07 15:21:47Z rdm $ | |||
// Author: Fons Rademakers 09/01/97 | // Author: Fons Rademakers 09/01/97 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 74 | skipping to change at line 74 | |||
virtual void Remove(TSocket *sock); | virtual void Remove(TSocket *sock); | |||
virtual void RemoveAll(); | virtual void RemoveAll(); | |||
virtual void Activate(TSocket *sock); | virtual void Activate(TSocket *sock); | |||
virtual void ActivateAll(); | virtual void ActivateAll(); | |||
virtual void DeActivate(TSocket *sock); | virtual void DeActivate(TSocket *sock); | |||
virtual void DeActivateAll(); | virtual void DeActivateAll(); | |||
virtual void Ready(TSocket *sock); // *SIGNAL* | virtual void Ready(TSocket *sock); // *SIGNAL* | |||
void Interrupt() { fInterrupt = kTRUE; } | void Interrupt() { fInterrupt = kTRUE; } | |||
void ResetInterrupt() { fInterrupt = kFALSE; } | ||||
TSocket *Select(); | TSocket *Select(); | |||
TSocket *Select(Long_t timeout); | TSocket *Select(Long_t timeout); | |||
Int_t Select(TList *rdready, TList *wrready, Long_t timeout); | Int_t Select(TList *rdready, TList *wrready, Long_t timeout); | |||
Int_t GetActive(Long_t timeout = -1) const; | Int_t GetActive(Long_t timeout = -1) const; | |||
Int_t GetDeActive() const; | Int_t GetDeActive() const; | |||
TList *GetListOfActives() const; | TList *GetListOfActives() const; | |||
TList *GetListOfDeActives() const; | TList *GetListOfDeActives() const; | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TMultiGraph.h | TMultiGraph.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: TMultiGraph.h 31207 2009-11-16 16:52:00Z moneta $ | // @(#)root/hist:$Id: TMultiGraph.h 31491 2009-12-01 18:11:55Z moneta $ | |||
// Author: Rene Brun 12/10/2000 | // Author: Rene Brun 12/10/2000 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 34 | skipping to change at line 34 | |||
#include "TNamed.h" | #include "TNamed.h" | |||
#endif | #endif | |||
#include "TF1.h" | #include "TF1.h" | |||
class TH1F; | class TH1F; | |||
class TAxis; | class TAxis; | |||
class TBrowser; | class TBrowser; | |||
class TGraph; | class TGraph; | |||
#include "TFitResultPtr.h" | ||||
class TMultiGraph : public TNamed { | class TMultiGraph : public TNamed { | |||
protected: | protected: | |||
TList *fGraphs; //Pointer to list of TGraphs | TList *fGraphs; //Pointer to list of TGraphs | |||
TList *fFunctions; //Pointer to list of functions (fits and user) | TList *fFunctions; //Pointer to list of functions (fits and user) | |||
TH1F *fHistogram; //Pointer to histogram used for drawing axis | TH1F *fHistogram; //Pointer to histogram used for drawing axis | |||
Double_t fMaximum; //Maximum value for plotting along y | Double_t fMaximum; //Maximum value for plotting along y | |||
Double_t fMinimum; //Minimum value for plotting along y | Double_t fMinimum; //Minimum value for plotting along y | |||
TMultiGraph(const TMultiGraph&); | TMultiGraph(const TMultiGraph&); | |||
skipping to change at line 56 | skipping to change at line 58 | |||
public: | public: | |||
TMultiGraph(); | TMultiGraph(); | |||
TMultiGraph(const char *name, const char *title); | TMultiGraph(const char *name, const char *title); | |||
virtual ~TMultiGraph(); | virtual ~TMultiGraph(); | |||
virtual void Add(TGraph *graph, Option_t *chopt=""); | virtual void Add(TGraph *graph, Option_t *chopt=""); | |||
virtual void Add(TMultiGraph *multigraph, Option_t *chopt=""); | virtual void Add(TMultiGraph *multigraph, Option_t *chopt=""); | |||
virtual void Browse(TBrowser *b); | virtual void Browse(TBrowser *b); | |||
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py); | virtual Int_t DistancetoPrimitive(Int_t px, Int_t py); | |||
virtual void Draw(Option_t *chopt=""); | virtual void Draw(Option_t *chopt=""); | |||
virtual Int_t Fit(const char *formula ,Option_t *option="" ,Option_t | virtual TFitResultPtr Fit(const char *formula ,Option_t *option="" ,Opti | |||
*goption="", Axis_t xmin=0, Axis_t xmax=0); | on_t *goption="", Axis_t xmin=0, Axis_t xmax=0); | |||
virtual Int_t Fit(TF1 *f1 ,Option_t *option="" ,Option_t *goption="" | virtual TFitResultPtr Fit(TF1 *f1 ,Option_t *option="" ,Option_t *goptio | |||
, Axis_t rxmin=0, Axis_t rxmax=0); | n="", Axis_t rxmin=0, Axis_t rxmax=0); | |||
virtual void FitPanel(); // *MENU* | virtual void FitPanel(); // *MENU* | |||
virtual Option_t *GetGraphDrawOption(const TGraph *gr) const; | virtual Option_t *GetGraphDrawOption(const TGraph *gr) const; | |||
virtual void LeastSquareLinearFit(Int_t ndata, Double_t &a0, Double _t &a1, Int_t &ifail, Double_t xmin, Double_t xmax); | virtual void LeastSquareLinearFit(Int_t ndata, Double_t &a0, Double _t &a1, Int_t &ifail, Double_t xmin, Double_t xmax); | |||
virtual void LeastSquareFit(Int_t m, Double_t *a, Double_t xmin, Do uble_t xmax); | virtual void LeastSquareFit(Int_t m, Double_t *a, Double_t xmin, Do uble_t xmax); | |||
virtual void InitPolynom(Double_t xmin, Double_t xmax); | virtual void InitPolynom(Double_t xmin, Double_t xmax); | |||
virtual void InitExpo(Double_t xmin, Double_t xmax); | virtual void InitExpo(Double_t xmin, Double_t xmax); | |||
virtual void InitGaus(Double_t xmin, Double_t xmax); | virtual void InitGaus(Double_t xmin, Double_t xmax); | |||
TH1F *GetHistogram() const; | TH1F *GetHistogram() const; | |||
TF1 *GetFunction(const char *name) const; | TF1 *GetFunction(const char *name) const; | |||
TList *GetListOfGraphs() const { return fGraphs; } | TList *GetListOfGraphs() const { return fGraphs; } | |||
End of changes. 3 change blocks. | ||||
5 lines changed or deleted | 7 lines changed or added | |||
TNeuronInputSum.h | TNeuronInputSum.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: TNeuronInputSum.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: TNeuronInputSum.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Matt Jachowski | // Author: Matt Jachowski | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : TMVA::TNeuronInputSum * | * Class : TMVA::TNeuronInputSum * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* TNeuron input calculator -- calculates the weighted sum of inputs. * | * TNeuron input calculator -- calculates the weighted sum of inputs. * | |||
skipping to change at line 62 | skipping to change at line 62 | |||
public: | public: | |||
TNeuronInputSum() {} | TNeuronInputSum() {} | |||
virtual ~TNeuronInputSum() {} | virtual ~TNeuronInputSum() {} | |||
// calculate input value for neuron | // calculate input value for neuron | |||
Double_t GetInput( const TNeuron* neuron ) const { | Double_t GetInput( const TNeuron* neuron ) const { | |||
if (neuron->IsInputNeuron()) return 0; | if (neuron->IsInputNeuron()) return 0; | |||
Double_t result = 0; | Double_t result = 0; | |||
Int_t npl = neuron->NumPreLinks(); | Int_t npl = neuron->NumPreLinks(); | |||
for (Int_t i=0; i < npl; i++) { | for (Int_t i=0; i < npl; i++) { | |||
result += neuron->PreLinkAt(i)->GetWeightedValue(); | result += neuron->PreLinkAt(i)->GetWeightedValue(); | |||
} | } | |||
return result; | return result; | |||
} | } | |||
// name of class | // name of class | |||
TString GetName() { return "Sum of weighted activations"; } | TString GetName() { return "Sum of weighted activations"; } | |||
ClassDef(TNeuronInputSum,0) // Calculates weighted sum of neuron inpu ts | ClassDef(TNeuronInputSum,0) // Calculates weighted sum of neuron inpu ts | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TPacketizerUnit.h | TPacketizerUnit.h | |||
---|---|---|---|---|
// @(#)root/proofplayer:$Id: TPacketizerUnit.h 30870 2009-10-26 15:16:00Z g anis $ | // @(#)root/proofplayer:$Id: TPacketizerUnit.h 31840 2009-12-11 10:01:17Z g anis $ | |||
// Author: Long Tran-Thanh 22/07/07 | // Author: Long Tran-Thanh 22/07/07 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 48 | skipping to change at line 48 | |||
class TStopwatch; | class TStopwatch; | |||
class TPacketizerUnit : public TVirtualPacketizer { | class TPacketizerUnit : public TVirtualPacketizer { | |||
public: // public because of Sun CC bug | public: // public because of Sun CC bug | |||
class TSlaveStat; | class TSlaveStat; | |||
private: | private: | |||
TList *fPackets; // all processed packets | TList *fPackets; // all processed packets | |||
TMap *fSlaveStats; // Slave status, keyed by correspondig TSl ave | TMap *fSlaveStats; // Slave status, keyed by correspondig TSl ave | |||
Long64_t fPacketSize; // Global base packet size | ||||
// It can be set with PROOF_PacketSize | ||||
// parameter, in the input list. | ||||
Int_t fPacketAsAFraction; // Used to calculate the packet size | ||||
// fPacketSize = fTotalEntries / (fPacketA | ||||
sAFraction * nslaves) | ||||
// fPacketAsAFraction can be interpreted a | ||||
s follows: | ||||
// assuming all slaves have equal processi | ||||
ng rate, packet size | ||||
// is (#events processed by 1 slave) / fPa | ||||
cketSizeAsAFraction. | ||||
// It can be set with PROOF_PacketAsAFract | ||||
ion in input list. | ||||
TStopwatch *fStopwatch; // For measuring the start time of each pa cket | TStopwatch *fStopwatch; // For measuring the start time of each pa cket | |||
Long64_t fProcessing; // Event being processed | Long64_t fProcessing; // Event being processed | |||
Long64_t fAssigned; // no. entries processed or being processe d. | Long64_t fAssigned; // no. entries processed or being processe d. | |||
Double_t fTimeLimit; // Packet time limit | Double_t fTimeLimit; // Packet time limit | |||
TPacketizerUnit(); | TPacketizerUnit(); | |||
TPacketizerUnit(const TPacketizerUnit&); // no implementation, will generate | TPacketizerUnit(const TPacketizerUnit&); // no implementation, will generate | |||
void operator=(const TPacketizerUnit&); // error on accidental usage | void operator=(const TPacketizerUnit&); // error on accidental usage | |||
public: | public: | |||
End of changes. 2 change blocks. | ||||
15 lines changed or deleted | 1 lines changed or added | |||
TParticle.h | TParticle.h | |||
---|---|---|---|---|
// @(#)root/eg:$Id: TParticle.h 28998 2009-06-15 12:47:44Z brun $ | // @(#)root/eg:$Id: TParticle.h 31515 2009-12-03 08:36:59Z brun $ | |||
// Author: Rene Brun , Federico Carminati 26/04/99 | // Author: Rene Brun , Federico Carminati 26/04/99 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
skipping to change at line 132 | skipping to change at line 132 | |||
Double_t Pz () const { return fPz; } | Double_t Pz () const { return fPz; } | |||
Double_t P () const { return TMath::Sqrt( fPx*fPx+fPy*fPy+fPz*fPz); } | Double_t P () const { return TMath::Sqrt( fPx*fPx+fPy*fPy+fPz*fPz); } | |||
Double_t Pt () const { return TMath::Sqrt( fPx*fPx+fPy*fPy); } | Double_t Pt () const { return TMath::Sqrt( fPx*fPx+fPy*fPy); } | |||
Double_t Energy () const { return fE; } | Double_t Energy () const { return fE; } | |||
Double_t Eta () const | Double_t Eta () const | |||
{ | { | |||
Double_t pmom = P(); | Double_t pmom = P(); | |||
if (pmom != TMath::Abs(fPz)) return 0.5*TMath::Log((pmom+fPz)/(pmom-f Pz)); | if (pmom != TMath::Abs(fPz)) return 0.5*TMath::Log((pmom+fPz)/(pmom-f Pz)); | |||
else return 1.e30; | else return 1.e30; | |||
} | } | |||
Double_t Y () const | ||||
{ | ||||
if (fE != TMath::Abs(fPz)) return 0.5*TMath::Log((fE+fPz)/(fE-fPz)) | ||||
; | ||||
else return 1.e30; | ||||
} | ||||
Double_t Phi () const { return TMath::Pi()+TMath::ATan2(-fPy,- fPx); } // note that Phi() returns an angle between 0 and 2pi | Double_t Phi () const { return TMath::Pi()+TMath::ATan2(-fPy,- fPx); } // note that Phi() returns an angle between 0 and 2pi | |||
Double_t Theta () const { return (fPz==0)?TMath::PiOver2():TMath ::ACos(fPz/P()); } | Double_t Theta () const { return (fPz==0)?TMath::PiOver2():TMath ::ACos(fPz/P()); } | |||
// setters | // setters | |||
void SetFirstMother (int code) { fMother[0] = code ; } | void SetFirstMother (int code) { fMother[0] = code ; } | |||
void SetMother (int i, int code) { fMother[i] = code ; } | void SetMother (int i, int code) { fMother[i] = code ; } | |||
void SetLastMother (int code) { fMother[1] = code ; } | void SetLastMother (int code) { fMother[1] = code ; } | |||
void SetFirstDaughter(int code) { fDaughter[0] = code ; } | void SetFirstDaughter(int code) { fDaughter[0] = code ; } | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 7 lines changed or added | |||
TProof.h | TProof.h | |||
---|---|---|---|---|
// @(#)root/proof:$Id: TProof.h 30995 2009-11-05 17:41:03Z ganis $ | // @(#)root/proof:$Id: TProof.h 31520 2009-12-03 12:58:41Z brun $ | |||
// Author: Fons Rademakers 13/02/97 | // Author: Fons Rademakers 13/02/97 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 121 | skipping to change at line 121 | |||
// 17 -> 18: support for reconnection on daemon restarts | // 17 -> 18: support for reconnection on daemon restarts | |||
// 18 -> 19: TProofProgressStatus used in kPROOF_PROGRESS, kPROOF_STOPPROCE SS | // 18 -> 19: TProofProgressStatus used in kPROOF_PROGRESS, kPROOF_STOPPROCE SS | |||
// and kPROOF_GETNEXTPACKET messages in Master - worker communica tion | // and kPROOF_GETNEXTPACKET messages in Master - worker communica tion | |||
// 19 -> 20: Fix the asynchronous mode (required changes in some messages) | // 19 -> 20: Fix the asynchronous mode (required changes in some messages) | |||
// 20 -> 21: Add support for session queuing | // 20 -> 21: Add support for session queuing | |||
// 21 -> 22: Add support for switching from sync to async while running ('C trl-Z' functionality) | // 21 -> 22: Add support for switching from sync to async while running ('C trl-Z' functionality) | |||
// 22 -> 23: New dataset features (default tree name; classification per fi leserver) | // 22 -> 23: New dataset features (default tree name; classification per fi leserver) | |||
// 23 -> 24: Merging optimization | // 23 -> 24: Merging optimization | |||
// 24 -> 25: Handling of 'data' dir; group information | // 24 -> 25: Handling of 'data' dir; group information | |||
// 25 -> 26: Use new TProofProgressInfo class | // 25 -> 26: Use new TProofProgressInfo class | |||
// 26 -> 27: Use new file for updating the session status | ||||
// PROOF magic constants | // PROOF magic constants | |||
const Int_t kPROOF_Protocol = 26; // protocol versi on number | const Int_t kPROOF_Protocol = 27; // protocol versi on number | |||
const Int_t kPROOF_Port = 1093; // IANA registere d PROOF port | const Int_t kPROOF_Port = 1093; // IANA registere d PROOF port | |||
const char* const kPROOF_ConfFile = "proof.conf"; // default config file | const char* const kPROOF_ConfFile = "proof.conf"; // default config file | |||
const char* const kPROOF_ConfDir = "/usr/local/root"; // default c onfig dir | const char* const kPROOF_ConfDir = "/usr/local/root"; // default c onfig dir | |||
const char* const kPROOF_WorkDir = ".proof"; // default workin g directory | const char* const kPROOF_WorkDir = ".proof"; // default workin g directory | |||
const char* const kPROOF_CacheDir = "cache"; // file cache dir , under WorkDir | const char* const kPROOF_CacheDir = "cache"; // file cache dir , under WorkDir | |||
const char* const kPROOF_PackDir = "packages"; // package dir, u nder WorkDir | const char* const kPROOF_PackDir = "packages"; // package dir, u nder WorkDir | |||
const char* const kPROOF_QueryDir = "queries"; // query dir, und er WorkDir | const char* const kPROOF_QueryDir = "queries"; // query dir, und er WorkDir | |||
const char* const kPROOF_DataSetDir = "datasets"; // dataset dir, u nder WorkDir | const char* const kPROOF_DataSetDir = "datasets"; // dataset dir, u nder WorkDir | |||
const char* const kPROOF_DataDir = "data"; // dir for produc ed data, under WorkDir | const char* const kPROOF_DataDir = "data"; // dir for produc ed data, under WorkDir | |||
const char* const kPROOF_CacheLockFile = "proof-cache-lock-"; // cache lock file | const char* const kPROOF_CacheLockFile = "proof-cache-lock-"; // cache lock file | |||
skipping to change at line 243 | skipping to change at line 244 | |||
void SetStatus(ESlaveStatus stat) { fStatus = stat; } | void SetStatus(ESlaveStatus stat) { fStatus = stat; } | |||
void SetSysInfo(SysInfo_t si); | void SetSysInfo(SysInfo_t si); | |||
Int_t Compare(const TObject *obj) const; | Int_t Compare(const TObject *obj) const; | |||
Bool_t IsSortable() const { return kTRUE; } | Bool_t IsSortable() const { return kTRUE; } | |||
void Print(Option_t *option="") const; | void Print(Option_t *option="") const; | |||
ClassDef(TSlaveInfo,3) //basic info on slave | ClassDef(TSlaveInfo,3) //basic info on slave | |||
}; | }; | |||
// Merger info class | ||||
class TMergerInfo : public TObject { | ||||
private: | ||||
TSlave *fMerger; // Slave that acts as merger | ||||
Int_t fPort; // Port number, on which it accepts output | ||||
s from other workers | ||||
Int_t fMergedObjects; // Total number of objects it must accept | ||||
from other workers | ||||
// (-1 == not set yet) | ||||
Int_t fWorkersToMerge; // Number of workers that are merged on th | ||||
is merger | ||||
// (does not change during time) | ||||
Int_t fMergedWorkers; // Current number of already merged worker | ||||
s | ||||
// (does change during time as workers are | ||||
being merged) | ||||
TList *fWorkers; // List of already assigned workers | ||||
Bool_t fIsActive; // Merger state | ||||
public: | ||||
TMergerInfo(TSlave *t, Int_t port, Int_t forHowManyWorkers) : | ||||
fMerger(t), fPort(port), fMergedObjects(0), fWorkersToMerge( | ||||
forHowManyWorkers), | ||||
fMergedWorkers(0), fWorkers(0), fIsActive(kTRUE) { } | ||||
virtual ~TMergerInfo(); | ||||
void AddWorker(TSlave *sl); | ||||
TList *GetWorkers() { return fWorkers; } | ||||
TSlave *GetMerger() { return fMerger; } | ||||
Int_t GetPort() { return fPort; } | ||||
Int_t GetWorkersToMerge() { return fWorkersToMerge; } | ||||
Int_t GetMergedWorkers() { return fMergedWorkers; } | ||||
Int_t GetMergedObjects() { return fMergedObjects; } | ||||
void SetMergedWorker(); | ||||
void AddMergedObjects(Int_t objects) { fMergedObjects += objects; | ||||
} | ||||
Bool_t AreAllWorkersAssigned(); | ||||
Bool_t AreAllWorkersMerged(); | ||||
void Deactivate() { fIsActive = kFALSE; } | ||||
Bool_t IsActive() { return fIsActive; } | ||||
ClassDef(TMergerInfo,0) // Basic info on merger, i.e. worker se | ||||
rving as merger | ||||
}; | ||||
// Small auxilliary class for merging progress notification | // Small auxilliary class for merging progress notification | |||
class TProofMergePrg { | class TProofMergePrg { | |||
private: | private: | |||
TString fExp; | TString fExp; | |||
Int_t fIdx; | Int_t fIdx; | |||
Int_t fNWrks; | Int_t fNWrks; | |||
static char fgCr[4]; | static char fgCr[4]; | |||
public: | public: | |||
TProofMergePrg() : fExp(), fIdx(-1), fNWrks(-1) { } | TProofMergePrg() : fExp(), fIdx(-1), fNWrks(-1) { } | |||
skipping to change at line 313 | skipping to change at line 359 | |||
kAskUser = 0x0 | kAskUser = 0x0 | |||
}; | }; | |||
enum ERegisterOpt { | enum ERegisterOpt { | |||
kFailIfExists = 0, | kFailIfExists = 0, | |||
kOverwriteIfExists = 1, | kOverwriteIfExists = 1, | |||
kMergeIfExists = 2 | kMergeIfExists = 2 | |||
}; | }; | |||
enum EUploadDataSetAnswer { | enum EUploadDataSetAnswer { | |||
kError = -1, | kError = -1, | |||
kDataSetExists = -2, | kDataSetExists = -2, | |||
kFail = -3 | kFail = -3 | |||
}; | }; | |||
enum EUploadPackageOpt { | enum EUploadPackageOpt { | |||
kUntar = 0x0, //Untar over existing dir [default] | kUntar = 0x0, //Untar over existing dir [default] | |||
kRemoveOld = 0x1 //Remove existing dir with same name | kRemoveOld = 0x1 //Remove existing dir with same name | |||
}; | }; | |||
enum ERunStatus { | enum ERunStatus { | |||
kRunning = 0, // Normal status | kRunning = 0, // Normal status | |||
kStopped = 1, // After the stop button has been presse d | kStopped = 1, // After the stop button has been presse d | |||
kAborted = 2 // After the abort button has been press ed | kAborted = 2 // After the abort button has been press ed | |||
}; | }; | |||
enum ESubMerger { | ||||
kOutputSize = 1, //Number of objects in worker's output l | ||||
ist | ||||
kSendOutput = 2, //Naster asks worker for its output list | ||||
kBeMerger = 3, //Master tells worker to be a merger | ||||
kMergerDown = 4, //Merger cannot serve | ||||
kStopMerging = 5, //Master tells worker to stop merging (a | ||||
nd return output) | ||||
kOutputSent = 6 //Worker reports sending its output to g | ||||
iven worker | ||||
}; | ||||
private: | private: | |||
enum EUrgent { | enum EUrgent { | |||
kLocalInterrupt = -1, | kLocalInterrupt = -1, | |||
kPing = 0, | kPing = 0, | |||
kHardInterrupt = 1, | kHardInterrupt = 1, | |||
kSoftInterrupt, | kSoftInterrupt, | |||
kShutdownInterrupt | kShutdownInterrupt | |||
}; | }; | |||
enum EProofCacheCommands { | enum EProofCacheCommands { | |||
kShowCache = 1, | kShowCache = 1, | |||
skipping to change at line 474 | skipping to change at line 529 | |||
TList *fInputData; //Input data objects sent over via fil e | TList *fInputData; //Input data objects sent over via fil e | |||
TString fInputDataFile; //File with input data objects | TString fInputDataFile; //File with input data objects | |||
PrintProgress_t fPrintProgress; //Function function to display progres s info in batch mode | PrintProgress_t fPrintProgress; //Function function to display progres s info in batch mode | |||
TVirtualMutex *fCloseMutex; // Avoid crashes in MarkBad or alike w hile closing | TVirtualMutex *fCloseMutex; // Avoid crashes in MarkBad or alike w hile closing | |||
TList *fLoadedMacros; // List of loaded macros (just file na mes) | TList *fLoadedMacros; // List of loaded macros (just file na mes) | |||
static TList *fgProofEnvList; // List of TNameds defining environmen t | static TList *fgProofEnvList; // List of TNameds defining environmen t | |||
// variables to pass to proofserv | // variables to pass to proofserv | |||
Bool_t fMergersSet; // Indicates, if the following variabl | ||||
es have been initialized properly | ||||
Int_t fMergersCount; | ||||
Int_t fWorkersToMerge; // Current total number of workers, wh | ||||
ich have not been yet assigned to any merger | ||||
Int_t fLastAssignedMerger; | ||||
TList *fMergers; | ||||
Bool_t fFinalizationRunning; | ||||
Int_t fRedirectNext; | ||||
static TPluginHandler *fgLogViewer; // Log dialog box plugin | static TPluginHandler *fgLogViewer; // Log dialog box plugin | |||
protected: | protected: | |||
enum ESlaves { kAll, kActive, kUnique, kAllUnique }; | enum ESlaves { kAll, kActive, kUnique, kAllUnique }; | |||
Bool_t fMasterServ; //true if we are a master server | Bool_t fMasterServ; //true if we are a master server | |||
TUrl fUrl; //Url of the master | TUrl fUrl; //Url of the master | |||
TString fConfFile; //file containing config information | TString fConfFile; //file containing config information | |||
TString fConfDir; //directory containing cluster config i nformation | TString fConfDir; //directory containing cluster config i nformation | |||
TString fImage; //master's image name | TString fImage; //master's image name | |||
skipping to change at line 560 | skipping to change at line 624 | |||
Int_t BroadcastGroupPriority(const char *grp, Int_t priority, ESlaves list = kAllUnique); | Int_t BroadcastGroupPriority(const char *grp, Int_t priority, ESlaves list = kAllUnique); | |||
Int_t BroadcastGroupPriority(const char *grp, Int_t priority, TList * workers); | Int_t BroadcastGroupPriority(const char *grp, Int_t priority, TList * workers); | |||
Int_t BroadcastObject(const TObject *obj, Int_t kind, TList *slaves); | Int_t BroadcastObject(const TObject *obj, Int_t kind, TList *slaves); | |||
Int_t BroadcastObject(const TObject *obj, Int_t kind = kMESS_OBJECT, ESlaves list = kActive); | Int_t BroadcastObject(const TObject *obj, Int_t kind = kMESS_OBJECT, ESlaves list = kActive); | |||
Int_t BroadcastRaw(const void *buffer, Int_t length, TList *slaves); | Int_t BroadcastRaw(const void *buffer, Int_t length, TList *slaves); | |||
Int_t BroadcastRaw(const void *buffer, Int_t length, ESlaves list = k Active); | Int_t BroadcastRaw(const void *buffer, Int_t length, ESlaves list = k Active); | |||
Int_t Collect(const TSlave *sl, Long_t timeout = -1, Int_t endtype = -1); | Int_t Collect(const TSlave *sl, Long_t timeout = -1, Int_t endtype = -1); | |||
Int_t Collect(TMonitor *mon, Long_t timeout = -1, Int_t endtype = -1) ; | Int_t Collect(TMonitor *mon, Long_t timeout = -1, Int_t endtype = -1) ; | |||
Int_t CollectInputFrom(TSocket *s, Int_t endtype = -1); | Int_t CollectInputFrom(TSocket *s, Int_t endtype = -1); | |||
Int_t HandleInputMessage(TSlave *wrk, TMessage *m); | Int_t HandleInputMessage(TSlave *wrk, TMessage *m); | |||
void HandleSubmerger(TMessage *mess, TSlave *sl); | ||||
void SetMonitor(TMonitor *mon = 0, Bool_t on = kTRUE); | void SetMonitor(TMonitor *mon = 0, Bool_t on = kTRUE); | |||
void ReleaseMonitor(TMonitor *mon); | void ReleaseMonitor(TMonitor *mon); | |||
void FindUniqueSlaves(); | void FindUniqueSlaves(); | |||
TSlave *FindSlave(TSocket *s) const; | TSlave *FindSlave(TSocket *s) const; | |||
TList *GetListOfSlaves() const { return fSlaves; } | TList *GetListOfSlaves() const { return fSlaves; } | |||
TList *GetListOfInactiveSlaves() const { return fInactiveSlaves; } | TList *GetListOfInactiveSlaves() const { return fInactiveSlaves; } | |||
TList *GetListOfUniqueSlaves() const { return fUniqueSlaves; } | TList *GetListOfUniqueSlaves() const { return fUniqueSlaves; } | |||
TList *GetListOfBadSlaves() const { return fBadSlaves; } | TList *GetListOfBadSlaves() const { return fBadSlaves; } | |||
skipping to change at line 593 | skipping to change at line 658 | |||
void MarkBad(TSlave *wrk, const char *reason = 0); | void MarkBad(TSlave *wrk, const char *reason = 0); | |||
void MarkBad(TSocket *s, const char *reason = 0); | void MarkBad(TSocket *s, const char *reason = 0); | |||
void TerminateWorker(TSlave *wrk); | void TerminateWorker(TSlave *wrk); | |||
void TerminateWorker(const char *ord); | void TerminateWorker(const char *ord); | |||
void ActivateAsyncInput(); | void ActivateAsyncInput(); | |||
void DeActivateAsyncInput(); | void DeActivateAsyncInput(); | |||
Int_t GetQueryReference(Int_t qry, TString &ref); | Int_t GetQueryReference(Int_t qry, TString &ref); | |||
void PrintProgress(Long64_t total, Long64_t processed, Float_t procT ime = -1.); | void PrintProgress(Long64_t total, Long64_t processed, Float_t procT ime = -1.); | |||
void ResetMergePrg(); | // Managing mergers | |||
Bool_t CreateMerger(TSlave *sl, Int_t port); | ||||
void RedirectWorker(TSocket *s, TSlave * sl, Int_t output_size); | ||||
Int_t GetActiveMergersCount(); | ||||
Int_t FindNextFreeMerger(); | ||||
void ResetMergers() { fMergersSet = kFALSE; } | ||||
void AskForOutput(TSlave *sl); | ||||
void FinalizationDone() { fFinalizationRunning = kFALSE; } | ||||
void ResetMergePrg(); | ||||
void ParseConfigField(const char *config); | void ParseConfigField(const char *config); | |||
Bool_t Prompt(const char *p); | Bool_t Prompt(const char *p); | |||
void ClearDataProgress(Int_t r, Int_t t); | void ClearDataProgress(Int_t r, Int_t t); | |||
protected: | protected: | |||
TProof(); // For derived classes to use | TProof(); // For derived classes to use | |||
Int_t Init(const char *masterurl, const char *conffile, | Int_t Init(const char *masterurl, const char *conffile, | |||
const char *confdir, Int_t loglevel, | const char *confdir, Int_t loglevel, | |||
const char *alias = 0); | const char *alias = 0); | |||
End of changes. 11 change blocks. | ||||
5 lines changed or deleted | 91 lines changed or added | |||
TProofDebug.h | TProofDebug.h | |||
---|---|---|---|---|
// @(#)root/proof:$Id: TProofDebug.h 30174 2009-09-15 14:24:56Z ganis $ | // @(#)root/proof:$Id: TProofDebug.h 31505 2009-12-02 13:20:06Z brun $ | |||
// Author: Maarten Ballintijn 19/6/2002 | // Author: Maarten Ballintijn 19/6/2002 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 45 | skipping to change at line 45 | |||
kInput = 16, | kInput = 16, | |||
kGlobal = 32, | kGlobal = 32, | |||
kPackage = 64, | kPackage = 64, | |||
kFeedback = 128, | kFeedback = 128, | |||
kCondor = 256, | kCondor = 256, | |||
kDraw = 512, | kDraw = 512, | |||
kAsyn = 1024, | kAsyn = 1024, | |||
kCache = 2048, | kCache = 2048, | |||
kCollect = 4096, | kCollect = 4096, | |||
kDataset = 8192, | kDataset = 8192, | |||
kSubmerger = 16384, | ||||
kAll = 0xFFFFFFFF | kAll = 0xFFFFFFFF | |||
}; | }; | |||
}; | }; | |||
R__EXTERN TProofDebug::EProofDebugMask gProofDebugMask; | R__EXTERN TProofDebug::EProofDebugMask gProofDebugMask; | |||
R__EXTERN Int_t gProofDebugLevel; | R__EXTERN Int_t gProofDebugLevel; | |||
#define PDB(mask,level) \ | #define PDB(mask,level) \ | |||
if ((TProofDebug::mask & gProofDebugMask) && gProofDebugLevel >= (level) ) | if ((TProofDebug::mask & gProofDebugMask) && gProofDebugLevel >= (level) ) | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TProofLite.h | TProofLite.h | |||
---|---|---|---|---|
// @(#)root/proof:$Id: TProofLite.h 29133 2009-06-22 12:28:50Z brun $ | // @(#)root/proof:$Id: TProofLite.h 31719 2009-12-09 10:31:17Z ganis $ | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TProofLite | #ifndef ROOT_TProofLite | |||
#define ROOT_TProofLite | #define ROOT_TProofLite | |||
skipping to change at line 56 | skipping to change at line 56 | |||
TString fSockPath; // UNIX socket path for communication with worker s | TString fSockPath; // UNIX socket path for communication with worker s | |||
TServerSocket *fServSock; // Server socket to accept call backs | TServerSocket *fServSock; // Server socket to accept call backs | |||
Bool_t fForkStartup; // Startup N-1 workers forking the first worker | Bool_t fForkStartup; // Startup N-1 workers forking the first worker | |||
TProofLockPath *fCacheLock; //cache dir locker | TProofLockPath *fCacheLock; //cache dir locker | |||
TProofLockPath *fQueryLock; // Query dir locker | TProofLockPath *fQueryLock; // Query dir locker | |||
TQueryResultManager *fQMgr; // Query-result manager | TQueryResultManager *fQMgr; // Query-result manager | |||
TDataSetManager* fDataSetManager; // dataset manager | TDataSetManager* fDataSetManager; // dataset manager | |||
static Int_t fgWrksMax; // Max number of workers | ||||
TProofLite(const TProofLite &); // not implemented | TProofLite(const TProofLite &); // not implemented | |||
void operator=(const TProofLite &); // idem | void operator=(const TProofLite &); // idem | |||
Int_t CleanupSandbox(); | Int_t CleanupSandbox(); | |||
Int_t CreateSandbox(); | Int_t CreateSandbox(); | |||
void NotifyStartUp(const char *action, Int_t done, Int_t tot); | void NotifyStartUp(const char *action, Int_t done, Int_t tot); | |||
Int_t SetProofServEnv(const char *ord); | Int_t SetProofServEnv(const char *ord); | |||
Int_t InitDataSetManager(); | Int_t InitDataSetManager(); | |||
void ResolveKeywords(TString &s, const char *logfile); | ||||
void SendInputDataFile(); | void SendInputDataFile(); | |||
protected: | protected: | |||
TProofLite() : TProof() { } // For derived classes to use | TProofLite() : TProof() { } // For derived classes to use | |||
Int_t CreateSymLinks(TList *files); | Int_t CreateSymLinks(TList *files); | |||
TList *GetDataSet(const char *name); | ||||
Int_t Init(const char *masterurl, const char *conffile, | Int_t Init(const char *masterurl, const char *conffile, | |||
const char *confdir, Int_t loglevel, | const char *confdir, Int_t loglevel, | |||
const char *alias = 0); | const char *alias = 0); | |||
TProofQueryResult *MakeQueryResult(Long64_t nent, const char *opt, | TProofQueryResult *MakeQueryResult(Long64_t nent, const char *opt, | |||
Long64_t fst, TDSet *dset, | Long64_t fst, TDSet *dset, | |||
const char *selec); | const char *selec); | |||
void SetQueryRunning(TProofQueryResult *pq); | void SetQueryRunning(TProofQueryResult *pq); | |||
Int_t SetupWorkers(Int_t opt = 0, TList *wrks = 0); | Int_t SetupWorkers(Int_t opt = 0, TList *wrks = 0); | |||
public: | public: | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 4 lines changed or added | |||
TProofOutputFile.h | TProofOutputFile.h | |||
---|---|---|---|---|
// @(#)root/proof:$Id: TProofOutputFile.h 30791 2009-10-19 07:07:32Z ganis $ | // @(#)root/proof:$Id: TProofOutputFile.h 31830 2009-12-11 08:54:32Z ganis $ | |||
// Author: Long Tran-Thanh 14/09/07 | // Author: Long Tran-Thanh 14/09/07 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 100 | skipping to change at line 100 | |||
TFileMerger *GetFileMerger(Bool_t local = kFALSE); | TFileMerger *GetFileMerger(Bool_t local = kFALSE); | |||
const char *GetFileName() const { return fFileName; } | const char *GetFileName() const { return fFileName; } | |||
const char *GetLocalHost() const { return fLocalHost; } | const char *GetLocalHost() const { return fLocalHost; } | |||
const char *GetOptionsAnchor() const { return fOptionsAnchor; } | const char *GetOptionsAnchor() const { return fOptionsAnchor; } | |||
const char *GetOutputFileName() const { return fOutputFileName; } | const char *GetOutputFileName() const { return fOutputFileName; } | |||
const char *GetWorkerOrdinal() const { return fWorkerOrdinal; } | const char *GetWorkerOrdinal() const { return fWorkerOrdinal; } | |||
ERunType GetRunType() const { return fRunType; } | ERunType GetRunType() const { return fRunType; } | |||
UInt_t GetTypeOpt() const { return fTypeOpt; } | UInt_t GetTypeOpt() const { return fTypeOpt; } | |||
Bool_t IsMerge() const { return (fRunType == kMerge) ? kTRUE : kFAL SE; } | Bool_t IsMerge() const { return (fRunType == kMerge) ? kTRUE : kFAL SE; } | |||
Bool_t IsMerged() const { return fMerged; } | ||||
Bool_t IsRegister() const { return ((fTypeOpt & kRegister) || (fTyp eOpt & kVerify)) ? kTRUE : kFALSE; } | Bool_t IsRegister() const { return ((fTypeOpt & kRegister) || (fTyp eOpt & kVerify)) ? kTRUE : kFALSE; } | |||
Int_t AdoptFile(TFile *f); // Adopt a TFile already o pen | Int_t AdoptFile(TFile *f); // Adopt a TFile already o pen | |||
TFile* OpenFile(const char *opt); // Open a file with the sp ecified name in fFileName1 | TFile* OpenFile(const char *opt); // Open a file with the sp ecified name in fFileName1 | |||
Long64_t Merge(TCollection *list); | Long64_t Merge(TCollection *list); | |||
void Print(Option_t *option = "") const; | void Print(Option_t *option = "") const; | |||
void SetOutputFileName(const char *name); | void SetOutputFileName(const char *name); | |||
void ResetFileCollection() { fDataSet = 0; } | void ResetFileCollection() { fDataSet = 0; } | |||
ClassDef(TProofOutputFile,4) // Wrapper class to steer the merging of fi les produced on workers | ClassDef(TProofOutputFile,4) // Wrapper class to steer the merging of fi les produced on workers | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TProofPlayer.h | TProofPlayer.h | |||
---|---|---|---|---|
// @(#)root/proofplayer:$Id: TProofPlayer.h 30900 2009-10-28 14:10:02Z gani s $ | // @(#)root/proofplayer:$Id: TProofPlayer.h 31505 2009-12-02 13:20:06Z brun $ | |||
// Author: Maarten Ballintijn 07/01/02 | // Author: Maarten Ballintijn 07/01/02 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2001, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2001, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 110 | skipping to change at line 110 | |||
TTimer *fDispatchTimer; //Dispatch pending events while process ing | TTimer *fDispatchTimer; //Dispatch pending events while process ing | |||
static THashList *fgDrawInputPars; // List of input parameters to be ke pt on drawing actions | static THashList *fgDrawInputPars; // List of input parameters to be ke pt on drawing actions | |||
void *GetSender() { return this; } //used to set gTQSender | void *GetSender() { return this; } //used to set gTQSender | |||
virtual Int_t DrawCanvas(TObject *obj); // Canvas drawing via libProofDr aw | virtual Int_t DrawCanvas(TObject *obj); // Canvas drawing via libProofDr aw | |||
virtual void SetupFeedback(); // specialized setup | virtual void SetupFeedback(); // specialized setup | |||
virtual void MergeOutput(); | ||||
public: // fix for broken compilers so TCleanup can call StopFeedback() | public: // fix for broken compilers so TCleanup can call StopFeedback() | |||
virtual void StopFeedback(); // specialized teardown | virtual void StopFeedback(); // specialized teardown | |||
protected: | protected: | |||
class TCleanup { | class TCleanup { | |||
private: | private: | |||
TProofPlayer *fPlayer; | TProofPlayer *fPlayer; | |||
public: | public: | |||
TCleanup(TProofPlayer *p) : fPlayer(p) { } | TCleanup(TProofPlayer *p) : fPlayer(p) { } | |||
~TCleanup() { fPlayer->StopFeedback(); } | ~TCleanup() { fPlayer->StopFeedback(); } | |||
skipping to change at line 291 | skipping to change at line 293 | |||
Long64_t nentries = -1, Long64_t firstentry = 0); | Long64_t nentries = -1, Long64_t firstentry = 0); | |||
void RedirectOutput(Bool_t on = kTRUE); | void RedirectOutput(Bool_t on = kTRUE); | |||
void StopProcess(Bool_t abort, Int_t timeout = -1); | void StopProcess(Bool_t abort, Int_t timeout = -1); | |||
void StoreOutput(TList *out); // Adopts the list | void StoreOutput(TList *out); // Adopts the list | |||
virtual void StoreFeedback(TObject *slave, TList *out); // Adopts the list | virtual void StoreFeedback(TObject *slave, TList *out); // Adopts the list | |||
Int_t Incorporate(TObject *obj, TList *out, Bool_t &merged); | Int_t Incorporate(TObject *obj, TList *out, Bool_t &merged); | |||
TObject *HandleHistogram(TObject *obj); | TObject *HandleHistogram(TObject *obj); | |||
Int_t AddOutputObject(TObject *obj); | Int_t AddOutputObject(TObject *obj); | |||
void AddOutput(TList *out); // Incorporate a list | void AddOutput(TList *out); // Incorporate a list | |||
void MergeOutput(); | virtual void MergeOutput(); | |||
void Progress(Long64_t total, Long64_t processed); // *SIGNAL* | void Progress(Long64_t total, Long64_t processed); // *SIGNAL* | |||
void Progress(TSlave*, Long64_t total, Long64_t processed) | void Progress(TSlave*, Long64_t total, Long64_t processed) | |||
{ Progress(total, processed); } | { Progress(total, processed); } | |||
void Progress(Long64_t total, Long64_t processed, Long64_t byt esread, | void Progress(Long64_t total, Long64_t processed, Long64_t byt esread, | |||
Float_t initTime, Float_t procTime, | Float_t initTime, Float_t procTime, | |||
Float_t evtrti, Float_t mbrti); // *SIGNAL* | Float_t evtrti, Float_t mbrti); // *SIGNAL* | |||
void Progress(TSlave *, Long64_t total, Long64_t processed, Lo ng64_t bytesread, | void Progress(TSlave *, Long64_t total, Long64_t processed, Lo ng64_t bytesread, | |||
Float_t initTime, Float_t procTime, | Float_t initTime, Float_t procTime, | |||
Float_t evtrti, Float_t mbrti) | Float_t evtrti, Float_t mbrti) | |||
{ Progress(total, processed, bytesread, initTime, pro cTime, | { Progress(total, processed, bytesread, initTime, pro cTime, | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 4 lines changed or added | |||
TProofServ.h | TProofServ.h | |||
---|---|---|---|---|
// @(#)root/proof:$Id: TProofServ.h 31012 2009-11-06 16:08:19Z ganis $ | // @(#)root/proof:$Id: TProofServ.h 31683 2009-12-08 16:12:08Z ganis $ | |||
// Author: Fons Rademakers 16/02/97 | // Author: Fons Rademakers 16/02/97 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 61 | skipping to change at line 61 | |||
class THashList; | class THashList; | |||
class TList; | class TList; | |||
class TDSetElement; | class TDSetElement; | |||
class TMessage; | class TMessage; | |||
class TShutdownTimer; | class TShutdownTimer; | |||
class TReaperTimer; | class TReaperTimer; | |||
class TMutex; | class TMutex; | |||
class TFileCollection; | class TFileCollection; | |||
class TDataSetManager; | class TDataSetManager; | |||
class TFileHandler; | class TFileHandler; | |||
class TMonitor; | ||||
class TServerSocket; | ||||
// Hook to external function setting up authentication related stuff | // Hook to external function setting up authentication related stuff | |||
// for old versions. | // for old versions. | |||
// For backward compatibility | // For backward compatibility | |||
typedef Int_t (*OldProofServAuthSetup_t)(TSocket *, Bool_t, Int_t, | typedef Int_t (*OldProofServAuthSetup_t)(TSocket *, Bool_t, Int_t, | |||
TString &, TString &, TString &); | TString &, TString &, TString &); | |||
class TProofServ : public TApplication { | class TProofServ : public TApplication { | |||
friend class TProofServLite; | friend class TProofServLite; | |||
skipping to change at line 150 | skipping to change at line 152 | |||
Int_t fInflateFactor; // Factor in 1/1000 to inflate the CPU time | Int_t fInflateFactor; // Factor in 1/1000 to inflate the CPU time | |||
Int_t fCompressMsg; // Compression level for messages | Int_t fCompressMsg; // Compression level for messages | |||
TDataSetManager* fDataSetManager; // dataset manager | TDataSetManager* fDataSetManager; // dataset manager | |||
Bool_t fLogToSysLog; //true if logs should be sent to syslog too | Bool_t fLogToSysLog; //true if logs should be sent to syslog too | |||
Bool_t fSendLogToMaster; // On workers, controls logs sending to master | Bool_t fSendLogToMaster; // On workers, controls logs sending to master | |||
TServerSocket *fMergingSocket; // Socket used for merging outputs if su | ||||
bmerger | ||||
TMonitor *fMergingMonitor; // Monitor for merging sockets | ||||
Int_t fMergedWorkers; // Number of workers merged | ||||
// Quotas (-1 to disable) | // Quotas (-1 to disable) | |||
Int_t fMaxQueries; //Max number of queries fully kept | Int_t fMaxQueries; //Max number of queries fully kept | |||
Long64_t fMaxBoxSize; //Max size of the sandbox | Long64_t fMaxBoxSize; //Max size of the sandbox | |||
Long64_t fHWMBoxSize; //High-Water-Mark on the sandbox size | Long64_t fHWMBoxSize; //High-Water-Mark on the sandbox size | |||
// Memory limits (-1 to disable) set by envs ROOTPROOFASSOFT and RPPTPRO FOASHARD | // Memory limits (-1 to disable) set by envs ROOTPROOFASSOFT and RPPTPRO FOASHARD | |||
Long_t fVirtMemHWM; //Above this we terminate gently (in kB ) | Long_t fVirtMemHWM; //Above this we terminate gently (in kB ) | |||
Long_t fVirtMemMax; //Hard limit enforced by the system (in kB) | Long_t fVirtMemMax; //Hard limit enforced by the system (in kB) | |||
// In bytes; default is 1MB | // In bytes; default is 1MB | |||
skipping to change at line 179 | skipping to change at line 185 | |||
Int_t OldAuthSetup(TString &wconf); | Int_t OldAuthSetup(TString &wconf); | |||
Int_t GetPriority(); | Int_t GetPriority(); | |||
// Query handlers | // Query handlers | |||
TProofQueryResult *MakeQueryResult(Long64_t nentries, const char *opt, | TProofQueryResult *MakeQueryResult(Long64_t nentries, const char *opt, | |||
TList *inl, Long64_t first, TDSet *ds et, | TList *inl, Long64_t first, TDSet *ds et, | |||
const char *selec, TObject *elist); | const char *selec, TObject *elist); | |||
void SetQueryRunning(TProofQueryResult *pq); | void SetQueryRunning(TProofQueryResult *pq); | |||
// Results handling | // Results handling | |||
void SendResults(TSocket *sock, TList *outlist = 0, TQueryResul | Int_t SendResults(TSocket *sock, TList *outlist = 0, TQueryResul | |||
t *pq = 0); | t *pq = 0); | |||
Bool_t AcceptResults(Int_t connections, TVirtualProofPlayer *merg | ||||
erPlayer); | ||||
Int_t RegisterDataSets(TList *in, TList *out); | Int_t RegisterDataSets(TList *in, TList *out); | |||
// Waiting queries handlers | // Waiting queries handlers | |||
void SetIdle(Bool_t st = kTRUE); | void SetIdle(Bool_t st = kTRUE); | |||
Bool_t IsWaiting(); | Bool_t IsWaiting(); | |||
Int_t WaitingQueries(); | Int_t WaitingQueries(); | |||
Int_t QueueQuery(TProofQueryResult *pq); | Int_t QueueQuery(TProofQueryResult *pq); | |||
TProofQueryResult *NextQuery(); | TProofQueryResult *NextQuery(); | |||
Int_t CleanupWaitingQueries(Bool_t del = kTRUE, TList *qls = 0); | Int_t CleanupWaitingQueries(Bool_t del = kTRUE, TList *qls = 0); | |||
protected: | protected: | |||
virtual void HandleArchive(TMessage *mess); | virtual void HandleArchive(TMessage *mess); | |||
virtual Int_t HandleCache(TMessage *mess); | virtual Int_t HandleCache(TMessage *mess); | |||
virtual void HandleCheckFile(TMessage *mess); | virtual void HandleCheckFile(TMessage *mess); | |||
virtual Int_t HandleDataSets(TMessage *mess); | virtual Int_t HandleDataSets(TMessage *mess); | |||
virtual void HandleSubmerger(TMessage *mess); | ||||
virtual void HandleFork(TMessage *mess); | virtual void HandleFork(TMessage *mess); | |||
virtual void HandleLibIncPath(TMessage *mess); | virtual void HandleLibIncPath(TMessage *mess); | |||
virtual void HandleProcess(TMessage *mess); | virtual void HandleProcess(TMessage *mess); | |||
virtual void HandleQueryList(TMessage *mess); | virtual void HandleQueryList(TMessage *mess); | |||
virtual void HandleRemove(TMessage *mess); | virtual void HandleRemove(TMessage *mess); | |||
virtual void HandleRetrieve(TMessage *mess); | virtual void HandleRetrieve(TMessage *mess); | |||
virtual void HandleWorkerLists(TMessage *mess); | virtual void HandleWorkerLists(TMessage *mess); | |||
virtual void ProcessNext(); | virtual void ProcessNext(); | |||
virtual Int_t Setup(); | virtual Int_t Setup(); | |||
skipping to change at line 258 | skipping to change at line 267 | |||
Int_t GetInflateFactor() const { return fInflateFactor; } | Int_t GetInflateFactor() const { return fInflateFactor; } | |||
Long_t GetVirtMemHWM() const { return fVirtMemHWM; } | Long_t GetVirtMemHWM() const { return fVirtMemHWM; } | |||
Long64_t GetMsgSizeHWM() const { return fMsgSizeHWM; } | Long64_t GetMsgSizeHWM() const { return fMsgSizeHWM; } | |||
const char *GetPrefix() const { return fPrefix; } | const char *GetPrefix() const { return fPrefix; } | |||
void FlushLogFile(); | void FlushLogFile(); | |||
TProofLockPath *GetCacheLock() { return fCacheLock; } //cache dir l ocker; used by TProofPlayer | ||||
Int_t CopyFromCache(const char *name, Bool_t cpbin); | Int_t CopyFromCache(const char *name, Bool_t cpbin); | |||
Int_t CopyToCache(const char *name, Int_t opt = 0); | Int_t CopyToCache(const char *name, Int_t opt = 0); | |||
virtual EQueryAction GetWorkers(TList *workers, Int_t &prioritychange, | virtual EQueryAction GetWorkers(TList *workers, Int_t &prioritychange, | |||
Bool_t resume = kFALSE); | Bool_t resume = kFALSE); | |||
virtual void HandleException(Int_t sig); | virtual void HandleException(Int_t sig); | |||
virtual Int_t HandleSocketInput(TMessage *mess, Bool_t all); | virtual Int_t HandleSocketInput(TMessage *mess, Bool_t all); | |||
virtual void HandleSocketInput(); | virtual void HandleSocketInput(); | |||
virtual void HandleUrgentData(); | virtual void HandleUrgentData(); | |||
virtual void HandleSigPipe(); | virtual void HandleSigPipe(); | |||
End of changes. 6 change blocks. | ||||
3 lines changed or deleted | 15 lines changed or added | |||
TPyException.h | TPyException.h | |||
---|---|---|---|---|
// @(#)root/pyroot:$Name: $:$Id: TPyException.h 21958 2008-02-02 10:39:18Z rdm $ | // @(#)root/pyroot:$Name: $:$Id: TPyException.h 31630 2009-12-08 10:21:36Z rdm $ | |||
#ifndef ROOT_TPyException | #ifndef ROOT_TPyException | |||
#define ROOT_TPyException | #define ROOT_TPyException | |||
/////////////////////////////////////////////////////////////////////////// /// | /////////////////////////////////////////////////////////////////////////// /// | |||
// // | // // | |||
// TPyException // | // TPyException // | |||
// // | // // | |||
// Purpose: A C++ exception class for throwing python exceptions // | // Purpose: A C++ exception class for throwing python exceptions // | |||
// through C++ code. // | // through C++ code. // | |||
// Created: Apr, 2004, sss, from the version in D0's python_util. // | // Created: Apr, 2004, sss, from the version in D0's python_util. // | |||
skipping to change at line 66 | skipping to change at line 66 | |||
ClassDef(TPyException,0) //C++ exception for throwing python exception s | ClassDef(TPyException,0) //C++ exception for throwing python exception s | |||
}; | }; | |||
} // namespace PyROOT | } // namespace PyROOT | |||
#if defined(G__DICTIONARY) && defined(R__SOLARIS) | #if defined(G__DICTIONARY) && defined(R__SOLARIS) | |||
// Force the inclusion of rw/math.h | // Force the inclusion of rw/math.h | |||
#include <limits> | #include <limits> | |||
// Work around interaction between a struct named exception in math.h, | // Work around interaction between a struct named exception in math.h, | |||
// std::exception and the use of using namespace std; | // std::exception and the use of using namespace std; | |||
#if (__SUNPRO_CC < 0x5050) | ||||
#define exception std::exception | #define exception std::exception | |||
#endif | #endif | |||
#endif | #endif | |||
#endif | ||||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TStreamerElement.h | TStreamerElement.h | |||
---|---|---|---|---|
// @(#)root/meta:$Id: TStreamerElement.h 28776 2009-06-02 15:16:39Z pcanal $ | // @(#)root/meta:$Id: TStreamerElement.h 31565 2009-12-04 18:44:27Z pcanal $ | |||
// Author: Rene Brun 12/10/2000 | // Author: Rene Brun 12/10/2000 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 338 | skipping to change at line 338 | |||
private: | private: | |||
TStreamerString(const TStreamerString&); // Not implemented | TStreamerString(const TStreamerString&); // Not implemented | |||
TStreamerString&operator=(const TStreamerString&); // Not implemented | TStreamerString&operator=(const TStreamerString&); // Not implemented | |||
public: | public: | |||
TStreamerString(); | TStreamerString(); | |||
TStreamerString(const char *name, const char *title, Int_t offset); | TStreamerString(const char *name, const char *title, Int_t offset); | |||
virtual ~TStreamerString(); | virtual ~TStreamerString(); | |||
const char *GetInclude() const; | ||||
Int_t GetSize() const; | Int_t GetSize() const; | |||
ClassDef(TStreamerString,2) //Streamer element of type TString | ClassDef(TStreamerString,2) //Streamer element of type TString | |||
}; | }; | |||
//________________________________________________________________________ | //________________________________________________________________________ | |||
class TStreamerSTL : public TStreamerElement { | class TStreamerSTL : public TStreamerElement { | |||
enum { | ||||
kWarned = BIT(21) | ||||
}; | ||||
private: | private: | |||
TStreamerSTL(const TStreamerSTL&); // Not implemented | TStreamerSTL(const TStreamerSTL&); // Not implemented | |||
TStreamerSTL&operator=(const TStreamerSTL&); // Not implemented | TStreamerSTL&operator=(const TStreamerSTL&); // Not implemented | |||
protected: | protected: | |||
Int_t fSTLtype; //type of STL vector | Int_t fSTLtype; //type of STL vector | |||
Int_t fCtype; //STL contained type | Int_t fCtype; //STL contained type | |||
public: | public: | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 6 lines changed or added | |||
TTask.h | TTask.h | |||
---|---|---|---|---|
// @(#)root/base:$Id: TTask.h 20877 2007-11-19 11:17:07Z rdm $ | // @(#)root/base:$Id: TTask.h 31784 2009-12-10 13:47:29Z brun $ | |||
// Author: Rene Brun 02/09/2000 | // Author: Rene Brun 02/09/2000 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 45 | skipping to change at line 45 | |||
TList *fTasks; //List of Tasks | TList *fTasks; //List of Tasks | |||
TString fOption; //Option specified in ExecuteTask | TString fOption; //Option specified in ExecuteTask | |||
Int_t fBreakin; //=1 if a break point set at task extry | Int_t fBreakin; //=1 if a break point set at task extry | |||
Int_t fBreakout; //=1 if a break point set at task exit | Int_t fBreakout; //=1 if a break point set at task exit | |||
Bool_t fHasExecuted; //True if task has executed | Bool_t fHasExecuted; //True if task has executed | |||
Bool_t fActive; //true if task is active | Bool_t fActive; //true if task is active | |||
static TTask *fgBeginTask; //pointer to task initiator | static TTask *fgBeginTask; //pointer to task initiator | |||
static TTask *fgBreakPoint; //pointer to current break point | static TTask *fgBreakPoint; //pointer to current break point | |||
TTask& operator=(const TTask& tt); | private: | |||
public: | public: | |||
TTask(); | TTask(); | |||
TTask(const char* name, const char *title); | TTask(const char* name, const char *title); | |||
TTask(const TTask &task); | ||||
virtual ~TTask(); | virtual ~TTask(); | |||
TTask(const TTask &task); | ||||
TTask& operator=(const TTask& tt); | ||||
virtual void Abort(); // *MENU* | virtual void Abort(); // *MENU* | |||
virtual void Add(TTask *task) {fTasks->Add(task);} | virtual void Add(TTask *task) {fTasks->Add(task);} | |||
virtual void Browse(TBrowser *b); | virtual void Browse(TBrowser *b); | |||
virtual void CleanTasks(); | virtual void CleanTasks(); | |||
virtual void Clear(Option_t *option=""); | virtual void Clear(Option_t *option=""); | |||
virtual void Continue(); // *MENU* | virtual void Continue(); // *MENU* | |||
virtual void Exec(Option_t *option); | virtual void Exec(Option_t *option); | |||
virtual void ExecuteTask(Option_t *option="0"); // *MENU* | virtual void ExecuteTask(Option_t *option="0"); // *MENU* | |||
virtual void ExecuteTasks(Option_t *option); | virtual void ExecuteTasks(Option_t *option); | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 4 lines changed or added | |||
TTree.h | TTree.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TTree.h 31035 2009-11-09 10:01:05Z brun $ | // @(#)root/tree:$Id: TTree.h 31561 2009-12-04 16:31:47Z brun $ | |||
// Author: Rene Brun 12/01/96 | // Author: Rene Brun 12/01/96 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 424 | skipping to change at line 424 | |||
virtual void SetFileNumber(Int_t number = 0); | virtual void SetFileNumber(Int_t number = 0); | |||
virtual void SetEventList(TEventList* list); | virtual void SetEventList(TEventList* list); | |||
virtual void SetEntryList(TEntryList* list, Option_t *opt="") ; | virtual void SetEntryList(TEntryList* list, Option_t *opt="") ; | |||
virtual void SetMakeClass(Int_t make) { fMakeClass = make; } | virtual void SetMakeClass(Int_t make) { fMakeClass = make; } | |||
virtual void SetMaxEntryLoop(Long64_t maxev = 1000000000) { f MaxEntryLoop = maxev; } // *MENU* | virtual void SetMaxEntryLoop(Long64_t maxev = 1000000000) { f MaxEntryLoop = maxev; } // *MENU* | |||
static void SetMaxTreeSize(Long64_t maxsize = 1900000000); | static void SetMaxTreeSize(Long64_t maxsize = 1900000000); | |||
virtual void SetMaxVirtualSize(Long64_t size = 0) { fMaxVirtu alSize = size; } // *MENU* | virtual void SetMaxVirtualSize(Long64_t size = 0) { fMaxVirtu alSize = size; } // *MENU* | |||
virtual void SetName(const char* name); // *MENU* | virtual void SetName(const char* name); // *MENU* | |||
virtual void SetNotify(TObject* obj) { fNotify = obj; } | virtual void SetNotify(TObject* obj) { fNotify = obj; } | |||
virtual void SetObject(const char* name, const char* title); | virtual void SetObject(const char* name, const char* title); | |||
virtual void SetParallelUnzip(Bool_t opt=kTRUE); | virtual void SetParallelUnzip(Bool_t opt=kTRUE, Float_t RelSi ze=-1); | |||
virtual void SetScanField(Int_t n = 50) { fScanField = n; } / / *MENU* | virtual void SetScanField(Int_t n = 50) { fScanField = n; } / / *MENU* | |||
virtual void SetTimerInterval(Int_t msec = 333) { fTimerInter val=msec; } | virtual void SetTimerInterval(Int_t msec = 333) { fTimerInter val=msec; } | |||
virtual void SetTreeIndex(TVirtualIndex*index); | virtual void SetTreeIndex(TVirtualIndex*index); | |||
virtual void SetWeight(Double_t w = 1, Option_t* option = "") ; | virtual void SetWeight(Double_t w = 1, Option_t* option = "") ; | |||
virtual void SetUpdate(Int_t freq = 0) { fUpdate = freq; } | virtual void SetUpdate(Int_t freq = 0) { fUpdate = freq; } | |||
virtual void Show(Long64_t entry = -1, Int_t lenmax = 20); | virtual void Show(Long64_t entry = -1, Int_t lenmax = 20); | |||
virtual void StartViewer(); // *MENU* | virtual void StartViewer(); // *MENU* | |||
virtual void StopCacheLearningPhase(); | virtual void StopCacheLearningPhase(); | |||
virtual Int_t UnbinnedFit(const char* funcname, const char* va rexp, const char* selection = "", Option_t* option = "", Long64_t nentries = 1000000000, Long64_t firstentry = 0); | virtual Int_t UnbinnedFit(const char* funcname, const char* va rexp, const char* selection = "", Option_t* option = "", Long64_t nentries = 1000000000, Long64_t firstentry = 0); | |||
void UseCurrentStyle(); | void UseCurrentStyle(); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TTreeCache.h | TTreeCache.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TTreeCache.h 31077 2009-11-11 08:51:57Z brun $ | // @(#)root/tree:$Id: TTreeCache.h 31457 2009-11-30 13:36:37Z brun $ | |||
// Author: Rene Brun 04/06/2006 | // Author: Rene Brun 04/06/2006 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 66 | skipping to change at line 66 | |||
public: | public: | |||
TTreeCache(); | TTreeCache(); | |||
TTreeCache(TTree *tree, Int_t buffersize=0); | TTreeCache(TTree *tree, Int_t buffersize=0); | |||
virtual ~TTreeCache(); | virtual ~TTreeCache(); | |||
virtual void AddBranch(TBranch *b, Bool_t subbranches = kFALSE); | virtual void AddBranch(TBranch *b, Bool_t subbranches = kFALSE); | |||
virtual void AddBranch(const char *branch, Bool_t subbranches = k FALSE); | virtual void AddBranch(const char *branch, Bool_t subbranches = k FALSE); | |||
Double_t GetEfficiency(); | Double_t GetEfficiency(); | |||
Double_t GetEfficiencyRel(); | Double_t GetEfficiencyRel(); | |||
static Int_t GetLearnEntries(); | static Int_t GetLearnEntries(); | |||
virtual Bool_t GetSkipZip() { return kFALSE; } // This function is only used by TTreeCacheUnzip (ignore it) | ||||
virtual Bool_t FillBuffer(); | virtual Bool_t FillBuffer(); | |||
TTree *GetOwner() const; | TTree *GetOwner() const; | |||
TTree *GetTree() const; | TTree *GetTree() const; | |||
virtual Bool_t IsLearning() const {return fIsLearning;} | virtual Bool_t IsLearning() const {return fIsLearning;} | |||
virtual Int_t ReadBuffer(char *buf, Long64_t pos, Int_t len); | virtual Int_t ReadBuffer(char *buf, Long64_t pos, Int_t len); | |||
virtual void ResetCache(); | virtual void ResetCache(); | |||
virtual void SetEntryRange(Long64_t emin, Long64_t emax); | virtual void SetEntryRange(Long64_t emin, Long64_t emax); | |||
static void SetLearnEntries(Int_t n = 10); | static void SetLearnEntries(Int_t n = 10); | |||
void StartLearningPhase(); | void StartLearningPhase(); | |||
virtual void StopLearningPhase(); | virtual void StopLearningPhase(); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TTreeCacheUnzip.h | TTreeCacheUnzip.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TTreeCacheUnzip.h 31112 2009-11-12 10:03:32Z brun $ | // @(#)root/tree:$Id: TTreeCacheUnzip.h 31469 2009-11-30 17:25:19Z brun $ | |||
// Author: Rene Brun 04/06/2006 | // Author: Rene Brun 04/06/2006 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 56 | skipping to change at line 56 | |||
protected: | protected: | |||
// Members for paral. managing | // Members for paral. managing | |||
TThread *fUnzipThread[10]; | TThread *fUnzipThread[10]; | |||
Bool_t fActiveThread; // Used to terminate gracefully the unzippers | Bool_t fActiveThread; // Used to terminate gracefully the unzippers | |||
TCondition *fUnzipStartCondition; // Used to signal the threads to sta rt. | TCondition *fUnzipStartCondition; // Used to signal the threads to sta rt. | |||
TCondition *fUnzipDoneCondition; // Used to wait for an unzip tour to finish. Gives the Async feel. | TCondition *fUnzipDoneCondition; // Used to wait for an unzip tour to finish. Gives the Async feel. | |||
Bool_t fParallel; // Indicate if we want to activate t he parallelism (for this instance) | Bool_t fParallel; // Indicate if we want to activate t he parallelism (for this instance) | |||
Bool_t fAsyncReading; | Bool_t fAsyncReading; | |||
TMutex *fMutexList; // Mutex to protect the various list s. Used by the condvars. | TMutex *fMutexList; // Mutex to protect the various list s. Used by the condvars. | |||
TMutex *fIOMutex; | ||||
Int_t fCycle; | Int_t fCycle; | |||
static TTreeCacheUnzip::EParUnzipMode fgParallel; // Indicate if we wan t to activate the parallelism | static TTreeCacheUnzip::EParUnzipMode fgParallel; // Indicate if we wan t to activate the parallelism | |||
Int_t fLastReadPos; | Int_t fLastReadPos; | |||
Int_t fBlocksToGo; | ||||
// Members to keep track of the unzipping buffer | ||||
Long64_t fPosWrite; | ||||
// Unzipping related members | // Unzipping related members | |||
Int_t *fUnzipLen; //! [fNseek] Length of the unzipped buffe rs | Int_t *fUnzipLen; //! [fNseek] Length of the unzipped buffe rs | |||
char **fUnzipChunks; //! [fNseek] Individual unzipped chunks. Their summed size is kept under control. | char **fUnzipChunks; //! [fNseek] Individual unzipped chunks. Their summed size is kept under control. | |||
Byte_t *fUnzipStatus; //! [fNSeek] For each blk, tells us if it 's unzipped or pending | Byte_t *fUnzipStatus; //! [fNSeek] For each blk, tells us if it 's unzipped or pending | |||
Long64_t fTotalUnzipBytes; //! The total sum of the currently unzipp ed blks | Long64_t fTotalUnzipBytes; //! The total sum of the currently unzipp ed blks | |||
Int_t fNseekMax; //! fNseek can change so we need to know its max size | Int_t fNseekMax; //! fNseek can change so we need to know its max size | |||
Long64_t fUnzipBufferSize; //! Max Size for the ready unzipped bloc ks (default is 2*fBufferSize) | Long64_t fUnzipBufferSize; //! Max Size for the ready unzipped bloc ks (default is 2*fBufferSize) | |||
Bool_t fSkipZip; // say if we should skip the uncompressi on of all buffers | ||||
static Double_t fgRelBuffSize; // This is the percentage of the TTreeCac heUnzip that will be used | static Double_t fgRelBuffSize; // This is the percentage of the TTreeCac heUnzip that will be used | |||
//! keep track of the buffer set we are currently unzipping | ||||
Int_t fUnzipStart; //! This will give uf the start index (fS | ||||
eekSort) | ||||
Int_t fUnzipEnd; //! Unzipped buffers go from fUnzipStart | ||||
to fUnzipEnd | ||||
// Members use to keep statistics | // Members use to keep statistics | |||
Int_t fNUnzip; //! number of blocks that were unzipped | Int_t fNUnzip; //! number of blocks that were unzipped | |||
Int_t fNFound; //! number of blocks that were found in t he cache | Int_t fNFound; //! number of blocks that were found in t he cache | |||
Int_t fNStalls; //! number of hits which caused a stall | ||||
Int_t fNMissed; //! number of blocks that were not found in the cache and were unzipped | Int_t fNMissed; //! number of blocks that were not found in the cache and were unzipped | |||
std::queue<Int_t> fActiveBlks; // The blocks which are active now | std::queue<Int_t> fActiveBlks; // The blocks which are active now | |||
private: | private: | |||
TTreeCacheUnzip(const TTreeCacheUnzip &); //this class cannot be copied | TTreeCacheUnzip(const TTreeCacheUnzip &); //this class cannot be copied | |||
TTreeCacheUnzip& operator=(const TTreeCacheUnzip &); | TTreeCacheUnzip& operator=(const TTreeCacheUnzip &); | |||
char *fCompBuffer; | ||||
Int_t fCompBufferSize; | ||||
// Private methods | // Private methods | |||
void Init(); | void Init(); | |||
Int_t StartThreadUnzip(Int_t nthreads); | Int_t StartThreadUnzip(Int_t nthreads); | |||
Int_t StopThreadUnzip(); | Int_t StopThreadUnzip(); | |||
public: | public: | |||
TTreeCacheUnzip(); | TTreeCacheUnzip(); | |||
TTreeCacheUnzip(TTree *tree, Int_t buffersize=0); | TTreeCacheUnzip(TTree *tree, Int_t buffersize=0); | |||
virtual ~TTreeCacheUnzip(); | virtual ~TTreeCacheUnzip(); | |||
virtual void AddBranch(TBranch *b, Bool_t subbranches = kFALSE); | virtual void AddBranch(TBranch *b, Bool_t subbranches = kFALSE); | |||
virtual void AddBranch(const char *branch, Bool_t subbranches = k FALSE); | virtual void AddBranch(const char *branch, Bool_t subbranches = k FALSE); | |||
Bool_t FillBuffer(); | Bool_t FillBuffer(); | |||
virtual Int_t ReadBufferExt(char *buf, Long64_t pos, Int_t len, In t_t &loc); | ||||
void SetEntryRange(Long64_t emin, Long64_t emax); | void SetEntryRange(Long64_t emin, Long64_t emax); | |||
virtual void StopLearningPhase(); | virtual void StopLearningPhase(); | |||
void UpdateBranches(TTree *tree, Bool_t owner = kFALSE); | void UpdateBranches(TTree *tree, Bool_t owner = kFALSE); | |||
// Methods related to the thread | // Methods related to the thread | |||
static EParUnzipMode GetParallelUnzip(); | static EParUnzipMode GetParallelUnzip(); | |||
static Bool_t IsParallelUnzip(); | static Bool_t IsParallelUnzip(); | |||
static Int_t SetParallelUnzip(TTreeCacheUnzip::EParUnzipMode opt ion = TTreeCacheUnzip::kEnable); | static Int_t SetParallelUnzip(TTreeCacheUnzip::EParUnzipMode opt ion = TTreeCacheUnzip::kEnable); | |||
Bool_t IsActiveThread(); | Bool_t IsActiveThread(); | |||
Bool_t IsQueueEmpty(); | Bool_t IsQueueEmpty(); | |||
void WaitUnzipStartSignal(); | void WaitUnzipStartSignal(); | |||
void SendUnzipStartSignal(Bool_t broadcast); | void SendUnzipStartSignal(Bool_t broadcast); | |||
// Unzipping related methods | // Unzipping related methods | |||
Int_t GetRecordHeader(char *buf, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen); | Int_t GetRecordHeader(char *buf, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen); | |||
virtual Bool_t GetSkipZip() { return fSkipZip; } | ||||
virtual void ResetCache(); | virtual void ResetCache(); | |||
Int_t GetUnzipBuffer(char **buf, Long64_t pos, Int_t len, Bool_ t *free); | virtual Int_t GetUnzipBuffer(char **buf, Long64_t pos, Int_t len, Bool_ t *free); | |||
void SetUnzipBufferSize(Long64_t bufferSize); | void SetUnzipBufferSize(Long64_t bufferSize); | |||
virtual void SetSkipZip(Bool_t skip = kTRUE) { fSkipZip = skip; } | static void SetUnzipRelBufferSize(Float_t relbufferSize); | |||
Int_t UnzipBuffer(char **dest, char *src); | Int_t UnzipBuffer(char **dest, char *src); | |||
Int_t UnzipCache(Int_t &startindex, Int_t &locbuffsz, char *&lo cbuff); | Int_t UnzipCache(Int_t &startindex, Int_t &locbuffsz, char *&lo cbuff); | |||
// Methods to get stats | // Methods to get stats | |||
Int_t GetNUnzip() { return fNUnzip; } | Int_t GetNUnzip() { return fNUnzip; } | |||
Int_t GetNFound() { return fNFound; } | Int_t GetNFound() { return fNFound; } | |||
Int_t GetNMissed(){ return fNMissed; } | Int_t GetNMissed(){ return fNMissed; } | |||
void Print(Option_t* option = "") const; | void Print(Option_t* option = "") const; | |||
End of changes. 11 change blocks. | ||||
14 lines changed or deleted | 10 lines changed or added | |||
TTreePerfStats.h | TTreePerfStats.h | |||
---|---|---|---|---|
// @(#)root/treeplayer:$Id: TTreePerfStats.h 31024 2009-11-08 16:33:36Z bru n $ | // @(#)root/treeplayer:$Id: TTreePerfStats.h 31417 2009-11-25 14:07:51Z bru n $ | |||
// Author: Rene Brun 29/10/09 | // Author: Rene Brun 29/10/09 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2009, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2009, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 30 | skipping to change at line 30 | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#ifndef ROOT_TVirtualPerfStats | #ifndef ROOT_TVirtualPerfStats | |||
#include "TVirtualPerfStats.h" | #include "TVirtualPerfStats.h" | |||
#endif | #endif | |||
#ifndef ROOT_TString | #ifndef ROOT_TString | |||
#include "TString.h" | #include "TString.h" | |||
#endif | #endif | |||
class TBrowser; | ||||
class TFile; | class TFile; | |||
class TTree; | class TTree; | |||
class TStopwatch; | class TStopwatch; | |||
class TPaveText; | class TPaveText; | |||
class TGraphErrors; | class TGraphErrors; | |||
class TGaxis; | class TGaxis; | |||
class TText; | class TText; | |||
class TTreePerfStats : public TVirtualPerfStats { | class TTreePerfStats : public TVirtualPerfStats { | |||
protected: | protected: | |||
skipping to change at line 66 | skipping to change at line 67 | |||
TGraphErrors *fGraphTime ; //pointer to the graph with timestamp info | TGraphErrors *fGraphTime ; //pointer to the graph with timestamp info | |||
TPaveText *fPave; //pointer to annotation pavetext | TPaveText *fPave; //pointer to annotation pavetext | |||
TStopwatch *fWatch; //TStopwatch pointer | TStopwatch *fWatch; //TStopwatch pointer | |||
TGaxis *fRealTimeAxis; //pointer to TGaxis object showing real-ti me | TGaxis *fRealTimeAxis; //pointer to TGaxis object showing real-ti me | |||
TText *fHostInfoText; //Graphics Text object with the fHostInfo data | TText *fHostInfoText; //Graphics Text object with the fHostInfo data | |||
public: | public: | |||
TTreePerfStats(); | TTreePerfStats(); | |||
TTreePerfStats(const char *name, TTree *T); | TTreePerfStats(const char *name, TTree *T); | |||
virtual ~TTreePerfStats(); | virtual ~TTreePerfStats(); | |||
virtual void Browse(TBrowser *b); | ||||
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py); | virtual Int_t DistancetoPrimitive(Int_t px, Int_t py); | |||
virtual void Draw(Option_t *option=""); | virtual void Draw(Option_t *option=""); | |||
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py); | virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py); | |||
virtual void Finish(); | virtual void Finish(); | |||
virtual Long64_t GetBytesRead() const {return fBytesRead;} | virtual Long64_t GetBytesRead() const {return fBytesRead;} | |||
virtual Long64_t GetBytesReadExtra() const {return fBytesReadExtra;} | virtual Long64_t GetBytesReadExtra() const {return fBytesReadExtra;} | |||
virtual Double_t GetCpuTime() const {return fCpuTime;} | virtual Double_t GetCpuTime() const {return fCpuTime;} | |||
virtual Double_t GetDiskTime() const {return fDiskTime;} | virtual Double_t GetDiskTime() const {return fDiskTime;} | |||
TGraphErrors *GetGraphIO() {return fGraphIO;} | TGraphErrors *GetGraphIO() {return fGraphIO;} | |||
TGraphErrors *GetGraphTime() {return fGraphTime;} | TGraphErrors *GetGraphTime() {return fGraphTime;} | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
TTreePlayer.h | TTreePlayer.h | |||
---|---|---|---|---|
// @(#)root/treeplayer:$Id: TTreePlayer.h 28514 2009-05-11 10:44:08Z brun $ | // @(#)root/treeplayer:$Id: TTreePlayer.h 31561 2009-12-04 16:31:47Z brun $ | |||
// Author: Rene Brun 12/01/96 | // Author: Rene Brun 12/01/96 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
TUrl.h | TUrl.h | |||
---|---|---|---|---|
// @(#)root/base:$Id: TUrl.h 22301 2008-02-24 15:04:36Z rdm $ | // @(#)root/base:$Id: TUrl.h 31537 2009-12-03 16:45:40Z rdm $ | |||
// Author: Fons Rademakers 17/01/97 | // Author: Fons Rademakers 17/01/97 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 32 | skipping to change at line 32 | |||
// [proto://][user[:passwd]@]host[:port]/file.ext[#anchor][?options] // | // [proto://][user[:passwd]@]host[:port]/file.ext[#anchor][?options] // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#ifndef ROOT_TObject | #ifndef ROOT_TObject | |||
#include "TObject.h" | #include "TObject.h" | |||
#endif | #endif | |||
#ifndef ROOT_TString | #ifndef ROOT_TString | |||
#include "TString.h" | #include "TString.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMap | ||||
#include "TMap.h" | ||||
#endif | ||||
class THashList; | class THashList; | |||
class TMap; | ||||
class TUrl : public TObject { | class TUrl : public TObject { | |||
private: | private: | |||
TString fUrl; // full URL | TString fUrl; // full URL | |||
TString fProtocol; // protocol: http, ftp, news, root, proof, ... | TString fProtocol; // protocol: http, ftp, news, root, proof, ... | |||
TString fUser; // user name | TString fUser; // user name | |||
TString fPasswd; // password | TString fPasswd; // password | |||
TString fHost; // remote host | TString fHost; // remote host | |||
TString fFile; // remote object | TString fFile; // remote object | |||
TString fAnchor; // anchor in object (after #) | TString fAnchor; // anchor in object (after #) | |||
TString fOptions; // options/search (after ?) | TString fOptions; // options/search (after ?) | |||
mutable TString fFileOA; //!file with option and anchor | mutable TString fFileOA; //!file with option and anchor | |||
mutable TString fHostFQ; //!fully qualified host name | mutable TString fHostFQ; //!fully qualified host name | |||
Int_t fPort; // port through which to contact remote server | Int_t fPort; // port through which to contact remote server | |||
mutable TMap *fOptionsMap; //!map containing options key/value pairs | ||||
static TObjArray *fgSpecialProtocols; // list of special protocols | static TObjArray *fgSpecialProtocols; // list of special protocols | |||
static THashList *fgHostFQDNs; // list of resolved host FQDNs | static THashList *fgHostFQDNs; // list of resolved host FQDNs | |||
void FindFile(char *u, Bool_t stripDoubleSlash = kTRUE); | void FindFile(char *u, Bool_t stripDoubleSlash = kTRUE); | |||
public: | public: | |||
TUrl() : fUrl(), fProtocol(), fUser(), fPasswd(), fHost(), fFile(), | TUrl() : fUrl(), fProtocol(), fUser(), fPasswd(), fHost(), fFile(), | |||
fAnchor(), fOptions(), fFileOA(), fHostFQ(), fPort(-1) { } | fAnchor(), fOptions(), fFileOA(), fHostFQ(), fPort(-1), fOption sMap(0) { } | |||
TUrl(const char *url, Bool_t defaultIsFile = kFALSE); | TUrl(const char *url, Bool_t defaultIsFile = kFALSE); | |||
TUrl(const TUrl &url); | TUrl(const TUrl &url); | |||
TUrl &operator=(const TUrl &rhs); | TUrl &operator=(const TUrl &rhs); | |||
virtual ~TUrl() { } | virtual ~TUrl(); | |||
const char *GetUrl(Bool_t withDeflt = kFALSE); | const char *GetUrl(Bool_t withDeflt = kFALSE); | |||
const char *GetProtocol() const { return fProtocol; } | const char *GetProtocol() const { return fProtocol; } | |||
const char *GetUser() const { return fUser; } | const char *GetUser() const { return fUser; } | |||
const char *GetPasswd() const { return fPasswd; } | const char *GetPasswd() const { return fPasswd; } | |||
const char *GetHost() const { return fHost; } | const char *GetHost() const { return fHost; } | |||
const char *GetHostFQDN() const; | const char *GetHostFQDN() const; | |||
const char *GetFile() const { return fFile; } | const char *GetFile() const { return fFile; } | |||
const char *GetAnchor() const { return fAnchor; } | const char *GetAnchor() const { return fAnchor; } | |||
const char *GetOptions() const { return fOptions; } | const char *GetOptions() const { return fOptions; } | |||
const char *GetValueFromOptions(const char *key) const; | ||||
Int_t GetIntValueFromOptions(const char *key) const; | ||||
void ParseOptions() const; | ||||
void CleanRelativePath(); | ||||
const char *GetFileAndOptions() const; | const char *GetFileAndOptions() const; | |||
Int_t GetPort() const { return fPort; } | Int_t GetPort() const { return fPort; } | |||
Bool_t IsValid() const { return fPort == -1 ? kFALSE : kTRUE; } | Bool_t IsValid() const { return fPort == -1 ? kFALSE : kTRUE; } | |||
void SetProtocol(const char *proto, Bool_t setDefaultPort = kFALS E); | void SetProtocol(const char *proto, Bool_t setDefaultPort = kFALS E); | |||
void SetUser(const char *user) { fUser = user; fUrl = ""; } | void SetUser(const char *user) { fUser = user; fUrl = ""; } | |||
void SetPasswd(const char *pw) { fPasswd = pw; fUrl = ""; } | void SetPasswd(const char *pw) { fPasswd = pw; fUrl = ""; } | |||
void SetHost(const char *host) { fHost = host; fUrl = ""; } | void SetHost(const char *host) { fHost = host; fUrl = ""; } | |||
void SetFile(const char *file) { fFile = file; fUrl = ""; fFileOA = "";} | void SetFile(const char *file) { fFile = file; fUrl = ""; fFileOA = "";} | |||
void SetAnchor(const char *anchor) { fAnchor = anchor; fUrl = ""; fFileOA = ""; } | void SetAnchor(const char *anchor) { fAnchor = anchor; fUrl = ""; fFileOA = ""; } | |||
End of changes. 7 change blocks. | ||||
3 lines changed or deleted | 12 lines changed or added | |||
TVirtualGeoPainter.h | TVirtualGeoPainter.h | |||
---|---|---|---|---|
// @(#)root/geom:$Id: TVirtualGeoPainter.h 27749 2009-03-10 15:23:52Z brun $ | // @(#)root/geom:$Id: TVirtualGeoPainter.h 31454 2009-11-30 07:39:14Z brun $ | |||
// Author: Andrei Gheata 11/01/02 | // Author: Andrei Gheata 11/01/02 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TVirtualGeoPainter | #ifndef ROOT_TVirtualGeoPainter | |||
skipping to change at line 38 | skipping to change at line 38 | |||
class TGeoShape; | class TGeoShape; | |||
class TGeoMatrix; | class TGeoMatrix; | |||
class TGeoHMatrix; | class TGeoHMatrix; | |||
class TGeoManager; | class TGeoManager; | |||
class TVirtualGeoTrack; | class TVirtualGeoTrack; | |||
class TParticle; | class TParticle; | |||
class TObjArray; | class TObjArray; | |||
class TH2F; | class TH2F; | |||
class TStopwatch; | class TStopwatch; | |||
class TGeoBatemanSol; | class TGeoBatemanSol; | |||
class TGeoIteratorPlugin; | ||||
class TVirtualGeoPainter : public TObject { | class TVirtualGeoPainter : public TObject { | |||
protected: | protected: | |||
static TVirtualGeoPainter *fgGeoPainter; //Pointer to class painter | static TVirtualGeoPainter *fgGeoPainter; //Pointer to class painter | |||
public: | public: | |||
enum EGeoVisLevel { | enum EGeoVisLevel { | |||
kGeoVisLevel = 0 | kGeoVisLevel = 0 | |||
}; | }; | |||
skipping to change at line 130 | skipping to change at line 131 | |||
virtual void PaintVolume(TGeoVolume *vol, Option_t *option="", TGe oMatrix* global=0) = 0; | virtual void PaintVolume(TGeoVolume *vol, Option_t *option="", TGe oMatrix* global=0) = 0; | |||
virtual void RandomPoints(const TGeoVolume *vol, Int_t npoints, Op tion_t *option="") = 0; | virtual void RandomPoints(const TGeoVolume *vol, Int_t npoints, Op tion_t *option="") = 0; | |||
virtual void RandomRays(Int_t nrays, Double_t startx, Double_t sta rty, Double_t startz) = 0; | virtual void RandomRays(Int_t nrays, Double_t startx, Double_t sta rty, Double_t startz) = 0; | |||
virtual void Raytrace(Option_t *option="") = 0; | virtual void Raytrace(Option_t *option="") = 0; | |||
virtual TGeoNode *SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char* g3path) = 0; | virtual TGeoNode *SamplePoints(Int_t npoints, Double_t &dist, Double_t epsil, const char* g3path) = 0; | |||
virtual void SetBombFactors(Double_t bombx=1.3, Double_t bomby=1.3 , Double_t bombz=1.3, | virtual void SetBombFactors(Double_t bombx=1.3, Double_t bomby=1.3 , Double_t bombz=1.3, | |||
Double_t bombr=1.3) = 0; | Double_t bombr=1.3) = 0; | |||
virtual void SetClippingShape(TGeoShape *shape) = 0; | virtual void SetClippingShape(TGeoShape *shape) = 0; | |||
virtual void SetExplodedView(Int_t iopt=0) = 0; | virtual void SetExplodedView(Int_t iopt=0) = 0; | |||
virtual void SetGeoManager(TGeoManager *geom) = 0; | virtual void SetGeoManager(TGeoManager *geom) = 0; | |||
virtual void SetIteratorPlugin(TGeoIteratorPlugin *plugin) = 0; | ||||
virtual void SetCheckedNode(TGeoNode *node) = 0; | virtual void SetCheckedNode(TGeoNode *node) = 0; | |||
virtual void SetNsegments(Int_t nseg=20) = 0; | virtual void SetNsegments(Int_t nseg=20) = 0; | |||
virtual void SetNmeshPoints(Int_t npoints) = 0; | virtual void SetNmeshPoints(Int_t npoints) = 0; | |||
virtual void SetRaytracing(Bool_t flag=kTRUE) = 0; | virtual void SetRaytracing(Bool_t flag=kTRUE) = 0; | |||
static TVirtualGeoPainter *GeoPainter(); | static TVirtualGeoPainter *GeoPainter(); | |||
static void SetPainter(const TVirtualGeoPainter *painter); | static void SetPainter(const TVirtualGeoPainter *painter); | |||
virtual void SetTopVisible(Bool_t vis=kTRUE) = 0; | virtual void SetTopVisible(Bool_t vis=kTRUE) = 0; | |||
virtual void SetTopVolume(TGeoVolume *vol) = 0; | virtual void SetTopVolume(TGeoVolume *vol) = 0; | |||
virtual void SetVisLevel(Int_t level=3) = 0; | virtual void SetVisLevel(Int_t level=3) = 0; | |||
virtual void SetVisOption(Int_t option=0) = 0; | virtual void SetVisOption(Int_t option=0) = 0; | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
TVirtualProofPlayer.h | TVirtualProofPlayer.h | |||
---|---|---|---|---|
// @(#)root/proof:$Id: TVirtualProofPlayer.h 30859 2009-10-24 14:53:07Z gan is $ | // @(#)root/proof:$Id: TVirtualProofPlayer.h 31505 2009-12-02 13:20:06Z bru n $ | |||
// Author: Fons Rademakers 15/03/07 | // Author: Fons Rademakers 15/03/07 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 109 | skipping to change at line 109 | |||
virtual TDSetElement *GetNextPacket(TSlave *slave, TMessage *r) = 0; | virtual TDSetElement *GetNextPacket(TSlave *slave, TMessage *r) = 0; | |||
virtual Int_t ReinitSelector(TQueryResult *qr) = 0; | virtual Int_t ReinitSelector(TQueryResult *qr) = 0; | |||
virtual void UpdateAutoBin(const char *name, | virtual void UpdateAutoBin(const char *name, | |||
Double_t& xmin, Double_t& xmax, | Double_t& xmin, Double_t& xmax, | |||
Double_t& ymin, Double_t& ymax, | Double_t& ymin, Double_t& ymax, | |||
Double_t& zmin, Double_t& zmax) = 0; | Double_t& zmin, Double_t& zmax) = 0; | |||
virtual void MergeOutput() = 0; | ||||
virtual Bool_t IsClient() const = 0; | virtual Bool_t IsClient() const = 0; | |||
virtual EExitStatus GetExitStatus() const = 0; | virtual EExitStatus GetExitStatus() const = 0; | |||
virtual Long64_t GetEventsProcessed() const = 0; | virtual Long64_t GetEventsProcessed() const = 0; | |||
virtual void AddEventsProcessed(Long64_t ev) = 0; | virtual void AddEventsProcessed(Long64_t ev) = 0; | |||
virtual TProofProgressStatus* GetProgressStatus() const = 0; | virtual TProofProgressStatus* GetProgressStatus() const = 0; | |||
virtual void SetDispatchTimer(Bool_t on = kTRUE) = 0; | virtual void SetDispatchTimer(Bool_t on = kTRUE) = 0; | |||
virtual void SetStopTimer(Bool_t on = kTRUE, | virtual void SetStopTimer(Bool_t on = kTRUE, | |||
Bool_t abort = kFALSE, Int_t timeout = 0) = 0; | Bool_t abort = kFALSE, Int_t timeout = 0) = 0; | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
TVirtualTreePlayer.h | TVirtualTreePlayer.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TVirtualTreePlayer.h 28514 2009-05-11 10:44:08Z brun $ | // @(#)root/tree:$Id: TVirtualTreePlayer.h 31561 2009-12-04 16:31:47Z brun $ | |||
// Author: Rene Brun 30/08/99 | // Author: Rene Brun 30/08/99 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
TXMLEngine.h | TXMLEngine.h | |||
---|---|---|---|---|
// @(#)root/xml:$Id: TXMLEngine.h 24369 2008-06-19 11:27:50Z rdm $ | // @(#)root/xml:$Id: TXMLEngine.h 31815 2009-12-10 16:27:22Z brun $ | |||
// Author: Sergey Linev 10.05.2004 | // Author: Sergey Linev 10.05.2004 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | |||
* All rights reserved. * | * All rights reserved. * | |||
* * | * * | |||
* For the licensing terms see $ROOTSYS/LICENSE. * | * For the licensing terms see $ROOTSYS/LICENSE. * | |||
* For the list of contributors see $ROOTSYS/README/CREDITS. * | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 33 | skipping to change at line 33 | |||
class TXMLInputStream; | class TXMLInputStream; | |||
class TXMLOutputStream; | class TXMLOutputStream; | |||
class TString; | class TString; | |||
class TXMLEngine : public TObject { | class TXMLEngine : public TObject { | |||
protected: | protected: | |||
char* Makestr(const char* str); | char* Makestr(const char* str); | |||
char* Makenstr(const char* start, int len); | char* Makenstr(const char* start, int len); | |||
XMLNodePointer_t AllocateNode(int namelen, XMLNodePointer_t parent); | XMLNodePointer_t AllocateNode(const char *name, XMLNodePointer_t parent | |||
XMLAttrPointer_t AllocateAttr(int namelen, int valuelen, XMLNodePointer | ); | |||
_t xmlnode); | XMLAttrPointer_t AllocateAttr(const char *name, const char *value, XMLN | |||
odePointer_t xmlnode); | ||||
XMLAttrPointer_t AllocateAttr(Ssiz_t namelen, Ssiz_t valuelen, XMLNodeP | ||||
ointer_t xmlnode); | ||||
XMLNsPointer_t FindNs(XMLNodePointer_t xmlnode, const char* nsname); | XMLNsPointer_t FindNs(XMLNodePointer_t xmlnode, const char* nsname); | |||
void TruncateNsExtension(XMLNodePointer_t xmlnode); | void TruncateNsExtension(XMLNodePointer_t xmlnode); | |||
void UnpackSpecialCharacters(char* target, const char* sour ce, int srclen); | void UnpackSpecialCharacters(char* target, const char* sour ce, int srclen); | |||
void OutputValue(char* value, TXMLOutputStream* out); | void OutputValue(char* value, TXMLOutputStream* out); | |||
void SaveNode(XMLNodePointer_t xmlnode, TXMLOutputStream* o ut, Int_t layout, Int_t level); | void SaveNode(XMLNodePointer_t xmlnode, TXMLOutputStream* o ut, Int_t layout, Int_t level); | |||
XMLNodePointer_t ReadNode(XMLNodePointer_t xmlparent, TXMLInputStream* inp, Int_t& resvalue); | XMLNodePointer_t ReadNode(XMLNodePointer_t xmlparent, TXMLInputStream* inp, Int_t& resvalue); | |||
void DisplayError(Int_t error, Int_t linenumber); | void DisplayError(Int_t error, Int_t linenumber); | |||
Bool_t fSkipComments; //! if true, do not create comments | ||||
nodes in document during parsing | ||||
public: | public: | |||
TXMLEngine(); | TXMLEngine(); | |||
virtual ~TXMLEngine(); | virtual ~TXMLEngine(); | |||
void SetSkipComments(bool on = kTRUE) { fSkipComments = on; | ||||
} | ||||
Bool_t GetSkipComments() const { return fSkipComments; } | ||||
Bool_t HasAttr(XMLNodePointer_t xmlnode, const char* name); | Bool_t HasAttr(XMLNodePointer_t xmlnode, const char* name); | |||
const char* GetAttr(XMLNodePointer_t xmlnode, const char* name); | const char* GetAttr(XMLNodePointer_t xmlnode, const char* name); | |||
Int_t GetIntAttr(XMLNodePointer_t node, const char* name); | Int_t GetIntAttr(XMLNodePointer_t node, const char* name); | |||
XMLAttrPointer_t NewAttr(XMLNodePointer_t xmlnode, XMLNsPointer_t, | XMLAttrPointer_t NewAttr(XMLNodePointer_t xmlnode, XMLNsPointer_t, | |||
const char* name, const char* value); | const char* name, const char* value); | |||
XMLAttrPointer_t NewIntAttr(XMLNodePointer_t xmlnode, const char* name, Int_t value); | XMLAttrPointer_t NewIntAttr(XMLNodePointer_t xmlnode, const char* name, Int_t value); | |||
void FreeAttr(XMLNodePointer_t xmlnode, const char* name); | void FreeAttr(XMLNodePointer_t xmlnode, const char* name); | |||
void FreeAllAttr(XMLNodePointer_t xmlnode); | void FreeAllAttr(XMLNodePointer_t xmlnode); | |||
XMLAttrPointer_t GetFirstAttr(XMLNodePointer_t xmlnode); | XMLAttrPointer_t GetFirstAttr(XMLNodePointer_t xmlnode); | |||
XMLAttrPointer_t GetNextAttr(XMLAttrPointer_t xmlattr); | XMLAttrPointer_t GetNextAttr(XMLAttrPointer_t xmlattr); | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 14 lines changed or added | |||
Timer.h | Timer.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Timer.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: Timer.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : Timer * | * Class : Timer * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Timing information for methods training * | * Timing information for methods training * | |||
skipping to change at line 78 | skipping to change at line 78 | |||
virtual ~Timer( void ); | virtual ~Timer( void ); | |||
void Init ( Int_t ncounts ); | void Init ( Int_t ncounts ); | |||
void Reset( void ); | void Reset( void ); | |||
// when the "Scientific" flag set, time is returned with subdecimals | // when the "Scientific" flag set, time is returned with subdecimals | |||
// for algorithm timing measurement | // for algorithm timing measurement | |||
TString GetElapsedTime ( Bool_t Scientific = kTRUE ); | TString GetElapsedTime ( Bool_t Scientific = kTRUE ); | |||
Double_t ElapsedSeconds ( void ); | Double_t ElapsedSeconds ( void ); | |||
TString GetLeftTime ( Int_t icounts ); | TString GetLeftTime ( Int_t icounts ); | |||
void DrawProgressBar( Int_t ); | void DrawProgressBar( Int_t, const TString& comment = "" ); | |||
void DrawProgressBar( TString ); | void DrawProgressBar( TString ); | |||
void DrawProgressBar( void ); | void DrawProgressBar( void ); | |||
private: | private: | |||
TString SecToText ( Double_t, Bool_t ) const; | TString SecToText ( Double_t, Bool_t ) const; | |||
Int_t fNcounts; // reference number of "counts" | Int_t fNcounts; // reference number of "counts" | |||
TString fPrefix; // prefix for outputs | TString fPrefix; // prefix for outputs | |||
Bool_t fColourfulOutput; // flag for use of colors | Bool_t fColourfulOutput; // flag for use of colors | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
Tools.h | Tools.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Tools.h 29229 2009-06-25 16:11:59Z brun $ | // @(#)root/tmva $Id: Tools.h 31574 2009-12-05 18:23:21Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : Tools * | * Class : Tools * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Global auxiliary applications and data treatment routines * | * Global auxiliary applications and data treatment routines * | |||
skipping to change at line 44 | skipping to change at line 44 | |||
// // | // // | |||
// Global auxiliary applications and data treatment routines // | // Global auxiliary applications and data treatment routines // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#include <vector> | #include <vector> | |||
#include <sstream> | #include <sstream> | |||
#include <iostream> | #include <iostream> | |||
#include <iomanip> | #include <iomanip> | |||
#ifndef ROOT_TMVA_TXMLEngine | ||||
#ifndef ROOT_TXMLEngine | #ifndef ROOT_TXMLEngine | |||
#include "TXMLEngine.h" | #include "TXMLEngine.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMatrixDSymfwd | ||||
#include "TMatrixDSymfwd.h" | ||||
#endif | #endif | |||
#ifndef ROOT_TMVA_TMatrixDSymEigen | ||||
#ifndef ROOT_TMatrixDSymEigen | #ifndef ROOT_TMatrixDfwd | |||
#include "TMatrixDSymEigen.h" | #include "TMatrixDfwd.h" | |||
#endif | #endif | |||
#ifndef ROOT_TVectorDfwd | ||||
#include "TVectorDfwd.h" | ||||
#endif | #endif | |||
#ifndef ROOT_TMVA_Types | #ifndef ROOT_TMVA_Types | |||
#include "TMVA/Types.h" | #include "TMVA/Types.h" | |||
#endif | #endif | |||
class TList; | class TList; | |||
class TTree; | class TTree; | |||
class TString; | class TString; | |||
class TH1; | class TH1; | |||
class TH2; | class TH2; | |||
class TH2F; | class TH2F; | |||
skipping to change at line 214 | skipping to change at line 220 | |||
TString StringFromInt ( Long_t i ); | TString StringFromInt ( Long_t i ); | |||
TString StringFromDouble ( Double_t d ); | TString StringFromDouble ( Double_t d ); | |||
void WriteTMatrixDToXML ( void* node, const char* name, TMatri xD* mat ); | void WriteTMatrixDToXML ( void* node, const char* name, TMatri xD* mat ); | |||
void WriteTVectorDToXML ( void* node, const char* name, TVecto rD* vec ); | void WriteTVectorDToXML ( void* node, const char* name, TVecto rD* vec ); | |||
void ReadTMatrixDFromXML( void* node, const char* name, TMatri xD* mat ); | void ReadTMatrixDFromXML( void* node, const char* name, TMatri xD* mat ); | |||
void ReadTVectorDFromXML( void* node, const char* name, TVecto rD* vec ); | void ReadTVectorDFromXML( void* node, const char* name, TVecto rD* vec ); | |||
Bool_t HistoHasEquidistantBins(const TH1& h); | Bool_t HistoHasEquidistantBins(const TH1& h); | |||
template<typename T> | template<typename T> | |||
void ReadAttr ( void* node, const char* , T& value ); | inline void ReadAttr( void* node, const char* , T& value ); | |||
inline void ReadAttr( void* node, const char* attrname, TString& valu | ||||
e ); | ||||
template<typename T> | template<typename T> | |||
void AddAttr ( void* node, const char* , const T& value, I nt_t precision = 16 ); | void AddAttr ( void* node, const char* , const T& value, I nt_t precision = 16 ); | |||
void* AddChild ( void* parent, const char* childname, const char* content = 0 ); | void* AddChild ( void* parent, const char* childname, const char* content = 0 ); | |||
void* GetChild ( void* parent, const char* childname=0 ); | void* GetChild ( void* parent, const char* childname=0 ); | |||
void* GetNextChild( void* prevchild, const char* childname=0 ); | void* GetNextChild( void* prevchild, const char* childname=0 ); | |||
const char* GetContent ( void* node ); | const char* GetContent ( void* node ); | |||
TXMLEngine& xmlengine() { return *fXMLEngine; } | TXMLEngine& xmlengine() { return *fXMLEngine; } | |||
TXMLEngine* fXMLEngine; | TXMLEngine* fXMLEngine; | |||
skipping to change at line 247 | skipping to change at line 256 | |||
template<typename T> | template<typename T> | |||
void TMVA::Tools::ReadAttr( void* node, const char* attrname, T& value ) | void TMVA::Tools::ReadAttr( void* node, const char* attrname, T& value ) | |||
{ | { | |||
// add attribute from xml | // add attribute from xml | |||
const char* val = xmlengine().GetAttr(node, attrname); | const char* val = xmlengine().GetAttr(node, attrname); | |||
std::stringstream s(val); | std::stringstream s(val); | |||
s >> value; | s >> value; | |||
} | } | |||
//_______________________________________________________________________ | //_______________________________________________________________________ | |||
void TMVA::Tools::ReadAttr( void* node, const char* attrname, TString& valu | ||||
e ) | ||||
{ | ||||
// add attribute from xml | ||||
const char* val = xmlengine().GetAttr(node, attrname); | ||||
value = TString(val); | ||||
} | ||||
//_______________________________________________________________________ | ||||
template<typename T> | template<typename T> | |||
void TMVA::Tools::AddAttr( void* node, const char* attrname, const T& value , Int_t precision ) | void TMVA::Tools::AddAttr( void* node, const char* attrname, const T& value , Int_t precision ) | |||
{ | { | |||
// add attribute to xml | // add attribute to xml | |||
std::stringstream s; | std::stringstream s; | |||
s.precision( precision ); | s.precision( precision ); | |||
s << std::scientific << value; | s << std::scientific << value; | |||
gTools().xmlengine().NewAttr(node, 0, attrname, s.str().c_str()); | gTools().xmlengine().NewAttr(node, 0, attrname, s.str().c_str()); | |||
} | } | |||
End of changes. 8 change blocks. | ||||
6 lines changed or deleted | 25 lines changed or added | |||
TransformationHandler.h | TransformationHandler.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: TransformationHandler.h 29195 2009-06-24 10:39:49Z br un $ | // @(#)root/tmva $Id: TransformationHandler.h 31458 2009-11-30 13:58:20Z st elzer $ | |||
// Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : TransformationHandler * | * Class : TransformationHandler * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Contains all the data information * | * Contains all the data information * | |||
skipping to change at line 80 | skipping to change at line 80 | |||
TString GetName() const; | TString GetName() const; | |||
TString GetVariableAxisTitle( const VariableInfo& info ) const; | TString GetVariableAxisTitle( const VariableInfo& info ) const; | |||
const Event* Transform(const Event*) const; | const Event* Transform(const Event*) const; | |||
const Event* InverseTransform(const Event*) const; | const Event* InverseTransform(const Event*) const; | |||
// overrides the reference classes of all added transformations. Hand le with care!!! | // overrides the reference classes of all added transformations. Hand le with care!!! | |||
void SetTransformationReferenceClass( Int_t cls ); | void SetTransformationReferenceClass( Int_t cls ); | |||
void AddTransformation(VariableTransformBase*, Int_t cls ); | VariableTransformBase* AddTransformation(VariableTransformBase*, Int_ t cls ); | |||
const TList& GetTransformationList() const { return fTransformation s; } | const TList& GetTransformationList() const { return fTransformation s; } | |||
Int_t GetNumOfTransformations() const { return fTransformation s.GetSize(); } | Int_t GetNumOfTransformations() const { return fTransformation s.GetSize(); } | |||
std::vector<Event*>* CalcTransformations( const std::vector<Event*>&, Bool_t createNewVector = kFALSE ); | std::vector<Event*>* CalcTransformations( const std::vector<Event*>&, Bool_t createNewVector = kFALSE ); | |||
void CalcStats( const std::vector<Event*>& events ); | 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 ); | 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 GetMean ( Int_t ivar, Int_t cls = -1 ) const; | |||
Double_t GetRMS ( 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 GetMin ( Int_t ivar, Int_t cls = -1 ) const; | |||
Double_t GetMax ( Int_t ivar, Int_t cls = -1 ) const; | Double_t GetMax ( Int_t ivar, Int_t cls = -1 ) const; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
Types.h | Types.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Types.h 29195 2009-06-24 10:39:49Z brun $ | // @(#)root/tmva $Id: Types.h 31458 2009-11-30 13:58:20Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : Types * | * Class : Types * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* GLobal types (singleton class) * | * GLobal types (singleton class) * | |||
skipping to change at line 51 | skipping to change at line 51 | |||
#ifndef ROOT_Rtypes | #ifndef ROOT_Rtypes | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
#ifndef ROOT_TString | #ifndef ROOT_TString | |||
#include "TString.h" | #include "TString.h" | |||
#endif | #endif | |||
namespace TMVA { | namespace TMVA { | |||
typedef UInt_t TMVAVersion_t; | ||||
class MsgLogger; | class MsgLogger; | |||
// message types for MsgLogger | // message types for MsgLogger | |||
// define outside of Types class to facilite access | // define outside of Types class to facilite access | |||
enum EMsgType { | enum EMsgType { | |||
kDEBUG = 1, | kDEBUG = 1, | |||
kVERBOSE = 2, | kVERBOSE = 2, | |||
kINFO = 3, | kINFO = 3, | |||
kWARNING = 4, | kWARNING = 4, | |||
kERROR = 5, | kERROR = 5, | |||
skipping to change at line 93 | skipping to change at line 95 | |||
kRuleFit , | kRuleFit , | |||
kSVM , | kSVM , | |||
kMLP , | kMLP , | |||
kBayesClassifier, | kBayesClassifier, | |||
kFDA , | kFDA , | |||
kCommittee , | kCommittee , | |||
kBoost , | kBoost , | |||
kPDEFoam , | kPDEFoam , | |||
kLD , | kLD , | |||
kPlugins , | kPlugins , | |||
kCategory , | ||||
kMaxMethod | kMaxMethod | |||
}; | }; | |||
// available variable transformations | // available variable transformations | |||
enum EVariableTransform { | enum EVariableTransform { | |||
kIdentity = 0, | kIdentity = 0, | |||
kDecorrelated, | kDecorrelated, | |||
kNormalized, | kNormalized, | |||
kPCA, | kPCA, | |||
kGaussDecorr, | kGaussDecorr, | |||
kMaxVariableTransform | kMaxVariableTransform | |||
}; | }; | |||
// type of analysis | // type of analysis | |||
enum EAnalysisType { | enum EAnalysisType { | |||
kClassification = 0, | kClassification = 0, | |||
kRegression, | kRegression, | |||
kMulticlass, | ||||
kNoAnalysisType, | kNoAnalysisType, | |||
kMaxAnalysisType | kMaxAnalysisType | |||
}; | }; | |||
enum ESBType { | enum ESBType { | |||
kSignal = 0, // Never change this number - it is elsewhere assume d to be zero ! | kSignal = 0, // Never change this number - it is elsewhere assume d to be zero ! | |||
kBackground, | kBackground, | |||
kSBBoth, | kSBBoth, | |||
kMaxSBType, | kMaxSBType, | |||
kTrueType | kTrueType | |||
End of changes. 4 change blocks. | ||||
1 lines changed or deleted | 5 lines changed or added | |||
VariableDecorrTransform.h | VariableDecorrTransform.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: VariableDecorrTransform.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: VariableDecorrTransform.h 31574 2009-12-05 18:23:21Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : VariableDecorrTransform * | * Class : VariableDecorrTransform * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Decorrelation of input variables * | * Decorrelation of input variables * | |||
skipping to change at line 43 | skipping to change at line 43 | |||
// VariableDecorrTransform // | // VariableDecorrTransform // | |||
// // | // // | |||
// Linear interpolation class // | // Linear interpolation class // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#ifndef ROOT_TMatrixDfwd | #ifndef ROOT_TMatrixDfwd | |||
#include "TMatrixDfwd.h" | #include "TMatrixDfwd.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMatrixDSymfwd | ||||
#include "TMatrixDSymfwd.h" | ||||
#endif | ||||
#ifndef ROOT_TMVA_VariableTransformBase | #ifndef ROOT_TMVA_VariableTransformBase | |||
#include "TMVA/VariableTransformBase.h" | #include "TMVA/VariableTransformBase.h" | |||
#endif | #endif | |||
namespace TMVA { | namespace TMVA { | |||
class VariableDecorrTransform : public VariableTransformBase { | class VariableDecorrTransform : public VariableTransformBase { | |||
public: | public: | |||
skipping to change at line 64 | skipping to change at line 68 | |||
virtual ~VariableDecorrTransform( void ); | virtual ~VariableDecorrTransform( void ); | |||
void Initialize(); | void Initialize(); | |||
Bool_t PrepareTransformation( const std::vector<Event*>& ); | Bool_t PrepareTransformation( const std::vector<Event*>& ); | |||
// virtual const Event* Transform(const Event* const, Types::ESB Type type = Types::kMaxSBType) const; | // virtual const Event* Transform(const Event* const, Types::ESB Type type = Types::kMaxSBType) const; | |||
virtual const Event* Transform(const Event* const, Int_t cls ) const; | virtual const Event* Transform(const Event* const, Int_t cls ) const; | |||
virtual const Event* InverseTransform(const Event* const, Int_t cls ) const; | virtual const Event* InverseTransform(const Event* const, Int_t cls ) const; | |||
void WriteTransformationToStream ( std::ostream& ) const; | void WriteTransformationToStream ( std::ostream& ) const; | |||
void ReadTransformationFromStream( std::istream& ); | void ReadTransformationFromStream( std::istream&, const TString& ); | |||
virtual void AttachXMLTo(void* parent); | virtual void AttachXMLTo(void* parent); | |||
virtual void ReadFromXML( void* trfnode ); | virtual void ReadFromXML( void* trfnode ); | |||
virtual void PrintTransformation( ostream & o ); | virtual void PrintTransformation( ostream & o ); | |||
// writer of function code | // writer of function code | |||
virtual void MakeFunction( std::ostream& fout, const TString& fncName , Int_t part, UInt_t trCounter, Int_t cls ); | virtual void MakeFunction( std::ostream& fout, const TString& fncName , Int_t part, UInt_t trCounter, Int_t cls ); | |||
// provides string vector giving explicit transformation | // provides string vector giving explicit transformation | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 6 lines changed or added | |||
VariableGaussTransform.h | VariableGaussTransform.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: VariableGaussTransform.h 29197 2009-06-24 13:03:05Z b run $ | // @(#)root/tmva $Id: VariableGaussTransform.h 31458 2009-11-30 13:58:20Z s telzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Eckhard v. Toerne | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Eckhard v. Toerne | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : VariableGaussTransform * | * Class : VariableGaussTransform * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Decorrelation of input variables * | * Decorrelation of input variables * | |||
skipping to change at line 99 | skipping to change at line 99 | |||
VariableGaussTransform( DataSetInfo& dsi ); | VariableGaussTransform( DataSetInfo& dsi ); | |||
virtual ~VariableGaussTransform( void ); | virtual ~VariableGaussTransform( void ); | |||
void Initialize(); | void Initialize(); | |||
Bool_t PrepareTransformation( const std::vector<Event*>& ); | Bool_t PrepareTransformation( const std::vector<Event*>& ); | |||
virtual const Event* Transform(const Event* const, Int_t cls ) const; | virtual const Event* Transform(const Event* const, Int_t cls ) const; | |||
virtual const Event* InverseTransform(const Event* const, Int_t cls ) const; | virtual const Event* InverseTransform(const Event* const, Int_t cls ) const; | |||
void WriteTransformationToStream ( std::ostream& ) const; | void WriteTransformationToStream ( std::ostream& ) const; | |||
void ReadTransformationFromStream( std::istream& ); | void ReadTransformationFromStream( std::istream&, const TString& ); | |||
virtual void AttachXMLTo(void* parent); | virtual void AttachXMLTo(void* parent); | |||
virtual void ReadFromXML( void* trfnode ); | virtual void ReadFromXML( void* trfnode ); | |||
virtual void PrintTransformation( ostream & o ); | virtual void PrintTransformation( ostream & o ); | |||
// writer of function code | // writer of function code | |||
virtual void MakeFunction( std::ostream& fout, const TString& fncName , Int_t part, UInt_t trCounter, Int_t cls ); | virtual void MakeFunction( std::ostream& fout, const TString& fncName , Int_t part, UInt_t trCounter, Int_t cls ); | |||
private: | private: | |||
Bool_t fFlatNotGaussD; | Bool_t fFlatNotGaussD; | |||
Int_t fPdfMinSmooth; | Int_t fPdfMinSmooth; | |||
Int_t fPdfMaxSmooth; | Int_t fPdfMaxSmooth; | |||
UInt_t fElementsPerBin; | ||||
// mutable Event* fTransformedEvent; | // mutable Event* fTransformedEvent; | |||
std::vector< std::vector< TH1F* > > fCumulativeDist; //! The C ummulative distributions | std::vector< std::vector< TH1F* > > fCumulativeDist; //! The C ummulative distributions | |||
//std::vector< std::vector< TGraph* > > fCumulativeGraph; //! The Cummulative distributions | //std::vector< std::vector< TGraph* > > fCumulativeGraph; //! The Cummulative distributions | |||
//std::vector< std::vector< TSpline3* > > fCumulativeSpline; //! The Cummulative distributions | //std::vector< std::vector< TSpline3* > > fCumulativeSpline; //! The Cummulative distributions | |||
std::vector< std::vector< PDF*> > fCumulativePDF; // The cumulative PDF | std::vector< std::vector< PDF*> > fCumulativePDF; // The cumulative PDF | |||
void GetCumulativeDist( const std::vector<Event*>& ); | void GetCumulativeDist( const std::vector<Event*>& ); | |||
void CleanUpCumulativeArrays(TString opt = "ALL"); | void CleanUpCumulativeArrays(TString opt = "ALL"); | |||
// needed for backward compatibility | ||||
UInt_t fElementsperbin; // av number of events stored per bin in cum | ||||
dist | ||||
Double_t OldCumulant(Float_t x, TH1* h ) const; | ||||
ClassDef(VariableGaussTransform,0) // Variable transformation: Gauss transformation | ClassDef(VariableGaussTransform,0) // Variable transformation: Gauss transformation | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif | #endif | |||
End of changes. 5 change blocks. | ||||
3 lines changed or deleted | 8 lines changed or added | |||
VariableIdentityTransform.h | VariableIdentityTransform.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: VariableIdentityTransform.h 29196 2009-06-24 11:16:34 Z brun $ | // @(#)root/tmva $Id: VariableIdentityTransform.h 31458 2009-11-30 13:58:20 Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : VariableIdentityTransform * | * Class : VariableIdentityTransform * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Identity transform * | * Identity transform * | |||
skipping to change at line 56 | skipping to change at line 56 | |||
public: | public: | |||
VariableIdentityTransform( DataSetInfo& dsi ); | VariableIdentityTransform( DataSetInfo& dsi ); | |||
virtual ~VariableIdentityTransform( void ) {} | virtual ~VariableIdentityTransform( void ) {} | |||
void Initialize(); | void Initialize(); | |||
Bool_t PrepareTransformation( const std::vector<Event*>& ); | Bool_t PrepareTransformation( const std::vector<Event*>& ); | |||
void WriteTransformationToStream ( std::ostream& ) const {} | void WriteTransformationToStream ( std::ostream& ) const {} | |||
void ReadTransformationFromStream( std::istream& ) { SetCreated(); } | void ReadTransformationFromStream( std::istream&, const TString& ) { SetCreated(); } | |||
virtual void AttachXMLTo(void* parent); | virtual void AttachXMLTo(void* parent); | |||
virtual void ReadFromXML( void* trfnode ); | virtual void ReadFromXML( void* trfnode ); | |||
virtual const Event* Transform(const Event* const, Int_t cls ) const; | virtual const Event* Transform(const Event* const, Int_t cls ) const; | |||
virtual const Event* InverseTransform(const Event* const ev, Int_t cl s ) const { return Transform( ev, cls ); } | virtual const Event* InverseTransform(const Event* const ev, Int_t cl s ) const { return Transform( ev, cls ); } | |||
// writer of function code | // writer of function code | |||
virtual void MakeFunction(std::ostream& fout, const TString& fncName, Int_t part, UInt_t trCounter, Int_t cls ); | virtual void MakeFunction(std::ostream& fout, const TString& fncName, Int_t part, UInt_t trCounter, Int_t cls ); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
VariableNormalizeTransform.h | VariableNormalizeTransform.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: VariableNormalizeTransform.h 29122 2009-06-22 06:51:3 0Z brun $ | // @(#)root/tmva $Id: VariableNormalizeTransform.h 31458 2009-11-30 13:58:2 0Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : VariableNormalizeTransform * | * Class : VariableNormalizeTransform * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Decorrelation of input variables * | * Decorrelation of input variables * | |||
skipping to change at line 63 | skipping to change at line 63 | |||
VariableNormalizeTransform( DataSetInfo& dsi ); | VariableNormalizeTransform( DataSetInfo& dsi ); | |||
virtual ~VariableNormalizeTransform( void ); | virtual ~VariableNormalizeTransform( void ); | |||
void Initialize(); | void Initialize(); | |||
Bool_t PrepareTransformation( const std::vector<Event*>& ); | Bool_t PrepareTransformation( const std::vector<Event*>& ); | |||
virtual const Event* Transform(const Event* const, Int_t cls ) const; | virtual const Event* Transform(const Event* const, Int_t cls ) const; | |||
virtual const Event* InverseTransform( const Event* const, Int_t cls ) const; | virtual const Event* InverseTransform( const Event* const, Int_t cls ) const; | |||
void WriteTransformationToStream ( std::ostream& ) const; | void WriteTransformationToStream ( std::ostream& ) const; | |||
void ReadTransformationFromStream( std::istream& ); | void ReadTransformationFromStream( std::istream&, const TString& ); | |||
void BuildTransformationFromVarInfo( const std::vector<TMVA::Variable | ||||
Info>& var ); | ||||
virtual void AttachXMLTo(void* parent); | virtual void AttachXMLTo(void* parent); | |||
virtual void ReadFromXML( void* trfnode ); | virtual void ReadFromXML( void* trfnode ); | |||
virtual void PrintTransformation( ostream & o ); | virtual void PrintTransformation( ostream & o ); | |||
// writer of function code | // writer of function code | |||
virtual void MakeFunction( std::ostream& fout, const TString& fncName , Int_t part, UInt_t trCounter, Int_t cls ); | virtual void MakeFunction( std::ostream& fout, const TString& fncName , Int_t part, UInt_t trCounter, Int_t cls ); | |||
// provides string vector giving explicit transformation | // provides string vector giving explicit transformation | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 4 lines changed or added | |||
VariablePCATransform.h | VariablePCATransform.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: VariablePCATransform.h 29122 2009-06-22 06:51:30Z bru n $ | // @(#)root/tmva $Id: VariablePCATransform.h 31458 2009-11-30 13:58:20Z ste lzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : VariablePCATransform * | * Class : VariablePCATransform * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Principal value composition of input variables * | * Principal value composition of input variables * | |||
skipping to change at line 63 | skipping to change at line 63 | |||
VariablePCATransform( DataSetInfo& dsi ); | VariablePCATransform( DataSetInfo& dsi ); | |||
virtual ~VariablePCATransform( void ); | virtual ~VariablePCATransform( void ); | |||
void Initialize(); | void Initialize(); | |||
Bool_t PrepareTransformation( const std::vector<Event*>& ); | Bool_t PrepareTransformation( const std::vector<Event*>& ); | |||
virtual const Event* Transform(const Event* const, Int_t cls ) const; | virtual const Event* Transform(const Event* const, Int_t cls ) const; | |||
virtual const Event* InverseTransform(const Event* const, Int_t cls ) const; | virtual const Event* InverseTransform(const Event* const, Int_t cls ) const; | |||
void WriteTransformationToStream ( std::ostream& ) const; | void WriteTransformationToStream ( std::ostream& ) const; | |||
void ReadTransformationFromStream( std::istream& ); | void ReadTransformationFromStream( std::istream&, const TString& ); | |||
virtual void AttachXMLTo(void* parent); | virtual void AttachXMLTo(void* parent); | |||
virtual void ReadFromXML( void* trfnode ); | virtual void ReadFromXML( void* trfnode ); | |||
// writer of function code | // writer of function code | |||
virtual void MakeFunction( std::ostream& fout, const TString& fncName , Int_t part, UInt_t trCounter, Int_t cls ); | virtual void MakeFunction( std::ostream& fout, const TString& fncName , Int_t part, UInt_t trCounter, Int_t cls ); | |||
private: | private: | |||
void CalculatePrincipalComponents( const std::vector<Event*>& ); | void CalculatePrincipalComponents( const std::vector<Event*>& ); | |||
std::vector<Double_t> X2P( const std::vector<Float_t>&, Int_t cls ) c onst; | std::vector<Float_t> X2P( const std::vector<Float_t>&, Int_t cls ) co nst; | |||
// mutable Event* fTransformedEvent; | // mutable Event* fTransformedEvent; | |||
// store relevant parts of PCA locally | // store relevant parts of PCA locally | |||
std::vector<TVectorD*> fMeanValues; // mean values | std::vector<TVectorD*> fMeanValues; // mean values | |||
std::vector<TMatrixD*> fEigenVectors; // eigenvectors | std::vector<TMatrixD*> fEigenVectors; // eigenvectors | |||
ClassDef(VariablePCATransform,0) // Variable transformation: Principa l Value Composition | ClassDef(VariablePCATransform,0) // Variable transformation: Principa l Value Composition | |||
}; | }; | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
VariableTransformBase.h | VariableTransformBase.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: VariableTransformBase.h 29195 2009-06-24 10:39:49Z br un $ | // @(#)root/tmva $Id: VariableTransformBase.h 31578 2009-12-06 00:33:46Z st elzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : VariableTransformBase * | * Class : VariableTransformBase * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Pre-transformation of input variables (base class) * | * Pre-transformation of input variables (base class) * | |||
skipping to change at line 92 | skipping to change at line 92 | |||
Bool_t IsCreated() const { return fCreated; } | Bool_t IsCreated() const { return fCreated; } | |||
Bool_t IsNormalised() const { return fNormalise; } | Bool_t IsNormalised() const { return fNormalise; } | |||
void SetUseSignalTransform( Bool_t e=kTRUE) { fUseSignalTransform = e ; } | void SetUseSignalTransform( Bool_t e=kTRUE) { fUseSignalTransform = e ; } | |||
Bool_t UseSignalTransform() const { return fUseSignalTransform; } | Bool_t UseSignalTransform() const { return fUseSignalTransform; } | |||
virtual const char* GetName() const { return fTransformName.Data(); } | virtual const char* GetName() const { return fTransformName.Data(); } | |||
TString GetShortName() const { TString a(fTransformName); a.ReplaceAl l("Transform",""); return a; } | TString GetShortName() const { TString a(fTransformName); a.ReplaceAl l("Transform",""); return a; } | |||
virtual void WriteTransformationToStream ( std::ostream& o ) const = 0; | virtual void WriteTransformationToStream ( std::ostream& o ) const = 0; | |||
virtual void ReadTransformationFromStream( std::istream& istr ) = 0; | virtual void ReadTransformationFromStream( std::istream& istr, const TString& classname="" ) = 0; | |||
virtual void AttachXMLTo(void* parent) = 0; | virtual void AttachXMLTo(void* parent) = 0; | |||
virtual void ReadFromXML( void* trfnode ) = 0; | virtual void ReadFromXML( void* trfnode ) = 0; | |||
Types::EVariableTransform GetVariableTransform() const { return fVari ableTransform; } | Types::EVariableTransform GetVariableTransform() const { return fVari ableTransform; } | |||
// writer of function code | // writer of function code | |||
virtual void MakeFunction( std::ostream& fout, const TString& fncName , Int_t part, | virtual void MakeFunction( std::ostream& fout, const TString& fncName , Int_t part, | |||
UInt_t trCounter, Int_t cls ) = 0; | UInt_t trCounter, Int_t cls ) = 0; | |||
// provides string vector giving explicit transformation | // provides string vector giving explicit transformation | |||
virtual std::vector<TString>* GetTransformationStrings( Int_t cls ) c onst; | virtual std::vector<TString>* GetTransformationStrings( Int_t cls ) c onst; | |||
virtual void PrintTransformation( ostream & ) {} | virtual void PrintTransformation( ostream & ) {} | |||
const std::vector<TMVA::VariableInfo>& Variables() const { return fVa riables; } | const std::vector<TMVA::VariableInfo>& Variables() const { return fVa riables; } | |||
const std::vector<TMVA::VariableInfo>& Targets() const { return fTa rgets; } | const std::vector<TMVA::VariableInfo>& Targets() const { return fTa rgets; } | |||
MsgLogger& Log() const { return *fLogger; } | MsgLogger& Log() const { return *fLogger; } | |||
void SetTMVAVersion(TMVAVersion_t v) { fTMVAVersion = v; } | ||||
protected: | protected: | |||
void CalcNorm( const std::vector<Event*>& ); | void CalcNorm( const std::vector<Event*>& ); | |||
void SetCreated( Bool_t c = kTRUE ) { fCreated = c; } | void SetCreated( Bool_t c = kTRUE ) { fCreated = c; } | |||
void SetNVariables( UInt_t i ) { fNVars = i; } | void SetNVariables( UInt_t i ) { fNVars = i; } | |||
void SetName( const TString& c ) { fTransformName = c; } | void SetName( const TString& c ) { fTransformName = c; } | |||
UInt_t GetNVariables() const { return fDsi.GetNVariables(); } | UInt_t GetNVariables() const { return fDsi.GetNVariables(); } | |||
UInt_t GetNTargets() const { return fDsi.GetNTargets(); } | UInt_t GetNTargets() const { return fDsi.GetNTargets(); } | |||
skipping to change at line 149 | skipping to change at line 151 | |||
Bool_t fEnabled; // has been ena bled | Bool_t fEnabled; // has been ena bled | |||
Bool_t fCreated; // has been cre ated | Bool_t fCreated; // has been cre ated | |||
Bool_t fNormalise; // normalise in put variables | Bool_t fNormalise; // normalise in put variables | |||
UInt_t fNVars; // number of va riables | UInt_t fNVars; // number of va riables | |||
TString fTransformName; // name of tran sformation | TString fTransformName; // name of tran sformation | |||
std::vector<TMVA::VariableInfo> fVariables; // event variab les [saved to weight file] | std::vector<TMVA::VariableInfo> fVariables; // event variab les [saved to weight file] | |||
std::vector<TMVA::VariableInfo> fTargets; // event target s [saved to weight file --> TODO ] | std::vector<TMVA::VariableInfo> fTargets; // event target s [saved to weight file --> TODO ] | |||
protected: | protected: | |||
TMVAVersion_t fTMVAVersion; | ||||
mutable MsgLogger* fLogger; //! message logger | mutable MsgLogger* fLogger; //! message logger | |||
ClassDef(VariableTransformBase,0) // Base class for variable trans formations | ClassDef(VariableTransformBase,0) // Base class for variable trans formations | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 6 lines changed or added | |||
Version.h | Version.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Version.h 29211 2009-06-25 10:47:22Z brun $ | // @(#)root/tmva $Id: Version.h 31839 2009-12-11 09:40:12Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Fredrik Tegenfeldt, Helge Voss | // Author: Andreas Hoecker, Joerg Stelzer, Fredrik Tegenfeldt, Helge Voss | |||
/************************************************************************** ******** | /************************************************************************** ******** | |||
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * | |||
* Package: TMVA * | * Package: TMVA * | |||
* Class : Version * | * Class : Version * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Current TMVA Version - filled automatically during cvs tagging * | * Current TMVA Version - filled automatically during cvs tagging * | |||
skipping to change at line 41 | skipping to change at line 41 | |||
#define ROOT_TMVA_Version | #define ROOT_TMVA_Version | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
// Version // | // Version // | |||
// // | // // | |||
// Automatically filled by cvs tagger: development/tmvaTag.py // | // Automatically filled by cvs tagger: development/tmvaTag.py // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#define TMVA_RELEASE "4.0.1" | #define TMVA_RELEASE "4.0.4" | |||
#define TMVA_RELEASE_DATE "Jun 25, 2009" | #define TMVA_RELEASE_DATE "Dec 11, 2009" | |||
#define TMVA_RELEASE_TIME "12:27:36" | #define TMVA_RELEASE_TIME "10:19:58" | |||
#define TMVA_VERSION_CODE 262145 | #define TMVA_VERSION_CODE 262148 | |||
#define TMVA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) | #define TMVA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
5 lines changed or deleted | 5 lines changed or added | |||