AdaptiveIntegratorMultiDim.h | AdaptiveIntegratorMultiDim.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: AdaptiveIntegratorMultiDim.h 34992 2010-08-25 10: 36:11Z moneta $ | // @(#)root/mathcore:$Id: AdaptiveIntegratorMultiDim.h 36768 2010-11-19 10: 34:53Z moneta $ | |||
// Author: M. Slawinska 08/2007 | // Author: M. Slawinska 08/2007 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2007 , LCG ROOT MathLib Team * | * Copyright (c) 2007 , LCG ROOT MathLib Team * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header source file for class AdaptiveIntegratorMultiDim | // Header source file for class AdaptiveIntegratorMultiDim | |||
skipping to change at line 43 | skipping to change at line 43 | |||
@ingroup Integration | @ingroup Integration | |||
*/ | */ | |||
class AdaptiveIntegratorMultiDim : public VirtualIntegratorMultiDim { | class AdaptiveIntegratorMultiDim : public VirtualIntegratorMultiDim { | |||
public: | public: | |||
/** | /** | |||
construct given optionally tolerance (absolute and relative) and maxi | construct given optionally tolerance (absolute and relative), maximum | |||
mum size of working array | number of function evaluation (maxpts) and | |||
size of the working array. | ||||
The size of working array represents the number of sub-division used for calculating the integral. | The size of working array represents the number of sub-division used for calculating the integral. | |||
Higher the dimension, larger sizes are required for getting the same accuracy. | Higher the dimension, larger sizes are required for getting the same accuracy. | |||
The size must be larger than >= (2N + 3) * (1 + MAXPTS/(2**N + 2N(N | ||||
+ 1) + 1))/2). For smaller value passed, the | ||||
minimum allowed will be used | ||||
*/ | */ | |||
explicit | explicit | |||
AdaptiveIntegratorMultiDim(double absTol = 1.E-6, double relTol = 1E-6, unsigned int size = 100000); | AdaptiveIntegratorMultiDim(double absTol = 1.E-6, double relTol = 1E-6, unsigned int maxpts = 100000, unsigned int size = 0); | |||
/** | /** | |||
construct with a reference to the integrand function and given option | Construct with a reference to the integrand function and given option | |||
ally | ally | |||
tolerance (absolute and relative) and maximum size of working array. | tolerance (absolute and relative), maximum number of function evaluat | |||
ion (maxpts) and | ||||
size of the working array. | ||||
*/ | */ | |||
explicit | explicit | |||
AdaptiveIntegratorMultiDim(const IMultiGenFunction &f, double absTol = 1 .E-9, double relTol = 1E-6, unsigned int size = 100000); | AdaptiveIntegratorMultiDim(const IMultiGenFunction &f, double absTol = 1 .E-9, double relTol = 1E-6, unsigned int maxcall = 100000, unsigned int si ze = 0); | |||
/** | /** | |||
destructor (no operations) | destructor (no operations) | |||
*/ | */ | |||
virtual ~AdaptiveIntegratorMultiDim() {} | virtual ~AdaptiveIntegratorMultiDim() {} | |||
/** | /** | |||
evaluate the integral with the previously given function between xmin [] and xmax[] | evaluate the integral with the previously given function between xmin [] and xmax[] | |||
*/ | */ | |||
double Integral(const double* xmin, const double * xmax) { | double Integral(const double* xmin, const double * xmax) { | |||
skipping to change at line 88 | skipping to change at line 92 | |||
/// return integration error | /// return integration error | |||
double Error() const { return fError; } | double Error() const { return fError; } | |||
/// return relative error | /// return relative error | |||
double RelError() const { return fRelError; } | double RelError() const { return fRelError; } | |||
/// return status of integration | /// return status of integration | |||
int Status() const { return fStatus; } | int Status() const { return fStatus; } | |||
/// return number of function evaluations in calculating the integral | /// return number of function evaluations in calculating the integral | |||
unsigned int NEval() const { return fNEval; } | int NEval() const { return fNEval; } | |||
/// set relative tolerance | /// set relative tolerance | |||
void SetRelTolerance(double relTol); | void SetRelTolerance(double relTol); | |||
/// set absolute tolerance | /// set absolute tolerance | |||
void SetAbsTolerance(double absTol); | void SetAbsTolerance(double absTol); | |||
///set workspace size | ||||
void SetSize(unsigned int size) { fSize = size; } | ||||
///set min points | ||||
void SetMinPts(unsigned int n) { fMinPts = n; } | ||||
///set max points | ||||
void SetMaxPts(unsigned int n) { fMaxPts = n; } | ||||
/// set the options | ||||
void SetOptions(const ROOT::Math::IntegratorMultiDimOptions & opt); | ||||
/// get the option used for the integration | ||||
ROOT::Math::IntegratorMultiDimOptions Options() const; | ||||
protected: | protected: | |||
// internal function to compute the integral (if absVal is true compute abs value of function integral | // internal function to compute the integral (if absVal is true compute abs value of function integral | |||
double DoIntegral(const double* xmin, const double * xmax, bool absVal = false); | double DoIntegral(const double* xmin, const double * xmax, bool absVal = false); | |||
private: | private: | |||
unsigned int fDim; // dimentionality of integrand | unsigned int fDim; // dimentionality of integrand | |||
unsigned int fMinPts; // minimum number of function evaluation reques | ||||
ted | ||||
unsigned int fMaxPts; // maximum number of function evaluation reques | ||||
ted | ||||
unsigned int fSize; // max size of working array (explode with dimens | ||||
ion) | ||||
double fAbsTol; // absolute tolerance | double fAbsTol; // absolute tolerance | |||
double fRelTol; // relative tolerance | double fRelTol; // relative tolerance | |||
unsigned int fSize; // max size of working array (explode with dimens ion) | ||||
double fResult; // last integration result | double fResult; // last integration result | |||
double fError; // integration error | double fError; // integration error | |||
double fRelError; // Relative error | double fRelError; // Relative error | |||
unsigned int fNEval; // number of function evaluation | int fNEval; // number of function evaluation | |||
int fStatus; // status of algorithm (error if not zero) | int fStatus; // status of algorithm (error if not zero) | |||
const IMultiGenFunction* fFun; // pointer to integrand function | const IMultiGenFunction* fFun; // pointer to integrand function | |||
}; | }; | |||
}//namespace Math | }//namespace Math | |||
}//namespace ROOT | }//namespace ROOT | |||
#endif /* ROOT_Math_AdaptiveIntegratorMultiDim */ | #endif /* ROOT_Math_AdaptiveIntegratorMultiDim */ | |||
End of changes. 11 change blocks. | ||||
12 lines changed or deleted | 37 lines changed or added | |||
AllIntegrationTypes.h | AllIntegrationTypes.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: AllIntegrationTypes.h 33180 2010-04-25 10:14:07Z moneta $ | // @(#)root/mathmore:$Id: AllIntegrationTypes.h 36764 2010-11-19 10:02:00Z moneta $ | |||
// Author: Magdalena Slawinska 10/2007 | // Author: Magdalena Slawinska 10/2007 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2007 ROOT Foundation, CERN/PH-SFT * | * Copyright (c) 2007 ROOT Foundation, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Integration types for | // Integration types for | |||
skipping to change at line 29 | skipping to change at line 29 | |||
namespace Math { | namespace Math { | |||
// type of integration | // type of integration | |||
//for 1-dim integration | //for 1-dim integration | |||
namespace IntegrationOneDim { | namespace IntegrationOneDim { | |||
/** | /** | |||
enumeration specifying the integration types. | enumeration specifying the integration types. | |||
<ul> | <ul> | |||
<li>kDEFAULT: default type specifiend in the static options | ||||
<li>kGAUSS: simple Gauss integration method with fixed rule | <li>kGAUSS: simple Gauss integration method with fixed rule | |||
<li>kLEGENDRE: Gauss-Legendre integration | <li>kLEGENDRE: Gauss-Legendre integration | |||
<li>kNONADAPTIVE : to be used for smooth functions | <li>kNONADAPTIVE : to be used for smooth functions | |||
<li>kADAPTIVE : to be used for general functions without singularit ies. | <li>kADAPTIVE : to be used for general functions without singularit ies. | |||
<li>kADAPTIVESINGULAR: default adaptive integration type which can be used in the case of the presence of singularities. | <li>kADAPTIVESINGULAR: default adaptive integration type which can be used in the case of the presence of singularities. | |||
</ul> | </ul> | |||
@ingroup Integration | @ingroup Integration | |||
*/ | */ | |||
enum Type { kGAUSS, kLEGENDRE, kADAPTIVE, kADAPTIVESINGULAR, kNONADAPT IVE}; | enum Type { kDEFAULT = -1, kGAUSS, kLEGENDRE, kADAPTIVE, kADAPTIVESING ULAR, kNONADAPTIVE}; | |||
} | } | |||
//for multi-dim integration | //for multi-dim integration | |||
namespace IntegrationMultiDim { | namespace IntegrationMultiDim { | |||
/** | /** | |||
enumeration specifying the integration types. | enumeration specifying the integration types. | |||
<ul> | <ul> | |||
<li>ADAPTIVE : adaptive multi-dimensional integration | <li>kDEFAULT : default type specified in the static option | |||
<li>PLAIN MC integration | <li>kADAPTIVE : adaptive multi-dimensional integration | |||
<li>MISER MC integration | <li>kPLAIN MC integration | |||
<li>VEGAS MC integration | <li>kMISER MC integration | |||
<li>kVEGAS MC integration | ||||
</ul> | </ul> | |||
@ingroup MCIntegration | @ingroup MCIntegration | |||
*/ | */ | |||
enum Type {kADAPTIVE, kVEGAS, kMISER, kPLAIN}; | enum Type {kDEFAULT = -1, kADAPTIVE, kVEGAS, kMISER, kPLAIN}; | |||
} | } | |||
} // namespace Math | } // namespace Math | |||
} // namespace ROOT | } // namespace ROOT | |||
#endif /* ROOT_Math_AllIntegrationTypes */ | #endif /* ROOT_Math_AllIntegrationTypes */ | |||
End of changes. 5 change blocks. | ||||
7 lines changed or deleted | 9 lines changed or added | |||
Api.h | Api.h | |||
---|---|---|---|---|
skipping to change at line 37 | skipping to change at line 37 | |||
#pragma link off all classes; | #pragma link off all classes; | |||
#pragma link off all functions; | #pragma link off all functions; | |||
#pragma link off all globals; | #pragma link off all globals; | |||
#pragma link off all typedefs; | #pragma link off all typedefs; | |||
#endif | #endif | |||
#define G__INFO_BUFLEN 50 | #define G__INFO_BUFLEN 50 | |||
/* #define G__INFO_TITLELEN 256 */ | /* #define G__INFO_TITLELEN 256 */ | |||
#define G__INFO_TITLELEN G__ONELINE | #define G__INFO_TITLELEN G__ONELINE | |||
#ifndef G__PROPERTY_H | ||||
#include "Property.h" | #include "Property.h" | |||
#endif | ||||
#ifndef G__CLASSINFO_H | ||||
#include "Class.h" | #include "Class.h" | |||
#endif | ||||
#ifndef G__BaseClassInfo_H | ||||
#include "BaseCls.h" | #include "BaseCls.h" | |||
#endif | ||||
#ifndef G__TYPEINFOX_H | ||||
#include "Type.h" | #include "Type.h" | |||
#endif | ||||
#ifndef G__METHODINFO_H | ||||
#include "Method.h" | #include "Method.h" | |||
#endif | ||||
#ifndef G__METHODARGINFO_H | ||||
#include "MethodAr.h" | #include "MethodAr.h" | |||
#endif | ||||
#ifndef G__DATAMEMBER_H | ||||
#include "DataMbr.h" | #include "DataMbr.h" | |||
#endif | ||||
#ifndef G__CALLFUNC_H | ||||
#include "CallFunc.h" | #include "CallFunc.h" | |||
#endif | ||||
#ifndef G__TYPEDEFINFO_H | ||||
#include "Typedf.h" | #include "Typedf.h" | |||
#endif | ||||
#ifndef G__TOKENINFO_H | ||||
#include "Token.h" | #include "Token.h" | |||
#endif | ||||
#include <vector> | #include <vector> | |||
#include <string> | #include <string> | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
struct G__includepath; | struct G__includepath; | |||
#endif | #endif | |||
extern "C" { | extern "C" { | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
End of changes. 11 change blocks. | ||||
0 lines changed or deleted | 20 lines changed or added | |||
BaseCls.h | BaseCls.h | |||
---|---|---|---|---|
skipping to change at line 20 | skipping to change at line 20 | |||
* Author Masaharu Goto | * Author Masaharu Goto | |||
* Copyright(c) 1995~1999 Masaharu Goto | * Copyright(c) 1995~1999 Masaharu Goto | |||
* | * | |||
* For the licensing terms see the file COPYING | * For the licensing terms see the file COPYING | |||
* | * | |||
************************************************************************/ | ************************************************************************/ | |||
#ifndef G__BaseClassInfo_H | #ifndef G__BaseClassInfo_H | |||
#define G__BaseClassInfo_H | #define G__BaseClassInfo_H | |||
#ifndef G__API_H | ||||
#include "Api.h" | #include "Api.h" | |||
#endif | ||||
namespace Cint { | namespace Cint { | |||
/********************************************************************* | /********************************************************************* | |||
* class G__BaseClassInfo | * class G__BaseClassInfo | |||
* | * | |||
* Rene says OK | * Rene says OK | |||
* | * | |||
*********************************************************************/ | *********************************************************************/ | |||
class | class | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
BayesianCalculator.h | BayesianCalculator.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: BayesianCalculator.h 35056 2010-08-27 20:03:18Z m oneta $ | // @(#)root/roostats:$Id: BayesianCalculator.h 37084 2010-11-29 21:37:13Z 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 114 | skipping to change at line 114 | |||
void SetBrfPrecision( double precision ) { fBrfPrecision = precision; } | void SetBrfPrecision( double precision ) { fBrfPrecision = precision; } | |||
// use directly the approximate posterior function obtained by binnin g it in nbins | // use directly the approximate posterior function obtained by binnin g it in nbins | |||
// by default the cdf is used by integrating the posterior | // by default the cdf is used by integrating the posterior | |||
// if a value of nbin <= 0 the cdf function will be used | // if a value of nbin <= 0 the cdf function will be used | |||
void SetScanOfPosterior(int nbin = 100) { fNScanBins = nbin; } | void SetScanOfPosterior(int nbin = 100) { fNScanBins = nbin; } | |||
// set the integration type (possible type are) | // set the integration type (possible type are) | |||
// 1D: adaptive, gauss, nonadaptive | // 1D: adaptive, gauss, nonadaptive | |||
// multidim: adaptive, vegas, miser, plain. These last 3 are based on MC integration | // multidim: adaptive, vegas, miser, plain. These last 3 are based on MC integration | |||
// if type = 0 use default specified via class IntegratorMultiDimOpti ons::SetDefaultIntegrator | ||||
void SetIntegrationType(const char * type); | void SetIntegrationType(const char * type); | |||
// return the mode (most probable value of the posterior function) | // return the mode (most probable value of the posterior function) | |||
double GetMode() const; | double GetMode() const; | |||
protected: | protected: | |||
void ClearAll() const; | void ClearAll() const; | |||
void ApproximatePosterior() const; | void ApproximatePosterior() const; | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
BinarySearchTree.h | BinarySearchTree.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: BinarySearchTree.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: BinarySearchTree.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 87 | skipping to change at line 87 | |||
BinarySearchTree( void ); | BinarySearchTree( void ); | |||
// copy constructor | // copy constructor | |||
BinarySearchTree (const BinarySearchTree &b); | BinarySearchTree (const BinarySearchTree &b); | |||
// destructor | // destructor | |||
virtual ~BinarySearchTree( void ); | virtual ~BinarySearchTree( void ); | |||
virtual Node * CreateNode( UInt_t ) const { return new BinarySearchTr eeNode(); } | virtual Node * CreateNode( UInt_t ) const { return new BinarySearchTr eeNode(); } | |||
virtual BinaryTree* CreateTree() const { return new BinarySearchTree( ); } | virtual BinaryTree* CreateTree() const { return new BinarySearchTree( ); } | |||
static BinarySearchTree* CreateFromXML(void* node, UInt_t tmva_Versio n_Code = TMVA_VERSION_CODE); | ||||
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; | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
BinaryTree.h | BinaryTree.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: BinaryTree.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: BinaryTree.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 80 | 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, UInt_t tmva_Version_Cod e = TMVA_VERSION_CODE); | // virtual BinaryTree* CreateFromXML(void* node, UInt_t tmva_Ver sion_Code = TMVA_VERSION_CODE) = 0; | |||
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; } | virtual 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; } | |||
// count the number of Nodes in the Tree by looping through the tree and updates | // count the number of Nodes in the Tree by looping through the tree and updates | |||
// the stored number. (e.g. useful when pruning, as the number count is updated when | // the stored number. (e.g. useful when pruning, as the number count is updated when | |||
// building the tree. | // building the tree. | |||
UInt_t CountNodes( Node* n = NULL ); | UInt_t CountNodes( Node* n = NULL ); | |||
UInt_t GetTotalTreeDepth() const { return fDepth; } | UInt_t GetTotalTreeDepth() const { return fDepth; } | |||
skipping to change at line 112 | skipping to change at line 112 | |||
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, UInt_t tmva_Version_Code = TMVA_VE RSION_CODE ); | 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, UInt_t tmva_Version_Code = TMVA_VER SION_CODE ); | virtual void ReadXML(void* node, UInt_t tmva_Version_Code = TMVA_VER SION_CODE ); | |||
private: | private: | |||
protected: | ||||
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: | ||||
// delete a node (and the corresponding event if owned by the tree) | // delete a node (and the corresponding event if owned by the tree) | |||
void DeleteNode( Node* ); | void DeleteNode( Node* ); | |||
UInt_t fNNodes; // total number of nodes in the tree (c ounted) | UInt_t fNNodes; // total number of nodes in the tree (c ounted) | |||
UInt_t fDepth; // maximal depth in tree reached | UInt_t fDepth; // maximal depth in tree reached | |||
static MsgLogger* fgLogger; // message logger, static to save resou rces | static MsgLogger* fgLogger; // message logger, static to save resou rces | |||
MsgLogger& Log() const { return *fgLogger; } | MsgLogger& Log() const { return *fgLogger; } | |||
ClassDef(BinaryTree,0) // Base class for BinarySearch and Decision Tr ees | ClassDef(BinaryTree,0) // Base class for BinarySearch and Decision Tr ees | |||
End of changes. 5 change blocks. | ||||
5 lines changed or deleted | 4 lines changed or added | |||
BrentMethods.h | BrentMethods.h | |||
---|---|---|---|---|
skipping to change at line 25 | skipping to change at line 25 | |||
use Brent's method with the bracketed interval | use Brent's method with the bracketed interval | |||
The step of the search is set to (xmax-xmin)/fNpx | The step of the search is set to (xmax-xmin)/fNpx | |||
type: 0-returns MinimumX | type: 0-returns MinimumX | |||
1-returns Minimum | 1-returns Minimum | |||
2-returns MaximumX | 2-returns MaximumX | |||
3-returns Maximum | 3-returns Maximum | |||
4-returns X corresponding to fy | 4-returns X corresponding to fy | |||
*/ | */ | |||
double MinimStep(const IGenFunction* f, int type, double &xmin, double & xmax, double fy, int npx = 100); | double MinimStep(const IGenFunction* f, int type, double &xmin, double & xmax, double fy, int npx = 100, bool useLog = false); | |||
/** | /** | |||
Finds a minimum of a function, if the function is unimodal between x min and xmax | Finds a minimum of a function, if the function is unimodal between x min and xmax | |||
This method uses a combination of golden section search and parabolic interpolation | This method uses a combination of golden section search and parabolic interpolation | |||
Details about convergence and properties of this algorithm can be | Details about convergence and properties of this algorithm can be | |||
found in the book by R.P.Brent "Algorithms for Minimization Without D erivatives" | found in the book by R.P.Brent "Algorithms for Minimization Without D erivatives" | |||
or in the "Numerical Recipes", chapter 10.2 | or in the "Numerical Recipes", chapter 10.2 | |||
convergence is reached using tolerance = 2 *( epsrel * abs(x) + epsa bs) | convergence is reached using tolerance = 2 *( epsrel * abs(x) + epsa bs) | |||
type: 0-returns MinimumX | type: 0-returns MinimumX | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
BrentMinimizer1D.h | BrentMinimizer1D.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: BrentMinimizer1D.h 32583 2010-03-12 09:57:42Z mon eta $ | // @(#)root/mathcore:$Id: BrentMinimizer1D.h 36905 2010-11-24 15:44:34Z mon eta $ | |||
// 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 129 | skipping to change at line 129 | |||
\@param f Function to be minimized. | \@param f Function to be minimized. | |||
\@param xlow Lower bound of the search interval. | \@param xlow Lower bound of the search interval. | |||
\@param xup Upper bound of the search interval. | \@param xup Upper bound of the search interval. | |||
*/ | */ | |||
void SetFunction(const ROOT::Math::IGenFunction& f, double xlow, doub le xup); | void SetFunction(const ROOT::Math::IGenFunction& f, double xlow, doub le xup); | |||
/** Set the number of point used to bracket root using a grid */ | /** Set the number of point used to bracket root using a grid */ | |||
void SetNpx(int npx) { fNpx = npx; } | void SetNpx(int npx) { fNpx = npx; } | |||
/** | ||||
Set a log grid scan (default is equidistant bins) | ||||
will work only if xlow > 0 | ||||
*/ | ||||
void SetLogScan(bool on) { fLogScan = on; } | ||||
/** Returns status of last estimate. If = 0 is OK */ | /** Returns status of last estimate. If = 0 is OK */ | |||
int Status() const { return fStatus; } | int Status() const { return fStatus; } | |||
// static function used to modify the default parameters | // static function used to modify the default parameters | |||
/** set number of default Npx used at construction time (when SetNpx is not called) | /** set number of default Npx used at construction time (when SetNpx is not called) | |||
Default value is 100 | Default value is 100 | |||
*/ | */ | |||
static void SetDefaultNpx(int npx); | static void SetDefaultNpx(int npx); | |||
/** set number of times the bracketing search in combination with is done to find a good interval | /** set number of times the bracketing search in combination with is done to find a good interval | |||
Default value is 10 | Default value is 10 | |||
*/ | */ | |||
static void SetDefaultNSearch(int n); | static void SetDefaultNSearch(int n); | |||
private: | private: | |||
const IGenFunction* fFunction; // Pointer to the function. | const IGenFunction* fFunction; // Pointer to the function. | |||
bool fLogScan; // flag to control usage of a log scan | ||||
int fNIter; // Number of iterations needed for the last estimation. | int fNIter; // Number of iterations needed for the last estimation. | |||
int fNpx; // Number of points to bracket minimum with grid (def is 100) | int fNpx; // Number of points to bracket minimum with grid (def is 100) | |||
int fStatus; // Status of code of the last estimate | int fStatus; // Status of code of the last estimate | |||
double fXMin; // Lower bound of the search interval. | double fXMin; // Lower bound of the search interval. | |||
double fXMax; // Upper bound of the search interval | double fXMax; // Upper bound of the search interval | |||
double fXMinimum; // Position of the stimated minimum. | double fXMinimum; // Position of the stimated minimum. | |||
}; // end class BrentMinimizer1D | }; // end class BrentMinimizer1D | |||
} // end namespace Math | } // end namespace Math | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 8 lines changed or added | |||
BrentRootFinder.h | BrentRootFinder.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: BrentRootFinder.h 32583 2010-03-12 09:57:42Z mone ta $ | // @(#)root/mathcore:$Id: BrentRootFinder.h 36905 2010-11-24 15:44:34Z mone ta $ | |||
// Authors: David Gonzalez Maline 01/2008 | // Authors: David Gonzalez Maline 01/2008 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 , LCG ROOT MathLib Team * | * Copyright (c) 2006 , LCG ROOT MathLib Team * | |||
* * | * * | |||
* 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 102 | skipping to change at line 102 | |||
\@param maxIter maximum number of iterations. | \@param maxIter maximum number of iterations. | |||
\@param absTol desired absolute error in the minimum position. | \@param absTol desired absolute error in the minimum position. | |||
\@param absTol desired relative error in the minimum position. | \@param absTol desired relative error in the minimum position. | |||
*/ | */ | |||
bool Solve(int maxIter = 100, double absTol = 1E-8, double relTol = 1 E-10); | bool Solve(int maxIter = 100, double absTol = 1E-8, double relTol = 1 E-10); | |||
/** Set the number of point used to bracket root using a grid */ | /** Set the number of point used to bracket root using a grid */ | |||
void SetNpx(int npx) { fNpx = npx; } | void SetNpx(int npx) { fNpx = npx; } | |||
/** | ||||
Set a log grid scan (default is equidistant bins) | ||||
will work only if xlow > 0 | ||||
*/ | ||||
void SetLogScan(bool on) { fLogScan = on; } | ||||
/** Returns root value. Need to call first Solve(). */ | /** Returns root value. Need to call first Solve(). */ | |||
double Root() const { return fRoot; } | double Root() const { return fRoot; } | |||
/** Returns status of last estimate. If = 0 is OK */ | /** Returns status of last estimate. If = 0 is OK */ | |||
int Status() const { return fStatus; } | int Status() const { return fStatus; } | |||
/** Return number of iteration used to find minimum */ | /** Return number of iteration used to find minimum */ | |||
int Iterations() const { return fNIter; } | int Iterations() const { return fNIter; } | |||
/** Return name of root finder algorithm ("BrentRootFinder"). */ | /** Return name of root finder algorithm ("BrentRootFinder"). */ | |||
skipping to change at line 129 | skipping to change at line 135 | |||
static void SetDefaultNpx(int npx); | static void SetDefaultNpx(int npx); | |||
/** set number of times the bracketing search in combination with is done to find a good interval | /** set number of times the bracketing search in combination with is done to find a good interval | |||
Default value is 10 | Default value is 10 | |||
*/ | */ | |||
static void SetDefaultNSearch(int n); | static void SetDefaultNSearch(int n); | |||
private: | private: | |||
const IGenFunction* fFunction; // Pointer to the function. | const IGenFunction* fFunction; // Pointer to the function. | |||
bool fLogScan; // flag to control usage of a log scan | ||||
int fNIter; // Number of iterations needed for the last estimation. | int fNIter; // Number of iterations needed for the last estimation. | |||
int fNpx; // Number of points to bracket root wi th initial grid (def is 100) | int fNpx; // Number of points to bracket root wi th initial grid (def is 100) | |||
int fStatus; // Status of code of the last estimate | int fStatus; // Status of code of the last estimate | |||
double fXMin; // Lower bound of the search interval. | double fXMin; // Lower bound of the search interval. | |||
double fXMax; // Upper bound of the search interval | double fXMax; // Upper bound of the search interval | |||
double fRoot; // Current stimation of the function r oot. | double fRoot; // Current stimation of the function r oot. | |||
}; | }; | |||
} // namespace Math | } // namespace Math | |||
} // namespace ROOT | } // namespace ROOT | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 8 lines changed or added | |||
CallFunc.h | CallFunc.h | |||
---|---|---|---|---|
skipping to change at line 19 | skipping to change at line 19 | |||
************************************************************************ | ************************************************************************ | |||
* Copyright(c) 1995~2003 Masaharu Goto | * Copyright(c) 1995~2003 Masaharu Goto | |||
* | * | |||
* For the licensing terms see the file COPYING | * For the licensing terms see the file COPYING | |||
* | * | |||
************************************************************************/ | ************************************************************************/ | |||
#ifndef G__CALLFUNC_H | #ifndef G__CALLFUNC_H | |||
#define G__CALLFUNC_H | #define G__CALLFUNC_H | |||
#ifndef G__API_H | ||||
#include "Api.h" | #include "Api.h" | |||
#endif | ||||
namespace Cint { | namespace Cint { | |||
/********************************************************************* | /********************************************************************* | |||
* class G__CallFunc | * class G__CallFunc | |||
* | * | |||
* | * | |||
*********************************************************************/ | *********************************************************************/ | |||
class | class | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
Chi2FCN.h | Chi2FCN.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: Chi2FCN.h 30539 2009-10-01 13:13:09Z moneta $ | // @(#)root/mathcore:$Id: Chi2FCN.h 37232 2010-12-03 18:09:43Z moneta $ | |||
// Author: L. Moneta Tue Sep 5 09:13:32 2006 | // Author: L. Moneta Tue Sep 5 09:13:32 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 Chi2FCN | // Header file for class Chi2FCN | |||
skipping to change at line 124 | skipping to change at line 124 | |||
return fcn; | return fcn; | |||
} | } | |||
using BaseObjFunction::operator(); | using BaseObjFunction::operator(); | |||
// effective points used in the fit (exclude the rejected one) | // effective points used in the fit (exclude the rejected one) | |||
virtual unsigned int NFitPoints() const { return fNEffPoints; } | virtual unsigned int NFitPoints() const { return fNEffPoints; } | |||
/// i-th chi-square residual | /// i-th chi-square residual | |||
virtual double DataElement(const double * x, unsigned int i, double * g) const { | virtual double DataElement(const double * x, unsigned int i, double * g) const { | |||
if (i==0) this->UpdateNCalls(); | ||||
return FitUtil::EvaluateChi2Residual(fFunc, fData, x, i, g); | return FitUtil::EvaluateChi2Residual(fFunc, fData, x, i, g); | |||
} | } | |||
// need to be virtual to be instantited | // need to be virtual to be instantited | |||
virtual void Gradient(const double *x, double *g) const { | virtual void Gradient(const double *x, double *g) const { | |||
// evaluate the chi2 gradient | // evaluate the chi2 gradient | |||
FitUtil::EvaluateChi2Gradient(fFunc, fData, x, g, fNEffPoints); | FitUtil::EvaluateChi2Gradient(fFunc, fData, x, g, fNEffPoints); | |||
} | } | |||
/// get type of fit method function | /// get type of fit method function | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
CholeskyDecomp.h | CholeskyDecomp.h | |||
---|---|---|---|---|
// @(#)root/smatrix:$Id: CholeskyDecomp.h 30561 2009-10-05 14:23:15Z moneta $ | // @(#)root/smatrix:$Id: CholeskyDecomp.h 36350 2010-10-14 13:40:45Z moneta $ | |||
// Author: M. Schiller 2009 | // Author: M. Schiller 2009 | |||
#ifndef ROOT_Math_CholeskyDecomp | #ifndef ROOT_Math_CholeskyDecomp | |||
#define ROOT_Math_CholeskyDecomp | #define ROOT_Math_CholeskyDecomp | |||
/** @file | /** @file | |||
* header file containing the templated implementation of matrix inversion | * header file containing the templated implementation of matrix inversion | |||
* routines for use with ROOT's SMatrix classes (symmetric positive | * routines for use with ROOT's SMatrix classes (symmetric positive | |||
* definite case) | * definite case) | |||
* | * | |||
* @author Manuel Schiller | * @author Manuel Schiller | |||
* @date Aug 29 2008 | * @date Aug 29 2008 | |||
* initial release inside LHCb | * initial release inside LHCb | |||
* @date May 7 2009 | * @date May 7 2009 | |||
* factored code to provide a nice Cholesky decomposition class, along | * factored code to provide a nice Cholesky decomposition class, along | |||
* with separate methods for solving a single linear system and to | * with separate methods for solving a single linear system and to | |||
* obtain the inverse matrix from the decomposition | * obtain the inverse matrix from the decomposition | |||
*/ | */ | |||
#include <cmath> | ||||
#include <algorithm> | ||||
namespace ROOT { | namespace ROOT { | |||
namespace Math { | namespace Math { | |||
/// helpers for CholeskyDecomp | /// helpers for CholeskyDecomp | |||
namespace CholeskyDecompHelpers { | namespace CholeskyDecompHelpers { | |||
// forward decls | // forward decls | |||
template<class F, unsigned N, class M> struct _decomposer; | template<class F, unsigned N, class M> struct _decomposer; | |||
template<class F, unsigned N, class M> struct _inverter; | template<class F, unsigned N, class M> struct _inverter; | |||
template<class F, unsigned N, class V> struct _solver; | template<class F, unsigned N, class V> struct _solver; | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 4 lines changed or added | |||
Class.h | Class.h | |||
---|---|---|---|---|
skipping to change at line 19 | skipping to change at line 19 | |||
************************************************************************ | ************************************************************************ | |||
* Copyright(c) 1995~1998 Masaharu Goto | * Copyright(c) 1995~1998 Masaharu Goto | |||
* | * | |||
* For the licensing terms see the file COPYING | * For the licensing terms see the file COPYING | |||
* | * | |||
************************************************************************/ | ************************************************************************/ | |||
#ifndef G__CLASSINFO_H | #ifndef G__CLASSINFO_H | |||
#define G__CLASSINFO_H | #define G__CLASSINFO_H | |||
#ifndef G__API_H | ||||
#include "Api.h" | #include "Api.h" | |||
#endif | ||||
namespace Cint { | namespace Cint { | |||
class G__MethodInfo; | class G__MethodInfo; | |||
class G__DataMemberInfo; | class G__DataMemberInfo; | |||
class G__FriendInfo; | class G__FriendInfo; | |||
/********************************************************************* | /********************************************************************* | |||
* class G__ClassInfo | * class G__ClassInfo | |||
* | * | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
CollectionProxy.h | CollectionProxy.h | |||
---|---|---|---|---|
// @(#)root/reflex:$Id: CollectionProxy.h 35298 2010-09-15 12:29:16Z pcanal $ | // @(#)root/reflex:$Id: CollectionProxy.h 36698 2010-11-16 16:40:22Z axel $ | |||
// Author: Markus Frank 2004 | // Author: Markus Frank 2004 | |||
// Copyright CERN, CH-1211 Geneva 23, 2004-2006, All rights reserved. | // Copyright CERN, CH-1211 Geneva 23, 2004-2006, All rights reserved. | |||
// | // | |||
// Permission to use, copy, modify, and distribute this software for any | // Permission to use, copy, modify, and distribute this software for any | |||
// purpose is hereby granted without fee, provided that this copyright and | // purpose is hereby granted without fee, provided that this copyright and | |||
// permissions notice appear in all copies and derivatives. | // permissions notice appear in all copies and derivatives. | |||
// | // | |||
// This software is provided "as is" without express or implied warranty. | // This software is provided "as is" without express or implied warranty. | |||
#ifndef Reflex_CollectionProxy | #ifndef Reflex_CollectionProxy | |||
#define Reflex_CollectionProxy 1 1 | #define Reflex_CollectionProxy 1 1 | |||
#include <cstddef> | #include <cstddef> | |||
// Macro indicating the version of the Collection Proxy interface followed | // Macro indicating the version of the Collection Proxy interface followed | |||
// by this Reflex build, this must match the version number of | // by this Reflex build, this must match the version number of | |||
// ROOT_COLLECTIONPROXY_VERSION in ROOT's TVirtutalCollectionProxy.h | // ROOT_COLLECTIONPROXY_VERSION in ROOT's TVirtutalCollectionProxy.h | |||
#define REFLEX_COLLECTIONPROXY_VERSION 2 | #define REFLEX_COLLECTIONPROXY_VERSION 3 | |||
// Forward declarations | // Forward declarations | |||
namespace std { | namespace std { | |||
template <class T, class A> class deque; | template <class T, class A> class deque; | |||
template <class T, class A> class vector; | template <class T, class A> class vector; | |||
template <class T, class A> class list; | template <class T, class A> class list; | |||
template <class T, class A> class queue; | template <class T, class A> class queue; | |||
template <class T, class A> class stack; | template <class T, class A> class stack; | |||
template <class K, class T, class A> class set; | template <class K, class T, class A> class set; | |||
template <class K, class T, class A> class multiset; | template <class K, class T, class A> class multiset; | |||
skipping to change at line 110 | skipping to change at line 110 | |||
}; | }; | |||
template <class T> struct CollType | template <class T> struct CollType | |||
#ifdef _KCC // KAI compiler | #ifdef _KCC // KAI compiler | |||
: public Address<typename T::value_type&> | : public Address<typename T::value_type&> | |||
#else | #else | |||
: public Address<typename T::const_reference> | : public Address<typename T::const_reference> | |||
#endif | #endif | |||
{ | { | |||
#ifdef _KCC // KAI compiler | ||||
typedef Address<typename T::value_type&> Address_t; | ||||
#else | ||||
typedef Address<typename T::const_reference> Address_t; | ||||
#endif | ||||
typedef T Cont_t; | typedef T Cont_t; | |||
typedef typename T::iterator Iter_t; | typedef typename T::iterator Iter_t; | |||
typedef typename T::value_type Value_t; | typedef typename T::value_type Value_t; | |||
typedef Reflex::Environ<Iter_t> Env_t; | typedef Reflex::Environ<Iter_t> Env_t; | |||
typedef Env_t* PEnv_t; | typedef Env_t* PEnv_t; | |||
typedef Cont_t* PCont_t; | typedef Cont_t* PCont_t; | |||
typedef Value_t* PValue_t; | typedef Value_t* PValue_t; | |||
static inline PCont_t | static inline PCont_t | |||
object(void* ptr) { | object(void* ptr) { | |||
skipping to change at line 150 | skipping to change at line 155 | |||
// Assume iterators do not need destruction | // Assume iterators do not need destruction | |||
e->fIterator = c->begin(); | e->fIterator = c->begin(); | |||
e->fSize = c->size(); | e->fSize = c->size(); | |||
if (0 == e->fSize) { return e->fStart = 0; } | if (0 == e->fSize) { return e->fStart = 0; } | |||
#ifdef _KCC // KAI compiler | #ifdef _KCC // KAI compiler | |||
typename T::value_type& ref = *(e->iter()); | typename T::value_type& ref = *(e->iter()); | |||
#else | #else | |||
typename T::const_reference ref = *(e->iter()); | typename T::const_reference ref = *(e->iter()); | |||
#endif | #endif | |||
return e->fStart = address(ref); | return e->fStart = Address_t::address(ref); | |||
} | } | |||
static void* | static void* | |||
next(void* env) { | next(void* env) { | |||
PEnv_t e = PEnv_t(env); | PEnv_t e = PEnv_t(env); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(e->fObject); | |||
for ( ; e->fIdx > 0 && e->iter() != c->end(); ++(e->iter()), --e->fId x) {} | for ( ; e->fIdx > 0 && e->iter() != c->end(); ++(e->iter()), --e->fId x) {} | |||
// TODO: Need to find something for going backwards.... | // TODO: Need to find something for going backwards.... | |||
if (e->iter() == c->end()) { return 0; } | if (e->iter() == c->end()) { return 0; } | |||
#ifdef _KCC // KAI compiler | #ifdef _KCC // KAI compiler | |||
typename T::value_type& ref = *(e->iter()); | typename T::value_type& ref = *(e->iter()); | |||
#else | #else | |||
typename T::const_reference ref = *(e->iter()); | typename T::const_reference ref = *(e->iter()); | |||
#endif | #endif | |||
return address(ref); | return Address_t::address(ref); | |||
} | } | |||
static void* | static void* | |||
construct(void* env) { | construct(void* what, size_t size) { | |||
PEnv_t e = PEnv_t(env); | PValue_t m = PValue_t(what); | |||
PValue_t m = PValue_t(e->fStart); | ||||
for (size_t i = 0; i < e->fSize; ++i, ++m) { | for (size_t i = 0; i < size; ++i, ++m) { | |||
::new (m) Value_t(); | ::new (m) Value_t(); | |||
} | } | |||
return 0; | return 0; | |||
} | } | |||
static void* | static void* | |||
collect(void* env) { | collect(void* env) { | |||
PEnv_t e = PEnv_t(env); | PEnv_t e = PEnv_t(env); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(e->fObject); | |||
PValue_t m = PValue_t(e->fStart); | PValue_t m = PValue_t(e->fStart); | |||
for (Iter_t i = c->begin(); i != c->end(); ++i, ++m) { | for (Iter_t i = c->begin(); i != c->end(); ++i, ++m) { | |||
::new (m) Value_t(*i); | ::new (m) Value_t(*i); | |||
} | } | |||
return 0; | return 0; | |||
} | } | |||
static void* | static void | |||
destruct(void* env) { | destruct(void* what, size_t size) { | |||
PEnv_t e = PEnv_t(env); | PValue_t m = PValue_t(what); | |||
PValue_t m = PValue_t(e->fStart); | ||||
for (size_t i = 0; i < e->fSize; ++i, ++m) { | for (size_t i = 0; i < size; ++i, ++m) { | |||
m->~Value_t(); | m->~Value_t(); | |||
} | } | |||
return 0; | ||||
} | } | |||
}; | }; | |||
/** @class TCollectionProxy::Map TCollectionProxy.h TCollectionProxy.h | /** @class TCollectionProxy::Map TCollectionProxy.h TCollectionProxy.h | |||
* | * | |||
* Small helper to encapsulate all necessary data accesses for | * Small helper to encapsulate all necessary data accesses for | |||
* containers like vector, list, deque | * containers like vector, list, deque | |||
* | * | |||
* @author M.Frank | * @author M.Frank | |||
skipping to change at line 223 | skipping to change at line 225 | |||
* @date 10/10/2004 | * @date 10/10/2004 | |||
*/ | */ | |||
template <class T> struct Pushback: public CollType<T> { | template <class T> struct Pushback: public CollType<T> { | |||
typedef T Cont_t; | typedef T Cont_t; | |||
typedef typename T::iterator Iter_t; | typedef typename T::iterator Iter_t; | |||
typedef typename T::value_type Value_t; | typedef typename T::value_type Value_t; | |||
typedef Environ<Iter_t> Env_t; | typedef Environ<Iter_t> Env_t; | |||
typedef Env_t* PEnv_t; | typedef Env_t* PEnv_t; | |||
typedef Cont_t* PCont_t; | typedef Cont_t* PCont_t; | |||
typedef Value_t* PValue_t; | typedef Value_t* PValue_t; | |||
static void* | static void resize(void* obj, size_t n) { | |||
resize(void* env) { | PCont_t c = PCont_t(obj); | |||
PEnv_t e = PEnv_t(env); | c->resize(n); | |||
PCont_t c = PCont_t(e->fObject); | ||||
c->resize(e->fSize); | ||||
e->fIdx = 0; | ||||
return e->fStart = address(*c->begin()); | ||||
} | } | |||
static void* | static void* | |||
feed(void* env) { | feed(void*from,void *to,size_t size) { | |||
PEnv_t e = PEnv_t(env); | PValue_t m = PValue_t(from); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(to); | |||
PValue_t m = PValue_t(e->fStart); | ||||
for (size_t i = 0; i < e->fSize; ++i, ++m) { | for (size_t i = 0; i < size; ++i, ++m) { | |||
c->push_back(*m); | c->push_back(*m); | |||
} | } | |||
return 0; | return 0; | |||
} | } | |||
static int | static int | |||
value_offset() { | value_offset() { | |||
return 0; | return 0; | |||
} | } | |||
skipping to change at line 268 | skipping to change at line 265 | |||
* @date 10/10/2004 | * @date 10/10/2004 | |||
*/ | */ | |||
template <class T> struct Insert: public CollType<T> { | template <class T> struct Insert: public CollType<T> { | |||
typedef T Cont_t; | typedef T Cont_t; | |||
typedef typename T::iterator Iter_t; | typedef typename T::iterator Iter_t; | |||
typedef typename T::value_type Value_t; | typedef typename T::value_type Value_t; | |||
typedef Environ<Iter_t> Env_t; | typedef Environ<Iter_t> Env_t; | |||
typedef Env_t* PEnv_t; | typedef Env_t* PEnv_t; | |||
typedef Cont_t* PCont_t; | typedef Cont_t* PCont_t; | |||
typedef Value_t* PValue_t; | typedef Value_t* PValue_t; | |||
static void* | static void* | |||
feed(void* env) { | feed(void*from,void*to,size_t size) { | |||
PEnv_t e = PEnv_t(env); | PValue_t m = PValue_t(from); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(to); | |||
PValue_t m = PValue_t(e->fStart); | ||||
for (size_t i = 0; i < e->fSize; ++i, ++m) { | for (size_t i = 0; i < size; ++i, ++m) { | |||
c->insert(*m); | c->insert(*m); | |||
} | } | |||
return 0; | return 0; | |||
} | } | |||
static void* | static void resize(void* /* obj */, size_t) { } | |||
resize(void* /* env */) { | ||||
return 0; | ||||
} | ||||
static int | static int | |||
value_offset() { | value_offset() { | |||
return 0; | return 0; | |||
} | } | |||
}; | }; | |||
/** @class TCollectionProxy::Map TCollectionProxy.h TCollectionProxy.h | /** @class TCollectionProxy::Map TCollectionProxy.h TCollectionProxy.h | |||
* | * | |||
skipping to change at line 309 | skipping to change at line 303 | |||
* @date 10/10/2004 | * @date 10/10/2004 | |||
*/ | */ | |||
template <class T> struct MapInsert: public CollType<T> { | template <class T> struct MapInsert: public CollType<T> { | |||
typedef T Cont_t; | typedef T Cont_t; | |||
typedef typename T::iterator Iter_t; | typedef typename T::iterator Iter_t; | |||
typedef typename T::value_type Value_t; | typedef typename T::value_type Value_t; | |||
typedef Environ<Iter_t> Env_t; | typedef Environ<Iter_t> Env_t; | |||
typedef Env_t* PEnv_t; | typedef Env_t* PEnv_t; | |||
typedef Cont_t* PCont_t; | typedef Cont_t* PCont_t; | |||
typedef Value_t* PValue_t; | typedef Value_t* PValue_t; | |||
static void* | static void* | |||
feed(void* env) { | feed(void*from,void *to,size_t size) { | |||
PEnv_t e = PEnv_t(env); | PValue_t m = PValue_t(from); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(to); | |||
PValue_t m = PValue_t(e->fStart); | ||||
for (size_t i = 0; i < e->fSize; ++i, ++m) { | for (size_t i = 0; i < size; ++i, ++m) { | |||
c->insert(*m); | c->insert(*m); | |||
} | } | |||
return 0; | return 0; | |||
} | } | |||
static void* | static void resize(void* /* obj */, size_t) { | |||
resize(void* /* env */) { | ||||
return 0; | ||||
} | } | |||
static int | static int | |||
value_offset() { | value_offset() { | |||
return ((char*) &((PValue_t(0x1000))->second)) - ((char*) PValue_t(0x 1000)); | return ((char*) &((PValue_t(0x1000))->second)) - ((char*) PValue_t(0x 1000)); | |||
} | } | |||
}; | }; | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
skipping to change at line 358 | skipping to change at line 350 | |||
* Table containing pointers to concrete functions to manipulate | * Table containing pointers to concrete functions to manipulate | |||
* Collections in a generic way | * Collections in a generic way | |||
* | * | |||
* @author M.Frank | * @author M.Frank | |||
*/ | */ | |||
struct RFLX_API CollFuncTable { | struct RFLX_API CollFuncTable { | |||
size_t iter_size; | size_t iter_size; | |||
size_t value_diff; | size_t value_diff; | |||
int value_offset; | int value_offset; | |||
void* (*size_func)(void*); | void* (*size_func)(void*); | |||
void* (*resize_func)(void*); | void (*resize_func)(void*,size_t); | |||
void* (*clear_func)(void*); | void* (*clear_func)(void*); | |||
void* (*first_func)(void*); | void* (*first_func)(void*); | |||
void* (*next_func)(void*); | void* (*next_func)(void*); | |||
void* (*construct_func)(void*); | void* (*construct_func)(void*,size_t); | |||
void* (*destruct_func)(void*); | void (*destruct_func)(void*,size_t); | |||
void* (*feed_func)(void*); | void* (*feed_func)(void*,void*,size_t); | |||
void* (*collect_func)(void*); | void* (*collect_func)(void*); | |||
void* (*create_env)(); | void* (*create_env)(); | |||
}; | }; | |||
template <typename T> struct CFTGenerator { | template <typename T> struct CFTGenerator { | |||
static CollFuncTable* | static CollFuncTable* | |||
Generate() { | Generate() { | |||
typedef typename T::Value_t Value_t; | typedef typename T::Value_t Value_t; | |||
typedef std::pair<Value_t, Value_t> Pair_t; | typedef std::pair<Value_t, Value_t> Pair_t; | |||
Pair_t* ptr = (Pair_t*) 0x1000; | Pair_t* ptr = (Pair_t*) 0x1000; | |||
skipping to change at line 402 | skipping to change at line 394 | |||
}; | }; | |||
struct CFTNullGenerator { | struct CFTNullGenerator { | |||
static void* | static void* | |||
Void_func(void*) { | Void_func(void*) { | |||
return 0; | return 0; | |||
} | } | |||
static void* | static void* | |||
Void_func0() { return 0; } | Void_func0() { return 0; } | |||
static void | ||||
Void_func2b(void*,size_t) { ; } | ||||
static void* | ||||
Void_func2(void*,size_t) { return 0; } | ||||
static void* | ||||
Void_func3(void*,void*,size_t) { return 0; } | ||||
static CollFuncTable* | static CollFuncTable* | |||
Generate() { | Generate() { | |||
CollFuncTable* p = new CollFuncTable(); | CollFuncTable* p = new CollFuncTable(); | |||
p->iter_size = 4; | p->iter_size = 4; | |||
p->value_diff = 0; | p->value_diff = 0; | |||
p->value_offset = 0; | p->value_offset = 0; | |||
p->size_func = Void_func; | p->size_func = Void_func; | |||
p->first_func = Void_func; | p->first_func = Void_func; | |||
p->next_func = Void_func; | p->next_func = Void_func; | |||
p->clear_func = Void_func; | p->clear_func = Void_func; | |||
p->resize_func = Void_func; | p->resize_func = Void_func2b; | |||
p->collect_func = Void_func; | p->collect_func = Void_func; | |||
p->construct_func = Void_func; | p->construct_func = Void_func2; | |||
p->destruct_func = Void_func; | p->destruct_func = Void_func2b; | |||
p->feed_func = Void_func; | p->feed_func = Void_func3; | |||
p->create_env = Void_func0; | p->create_env = Void_func0; | |||
return p; | return p; | |||
} // Generate | } // Generate | |||
}; | }; | |||
// General proxy (dummy) | // General proxy (dummy) | |||
template <typename A> struct Proxy {}; | template <typename A> struct Proxy {}; | |||
// Specialization for std::vector | // Specialization for std::vector | |||
template <class T, class A> struct Proxy<std::vector<T, A> > { | template <class T, class A> struct Proxy<std::vector<T, A> > { | |||
skipping to change at line 615 | skipping to change at line 616 | |||
next(void* env) { | next(void* env) { | |||
PEnv_t e = PEnv_t(env); | PEnv_t e = PEnv_t(env); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(e->fObject); | |||
for ( ; e->fIdx > 0 && e->fIterator.first != c->size(); ++(e->fIterat or.first), --e->fIdx) {} | for ( ; e->fIdx > 0 && e->fIterator.first != c->size(); ++(e->fIterat or.first), --e->fIdx) {} | |||
e->fIterator.second = (e->fIterator.first != c->size()) ? c->test(e-> fIterator.first) : false; | e->fIterator.second = (e->fIterator.first != c->size()) ? c->test(e-> fIterator.first) : false; | |||
return 0; | return 0; | |||
} | } | |||
static void* | static void* | |||
construct(void*) { | construct(void*,size_t) { | |||
// Nothing to construct. | // Nothing to construct. | |||
return 0; | return 0; | |||
} | } | |||
static void* | static void* | |||
collect(void* env) { | collect(void* env) { | |||
PEnv_t e = PEnv_t(env); | PEnv_t e = PEnv_t(env); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(e->fObject); | |||
PValue_t m = PValue_t(e->fStart); // 'start' is a buffer outside t he container. | PValue_t m = PValue_t(e->fStart); // 'start' is a buffer outside t he container. | |||
for (size_t i = 0; i != c->size(); ++i, ++m) { | for (size_t i = 0; i != c->size(); ++i, ++m) { | |||
*m = c->test(i); | *m = c->test(i); | |||
} | } | |||
return 0; | return 0; | |||
} | } | |||
static void* | static void | |||
destruct(void*) { | destruct(void*,size_t) { | |||
// Nothing to destruct. | // Nothing to destruct. | |||
return 0; | ||||
} | } | |||
}; | }; | |||
template <typename Bitset_t> | template <typename Bitset_t> | |||
struct Pushback<StdBitSetHelper<Bitset_t> > : public CollType<StdBitSetHelp er<Bitset_t> > { | struct Pushback<StdBitSetHelper<Bitset_t> > : public CollType<StdBitSetHelp er<Bitset_t> > { | |||
typedef Bitset_t Cont_t; | typedef Bitset_t Cont_t; | |||
typedef bool Iter_t; | typedef bool Iter_t; | |||
typedef bool Value_t; | typedef bool Value_t; | |||
typedef Environ<Iter_t> Env_t; | typedef Environ<Iter_t> Env_t; | |||
typedef Env_t* PEnv_t; | typedef Env_t* PEnv_t; | |||
typedef Cont_t* PCont_t; | typedef Cont_t* PCont_t; | |||
typedef Value_t* PValue_t; | typedef Value_t* PValue_t; | |||
static void* | static void resize(void* /*obj*/, size_t) { } | |||
resize(void* env) { | ||||
PEnv_t e = PEnv_t(env); | ||||
e->fIdx = 0; | ||||
return 0; | ||||
} | ||||
static void* | static void* | |||
feed(void* env) { | feed(void* env) { | |||
PEnv_t e = PEnv_t(env); | PEnv_t e = PEnv_t(env); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(e->fObject); | |||
PValue_t m = PValue_t(e->fStart); // Here start is actually a 'buf fer' outside the container. | PValue_t m = PValue_t(e->fStart); // Here start is actually a 'buf fer' outside the container. | |||
for (size_t i = 0; i < e->fSize; ++i, ++m) { | for (size_t i = 0; i < e->fSize; ++i, ++m) { | |||
c->set(i, *m); | c->set(i, *m); | |||
} | } | |||
return 0; | return 0; | |||
} | } | |||
static void* | ||||
feed(void* from, void* to, size_t size) { | ||||
PValue_t m = PValue_t(from); | ||||
PCont_t c = PCont_t(to); | ||||
for (size_t i = 0; i < size; ++i, ++m) { | ||||
c->set(i, *m); | ||||
} | ||||
return 0; | ||||
} | ||||
static int | static int | |||
value_offset() { | value_offset() { | |||
return 0; | return 0; | |||
} | } | |||
}; | }; | |||
#endif | #endif | |||
template <typename B> struct Proxy<StdBitSetHelper<B> > { | template <typename B> struct Proxy<StdBitSetHelper<B> > { | |||
static CollFuncTable* | static CollFuncTable* | |||
End of changes. 31 change blocks. | ||||
61 lines changed or deleted | 67 lines changed or added | |||
ConfidenceBelt.h | ConfidenceBelt.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: ConfidenceBelt.h 35821 2010-09-28 08:18:13Z monet a $ | // @(#)root/roostats:$Id: ConfidenceBelt.h 36024 2010-10-01 16:03:30Z monet a $ | |||
// 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_ConfidenceBelt | #ifndef RooStats_ConfidenceBelt | |||
skipping to change at line 103 | skipping to change at line 103 | |||
private: | private: | |||
LookupTable fLookupTable; // map ( Index, ( CL, leftside tail prob) ) | LookupTable fLookupTable; // map ( Index, ( CL, leftside tail prob) ) | |||
protected: | protected: | |||
ClassDef(SamplingSummaryLookup,1) // A simple class used by Confidence Belt | ClassDef(SamplingSummaryLookup,1) // A simple class used by Confidence Belt | |||
}; | }; | |||
/////////////////////////// | /////////////////////////// | |||
class AcceptanceRegion : public TObject{ | class AcceptanceRegion : public TObject{ | |||
public: | public: | |||
AcceptanceRegion() {} | AcceptanceRegion() : fLookupIndex(0), fLowerLimit(0), fUpperLimit(0) { } | |||
virtual ~AcceptanceRegion() {} | virtual ~AcceptanceRegion() {} | |||
AcceptanceRegion(Int_t lu, Double_t ll, Double_t ul){ | AcceptanceRegion(Int_t lu, Double_t ll, Double_t ul){ | |||
fLookupIndex = lu; | fLookupIndex = lu; | |||
fLowerLimit = ll; | fLowerLimit = ll; | |||
fUpperLimit = ul; | fUpperLimit = ul; | |||
} | } | |||
Int_t GetLookupIndex(){return fLookupIndex;} | Int_t GetLookupIndex(){return fLookupIndex;} | |||
Double_t GetLowerLimit(){return fLowerLimit;} | Double_t GetLowerLimit(){return fLowerLimit;} | |||
Double_t GetUpperLimit(){return fUpperLimit;} | Double_t GetUpperLimit(){return fUpperLimit;} | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
CrossEntropy.h | CrossEntropy.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: CrossEntropy.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: CrossEntropy.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 : CrossEntropy * | * Class : CrossEntropy * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: Implementation of the CrossEntropy as separation criterion * | * Description: Implementation of the CrossEntropy as separation criterion * | |||
* * | * * | |||
skipping to change at line 50 | skipping to change at line 50 | |||
#include "TMVA/SeparationBase.h" | #include "TMVA/SeparationBase.h" | |||
#endif | #endif | |||
namespace TMVA { | namespace TMVA { | |||
class CrossEntropy : public SeparationBase { | class CrossEntropy : public SeparationBase { | |||
public: | public: | |||
// default constructor | // default constructor | |||
CrossEntropy() { fName = "CE"; } | CrossEntropy(): SeparationBase() { fName = "CE"; } | |||
// copy constructor | // copy constructor | |||
CrossEntropy( const CrossEntropy& g): SeparationBase(g) {} | CrossEntropy( const CrossEntropy& g): SeparationBase(g) {} | |||
// destructor | // destructor | |||
virtual ~CrossEntropy(){} | virtual ~CrossEntropy(){} | |||
// return the separation Index -p log (p) - (1-p)log(1-p); p=pur ity = s/(s+b) | // return the separation Index -p log (p) - (1-p)log(1-p); p=pur ity = s/(s+b) | |||
virtual Double_t GetSeparationIndex( const Double_t &s, const Double_ t &b ); | virtual Double_t GetSeparationIndex( const Double_t &s, const Double_ t &b ); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
DaemonUtils.h | DaemonUtils.h | |||
---|---|---|---|---|
// @(#)root/auth:$Id: DaemonUtils.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/auth:$Id: DaemonUtils.h 36126 2010-10-06 15:14:52Z ganis $ | |||
// Author: Gerri Ganis 19/1/2004 | // Author: Gerri Ganis 19/1/2004 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2003, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2003, 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 44 | skipping to change at line 44 | |||
#endif | #endif | |||
#ifndef ROOT_rpddefs | #ifndef ROOT_rpddefs | |||
#include "rpddefs.h" | #include "rpddefs.h" | |||
#endif | #endif | |||
extern Int_t SrvAuthImpl(TSocket *socket, const char *, const char *, | extern Int_t SrvAuthImpl(TSocket *socket, const char *, const char *, | |||
std::string &user, Int_t &meth, | std::string &user, Int_t &meth, | |||
Int_t &type, std::string &ctoken, TSeqCollection * ); | Int_t &type, std::string &ctoken, TSeqCollection * ); | |||
extern Int_t SrvClupImpl(TSeqCollection *); | extern Int_t SrvClupImpl(TSeqCollection *); | |||
typedef void (*ErrorHandler_t)(int level, const char *msg); | typedef void (*ErrorHandler_t)(int level, const char *msg, int size); | |||
namespace ROOT { | namespace ROOT { | |||
// Error handlers prototypes ... | // Error handlers prototypes ... | |||
extern ErrorHandler_t gErrSys; | extern ErrorHandler_t gErrSys; | |||
extern ErrorHandler_t gErrFatal; | extern ErrorHandler_t gErrFatal; | |||
extern ErrorHandler_t gErr; | extern ErrorHandler_t gErr; | |||
int GetErrno(); | int GetErrno(); | |||
void ResetErrno(); | void ResetErrno(); | |||
void ErrorInit(const char *ident); | void ErrorInit(const char *ident); | |||
void ErrorInfo(const char *fmt, ...); | void ErrorInfo(const char *fmt, ...); | |||
void Perror(char *buf); | void Perror(char *buf, int size); | |||
void Error(ErrorHandler_t ErrHand,int code,const char *fmt, ...); | void Error(ErrorHandler_t ErrHand,int code,const char *fmt, ...); | |||
void RpdAuthCleanup(const char *sstr, int opt); | void RpdAuthCleanup(const char *sstr, int opt); | |||
int RpdCleanupAuthTab(const char *crypttoken); | int RpdCleanupAuthTab(const char *crypttoken); | |||
int RpdGenRSAKeys(int); | int RpdGenRSAKeys(int); | |||
void RpdSetErrorHandler(ErrorHandler_t Err, ErrorHandler_t Sys, | void RpdSetErrorHandler(ErrorHandler_t Err, ErrorHandler_t Sys, | |||
ErrorHandler_t Fatal); | ErrorHandler_t Fatal); | |||
void RpdSetMethInitFlag(int methinit); | void RpdSetMethInitFlag(int methinit); | |||
int RpdInitSession(int, std::string &, int &, int &, int &, std::string &) ; | int RpdInitSession(int, std::string &, int &, int &, int &, std::string &) ; | |||
void RpdInit(EService serv, int pid, int sproto, | void RpdInit(EService serv, int pid, int sproto, | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
DataMbr.h | DataMbr.h | |||
---|---|---|---|---|
skipping to change at line 19 | skipping to change at line 19 | |||
************************************************************************ | ************************************************************************ | |||
* Copyright(c) 1995~1998 Masaharu Goto | * Copyright(c) 1995~1998 Masaharu Goto | |||
* | * | |||
* For the licensing terms see the file COPYING | * For the licensing terms see the file COPYING | |||
* | * | |||
************************************************************************/ | ************************************************************************/ | |||
#ifndef G__DATAMEMBER_H | #ifndef G__DATAMEMBER_H | |||
#define G__DATAMEMBER_H | #define G__DATAMEMBER_H | |||
#ifndef G__API_H | ||||
#include "Api.h" | #include "Api.h" | |||
#endif | ||||
namespace Cint { | namespace Cint { | |||
/********************************************************************* | /********************************************************************* | |||
* class G__DataMemberInfo | * class G__DataMemberInfo | |||
* | * | |||
* | * | |||
*********************************************************************/ | *********************************************************************/ | |||
class | class | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
DataRange.h | DataRange.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: DataRange.h 33180 2010-04-25 10:14:07Z moneta $ | // @(#)root/mathcore:$Id: DataRange.h 36558 2010-11-09 15:13:13Z moneta $ | |||
// Author: L. Moneta Wed Aug 30 11:05:02 2006 | // Author: L. Moneta Wed Aug 30 11:05:02 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 DataRange | // Header file for class DataRange | |||
skipping to change at line 69 | skipping to change at line 69 | |||
DataRange(double xmin, double xmax, double ymin, double ymax, double zmi n, double zmax); | DataRange(double xmin, double xmax, double ymin, double ymax, double zmi n, double zmax); | |||
/** | /** | |||
get range dimension | get range dimension | |||
*/ | */ | |||
unsigned int NDim() const { return fRanges.size(); } | unsigned int NDim() const { return fRanges.size(); } | |||
/** | /** | |||
return range size for coordinate icoord (starts from zero) | return range size for coordinate icoord (starts from zero) | |||
Size == 0 indicates no range is present [-inf, + inf] | Size == 0 indicates no range is present [-inf, + inf] | |||
*/ | */ | |||
unsigned int Size(unsigned int icoord) const { | unsigned int Size(unsigned int icoord = 0) const { | |||
return icoord < fRanges.size() ? fRanges[icoord].size() : 0; | return icoord < fRanges.size() ? fRanges[icoord].size() : 0; | |||
} | } | |||
/** | /** | |||
return true if a range has been set in any of the coordinates | return true if a range has been set in any of the coordinates | |||
i.e. when it is not [-inf,+inf] for all coordinates | i.e. when it is not [-inf,+inf] for all coordinates | |||
Avoid in case of multi-dim to loop on all the coordinated and ask the size | Avoid in case of multi-dim to loop on all the coordinated and ask the size | |||
*/ | */ | |||
bool IsSet() const { | bool IsSet() const { | |||
for (unsigned int icoord = 0; icoord < fRanges.size(); ++icoord) | for (unsigned int icoord = 0; icoord < fRanges.size(); ++icoord) | |||
if (fRanges[icoord].size() > 0) return true; | if (fRanges[icoord].size() > 0) return true; | |||
return false; | return false; | |||
} | } | |||
/** | /** | |||
return the vector of ranges for the coordinate icoord | return the vector of ranges for the coordinate icoord | |||
*/ | */ | |||
const RangeSet & Ranges(unsigned int icoord) const { | const RangeSet & Ranges(unsigned int icoord = 0) const { | |||
// return icoord < fRanges.size() ? fRanges[icoord] : RangeSet(); | // return icoord < fRanges.size() ? fRanges[icoord] : RangeSet(); | |||
return fRanges.at(icoord); | return fRanges.at(icoord); | |||
} | } | |||
/** | /** | |||
return the first range for the coordinate icoord. | return the i-th range for the coordinate icoord. | |||
Useful method when only one range is present for the given coordinat e | Useful method when only one range is present for the given coordinat e | |||
*/ | */ | |||
std::pair<double, double> operator() (unsigned int icoord) const { | std::pair<double, double> operator() (unsigned int icoord = 0,unsigned i | |||
return Size(icoord) > 0 ? fRanges[icoord].front() : std::make_pair<do | nt irange = 0) const; | |||
uble,double>(0,0); | ||||
} | ||||
/** | /** | |||
get the first range for given coordinate. If range does not exist | get the first range for given coordinate. If range does not exist | |||
return -inf, +inf | return -inf, +inf | |||
*/ | */ | |||
void GetRange(unsigned int icoord, double & xmin, double & xmax) const { | void GetRange(unsigned int icoord, double & xmin, double & xmax) const { | |||
if (Size(icoord) == 0) GetInfRange(xmin,xmax); | if (Size(icoord) == 0) GetInfRange(xmin,xmax); | |||
else { | else { | |||
xmin = fRanges[icoord].front().first; | xmin = fRanges[icoord].front().first; | |||
xmax = fRanges[icoord].front().second; | xmax = fRanges[icoord].front().second; | |||
End of changes. 5 change blocks. | ||||
8 lines changed or deleted | 6 lines changed or added | |||
DataSet.h | DataSet.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: DataSet.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: DataSet.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 : DataSet * | * Class : DataSet * | |||
* 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 122 | skipping to change at line 122 | |||
Long64_t GetNEvtSigTest(); | Long64_t GetNEvtSigTest(); | |||
Long64_t GetNEvtBkgdTest(); | Long64_t GetNEvtBkgdTest(); | |||
Long64_t GetNEvtSigTrain(); | Long64_t GetNEvtSigTrain(); | |||
Long64_t GetNEvtBkgdTrain(); | Long64_t GetNEvtBkgdTrain(); | |||
Bool_t HasNegativeEventWeights() const { return fHasNegativeEventW eights; } | Bool_t HasNegativeEventWeights() const { return fHasNegativeEventW eights; } | |||
Results* GetResults ( const TString &, | Results* GetResults ( const TString &, | |||
Types::ETreeType type, | Types::ETreeType type, | |||
Types::EAnalysisType analysistype ); | Types::EAnalysisType analysistype ); | |||
void DeleteResults ( const TString &, | ||||
Types::ETreeType type, | ||||
Types::EAnalysisType analysistype ); | ||||
void SetVerbose( Bool_t ) {} | void SetVerbose( Bool_t ) {} | |||
// sets the number of blocks to which the training set is divided, | // sets the number of blocks to which the training set is divided, | |||
// some of which are given to the Validation sample. As default they belong all to Training set. | // some of which are given to the Validation sample. As default they belong all to Training set. | |||
void DivideTrainingSet( UInt_t blockNum ); | void DivideTrainingSet( UInt_t blockNum ); | |||
// sets a certrain block from the origin training set to belong to ei ther Training or Validation set | // sets a certrain block from the origin training set to belong to ei ther Training or Validation set | |||
void MoveTrainingBlock( Int_t blockInd,Types::ETreeType dest, Bo ol_t applyChanges = kTRUE ); | void MoveTrainingBlock( Int_t blockInd,Types::ETreeType dest, Bo ol_t applyChanges = kTRUE ); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 4 lines changed or added | |||
DataSetInfo.h | DataSetInfo.h | |||
---|---|---|---|---|
// // @(#)root/tmva $Id: DataSetInfo.h 33928 2010-06-15 16:19:31Z stelzer $ | // // @(#)root/tmva $Id: DataSetInfo.h 37097 2010-11-30 12:28:05Z evt $ | |||
// 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 : 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 175 | skipping to change at line 175 | |||
const TString& hTitle ) const; | const TString& hTitle ) const; | |||
// options | // options | |||
void SetSplitOptions(const TString& so) { fSplitOptions = so; fNeedsRebuilding = kTRUE; } | void SetSplitOptions(const TString& so) { fSplitOptions = so; fNeedsRebuilding = kTRUE; } | |||
const TString& GetSplitOptions() const { return fSplitOptions; } | const TString& GetSplitOptions() const { return fSplitOptions; } | |||
// root dir | // root dir | |||
void SetRootDir(TDirectory* d) { fOwnRootDir = d; } | void SetRootDir(TDirectory* d) { fOwnRootDir = d; } | |||
TDirectory* GetRootDir() const { return fOwnRootDir; } | TDirectory* GetRootDir() const { return fOwnRootDir; } | |||
void SetMsgType( EMsgType t ) const; | ||||
private: | private: | |||
TMVA::DataSetManager* fDataSetManager; // DSMTEST | TMVA::DataSetManager* fDataSetManager; // DSMTEST | |||
void SetDataSetManager( DataSetManager* dsm ) { fDataSetManager = dsm; } // DSMTEST | void SetDataSetManager( DataSetManager* dsm ) { fDataSetManager = dsm; } // DSMTEST | |||
friend class DataSetManager; // DSMTEST (datasetmanager test) | friend class DataSetManager; // DSMTEST (datasetmanager test) | |||
DataSetInfo( const DataSetInfo& ) : TObject() {} | DataSetInfo( const DataSetInfo& ) : TObject() {} | |||
void PrintCorrelationMatrix( TTree* theTree ); | void PrintCorrelationMatrix( TTree* theTree ); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
DecisionTree.h | DecisionTree.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: DecisionTree.h 35739 2010-09-26 11:21:36Z stelzer $ | // @(#)root/tmva $Id: DecisionTree.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 : DecisionTree * | * Class : DecisionTree * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Implementation of a Decision Tree * | * Implementation of a Decision Tree * | |||
skipping to change at line 86 | skipping to change at line 86 | |||
typedef std::vector<TMVA::Event*> EventList; | typedef std::vector<TMVA::Event*> EventList; | |||
// the constructur needed for the "reading" of the decision tree from weight files | // the constructur needed for the "reading" of the decision tree from weight files | |||
DecisionTree( void ); | DecisionTree( void ); | |||
// the constructur needed for constructing the decision tree via trai ning with events | // the constructur needed for constructing the decision tree via trai ning with events | |||
DecisionTree( SeparationBase *sepType, Int_t minSize, | DecisionTree( SeparationBase *sepType, Int_t minSize, | |||
Int_t nCuts, | Int_t nCuts, | |||
UInt_t cls =0, | UInt_t cls =0, | |||
Bool_t randomisedTree=kFALSE, Int_t useNvars=0, | Bool_t randomisedTree=kFALSE, Int_t useNvars=0, Bool_t usePoissonNvars=kFALSE, | |||
UInt_t nNodesMax=999999, UInt_t nMaxDepth=9999999, | UInt_t nNodesMax=999999, UInt_t nMaxDepth=9999999, | |||
Int_t iSeed=fgRandomSeed, Float_t purityLimit=0.5, | Int_t iSeed=fgRandomSeed, Float_t purityLimit=0.5, | |||
Int_t treeID = 0); | Int_t treeID = 0); | |||
// copy constructor | // copy constructor | |||
DecisionTree (const DecisionTree &d); | DecisionTree (const DecisionTree &d); | |||
virtual ~DecisionTree( void ); | virtual ~DecisionTree( void ); | |||
virtual Node * CreateNode(UInt_t) const { return new DecisionTreeNode | // Retrieves the address of the root node | |||
(); } | virtual DecisionTreeNode* GetRoot() const { return dynamic_cast<TMVA: | |||
:DecisionTreeNode*>(fRoot); } | ||||
virtual DecisionTreeNode * CreateNode(UInt_t) const { return new Deci | ||||
sionTreeNode(); } | ||||
virtual BinaryTree* CreateTree() const { return new DecisionTree(); } | virtual BinaryTree* CreateTree() const { return new DecisionTree(); } | |||
static DecisionTree* CreateFromXML(void* node, UInt_t tmva_Version_C ode = TMVA_VERSION_CODE); | ||||
virtual const char* ClassName() const { return "DecisionTree"; } | virtual const char* ClassName() const { return "DecisionTree"; } | |||
// building of a tree by recursivly splitting the nodes | // building of a tree by recursivly splitting the nodes | |||
UInt_t BuildTree( const EventList & eventSample, | UInt_t BuildTree( const EventList & eventSample, | |||
DecisionTreeNode *node = NULL); | DecisionTreeNode *node = NULL); | |||
// determine the way how a node is split (which variable, which cut v alue) | // determine the way how a node is split (which variable, which cut v alue) | |||
Double_t TrainNode( const EventList & eventSample, DecisionTreeNode *node ) { return TrainNodeFast( eventSample, node ); } | Double_t TrainNode( const EventList & eventSample, DecisionTreeNode *node ) { return TrainNodeFast( eventSample, node ); } | |||
Double_t TrainNodeFast( const EventList & eventSample, DecisionTreeN ode *node ); | Double_t TrainNodeFast( const EventList & eventSample, DecisionTreeN ode *node ); | |||
Double_t TrainNodeFull( const EventList & eventSample, DecisionTreeN ode *node ); | Double_t TrainNodeFull( const EventList & eventSample, DecisionTreeN ode *node ); | |||
void GetRandomisedVariables(Bool_t *useVariable, UInt_t *variableM | ||||
ap, UInt_t & nVars); | ||||
std::vector<Double_t> GetFisherCoefficients(const EventList &eventSa | ||||
mple, UInt_t nFisherVars, UInt_t *mapVarInFisher); | ||||
// fill at tree with a given structure already (just see how many sig na/bkgr | // fill at tree with a given structure already (just see how many sig na/bkgr | |||
// events end up in each node | // events end up in each node | |||
void FillTree( EventList & eventSample); | void FillTree( EventList & eventSample); | |||
// fill the existing the decision tree structure by filling event | // fill the existing the decision tree structure by filling event | |||
// in from the top node and see where they happen to end up | // in from the top node and see where they happen to end up | |||
void FillEvent( TMVA::Event & event, | void FillEvent( TMVA::Event & event, | |||
TMVA::DecisionTreeNode *node ); | TMVA::DecisionTreeNode *node ); | |||
skipping to change at line 160 | skipping to change at line 165 | |||
// pass a single validation event throught a pruned decision tree | // pass a single validation event throught a pruned decision tree | |||
void CheckEventWithPrunedTree( const TMVA::Event& ) const; | void CheckEventWithPrunedTree( const TMVA::Event& ) const; | |||
// calculate the normalization factor for a pruning validation sample | // calculate the normalization factor for a pruning validation sample | |||
Double_t GetSumWeights( const EventList* validationSample ) const; | Double_t GetSumWeights( const EventList* validationSample ) const; | |||
void SetNodePurityLimit( Double_t p ) { fNodePurityLimit = p; } | void SetNodePurityLimit( Double_t p ) { fNodePurityLimit = p; } | |||
Double_t GetNodePurityLimit( ) const { return fNodePurityLimit; } | Double_t GetNodePurityLimit( ) const { return fNodePurityLimit; } | |||
void DescendTree( DecisionTreeNode *n = NULL ); | void DescendTree( Node *n = NULL ); | |||
void SetParentTreeInNodes( DecisionTreeNode *n = NULL ); | void SetParentTreeInNodes( Node *n = NULL ); | |||
DecisionTreeNode* GetLeftDaughter( DecisionTreeNode *n ); | ||||
DecisionTreeNode* GetRightDaughter( DecisionTreeNode *n ); | ||||
// retrieve node from the tree. Its position (up to a maximal tree de pth of 64) | // retrieve node from the tree. Its position (up to a maximal tree de pth of 64) | |||
// is coded as a sequence of left-right moves starting from the root, coded as | // is coded as a sequence of left-right moves starting from the root, coded as | |||
// 0-1 bit patterns stored in the "long-integer" together with the de pth | // 0-1 bit patterns stored in the "long-integer" together with the de pth | |||
DecisionTreeNode* GetNode( ULong_t sequence, UInt_t depth ); | Node* GetNode( ULong_t sequence, UInt_t depth ); | |||
UInt_t CleanTree(DecisionTreeNode *node=NULL); | UInt_t CleanTree(DecisionTreeNode *node=NULL); | |||
void PruneNode(TMVA::DecisionTreeNode *node); | void PruneNode(TMVA::DecisionTreeNode *node); | |||
// prune a node from the tree without deleting its descendants; allow s one to | // prune a node from the tree without deleting its descendants; allow s one to | |||
// effectively prune a tree many times without making deep copies | // effectively prune a tree many times without making deep copies | |||
void PruneNodeInPlace( TMVA::DecisionTreeNode* node ); | void PruneNodeInPlace( TMVA::DecisionTreeNode* node ); | |||
UInt_t CountLeafNodes(TMVA::DecisionTreeNode *n = NULL); | UInt_t CountLeafNodes(TMVA::Node *n = NULL); | |||
void SetTreeID(Int_t treeID){fTreeID = treeID;}; | void SetTreeID(Int_t treeID){fTreeID = treeID;}; | |||
Int_t GetTreeID(){return fTreeID;}; | Int_t GetTreeID(){return fTreeID;}; | |||
Bool_t DoRegression() const { return fAnalysisType == Types::kRegress ion; } | Bool_t DoRegression() const { return fAnalysisType == Types::kRegress ion; } | |||
void SetAnalysisType (Types::EAnalysisType t) { fAnalysisType = t;} | void SetAnalysisType (Types::EAnalysisType t) { fAnalysisType = t;} | |||
Types::EAnalysisType GetAnalysisType ( void ) { return fAnalysisType; } | Types::EAnalysisType GetAnalysisType ( void ) { return fAnalysisType; } | |||
inline void SetUseFisherCuts(Bool_t t=kTRUE) { fUseFisherCuts = t;} | ||||
inline void SetMinLinCorrForFisher(Double_t min){fMinLinCorrForFisher | ||||
= min;} | ||||
inline void SetUseExclusiveVars(Bool_t t=kTRUE){fUseExclusiveVars = t | ||||
;} | ||||
private: | private: | |||
// utility functions | // utility functions | |||
// calculate the Purity out of the number of sig and bkg events colle cted | // calculate the Purity out of the number of sig and bkg events colle cted | |||
// from individual samples. | // from individual samples. | |||
// calculates the purity S/(S+B) of a given event sample | // calculates the purity S/(S+B) of a given event sample | |||
Double_t SamplePurity(EventList eventSample); | Double_t SamplePurity(EventList eventSample); | |||
UInt_t fNvars; // number of variables used to separate S and B | UInt_t fNvars; // number of variables used to separate S and B | |||
Int_t fNCuts; // number of grid point in variable cut sc ans | Int_t fNCuts; // number of grid point in variable cut sc ans | |||
Bool_t fUseFisherCuts; // use multivariate splits using the Fishe | ||||
r criterium | ||||
Double_t fMinLinCorrForFisher; // the minimum linear correlation bet | ||||
ween two variables demanded for use in fisher criterium in node splitting | ||||
Bool_t fUseExclusiveVars; // individual variables already used in | ||||
fisher criterium are not anymore analysed individually for node splitting | ||||
SeparationBase *fSepType; // the separation crition | SeparationBase *fSepType; // the separation crition | |||
RegressionVariance *fRegType; // the separation crition used in Regr ession | RegressionVariance *fRegType; // the separation crition used in Regr ession | |||
Double_t fMinSize; // min number of events in node | Double_t fMinSize; // min number of events in node | |||
Double_t fMinSepGain; // min number of separation gain to perfor m node splitting | Double_t fMinSepGain; // min number of separation gain to perfor m node splitting | |||
Bool_t fUseSearchTree; // cut scan done with binary trees or simp le event loop. | Bool_t fUseSearchTree; // cut scan done with binary trees or simp le event loop. | |||
Double_t fPruneStrength; // a parameter to set the "amount" of prun ing..needs to be adjusted | Double_t fPruneStrength; // a parameter to set the "amount" of prun ing..needs to be adjusted | |||
EPruneMethod fPruneMethod; // method used for prunig | EPruneMethod fPruneMethod; // method used for prunig | |||
Double_t fNodePurityLimit;// purity limit to decide whether a node i s signal | Double_t fNodePurityLimit;// purity limit to decide whether a node i s signal | |||
Bool_t fRandomisedTree; // choose at each node splitting a random set of variables | Bool_t fRandomisedTree; // choose at each node splitting a random set of variables | |||
Int_t fUseNvars; // the number of variables used in randomi sed trees; | Int_t fUseNvars; // the number of variables used in randomi sed trees; | |||
Bool_t fUsePoissonNvars; // use "fUseNvars" not as fixed number bu t as mean of a possion distr. in each split | ||||
TRandom3 *fMyTrandom; // random number generator for randomised trees | TRandom3 *fMyTrandom; // random number generator for randomised trees | |||
std::vector< Double_t > fVariableImportance; // the relative importan ce of the different variables | std::vector< Double_t > fVariableImportance; // the relative importan ce of the different variables | |||
UInt_t fNNodesMax; // max # of nodes | UInt_t fNNodesMax; // max # of nodes | |||
UInt_t fMaxDepth; // max depth | UInt_t fMaxDepth; // max depth | |||
UInt_t fClass; // class which is treated as signal when b uilding the tree | UInt_t fClass; // class which is treated as signal when b uilding the tree | |||
static const Int_t fgDebugLevel = 0; // debug level determining some printout/control plots etc. | static const Int_t fgDebugLevel = 0; // debug level determining some printout/control plots etc. | |||
End of changes. 11 change blocks. | ||||
12 lines changed or deleted | 29 lines changed or added | |||
DecisionTreeNode.h | DecisionTreeNode.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: DecisionTreeNode.h 35730 2010-09-25 10:59:13Z stelzer $ | // @(#)root/tmva $Id: DecisionTreeNode.h 37399 2010-12-08 15:22:07Z evt $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss, Eckhard vo n Toerne | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss, Eckhard vo n 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 : 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 49 | skipping to change at line 49 | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#ifndef ROOT_TMVA_Node | #ifndef ROOT_TMVA_Node | |||
#include "TMVA/Node.h" | #include "TMVA/Node.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Version | #ifndef ROOT_TMVA_Version | |||
#include "TMVA/Version.h" | #include "TMVA/Version.h" | |||
#endif | #endif | |||
#include <iostream> | ||||
#include <vector> | #include <vector> | |||
#include <map> | #include <map> | |||
namespace TMVA { | namespace TMVA { | |||
class DTNodeTrainingInfo | class DTNodeTrainingInfo | |||
{ | { | |||
public: | public: | |||
DTNodeTrainingInfo():fSampleMin(), | DTNodeTrainingInfo():fSampleMin(), | |||
fSampleMax(), | fSampleMax(), | |||
fNodeR(0),fSubTreeR(0),fAlpha(0),fG(0),fNTermina l(0), | fNodeR(0),fSubTreeR(0),fAlpha(0),fG(0),fNTermina l(0), | |||
skipping to change at line 125 | skipping to change at line 126 | |||
public: | public: | |||
// constructor of an essentially "empty" node floating in space | // constructor of an essentially "empty" node floating in space | |||
DecisionTreeNode (); | DecisionTreeNode (); | |||
// constructor of a daughter node as a daughter of 'p' | // constructor of a daughter node as a daughter of 'p' | |||
DecisionTreeNode (Node* p, char pos); | DecisionTreeNode (Node* p, char pos); | |||
// copy constructor | // copy constructor | |||
DecisionTreeNode (const DecisionTreeNode &n, DecisionTreeNode* parent = NULL); | DecisionTreeNode (const DecisionTreeNode &n, DecisionTreeNode* parent = NULL); | |||
// destructor | ||||
virtual ~DecisionTreeNode(); | virtual ~DecisionTreeNode(); | |||
virtual Node* CreateNode() const { return new DecisionTreeNode(); } | virtual Node* CreateNode() const { return new DecisionTreeNode(); } | |||
inline void SetNFisherCoeff(Int_t nvars){fFisherCoeff.resize(nvars);} | ||||
inline UInt_t GetNFisherCoeff() const { return fFisherCoeff.size();} | ||||
// set fisher coefficients | ||||
void SetFisherCoeff(Int_t ivar, Double_t coeff); | ||||
// get fisher coefficients | ||||
Double_t GetFisherCoeff(Int_t ivar) const {return fFisherCoeff.at(iva | ||||
r);} | ||||
// test event if it decends the tree at this node to the right | // test event if it decends the tree at this node to the right | |||
virtual Bool_t GoesRight( const Event & ) const; | virtual Bool_t GoesRight( const Event & ) const; | |||
// 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 | |||
virtual Bool_t GoesLeft ( const Event & ) const; | virtual Bool_t GoesLeft ( const Event & ) const; | |||
// set index of variable used for discrimination at this node | // set index of variable used for discrimination at this node | |||
void SetSelector( Short_t i) { fSelector = i; } | void SetSelector( Short_t i) { fSelector = i; } | |||
// return index of variable used for discrimination at this node | // return index of variable used for discrimination at this node | |||
Short_t GetSelector() const { return fSelector; } | Short_t GetSelector() const { return fSelector; } | |||
skipping to change at line 249 | skipping to change at line 258 | |||
// recursively print the node and its daughters (--> print the 'tree' ) | // recursively print the node and its daughters (--> print the 'tree' ) | |||
virtual void PrintRec( ostream& os ) const; | virtual void PrintRec( 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; | |||
// recursively clear the nodes content (S/N etc, but not the cut crit eria) | // recursively clear the nodes content (S/N etc, but not the cut crit eria) | |||
void ClearNodeAndAllDaughters(); | void ClearNodeAndAllDaughters(); | |||
// get pointers to children, mother in the tree | // get pointers to children, mother in the tree | |||
inline DecisionTreeNode* GetLeftDaughter( ) { return dynamic_cast<Dec | ||||
isionTreeNode*>(GetLeft()); } | ||||
inline DecisionTreeNode* GetRightDaughter( ) { return dynamic_cast<De | ||||
cisionTreeNode*>(GetRight()); } | ||||
inline DecisionTreeNode* GetMother( ) { return dynamic_cast<DecisionT | ||||
reeNode*>(GetParent()); } | ||||
inline const DecisionTreeNode* GetLeftDaughter( ) const { return dyna | ||||
mic_cast<DecisionTreeNode*>(GetLeft()); } | ||||
inline const DecisionTreeNode* GetRightDaughter( ) const { return dyn | ||||
amic_cast<DecisionTreeNode*>(GetRight()); } | ||||
inline const DecisionTreeNode* GetMother( ) const { return dynamic_ca | ||||
st<DecisionTreeNode*>(GetParent()); } | ||||
ULong_t GetSequence() const {return fSequence;} | ||||
void SetSequence(ULong_t s) {fSequence=s;} | // return pointer to the left/right daughter or parent node | |||
inline virtual DecisionTreeNode* GetLeft( ) const { return dynamic_ | ||||
cast<DecisionTreeNode*>(fLeft); } | ||||
inline virtual DecisionTreeNode* GetRight( ) const { return dynamic_ | ||||
cast<DecisionTreeNode*>(fRight); } | ||||
inline virtual DecisionTreeNode* GetParent( ) const { return dynamic_ | ||||
cast<DecisionTreeNode*>(fParent); } | ||||
// set pointer to the left/right daughter and parent node | ||||
inline virtual void SetLeft (Node* l) { fLeft = dynamic_cast<Decis | ||||
ionTreeNode*>(l);} | ||||
inline virtual void SetRight (Node* r) { fRight = dynamic_cast<Decis | ||||
ionTreeNode*>(r);} | ||||
inline virtual void SetParent(Node* p) { fParent = dynamic_cast<Decis | ||||
ionTreeNode*>(p);} | ||||
// the node resubstitution estimate, R(t), for Cost Complexity prunin g | // the node resubstitution estimate, R(t), for Cost Complexity prunin g | |||
inline void SetNodeR( Double_t r ) { fTrainInfo->fNodeR = r; } | inline void SetNodeR( Double_t r ) { fTrainInfo->fNodeR = r; } | |||
inline Double_t GetNodeR( ) const { return fTrainInfo->fNodeR; } | inline Double_t GetNodeR( ) const { return fTrainInfo->fNodeR; } | |||
// the resubstitution estimate, R(T_t), of the tree rooted at this no de | // the resubstitution estimate, R(T_t), of the tree rooted at this no de | |||
inline void SetSubTreeR( Double_t r ) { fTrainInfo->fSubTreeR = r; } | inline void SetSubTreeR( Double_t r ) { fTrainInfo->fSubTreeR = r; } | |||
inline Double_t GetSubTreeR( ) const { return fTrainInfo->fSubTreeR; } | inline Double_t GetSubTreeR( ) const { return fTrainInfo->fSubTreeR; } | |||
// R(t) - R(T_t) | // R(t) - R(T_t) | |||
skipping to change at line 316 | skipping to change at line 325 | |||
void SetCC(Double_t cc); | void SetCC(Double_t cc); | |||
Double_t GetCC() const {return (fTrainInfo? fTrainInfo->fCC : -1.);} | Double_t GetCC() const {return (fTrainInfo? fTrainInfo->fCC : -1.);} | |||
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); | |||
static bool fgIsTraining; // static variable to flag training phase i n which we need fTrainInfo | static bool fgIsTraining; // static variable to flag training phase i n which we need fTrainInfo | |||
private: | protected: | |||
virtual void ReadAttributes(void* node, UInt_t tmva_Version_Code = TM | static MsgLogger* fgLogger; // static because there is a huge numb | |||
VA_VERSION_CODE ); | er of nodes... | |||
virtual Bool_t ReadDataRecord( istream& is, UInt_t tmva_Version_Code | ||||
= TMVA_VERSION_CODE ); | std::vector<Double_t> fFisherCoeff; // the other fisher coef | |||
virtual void ReadContent(std::stringstream& s); | f (offset at the last element | |||
Float_t fCutValue; // cut value appplied on this node to disc riminate bkg against sig | Float_t fCutValue; // cut value appplied on this node to disc riminate bkg against sig | |||
Bool_t fCutType; // true: if event variable > cutValue ==> signal , false otherwise | Bool_t fCutType; // true: if event variable > cutValue ==> signal , false otherwise | |||
Short_t fSelector; // index of variable used in node selectio n (decision tree) | Short_t fSelector; // index of variable used in node selectio n (decision tree) | |||
Float_t fResponse; // response value in case of regression | Float_t fResponse; // response value in case of regression | |||
Float_t fRMS; // response RMS of the regression node | Float_t fRMS; // response RMS of the regression node | |||
Int_t fNodeType; // Type of node: -1 == Bkg-leaf, 1 == Sign al-leaf, 0 = internal | Int_t fNodeType; // Type of node: -1 == Bkg-leaf, 1 == Sign al-leaf, 0 = internal | |||
Float_t fPurity; // the node purity | Float_t fPurity; // the node purity | |||
ULong_t fSequence; // bit coded left right sequence to reach | ||||
the node | ||||
Bool_t fIsTerminalNode; //! flag to set node as terminal (i.e., without deleting its descendants) | Bool_t fIsTerminalNode; //! flag to set node as terminal (i.e., without deleting its descendants) | |||
static MsgLogger* fgLogger; // static because there is a huge numb er of nodes... | ||||
mutable DTNodeTrainingInfo* fTrainInfo; | mutable DTNodeTrainingInfo* fTrainInfo; | |||
ClassDef(DecisionTreeNode,0) // Node for the Decision Tree | private: | |||
}; | virtual void ReadAttributes(void* node, UInt_t tmva_Version_Code = TM | |||
VA_VERSION_CODE ); | ||||
virtual Bool_t ReadDataRecord( istream& is, UInt_t tmva_Version_Code | ||||
= TMVA_VERSION_CODE ); | ||||
virtual void ReadContent(std::stringstream& s); | ||||
ClassDef(DecisionTreeNode,0) // Node for the Decision Tree | ||||
}; | ||||
} // namespace TMVA | } // namespace TMVA | |||
#endif | #endif | |||
End of changes. 12 change blocks. | ||||
28 lines changed or deleted | 41 lines changed or added | |||
DistFunc.h | DistFunc.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: DistFunc.h 21114 2007-11-29 17:16:45Z moneta $ | // @(#)root/mathcore:$Id: DistFunc.h 37160 2010-12-01 21:52:04Z moneta $ | |||
// Authors: L. Moneta, A. Zsenei 08/2005 | // Authors: L. Moneta, A. Zsenei 08/2005 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2004 ROOT Foundation, CERN/PH-SFT * | * Copyright (c) 2004 ROOT Foundation, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
/** | /** | |||
skipping to change at line 43 | skipping to change at line 43 | |||
//quantiles functions from mathcore | //quantiles functions from mathcore | |||
#ifndef ROOT_Math_QuantFuncMathCore | #ifndef ROOT_Math_QuantFuncMathCore | |||
#include "Math/QuantFuncMathCore.h" | #include "Math/QuantFuncMathCore.h" | |||
#endif | #endif | |||
// include distributions from MathMore when is there | // include distributions from MathMore when is there | |||
#ifdef R__HAS_MATHMORE | #ifdef R__HAS_MATHMORE | |||
// // extra pdf functions from MathMore | // // extra pdf functions from MathMore | |||
// #ifndef ROOT_Math_PdfFuncMathMore | #ifndef ROOT_Math_PdfFuncMathMore | |||
// #include "Math/PdfFuncMathMore.h" | #include "Math/PdfFuncMathMore.h" | |||
// #endif | #endif | |||
// no -more extra cdf in MathMore | // no -more extra cdf in MathMore | |||
// #ifndef ROOT_Math_ProbFuncMathMore | // #ifndef ROOT_Math_ProbFuncMathMore | |||
// #include "Math/ProbFuncMathMore.h" | // #include "Math/ProbFuncMathMore.h" | |||
// #endif | // #endif | |||
// inverse (quantiles) are all in mathmore | // inverse (quantiles) are all in mathmore | |||
#ifndef ROOT_Math_QuantFuncMathMore | #ifndef ROOT_Math_QuantFuncMathMore | |||
#include "Math/QuantFuncMathMore.h" | #include "Math/QuantFuncMathMore.h" | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 4 lines changed or added | |||
DistFuncMathMore.h | DistFuncMathMore.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: DistFuncMathMore.h 21114 2007-11-29 17:16:45Z mon eta $ | // @(#)root/mathmore:$Id: DistFuncMathMore.h 37160 2010-12-01 21:52:04Z mon eta $ | |||
// Authors: L. Moneta, A. Zsenei 08/2005 | // Authors: 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 28 | skipping to change at line 28 | |||
* You should have received a copy of the GNU General Public License * | * You should have received a copy of the GNU General Public License * | |||
* along with this library (see file COPYING); if not, write * | * along with this library (see file COPYING); if not, write * | |||
* to the Free Software Foundation, Inc., 59 Temple Place, Suite * | * to the Free Software Foundation, Inc., 59 Temple Place, Suite * | |||
* 330, Boston, MA 02111-1307 USA, or contact the author. * | * 330, Boston, MA 02111-1307 USA, or contact the author. * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
#ifndef ROOT_Math_DistFuncMathMore | #ifndef ROOT_Math_DistFuncMathMore | |||
#define ROOT_Math_DistFuncMathMore | #define ROOT_Math_DistFuncMathMore | |||
// #ifndef ROOT_Math_PdfFuncMathMore | #ifndef ROOT_Math_PdfFuncMathMore | |||
// #include "Math/PdfFuncMathMore.h" | #include "Math/PdfFuncMathMore.h" | |||
// #endif | #endif | |||
// #ifndef ROOT_Math_ProbFuncMathMore | // #ifndef ROOT_Math_ProbFuncMathMore | |||
// #include "Math/ProbFuncMathMore.h" | // #include "Math/ProbFuncMathMore.h" | |||
// #endif | // #endif | |||
// quantile functions from mathmore | // quantile functions from mathmore | |||
#ifndef ROOT_Math_QuantFuncMathMore | #ifndef ROOT_Math_QuantFuncMathMore | |||
#include "Math/QuantFuncMathMore.h" | #include "Math/QuantFuncMathMore.h" | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 4 lines changed or added | |||
DistSampler.h | DistSampler.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: DistSampler.h 34077 2010-06-23 10:09:18Z moneta $ | // @(#)root/mathcore:$Id: DistSampler.h 37371 2010-12-07 16:26:39Z 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 DistSampler | // Header file for class DistSampler | |||
skipping to change at line 40 | skipping to change at line 40 | |||
namespace Fit { | namespace Fit { | |||
class DataRange; | class DataRange; | |||
class BinData; | class BinData; | |||
class UnBinData; | class UnBinData; | |||
} | } | |||
namespace Math { | namespace Math { | |||
class DistSamplerOptions; | ||||
/** | /** | |||
@defgroup Random Random number generators and generation of random numbe r distributions | @defgroup Random Random number generators and generation of random numbe r distributions | |||
@ingroup Random | @ingroup Random | |||
Classes implementing random number generators and classes implementing g eneration of random numbers | Classes implementing random number generators and classes implementing g eneration of random numbers | |||
according to arbitrary distributions | according to arbitrary distributions | |||
*/ | */ | |||
//_________________________________________________________________________ ______ | //_________________________________________________________________________ ______ | |||
/** | /** | |||
skipping to change at line 92 | skipping to change at line 94 | |||
DoSetFunction(func,false); | DoSetFunction(func,false); | |||
} | } | |||
/// return the dimension of the parent distribution (and the data) | /// return the dimension of the parent distribution (and the data) | |||
unsigned int NDim() const { return fData.size(); } | unsigned int NDim() const { return fData.size(); } | |||
/** | /** | |||
initialize the generators with the given algorithm | initialize the generators with the given algorithm | |||
Implemented by derived classes who needs it | Implemented by derived classes who needs it | |||
(like UnuranSampler) | (like UnuranSampler) | |||
If nothing is specified use default algorithm | ||||
from DistSamplerOptions::SetDefaultAlgorithm | ||||
*/ | ||||
virtual bool Init(const char * =""/* algorithm */) { return true;} | ||||
/** | ||||
initialize the generators with the given option | ||||
which my include the algorithm but also more if | ||||
the method is re-impelmented by derived class | ||||
The default implementation calls the above method | ||||
passing just the algorithm name | ||||
*/ | */ | |||
virtual bool Init(const char * /* algorithm */) { return true;} | virtual bool Init(const DistSamplerOptions & opt ); | |||
/** | /** | |||
Set the random engine to be used | Set the random engine to be used | |||
To be implemented by the derived classes who provides | To be implemented by the derived classes who provides | |||
random sampling | random sampling | |||
*/ | */ | |||
virtual void SetRandom(TRandom * ) {} | virtual void SetRandom(TRandom * ) {} | |||
/** | /** | |||
Set the random seed for the TRandom instances used by the sampler | Set the random seed for the TRandom instances used by the sampler | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 15 lines changed or added | |||
Error.h | Error.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: Error.h 34255 2010-06-30 20:52:37Z moneta $ | // @(#)root/mathcore:$Id: Error.h 36766 2010-11-19 10:16:21Z moneta $ | |||
// Authors: L. Moneta | // Authors: L. Moneta | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2007 LCG ROOT Math team, CERN/PH-SFT * | * Copyright (c) 2007 LCG ROOT Math team, CERN/PH-SFT * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
#ifndef ROOT_Math_Error | #ifndef ROOT_Math_Error | |||
#define ROOT_Math_Error | #define ROOT_Math_Error | |||
skipping to change at line 85 | skipping to change at line 85 | |||
::Info(sl.c_str(),"%s",str);} | ::Info(sl.c_str(),"%s",str);} | |||
#define MATH_WARN_MSG(loc,str) \ | #define MATH_WARN_MSG(loc,str) \ | |||
{std::string sl = "ROOT::Math::" + std::string(loc); \ | {std::string sl = "ROOT::Math::" + std::string(loc); \ | |||
::Warning(sl.c_str(),"%s",str);} | ::Warning(sl.c_str(),"%s",str);} | |||
#define MATH_ERROR_MSG(loc,str) \ | #define MATH_ERROR_MSG(loc,str) \ | |||
{std::string sl = "ROOT::Math::" + std::string(loc); \ | {std::string sl = "ROOT::Math::" + std::string(loc); \ | |||
::Error(sl.c_str(),"%s",str);} | ::Error(sl.c_str(),"%s",str);} | |||
# define MATH_INFO_VAL(loc,x) \ | # define MATH_INFO_VAL(loc,x) \ | |||
{std::string sl = "ROOT::Math::" + std::string(loc); \ | {std::string sl = "ROOT::Math::" + std::string(loc); \ | |||
std::string str = std::string(#x) + std::string(" = ") + ROOT::Math::Uti l::ToString(x); \ | std::string str = std::string(#x) + std::string(" = ") + ::ROOT::Math:: Util::ToString(x); \ | |||
::Info(sl.c_str(),"%s",str.c_str() );} | ::Info(sl.c_str(),"%s",str.c_str() );} | |||
# define MATH_WARN_VAL(loc,x) \ | # define MATH_WARN_VAL(loc,x) \ | |||
{std::string sl = "ROOT::Math::" + std::string(loc); \ | {std::string sl = "ROOT::Math::" + std::string(loc); \ | |||
std::string str = std::string(#x) + std::string(" = ") + ROOT::Math::Uti l::ToString(x); \ | std::string str = std::string(#x) + std::string(" = ") + ::ROOT::Math:: Util::ToString(x); \ | |||
::Warning(sl.c_str(),"%s",str.c_str() );} | ::Warning(sl.c_str(),"%s",str.c_str() );} | |||
# define MATH_ERROR_VAL(loc,x) \ | # define MATH_ERROR_VAL(loc,x) \ | |||
{std::string sl = "ROOT::Math::" + std::string(loc); \ | {std::string sl = "ROOT::Math::" + std::string(loc); \ | |||
std::string str = std::string(#x) + std::string(" = ") + ROOT::Math::Uti l::ToString(x); \ | std::string str = std::string(#x) + std::string(" = ") + ::ROOT::Math:: Util::ToString(x); \ | |||
::Error(sl.c_str(),"%s",str.c_str() );} | ::Error(sl.c_str(),"%s",str.c_str() );} | |||
# define MATH_INFO_MSGVAL(loc,txt,x) \ | # define MATH_INFO_MSGVAL(loc,txt,x) \ | |||
{std::string sl = "ROOT::Math::" + std::string(loc); \ | {std::string sl = "ROOT::Math::" + std::string(loc); \ | |||
std::string str = std::string(txt) + std::string("; ") + std::string(#x) + std::string(" = ") + ROOT::Math::Util::ToString(x); \ | std::string str = std::string(txt) + std::string("; ") + std::string(#x ) + std::string(" = ") + ::ROOT::Math::Util::ToString(x); \ | |||
::Info(sl.c_str(),"%s",str.c_str() );} | ::Info(sl.c_str(),"%s",str.c_str() );} | |||
# define MATH_WARN_MSGVAL(loc,txt,x) \ | # define MATH_WARN_MSGVAL(loc,txt,x) \ | |||
{std::string sl = "ROOT::Math::" + std::string(loc); \ | {std::string sl = "ROOT::Math::" + std::string(loc); \ | |||
std::string str = std::string(txt) + std::string("; ") + std::string(#x) + std::string(" = ") + ROOT::Math::Util::ToString(x); \ | std::string str = std::string(txt) + std::string("; ") + std::string(#x ) + std::string(" = ") + ::ROOT::Math::Util::ToString(x); \ | |||
::Warning(sl.c_str(),"%s",str.c_str() );} | ::Warning(sl.c_str(),"%s",str.c_str() );} | |||
# define MATH_ERROR_MSGVAL(loc,txt,x) \ | # define MATH_ERROR_MSGVAL(loc,txt,x) \ | |||
{std::string sl = "ROOT::Math::" + std::string(loc); \ | {std::string sl = "ROOT::Math::" + std::string(loc); \ | |||
std::string str = std::string(txt) + std::string("; ") + std::string(#x) + std::string(" = ") + ROOT::Math::Util::ToString(x); \ | std::string str = std::string(txt) + std::string("; ") + std::string(#x ) + std::string(" = ") + ::ROOT::Math::Util::ToString(x); \ | |||
::Error(sl.c_str(),"%s",str.c_str() );} | ::Error(sl.c_str(),"%s",str.c_str() );} | |||
#endif | #endif | |||
#endif // ROOT_MATH_Error | #endif // ROOT_MATH_Error | |||
End of changes. 7 change blocks. | ||||
7 lines changed or deleted | 7 lines changed or added | |||
Event.h | Event.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Event.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: Event.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 : Event * | * Class : Event * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Event container * | * Event container * | |||
skipping to change at line 63 | skipping to change at line 63 | |||
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>& values, | 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, Double_t weight = 1.0, Double_t boostweight = 1.0 ); | |||
explicit Event( const std::vector<Float_t>& values, | 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, Double_t weight = 1.0, Double_t boostweight = 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, Double_t weight = 1.0, Double_t boos tweight = 1.0 ); | |||
explicit Event( const std::vector<Float_t*>*&, UInt_t nvar ); | explicit Event( const std::vector<Float_t*>*&, UInt_t nvar ); | |||
~Event(); | ~Event(); | |||
// accessors | // accessors | |||
Bool_t IsDynamic() const {return fDynamic; } | Bool_t IsDynamic() const {return fDynamic; } | |||
Float_t GetWeight() const { return fWeight*fBoostWeight; } | Double_t GetWeight() const { return fWeight*fBoostWeight; } | |||
Float_t GetOriginalWeight() const { return fWeight; } | Double_t GetOriginalWeight() const { return fWeight; } | |||
Float_t GetBoostWeight() const { return TMath::Max(Float_t(0.0001) | Double_t GetBoostWeight() const { return TMath::Max(Double_t(0.000 | |||
,fBoostWeight); } | 1),fBoostWeight); } | |||
UInt_t GetClass() const { return fClass; } | UInt_t GetClass() const { return fClass; } | |||
UInt_t GetNVariables() const; | UInt_t GetNVariables() const; | |||
UInt_t GetNTargets() const; | UInt_t GetNTargets() const; | |||
UInt_t GetNSpectators() const; | UInt_t GetNSpectators() const; | |||
const std::vector<UInt_t>* GetVariableArrangement() const { return fV ariableArrangement; } | const std::vector<UInt_t>* GetVariableArrangement() const { return fV ariableArrangement; } | |||
Float_t GetValue( UInt_t ivar) const; | Float_t GetValue( UInt_t ivar) const; | |||
const std::vector<Float_t>& GetValues() const; | const std::vector<Float_t>& GetValues() const; | |||
Float_t GetTarget( UInt_t itgt ) const { return fTargets.at(itgt); } | Float_t GetTarget( UInt_t itgt ) const { return fTargets.at(itgt); } | |||
std::vector<Float_t>& GetTargets() const { return fTargets; } | std::vector<Float_t>& GetTargets() const { return fTargets; } | |||
Float_t GetSpectator( UInt_t ivar) const; | Float_t GetSpectator( UInt_t ivar) const; | |||
std::vector<Float_t>& GetSpectators() const { return fSpectators; } | std::vector<Float_t>& GetSpectators() const { return fSpectators; } | |||
void ScaleWeight ( Float_t s ) { fWeight*=s; } | void ScaleWeight ( Double_t s ) { fWeight*=s; } | |||
void SetWeight ( Float_t w ) { fWeight=w; } | void SetWeight ( Double_t w ) { fWeight=w; } | |||
void SetBoostWeight ( Float_t w ) { fBoostWeight=w; } | void SetBoostWeight ( Double_t w ) { fBoostWeight=w; } | |||
void ScaleBoostWeight ( Float_t s ) { fBoostWeight *= s; } | void ScaleBoostWeight ( Double_t s ) { fBoostWeight *= s; } | |||
void SetClass ( UInt_t t ) { fClass=t; } | void SetClass ( UInt_t t ) { fClass=t; } | |||
void SetVal ( UInt_t ivar, Float_t val ); | void SetVal ( UInt_t ivar, Float_t val ); | |||
void SetTarget ( UInt_t itgt, Float_t value ); | void SetTarget ( UInt_t itgt, Float_t value ); | |||
void SetSpectator ( UInt_t ivar, Float_t value ); | void SetSpectator ( UInt_t ivar, Float_t value ); | |||
void SetVariableArrangement( std::vector<UInt_t>* const m ) const; | void SetVariableArrangement( std::vector<UInt_t>* const m ) const; | |||
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 va lues | mutable std::vector<Float_t> fValues; // the event va lues | |||
static std::vector<Float_t*>* fgValuesDynamic; // the event va lues | mutable std::vector<Float_t*>* fValuesDynamic; // the event val ues | |||
mutable std::vector<Float_t> fTargets; // target value s for regression | mutable std::vector<Float_t> fTargets; // target value s for regression | |||
mutable std::vector<Float_t> fSpectators; // "visisting" variables 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 | 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 | Double_t fWeight; // event weight (pro | |||
duct of global and individual weights) | duct of global and individual weights) | |||
Float_t fBoostWeight; // internal weight t | Double_t fBoostWeight; // internal weight t | |||
o be set by boosting algorithm | 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 | |||
static Int_t fgCount; // count instances o | ||||
f Event | ||||
}; | }; | |||
} | } | |||
#endif | #endif | |||
End of changes. 9 change blocks. | ||||
20 lines changed or deleted | 17 lines changed or added | |||
Factory.h | Factory.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: Factory.h 33180 2010-04-25 10:14:07Z moneta $ | // @(#)root/tmva $Id: Factory.h 37535 2010-12-10 22:40:29Z evt $ | |||
// Author: L. Moneta Fri Dec 22 14:43:33 2006 | // Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss, Ka | |||
i Voss | ||||
/********************************************************************** | /************************************************************************** | |||
* * | ******** | |||
* Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis | |||
* * | * | |||
* * | * Package: TMVA | |||
**********************************************************************/ | * | |||
* Class : Factory | ||||
// Header file for class Factory | * | |||
* Web : http://tmva.sourceforge.net | ||||
#ifndef ROOT_Math_Factory | * | |||
#define ROOT_Math_Factory | * | |||
* | ||||
* Description: | ||||
* | ||||
* This is the main MVA steering class: it creates (books) all MVA met | ||||
hods, * | ||||
* and guides them through the training, testing and evaluation phases | ||||
. * | ||||
* | ||||
* | ||||
* Authors (alphabetical): | ||||
* | ||||
* Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland | ||||
* | ||||
* Joerg Stelzer <stelzer@cern.ch> - DESY, Germany | ||||
* | ||||
* Peter Speckmayer <peter.speckmayer@cern.ch> - CERN, Switzerland | ||||
* | ||||
* Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, German | ||||
y * | ||||
* Kai Voss <Kai.Voss@cern.ch> - U. of Victoria, Canada | ||||
* | ||||
* | ||||
* | ||||
* 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_Factory | ||||
#define ROOT_TMVA_Factory | ||||
////////////////////////////////////////////////////////////////////////// | ||||
// // | ||||
// Factory // | ||||
// // | ||||
// This is the main MVA steering class: it creates all MVA methods, // | ||||
// and guides them through the training, testing and evaluation // | ||||
// phases // | ||||
// // | ||||
////////////////////////////////////////////////////////////////////////// | ||||
#include <string> | #include <string> | |||
#include <vector> | ||||
#include <map> | ||||
#ifndef ROOT_TCut | ||||
#include "TCut.h" | ||||
#endif | ||||
#ifndef ROOT_TMVA_Configurable | ||||
#include "TMVA/Configurable.h" | ||||
#endif | ||||
#ifndef ROOT_TMVA_Types | ||||
#include "TMVA/Types.h" | ||||
#endif | ||||
#ifndef ROOT_TMVA_DataSet | ||||
#include "TMVA/DataSet.h" | ||||
#endif | ||||
class TFile; | ||||
class TTree; | ||||
class TDirectory; | ||||
namespace TMVA { | ||||
class IMethod; | ||||
class MethodBase; | ||||
class DataInputHandler; | ||||
class DataSetInfo; | ||||
class DataSetManager; | ||||
class VariableTransformBase; | ||||
class Factory : public Configurable { | ||||
public: | ||||
typedef std::vector<IMethod*> MVector; | ||||
// no default constructor | ||||
Factory( TString theJobName, TFile* theTargetFile, TString theOption | ||||
= "" ); | ||||
// default destructor | ||||
virtual ~Factory(); | ||||
virtual const char* GetName() const { return "Factory"; } | ||||
// add events to training and testing trees | ||||
void AddSignalTrainingEvent ( const std::vector<Double_t>& event, | ||||
Double_t weight = 1.0 ); | ||||
void AddBackgroundTrainingEvent( const std::vector<Double_t>& event, | ||||
Double_t weight = 1.0 ); | ||||
void AddSignalTestEvent ( const std::vector<Double_t>& event, | ||||
Double_t weight = 1.0 ); | ||||
void AddBackgroundTestEvent ( const std::vector<Double_t>& event, | ||||
Double_t weight = 1.0 ); | ||||
void AddTrainingEvent( const TString& className, const std::vector<Do | ||||
uble_t>& event, Double_t weight ); | ||||
void AddTestEvent ( const TString& className, const std::vector<Do | ||||
uble_t>& event, Double_t weight ); | ||||
void AddEvent ( const TString& className, Types::ETreeType tt, | ||||
const std::vector<Double_t>& event, Double_t weight ); | ||||
Bool_t UserAssignEvents(UInt_t clIndex); | ||||
TTree* CreateEventAssignTrees( const TString& name ); | ||||
DataSetInfo& AddDataSet( DataSetInfo& ); | ||||
DataSetInfo& AddDataSet( const TString& ); | ||||
// special case: signal/background | ||||
// Data input related | ||||
void SetInputTrees( const TString& signalFileName, const TString& bac | ||||
kgroundFileName, | ||||
Double_t signalWeight=1.0, Double_t backgroundWei | ||||
ght=1.0 ); | ||||
void SetInputTrees( TTree* inputTree, const TCut& SigCut, const TCut& | ||||
BgCut ); | ||||
// Set input trees at once | ||||
void SetInputTrees( TTree* signal, TTree* background, | ||||
Double_t signalWeight=1.0, Double_t backgroundWei | ||||
ght=1.0) ; | ||||
void AddSignalTree( TTree* signal, Double_t weight=1.0, Types::ETr | ||||
eeType treetype = Types::kMaxTreeType ); | ||||
void AddSignalTree( TString datFileS, Double_t weight=1.0, Types::ETr | ||||
eeType treetype = Types::kMaxTreeType ); | ||||
void AddSignalTree( TTree* signal, Double_t weight, const TString& tr | ||||
eetype ); | ||||
// ... depreciated, kept for backwards compatibility | ||||
void SetSignalTree( TTree* signal, Double_t weight=1.0); | ||||
void AddBackgroundTree( TTree* background, Double_t weight=1.0, Types | ||||
::ETreeType treetype = Types::kMaxTreeType ); | ||||
void AddBackgroundTree( TString datFileB, Double_t weight=1.0, Types | ||||
::ETreeType treetype = Types::kMaxTreeType ); | ||||
void AddBackgroundTree( TTree* background, Double_t weight, const TSt | ||||
ring & treetype ); | ||||
// ... depreciated, kept for backwards compatibility | ||||
void SetBackgroundTree( TTree* background, Double_t weight=1.0 ); | ||||
void SetSignalWeightExpression( const TString& variable ); | ||||
void SetBackgroundWeightExpression( const TString& variable ); | ||||
// special case: regression | ||||
void AddRegressionTree( TTree* tree, Double_t weight = 1.0, | ||||
Types::ETreeType treetype = Types::kMaxTreeTy | ||||
pe ) { | ||||
AddTree( tree, "Regression", weight, "", treetype ); | ||||
} | ||||
// general | ||||
// Data input related | ||||
void SetTree( TTree* tree, const TString& className, Double_t weight | ||||
); // depreciated | ||||
void AddTree( TTree* tree, const TString& className, Double_t weight= | ||||
1.0, | ||||
const TCut& cut = "", | ||||
Types::ETreeType tt = Types::kMaxTreeType ); | ||||
void AddTree( TTree* tree, const TString& className, Double_t weight, | ||||
const TCut& cut, const TString& treeType ); | ||||
// set input variable | ||||
void SetInputVariables ( std::vector<TString>* theVariables ); // de | ||||
preciated | ||||
void AddVariable ( const TString& expression, const TString& t | ||||
itle, const TString& unit, | ||||
char type='F', Double_t min = 0, Double_t m | ||||
ax = 0 ); | ||||
void AddVariable ( const TString& expression, char type='F', | ||||
Double_t min = 0, Double_t max = 0 ); | ||||
void AddTarget ( const TString& expression, const TString& t | ||||
itle = "", const TString& unit = "", | ||||
Double_t min = 0, Double_t max = 0 ); | ||||
void AddRegressionTarget( const TString& expression, const TString& t | ||||
itle = "", const TString& unit = "", | ||||
Double_t min = 0, Double_t max = 0 ) | ||||
{ | ||||
AddTarget( expression, title, unit, min, max ); | ||||
} | ||||
void AddSpectator ( const TString& expression, const TString& | ||||
title = "", const TString& unit = "", | ||||
Double_t min = 0, Double_t max = 0 ); | ||||
// set weight for class | ||||
void SetWeightExpression( const TString& variable, const TString& cla | ||||
ssName = "" ); | ||||
// set cut for class | ||||
void SetCut( const TString& cut, const TString& className = "" ); | ||||
void SetCut( const TCut& cut, const TString& className = "" ); | ||||
void AddCut( const TString& cut, const TString& className = "" ); | ||||
void AddCut( const TCut& cut, const TString& className = "" ); | ||||
// prepare input tree for training | ||||
void PrepareTrainingAndTestTree( const TCut& cut, const TString& spli | ||||
tOpt ); | ||||
void PrepareTrainingAndTestTree( TCut sigcut, TCut bkgcut, const TStr | ||||
ing& splitOpt ); | ||||
// ... deprecated, kept for backwards compatibility | ||||
void PrepareTrainingAndTestTree( const TCut& cut, Int_t Ntrain, Int_t | ||||
Ntest = -1 ); | ||||
void PrepareTrainingAndTestTree( const TCut& cut, Int_t NsigTrain, In | ||||
t_t NbkgTrain, Int_t NsigTest, Int_t NbkgTest, | ||||
const TString& otherOpt="SplitMode=R | ||||
andom:!V" ); | ||||
MethodBase* BookMethod( TString theMethodName, TString methodTitle, T | ||||
String theOption = "" ); | ||||
MethodBase* BookMethod( Types::EMVA theMethod, TString methodTitle, | ||||
TString theOption = "" ); | ||||
MethodBase* BookMethod( TMVA::Types::EMVA /*theMethod*/, | ||||
TString /*methodTitle*/, | ||||
TString /*methodOption*/, | ||||
TMVA::Types::EMVA /*theCommittee*/, | ||||
TString /*committeeOption = ""*/ ) { return 0 | ||||
; } | ||||
// optimize all booked methods (well, if desired by the method) | ||||
void OptimizeAllMethods (TString fomType="ROCIntegral | ||||
", TString fitType="FitGA"); | ||||
void OptimizeAllMethodsForClassification(TString fomType="ROCIntegral | ||||
", TString fitType="FitGA") { OptimizeAllMethods(fomType,fitType); } | ||||
void OptimizeAllMethodsForRegression (TString fomType="ROCIntegral | ||||
", TString fitType="FitGA") { OptimizeAllMethods(fomType,fitType); } | ||||
// training for all booked methods | ||||
void TrainAllMethods (); | ||||
void TrainAllMethodsForClassification( void ) { TrainAllMethods(); } | ||||
void TrainAllMethodsForRegression ( void ) { TrainAllMethods(); } | ||||
// testing | ||||
void TestAllMethods(); | ||||
// performance evaluation | ||||
void EvaluateAllMethods( void ); | ||||
void EvaluateAllVariables( TString options = "" ); | ||||
// delete all methods and reset the method vector | ||||
void DeleteAllMethods( void ); | ||||
// accessors | ||||
IMethod* GetMethod( const TString& title ) const; | ||||
Bool_t Verbose( void ) const { return fVerbose; } | ||||
void SetVerbose( Bool_t v=kTRUE ); | ||||
// make ROOT-independent C++ class for classifier response | ||||
// (classifier-specific implementation) | ||||
// If no classifier name is given, help messages for all booked | ||||
// classifiers are printed | ||||
virtual void MakeClass( const TString& methodTitle = "" ) const; | ||||
// prints classifier-specific hepl messages, dedicated to | ||||
// help with the optimisation and configuration options tuning. | ||||
// If no classifier name is given, help messages for all booked | ||||
// classifiers are printed | ||||
void PrintHelpMessage( const TString& methodTitle = "" ) const; | ||||
static TDirectory* RootBaseDir() { return (TDirectory*)fgTargetFile; | ||||
} | ||||
private: | ||||
// the beautiful greeting message | ||||
void Greetings(); | ||||
void WriteDataInformation(); | ||||
DataInputHandler& DataInput() { return *fDataInputHandler; } | ||||
DataSetInfo& DefaultDataSetInfo(); | ||||
void SetInputTreesFromEventAssignTrees(); | ||||
private: | ||||
// data members | ||||
DataSetManager* fDataSetManager; // DSMTEST | ||||
static TFile* fgTargetFile; //! ROOT | ||||
output file | ||||
DataInputHandler* fDataInputHandler; | ||||
std::vector<TMVA::VariableTransformBase*> fDefaultTrfs; //! list | ||||
of transformations on default DataSet | ||||
// cd to local directory | ||||
TString fOptions; //! optio | ||||
n string given by construction (presently only "V") | ||||
TString fTransformations; //! List | ||||
of transformations to test | ||||
Bool_t fVerbose; //! verbo | ||||
se mode | ||||
MVector fMethods; //! all M | ||||
VA methods | ||||
TString fJobName; //! jobna | ||||
me, used as extension in weight file names | ||||
// flag determining the way training and test data are assigned to Fa | ||||
ctory | ||||
enum DataAssignType { kUndefined = 0, | ||||
kAssignTrees, | ||||
kAssignEvents }; | ||||
DataAssignType fDataAssignType; //! flags | ||||
for data assigning | ||||
std::vector<TTree*> fTrainAssignTree; //! for e | ||||
ach class: tmp tree if user wants to assign the events directly | ||||
std::vector<TTree*> fTestAssignTree; //! for e | ||||
ach class: tmp tree if user wants to assign the events directly | ||||
Int_t fATreeType; // typ | ||||
e of event (=classIndex) | ||||
Float_t fATreeWeight; // wei | ||||
ght of the event | ||||
Float_t* fATreeEvent; // eve | ||||
nt variables | ||||
Types::EAnalysisType fAnalysisType; //! the t | ||||
raining type | ||||
namespace ROOT { | protected: | |||
namespace Math { | ||||
class Minimizer; | ||||
class DistSampler; | ||||
//_________________________________________________________________________ | ||||
__ | ||||
/** | ||||
Factory class holding static functions to create the interfaces like RO | ||||
OT::Math::Minimizer | ||||
via the Plugin Manager | ||||
*/ | ||||
class Factory { | ||||
public: | ||||
/** | ||||
static method to create the corrisponding Minimizer given the string | ||||
Supported Minimizers types are: | ||||
Minuit (TMinuit), Minuit2, GSLMultiMin, GSLMultiFit, GSLSimAn, Linear | ||||
, Fumili, Genetic | ||||
*/ | ||||
static ROOT::Math::Minimizer * CreateMinimizer(const std::string & minim | ||||
izerType = "Minuit2", const std::string & algoType = "Migrad"); | ||||
/** | ||||
static method to create the distribution sampler class given a string | ||||
specifying the type | ||||
Supported sampler types are: | ||||
Unuran | ||||
*/ | ||||
static ROOT::Math::DistSampler * CreateDistSampler(const std::string & s | ||||
amplerType ="Unuran"); | ||||
}; | ||||
} // end namespace Fit | ClassDef(Factory,0) // The factory creates all MVA methods, and perf | |||
orms their training and testing | ||||
}; | ||||
} // end namespace ROOT | } // namespace TMVA | |||
#endif /* ROOT_Fit_MinimizerFactory */ | #endif | |||
End of changes. 7 change blocks. | ||||
51 lines changed or deleted | 354 lines changed or added | |||
FastAllocString.h | FastAllocString.h | |||
---|---|---|---|---|
skipping to change at line 80 | skipping to change at line 80 | |||
// DON'T: these create ambiguities with ::op[char*, int] etc | // DON'T: these create ambiguities with ::op[char*, int] etc | |||
//char& operator[](int i) { return fBuf[i]; } | //char& operator[](int i) { return fBuf[i]; } | |||
//char operator[](int i) const { return fBuf[i]; } | //char operator[](int i) const { return fBuf[i]; } | |||
//char* operator+(int i) { return fBuf + i; } | //char* operator+(int i) { return fBuf + i; } | |||
//const char* operator+(int i) const { return fBuf + i; } | //const char* operator+(int i) const { return fBuf + i; } | |||
const char* data() const { return fBuf; } | const char* data() const { return fBuf; } | |||
int FormatArgList(const char *fmt, va_list args); | int FormatArgList(const char *fmt, va_list args); | |||
int FormatArgList(size_t offset, const char *fmt, va_list args); | ||||
G__FastAllocString& Format(const char *fmt, ...); | G__FastAllocString& Format(const char *fmt, ...); | |||
G__FastAllocString& Format(size_t offset, const char *fmt, ...); | ||||
size_t Capacity() const { return fCapacity; } | size_t Capacity() const { return fCapacity; } | |||
G__FastAllocString& operator=(const G__FastAllocString& s) { | G__FastAllocString& operator=(const G__FastAllocString& s) { | |||
// Copy s into *this. | // Copy s into *this. | |||
// Cannot rely on operator=(const char*) overload - compiler-generate d one wins resolution! | // Cannot rely on operator=(const char*) overload - compiler-generate d one wins resolution! | |||
return operator=(s.data()); | return operator=(s.data()); | |||
} | } | |||
G__FastAllocString& operator=(const char*); | G__FastAllocString& operator=(const char*); | |||
G__FastAllocString& operator+=(const char*); | G__FastAllocString& operator+=(const char*); | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
FeldmanCousins.h | FeldmanCousins.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: FeldmanCousins.h 34109 2010-06-24 15:00:16Z monet a $ | // @(#)root/roostats:$Id: FeldmanCousins.h 37403 2010-12-08 15:59:22Z monet a $ | |||
// 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_FeldmanCousins | #ifndef ROOSTATS_FeldmanCousins | |||
skipping to change at line 23 | skipping to change at line 23 | |||
#ifndef ROOT_Rtypes | #ifndef ROOT_Rtypes | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
#ifndef ROOSTATS_IntervalCalculator | #ifndef ROOSTATS_IntervalCalculator | |||
#include "RooStats/IntervalCalculator.h" | #include "RooStats/IntervalCalculator.h" | |||
#endif | #endif | |||
#include "RooStats/ToyMCSampler.h" | #include "RooStats/ToyMCSampler.h" | |||
//#include "RooStats/ToyMCSampler2.h" | ||||
#include "RooStats/ConfidenceBelt.h" | #include "RooStats/ConfidenceBelt.h" | |||
#include "RooStats/PointSetInterval.h" | ||||
#include "RooAbsData.h" | #include "RooAbsData.h" | |||
#include "RooAbsPdf.h" | #include "RooAbsPdf.h" | |||
#include "RooArgSet.h" | #include "RooArgSet.h" | |||
#include "TList.h" | #include "TList.h" | |||
class RooAbsData; | class RooAbsData; | |||
namespace RooStats { | namespace RooStats { | |||
skipping to change at line 49 | skipping to change at line 49 | |||
public: | public: | |||
// FeldmanCousins(); | // FeldmanCousins(); | |||
// Common constructor | // Common constructor | |||
FeldmanCousins(RooAbsData& data, ModelConfig& model); | FeldmanCousins(RooAbsData& data, ModelConfig& model); | |||
virtual ~FeldmanCousins(); | virtual ~FeldmanCousins(); | |||
// Main interface to get a ConfInterval (will be a PointSetInterval) | // Main interface to get a ConfInterval (will be a PointSetInterval) | |||
virtual ConfInterval* GetInterval() const; | virtual PointSetInterval* GetInterval() const; | |||
// 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;} | |||
// Set the DataSet | // Set the DataSet | |||
virtual void SetData(RooAbsData& /*data*/) { | virtual void SetData(RooAbsData& /*data*/) { | |||
cout << "DEPRECATED, set data in constructor" << endl; | cout << "DEPRECATED, set data in constructor" << endl; | |||
} | } | |||
// Set the Pdf | // Set the Pdf | |||
skipping to change at line 102 | skipping to change at line 102 | |||
void SetNBins(Int_t bins) {fNbins = bins;} | void SetNBins(Int_t bins) {fNbins = bins;} | |||
void FluctuateNumDataEntries(bool flag=true){fFluctuateData = flag;} | void FluctuateNumDataEntries(bool flag=true){fFluctuateData = flag;} | |||
void SaveBeltToFile(bool flag=true){ | void SaveBeltToFile(bool flag=true){ | |||
fSaveBeltToFile = flag; | fSaveBeltToFile = flag; | |||
if(flag) fCreateBelt = true; | if(flag) fCreateBelt = true; | |||
} | } | |||
void CreateConfBelt(bool flag=true){fCreateBelt = flag;} | void CreateConfBelt(bool flag=true){fCreateBelt = flag;} | |||
// Returns instance of TestStatSampler. Use to change properties of | ||||
// TestStatSampler, e.g. GetTestStatSampler.SetTestSize(Double_t size | ||||
); | ||||
TestStatSampler* GetTestStatSampler() const; | ||||
private: | private: | |||
// initializes fPointsToTest data member (mutable) | // initializes fPointsToTest data member (mutable) | |||
void CreateParameterPoints() const; | void CreateParameterPoints() const; | |||
// initializes fTestStatSampler data member (mutable) | // initializes fTestStatSampler data member (mutable) | |||
void CreateTestStatSampler() const; | void CreateTestStatSampler() const; | |||
Double_t fSize; // size of the test (eg. specified rate of Type I err or) | Double_t fSize; // size of the test (eg. specified rate of Type I err or) | |||
ModelConfig &fModel; | ModelConfig &fModel; | |||
End of changes. 5 change blocks. | ||||
3 lines changed or deleted | 8 lines changed or added | |||
FitResult.h | FitResult.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: FitResult.h 34753 2010-08-10 10:02:27Z moneta $ | // @(#)root/mathcore:$Id: FitResult.h 37438 2010-12-09 14:14:30Z 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 241 | skipping to change at line 241 | |||
/** | /** | |||
get confidence intervals for an array of n points x. | get confidence intervals for an array of n points x. | |||
stride1 indicates the stride in the coordinate space while stride2 th e stride in dimension space. | stride1 indicates the stride in the coordinate space while stride2 th e stride in dimension space. | |||
For 1-dim points : stride1=1, stride2=1 | For 1-dim points : stride1=1, stride2=1 | |||
for multi-dim points arranged as (x0,x1,...,xN,y0,....yN) st ride1=1 stride2=n | for multi-dim points arranged as (x0,x1,...,xN,y0,....yN) st ride1=1 stride2=n | |||
for multi-dim points arraged as (x0,y0,..,x1,y1,...,xN,yN,..) st ride1=ndim, stride2=1 | for multi-dim points arraged as (x0,y0,..,x1,y1,...,xN,yN,..) st ride1=ndim, stride2=1 | |||
the confidence interval are returned in the array ci | the confidence interval are returned in the array ci | |||
cl is the desired confidedence interval value | cl is the desired confidedence interval value | |||
norm is a flag to control if the intervals need to be normalized to t | ||||
he chi2/ndf value | ||||
By default the intervals are corrected using the chi2/ndf value of th | ||||
e fit if a chi2 fit is performed | ||||
*/ | */ | |||
void GetConfidenceIntervals(unsigned int n, unsigned int stride1, unsign ed int stride2, const double * x, double * ci, double cl=0.95 ) const; | void GetConfidenceIntervals(unsigned int n, unsigned int stride1, unsign ed int stride2, const double * x, double * ci, double cl=0.95, bool norm = true ) const; | |||
/** | /** | |||
evaluate confidence interval for the point specified in the passed da ta sets | evaluate confidence interval for the point specified in the passed da ta sets | |||
the confidence interval are returned in the array ci | the confidence interval are returned in the array ci | |||
cl is the desired confidence interval value | cl is the desired confidence interval value | |||
*/ | */ | |||
void GetConfidenceIntervals(const BinData & data, double * ci, double cl =0.95 ) const; | void GetConfidenceIntervals(const BinData & data, double * ci, double cl =0.95, bool norm = true ) const; | |||
/// get index for parameter name (return -1 if not found) | /// get index for parameter name (return -1 if not found) | |||
int Index(const std::string & name) const; | int Index(const std::string & name) const; | |||
///normalize errors using chi2/ndf for chi2 fits | ///normalize errors using chi2/ndf for chi2 fits | |||
void NormalizeErrors(); | void NormalizeErrors(); | |||
/// flag to chek if errors are normalized | /// flag to chek if errors are normalized | |||
bool NormalizedErrors() { return fNormalized; } | bool NormalizedErrors() { return fNormalized; } | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 7 lines changed or added | |||
Fitter.h | Fitter.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: Fitter.h 34809 2010-08-13 12:48:34Z moneta $ | // @(#)root/mathcore:$Id: Fitter.h 36764 2010-11-19 10:02:00Z moneta $ | |||
// 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 152 | skipping to change at line 152 | |||
*/ | */ | |||
template < class Data , class Function> | template < class Data , class Function> | |||
bool LikelihoodFit( const Data & data, const Function & func) { | bool LikelihoodFit( const Data & data, const Function & func) { | |||
SetFunction(func); | SetFunction(func); | |||
return DoLikelihoodFit(data); | return DoLikelihoodFit(data); | |||
} | } | |||
/** | /** | |||
Fit using the a generic FCN function as a C++ callable object impleme nting | Fit using the a generic FCN function as a C++ callable object impleme nting | |||
double () (const double *) | double () (const double *) | |||
The function dimension (i.e. the number of parameter) is needed in th | Note that the function dimension (i.e. the number of parameter) is ne | |||
is case | eded in this case | |||
For the other arguments same consideration as in the previous methods | For the options see documentation for following methods FitFCN(IMulti | |||
GenFunction & fcn,..) | ||||
*/ | */ | |||
template <class Function> | template <class Function> | |||
bool FitFCN(unsigned int npar, Function & fcn, const double * params = 0, unsigned int dataSize = 0); | bool FitFCN(unsigned int npar, Function & fcn, const double * params = 0, unsigned int dataSize = 0, bool chi2fit = false); | |||
/** | /** | |||
fit using the given FCN function represented by a multi-dimensional f unction interface | Fit using the given FCN function represented by a multi-dimensional f unction interface | |||
(ROOT::Math::IMultiGenFunction). | (ROOT::Math::IMultiGenFunction). | |||
Give optionally initial the parameter values and data size to have th | Give optionally the initial arameter values, data size to have the fi | |||
e fit Ndf correctly | t Ndf correctly | |||
set in the FitResult. | set in the FitResult and flag specifying if it is a chi2 fit. | |||
If the parameters values are not given (parameter pointers=0) the | Note that if the parameters values are not given (params=0) the | |||
current parameter settings are used. The parameter settings can be cr eated before | current parameter settings are used. The parameter settings can be cr eated before | |||
by using the FitConfig::SetParamsSetting. If they have not been creat ed they are created | by using the FitConfig::SetParamsSetting. If they have not been creat ed they are created | |||
automatically when the params pointer is not zero | automatically when the params pointer is not zero. | |||
Note that passing a params != 0 will set the parameter settings to th | ||||
e new value AND also the | ||||
step sizes to some pre-defined value (stepsize = 0.3 * abs(parameter_ | ||||
value) ) | ||||
*/ | */ | |||
bool FitFCN(const ROOT::Math::IMultiGenFunction & fcn, const double * pa rams = 0, unsigned int dataSize = 0 ); | bool FitFCN(const ROOT::Math::IMultiGenFunction & fcn, const double * pa rams = 0, unsigned int dataSize = 0, bool chi2fit = false); | |||
/** | /** | |||
Fit using the given FCN function representing a multi-dimensional gra dient function | Fit using the given FCN function representing a multi-dimensional gra dient function | |||
interface (ROOT::Math::IMultiGradFunction). In this case the minimize r will use the | interface (ROOT::Math::IMultiGradFunction). In this case the minimize r will use the | |||
gradient information provided by the function. | gradient information provided by the function. | |||
For the other arguments same consideration as in the previous method | For the options same consideration as in the previous method | |||
*/ | */ | |||
bool FitFCN(const ROOT::Math::IMultiGradFunction & fcn, const double * p arams = 0, unsigned int dataSize = 0); | bool FitFCN(const ROOT::Math::IMultiGradFunction & fcn, const double * p arams = 0, unsigned int dataSize = 0, bool chi2fit = false); | |||
/** | /** | |||
fit using user provided FCN with Minuit-like interface | fit using user provided FCN with Minuit-like interface | |||
Parameter Settings must have be created before | If npar = 0 it is assumed that the parameters are specified in the pa | |||
rameter settings created before | ||||
For the options same consideration as in the previous method | ||||
*/ | */ | |||
typedef void (* MinuitFCN_t )(int &npar, double *gin, double &f, double *u, int flag); | typedef void (* MinuitFCN_t )(int &npar, double *gin, double &f, double *u, int flag); | |||
bool FitFCN( MinuitFCN_t fcn); | bool FitFCN( MinuitFCN_t fcn, int npar = 0, const double * params = 0, u nsigned int dataSize = 0, bool chi2fit = false); | |||
/** | /** | |||
do a linear fit on a set of bin-data | do a linear fit on a set of bin-data | |||
*/ | */ | |||
bool LinearFit(const BinData & data) { return DoLinearFit(data); } | bool LinearFit(const BinData & data) { return DoLinearFit(data); } | |||
/** | /** | |||
Set the fitted function (model function) from a parametric function interface | Set the fitted function (model function) from a parametric function interface | |||
*/ | */ | |||
void SetFunction(const IModelFunction & func); | void SetFunction(const IModelFunction & func); | |||
skipping to change at line 320 | skipping to change at line 323 | |||
// implementation of inline methods | // implementation of inline methods | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
#ifndef ROOT_Math_WrappedFunction | #ifndef ROOT_Math_WrappedFunction | |||
#include "Math/WrappedFunction.h" | #include "Math/WrappedFunction.h" | |||
#endif | #endif | |||
template<class Function> | template<class Function> | |||
bool ROOT::Fit::Fitter::FitFCN(unsigned int npar, Function & f, const doubl e * par, unsigned int datasize) { | bool ROOT::Fit::Fitter::FitFCN(unsigned int npar, Function & f, const doubl e * par, unsigned int datasize,bool chi2fit) { | |||
ROOT::Math::WrappedMultiFunction<Function &> wf(f,npar); | ROOT::Math::WrappedMultiFunction<Function &> wf(f,npar); | |||
return FitFCN(wf,par,datasize); | return FitFCN(wf,par,datasize,chi2fit); | |||
} | } | |||
#endif // endif __CINT__ | #endif // endif __CINT__ | |||
#endif /* ROOT_Fit_Fitter */ | #endif /* ROOT_Fit_Fitter */ | |||
End of changes. 13 change blocks. | ||||
18 lines changed or deleted | 25 lines changed or added | |||
FumiliFCNAdapter.h | FumiliFCNAdapter.h | |||
---|---|---|---|---|
// @(#)root/minuit2:$Id: FumiliFCNAdapter.h 26014 2008-10-29 16:37:28Z mone ta $ | // @(#)root/minuit2:$Id: FumiliFCNAdapter.h 37067 2010-11-29 14:38:08Z mone ta $ | |||
// Author: L. Moneta 10/2006 | // Author: L. Moneta 10/2006 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 ROOT Foundation, CERN/PH-SFT * | * Copyright (c) 2006 ROOT Foundation, CERN/PH-SFT * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
#ifndef ROOT_Minuit2_FumiliFCNAdapter | #ifndef ROOT_Minuit2_FumiliFCNAdapter | |||
#define ROOT_Minuit2_FumiliFCNAdapter | #define ROOT_Minuit2_FumiliFCNAdapter | |||
skipping to change at line 154 | skipping to change at line 154 | |||
double gfj = gf[j] ; | double gfj = gf[j] ; | |||
grad[j] -= gfj; | grad[j] -= gfj; | |||
for (unsigned int k = j; k < npar; ++ k) { | for (unsigned int k = j; k < npar; ++ k) { | |||
int idx = j + k*(k+1)/2; | int idx = j + k*(k+1)/2; | |||
hess[idx] += gfj * gf[k] ; | hess[idx] += gfj * gf[k] ; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
else { | else { | |||
MN_ERROR_MSG("FumiliFCNAdapter: fit method is not supported"); | MN_ERROR_MSG("FumiliFCNAdapter: type of fit method is not supported, it must be chi2 or log-likelihood"); | |||
} | } | |||
} | } | |||
} // end namespace Minuit2 | } // end namespace Minuit2 | |||
} // end namespace ROOT | } // end namespace ROOT | |||
#endif //ROOT_Minuit2_FCNAdapter | #endif //ROOT_Minuit2_FCNAdapter | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
GSLIntegrator.h | GSLIntegrator.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: GSLIntegrator.h 33180 2010-04-25 10:14:07Z moneta $ | // @(#)root/mathmore:$Id: GSLIntegrator.h 36764 2010-11-19 10:02:00Z moneta $ | |||
// Authors: L. Moneta, A. Zsenei 08/2005 | // Authors: 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 321 | skipping to change at line 321 | |||
/** | /** | |||
return the estimate of the absolute Error of the last Integral cal culation | return the estimate of the absolute Error of the last Integral cal culation | |||
*/ | */ | |||
double Error() const; | double Error() const; | |||
/** | /** | |||
return the Error Status of the last Integral calculation | return the Error Status of the last Integral calculation | |||
*/ | */ | |||
int Status() const; | int Status() const; | |||
/** | ||||
return number of function evaluations in calculating the integral | ||||
*/ | ||||
int NEval() const { return fNEval; } | ||||
// setter for control Parameters (getters are not needed so far ) | // setter for control Parameters (getters are not needed so far ) | |||
/** | /** | |||
set the desired relative Error | set the desired relative Error | |||
*/ | */ | |||
void SetRelTolerance(double relTolerance); | void SetRelTolerance(double relTolerance); | |||
/** | /** | |||
set the desired absolute Error | set the desired absolute Error | |||
*/ | */ | |||
void SetAbsTolerance(double absTolerance); | void SetAbsTolerance(double absTolerance); | |||
/** | /** | |||
set the integration rule (Gauss-Kronrod rule). | set the integration rule (Gauss-Kronrod rule). | |||
The possible rules are defined in the Integration::GKRule enumeratio n. | The possible rules are defined in the Integration::GKRule enumeratio n. | |||
The integration rule can be modified only for ADAPTIVE type integrat ions | The integration rule can be modified only for ADAPTIVE type integrat ions | |||
*/ | */ | |||
void SetIntegrationRule(Integration::GKRule ); | void SetIntegrationRule(Integration::GKRule ); | |||
/// set the options | ||||
virtual void SetOptions(const ROOT::Math::IntegratorOneDimOptions & o | ||||
pt); | ||||
/// get the option used for the integration | ||||
virtual ROOT::Math::IntegratorOneDimOptions Options() const; | ||||
/// get type name | ||||
IntegrationOneDim::Type GetType() const { return fType; } | ||||
/** | ||||
return the name | ||||
*/ | ||||
const char * GetTypeName() const; | ||||
protected: | protected: | |||
// internal method to check validity of GSL function pointer | // internal method to check validity of GSL function pointer | |||
bool CheckFunction(); | bool CheckFunction(); | |||
private: | private: | |||
Integration::Type fType; | Integration::Type fType; | |||
Integration::GKRule fRule; | Integration::GKRule fRule; | |||
double fAbsTol; | double fAbsTol; | |||
double fRelTol; | double fRelTol; | |||
size_t fSize; | size_t fSize; | |||
size_t fMaxIntervals; | size_t fMaxIntervals; | |||
// cache Error, Result and Status of integration | // cache Error, Result and Status of integration | |||
double fResult; | double fResult; | |||
double fError; | double fError; | |||
int fStatus; | int fStatus; | |||
int fNEval; | ||||
// GSLIntegrationAlgorithm * fAlgorithm; | // GSLIntegrationAlgorithm * fAlgorithm; | |||
GSLFunctionWrapper * fFunction; | GSLFunctionWrapper * fFunction; | |||
GSLIntegrationWorkspace * fWorkspace; | GSLIntegrationWorkspace * fWorkspace; | |||
}; | }; | |||
} // namespace Math | } // namespace Math | |||
} // namespace ROOT | } // namespace ROOT | |||
End of changes. 4 change blocks. | ||||
1 lines changed or deleted | 22 lines changed or added | |||
GSLMCIntegrator.h | GSLMCIntegrator.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: GSLMCIntegrator.h 26307 2008-11-20 09:51:19Z mone ta $ | // @(#)root/mathmore:$Id: GSLMCIntegrator.h 36806 2010-11-20 11:09:14Z mone ta $ | |||
// Author: Magdalena Slawinska 08/2007 | // Author: Magdalena Slawinska 08/2007 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2007 ROOT Foundation, CERN/PH-SFT * | * Copyright (c) 2007 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 94 | skipping to change at line 94 | |||
instantiate using the plugin manager (plugin name is "GSLMCIntegrator") | instantiate using the plugin manager (plugin name is "GSLMCIntegrator") | |||
@ingroup MCIntegration | @ingroup MCIntegration | |||
*/ | */ | |||
class GSLMCIntegrator : public VirtualIntegratorMultiDim { | class GSLMCIntegrator : public VirtualIntegratorMultiDim { | |||
public: | public: | |||
typedef MCIntegration::Type Type; | ||||
// constructors | // constructors | |||
/** constructor of GSL MCIntegrator. VEGAS MC is set as default integ | // /** | |||
ration type | // constructor of GSL MCIntegrator using all the default options | |||
// */ | ||||
// GSLMCIntegrator( ); | ||||
@param type type of integration. The possible types are defined in th | /** constructor of GSL MCIntegrator. VEGAS MC is set as default inte | |||
e Integration::Type enumeration | gration type | |||
@param type type of integration. The possible types are defined in th | ||||
e MCIntegration::Type enumeration | ||||
Default is VEGAS | ||||
@param absTol desired absolute Error | @param absTol desired absolute Error | |||
@param relTol desired relative Error | @param relTol desired relative Error | |||
@param calls maximum number of function calls | @param calls maximum number of function calls | |||
*/ | ||||
NOTE: When the default values are used , the options are taken from t | ||||
eh static method of ROOT::Math::IntegratorMultiDimOptions | ||||
*/ | ||||
explicit | explicit | |||
GSLMCIntegrator(MCIntegration::Type type = MCIntegration::kVEGAS, dou ble absTol = 1.E-6, double relTol = 1E-4, unsigned int calls = 500000); | GSLMCIntegrator(MCIntegration::Type type = MCIntegration::kVEGAS, dou ble absTol = 0, double relTol = 0, unsigned int calls = 0 ); | |||
/** constructor of GSL MCIntegrator. VEGAS MC is set as default integ ration type | /** constructor of GSL MCIntegrator. VEGAS MC is set as default integ ration type | |||
@param type type of integration using a char * (required by plug-in m anager) | @param type type of integration using a char * (required by plug-in m anager) | |||
@param absTol desired absolute Error | @param absTol desired absolute Error | |||
@param relTol desired relative Error | @param relTol desired relative Error | |||
@param calls maximum number of function calls | @param calls maximum number of function calls | |||
*/ | */ | |||
explicit | ||||
GSLMCIntegrator(const char * type, double absTol, double relTol, uns igned int calls); | GSLMCIntegrator(const char * type, double absTol, double relTol, uns igned int calls); | |||
/** | /** | |||
destructor | destructor | |||
*/ | */ | |||
virtual ~GSLMCIntegrator(); | virtual ~GSLMCIntegrator(); | |||
// disable copy ctrs | // disable copy ctrs | |||
private: | private: | |||
skipping to change at line 189 | skipping to change at line 196 | |||
/** | /** | |||
return the estimate of the absolute Error of the last Integral cal culation | return the estimate of the absolute Error of the last Integral cal culation | |||
*/ | */ | |||
double Error() const; | double Error() const; | |||
/** | /** | |||
return the Error Status of the last Integral calculation | return the Error Status of the last Integral calculation | |||
*/ | */ | |||
int Status() const; | int Status() const; | |||
/** | ||||
return number of function evaluations in calculating the integral | ||||
(This is an fixed by the user) | ||||
*/ | ||||
int NEval() const { return fCalls; } | ||||
// setter for control Parameters (getters are not needed so far ) | // setter for control Parameters (getters are not needed so far ) | |||
/** | /** | |||
set the desired relative Error | set the desired relative Error | |||
*/ | */ | |||
void SetRelTolerance(double relTolerance); | void SetRelTolerance(double relTolerance); | |||
/** | /** | |||
set the desired absolute Error | set the desired absolute Error | |||
*/ | */ | |||
void SetAbsTolerance(double absTolerance); | void SetAbsTolerance(double absTolerance); | |||
/** | /** | |||
to be added later as options for basic MC methods | set the integration options | |||
The possible rules are defined in the Integration::GKRule enumeratio | ||||
n. | ||||
The integration rule can be modified only for ADAPTIVE type integrat | ||||
ions | ||||
*/ | */ | |||
//void SetIntegrationRule(Integration::GKRule ); | void SetOptions(const ROOT::Math::IntegratorMultiDimOptions & opt); | |||
/** | /** | |||
set random number generator | set random number generator | |||
*/ | */ | |||
void SetGenerator(GSLRngWrapper* r); | void SetGenerator(GSLRngWrapper* r); | |||
/** | /** | |||
set integration method | set integration method | |||
*/ | */ | |||
void SetType(MCIntegration::Type type); | void SetType(MCIntegration::Type type); | |||
/** | /** | |||
set integration method using a name instead of an enumeration | ||||
*/ | ||||
void SetTypeName(const char * typeName); | ||||
/** | ||||
set integration mode for VEGAS method | set integration mode for VEGAS method | |||
The possible MODE are : | The possible MODE are : | |||
MCIntegration::kIMPORTANCE (default) : VEGAS will use importance s ampling | MCIntegration::kIMPORTANCE (default) : VEGAS will use importance s ampling | |||
MCIntegration::kSTRATIFIED : VEGAS will use stratified s ampling if certain condition are satisfied | MCIntegration::kSTRATIFIED : VEGAS will use stratified s ampling if certain condition are satisfied | |||
MCIntegration::kIMPORTANCE_ONLY : VEGAS will always use impor tance smapling | MCIntegration::kIMPORTANCE_ONLY : VEGAS will always use impor tance smapling | |||
*/ | */ | |||
void SetMode(MCIntegration::Mode mode); | void SetMode(MCIntegration::Mode mode); | |||
/** | /** | |||
skipping to change at line 253 | skipping to change at line 269 | |||
/** | /** | |||
returns the error sigma from the last iteration of the Vegas algori thm | returns the error sigma from the last iteration of the Vegas algori thm | |||
*/ | */ | |||
double Sigma(); | double Sigma(); | |||
/** | /** | |||
returns chi-squared per degree of freedom for the estimate of the i ntegral in the Vegas algorithm | returns chi-squared per degree of freedom for the estimate of the i ntegral in the Vegas algorithm | |||
*/ | */ | |||
double ChiSqr(); | double ChiSqr(); | |||
/** | ||||
return the type | ||||
(need to be called GetType to avois a conflict with typedef) | ||||
*/ | ||||
MCIntegration::Type GetType() const { return fType; } | ||||
/** | ||||
return the name | ||||
*/ | ||||
const char * GetTypeName() const; | ||||
/** | ||||
get the option used for the integration | ||||
*/ | ||||
ROOT::Math::IntegratorMultiDimOptions Options() const; | ||||
/** | ||||
get the specific options (for Vegas or Miser) | ||||
in term of string- name | ||||
*/ | ||||
ROOT::Math::IOptions * ExtraOptions() const; | ||||
protected: | protected: | |||
// internal method to check validity of GSL function pointer | // internal method to check validity of GSL function pointer | |||
bool CheckFunction(); | bool CheckFunction(); | |||
// set internally the type of integration method | // set internally the type of integration method | |||
void DoInitialize( ); | void DoInitialize( ); | |||
private: | private: | |||
//type of intergation method | //type of intergation method | |||
MCIntegration::Type fType; | MCIntegration::Type fType; | |||
//mode for VEGAS integration | ||||
MCIntegration::Mode fMode; | ||||
GSLRngWrapper * fRng; | GSLRngWrapper * fRng; | |||
double fAbsTol; | ||||
double fRelTol; | ||||
unsigned int fDim; | unsigned int fDim; | |||
unsigned int fCalls; | unsigned int fCalls; | |||
double fAbsTol; | ||||
double fRelTol; | ||||
// cache Error, Result and Status of integration | // cache Error, Result and Status of integration | |||
double fResult; | double fResult; | |||
double fError; | double fError; | |||
int fStatus; | int fStatus; | |||
GSLMCIntegrationWorkspace * fWorkspace; | GSLMCIntegrationWorkspace * fWorkspace; | |||
GSLMonteFunctionWrapper * fFunction; | GSLMonteFunctionWrapper * fFunction; | |||
End of changes. 16 change blocks. | ||||
19 lines changed or deleted | 54 lines changed or added | |||
GSLMinimizer.h | GSLMinimizer.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: GSLMinimizer.h 31604 2009-12-07 19:04:33Z moneta $ | // @(#)root/mathmore:$Id: GSLMinimizer.h 37448 2010-12-09 20:20:56Z 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 161 | skipping to change at line 161 | |||
/// return expected distance reached from the minimum | /// return expected distance reached from the minimum | |||
virtual double Edm() const { return 0; } // not impl. } | virtual double Edm() const { return 0; } // not impl. } | |||
/// return pointer to X values at the minimum | /// return pointer to X values at the minimum | |||
virtual const double * X() const { return &fValues.front(); } | virtual const double * X() const { return &fValues.front(); } | |||
/// return pointer to gradient values at the minimum | /// return pointer to gradient values at the minimum | |||
virtual const double * MinGradient() const; | virtual const double * MinGradient() const; | |||
/// number of function calls to reach the minimum | /// number of function calls to reach the minimum | |||
virtual unsigned int NCalls() const { return 0; } // not yet ipl. | virtual unsigned int NCalls() const; | |||
/// this is <= Function().NDim() which is the total | /// this is <= Function().NDim() which is the total | |||
/// number of variables (free+ constrained ones) | /// number of variables (free+ constrained ones) | |||
virtual unsigned int NDim() const { return fValues.size(); } | virtual unsigned int NDim() const { return fValues.size(); } | |||
/// 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 number of free param eters | /// this is <= Function().NDim() which is the total number of free param eters | |||
virtual unsigned int NFree() const { return fObjFunc->NDim(); } | virtual unsigned int NFree() const { return fObjFunc->NDim(); } | |||
/// minimizer provides error and error matrix | /// minimizer provides error and error matrix | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
GSLNLSMinimizer.h | GSLNLSMinimizer.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: GSLNLSMinimizer.h 33180 2010-04-25 10:14:07Z mone ta $ | // @(#)root/mathmore:$Id: GSLNLSMinimizer.h 37427 2010-12-09 08:57:45Z 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 224 | skipping to change at line 224 | |||
/// return expected distance reached from the minimum | /// return expected distance reached from the minimum | |||
virtual double Edm() const { return fEdm; } // not impl. } | virtual double Edm() const { return fEdm; } // not impl. } | |||
/// return pointer to X values at the minimum | /// return pointer to X values at the minimum | |||
virtual const double * X() const { return &fValues.front(); } | virtual const double * X() const { return &fValues.front(); } | |||
/// return pointer to gradient values at the minimum | /// return pointer to gradient values at the minimum | |||
virtual const double * MinGradient() const; | virtual const double * MinGradient() const; | |||
/// number of function calls to reach the minimum | /// number of function calls to reach the minimum | |||
virtual unsigned int NCalls() const { return 0; } // not yet ipl. | virtual unsigned int NCalls() const { return (fObjFunc) ? fObjFunc->NCal ls() : 0; } | |||
/// this is <= Function().NDim() which is the total | /// this is <= Function().NDim() which is the total | |||
/// number of variables (free+ constrained ones) | /// number of variables (free+ constrained ones) | |||
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 | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
GSLRndmEngines.h | GSLRndmEngines.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: GSLRndmEngines.h 33304 2010-04-30 08:39:37Z monet a $ | // @(#)root/mathmore:$Id: GSLRndmEngines.h 37441 2010-12-09 16:27:54Z 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 229 | skipping to change at line 229 | |||
Poisson distribution | Poisson distribution | |||
*/ | */ | |||
unsigned int Poisson(double mu) const; | unsigned int Poisson(double mu) const; | |||
/** | /** | |||
Binomial distribution | Binomial distribution | |||
*/ | */ | |||
unsigned int Binomial(double p, unsigned int n) const; | unsigned int Binomial(double p, unsigned int n) const; | |||
/** | /** | |||
Negative Binomial distribution | ||||
*/ | ||||
unsigned int NegativeBinomial(double p, double n) const; | ||||
/** | ||||
Multinomial distribution | Multinomial distribution | |||
*/ | */ | |||
std::vector<unsigned int> Multinomial( unsigned int ntot, const std:: vector<double> & p ) const; | std::vector<unsigned int> Multinomial( unsigned int ntot, const std:: vector<double> & p ) const; | |||
//@} | //@} | |||
protected: | protected: | |||
/// internal method used by the derived class to set the type of gene rators | /// internal method used by the derived class to set the type of gene rators | |||
void SetType(GSLRngWrapper * r) { | void SetType(GSLRngWrapper * r) { | |||
skipping to change at line 264 | skipping to change at line 269 | |||
@ingroup Random | @ingroup Random | |||
*/ | */ | |||
class GSLRngMT : public GSLRandomEngine { | class GSLRngMT : public GSLRandomEngine { | |||
public: | public: | |||
GSLRngMT(); | GSLRngMT(); | |||
}; | }; | |||
//______________________________________________________________________ _______________ | //______________________________________________________________________ _______________ | |||
/** | /** | |||
Ranlux generator (James, Luscher) (defaul luxury) | Old Ranlux generator (James, Luscher) (default luxury level, p = 223) | |||
(This is eequivalent to TRandom1 with default luxury level) | ||||
see <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random- number-generator-algorithms.html">here</A> | see <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random- number-generator-algorithms.html">here</A> | |||
@ingroup Random | @ingroup Random | |||
*/ | */ | |||
class GSLRngRanLux : public GSLRandomEngine { | class GSLRngRanLux : public GSLRandomEngine { | |||
public: | public: | |||
GSLRngRanLux(); | GSLRngRanLux(); | |||
}; | }; | |||
//______________________________________________________________________ _______________ | //______________________________________________________________________ _______________ | |||
/** | /** | |||
Second generation of Ranlux generator (with luxury level of 2) | Second generation of Ranlux generator for single precision with luxu | |||
ry level of 1 | ||||
(It throws away 202 values for every 12 used) | ||||
see <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random- | ||||
number-generator-algorithms.html">here</A> | ||||
@ingroup Random | ||||
*/ | ||||
class GSLRngRanLuxS1 : public GSLRandomEngine { | ||||
public: | ||||
GSLRngRanLuxS1(); | ||||
}; | ||||
typedef GSLRngRanLuxS1 GSLRngRanLux1; // for backward compatibility | ||||
//______________________________________________________________________ | ||||
_______________ | ||||
/** | ||||
Second generation of Ranlux generator for Single precision with luxu | ||||
ry level of 2 | ||||
(It throws away 397 value for every 12 used) | ||||
see <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random- | ||||
number-generator-algorithms.html">here</A> | ||||
@ingroup Random | ||||
*/ | ||||
class GSLRngRanLuxS2 : public GSLRandomEngine { | ||||
public: | ||||
GSLRngRanLuxS2(); | ||||
}; | ||||
typedef GSLRngRanLuxS2 GSLRngRanLux2; // for backward compatibility | ||||
//______________________________________________________________________ | ||||
_______________ | ||||
/** | ||||
Double precision (48 bits) version of Second generation of Ranlux gen | ||||
erator with luxury level of 1 | ||||
(It throws away 202 value for every 12 used) | ||||
see <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random- number-generator-algorithms.html">here</A> | see <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random- number-generator-algorithms.html">here</A> | |||
@ingroup Random | @ingroup Random | |||
*/ | */ | |||
class GSLRngRanLux2 : public GSLRandomEngine { | class GSLRngRanLuxD1 : public GSLRandomEngine { | |||
public: | public: | |||
GSLRngRanLux2(); | GSLRngRanLuxD1(); | |||
}; | }; | |||
//______________________________________________________________________ _______________ | //______________________________________________________________________ _______________ | |||
/** | /** | |||
48 bits version of Second generation of Ranlux generator (with luxur | Double precision (48 bits) version of Second generation of Ranlux gen | |||
y level of 2) | erator with luxury level of 2 | |||
(It throws away 397 value for every 12 used) | ||||
see <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random- number-generator-algorithms.html">here</A> | see <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random- number-generator-algorithms.html">here</A> | |||
@ingroup Random | @ingroup Random | |||
*/ | */ | |||
class GSLRngRanLux48 : public GSLRandomEngine { | class GSLRngRanLuxD2 : public GSLRandomEngine { | |||
public: | public: | |||
GSLRngRanLux48(); | GSLRngRanLuxD2(); | |||
}; | }; | |||
typedef GSLRngRanLuxD2 GSLRngRanLux48; // for backward compatibility | ||||
//______________________________________________________________________ _______________ | //______________________________________________________________________ _______________ | |||
/** | /** | |||
Tausworthe generator by L'Ecuyer | Tausworthe generator by L'Ecuyer | |||
see <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random- number-generator-algorithms.html">here</A> | see <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random- number-generator-algorithms.html">here</A> | |||
@ingroup Random | @ingroup Random | |||
*/ | */ | |||
class GSLRngTaus : public GSLRandomEngine { | class GSLRngTaus : public GSLRandomEngine { | |||
public: | public: | |||
End of changes. 10 change blocks. | ||||
9 lines changed or deleted | 53 lines changed or added | |||
G__ci.h | G__ci.h | |||
---|---|---|---|---|
skipping to change at line 811 | skipping to change at line 811 | |||
#define G__TIMEOUT 10 /* Timeout after segv,buserror,etc */ | #define G__TIMEOUT 10 /* Timeout after segv,buserror,etc */ | |||
/************************************************************************** | /************************************************************************** | |||
* variable identity | * variable identity | |||
**************************************************************************/ | **************************************************************************/ | |||
#define G__AUTO (-1) | #define G__AUTO (-1) | |||
#define G__LOCALSTATIC (-2) | #define G__LOCALSTATIC (-2) | |||
#define G__LOCALSTATICBODY (-3) | #define G__LOCALSTATICBODY (-3) | |||
#define G__COMPILEDGLOBAL (-4) | #define G__COMPILEDGLOBAL (-4) | |||
#define G__AUTOARYDISCRETEOBJ (-5) | #define G__AUTOARYDISCRETEOBJ (-5) | |||
#define G__USING_VARIABLE (-6) | ||||
#define G__USING_STATIC_VARIABLE (-7) | ||||
#define G__LOCAL 0 | #define G__LOCAL 0 | |||
#ifdef G__MEMBERFUNC | #ifdef G__MEMBERFUNC | |||
#define G__MEMBER 2 | #define G__MEMBER 2 | |||
#define G__GLOBAL 4 | #define G__GLOBAL 4 | |||
#define G__NOTHING 6 | #define G__NOTHING 6 | |||
#else | #else | |||
#define G__GLOBAL 2 | #define G__GLOBAL 2 | |||
#endif | #endif | |||
skipping to change at line 1155 | skipping to change at line 1157 | |||
#define G__BYTECODE_FAILURE 2 | #define G__BYTECODE_FAILURE 2 | |||
#define G__BYTECODE_SUCCESS 3 | #define G__BYTECODE_SUCCESS 3 | |||
#define G__BYTECODE_ANALYSIS 4 /* ON1164 */ | #define G__BYTECODE_ANALYSIS 4 /* ON1164 */ | |||
/************************************************************************** | /************************************************************************** | |||
* structure for function and array parameter | * structure for function and array parameter | |||
* | * | |||
**************************************************************************/ | **************************************************************************/ | |||
struct G__param { | struct G__param { | |||
int paran; | int paran; | |||
#ifdef G__OLDIMPLEMENTATION1530 | ||||
char parameter[G__MAXFUNCPARA][G__ONELINE]; | ||||
#endif | ||||
G__value para[G__MAXFUNCPARA]; | G__value para[G__MAXFUNCPARA]; | |||
#ifndef G__OLDIMPLEMENTATION1530 | ||||
char parameter[G__MAXFUNCPARA][G__ONELINE]; | char parameter[G__MAXFUNCPARA][G__ONELINE]; | |||
#endif | ||||
}; | }; | |||
#if defined(__cplusplus) && !defined(__CINT__) | #if defined(__cplusplus) && !defined(__CINT__) | |||
} /* extern C 1 */ | } /* extern C 1 */ | |||
#endif | #endif | |||
/************************************************************************** | /************************************************************************** | |||
* Interface Method type | * Interface Method type | |||
* | * | |||
**************************************************************************/ | **************************************************************************/ | |||
skipping to change at line 1367 | skipping to change at line 1364 | |||
/************************************************************************** | /************************************************************************** | |||
* Exported Functions | * Exported Functions | |||
* | * | |||
**************************************************************************/ | **************************************************************************/ | |||
#ifdef G__ANSI | #ifdef G__ANSI | |||
#define G__P(funcparam) funcparam | #define G__P(funcparam) funcparam | |||
#else | #else | |||
#define G__P(funcparam) () | #define G__P(funcparam) () | |||
#endif | #endif | |||
extern G__EXPORT unsigned long G__uint G__P((G__value buf)); | ||||
#if defined(G__DEBUG) && !defined(G__MEMTEST_C) | #if defined(G__DEBUG) && !defined(G__MEMTEST_C) | |||
#include "src/memtest.h" | #include "src/memtest.h" | |||
#endif | #endif | |||
#ifndef G__WILDCARD | #ifndef G__WILDCARD | |||
#define G__WILDCARD | #define G__WILDCARD | |||
#endif | #endif | |||
/************************************************************************** | /************************************************************************** | |||
* Variable argument, byte layout policy | * Variable argument, byte layout policy | |||
************************************************************************** / | ************************************************************************** / | |||
#define G__VAARG_SIZE 1024 | #define G__VAARG_SIZE 1024 | |||
typedef struct { | typedef struct { | |||
union { | union { | |||
char d[G__VAARG_SIZE]; | char d[G__VAARG_SIZE]; | |||
long i[G__VAARG_SIZE/sizeof(long)]; | long i[G__VAARG_SIZE/sizeof(long)]; | |||
} x; | } x; | |||
} G__va_arg_buf; | } G__va_arg_buf; | |||
// cross-compiling for iOS and iOS simulator (assumes host is Intel Mac OS | ||||
X) | ||||
#if defined(R__IOSSIM) || defined(R__IOS) | ||||
#ifdef __x86_64__ | ||||
#define R__x86_64 1 | ||||
#undef __x86_64__ | ||||
#endif | ||||
#ifdef __i386__ | ||||
#define R__i386 1 | ||||
#undef __i386__ | ||||
#endif | ||||
#ifdef R__IOSSIM | ||||
#define __i386__ 1 | ||||
#endif | ||||
#ifdef R__IOS | ||||
#define __arm__ 1 | ||||
#endif | ||||
#endif | ||||
#if (defined(__i386__) && (defined(__linux) || defined(__APPLE__))) || \ | #if (defined(__i386__) && (defined(__linux) || defined(__APPLE__))) || \ | |||
defined(_WIN32) || defined(G__CYGWIN) | defined(_WIN32) || defined(G__CYGWIN) | |||
/********************************************** | /********************************************** | |||
* Intel architecture, aligns in multiple of 4 | * Intel architecture, aligns in multiple of 4 | |||
* |1111|22 |3 |44444444|55555555555555 | | * |1111|22 |3 |44444444|55555555555555 | | |||
**********************************************/ | **********************************************/ | |||
#define G__VAARG_INC_COPY_N 4 | #define G__VAARG_INC_COPY_N 4 | |||
#elif (defined(__linux)&&defined(__ia64__)) | #elif (defined(__linux)&&defined(__ia64__)) | |||
/********************************************** | /********************************************** | |||
skipping to change at line 1508 | skipping to change at line 1521 | |||
/********************************************** | /********************************************** | |||
* Other platforms, | * Other platforms, | |||
* Try copying object as value. | * Try copying object as value. | |||
**********************************************/ | **********************************************/ | |||
#define G__VAARG_NOSUPPORT | #define G__VAARG_NOSUPPORT | |||
#define G__VAARG_INC_COPY_N 4 | #define G__VAARG_INC_COPY_N 4 | |||
/* #define G__VAARG_PASS_BY_REFERENCE 8 */ | /* #define G__VAARG_PASS_BY_REFERENCE 8 */ | |||
#endif | #endif | |||
// cross-compiling for iOS and iOS simulator (assumes host is Intel Mac OS | ||||
X) | ||||
#if defined(R__IOSSIM) || defined(R__IOS) | ||||
#undef __i386__ | ||||
#undef __arm__ | ||||
#ifdef R__x86_64 | ||||
#define __x86_64__ 1 | ||||
#endif | ||||
#ifdef R__i386 | ||||
#define __i386__ 1 | ||||
#endif | ||||
#endif | ||||
struct G__va_list_para { | struct G__va_list_para { | |||
struct G__param *libp; | struct G__param *libp; | |||
int i; | int i; | |||
}; | }; | |||
extern G__EXPORT G__value (*G__GetSpecialObject) (G__CONST char *name,void **ptr,void** ppdict); | extern G__EXPORT G__value (*G__GetSpecialObject) (G__CONST char *name,void **ptr,void** ppdict); | |||
extern G__EXPORT int (*G__ScriptCompiler)(G__CONST char*,G__CONST char*); | extern G__EXPORT int (*G__ScriptCompiler)(G__CONST char*,G__CONST char*); | |||
typedef int (*G__IgnoreInclude) G__P((const char* fname,const char* expande dfname)); | typedef int (*G__IgnoreInclude) G__P((const char* fname,const char* expande dfname)); | |||
typedef void G__parse_hook_t (); | typedef void G__parse_hook_t (); | |||
End of changes. 7 change blocks. | ||||
7 lines changed or deleted | 34 lines changed or added | |||
GaussIntegrator.h | GaussIntegrator.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: GaussIntegrator.h 35386 2010-09-17 15:39:51Z mone ta $ | // @(#)root/mathcore:$Id: GaussIntegrator.h 36764 2010-11-19 10:02:00Z mone ta $ | |||
// Authors: David Gonzalez Maline 01/2008 | // Authors: David Gonzalez Maline 01/2008 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 , LCG ROOT MathLib Team * | * Copyright (c) 2006 , LCG ROOT MathLib Team * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for GaussIntegrator | // Header file for GaussIntegrator | |||
skipping to change at line 199 | skipping to change at line 199 | |||
\@param f Function to be used in the calculations. | \@param f Function to be used in the calculations. | |||
*/ | */ | |||
void SetFunction (const IGenFunction &); | void SetFunction (const IGenFunction &); | |||
/** This method is not implemented. */ | /** This method is not implemented. */ | |||
double Integral (const std::vector< double > &pts); | double Integral (const std::vector< double > &pts); | |||
/** This method is not implemented. */ | /** This method is not implemented. */ | |||
double IntegralCauchy (double a, double b, double c); | double IntegralCauchy (double a, double b, double c); | |||
/// get the option used for the integration | ||||
virtual ROOT::Math::IntegratorOneDimOptions Options() const; | ||||
// set the options | ||||
virtual void SetOptions(const ROOT::Math::IntegratorOneDimOptions & opt) | ||||
; | ||||
private: | private: | |||
/** | /** | |||
Integration surrugate method. Return integral of passed function in interval [a,b] | Integration surrugate method. Return integral of passed function in interval [a,b] | |||
Derived class (like GaussLegendreIntegrator) can re-implement this m ethod to modify to use | Derived class (like GaussLegendreIntegrator) can re-implement this m ethod to modify to use | |||
an improved algorithm | an improved algorithm | |||
*/ | */ | |||
virtual double DoIntegral (double a, double b, const IGenFunction* func) ; | virtual double DoIntegral (double a, double b, const IGenFunction* func) ; | |||
protected: | protected: | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 8 lines changed or added | |||
GaussLegendreIntegrator.h | GaussLegendreIntegrator.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: GaussLegendreIntegrator.h 35385 2010-09-17 15:32: 11Z moneta $ | // @(#)root/mathcore:$Id: GaussLegendreIntegrator.h 36764 2010-11-19 10:02: 00Z moneta $ | |||
// Authors: David Gonzalez Maline 01/2008 | // Authors: David Gonzalez Maline 01/2008 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 , LCG ROOT MathLib Team * | * Copyright (c) 2006 , LCG ROOT MathLib Team * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for GaussIntegrator | // Header file for GaussIntegrator | |||
skipping to change at line 65 | skipping to change at line 65 | |||
/** This method is not implemented. */ | /** This method is not implemented. */ | |||
virtual void SetAbsTolerance (double); | virtual void SetAbsTolerance (double); | |||
/** Returns the arrays x and w containing the abscissa and weight of | /** Returns the arrays x and w containing the abscissa and weight of | |||
the Gauss-Legendre n-point quadrature formula. | the Gauss-Legendre n-point quadrature formula. | |||
Gauss-Legendre: W(x)=1 -1<x<1 | Gauss-Legendre: W(x)=1 -1<x<1 | |||
(j+1)P_{j+1} = (2j+1)xP_j-jP_{j-1} | (j+1)P_{j+1} = (2j+1)xP_j-jP_{j-1} | |||
*/ | */ | |||
void GetWeightVectors(double *x, double *w); | void GetWeightVectors(double *x, double *w) const; | |||
int GetNumberPoints() const { return fNum; } | ||||
/** | ||||
return number of function evaluations in calculating the integral | ||||
This is equivalent to the number of points | ||||
*/ | ||||
int NEval() const { return fNum; } | ||||
/// get the option used for the integration | ||||
virtual ROOT::Math::IntegratorOneDimOptions Options() const; | ||||
// set the options | ||||
virtual void SetOptions(const ROOT::Math::IntegratorOneDimOptions & opt) | ||||
; | ||||
private: | private: | |||
/** | /** | |||
Integration surrugate method. Return integral of passed function in interval [a,b] | Integration surrugate method. Return integral of passed function in interval [a,b] | |||
Reimplement method of GaussIntegrator using CalcGaussLegendreSampling Points | Reimplement method of GaussIntegrator using CalcGaussLegendreSampling Points | |||
*/ | */ | |||
virtual double DoIntegral (double a, double b, const IGenFunction* func) ; | virtual double DoIntegral (double a, double b, const IGenFunction* func) ; | |||
/** | /** | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 17 lines changed or added | |||
GoFTest.h | GoFTest.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: GoFTest.h 35808 2010-09-27 18:40:50Z moneta $ | // @(#)root/mathcore:$Id: GoFTest.h 36911 2010-11-24 17:08:43Z moneta $ | |||
// Authors: Bartolomeu Rabacal 05/2010 | // Authors: Bartolomeu Rabacal 05/2010 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 , LCG ROOT MathLib Team * | * Copyright (c) 2006 , LCG ROOT MathLib Team * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for GoFTest | // Header file for GoFTest | |||
#include <memory> | #include <memory> | |||
skipping to change at line 46 | skipping to change at line 46 | |||
kGaussian, | kGaussian, | |||
kLogNormal, | kLogNormal, | |||
kExponential | kExponential | |||
}; | }; | |||
enum EUserDistribution { // User input distribution option | enum EUserDistribution { // User input distribution option | |||
kCDF, | kCDF, | |||
kPDF // Default value | kPDF // Default value | |||
}; | }; | |||
enum ETestType { // Goodness of Fit test types for using with the class' s unary funtion as a shorthand for the in-built methods | enum ETestType { // Goodness of Fit test types for using with the class' s unary funtions as a shorthand for the in-built methods | |||
kAD, // Anderson-Darling Test. Default value | kAD, // Anderson-Darling Test. Default value | |||
kAD2s, // Anderson-Darling 2-Samples Test | kAD2s, // Anderson-Darling 2-Samples Test | |||
kKS, // Kolmogorov-Smirnov Test | kKS, // Kolmogorov-Smirnov Test | |||
kKS2s // Kolmogorov-Smirnov 2-Samples Test | kKS2s // Kolmogorov-Smirnov 2-Samples Test | |||
}; | }; | |||
/* Constructor for using only with 2-samples tests */ | /* Constructor for using only with 2-samples tests */ | |||
GoFTest( UInt_t sample1Size, const Double_t* sample1, UInt_t sample2Size , const Double_t* sample2 ); | GoFTest(UInt_t sample1Size, const Double_t* sample1, UInt_t sample2Size, const Double_t* sample2); | |||
/* Constructor for using only with 1-sample tests with a specified distr ibution */ | /* Constructor for using only with 1-sample tests with a specified distr ibution */ | |||
GoFTest(UInt_t sampleSize, const Double_t* sample, EDistribution dist = kUndefined); | GoFTest(UInt_t sampleSize, const Double_t* sample, EDistribution dist = kUndefined); | |||
/* Templated constructor for using only with 1-sample tests with a user specified distribution */ | /* Templated constructor for using only with 1-sample tests with a user specified distribution */ | |||
template<class Dist> | template<class Dist> | |||
GoFTest(UInt_t sampleSize, const Double_t* sample, Dist& dist, EUserDist ribution userDist = kPDF, | GoFTest(UInt_t sampleSize, const Double_t* sample, Dist& dist, EUserDist ribution userDist = kPDF, | |||
Double_t xmin = 1, Double_t xmax = 0) | Double_t xmin = 1, Double_t xmax = 0) | |||
{ | { | |||
Instantiate(sample, sampleSize); | Instantiate(sample, sampleSize); | |||
SetUserDistribution<Dist>(dist, userDist, xmin, xmax); | SetUserDistribution<Dist>(dist, userDist, xmin, xmax); | |||
} | } | |||
/* specializetion using IGenFunction interface */ | /* Specialization using IGenFunction interface */ | |||
GoFTest(UInt_t sampleSize, const Double_t* sample, const IGenFunction& d ist, EUserDistribution userDist = kPDF, | GoFTest(UInt_t sampleSize, const Double_t* sample, const IGenFunction& d ist, EUserDistribution userDist = kPDF, | |||
Double_t xmin = 1, Double_t xmax = 0) | Double_t xmin = 1, Double_t xmax = 0) | |||
{ | { | |||
Instantiate(sample, sampleSize); | Instantiate(sample, sampleSize); | |||
SetUserDistribution(dist, userDist,xmin,xmax); | SetUserDistribution(dist, userDist, xmin, xmax); | |||
} | } | |||
/* Sets the user input distribution function for 1-sample tests. */ | /* Sets the user input distribution function for 1-sample tests. */ | |||
template<class Dist> | template<class Dist> | |||
void SetUserDistribution(Dist& dist, EUserDistribution userDist = kPDF, Double_t xmin = 1, Double_t xmax = 0) { | void SetUserDistribution(Dist& dist, EUserDistribution userDist = kPDF, Double_t xmin = 1, Double_t xmax = 0) { | |||
WrappedFunction<Dist&> wcdf(dist); | WrappedFunction<Dist&> wdist(dist); | |||
SetDistributionFunction(wcdf, userDist,xmin,xmax); | SetDistributionFunction(wdist, userDist, xmin, xmax); | |||
} | } | |||
/* Template specialization to set the user input distribution for 1-samp le tests */ | /* Template specialization to set the user input distribution for 1-samp le tests */ | |||
void SetUserDistribution(const IGenFunction& f, GoFTest::EUserDistributi | void SetUserDistribution(const IGenFunction& dist, GoFTest::EUserDistrib | |||
on userDist, Double_t xmin = 1, Double_t xmax = 0) { | ution userDist = kPDF, Double_t xmin = 1, Double_t xmax = 0) { | |||
SetDistributionFunction(f, userDist,xmin,xmax); | SetDistributionFunction(dist, userDist, xmin, xmax); | |||
} | } | |||
/* Sets the user input distribution as a probability density function fo r 1-sample tests */ | /* Sets the user input distribution as a probability density function fo r 1-sample tests */ | |||
template<class Dist> | template<class Dist> | |||
void SetUserPDF(Dist& dist, Double_t xmin = 1, Double_t xmax = 0) { | void SetUserPDF(Dist& pdf, Double_t xmin = 1, Double_t xmax = 0) { | |||
SetUserDistribution<Dist>(dist, kPDF,xmin,xmax); | SetUserDistribution<Dist>(pdf, kPDF, xmin, xmax); | |||
} | } | |||
/* Template specialization to set the user input distribution as a proba bility density function for 1-sample tests */ | /* Template specialization to set the user input distribution as a proba bility density function for 1-sample tests */ | |||
void SetUserPDF(const IGenFunction& f, Double_t xmin = 1, Double_t xmax | void SetUserPDF(const IGenFunction& pdf, Double_t xmin = 1, Double_t xma | |||
= 0) { | x = 0) { | |||
SetUserDistribution(f, kPDF,xmin,xmax); | SetUserDistribution(pdf, kPDF, xmin, xmax); | |||
} | } | |||
/* Sets the user input distribution as a cumulative distribution functio n for 1-sample tests | /* Sets the user input distribution as a cumulative distribution functio n for 1-sample tests | |||
The CDF must return zero | The CDF must return zero | |||
*/ | */ | |||
template<class Dist> | template<class Dist> | |||
void SetUserCDF(Dist& dist, Double_t xmin = 1, Double_t xmax = 0) { | void SetUserCDF(Dist& cdf, Double_t xmin = 1, Double_t xmax = 0) { | |||
SetUserDistribution<Dist>(dist, kCDF, xmin, xmax); | SetUserDistribution<Dist>(cdf, kCDF, xmin, xmax); | |||
} | } | |||
/* Template specialization to set the user input distribution as a cumul ative distribution function for 1-sample tests */ | /* Template specialization to set the user input distribution as a cumul ative distribution function for 1-sample tests */ | |||
void SetUserCDF(const IGenFunction& f, Double_t xmin = 1, Double_t xmax | void SetUserCDF(const IGenFunction& cdf, Double_t xmin = 1, Double_t xma | |||
= 0) { | x = 0) { | |||
SetUserDistribution(f, kCDF, xmin, xmax); | SetUserDistribution(cdf, kCDF, xmin, xmax); | |||
} | } | |||
/* Sets the distribution for the predefined distribution types */ | /* Sets the distribution for the predefined distribution types */ | |||
void SetDistribution(EDistribution dist); | void SetDistribution(EDistribution dist); | |||
virtual ~GoFTest(); | virtual ~GoFTest(); | |||
/* | /* | |||
The Anderson-Darling K-Sample Test algorithm is described and taken from | The Anderson-Darling K-Sample Test algorithm is described and taken from | |||
http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/andeksa m.htm | http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/andeksa m.htm | |||
and described and taken from (1) | and described and taken from (1) | |||
Scholz F.W., Stephens M.A. (1987), K-sample Anderson-Darling Tests, Journ al of the American Statistical Association, 82, 918–924. (2-samples variant implemented) | Scholz F.W., Stephens M.A. (1987), K-sample Anderson-Darling Tests, Journ al of the American Statistical Association, 82, 918–924. (2-samples variant implemented) | |||
*/ | */ void AndersonDarling2SamplesTest(Double_t& pvalue, Double_t& testStat) c onst; | |||
Double_t AndersonDarling2SamplesTest(const Char_t* option = "p") const; // Returns default p-value; option "t" returns the test statistic value "A2 " | Double_t AndersonDarling2SamplesTest(const Char_t* option = "p") const; // Returns default p-value; option "t" returns the test statistic value "A2 " | |||
/* | /* | |||
The Anderson-Darling 1-Sample Test algorithm for a specific distribution is described at | The Anderson-Darling 1-Sample Test algorithm for a specific distribution is described at | |||
http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/andedar l.htm | http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/andedar l.htm | |||
and described and taken from (2) | and described and taken from (2) | |||
Marsaglia J.C.W., Marsaglia G. (2004), Evaluating the Anderson-Darling Di stribution, Journal of Statistical Software, Volume 09, Issue i02. | Marsaglia J.C.W., Marsaglia G. (2004), Evaluating the Anderson-Darling Di stribution, Journal of Statistical Software, Volume 09, Issue i02. | |||
and described and taken from (3) | and described and taken from (3) | |||
Lewis P.A.W. (1961), The Annals of Mathematical Statistics, Distribution of the Anderson-Darling Statistic, Volume 32, Number 4, 1118-1124. | Lewis P.A.W. (1961), The Annals of Mathematical Statistics, Distribution of the Anderson-Darling Statistic, Volume 32, Number 4, 1118-1124. | |||
*/ | */ void AndersonDarlingTest(Double_t& pvalue, Double_t& testStat) const; | |||
Double_t AndersonDarlingTest(const Char_t* option = "p") const; // Retur ns default p-value; option "t" returns the test statistic value "A2" | Double_t AndersonDarlingTest(const Char_t* option = "p") const; // Retur ns default p-value; option "t" returns the test statistic value "A2" | |||
/* | /* | |||
The Kolmogorov-Smirnov 2-Samples Test algorithm is described at | The Kolmogorov-Smirnov 2-Samples Test algorithm is described at | |||
http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/ks2samp .htm | http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/ks2samp .htm | |||
and described and taken from | and described and taken from | |||
http://root.cern.ch/root/html/TMath.html#TMath:KolmogorovTest | http://root.cern.ch/root/html/TMath.html#TMath:KolmogorovTest | |||
*/ | */ void KolmogorovSmirnov2SamplesTest(Double_t& pvalue, Double_t& testStat) const; | |||
Double_t KolmogorovSmirnov2SamplesTest(const Char_t* option = "p") const ; // Returns default p-value; option "t" returns the test statistic value " Dn" | Double_t KolmogorovSmirnov2SamplesTest(const Char_t* option = "p") const ; // Returns default p-value; option "t" returns the test statistic value " Dn" | |||
/* | /* | |||
The Kolmogorov-Smirnov 1-Sample Test algorithm for a specific distributio n is described at | The Kolmogorov-Smirnov 1-Sample Test algorithm for a specific distributio n is described at | |||
http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/kstest. htm | http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/kstest. htm | |||
and described and taken from (4) | and described and taken from (4) | |||
Press W. H., Teukolsky S.A., Vetterling W.T., Flannery B.P. (2007), Numer ical Recipes - The Art of Scientific Computing (Third Edition), Cambridge U niverdity Press | Press W. H., Teukolsky S.A., Vetterling W.T., Flannery B.P. (2007), Numer ical Recipes - The Art of Scientific Computing (Third Edition), Cambridge U niverdity Press | |||
*/ | */ void KolmogorovSmirnovTest(Double_t& pvalue, Double_t& testStat) const; | |||
Double_t KolmogorovSmirnovTest(const Char_t* option = "p") const; // Ret urns default p-value; option "t" returns the test statistic value "Dn" | Double_t KolmogorovSmirnovTest(const Char_t* option = "p") const; // Ret urns default p-value; option "t" returns the test statistic value "Dn" | |||
// The class's unary function | // The class's unary functions | |||
Double_t operator()(ETestType test = kAD, const Char_t* option = "p") co | void operator()(ETestType test, Double_t& pvalue, Double_t& testStat) co | |||
nst; // The class's unary function: returns default Anderson Darling 1-Samp | nst; | |||
le Test and default p-value; option "t" returns the test statistic value sp | Double_t operator()(ETestType test = kAD, const Char_t* option = "p") co | |||
ecific to the test type | nst; // Returns default Anderson Darling 1-Sample Test and default p-value; | |||
option "t" returns the test statistic value specific to the test type | ||||
private: | private: | |||
GoFTest(); // Disallowed default constructor | GoFTest(); // Disallowed default constructor | |||
GoFTest(GoFTest& gof); // Disallowed copy constructor | GoFTest(GoFTest& gof); // Disallowed copy constructor | |||
GoFTest operator=(GoFTest& gof); // Disallowed assign operator | GoFTest operator=(GoFTest& gof); // Disallowed assign operator | |||
std::auto_ptr<IGenFunction> fCDF; | std::auto_ptr<IGenFunction> fCDF; | |||
EDistribution fDist; | EDistribution fDist; | |||
End of changes. 16 change blocks. | ||||
29 lines changed or deleted | 30 lines changed or added | |||
Hoption.h | Hoption.h | |||
---|---|---|---|---|
/* @(#)root/histpainter:$Id: Hoption.h 21648 2008-01-11 16:16:26Z couet $ * / | /* @(#)root/histpainter:$Id: Hoption.h 36077 2010-10-05 09:16:06Z brun $ */ | |||
/************************************************************************* | /************************************************************************* | |||
* 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_Hoption | #ifndef ROOT_Hoption | |||
skipping to change at line 36 | skipping to change at line 36 | |||
int Bar; // "B" A Bar chart is drawn at each point. | int Bar; // "B" A Bar chart is drawn at each point. | |||
int Curve; // "C" A smooth Curve is drawn. | int Curve; // "C" A smooth Curve is drawn. | |||
int Error; // "E" Draw Errors with current marker type and size. | int Error; // "E" Draw Errors with current marker type and size. | |||
int Fill; // "F" A fill area is drawn ("CF" draw a smooth fill a rea). | int Fill; // "F" A fill area is drawn ("CF" draw a smooth fill a rea). | |||
int Off; // "][" With H option, the first and last vertical line s are not drawn. | int Off; // "][" With H option, the first and last vertical line s are not drawn. | |||
int Keep; // "K" The status of the histogram is kept in memory | int Keep; // "K" The status of the histogram is kept in memory | |||
int Line; // "L" A simple polyline beetwen every point is drawn. | int Line; // "L" A simple polyline beetwen every point is drawn. | |||
int Mark; // "P" The current Marker is drawn at each point | int Mark; // "P" The current Marker is drawn at each point | |||
int Same; // "S" Histogram is plotted in the current PAD. | int Same; // "S" Histogram is plotted in the current PAD. | |||
int Update; // "U" Update histogram previously plotted with option K | int Update; // "U" Update histogram previously plotted with option K | |||
int Plus; // "+", "-", "+-" Bin contents are added and/or substr acted | ||||
int Star; // "*" A * is plotted at each point | int Star; // "*" A * is plotted at each point | |||
int Arrow; // "ARR" Draw 2D plot with Arrows. | int Arrow; // "ARR" Draw 2D plot with Arrows. | |||
int Box; // "BOX" Draw 2D plot with proportional Boxes. | int Box; // "BOX" Draw 2D plot with proportional Boxes. | |||
int Char; // "CHAR" Draw 2D plot with a character set. | int Char; // "CHAR" Draw 2D plot with a character set. | |||
int Color; // "COL" Draw 2D plot with Colored boxes. | int Color; // "COL" Draw 2D plot with Colored boxes. | |||
int Contour; // "CONT" Draw 2D plot as a Contour plot. | int Contour; // "CONT" Draw 2D plot as a Contour plot. | |||
int Func; // "FUNC" Draw only the function (for example in case of fit). | int Func; // "FUNC" Draw only the function (for example in case of fit). | |||
int Hist; // "HIST" Draw only the histogram. | int Hist; // "HIST" Draw only the histogram. | |||
int Lego; // "LEGO" Draw as a Lego plot(LEGO,Lego=1, LEGO1,Lego1 =11, LEGO2,Lego=12). | int Lego; // "LEGO" Draw as a Lego plot(LEGO,Lego=1, LEGO1,Lego1 =11, LEGO2,Lego=12). | |||
int Scat; // "SCAT" Draw 2D plot a Scatter plot. | int Scat; // "SCAT" Draw 2D plot a Scatter plot. | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 1 lines changed or added | |||
HybridCalculator.h | HybridCalculator.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: HybridCalculator.h 34109 2010-06-24 15:00:16Z mon | // @(#)root/roostats:$Id: HybridCalculator.h 37084 2010-11-29 21:37:13Z mon | |||
eta $ | eta $ | |||
// Author: Kyle Cranmer, Sven Kreiss 23/05/10 | ||||
/************************************************************************* | /************************************************************************* | |||
* 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_HybridCalculator | #ifndef ROOSTATS_HybridCalculator | |||
#define ROOSTATS_HybridCalculator | #define ROOSTATS_HybridCalculator | |||
#ifndef ROOT_Rtypes | //_________________________________________________ | |||
#include "Rtypes.h" // necessary for TNamed | /* | |||
#endif | BEGIN_HTML | |||
<p> | ||||
#ifndef ROOSTATS_HypoTestCalculator | This class extends the HybridCalculator with Importance Sampling. The use | |||
#include "RooStats/HypoTestCalculator.h" | of ToyMCSampler as the TestStatSampler is assumed. | |||
#endif | </p> | |||
END_HTML | ||||
#ifndef ROOSTATS_ModelConfig | */ | |||
#include "RooStats/ModelConfig.h" | // | |||
#endif | ||||
#ifndef ROOSTATS_TestStatistic | ||||
#include "RooStats/TestStatistic.h" | ||||
#endif | ||||
#ifndef ROOSTATS_TestStatSampler | #ifndef ROOSTATS_HybridCalculatorGeneric | |||
#include "RooStats/TestStatSampler.h" | #include "RooStats/HybridCalculatorGeneric.h" | |||
#endif | #endif | |||
#ifndef ROOSTATS_SamplingDistribution | #ifndef ROOSTATS_ToyMCSampler | |||
#include "RooStats/SamplingDistribution.h" | #include "RooStats/ToyMCSampler.h" | |||
#endif | ||||
#ifndef ROOSTATS_HypoTestResult | ||||
#include "RooStats/HypoTestResult.h" | ||||
#endif | #endif | |||
namespace RooStats { | namespace RooStats { | |||
class HybridCalculator: public HypoTestCalculator { | class HybridCalculator: public HybridCalculatorGeneric { | |||
public: | public: | |||
HybridCalculator( | HybridCalculator( | |||
RooAbsData &data, | const RooAbsData &data, | |||
ModelConfig &altModel, | const ModelConfig &altModel, | |||
ModelConfig &nullModel, | const ModelConfig &nullModel, | |||
TestStatSampler* sampler=0 | TestStatSampler* sampler=0 | |||
); | ) : | |||
HybridCalculatorGeneric(data, altModel, nullModel, sampler), | ||||
fNullImportanceDensity(NULL), | ||||
fNullImportanceSnapshot(NULL), | ||||
fAltImportanceDensity(NULL), | ||||
fAltImportanceSnapshot(NULL), | ||||
fNToysNull(0), | ||||
fNToysAlt(0), | ||||
fNToysNullTail(0), | ||||
fNToysAltTail(0) | ||||
{ | ||||
} | ||||
~HybridCalculator() { | ||||
if(fNullImportanceSnapshot) delete fNullImportanceSnapshot; | ||||
if(fAltImportanceSnapshot) delete fAltImportanceSnapshot; | ||||
} | ||||
// sets importance density and snapshot (optional) | ||||
void SetNullImportanceDensity(RooAbsPdf *p, const RooArgSet *s = NULL | ||||
) { | ||||
fNullImportanceDensity = p; | ||||
if(s) fNullImportanceSnapshot = (RooArgSet*)s->snapshot(); | ||||
else fNullImportanceSnapshot = NULL; | ||||
} | ||||
// sets importance density and snapshot (optional) | ||||
void SetAltImportanceDensity(RooAbsPdf *p, const RooArgSet *s = NULL) | ||||
{ | ||||
fAltImportanceDensity = p; | ||||
if(s) fAltImportanceSnapshot = (RooArgSet*)s->snapshot(); | ||||
else fAltImportanceSnapshot = NULL; | ||||
} | ||||
~HybridCalculator(); | // set number of toys | |||
void SetToys(int toysNull, int toysAlt) { fNToysNull = toysNull; fNTo | ||||
ysAlt = toysAlt; } | ||||
public: | // set least number of toys in tails | |||
void SetNToysInTails(int toysNull, int toysAlt) { fNToysNullTail = to | ||||
ysNull; fNToysAltTail = toysAlt; } | ||||
/// inherited methods from HypoTestCalculator interface | protected: | |||
virtual HypoTestResult* GetHypoTest() const; | // configure TestStatSampler for the Null run | |||
int PreNullHook(double obsTestStat) const; | ||||
// set the model for the null hypothesis (only B) | // configure TestStatSampler for the Alt run | |||
virtual void SetNullModel(const ModelConfig &nullModel) { fNullModel | int PreAltHook(double obsTestStat) const; | |||
= nullModel; } | ||||
// set the model for the alternate hypothesis (S+B) | ||||
virtual void SetAlternateModel(const ModelConfig &altModel) { fAltMod | ||||
el = altModel; } | ||||
// Set the DataSet | ||||
virtual void SetData(RooAbsData &data) { fData = data; } | ||||
// Override the distribution used for marginalizing nuisance paramete | ||||
rs that is infered from ModelConfig | ||||
virtual void ForcePriorNuisanceNull(RooAbsPdf& priorNuisance) { fPrio | ||||
rNuisanceNull = &priorNuisance; } | ||||
virtual void ForcePriorNuisanceAlt(RooAbsPdf& priorNuisance) { fPrior | ||||
NuisanceAlt = &priorNuisance; } | ||||
// Returns instance of TestStatSampler. Use to change properties of | ||||
// TestStatSampler, e.g. GetTestStatSampler.SetTestSize(Double_t size | ||||
); | ||||
TestStatSampler* GetTestStatSampler(void) { return fTestStatSampler; | ||||
} | ||||
private: | private: | |||
ModelConfig &fAltModel; | RooAbsPdf *fNullImportanceDensity; | |||
ModelConfig &fNullModel; | const RooArgSet *fNullImportanceSnapshot; | |||
RooAbsData &fData; | RooAbsPdf *fAltImportanceDensity; | |||
RooAbsPdf *fPriorNuisanceNull; | const RooArgSet *fAltImportanceSnapshot; | |||
RooAbsPdf *fPriorNuisanceAlt; | ||||
TestStatSampler* fTestStatSampler; | // different number of toys for null and alt | |||
TestStatSampler* fDefaultSampler; | int fNToysNull; | |||
TestStatistic* fDefaultTestStat; | int fNToysAlt; | |||
void SetupSampler(ModelConfig& model) const; | // adaptive sampling | |||
int fNToysNullTail; | ||||
protected: | int fNToysAltTail; | |||
ClassDef(HybridCalculator,1) | ||||
}; | protected: | |||
ClassDef(HybridCalculator,1) | ||||
}; | ||||
} | } | |||
#endif | #endif | |||
End of changes. 11 change blocks. | ||||
71 lines changed or deleted | 81 lines changed or added | |||
HypoTestInverterResult.h | HypoTestInverterResult.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: HypoTestInverterResult.h 31798 2009-12-10 14:57:1 5Z moneta $ | // @(#)root/roostats:$Id: HypoTestInverterResult.h 36230 2010-10-09 20:21:0 2Z wouter $ | |||
// 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 | |||
skipping to change at line 79 | skipping to change at line 79 | |||
//function evaluates only a rought error on the lower limit. Be careful when using this estimation | //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 | // Estimate of lower limit error | |||
//function evaluates only a rought error on the lower limit. Be careful when using this estimation | //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 | // merge with the content of another HypoTestInverterResult object | |||
bool Add( HypoTestInverterResult otherResult ); | bool Add( const 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. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
HypoTestPlot.h | HypoTestPlot.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: HypoTestPlot.h 34109 2010-06-24 15:00:16Z moneta $ | // @(#)root/roostats:$Id: HypoTestPlot.h 36602 2010-11-11 16:52:13Z moneta $ | |||
/************************************************************************* | /************************************************************************* | |||
* 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_HypoTestPlot | #ifndef ROOSTATS_HypoTestPlot | |||
#define ROOSTATS_HypoTestPlot | #define ROOSTATS_HypoTestPlot | |||
skipping to change at line 31 | skipping to change at line 31 | |||
#ifndef ROOSTATS_HypoTestResult | #ifndef ROOSTATS_HypoTestResult | |||
#include "RooStats/HypoTestResult.h" | #include "RooStats/HypoTestResult.h" | |||
#endif | #endif | |||
namespace RooStats { | namespace RooStats { | |||
class HypoTestPlot: public SamplingDistPlot { | class HypoTestPlot: public SamplingDistPlot { | |||
public: | public: | |||
/// Constructor | /// Constructor | |||
HypoTestPlot(HypoTestResult& result, Int_t bins=100); | HypoTestPlot(HypoTestResult& result, Int_t bins=100); | |||
~HypoTestPlot(void) { if(fTsDataDistr) delete fTsDataDistr; } | ~HypoTestPlot(void) {} | |||
// Applies a HypoTestResult. | // Applies a HypoTestResult. | |||
void ApplyResult(HypoTestResult& result); | void ApplyResult(HypoTestResult& result); | |||
// Set default style options (also called in the constructor that tak es a HypoTestResult). | // Set default style options (also called in the constructor that tak es a HypoTestResult). | |||
void ApplyDefaultStyle(void); | void ApplyDefaultStyle(void); | |||
private: | private: | |||
HypoTestResult *fHypoTestResult; | HypoTestResult *fHypoTestResult; | |||
SamplingDistribution *fTsDataDistr; // to visualize the value of the test statistic evaluated on the data | ||||
protected: | protected: | |||
ClassDef(HypoTestPlot,1) | ClassDef(HypoTestPlot,1) | |||
}; | }; | |||
} | } | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 2 lines changed or added | |||
HypoTestResult.h | HypoTestResult.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: HypoTestResult.h 34109 2010-06-24 15:00:16Z monet a $ | // @(#)root/roostats:$Id: HypoTestResult.h 36602 2010-11-11 16:52:13Z monet a $ | |||
// Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke, S ven Kreiss | // Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke, S ven Kreiss | |||
/************************************************************************* | /************************************************************************* | |||
* 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_HypoTestResult | #ifndef ROOSTATS_HypoTestResult | |||
skipping to change at line 80 | skipping to change at line 80 | |||
SamplingDistribution* GetNullDistribution(void) const { return fNullD istr; } | SamplingDistribution* GetNullDistribution(void) const { return fNullD istr; } | |||
SamplingDistribution* GetAltDistribution(void) const { return fAltDis tr; } | SamplingDistribution* GetAltDistribution(void) const { return fAltDis tr; } | |||
Double_t GetTestStatisticData(void) const { return fTestStatisticData ; } | Double_t GetTestStatisticData(void) const { return fTestStatisticData ; } | |||
Bool_t HasTestStatisticData(void) const; | Bool_t HasTestStatisticData(void) const; | |||
void SetAltDistribution(SamplingDistribution *alt); | void SetAltDistribution(SamplingDistribution *alt); | |||
void SetNullDistribution(SamplingDistribution *null); | void SetNullDistribution(SamplingDistribution *null); | |||
void SetTestStatisticData(const Double_t tsd); | void SetTestStatisticData(const Double_t tsd); | |||
void SetPValueIsRightTail(Bool_t pr); | void SetPValueIsRightTail(Bool_t pr); | |||
Bool_t GetPValueIsRightTail(void) { return fPValueIsRightTail; } | Bool_t GetPValueIsRightTail(void) const { return fPValueIsRightTail; } | |||
/// The error on the "confidence level" of the null hypothesis | /// The error on the "confidence level" of the null hypothesis | |||
Double_t CLbError() const; | Double_t CLbError() const; | |||
/// The error on the "confidence level" of the alternative hypothesis | /// The error on the "confidence level" of the alternative hypothesis | |||
Double_t CLsplusbError() const; | Double_t CLsplusbError() const; | |||
/// The error on the ratio CLs+b/CLb | /// The error on the ratio CLs+b/CLb | |||
Double_t CLsError() const; | Double_t CLsError() const; | |||
void Print(const Option_t* ) const { | Double_t NullPValueError() const; | |||
void Print(const Option_t* = "") const { | ||||
// Print out some information about the results | // Print out some information about the results | |||
cout << endl << "Results " << GetName() << ": " << endl; | cout << endl << "Results " << GetName() << ": " << endl; | |||
cout << " - Null p-value = " << NullPValue() << endl; | if(HasTestStatisticData() && fNullDistr) { | |||
cout << " - Significance = " << Significance() << " sigma" << endl; | cout << " - Null p-value = " << NullPValue() << " +/- " << Null | |||
PValueError() << endl; | ||||
cout << " - Significance = " << Significance() << " sigma" << e | ||||
ndl; | ||||
} | ||||
if(fAltDistr) | if(fAltDistr) | |||
cout << " - Number of S+B toys: " << fAltDistr->GetSize() << st d::endl; | cout << " - Number of S+B toys: " << fAltDistr->GetSize() << st d::endl; | |||
if(fNullDistr) | if(fNullDistr) | |||
cout << " - Number of B toys: " << fNullDistr->GetSize() << std ::endl; | cout << " - Number of B toys: " << fNullDistr->GetSize() << std ::endl; | |||
if(HasTestStatisticData()) | if(HasTestStatisticData()) | |||
cout << " - Test statistic evaluated on data: " << fTestStatist icData << std::endl; | cout << " - Test statistic evaluated on data: " << fTestStatist icData << std::endl; | |||
if(HasTestStatisticData() && fNullDistr) | if(HasTestStatisticData() && fNullDistr) | |||
cout << " - CL_b: " << CLb() << " +/- " << CLbError() << std::e ndl; | cout << " - CL_b: " << CLb() << " +/- " << CLbError() << std::e ndl; | |||
if(HasTestStatisticData() && fAltDistr) | if(HasTestStatisticData() && fAltDistr) | |||
cout << " - CL_s+b: " << CLsplusb() << " +/- " << CLsplusbError () << std::endl; | cout << " - CL_s+b: " << CLsplusb() << " +/- " << CLsplusbError () << std::endl; | |||
End of changes. 4 change blocks. | ||||
5 lines changed or deleted | 11 lines changed or added | |||
IMethod.h | IMethod.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: IMethod.h 35729 2010-09-25 10:43:37Z stelzer $ | // @(#)root/tmva $Id: IMethod.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 77 | skipping to change at line 77 | |||
IMethod() {} | IMethod() {} | |||
// default destructur | // default destructur | |||
virtual ~IMethod() {} | virtual ~IMethod() {} | |||
// ------- 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, Double_t* errUpper = 0 ) = 0; | |||
// training method | // training method | |||
virtual void Train( void ) = 0; | virtual void Train( void ) = 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; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
Integrator.h | Integrator.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: Integrator.h 34764 2010-08-11 09:43:15Z moneta $ | // @(#)root/mathmore:$Id: Integrator.h 36764 2010-11-19 10:02:00Z moneta $ | |||
// Authors: L. Moneta, M. Slawinska 10/2007 | // Authors: L. Moneta, M. Slawinska 10/2007 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2007 ROOT Foundation, CERN/PH-SFT * | * Copyright (c) 2007 ROOT Foundation, CERN/PH-SFT * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for class Integrator | // Header file for class Integrator | |||
// | // | |||
// | // | |||
#ifndef ROOT_Math_Integrator | #ifndef ROOT_Math_Integrator | |||
#define ROOT_Math_Integrator | #define ROOT_Math_Integrator | |||
#ifndef ROOT_Math_AllIntegrationTypes | #ifndef ROOT_Math_AllIntegrationTypes | |||
#include "Math/AllIntegrationTypes.h" | #include "Math/AllIntegrationTypes.h" | |||
#endif | #endif | |||
#ifndef ROOT_Math_IntegratorOptions | ||||
#include "Math/IntegratorOptions.h" | ||||
#endif | ||||
#ifndef ROOT_Math_IFunction | #ifndef ROOT_Math_IFunction | |||
#include "Math/IFunction.h" | #include "Math/IFunction.h" | |||
#endif | #endif | |||
#ifndef ROOT_Math_VirtualIntegrator | #ifndef ROOT_Math_VirtualIntegrator | |||
#include "Math/VirtualIntegrator.h" | #include "Math/VirtualIntegrator.h" | |||
#endif | #endif | |||
#include <memory> | #include <memory> | |||
skipping to change at line 75 | skipping to change at line 79 | |||
<A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_16.html#SEC248">GSL Manual</A>. | <A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_16.html#SEC248">GSL Manual</A>. | |||
@ingroup Integration | @ingroup Integration | |||
*/ | */ | |||
class IntegratorOneDim { | class IntegratorOneDim { | |||
public: | public: | |||
typedef IntegrationOneDim::Type Type; // for the enumerations defining | ||||
the types | ||||
// constructors | // constructors | |||
/** | /** | |||
Constructor of one dimensional Integrator, default type is adaptive | Constructor of one dimensional Integrator, default type is adaptive | |||
@param type integration type (adaptive, non-adaptive, etc..) | @param type integration type (adaptive, non-adaptive, etc..) | |||
@param absTol desired absolute Error | @param absTol desired absolute Error | |||
@param relTol desired relative Error | @param relTol desired relative Error | |||
@param size maximum number of sub-intervals | @param size maximum number of sub-intervals | |||
@param rule Gauss-Kronrod integration rule (only for GSL kADAPTIVE type) | @param rule Gauss-Kronrod integration rule (only for GSL kADAPTIVE type) | |||
Possible type values are : kGAUSS (simple Gauss method), kADAPTIVE ( from GSL), kADAPTIVESINGULAR (from GSL), kNONADAPTIVE (from GSL) | Possible type values are : kGAUSS (simple Gauss method), kADAPTIVE ( from GSL), kADAPTIVESINGULAR (from GSL), kNONADAPTIVE (from GSL) | |||
Possible rule values are kGAUS15 (rule = 1), kGAUS21( rule = 2), kGA US31(rule =3), kGAUS41 (rule=4), kGAUS51 (rule =5), kGAUS61(rule =6) | Possible rule values are kGAUS15 (rule = 1), kGAUS21( rule = 2), kGA US31(rule =3), kGAUS41 (rule=4), kGAUS51 (rule =5), kGAUS61(rule =6) | |||
lower rules are indicated for singular functions while higher for sm ooth functions to get better accuracies | lower rules are indicated for singular functions while higher for sm ooth functions to get better accuracies | |||
NOTE: When the default values are passed, the values used are taken | ||||
from the default defined in ROOT::Math::IntegratorOneDimOptions | ||||
*/ | */ | |||
explicit | explicit | |||
IntegratorOneDim(IntegrationOneDim::Type type = IntegrationOneDim::kADA PTIVESINGULAR, double absTol = 1.E-9, double relTol = 1E-6, unsigned int si ze = 1000, unsigned int rule = 3) : | IntegratorOneDim(IntegrationOneDim::Type type = IntegrationOneDim::kDEF AULT, double absTol = 0, double relTol = 0, unsigned int size = 0, unsigned int rule = 0) : | |||
fIntegrator(0), fFunc(0) | fIntegrator(0), fFunc(0) | |||
{ | { | |||
fIntegrator = CreateIntegrator(type, absTol, relTol, size, rule); | fIntegrator = CreateIntegrator(type, absTol, relTol, size, rule); | |||
} | } | |||
/** | /** | |||
Constructor of one dimensional Integrator passing a function interfa ce | Constructor of one dimensional Integrator passing a function interfa ce | |||
@param f integration function (1D interface). It is copied insi de | @param f integration function (1D interface). It is copied insi de | |||
@param type integration type (adaptive, non-adaptive, etc..) | @param type integration type (adaptive, non-adaptive, etc..) | |||
@param absTol desired absolute Error | @param absTol desired absolute Error | |||
@param relTol desired relative Error | @param relTol desired relative Error | |||
@param size maximum number of sub-intervals | @param size maximum number of sub-intervals | |||
@param rule Gauss-Kronrod integration rule (only for GSL ADAPTIVE ty pe) | @param rule Gauss-Kronrod integration rule (only for GSL ADAPTIVE ty pe) | |||
NOTE: When the default values are passed, the values used are taken | ||||
from the default defined in ROOT::Math::IntegratorOneDimOptions | ||||
*/ | */ | |||
explicit | explicit | |||
IntegratorOneDim(const IGenFunction &f, IntegrationOneDim::Type type = I ntegrationOneDim::kADAPTIVE, double absTol = 1.E-9, double relTol = 1E-6, u nsigned int size = 1000, int rule = 3) : | IntegratorOneDim(const IGenFunction &f, IntegrationOneDim::Type type = I ntegrationOneDim::kDEFAULT, double absTol = 0, double relTol = 0, unsigned int size = 0, int rule = 0) : | |||
fIntegrator(0), fFunc(0) | fIntegrator(0), fFunc(0) | |||
{ | { | |||
fIntegrator = CreateIntegrator(type, absTol, relTol, size, rule); | fIntegrator = CreateIntegrator(type, absTol, relTol, size, rule); | |||
SetFunction(f,true); | SetFunction(f,true); | |||
} | } | |||
/** | /** | |||
Template Constructor of one dimensional Integrator passing a generi c function object | Template Constructor of one dimensional Integrator passing a generi c function object | |||
@param f integration function (any C++ callable object implemen ting operator()(double x) | @param f integration function (any C++ callable object implemen ting operator()(double x) | |||
@param type integration type (adaptive, non-adaptive, etc..) | @param type integration type (adaptive, non-adaptive, etc..) | |||
@param absTol desired absolute Error | @param absTol desired absolute Error | |||
@param relTol desired relative Error | @param relTol desired relative Error | |||
@param size maximum number of sub-intervals | @param size maximum number of sub-intervals | |||
@param rule Gauss-Kronrod integration rule (only for GSL ADAPTIVE ty pe) | @param rule Gauss-Kronrod integration rule (only for GSL ADAPTIVE ty pe) | |||
*/ | */ | |||
template<class Function> | template<class Function> | |||
explicit | explicit | |||
IntegratorOneDim(Function & f, IntegrationOneDim::Type type = Integratio nOneDim::kADAPTIVE, double absTol = 1.E-9, double relTol = 1E-6, unsigned i nt size = 1000, int rule = 3) : | IntegratorOneDim(Function & f, IntegrationOneDim::Type type = Integratio nOneDim::kDEFAULT, double absTol = 0, double relTol = 0, unsigned int size = 0, int rule = 0) : | |||
fIntegrator(0), fFunc(0) | fIntegrator(0), fFunc(0) | |||
{ | { | |||
fIntegrator = CreateIntegrator(type, absTol, relTol, size, rule); | fIntegrator = CreateIntegrator(type, absTol, relTol, size, rule); | |||
SetFunction(f); | SetFunction(f); | |||
} | } | |||
/// destructor (will delete contained pointer) | /// destructor (will delete contained pointer) | |||
virtual ~IntegratorOneDim() { | virtual ~IntegratorOneDim() { | |||
if (fIntegrator) delete fIntegrator; | if (fIntegrator) delete fIntegrator; | |||
} | } | |||
skipping to change at line 374 | skipping to change at line 384 | |||
/** | /** | |||
return the estimate of the absolute Error of the last Integral calcul ation | return the estimate of the absolute Error of the last Integral calcul ation | |||
*/ | */ | |||
double Error() const { return fIntegrator == 0 ? 0 : fIntegrator->Error( ); } | double Error() const { return fIntegrator == 0 ? 0 : fIntegrator->Error( ); } | |||
/** | /** | |||
return the Error Status of the last Integral calculation | return the Error Status of the last Integral calculation | |||
*/ | */ | |||
int Status() const { return fIntegrator == 0 ? -1 : fIntegrator->Status( ); } | int Status() const { return fIntegrator == 0 ? -1 : fIntegrator->Status( ); } | |||
/** | ||||
return number of function evaluations in calculating the integral | ||||
(if integrator do not implement this function returns -1) | ||||
*/ | ||||
int NEval() const { return fIntegrator == 0 ? -1 : fIntegrator->NEval(); | ||||
} | ||||
// setter for control Parameters (getters are not needed so far ) | // setter for control Parameters (getters are not needed so far ) | |||
/** | /** | |||
set the desired relative Error | set the desired relative Error | |||
*/ | */ | |||
void SetRelTolerance(double relTolerance) { if (fIntegrator) fIntegrator ->SetRelTolerance(relTolerance); } | void SetRelTolerance(double relTolerance) { if (fIntegrator) fIntegrator ->SetRelTolerance(relTolerance); } | |||
/** | /** | |||
set the desired absolute Error | set the desired absolute Error | |||
*/ | */ | |||
void SetAbsTolerance(double absTolerance) { if (fIntegrator) fIntegrator ->SetAbsTolerance(absTolerance); } | void SetAbsTolerance(double absTolerance) { if (fIntegrator) fIntegrator ->SetAbsTolerance(absTolerance); } | |||
/** | /** | |||
return a pointer to integrator object | return a pointer to integrator object | |||
*/ | */ | |||
VirtualIntegratorOneDim * GetIntegrator() { return fIntegrator; } | VirtualIntegratorOneDim * GetIntegrator() { return fIntegrator; } | |||
/** | ||||
set the options | ||||
*/ | ||||
void SetOptions(const ROOT::Math::IntegratorOneDimOptions & opt) { if (f | ||||
Integrator) fIntegrator->SetOptions(opt); } | ||||
/** | ||||
retrieve the options | ||||
*/ | ||||
ROOT::Math::IntegratorOneDimOptions Options() const { return (fIntegrato | ||||
r) ? fIntegrator->Options() : IntegratorOneDimOptions(); } | ||||
/// return name of integrator | ||||
std::string Name() const { return (fIntegrator) ? Options().Integrator() | ||||
: std::string(""); } | ||||
/// static function to get the enumeration from a string | ||||
static IntegrationOneDim::Type GetType(const char * name); | ||||
/// static function to get a string from the enumeration | ||||
static std::string GetName(IntegrationOneDim::Type); | ||||
protected: | protected: | |||
VirtualIntegratorOneDim * CreateIntegrator(IntegrationOneDim::Type type , double absTol, double relTol, unsigned int size, int rule); | VirtualIntegratorOneDim * CreateIntegrator(IntegrationOneDim::Type type , double absTol, double relTol, unsigned int size, int rule); | |||
private: | private: | |||
VirtualIntegratorOneDim * fIntegrator; // pointer to integrator interf ace class | VirtualIntegratorOneDim * fIntegrator; // pointer to integrator interf ace class | |||
std::auto_ptr<IGenFunction> fFunc; // pointer to owned function | std::auto_ptr<IGenFunction> fFunc; // pointer to owned function | |||
}; | }; | |||
End of changes. 10 change blocks. | ||||
4 lines changed or deleted | 46 lines changed or added | |||
IntegratorMultiDim.h | IntegratorMultiDim.h | |||
---|---|---|---|---|
skipping to change at line 24 | skipping to change at line 24 | |||
#define ROOT_Math_IntegratorMultiDim | #define ROOT_Math_IntegratorMultiDim | |||
#ifndef ROOT_Math_IFunctionfwd | #ifndef ROOT_Math_IFunctionfwd | |||
#include "Math/IFunctionfwd.h" | #include "Math/IFunctionfwd.h" | |||
#endif | #endif | |||
#ifndef ROOT_Math_IntegrationTypes | #ifndef ROOT_Math_IntegrationTypes | |||
#include "Math/AllIntegrationTypes.h" | #include "Math/AllIntegrationTypes.h" | |||
#endif | #endif | |||
#ifndef ROOT_Math_IntegratorOptions | ||||
#include "Math/IntegratorOptions.h" | ||||
#endif | ||||
#ifndef ROOT_Math_VirtualIntegrator | #ifndef ROOT_Math_VirtualIntegrator | |||
#include "Math/VirtualIntegrator.h" | #include "Math/VirtualIntegrator.h" | |||
#endif | #endif | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
#ifndef ROOT_Math_WrappedFunction | #ifndef ROOT_Math_WrappedFunction | |||
#include "Math/WrappedFunction.h" | #include "Math/WrappedFunction.h" | |||
#endif | #endif | |||
skipping to change at line 57 | skipping to change at line 61 | |||
plug-in manager the MC integration class (ROOT::Math::GSLMCIntegration) from MathMore. | plug-in manager the MC integration class (ROOT::Math::GSLMCIntegration) from MathMore. | |||
@ingroup Integration | @ingroup Integration | |||
*/ | */ | |||
class IntegratorMultiDim { | class IntegratorMultiDim { | |||
public: | public: | |||
typedef IntegrationMultiDim::Type Type; // for the enumerations defini | ||||
ng the types | ||||
/** Generic constructor of multi dimensional Integrator. By default use s the Adaptive integration method | /** Generic constructor of multi dimensional Integrator. By default use s the Adaptive integration method | |||
@param type integration type (adaptive, MC methods, etc..) | @param type integration type (adaptive, MC methods, etc..) | |||
@param absTol desired absolute Error | @param absTol desired absolute Error | |||
@param relTol desired relative Error | @param relTol desired relative Error | |||
@param size maximum number of sub-intervals | @param size maximum number of sub-intervals | |||
In case no parameter values are passed the default ones used in Int | ||||
egratorMultiDimOptions are used | ||||
*/ | */ | |||
explicit | explicit | |||
IntegratorMultiDim(IntegrationMultiDim::Type type = IntegrationMultiDim: :kADAPTIVE, double absTol = 1.E-9, double relTol = 1E-6, unsigned int ncall = 100000) : | IntegratorMultiDim(IntegrationMultiDim::Type type = IntegrationMultiDim: :kDEFAULT, double absTol = 0, double relTol = 0, unsigned int ncall = 0) : | |||
fIntegrator(0), fFunc(0) | fIntegrator(0), fFunc(0) | |||
{ | { | |||
fIntegrator = CreateIntegrator(type, absTol, relTol, ncall); | fIntegrator = CreateIntegrator(type, absTol, relTol, ncall); | |||
} | } | |||
/** Generic Constructor of multi dimensional Integrator passing a funct ion. By default uses the adaptive integration method | /** Generic Constructor of multi dimensional Integrator passing a funct ion. By default uses the adaptive integration method | |||
@param f integration function (multi-dim interface) | @param f integration function (multi-dim interface) | |||
@param type integration type (adaptive, MC methods, etc..) | @param type integration type (adaptive, MC methods, etc..) | |||
@param absTol desired absolute Error | @param absTol desired absolute Error | |||
@param relTol desired relative Error | @param relTol desired relative Error | |||
@param ncall number of function calls (apply only to MC integratioo n methods) | @param ncall number of function calls (apply only to MC integratioo n methods) | |||
*/ | */ | |||
explicit | explicit | |||
IntegratorMultiDim(const IMultiGenFunction &f, IntegrationMultiDim::Type type = IntegrationMultiDim::kADAPTIVE, double absTol = 1.E-9, double relTo l = 1E-6, unsigned int ncall = 100000) : | IntegratorMultiDim(const IMultiGenFunction &f, IntegrationMultiDim::Type type = IntegrationMultiDim::kDEFAULT, double absTol = 0, double relTol = 0 , unsigned int ncall = 0) : | |||
fIntegrator(0), fFunc(0) | fIntegrator(0), fFunc(0) | |||
{ | { | |||
fIntegrator = CreateIntegrator(type, absTol, relTol, ncall); | fIntegrator = CreateIntegrator(type, absTol, relTol, ncall); | |||
SetFunction(f); | SetFunction(f); | |||
} | } | |||
// remove template constructor since is ambigous | // remove template constructor since is ambigous | |||
/** Template Constructor of multi dimensional Integrator passing a gene ric function. By default uses the adaptive integration method | /** Template Constructor of multi dimensional Integrator passing a gene ric function. By default uses the adaptive integration method | |||
skipping to change at line 171 | skipping to change at line 179 | |||
// return number of function evaluations in calculating the integral | // return number of function evaluations in calculating the integral | |||
//unsigned int NEval() const { return fNEval; } | //unsigned int NEval() const { return fNEval; } | |||
/// set the relative tolerance | /// set the relative tolerance | |||
void SetRelTolerance(double relTol) { if (fIntegrator) fIntegrator->SetR elTolerance(relTol); } | void SetRelTolerance(double relTol) { if (fIntegrator) fIntegrator->SetR elTolerance(relTol); } | |||
/// set absolute tolerance | /// set absolute tolerance | |||
void SetAbsTolerance(double absTol) { if (fIntegrator) fIntegrator->Set AbsTolerance(absTol); } | void SetAbsTolerance(double absTol) { if (fIntegrator) fIntegrator->Set AbsTolerance(absTol); } | |||
/// set the options | ||||
void SetOptions(const ROOT::Math::IntegratorMultiDimOptions & opt) { if | ||||
(fIntegrator) fIntegrator->SetOptions(opt); } | ||||
/// retrieve the options | ||||
ROOT::Math::IntegratorMultiDimOptions Options() const { return (fIntegra | ||||
tor) ? fIntegrator->Options() : IntegratorMultiDimOptions(); } | ||||
/// return a pointer to integrator object | /// return a pointer to integrator object | |||
VirtualIntegratorMultiDim * GetIntegrator() { return fIntegrator; } | VirtualIntegratorMultiDim * GetIntegrator() { return fIntegrator; } | |||
/// return name of integrator | ||||
std::string Name() const { return (fIntegrator) ? Options().Integrator() | ||||
: std::string(""); } | ||||
/// static function to get the enumeration from a string | ||||
static IntegrationMultiDim::Type GetType(const char * name); | ||||
/// static function to get a string from the enumeration | ||||
static std::string GetName(IntegrationMultiDim::Type); | ||||
protected: | protected: | |||
VirtualIntegratorMultiDim * CreateIntegrator(IntegrationMultiDim::Type t ype , double absTol, double relTol, unsigned int ncall); | VirtualIntegratorMultiDim * CreateIntegrator(IntegrationMultiDim::Type t ype , double absTol, double relTol, unsigned int ncall); | |||
private: | private: | |||
VirtualIntegratorMultiDim * fIntegrator; // pointer to multi-dimensi onal integrator base class | VirtualIntegratorMultiDim * fIntegrator; // pointer to multi-dimensi onal integrator base class | |||
std::auto_ptr<IMultiGenFunction> fFunc; // pointer to owned functi on | std::auto_ptr<IMultiGenFunction> fFunc; // pointer to owned functi on | |||
}; | }; | |||
End of changes. 7 change blocks. | ||||
2 lines changed or deleted | 30 lines changed or added | |||
Interval.h | Interval.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Interval.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: Interval.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 : Interval * | * Class : Interval * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Generic range definition (used, eg, in genetic algorithm) * | * Generic range definition (used, eg, in genetic algorithm) * | |||
skipping to change at line 28 | skipping to change at line 28 | |||
* 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_Interval | #ifndef ROOT_TMVA_Interval | |||
#define ROOT_TMVA_Interval | #define ROOT_TMVA_Interval | |||
////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////// | |||
// // | /// | |||
// Interval // | // | |||
// // | // | |||
// Interval definition, continuous and discrete // | // Interval | |||
// // | // | |||
////////////////////////////////////////////////////////////////////////// | // | |||
// | ||||
// Interval definition, continuous and discrete | ||||
// | ||||
// | ||||
// | ||||
// Interval(min,max) : a continous interval [min,max] | ||||
// | ||||
// Interval(min,max,n): a "discrete interval" [min,max], i.e the n numbers: | ||||
// | ||||
// min, min+step, min+2*step,...., min+(n-1)*step, min+n*step=max | ||||
// | ||||
// e.g.: Interval(1,5,5)=1,2,3,4,5 | ||||
// | ||||
// Interval(.5,1.,6)= .5, .6., .7, .8, .9, 1.0 | ||||
// | ||||
// | ||||
// | ||||
// Note: **bin** counting starts from ZERO unlike in ROOT histograms | ||||
// | ||||
// | ||||
// | ||||
// Example: Interval(.5,1.,6) | ||||
// | ||||
// | ||||
// | ||||
// [ min max ] | ||||
// | ||||
// ------------------------------------------------------------ | ||||
// | ||||
// | | | | | | | ||||
// | ||||
// .5 .6 .7 .8 .9 1.0 | ||||
// | ||||
// | ||||
// | ||||
// bin 0 1 2 3 4 5 | ||||
// | ||||
// | ||||
// | ||||
// | ||||
// | ||||
/////////////////////////////////////////////////////////////////////////// | ||||
/// | ||||
#ifndef ROOT_Rtypes | #ifndef ROOT_Rtypes | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
class TRandom3; | class TRandom3; | |||
namespace TMVA { | namespace TMVA { | |||
class MsgLogger; | class MsgLogger; | |||
skipping to change at line 62 | skipping to change at line 79 | |||
virtual ~Interval(); | virtual ~Interval(); | |||
// accessors | // accessors | |||
Double_t GetMin() const { return fMin; } | Double_t GetMin() const { return fMin; } | |||
Double_t GetMax() const { return fMax; } | Double_t GetMax() const { return fMax; } | |||
Double_t GetWidth() const { return fMax - fMin; } | Double_t GetWidth() const { return fMax - fMin; } | |||
Int_t GetNbins() const { return fNbins; } | Int_t GetNbins() const { return fNbins; } | |||
Double_t GetMean() const { return (fMax + fMin)/2; } | Double_t GetMean() const { return (fMax + fMin)/2; } | |||
Double_t GetRndm( TRandom3& ) const; | Double_t GetRndm( TRandom3& ) const; | |||
Double_t GetElement( Int_t position ) const; | Double_t GetElement( Int_t position ) const; | |||
Double_t GetStepSize() const; | ||||
void SetMax( Double_t m ) { fMax = m; } | void SetMax( Double_t m ) { fMax = m; } | |||
void SetMin( Double_t m ) { fMin = m; } | void SetMin( Double_t m ) { fMin = m; } | |||
private: | private: | |||
Double_t fMin, fMax; // the constraints of the Interval | Double_t fMin, fMax; // the constraints of the Interval | |||
Int_t fNbins; // when >0 : number of bins (discrete interva l); when =0 continuous interval | Int_t fNbins; // when >0 : number of bins (discrete interva l); when =0 continuous interval | |||
static MsgLogger* fgLogger; // message logger | static MsgLogger* fgLogger; // message logger | |||
End of changes. 3 change blocks. | ||||
9 lines changed or deleted | 52 lines changed or added | |||
LogLikelihoodFCN.h | LogLikelihoodFCN.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: LogLikelihoodFCN.h 32508 2010-03-09 10:51:11Z rdm $ | // @(#)root/mathcore:$Id: LogLikelihoodFCN.h 37232 2010-12-03 18:09:43Z mon eta $ | |||
// 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 LogLikelihoodFCN | // Header file for class LogLikelihoodFCN | |||
skipping to change at line 102 | skipping to change at line 102 | |||
/// clone the function (need to return Base for Windows) | /// clone the function (need to return Base for Windows) | |||
virtual BaseFunction * Clone() const { return new LogLikelihoodFCN(fDat a,fFunc); } | virtual BaseFunction * Clone() const { return new LogLikelihoodFCN(fDat a,fFunc); } | |||
//using BaseObjFunction::operator(); | //using BaseObjFunction::operator(); | |||
// effective points used in the fit | // effective points used in the fit | |||
virtual unsigned int NFitPoints() const { return fNEffPoints; } | virtual unsigned int NFitPoints() const { return fNEffPoints; } | |||
/// i-th likelihood contribution and its gradient | /// i-th likelihood contribution and its gradient | |||
virtual double DataElement(const double * x, unsigned int i, double * g) const { | virtual double DataElement(const double * x, unsigned int i, double * g) const { | |||
if (i==0) this->UpdateNCalls(); | ||||
return FitUtil::EvaluatePdf(fFunc, fData, x, i, g); | return FitUtil::EvaluatePdf(fFunc, fData, x, i, g); | |||
} | } | |||
// need to be virtual to be instantited | // need to be virtual to be instantited | |||
virtual void Gradient(const double *x, double *g) const { | virtual void Gradient(const double *x, double *g) const { | |||
// evaluate the chi2 gradient | // evaluate the chi2 gradient | |||
FitUtil::EvaluateLogLGradient(fFunc, fData, x, g, fNEffPoints); | FitUtil::EvaluateLogLGradient(fFunc, fData, x, g, fNEffPoints); | |||
} | } | |||
/// get type of fit method function | /// get type of fit method function | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
MCParameters.h | MCParameters.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: MCParameters.h 21503 2007-12-19 17:34:54Z moneta $ | // @(#)root/mathmore:$Id: MCParameters.h 36806 2010-11-20 11:09:14Z moneta $ | |||
// Author: Magdalena Slawinska 08/2007 | // Author: Magdalena Slawinska 08/2007 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* 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 28 | skipping to change at line 28 | |||
* You should have received a copy of the GNU General Public License * | * You should have received a copy of the GNU General Public License * | |||
* along with this library (see file COPYING); if not, write * | * along with this library (see file COPYING); if not, write * | |||
* to the Free Software Foundation, Inc., 59 Temple Place, Suite * | * to the Free Software Foundation, Inc., 59 Temple Place, Suite * | |||
* 330, Boston, MA 02111-1307 USA, or contact the author. * | * 330, Boston, MA 02111-1307 USA, or contact the author. * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
#ifndef ROOT_Math_MCParameters | #ifndef ROOT_Math_MCParameters | |||
#define ROOT_Math_MCParameters | #define ROOT_Math_MCParameters | |||
#include <cstring> // for size_t | ||||
namespace ROOT { | namespace ROOT { | |||
namespace Math { | namespace Math { | |||
class IOptions; | ||||
/** | /** | |||
structures collecting parameters | structures collecting parameters | |||
for VEGAS multidimensional integration | for VEGAS multidimensional integration | |||
FOr implementation of default parameters see file | ||||
mathmore/src/GSLMCIntegrationWorkspace.h | ||||
@ingroup MCIntegration | @ingroup MCIntegration | |||
*/ | */ | |||
struct VegasParameters{ | struct VegasParameters{ | |||
double sigma; | double alpha; | |||
double chisq; | size_t iterations; | |||
double alpha; | int stage; | |||
size_t iterations; | int mode; | |||
int verbose; | ||||
VegasParameters(): | ||||
alpha( 1.5), | // constructor of default parameters | |||
iterations(5) | VegasParameters() { SetDefaultValues(); } | |||
{} | ||||
// construct from GenAlgoOptions | ||||
//int stage; | // parameter not specified are ignored | |||
//int mode; | VegasParameters(const ROOT::Math::IOptions & opt); | |||
//int verbose; | ||||
void SetDefaultValues(); | ||||
VegasParameters & operator=(const ROOT::Math::IOptions & opt); | ||||
/// convert to options (return object is managed by the user) | ||||
ROOT::Math::IOptions * operator() () const; | ||||
}; | }; | |||
/** | /** | |||
structures collecting parameters | structures collecting parameters | |||
for MISER multidimensional integration | for MISER multidimensional integration | |||
@ingroup MCIntegration | @ingroup MCIntegration | |||
*/ | */ | |||
struct MiserParameters{ | struct MiserParameters{ | |||
double estimate_frac; | double estimate_frac; | |||
size_t min_calls; | size_t min_calls; | |||
size_t min_calls_per_bisection; | size_t min_calls_per_bisection; | |||
double alpha; | double alpha; | |||
double dither; | ||||
MiserParameters(unsigned int dim): | ||||
estimate_frac(0.1), | // constructor of default parameters | |||
min_calls(16*dim), | // needs dimension since min_calls = 16 * dim | |||
min_calls_per_bisection(32*min_calls) , | MiserParameters(size_t dim=10) { SetDefaultValues(dim); } | |||
alpha(2.) | ||||
{} | void SetDefaultValues(size_t dim=10); | |||
// construct from GenAlgoOptions | ||||
// parameter not specified are ignored | ||||
MiserParameters(const ROOT::Math::IOptions & opt, size_t dim = 10); | ||||
MiserParameters & operator=(const ROOT::Math::IOptions & opt); | ||||
/// convert to options (return object is managed by the user) | ||||
ROOT::Math::IOptions * operator() () const; | ||||
}; | }; | |||
struct PlainParameters{ | struct PlainParameters{ | |||
}; | }; | |||
} // namespace Math | } // namespace Math | |||
} // namespace ROOT | } // namespace ROOT | |||
#endif | #endif | |||
End of changes. 8 change blocks. | ||||
26 lines changed or deleted | 46 lines changed or added | |||
MaxLikelihoodEstimateTestStat.h | MaxLikelihoodEstimateTestStat.h | |||
---|---|---|---|---|
skipping to change at line 42 | skipping to change at line 42 | |||
#include "RooStats/TestStatistic.h" | #include "RooStats/TestStatistic.h" | |||
#include "RooAbsPdf.h" | #include "RooAbsPdf.h" | |||
#include "RooRealVar.h" | #include "RooRealVar.h" | |||
namespace RooStats { | namespace RooStats { | |||
class MaxLikelihoodEstimateTestStat: public TestStatistic { | class MaxLikelihoodEstimateTestStat: public TestStatistic { | |||
public: | public: | |||
//__________________________________ | //__________________________________ | |||
MaxLikelihoodEstimateTestStat(RooAbsPdf& pdf, RooRealVar& parameter) : | MaxLikelihoodEstimateTestStat() : | |||
fPdf(pdf),fParameter(parameter), fUpperLimit(true) | fPdf(NULL),fParameter(NULL), fUpperLimit(true) | |||
{ | ||||
{ | // constructor | |||
// fPdf = pdf; | ||||
// fParameter = parameter; | ||||
} | ||||
//__________________________________ | ||||
MaxLikelihoodEstimateTestStat(RooAbsPdf& pdf, RooRealVar& parameter) : | ||||
fPdf(&pdf),fParameter(¶meter), fUpperLimit(true) | ||||
{ | ||||
// constructor | // constructor | |||
// fPdf = pdf; | // fPdf = pdf; | |||
// fParameter = parameter; | // fParameter = parameter; | |||
} | ||||
} | ||||
//______________________________ | //______________________________ | |||
virtual Double_t Evaluate(RooAbsData& data, RooArgSet& /*nullPOI*/) { | virtual Double_t Evaluate(RooAbsData& data, RooArgSet& /*nullPOI*/) { | |||
RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBelow() ; | RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBelow() ; | |||
RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); | RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); | |||
/* | /* | |||
// this is more straight forward, but produces a lot of messages | // this is more straight forward, but produces a lot of messages | |||
RooFitResult* res = fPdf.fitTo(data, RooFit::CloneData(kFALSE),RooFit:: Minos(0),RooFit::Hesse(false), RooFit::Save(1),RooFit::PrintLevel(-1),RooFi t::PrintEvalErrors(0)); | RooFitResult* res = fPdf.fitTo(data, RooFit::CloneData(kFALSE),RooFit:: Minos(0),RooFit::Hesse(false), RooFit::Save(1),RooFit::PrintLevel(-1),RooFi t::PrintEvalErrors(0)); | |||
RooRealVar* mle = (RooRealVar*) res->floatParsFinal().find(fParameter.G etName()); | RooRealVar* mle = (RooRealVar*) res->floatParsFinal().find(fParameter.G etName()); | |||
double ret = mle->getVal(); | double ret = mle->getVal(); | |||
delete res; | delete res; | |||
return ret; | return ret; | |||
*/ | */ | |||
RooAbsReal* nll = fPdf.createNLL(data, RooFit::CloneData(false)); | RooAbsReal* nll = fPdf->createNLL(data, RooFit::CloneData(false)); | |||
RooAbsReal* profile = nll->createProfile(RooArgSet()); | RooAbsReal* profile = nll->createProfile(RooArgSet()); | |||
profile->getVal(); | profile->getVal(); | |||
RooArgSet* vars = profile->getVariables(); | RooArgSet* vars = profile->getVariables(); | |||
RooMsgService::instance().setGlobalKillBelow(msglevel); | RooMsgService::instance().setGlobalKillBelow(msglevel); | |||
double ret = vars->getRealValue(fParameter.GetName()); | double ret = vars->getRealValue(fParameter->GetName()); | |||
delete vars; | delete vars; | |||
delete nll; | delete nll; | |||
delete profile; | delete profile; | |||
return ret; | return ret; | |||
} | } | |||
virtual const TString GetVarName() const { | virtual const TString GetVarName() const { | |||
TString varName = Form("Maximum Likelihood Estimate of %s",fParameter.G etName()); | TString varName = Form("Maximum Likelihood Estimate of %s",fParameter-> GetName()); | |||
return varName; | return varName; | |||
} | } | |||
virtual void PValueIsRightTail(bool isright) { fUpperLimit = isright; } | virtual void PValueIsRightTail(bool isright) { fUpperLimit = isright; } | |||
virtual bool PValueIsRightTail(void) const { return fUpperLimit; } | virtual bool PValueIsRightTail(void) const { return fUpperLimit; } | |||
private: | private: | |||
RooAbsPdf& fPdf; | RooAbsPdf *fPdf; | |||
RooRealVar& fParameter; | RooRealVar *fParameter; | |||
bool fUpperLimit; | bool fUpperLimit; | |||
protected: | protected: | |||
ClassDef(MaxLikelihoodEstimateTestStat,1) | ClassDef(MaxLikelihoodEstimateTestStat,1) | |||
}; | }; | |||
} | } | |||
#endif | #endif | |||
End of changes. 6 change blocks. | ||||
12 lines changed or deleted | 18 lines changed or added | |||
MemberBase.h | MemberBase.h | |||
---|---|---|---|---|
// @(#)root/reflex:$Id: MemberBase.h 32228 2010-02-05 16:13:09Z axel $ | // @(#)root/reflex:$Id: MemberBase.h 36289 2010-10-11 09:54:28Z axel $ | |||
// Author: Stefan Roiser 2004 | // Author: Stefan Roiser 2004 | |||
// Copyright CERN, CH-1211 Geneva 23, 2004-2010, All rights reserved. | // Copyright CERN, CH-1211 Geneva 23, 2004-2010, All rights reserved. | |||
// | // | |||
// Permission to use, copy, modify, and distribute this software for any | // Permission to use, copy, modify, and distribute this software for any | |||
// purpose is hereby granted without fee, provided that this copyright and | // purpose is hereby granted without fee, provided that this copyright and | |||
// permissions notice appear in all copies and derivatives. | // permissions notice appear in all copies and derivatives. | |||
// | // | |||
// This software is provided "as is" without express or implied warranty. | // This software is provided "as is" without express or implied warranty. | |||
skipping to change at line 323 | skipping to change at line 323 | |||
* @link aggregation | * @link aggregation | |||
* @supplierCardinality 1 | * @supplierCardinality 1 | |||
* @clientCardinality 1 | * @clientCardinality 1 | |||
*/ | */ | |||
Member* fThisMember; | Member* fThisMember; | |||
}; // class Member | }; // class Member | |||
} //namespace Reflex | } //namespace Reflex | |||
#ifndef Reflex_Object | ||||
#include "Reflex/Object.h" | #include "Reflex/Object.h" | |||
#endif | ||||
#ifndef Reflex_MemberTemplate | ||||
#include "Reflex/MemberTemplate.h" | #include "Reflex/MemberTemplate.h" | |||
#endif | ||||
//------------------------------------------------------------------------- ------ | //------------------------------------------------------------------------- ------ | |||
inline Reflex::Object | inline Reflex::Object | |||
Reflex::MemberBase::Get(const Object& /* obj */) const { | Reflex::MemberBase::Get(const Object& /* obj */) const { | |||
//------------------------------------------------------------------------- ------ | //------------------------------------------------------------------------- ------ | |||
return Object(); | return Object(); | |||
} | } | |||
//------------------------------------------------------------------------- ------ | //------------------------------------------------------------------------- ------ | |||
//inline Reflex::Object | //inline Reflex::Object | |||
End of changes. 4 change blocks. | ||||
1 lines changed or deleted | 5 lines changed or added | |||
Method.h | Method.h | |||
---|---|---|---|---|
skipping to change at line 19 | skipping to change at line 19 | |||
************************************************************************ | ************************************************************************ | |||
* Copyright(c) 1995~2005 Masaharu Goto | * Copyright(c) 1995~2005 Masaharu Goto | |||
* | * | |||
* For the licensing terms see the file COPYING | * For the licensing terms see the file COPYING | |||
* | * | |||
************************************************************************/ | ************************************************************************/ | |||
#ifndef G__METHODINFO_H | #ifndef G__METHODINFO_H | |||
#define G__METHODINFO_H | #define G__METHODINFO_H | |||
#ifndef G__API_H | ||||
#include "Api.h" | #include "Api.h" | |||
#endif | ||||
namespace Cint { | namespace Cint { | |||
/********************************************************************* | /********************************************************************* | |||
* class G__MethodInfo | * class G__MethodInfo | |||
* | * | |||
* | * | |||
*********************************************************************/ | *********************************************************************/ | |||
class | class | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
G__EXPORT | G__EXPORT | |||
#endif | #endif | |||
G__MethodInfo { | G__MethodInfo { | |||
friend class G__MethodArgInfo; | friend class G__MethodArgInfo; | |||
public: | public: | |||
~G__MethodInfo() {} | ~G__MethodInfo() { if (memberOf != belongingclass) delete memberOf; } | |||
G__MethodInfo() | G__MethodInfo() | |||
: handle(0), index(0), usingIndex(0), belongingclass(NULL), type() | : handle(0), index(0), usingIndex(0), belongingclass(NULL), memberOf(0) , type() | |||
{ Init(); } | { Init(); } | |||
G__MethodInfo(G__ClassInfo &a) | G__MethodInfo(G__ClassInfo &a) | |||
: handle(0), index(0), usingIndex(0), belongingclass(NULL), type() | : handle(0), index(0), usingIndex(0), belongingclass(NULL), memberOf(0) , type() | |||
{ Init(a); } | { Init(a); } | |||
G__MethodInfo(const G__MethodInfo& mi) | G__MethodInfo(const G__MethodInfo& mi) | |||
: handle(mi.handle), index(mi.index), usingIndex(mi.usingIndex), | : handle(mi.handle), index(mi.index), usingIndex(mi.usingIndex), | |||
belongingclass(mi.belongingclass), type(mi.type) {} | belongingclass(mi.belongingclass), memberOf(0), type(mi.type) {} | |||
G__MethodInfo& operator=(const G__MethodInfo& mi) { | G__MethodInfo& operator=(const G__MethodInfo& mi) { | |||
handle=mi.handle; index=mi.index; usingIndex=mi.usingIndex; | handle=mi.handle; index=mi.index; usingIndex=mi.usingIndex; | |||
belongingclass=mi.belongingclass; type=mi.type; return *this;} | belongingclass=mi.belongingclass; memberOf=NULL; type=mi.type; return * this;} | |||
void Init(); | void Init(); | |||
void Init(G__ClassInfo &a); | void Init(G__ClassInfo &a); | |||
void Init(long handlein,long indexin,G__ClassInfo *belongingclassin); | void Init(long handlein,long indexin,G__ClassInfo *belongingclassin); | |||
void Init(G__ClassInfo *belongingclassin,long funcpage,long indexin); | void Init(G__ClassInfo *belongingclassin,long funcpage,long indexin); | |||
const char *Name() ; | const char *Name() ; | |||
#ifndef __MAKECINT__ | #ifndef __MAKECINT__ | |||
int Hash() ; | int Hash() ; | |||
struct G__ifunc_table* ifunc(); | struct G__ifunc_table* ifunc(); | |||
skipping to change at line 75 | skipping to change at line 77 | |||
int NDefaultArg(); | int NDefaultArg(); | |||
int HasVarArgs(); | int HasVarArgs(); | |||
G__InterfaceMethod InterfaceMethod(); | G__InterfaceMethod InterfaceMethod(); | |||
#ifdef G__ASM_WHOLEFUNC | #ifdef G__ASM_WHOLEFUNC | |||
struct G__bytecodefunc *GetBytecode(); | struct G__bytecodefunc *GetBytecode(); | |||
#endif | #endif | |||
G__DataMemberInfo GetLocalVariable(); /* ON1163 */ | G__DataMemberInfo GetLocalVariable(); /* ON1163 */ | |||
#ifdef G__TRUEP2F | #ifdef G__TRUEP2F | |||
void* PointerToFunc(); | void* PointerToFunc(); | |||
#endif | #endif | |||
G__ClassInfo* MemberOf() { return(belongingclass); } | G__ClassInfo* CreatedBy() { return(belongingclass); } | |||
G__ClassInfo* MemberOf(); | ||||
int GetDefiningScopeTagnum(); | int GetDefiningScopeTagnum(); | |||
struct G__friendtag* GetFriendInfo(); | struct G__friendtag* GetFriendInfo(); | |||
void SetGlobalcomp(int globalcomp); | void SetGlobalcomp(int globalcomp); | |||
void SetForceStub(); | void SetForceStub(); | |||
int IsValid(); | int IsValid(); | |||
int SetFilePos(const char* fname); | int SetFilePos(const char* fname); | |||
int Next(); | int Next(); | |||
const char *FileName(); | const char *FileName(); | |||
int LineNumber(); | int LineNumber(); | |||
skipping to change at line 110 | skipping to change at line 113 | |||
void *GetUserParam(); | void *GetUserParam(); | |||
long GetThisPointerOffset(); | long GetThisPointerOffset(); | |||
protected: | protected: | |||
long handle; | long handle; | |||
long index; | long index; | |||
#ifndef G__OLDIMPLEMENTATION2194 | #ifndef G__OLDIMPLEMENTATION2194 | |||
long usingIndex; | long usingIndex; | |||
#endif | #endif | |||
G__ClassInfo* belongingclass; | G__ClassInfo* belongingclass; | |||
G__ClassInfo* memberOf; | ||||
G__TypeInfo type; | G__TypeInfo type; | |||
}; | }; | |||
} // namespace Cint | } // namespace Cint | |||
using namespace Cint; | using namespace Cint; | |||
#endif | #endif | |||
End of changes. 9 change blocks. | ||||
6 lines changed or deleted | 10 lines changed or added | |||
MethodANNBase.h | MethodANNBase.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodANNBase.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: MethodANNBase.h 36966 2010-11-26 09:50:13Z evt $ | |||
// Author: Andreas Hoecker, Peter Speckmayer, Matt Jachowski | // Author: Andreas Hoecker, Peter Speckmayer, 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 123 | skipping to change at line 123 | |||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
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, Double_t* errUpper = 0 ); | |||
virtual const std::vector<Float_t> &GetRegressionValues(); | virtual const std::vector<Float_t> &GetRegressionValues(); | |||
virtual const std::vector<Float_t> &GetMulticlassValues(); | virtual const std::vector<Float_t> &GetMulticlassValues(); | |||
// write method specific histos to target file | // write method specific histos to target file | |||
virtual void WriteMonitoringHistosToFile() const; | virtual void WriteMonitoringHistosToFile() const; | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking(); | const Ranking* CreateRanking(); | |||
skipping to change at line 191 | skipping to change at line 191 | |||
// monitoring histograms (not available for regression) | // monitoring histograms (not available for regression) | |||
void CreateWeightMonitoringHists( const TString& bulkname, std::vecto r<TH1*>* hv = 0 ) const; | void CreateWeightMonitoringHists( const TString& bulkname, std::vecto r<TH1*>* hv = 0 ) const; | |||
std::vector<TH1*> fEpochMonHistS; // epoch monitoring hitograms for s ignal | std::vector<TH1*> fEpochMonHistS; // epoch monitoring hitograms for s ignal | |||
std::vector<TH1*> fEpochMonHistB; // epoch monitoring hitograms for b ackground | std::vector<TH1*> fEpochMonHistB; // epoch monitoring hitograms for b ackground | |||
std::vector<TH1*> fEpochMonHistW; // epoch monitoring hitograms for w eights | std::vector<TH1*> fEpochMonHistW; // epoch monitoring hitograms for w eights | |||
// general | // general | |||
TMatrixD fInvHessian; // zjh | TMatrixD fInvHessian; // zjh | |||
bool fUseRegulator; // zjh | bool fUseRegulator; // zjh | |||
protected: | ||||
Int_t fRandomSeed; // random seed for initial | ||||
synapse weights | ||||
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 | |||
void InitWeights(); | void InitWeights(); | |||
skipping to change at line 218 | skipping to change at line 221 | |||
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 trai n | Int_t fNcycles; // number of epochs to trai n | |||
TString fNeuronType; // name of neuron activatio n function class | TString fNeuronType; // name of neuron activatio n function class | |||
TString fNeuronInputType; // name of neuron input cal culator class | TString fNeuronInputType; // name of neuron input cal culator class | |||
TObjArray* fInputLayer; // cache this for fast acce ss | TObjArray* fInputLayer; // cache this for fast acce ss | |||
std::vector<TNeuron*> fOutputNeurons; // cache this for fast acce ss | std::vector<TNeuron*> fOutputNeurons; // cache this for fast acce ss | |||
TString fLayerSpec; // layout specification opt ion | TString fLayerSpec; // layout specification opt ion | |||
Int_t fRandomSeed; // random seed for initial synapse weights | ||||
// some static flags | // some static flags | |||
static const Bool_t fgDEBUG = kTRUE; // debug flag | static const Bool_t fgDEBUG = kTRUE; // debug flag | |||
ClassDef(MethodANNBase,0) // Base class for TMVA ANNs | ClassDef(MethodANNBase,0) // Base class for TMVA ANNs | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 6 lines changed or added | |||
MethodAr.h | MethodAr.h | |||
---|---|---|---|---|
skipping to change at line 19 | skipping to change at line 19 | |||
************************************************************************ | ************************************************************************ | |||
* Copyright(c) 1995~1999 Masaharu Goto | * Copyright(c) 1995~1999 Masaharu Goto | |||
* | * | |||
* For the licensing terms see the file COPYING | * For the licensing terms see the file COPYING | |||
* | * | |||
************************************************************************/ | ************************************************************************/ | |||
#ifndef G__METHODARGINFO_H | #ifndef G__METHODARGINFO_H | |||
#define G__METHODARGINFO_H | #define G__METHODARGINFO_H | |||
#ifndef G__API_H | ||||
#include "Api.h" | #include "Api.h" | |||
#endif | ||||
namespace Cint { | namespace Cint { | |||
/********************************************************************* | /********************************************************************* | |||
* class G__MethodArgInfo | * class G__MethodArgInfo | |||
* | * | |||
* | * | |||
*********************************************************************/ | *********************************************************************/ | |||
class | class | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
MethodBDT.h | MethodBDT.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodBDT.h 33939 2010-06-16 09:44:12Z rdm $ | // @(#)root/tmva $Id: MethodBDT.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 * | |||
skipping to change at line 85 | skipping to change at line 85 | |||
TDirectory* theTargetDir = NULL ); | TDirectory* theTargetDir = NULL ); | |||
virtual ~MethodBDT( void ); | virtual ~MethodBDT( 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 ); | |||
// 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(); | |||
// optimize tuning parameters | ||||
virtual std::map<TString,Double_t> OptimizeTuningParameters(TString f | ||||
omType="ROCIntegral", TString fitType="FitGA"); | ||||
virtual void SetTuneParameters(std::map<TString,Double_t> tuneParamet | ||||
ers); | ||||
// training method | // training method | |||
void Train( void ); | void Train( void ); | |||
// revoke training | ||||
void Reset( void ); | ||||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
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* errUpper = 0); | |||
Double_t GetMvaValue( Double_t* err , UInt_t useNTrees ); | ||||
private: | ||||
Double_t GetMvaValue( Double_t* err, Double_t* errUpper, UInt_t useNT | ||||
rees ); | ||||
public: | ||||
const std::vector<Float_t>& GetMulticlassValues(); | const std::vector<Float_t>& GetMulticlassValues(); | |||
// 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<TMVA::Event*>, DecisionTree *dt, Int_t iT ree, UInt_t cls = 0); | Double_t Boost( std::vector<TMVA::Event*>, DecisionTree *dt, Int_t iT ree, UInt_t cls = 0); | |||
// 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(); | |||
void SetMaxDepth(Int_t d){fMaxDepth = d;} | ||||
void SetNodeMinEvents(Int_t d){fNodeMinEvents = d;} | ||||
void SetNTrees(Int_t d){fNTrees = d;} | ||||
void SetAdaBoostBeta(Double_t b){fAdaBoostBeta = b;} | ||||
void SetNodePurityLimit(Double_t l){fNodePurityLimit = l;} | ||||
// 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<TMVA::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 | |||
skipping to change at line 143 | skipping to change at line 159 | |||
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; | |||
virtual Bool_t IsSignalLike() { return GetMvaValue() > 0;} | ||||
protected: | protected: | |||
void DeclareCompatibilityOptions(); | 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<TMVA::Event*>, DecisionTree *dt ); | Double_t AdaBoost( std::vector<TMVA::Event*>, DecisionTree *dt ); | |||
skipping to change at line 180 | skipping to change at line 197 | |||
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::pair<Double_t, Double_t > > vec, const Double_t quantile, const Double_t SumOfWeights = 0.0); | Double_t GetWeightedQuantile(std::vector<std::pair<Double_t, Double_t > > vec, const Double_t quantile, const Double_t SumOfWeights = 0.0); | |||
std::vector<TMVA::Event*> fEventSample; // the training eve nts | std::vector<TMVA::Event*> fEventSample; // the training eve nts | |||
std::vector<TMVA::Event*> fValidationSample;// the Validation e vents | std::vector<TMVA::Event*> fValidationSample;// the Validation e vents | |||
std::vector<TMVA::Event*> fSubSample; // subsample for ba gged grad boost | std::vector<TMVA::Event*> fSubSample; // subsample for ba 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 | |||
Bool_t fRenormByClass; // individually re- normalize each event class to the original size after boosting | ||||
TString fBoostType; // string specifyin g the boost type | TString fBoostType; // string specifyin g the boost type | |||
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 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 | |||
Double_t fSumOfWeights; // sum of all event weights | Double_t fSumOfWeights; // sum of all event weights | |||
std::vector<std::pair<Double_t, Double_t> > fWeightedResiduals; // weighted regression residuals | std::map< TMVA::Event*, std::pair<Double_t, Double_t> > fWeight edResiduals; // weighted regression residuals | |||
std::map< TMVA::Event*,std::vector<double> > fResiduals; // individua l event residuals for gradient boost | std::map< TMVA::Event*,std::vector<double> > fResiduals; // individua l event residuals for gradient 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 | |||
Bool_t fUseFisherCuts; // use multivariate | ||||
splits using the Fisher criterium | ||||
Double_t fMinLinCorrForFisher; // the minimum | ||||
linear correlation between two variables demanded for use in fisher criteri | ||||
um in node splitting | ||||
Bool_t fUseExclusiveVars; // individual vari | ||||
ables already used in fisher criterium are not anymore analysed individuall | ||||
y for node splitting | ||||
Bool_t fUseYesNoLeaf; // use sig or bkg c lassification in leave nodes or sig/bkg | Bool_t fUseYesNoLeaf; // use sig or bkg c lassification in leave nodes or sig/bkg | |||
Double_t fNodePurityLimit; // purity limit for sig/bkg nodes | Double_t fNodePurityLimit; // purity limit for sig/bkg nodes | |||
Bool_t fUseWeightedTrees;// use average clas sification from the trees, or have the individual trees trees in the forest weighted (e.g. log(boostweight) from AdaBoost | Bool_t fUseWeightedTrees;// use average clas sification from the trees, or have the individual trees trees in the forest weighted (e.g. log(boostweight) from AdaBoost | |||
UInt_t fNNodesMax; // max # of nodes | UInt_t fNNodesMax; // max # of nodes | |||
UInt_t fMaxDepth; // max depth | UInt_t fMaxDepth; // max depth | |||
//some histograms for monitoring | ||||
TTree* fMonitorNtuple; // monitoring ntup | ||||
le | ||||
Int_t fITree; // ntuple var: ith | ||||
tree | ||||
Double_t fBoostWeight; // ntuple var: boo | ||||
st weight | ||||
Double_t fErrorFraction; // ntuple var: mis | ||||
classification error fraction | ||||
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 | |||
Double_t fPruneStrength; // a parameter to set the "amount" of pruning..needs to be adjusted | ||||
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 | |||
Bool_t fUsePoissonNvars; // use "fUseNvars" not as fixed number but as mean of a possion distr. in each split | ||||
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 | |||
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 | ||||
//some histograms for monitoring | ||||
TTree* fMonitorNtuple; // monitoring ntup | ||||
le | ||||
Int_t fITree; // ntuple var: ith | ||||
tree | ||||
Double_t fBoostWeight; // ntuple var: boo | ||||
st weight | ||||
Double_t fErrorFraction; // ntuple var: mis | ||||
classification error fraction | ||||
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; // debug level det ermining some printout/control plots etc. | static const Int_t fgDebugLevel; // debug level det ermining some printout/control plots etc. | |||
// for backward compatibility | // 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. 14 change blocks. | ||||
20 lines changed or deleted | 50 lines changed or added | |||
MethodBase.h | MethodBase.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodBase.h 35729 2010-09-25 10:43:37Z stelzer $ | // @(#)root/tmva $Id: MethodBase.h 36966 2010-11-26 09:50:13Z evt $ | |||
// Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss, Ka i Voss | // Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss, Ka i 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 <map> | ||||
#include "assert.h" | #include "assert.h" | |||
#ifndef ROOT_TString | ||||
#include "TString.h" | ||||
#endif | ||||
#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 | |||
#ifndef ROOT_TMVA_DataSet | #ifndef ROOT_TMVA_DataSet | |||
#include "TMVA/DataSet.h" | #include "TMVA/DataSet.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Event | #ifndef ROOT_TMVA_Event | |||
#include "TMVA/Event.h" | #include "TMVA/Event.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_TransformationHandler | #ifndef ROOT_TMVA_TransformationHandler | |||
#include "TMVA/TransformationHandler.h" | #include "TMVA/TransformationHandler.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_OptimizeConfigParameters | ||||
#include "TMVA/OptimizeConfigParameters.h" | ||||
#endif | ||||
class TGraph; | class TGraph; | |||
class TTree; | class TTree; | |||
class TDirectory; | class TDirectory; | |||
class TSpline; | class TSpline; | |||
namespace TMVA { | namespace TMVA { | |||
class Ranking; | class Ranking; | |||
class PDF; | class PDF; | |||
skipping to change at line 116 | skipping to change at line 124 | |||
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 pe analysisType ); | void AddOutput( Types::ETreeType type, Types::EAnalysisTy pe analysisType ); | |||
// performs classifier training | // performs classifier training | |||
// calls methods Train() implemented by derived classes | // calls methods Train() implemented by derived classes | |||
void TrainMethod(); | void TrainMethod(); | |||
// optimize tuning parameters | ||||
virtual std::map<TString,Double_t> OptimizeTuningParameters(TString f | ||||
omType="ROCIntegral", TString fitType="FitGA"); | ||||
virtual void SetTuneParameters(std::map<TString,Double_t> tuneParamet | ||||
ers); | ||||
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; } | |||
// store and retrieve time used for testing | // store and retrieve time used for testing | |||
void SetTestTime ( Double_t testTime ) { fTestTime = test Time; } | void SetTestTime ( Double_t testTime ) { fTestTime = test Time; } | |||
Double_t GetTestTime () const { return fTestTime; } | Double_t GetTestTime () const { return fTestTime; } | |||
skipping to change at line 146 | skipping to change at line 159 | |||
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 ); | |||
// 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 | virtual void DeclareCompatibilityOptions(); // declaration of pas t options | |||
// classifier response - some methods may return a per-event error es | // reset the Method --> As if it was not yet trained, just instantiat | |||
timate (unless: *err = -1) | ed | |||
virtual Double_t GetMvaValue( Double_t* err = 0 ) = 0; | // virtual void Reset() = 0; | |||
//for the moment, I provide a dummy (that would not work) default, ju | ||||
//zjh=> | st to make | |||
virtual Double_t GetMvaValues( Double_t& errUpper, Double_t& errLower | // compilation/running w/o parameter optimisation still possible | |||
) | virtual void Reset(){return;} | |||
{Double_t mva=GetMvaValue(&errUpper); errLower=errUpper;re | ||||
turn mva;} | // classifier response: | |||
//<=zjh | // some methods may return a per-event error estimate | |||
// error calculation is skipped if err==0 | ||||
virtual Double_t GetMvaValue( Double_t* errLower = 0, Double_t* errUp | ||||
per = 0) = 0; | ||||
// signal/background classification response | // signal/background classification response | |||
Double_t GetMvaValue( const TMVA::Event* const ev, Double_t* err = 0 | Double_t GetMvaValue( const TMVA::Event* const ev, Double_t* err = 0, | |||
); | Double_t* errUpper = 0 ); | |||
protected: | ||||
// helper function to set errors to -1 | ||||
void NoErrorCalc(Double_t* const err, Double_t* const errUpper); | ||||
public: | ||||
// 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); | |||
} | } | |||
// multiclass classification response | // multiclass classification response | |||
virtual const std::vector<Float_t>& GetMulticlassValues() { | virtual const std::vector<Float_t>& GetMulticlassValues() { | |||
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); | |||
skipping to change at line 220 | skipping to change at line 241 | |||
public: // these two need to be public, they are used to read in-memory weight-files | public: // these two need to be public, they are used to read in-memory weight-files | |||
void ReadStateFromStream ( std::istream& tf ); // backward c ompatibility | void ReadStateFromStream ( std::istream& tf ); // backward c ompatibility | |||
void ReadStateFromStream ( TFile& rf ); // backward c ompatibility | void ReadStateFromStream ( TFile& rf ); // backward c ompatibility | |||
void ReadStateFromXMLString( const char* xmlstr ); // for readin g from memory | void ReadStateFromXMLString( const char* xmlstr ); // for readin g from memory | |||
private: | private: | |||
// the variable information | // the variable information | |||
void AddVarsXMLTo ( void* parent ) const; | void AddVarsXMLTo ( void* parent ) const; | |||
void AddSpectatorsXMLTo ( void* parent ) const; | void AddSpectatorsXMLTo ( void* parent ) const; | |||
void AddTargetsXMLTo ( void* parent ) const; | void AddTargetsXMLTo ( void* parent ) const; | |||
void AddClassesXMLTo ( void* parent ) const; | ||||
void ReadVariablesFromXML ( void* varnode ); | void ReadVariablesFromXML ( void* varnode ); | |||
void ReadSpectatorsFromXML( void* specnode); | void ReadSpectatorsFromXML( void* specnode); | |||
void ReadTargetsFromXML ( void* tarnode ); | void ReadTargetsFromXML ( void* tarnode ); | |||
void ReadClassesFromXML ( void* clsnode ); | ||||
void ReadVarsFromStream ( std::istream& istr ); // backward c ompatibility | void ReadVarsFromStream ( std::istream& istr ); // backward c ompatibility | |||
public: | public: | |||
// ------------------------------------------------------------------ --------- | // ------------------------------------------------------------------ --------- | |||
// write evaluation histograms into target file | // write evaluation histograms into target file | |||
virtual void WriteEvaluationHistosToFile(Types::ETreeType treetyp e); | 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; | |||
skipping to change at line 246 | skipping to change at line 269 | |||
// 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" | |||
// variables (and private menber functions) for the Evaluation: | // variables (and private menber functions) for the Evaluation: | |||
// get the effiency. It fills a histogram for efficiency/vs/bkg | // get the effiency. It fills a histogram for efficiency/vs/bkg | |||
// and returns the one value fo the efficiency demanded for | // and returns the one value fo the efficiency demanded for | |||
// in the TString argument. (Watch the string format) | // in the TString argument. (Watch the string format) | |||
virtual Double_t GetEfficiency( const TString&, Types::ETreeType, Dou ble_t& err ); | virtual Double_t GetEfficiency( const TString&, Types::ETreeType, Dou ble_t& err ); | |||
virtual Double_t GetTrainingEfficiency(const TString& ); | virtual Double_t GetTrainingEfficiency(const TString& ); | |||
virtual std::vector<Float_t> GetMulticlassEfficiency( std::vector<std | ||||
::vector<Float_t> >& purity ); | ||||
virtual std::vector<Float_t> GetMulticlassTrainingEfficiency(std::vec | ||||
tor<std::vector<Float_t> >& purity ); | ||||
virtual Double_t GetSignificance() const; | virtual Double_t GetSignificance() const; | |||
virtual Double_t GetROCIntegral(PDF *pdfS=0, PDF *pdfB=0) const; | virtual Double_t GetROCIntegral(PDF *pdfS=0, PDF *pdfB=0) const; | |||
virtual Double_t GetMaximumSignificance( Double_t SignalEvents, Doubl e_t BackgroundEvents, | virtual Double_t GetMaximumSignificance( Double_t SignalEvents, Doubl e_t BackgroundEvents, | |||
Double_t& optimal_significan ce_value ) const; | Double_t& optimal_significan ce_value ) const; | |||
virtual Double_t GetSeparation( TH1*, TH1* ) const; | virtual Double_t GetSeparation( TH1*, TH1* ) const; | |||
virtual Double_t GetSeparation( PDF* pdfS = 0, PDF* pdfB = 0 ) const; | virtual Double_t GetSeparation( PDF* pdfS = 0, PDF* pdfB = 0 ) const; | |||
virtual void GetRegressionDeviation(UInt_t tgtNum, Types::ETreeType t ype, Double_t& stddev,Double_t& stddev90Percent ) const; | ||||
// ---------- public accessors -------------------------------------- --------- | // ---------- public accessors -------------------------------------- --------- | |||
// classifier naming (a lot of names ... aren't they ;-) | // classifier naming (a lot of names ... aren't they ;-) | |||
const TString& GetJobName () const { return fJobName; } | const TString& GetJobName () const { return fJobName; } | |||
const TString& GetMethodName () const { return fMethodName; } | const TString& GetMethodName () const { return fMethodName; } | |||
TString GetMethodTypeName() const { return Types::Instance() .GetMethodName(fMethodType); } | TString GetMethodTypeName() const { return Types::Instance() .GetMethodName(fMethodType); } | |||
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"; } | |||
End of changes. 12 change blocks. | ||||
13 lines changed or deleted | 43 lines changed or added | |||
MethodBayesClassifier.h | MethodBayesClassifier.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodBayesClassifier.h 31458 2009-11-30 13:58:20Z st elzer $ | // @(#)root/tmva $Id: MethodBayesClassifier.h 36966 2010-11-26 09:50:13Z ev t $ | |||
// 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 79 | skipping to change at line 79 | |||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
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, Double_t* errUpper = 0 ); | |||
void Init( void ); | void Init( void ); | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking() { return 0; } | const Ranking* CreateRanking() { return 0; } | |||
protected: | protected: | |||
// 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; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodBoost.h | MethodBoost.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodBoost.h 35738 2010-09-26 09:17:57Z stelzer $ | // @(#)root/tmva $Id: MethodBoost.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 101 | skipping to change at line 101 | |||
// gives the monitoring historgram from the vector according to index of the | // gives the monitoring historgram from the vector according to index of the | |||
// histrogram added in the MonitorBoost function | // histrogram added in the MonitorBoost function | |||
TH1* GetMonitoringHist( Int_t histInd ) { return (*fMonitor Hist)[fDefaultHistNum+histInd]; } | TH1* GetMonitoringHist( Int_t histInd ) { return (*fMonitor Hist)[fDefaultHistNum+histInd]; } | |||
void AddMonitoringHist( TH1* hist ) { return fMonitorHi st->push_back(hist); } | void AddMonitoringHist( TH1* hist ) { return fMonitorHi st->push_back(hist); } | |||
Types::EBoostStage GetBoostStage() { return fBoostStage; } | Types::EBoostStage GetBoostStage() { return fBoostStage; } | |||
void CleanBoostOptions(); | void CleanBoostOptions(); | |||
Double_t GetMvaValue( Double_t* err ); | Double_t GetMvaValue( Double_t* err=0, Double_t* errUpper = 0 ); | |||
private : | private : | |||
// clean up | // clean up | |||
void ClearAll(); | void ClearAll(); | |||
// print fit results | // print fit results | |||
void PrintResults( const TString&, std::vector<Double_t>&, const Doub le_t ) const; | void PrintResults( const TString&, std::vector<Double_t>&, const Doub le_t ) const; | |||
// initializing mostly monitoring tools of the boost process | // initializing mostly monitoring tools of the boost process | |||
void Init(); | void Init(); | |||
skipping to change at line 127 | skipping to change at line 127 | |||
void ProcessOptions(); | void ProcessOptions(); | |||
MethodBoost* SetStage( Types::EBoostStage stage ) { fBoostStage = sta ge; return this; } | MethodBoost* SetStage( Types::EBoostStage stage ) { fBoostStage = sta ge; return this; } | |||
//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(); | |||
// calculate weight of single method | ||||
void CalcMethodWeight(); | ||||
// return ROC integral on training/testing sample | ||||
Double_t GetBoostROCIntegral(Bool_t, Types::ETreeType, Bool_t CalcOve | ||||
rlapIntergral=kFALSE); | ||||
//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(Types::ETreeType treetype); | 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(); | |||
//creating the vectors of histogram for monitoring MVA response of ea ch classifier | //creating the vectors of histogram for monitoring MVA response of ea ch classifier | |||
void CreateMVAHistorgrams(); | void CreateMVAHistorgrams(); | |||
// calculate MVA values of current trained method on training | ||||
// sample | ||||
void CalcMVAValues(); | ||||
//Number of times the classifier is boosted (set by the user) | //Number of times the classifier is boosted (set by the user) | |||
Int_t fBoostNum; | Int_t fBoostNum; | |||
// string specifying the boost type (AdaBoost / Bagging ) | // string specifying the boost type (AdaBoost / Bagging ) | |||
TString fBoostType; | TString fBoostType; | |||
// string specifying the boost type ( ByError,Average,LastMethod ) | // string specifying the boost type ( ByError,Average,LastMethod ) | |||
TString fMethodWeightType; | TString fMethodWeightType; | |||
//estimation of the level error of the classifier analysing the train dataset | //estimation of the level error of the classifier analysing the train dataset | |||
Double_t fMethodError; | Double_t fMethodError; | |||
skipping to change at line 167 | skipping to change at line 177 | |||
//the weight used to boost the next classifier | //the weight used to boost the next classifier | |||
Double_t fBoostWeight; | Double_t fBoostWeight; | |||
// min and max values for the classifier response | // min and max values for the classifier response | |||
TString fTransformString; | TString fTransformString; | |||
//ADA boost parameter, default is 1 | //ADA boost parameter, default is 1 | |||
Double_t fADABoostBeta; | Double_t fADABoostBeta; | |||
// seed for random number generator used for bagging | ||||
UInt_t fRandomSeed; | ||||
// details of the boosted classifier | // details of the boosted classifier | |||
TString fBoostedMethodName; | TString fBoostedMethodName; | |||
TString fBoostedMethodTitle; | TString fBoostedMethodTitle; | |||
TString fBoostedMethodOptions; | TString fBoostedMethodOptions; | |||
// histograms to monitor values during the boosting | // histograms to monitor values during the boosting | |||
std::vector<TH1*>* fMonitorHist; | std::vector<TH1*>* fMonitorHist; | |||
//whether to monitor the MVA response of every classifier using the | //whether to monitor the MVA response of every classifier using the | |||
Bool_t fMonitorBoostedMethod; | Bool_t fMonitorBoostedMethod; | |||
skipping to change at line 200 | skipping to change at line 213 | |||
// the stage of the boosting | // the stage of the boosting | |||
Types::EBoostStage fBoostStage; | Types::EBoostStage fBoostStage; | |||
//the number of histogram filled for every type of boosted classifier | //the number of histogram filled for every type of boosted classifier | |||
Int_t fDefaultHistNum; | Int_t fDefaultHistNum; | |||
//whether to recalculate the MVA cut at every boosting step | //whether to recalculate the MVA cut at every boosting step | |||
Bool_t fRecalculateMVACut; | Bool_t fRecalculateMVACut; | |||
// roc integral of last trained method (on training sample) | ||||
Double_t fROC_training; | ||||
// overlap integral of mva distributions for signal and | ||||
// background (training sample) | ||||
Double_t fOverlap_integral; | ||||
// mva values for the last trained method (on training sample) | ||||
std::vector<Float_t> *fMVAvalues; | ||||
DataSetManager* fDataSetManager; // DSMTEST | DataSetManager* fDataSetManager; // DSMTEST | |||
friend class Factory; // DSMTEST | friend class Factory; // DSMTEST | |||
friend class Reader; // DSMTEST | friend class Reader; // DSMTEST | |||
protected: | protected: | |||
// get help message text | // get help message text | |||
void GetHelpMessage() const; | void GetHelpMessage() const; | |||
ClassDef(MethodBoost,0) | ClassDef(MethodBoost,0) | |||
End of changes. 6 change blocks. | ||||
2 lines changed or deleted | 26 lines changed or added | |||
MethodCFMlpANN.h | MethodCFMlpANN.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodCFMlpANN.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: MethodCFMlpANN.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 132 | skipping to change at line 132 | |||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
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, Double_t* errUpper = 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); } | |||
Int_t GetClass( Int_t ivar ) const { return (*fClass)[ ivar]; } | Int_t GetClass( Int_t ivar ) const { return (*fClass)[ ivar]; } | |||
// static pointer to this object (required for external functions | // static pointer to this object (required for external functions | |||
static MethodCFMlpANN* This( void ); | static MethodCFMlpANN* This( void ); | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking() { return 0; } | const Ranking* CreateRanking() { return 0; } | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodCFMlpANN_Utils.h | MethodCFMlpANN_Utils.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodCFMlpANN_Utils.h 35719 2010-09-24 17:32:57Z ste lzer $ | // @(#)root/tmva $Id: MethodCFMlpANN_Utils.h 37181 2010-12-02 13:45:02Z evt $ | |||
// 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_utils * | * Class : MethodCFMlpANN_utils * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Reference for the original FORTRAN version "mlpl3.F": * | * Reference for the original FORTRAN version "mlpl3.F": * | |||
* Authors : J. Proriol and contributions from ALEPH-Clermont-Fd * | * Authors : J. Proriol and contributions from ALEPH-Clermont-Fd * | |||
skipping to change at line 41 | skipping to change at line 41 | |||
* 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_MethodCFMlpANN_Utils | #ifndef ROOT_TMVA_MethodCFMlpANN_Utils | |||
#define ROOT_TMVA_MethodCFMlpANN_Utils | #define ROOT_TMVA_MethodCFMlpANN_Utils | |||
#ifndef ROOT_TMVA_MethodCFMlpANN_def | #ifndef ROOT_TMVA_MethodCFMlpANN_def | |||
#include "TMVA/MethodCFMlpANN_def.h" | #include "TMVA/MethodCFMlpANN_def.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_MsgLogger | ||||
#include "TMVA/MsgLogger.h" | ||||
#endif | ||||
#ifndef ROOT_Rtypes | #ifndef ROOT_Rtypes | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
// MethodCFMlpANN_Utils // | // MethodCFMlpANN_Utils // | |||
// // | // // | |||
// Implementation of Clermond-Ferrand artificial neural network // | // Implementation of Clermond-Ferrand artificial neural network // | |||
skipping to change at line 151 | skipping to change at line 154 | |||
void Create( Int_t nevt, Int_t nvar ) { | void Create( Int_t nevt, Int_t nvar ) { | |||
fNevt = nevt+1; fNvar = nvar+1; // fortran array style 1...N | fNevt = nevt+1; fNvar = nvar+1; // fortran array style 1...N | |||
fxx = new Double_t*[fNevt]; | fxx = new Double_t*[fNevt]; | |||
for (Int_t i=0; i<fNevt; i++) fxx[i] = new Double_t[fNvar]; | for (Int_t i=0; i<fNevt; i++) fxx[i] = new Double_t[fNvar]; | |||
} | } | |||
Double_t operator=( Double_t val ) { return val; } | Double_t operator=( Double_t val ) { return val; } | |||
Double_t &operator()( Int_t ievt, Int_t ivar ) const { | Double_t &operator()( Int_t ievt, Int_t ivar ) const { | |||
if (0 != fxx && ievt < fNevt && ivar < fNvar) return fxx[ievt][ ivar]; | if (0 != fxx && ievt < fNevt && ivar < fNvar) return fxx[ievt][ ivar]; | |||
else { | else { | |||
printf( "*** ERROR in varn3_(): fxx is zero pointer ==> abor t ***\n") ; | printf( "*** ERROR in varn3_(): fxx is zero pointer ==> abor t ***\n") ; | |||
// exit(1); | std::exit(1); | |||
return fxx[0][0]; | return fxx[0][0]; | |||
} | } | |||
} | } | |||
void Delete( void ) { | void Delete( void ) { | |||
if (0 != fxx) for (Int_t i=0; i<fNevt; i++) if (0 != fxx[i]) de lete [] fxx[i]; | if (0 != fxx) for (Int_t i=0; i<fNevt; i++) if (0 != fxx[i]) de lete [] fxx[i]; | |||
delete[] fxx; | delete[] fxx; | |||
fxx=0; | fxx=0; | |||
} | } | |||
Double_t** fxx; | Double_t** fxx; | |||
skipping to change at line 194 | skipping to change at line 197 | |||
Double_t delww[max_nLayers_*max_nNodes_]; | Double_t delww[max_nLayers_*max_nNodes_]; | |||
Int_t idde; | Int_t idde; | |||
} fDel_1; | } fDel_1; | |||
// flags and stuff (don't ask me...) | // flags and stuff (don't ask me...) | |||
struct { | struct { | |||
Double_t ancout, tolcou; | Double_t ancout, tolcou; | |||
Int_t ieps; | Int_t ieps; | |||
} fCost_1; | } fCost_1; | |||
void SetLogger(MsgLogger *l) { fLogger = l; } | ||||
private: | ||||
MsgLogger * fLogger; | ||||
MsgLogger& ULog() { if (fLogger) return *fLogger; return *(fLogger = | ||||
new MsgLogger("CFMLP_Utils")); } // avoiding control reaches end of non-vo | ||||
id function warning | ||||
public: | ||||
ClassDef(MethodCFMlpANN_Utils,0) // Implementation of Clermond-Ferra nd artificial neural network | ClassDef(MethodCFMlpANN_Utils,0) // Implementation of Clermond-Ferra nd artificial neural network | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 15 lines changed or added | |||
MethodCategory.h | MethodCategory.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodCategory.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: MethodCategory.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 94 | skipping to change at line 94 | |||
// saves the name and options string of the boosted classifier | // saves the name and options string of the boosted classifier | |||
TMVA::IMethod* AddMethod(const TCut&, | TMVA::IMethod* AddMethod(const TCut&, | |||
const TString& theVariables, | const TString& theVariables, | |||
Types::EMVA theMethod, | Types::EMVA theMethod, | |||
const TString& theTitle, | const TString& theTitle, | |||
const TString& theOptions); | const TString& theOptions); | |||
void AddWeightsXMLTo( void* parent ) const; | void AddWeightsXMLTo( void* parent ) const; | |||
void ReadWeightsFromXML( void* wghtnode ); | void ReadWeightsFromXML( void* wghtnode ); | |||
Double_t GetMvaValue( Double_t* err ); | Double_t GetMvaValue( Double_t* err=0, Double_t* errUpper = 0 ); | |||
virtual void MakeClass( const TString& = TString("") ) const {}; | virtual void MakeClass( const TString& = TString("") ) const {}; | |||
private : | private : | |||
// initializing mostly monitoring tools of the category process | // initializing mostly monitoring tools of the category process | |||
void Init(); | void Init(); | |||
// the option handling methods | // the option handling methods | |||
void DeclareOptions(); | void DeclareOptions(); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodCommittee.h | MethodCommittee.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodCommittee.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: MethodCommittee.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 94 | skipping to change at line 94 | |||
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 | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0, Double_t* errUpper = 0 ); | |||
// apply the boost algorithm to a member in the committee | // apply the boost algorithm to a member in the committee | |||
Double_t Boost( TMVA::MethodBase*, UInt_t imember ); | Double_t Boost( TMVA::MethodBase*, UInt_t imember ); | |||
// 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(); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodCompositeBase.h | MethodCompositeBase.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodCompositeBase.h 31458 2009-11-30 13:58:20Z stel zer $ | // @(#)root/tmva $Id: MethodCompositeBase.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 74 | skipping to change at line 74 | |||
const TString& weightFile, | const TString& weightFile, | |||
TDirectory* theBaseDir = 0 ); | TDirectory* theBaseDir = 0 ); | |||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
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, Double_t* errUpper = 0 ); | |||
using MethodBase::GetMvaValue; | ||||
// read weights from file | // read weights from file | |||
void ReadWeightsFromStream( istream& istr ); | void ReadWeightsFromStream( istream& istr ); | |||
// performs classifier training | // performs classifier training | |||
virtual void Train() = 0; | virtual void Train() = 0; | |||
// create ranking | // create ranking | |||
virtual const Ranking* CreateRanking() = 0; | virtual const Ranking* CreateRanking() = 0; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 4 lines changed or added | |||
MethodCuts.h | MethodCuts.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodCuts.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: MethodCuts.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 107 | skipping to change at line 107 | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
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, Double_t* errUpper = 0 ); | |||
// write method specific histos to target file | // write method specific histos to target file | |||
void WriteMonitoringHistosToFile( void ) const; | void WriteMonitoringHistosToFile( void ) const; | |||
// test the method | // test the method | |||
void TestClassification(); | void TestClassification(); | |||
// also overwrite --> not computed for cuts | // also overwrite --> not computed for cuts | |||
Double_t GetSeparation ( TH1*, TH1* ) const { return -1; } | Double_t GetSeparation ( TH1*, TH1* ) const { return -1; } | |||
Double_t GetSeparation ( PDF* = 0, PDF* = 0 ) const { return -1; } | Double_t GetSeparation ( PDF* = 0, PDF* = 0 ) const { return -1; } | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodDT.h | MethodDT.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodDT.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: MethodDT.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 86 | skipping to change at line 86 | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
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, Double_t* errUpper = 0 ); | |||
// the option handling methods | // the option handling methods | |||
void DeclareOptions(); | void DeclareOptions(); | |||
void ProcessOptions(); | void ProcessOptions(); | |||
void GetHelpMessage() const; | void GetHelpMessage() const; | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking(); | const Ranking* CreateRanking(); | |||
skipping to change at line 125 | skipping to change at line 125 | |||
DecisionTree* fTree; // the decision tre e | DecisionTree* fTree; // the decision tre e | |||
//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 | |||
Bool_t fUseYesNoLeaf; // use sig or bkg c lassification in leave nodes or sig/bkg | Bool_t fUseYesNoLeaf; // use sig or bkg c lassification in leave nodes or sig/bkg | |||
Double_t fNodePurityLimit; // purity limit for sig/bkg nodes | Double_t fNodePurityLimit; // purity limit for sig/bkg nodes | |||
UInt_t fNNodesMax; // max # of nodes | ||||
UInt_t fMaxDepth; // max depth | ||||
Double_t fErrorFraction; // ntuple var: mis classification error fraction | Double_t fErrorFraction; // ntuple var: mis classification error fraction | |||
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 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 | |||
Int_t fUseNvars; // the number of v ariables used in the randomised tree splitting | Int_t fUseNvars; // the number of v ariables used in the randomised tree splitting | |||
Bool_t fPruneBeforeBoost; //whether to prun e right after the training (before the boosting) | Bool_t fPruneBeforeBoost; //whether to prun e right after the training (before the boosting) | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 5 lines changed or added | |||
MethodFDA.h | MethodFDA.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodFDA.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: MethodFDA.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 93 | skipping to change at line 93 | |||
void Train( void ); | void Train( void ); | |||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
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, Double_t* errUpper = 0 ); | |||
virtual const std::vector<Float_t>& GetRegressionValues(); | virtual const std::vector<Float_t>& GetRegressionValues(); | |||
virtual const std::vector<Float_t>& GetMulticlassValues(); | virtual const std::vector<Float_t>& GetMulticlassValues(); | |||
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>& ); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodFisher.h | MethodFisher.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodFisher.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: MethodFisher.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 89 | skipping to change at line 89 | |||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to stream | // write weights to stream | |||
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, Double_t* errUpper = 0 ); | |||
enum EFisherMethod { kFisher, kMahalanobis }; | enum EFisherMethod { kFisher, kMahalanobis }; | |||
EFisherMethod GetFisherMethod( void ) { return fFisherMethod; } | EFisherMethod GetFisherMethod( void ) { return fFisherMethod; } | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking(); | const Ranking* CreateRanking(); | |||
protected: | protected: | |||
// make ROOT-independent C++ class for classifier response (classifie r-specific implementation) | // make ROOT-independent C++ class for classifier response (classifie r-specific implementation) | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodHMatrix.h | MethodHMatrix.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodHMatrix.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: MethodHMatrix.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 92 | skipping to change at line 92 | |||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
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, Double_t* errUpper = 0 ); | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking() { return 0; } | const Ranking* CreateRanking() { return 0; } | |||
protected: | protected: | |||
// 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 | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodKNN.h | MethodKNN.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodKNN.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: MethodKNN.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 80 | skipping to change at line 80 | |||
MethodKNN(DataSetInfo& theData, | MethodKNN(DataSetInfo& theData, | |||
const TString& theWeightFile, | const TString& theWeightFile, | |||
TDirectory* theTargetDir = NULL); | TDirectory* theTargetDir = NULL); | |||
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, Double_t* errUpper = 0 ); | |||
const std::vector<Float_t>& GetRegressionValues(); | const std::vector<Float_t>& GetRegressionValues(); | |||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
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); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodLD.h | MethodLD.h | |||
---|---|---|---|---|
skipping to change at line 78 | skipping to change at line 78 | |||
// destructor | // destructor | |||
virtual ~MethodLD( void ); | virtual ~MethodLD( 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 ); | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0, Double_t* errUpper = 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::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
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 ); | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
MethodLikelihood.h | MethodLikelihood.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodLikelihood.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: MethodLikelihood.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 91 | skipping to change at line 91 | |||
// write weights to file | // write weights to file | |||
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, Double_t* errUpper = 0 ); | |||
// 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: | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodMLP.h | MethodMLP.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodMLP.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: MethodMLP.h 36966 2010-11-26 09:50:13Z evt $ | |||
// Author: Andreas Hoecker, Peter Speckmayer, Matt Jachowski | // Author: Andreas Hoecker, Peter Speckmayer, 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 114 | skipping to change at line 114 | |||
void Train() { Train(NumCycles()); } | void Train() { Train(NumCycles()); } | |||
// for GA | // for GA | |||
Double_t ComputeEstimator ( std::vector<Double_t>& parameters ); | Double_t ComputeEstimator ( std::vector<Double_t>& parameters ); | |||
Double_t EstimatorFunction( std::vector<Double_t>& parameters ); | Double_t EstimatorFunction( std::vector<Double_t>& parameters ); | |||
enum ETrainingMethod { kBP=0, kBFGS, kGA }; | enum ETrainingMethod { kBP=0, kBFGS, kGA }; | |||
enum EBPTrainingMode { kSequential=0, kBatch }; | enum EBPTrainingMode { kSequential=0, kBatch }; | |||
Double_t GetMvaValues( Double_t& errUpper, Double_t& errLower ); | bool HasInverseHessian() { return fCalculateErrors; } | |||
//zjh | Double_t GetMvaValueAsymError( Double_t* errUpper, Double_t* errLower | |||
); | ||||
protected: | protected: | |||
// 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: | |||
skipping to change at line 182 | skipping to change at line 183 | |||
#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(); | static MethodMLP* GetThisPtr(); | |||
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 | |||
bool fUseRegulator; // zjh | bool fUseRegulator; // zjh | |||
bool fCalculateErrors; // compute inverse hessian matrix at the end of the training | ||||
Double_t fPrior; // zjh | Double_t fPrior; // zjh | |||
std::vector<Double_t> fPriorDev; // zjh | std::vector<Double_t> fPriorDev; // zjh | |||
void GetApproxInvHessian ( TMatrixD& InvHessian, bool r egulate=true ); //rank-1 approximation, neglect 2nd derivatives. //zjh | void GetApproxInvHessian ( TMatrixD& InvHessian, bool r egulate=true ); //rank-1 approximation, neglect 2nd derivatives. //zjh | |||
void UpdateRegulators(); // zjh | void UpdateRegulators(); // zjh | |||
void UpdatePriors(); // zjh | void UpdatePriors(); // zjh | |||
Int_t fUpdateLimit; // zjh | Int_t fUpdateLimit; // zjh | |||
ETrainingMethod fTrainingMethod; // method of training, BP or GA | ETrainingMethod fTrainingMethod; // method of training, BP or GA | |||
TString fTrainMethodS; // training method option param | TString fTrainMethodS; // training method option param | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 5 lines changed or added | |||
MethodPDEFoam.h | MethodPDEFoam.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodPDEFoam.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: MethodPDEFoam.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 * | |||
* the multi-dimensional phase space in a finite number of hyper-recta ngles * | * the multi-dimensional phase space in a finite number of hyper-recta ngles * | |||
* (cells) of constant event density. This "foam" of cells is filled w ith * | * (cells) of constant event density. This "foam" of cells is filled w ith * | |||
* averaged probability-density information sampled from a training ev ent * | * averaged probability-density information sampled from a training ev ent * | |||
* sample. | * sample. * | |||
* * | * * | |||
* Authors (alphabetical): * | * Authors (alphabetical): * | |||
* Tancredi Carli - CERN, Switzerland * | * Tancredi Carli - CERN, Switzerland * | |||
* Dominik Dannheim - CERN, Switzerland * | * Dominik Dannheim - CERN, Switzerland * | |||
* Peter Speckmayer <peter.speckmayer@cern.ch> - CERN, Switzerland * | * Peter Speckmayer <peter.speckmayer@cern.ch> - CERN, Switzerland * | |||
* Alexander Voigt - CERN, Switzerland * | * Alexander Voigt - CERN, Switzerland * | |||
* * | * * | |||
* Original author of the TFoam implementation: * | * Original author of the TFoam implementation: * | |||
* S. Jadach - Institute of Nuclear Physics, Cracow, Poland * | * S. Jadach - Institute of Nuclear Physics, Cracow, Poland * | |||
* * | * * | |||
skipping to change at line 74 | skipping to change at line 74 | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_MethodBase | #ifndef ROOT_TMVA_MethodBase | |||
#include "TMVA/MethodBase.h" | #include "TMVA/MethodBase.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_PDEFoam | #ifndef ROOT_TMVA_PDEFoam | |||
#include "TMVA/PDEFoam.h" | #include "TMVA/PDEFoam.h" | |||
#endif | #endif | |||
#define FOAM_NUMBER 2 | ||||
namespace TMVA { | namespace TMVA { | |||
class MethodPDEFoam : public MethodBase { | class MethodPDEFoam : public MethodBase { | |||
public: | public: | |||
MethodPDEFoam( const TString& jobName, | MethodPDEFoam( const TString& jobName, | |||
const TString& methodTitle, | const TString& methodTitle, | |||
DataSetInfo& dsi, | DataSetInfo& dsi, | |||
const TString& theOption = "PDEFoam", | const TString& theOption = "PDEFoam", | |||
skipping to change at line 117 | skipping to change at line 115 | |||
// 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 file | // write/read pure foams to/from file | |||
void WriteFoamsToFile() const; | void WriteFoamsToFile() const; | |||
void ReadFoamsFromFile(); | void ReadFoamsFromFile(); | |||
// calculate the MVA value | // calculate the MVA value | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0, Double_t* errUpper = 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; } | |||
// possible kernels (option) | // helper functions to convert enum types to UInt_t and back | |||
EKernel GetKernel( void ) { return fKernel; } | EKernel GetKernel( void ) { return fKernel; } | |||
UInt_t KernelToUInt(EKernel ker) const { | UInt_t KernelToUInt(EKernel ker) const { return UInt_t(ker); } | |||
if (ker == kNone) | EKernel UIntToKernel(UInt_t iker); | |||
return 0; | UInt_t TargetSelectionToUInt(ETargetSelection ts) const { return UInt | |||
else if (ker == kGaus) | _t(ts); } | |||
return 1; | ETargetSelection UIntToTargetSelection(UInt_t its); | |||
else if (ker == kLinN) | ||||
return 2; | ||||
else { | ||||
Log() << kFATAL << "Error: unknown kernel!" << Endl; | ||||
return 0; | ||||
} | ||||
} | ||||
EKernel UIntToKernel(UInt_t iker){ | ||||
if (iker == 0) | ||||
return kNone; | ||||
else if (iker == 1) | ||||
return kGaus; | ||||
else if (iker == 2) | ||||
return kLinN; | ||||
else { | ||||
Log() << kFATAL << "Error: unknown kernel number: " << iker << | ||||
Endl; | ||||
return kNone; | ||||
} | ||||
} | ||||
UInt_t TargetSelectionToUInt(ETargetSelection ts) const { | ||||
if (ts == kMean) | ||||
return 0; | ||||
else if (ts == kMpv) | ||||
return 1; | ||||
else { | ||||
std::cout << "Error: unknown method TargetSelection!" << std::e | ||||
ndl; | ||||
return 0; | ||||
} | ||||
} | ||||
ETargetSelection UIntToTargetSelection(UInt_t its){ | ||||
if (its == 0) | ||||
return kMean; | ||||
else if (its == 1) | ||||
return kMpv; | ||||
else { | ||||
std::cout << "Error: unknown method TargetSelection: " << its < | ||||
< std::endl; | ||||
return kMean; | ||||
} | ||||
} | ||||
protected: | protected: | |||
// 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; | |||
// calculate Xmin and Xmax for Foam | // calculate Xmin and Xmax for Foam | |||
skipping to change at line 196 | skipping to change at line 154 | |||
// Set foam options | // Set foam options | |||
void InitFoam(TMVA::PDEFoam*, EFoamType); | void InitFoam(TMVA::PDEFoam*, EFoamType); | |||
// fill variable names into foam | // fill variable names into foam | |||
void FillVariableNamesToFoam() const; | void FillVariableNamesToFoam() const; | |||
private: | private: | |||
// the option handling methods | // the option handling methods | |||
void DeclareOptions(); | void DeclareOptions(); | |||
void DeclareCompatibilityOptions(); | ||||
void ProcessOptions(); | void ProcessOptions(); | |||
// nice output | // nice output | |||
void PrintCoefficients( void ); | void PrintCoefficients( void ); | |||
// Square function (fastest implementation) | ||||
template<typename T> T Sqr(T x) const { return x*x; } | ||||
// 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) | Float_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 fEvPerBin; // Maximum events (equiv.) per bin in buid-up (1000) | Int_t fEvPerBin; // Maximum events (equiv.) per bin in buid-up (1000) | |||
Float_t fNSigBgRatio; // ratio of number of signal events / bg events (training) | ||||
Bool_t fCompress; // compress foam output 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 | Bool_t fCutNmin; // Keep for bw compatibility: Grabbin | |||
split next (TFoam default) | g cell with maximal RMS to split next (TFoam default) | |||
Double_t fRMSmin; // minimal number of events in cell n | UInt_t fMaxDepth; // maximum depth of cell tree | |||
ecessary to split cell" | ||||
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.) | |||
Bool_t fFillFoamWithOrigWeights; // fill the foam with boost w | ||||
eights | ||||
Bool_t fUseYesNoCell; // return -1 or 1 for bg or signal li | ||||
ke event | ||||
TString fDTLogic; // use DT algorithm to split cells | ||||
EDTSeparation fDTSeparation; // enum which specifies the separatio | ||||
n to use for the DT logic | ||||
Bool_t fPeekMax; // peek up cell with max. driver inte | ||||
gral for split | ||||
std::vector<Double_t> Xmin, Xmax; // range for histograms and foams | std::vector<Double_t> fXmin, fXmax; // range for histograms and foams | |||
// foams and densities | // foams and densities | |||
PDEFoam* foam[FOAM_NUMBER]; // foam[0]=signal, if Sig and BG are Sepe | // foam[0]=signal, if Sig and BG are Seperated; else foam[0]=signal/b | |||
rated; else foam[0]=signal/bg | g | |||
// foam[1]=background, if Sig and BG are | // foam[1]=background, if Sig and BG are Seperated; else it is not us | |||
Seperated; else it is not used | ed | |||
std::vector<PDEFoam*> fFoam; | ||||
// 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. 14 change blocks. | ||||
66 lines changed or deleted | 32 lines changed or added | |||
MethodPDERS.h | MethodPDERS.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodPDERS.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: MethodPDERS.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 98 | skipping to change at line 98 | |||
// write weights to file | // write weights to file | |||
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, Double_t* errUpper = 0 ); | |||
// calculate the MVA value | // calculate the MVA value | |||
const std::vector<Float_t>& GetRegressionValues(); | const std::vector<Float_t>& GetRegressionValues(); | |||
public: | public: | |||
// for root finder | // for root finder | |||
static Double_t IGetVolumeContentForRoot( Double_t ); | static Double_t IGetVolumeContentForRoot( Double_t ); | |||
Double_t GetVolumeContentForRoot( Double_t ); | Double_t GetVolumeContentForRoot( Double_t ); | |||
// static pointer to this object | // static pointer to this object | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodRuleFit.h | MethodRuleFit.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodRuleFit.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: MethodRuleFit.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 88 | skipping to change at line 88 | |||
using MethodBase::ReadWeightsFromStream; | using MethodBase::ReadWeightsFromStream; | |||
// write weights to file | // write weights to file | |||
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, Double_t* errUpper = 0 ); | |||
// write method specific histos to target file | // write method specific histos to target file | |||
void WriteMonitoringHistosToFile( void ) const; | void WriteMonitoringHistosToFile( void ) const; | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking(); | const Ranking* CreateRanking(); | |||
Bool_t UseBoost() const { return fUseBoost; } | Bool_t UseBoost() const { return fUseBoost; } | |||
// accessors | // accessors | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodSVM.h | MethodSVM.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodSVM.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: MethodSVM.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 92 | skipping to change at line 92 | |||
// write weights to file | // write weights to file | |||
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, Double_t* errUpper = 0 ); | |||
const std::vector<Float_t>& GetRegressionValues(); | const 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; } | |||
protected: | protected: | |||
// make ROOT-independent C++ class for classifier response (classifie r-specific implementation) | // make ROOT-independent C++ class for classifier response (classifie r-specific implementation) | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
MethodTMlpANN.h | MethodTMlpANN.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MethodTMlpANN.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: MethodTMlpANN.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 85 | skipping to change at line 85 | |||
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... :-( | |||
Double_t GetMvaValue( Double_t* err = 0 ); | Double_t GetMvaValue( Double_t* err = 0, Double_t* errUpper = 0 ); | |||
void SetHiddenLayer(TString hiddenlayer = "" ) { fHiddenLayer=hiddenl ayer; } | void SetHiddenLayer(TString hiddenlayer = "" ) { fHiddenLayer=hiddenl ayer; } | |||
// ranking of input variables | // ranking of input variables | |||
const Ranking* CreateRanking() { return 0; } | const Ranking* CreateRanking() { return 0; } | |||
// make ROOT-independent C++ class | // make ROOT-independent C++ class | |||
void MakeClass( const TString& classFileName = TString("") ) const; | void MakeClass( const TString& classFileName = TString("") ) const; | |||
protected: | protected: | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
Minimizer.h | Minimizer.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: Minimizer.h 31604 2009-12-07 19:04:33Z moneta $ | // @(#)root/mathcore:$Id: Minimizer.h 36905 2010-11-24 15:44:34Z 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 | |||
#ifndef ROOT_Math_Minimizer | #ifndef ROOT_Math_Minimizer | |||
#define ROOT_Math_Minimizer | #define ROOT_Math_Minimizer | |||
#ifndef ROOT_Math_IFunction | #ifndef ROOT_Math_IFunction | |||
#include "Math/IFunction.h" | #include "Math/IFunction.h" | |||
#endif | #endif | |||
// #ifndef ROOT_Math_Util | #ifndef ROOT_Math_MinimizerOptions | |||
// #include "Math/Util.h" | #include "Math/MinimizerOptions.h" | |||
// #endif | #endif | |||
#include <vector> | #include <vector> | |||
#include <string> | #include <string> | |||
#include <limits> | #include <limits> | |||
#include <cmath> | #include <cmath> | |||
//#define DEBUG | ||||
#ifdef DEBUG | ||||
#include <iostream> | ||||
#endif | ||||
namespace ROOT { | namespace ROOT { | |||
namespace Math { | namespace Math { | |||
/** | /** | |||
@defgroup MultiMin Multi-dimensional Minimization | @defgroup MultiMin Multi-dimensional Minimization | |||
@ingroup NumAlgo | @ingroup NumAlgo | |||
Classes implementing algorithms for multi-dimensional minimization | Classes implementing algorithms for multi-dimensional minimization | |||
*/ | */ | |||
skipping to change at line 82 | skipping to change at line 77 | |||
class Minimizer { | class Minimizer { | |||
public: | public: | |||
/** | /** | |||
Default constructor | Default constructor | |||
*/ | */ | |||
Minimizer () : | Minimizer () : | |||
fValidError(false), | fValidError(false), | |||
#ifndef DEBUG | fDebug(MinimizerOptions::DefaultPrintLevel()), | |||
fDebug(0), | fStrategy(MinimizerOptions::DefaultStrategy()), | |||
#else | ||||
fDebug(3), | ||||
#endif | ||||
fStrategy(1), | ||||
fStatus(-1), | fStatus(-1), | |||
fMaxCalls(0), | fMaxCalls(MinimizerOptions::DefaultMaxFunctionCalls()), | |||
fMaxIter(0), | fMaxIter(MinimizerOptions::DefaultMaxIterations()), | |||
fTol(1.E-6), | fTol(MinimizerOptions::DefaultTolerance()), | |||
fPrec(-1), | fPrec(MinimizerOptions::DefaultPrecision()), | |||
fUp(1.) | fUp(MinimizerOptions::DefaultErrorDef() ) | |||
{} | {} | |||
/** | /** | |||
Destructor (no operations) | Destructor (no operations) | |||
*/ | */ | |||
virtual ~Minimizer () {} | virtual ~Minimizer () {} | |||
private: | private: | |||
// usually copying is non trivial, so we make this unaccessible | // usually copying is non trivial, so we make this unaccessible | |||
skipping to change at line 136 | skipping to change at line 127 | |||
virtual void SetFunction(const ROOT::Math::IMultiGradFunction & func) | virtual void SetFunction(const ROOT::Math::IMultiGradFunction & func) | |||
{ | { | |||
SetFunction(static_cast<const ::ROOT::Math::IMultiGenFunction &> (fun c)); | SetFunction(static_cast<const ::ROOT::Math::IMultiGenFunction &> (fun c)); | |||
} | } | |||
/// add variables . Return number of variables succesfully added | /// add variables . Return number of variables succesfully added | |||
template<class VariableIterator> | template<class VariableIterator> | |||
int SetVariables(const VariableIterator & begin, const VariableIterator & end) { | int SetVariables(const VariableIterator & begin, const VariableIterator & end) { | |||
unsigned int ivar = 0; | unsigned int ivar = 0; | |||
for ( VariableIterator vitr = begin; vitr != end; ++vitr) { | for ( VariableIterator vitr = begin; vitr != end; ++vitr) { | |||
#ifdef DEBUG | ||||
std::cout << "adding variable " << ivar << " " << vitr->Name(); | ||||
if (vitr->IsDoubleBound() ) std::cout << " bounded to [ " << vitr | ||||
->LowerLimit() << " , " << vitr->UpperLimit() << " ] "; | ||||
std::cout << std::endl; | ||||
#endif | ||||
bool iret = false; | bool iret = false; | |||
if (vitr->IsFixed() ) | if (vitr->IsFixed() ) | |||
iret = SetFixedVariable(ivar, vitr->Name(), vitr->Value() ); | iret = SetFixedVariable(ivar, vitr->Name(), vitr->Value() ); | |||
else if (vitr->IsDoubleBound() ) | else if (vitr->IsDoubleBound() ) | |||
iret = SetLimitedVariable(ivar, vitr->Name(), vitr->Value(), v itr->StepSize(), vitr->LowerLimit(), vitr->UpperLimit() ); | iret = SetLimitedVariable(ivar, vitr->Name(), vitr->Value(), v itr->StepSize(), vitr->LowerLimit(), vitr->UpperLimit() ); | |||
else if (vitr->HasLowerLimit() ) | else if (vitr->HasLowerLimit() ) | |||
iret = SetLowerLimitedVariable(ivar, vitr->Name(), vitr->Value (), vitr->StepSize(), vitr->LowerLimit() ); | iret = SetLowerLimitedVariable(ivar, vitr->Name(), vitr->Value (), vitr->StepSize(), vitr->LowerLimit() ); | |||
else if (vitr->HasUpperLimit() ) | else if (vitr->HasUpperLimit() ) | |||
iret = SetUpperLimitedVariable(ivar, vitr->Name(), vitr->Value (), vitr->StepSize(), vitr->UpperLimit() ); | iret = SetUpperLimitedVariable(ivar, vitr->Name(), vitr->Value (), vitr->StepSize(), vitr->UpperLimit() ); | |||
else | else | |||
iret = SetVariable( ivar, vitr->Name(), vitr->Value(), vitr->St epSize() ); | iret = SetVariable( ivar, vitr->Name(), vitr->Value(), vitr->St epSize() ); | |||
if (iret) ivar++; | if (iret) ivar++; | |||
#ifdef DEBUG | ||||
if (iret) | ||||
std::cout << "Added variable " << vitr->Name() << " val = " << | ||||
vitr->Value() << " step " << vitr->StepSize() | ||||
<< std::endl; | ||||
else | ||||
std::cout << "Failed to Add variable " << vitr->Name() << std:: | ||||
endl; | ||||
#endif | ||||
// an error message should be eventually be reported in the virtua l single SetVariable methods | ||||
} | } | |||
return ivar; | return ivar; | |||
} | } | |||
/// set free variable | /// set free variable | |||
virtual bool SetVariable(unsigned int ivar, const std::string & name, do uble val, double step) = 0; | virtual bool SetVariable(unsigned int ivar, const std::string & name, do uble val, double step) = 0; | |||
/// set lower limit variable (override if minimizer supports them ) | /// set lower limit variable (override if minimizer supports them ) | |||
virtual bool SetLowerLimitedVariable(unsigned int ivar , const std::str ing & name , double val , double step , double lower ) { | virtual bool SetLowerLimitedVariable(unsigned int ivar , const std::str ing & name , double val , double step , double lower ) { | |||
return SetLimitedVariable(ivar, name, val, step, lower, std::numeric_ limits<double>::infinity() ); | return SetLimitedVariable(ivar, name, val, step, lower, std::numeric_ limits<double>::infinity() ); | |||
} | } | |||
/// set upper limit variable (override if minimizer supports them ) | /// set upper limit variable (override if minimizer supports them ) | |||
skipping to change at line 310 | skipping to change at line 290 | |||
/// get index of variable given a variable given a name | /// get index of variable given a variable given a name | |||
/// return -1 if variable is not found | /// return -1 if variable is not found | |||
virtual int VariableIndex(const std::string &) const { return -1; } | virtual int VariableIndex(const std::string &) const { return -1; } | |||
/** minimizer configuration parameters **/ | /** minimizer configuration parameters **/ | |||
/// set print level | /// set print level | |||
int PrintLevel() const { return fDebug; } | int PrintLevel() const { return fDebug; } | |||
/// max number of function calls | /// max number of function calls | |||
unsigned int MaxFunctionCalls() { return fMaxCalls; } | unsigned int MaxFunctionCalls() const { return fMaxCalls; } | |||
/// max iterations | /// max iterations | |||
unsigned int MaxIterations() { return fMaxIter; } | unsigned int MaxIterations() const { return fMaxIter; } | |||
/// absolute tolerance | /// absolute tolerance | |||
double Tolerance() const { return fTol; } | double Tolerance() const { return fTol; } | |||
/// precision of minimizer in the evaluation of the objective function | /// precision of minimizer in the evaluation of the objective function | |||
/// ( a value <=0 corresponds to the let the minimizer choose its defaul t one) | /// ( a value <=0 corresponds to the let the minimizer choose its defaul t one) | |||
double Precision() const { return fPrec; } | double Precision() const { return fPrec; } | |||
/// strategy | /// strategy | |||
int Strategy() const { return fStrategy; } | int Strategy() const { return fStrategy; } | |||
skipping to change at line 335 | skipping to change at line 315 | |||
/// status code of minimizer | /// status code of minimizer | |||
int Status() const { return fStatus; } | int Status() const { return fStatus; } | |||
/// return the statistical scale used for calculate the error | /// return the statistical scale used for calculate the error | |||
/// is typically 1 for Chi2 and 0.5 for likelihood minimization | /// is typically 1 for Chi2 and 0.5 for likelihood minimization | |||
double ErrorDef() const { return fUp; } | double ErrorDef() const { return fUp; } | |||
///return true if Minimizer has performed a detailed error validation (e .g. run Hesse for Minuit) | ///return true if Minimizer has performed a detailed error validation (e .g. run Hesse for Minuit) | |||
bool IsValidError() const { return fValidError; } | bool IsValidError() const { return fValidError; } | |||
/// retrieve the minimizer options (implement derived class if needed) | ||||
virtual MinimizerOptions Options() const { | ||||
MinimizerOptions opt; | ||||
opt.SetPrintLevel(fDebug); | ||||
opt.SetStrategy(fStrategy); | ||||
opt.SetMaxFunctionCalls(fMaxCalls); | ||||
opt.SetMaxIterations(fMaxIter); | ||||
opt.SetTolerance(fTol); | ||||
opt.SetPrecision(fPrec); | ||||
opt.SetErrorDef(fUp); | ||||
return opt; | ||||
} | ||||
/// set print level | /// set print level | |||
void SetPrintLevel(int level) { fDebug = level; } | void SetPrintLevel(int level) { fDebug = level; } | |||
///set maximum of function calls | ///set maximum of function calls | |||
void SetMaxFunctionCalls(unsigned int maxfcn) { if (maxfcn > 0) fMaxCall s = maxfcn; } | void SetMaxFunctionCalls(unsigned int maxfcn) { if (maxfcn > 0) fMaxCall s = 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) { if (maxiter > 0) fMaxIter = maxiter; } | void SetMaxIterations(unsigned int maxiter) { if (maxiter > 0) fMaxIter = maxiter; } | |||
/// set the tolerance | /// set the tolerance | |||
skipping to change at line 360 | skipping to change at line 353 | |||
///set the strategy | ///set the strategy | |||
void SetStrategy(int strategyLevel) { fStrategy = strategyLevel; } | void SetStrategy(int strategyLevel) { fStrategy = strategyLevel; } | |||
/// set scale for calculating the errors | /// set scale for calculating the errors | |||
void SetErrorDef(double up) { fUp = up; } | void SetErrorDef(double up) { fUp = up; } | |||
/// flag to check if minimizer needs to perform accurate error analysis (e.g. run Hesse for Minuit) | /// flag to check if minimizer needs to perform accurate error analysis (e.g. run Hesse for Minuit) | |||
void SetValidError(bool on) { fValidError = on; } | void SetValidError(bool on) { fValidError = on; } | |||
/// set all options in one go | ||||
void SetOptions(const MinimizerOptions & opt) { | ||||
fDebug = opt.PrintLevel(); | ||||
fStrategy = opt.Strategy(); | ||||
fMaxCalls = opt.MaxFunctionCalls(); | ||||
fMaxIter = opt.MaxIterations(); | ||||
fTol = opt.Tolerance(); | ||||
fPrec = opt.Precision(); | ||||
fUp = opt.ErrorDef(); | ||||
} | ||||
/// reset the defaut options (defined in MinimizerOptions) | ||||
void SetDefaultOptions() { | ||||
fDebug = MinimizerOptions::DefaultPrintLevel(); | ||||
fStrategy = MinimizerOptions::DefaultStrategy(); | ||||
fMaxCalls = MinimizerOptions::DefaultMaxFunctionCalls(); | ||||
fMaxIter = MinimizerOptions::DefaultMaxIterations(); | ||||
fTol = MinimizerOptions::DefaultTolerance(); | ||||
fPrec = MinimizerOptions::DefaultPrecision(); | ||||
fUp = MinimizerOptions::DefaultErrorDef(); | ||||
} | ||||
protected: | protected: | |||
//private: | //private: | |||
// keep protected to be accessible by the derived classes | // keep protected to be accessible by the derived classes | |||
bool fValidError; // flag to control if errors have been vali dated (Hesse has been run in case of Minuit) | bool fValidError; // flag to control if errors have been vali dated (Hesse has been run in case of Minuit) | |||
int fDebug; // print level | int fDebug; // print level | |||
int fStrategy; // minimizer strategy | int fStrategy; // minimizer strategy | |||
int fStatus; // status of minimizer | int fStatus; // status of minimizer | |||
End of changes. 12 change blocks. | ||||
37 lines changed or deleted | 49 lines changed or added | |||
MinimizerOptions.h | MinimizerOptions.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: MinimizerOptions.h 31604 2009-12-07 19:04:33Z mon eta $ | // @(#)root/mathcore:$Id: MinimizerOptions.h 36905 2010-11-24 15:44:34Z 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 | |||
#define ROOT_Math_MinimizerOptions | #define ROOT_Math_MinimizerOptions | |||
#include <string> | #include <string> | |||
#include <iostream> | ||||
namespace ROOT { | namespace ROOT { | |||
namespace Math { | namespace Math { | |||
class IOptions; | ||||
//_________________________________________________________________________ ______ | //_________________________________________________________________________ ______ | |||
/** | /** | |||
Minimizer options | Minimizer options | |||
@ingroup MultiMin | @ingroup MultiMin | |||
*/ | */ | |||
class MinimizerOptions { | class MinimizerOptions { | |||
public: | public: | |||
skipping to change at line 51 | skipping to change at line 55 | |||
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 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(); | |||
/// retrieve extra options - if not existing create a IOptions | ||||
static ROOT::Math::IOptions & Default(const char * name); | ||||
// find extra options - return 0 if not existing | ||||
static ROOT::Math::IOptions * FindDefault(const char * name); | ||||
/// print all the default options for the name given | ||||
static void PrintDefault(const char * name = 0, std::ostream & os = std: | ||||
:cout); | ||||
public: | ||||
// constructor using the default options | // constructor using the default options | |||
MinimizerOptions(); | // pass optionally a pointer to the additional options | |||
// otehrwise look if they exist for this default minimizer | ||||
// and in that case they are copied in the constructed instance | ||||
MinimizerOptions(IOptions * extraOpts = 0); | ||||
// destructor | ||||
~MinimizerOptions(); | ||||
// copy constructor | ||||
MinimizerOptions(const MinimizerOptions & opt); | ||||
/// assignment operators | ||||
MinimizerOptions & operator=(const MinimizerOptions & opt); | ||||
/** 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 | |||
skipping to change at line 77 | skipping to change at line 104 | |||
/// 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) | /// precision in the objective funciton calculation (value <=0 means lef t to default) | |||
double Precision() const { return fPrecision; } | double Precision() const { return fPrecision; } | |||
/// error definition | /// error definition | |||
double ErrorDef() const { return fErrorDef; } | double ErrorDef() const { return fErrorDef; } | |||
/// return extra options (NULL pointer if they are not present) | ||||
IOptions * ExtraOptions() const { return fExtraOptions; } | ||||
/// 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; } | |||
/// print all the options | ||||
void Print(std::ostream & os = std::cout) const; | ||||
/** non-static methods for setting options */ | /** non-static methods for setting options */ | |||
/// set print level | /// set print level | |||
void SetPrintLevel(int level) { fLevel = level; } | void SetPrintLevel(int level) { fLevel = level; } | |||
///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; } | |||
skipping to change at line 112 | skipping to change at line 145 | |||
/// 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; } | |||
/// set extra options (in this case pointer is cloned) | ||||
void SetExtraOptions(const IOptions & opt); | ||||
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) | double fPrecision; // precision of the objective function 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, ...) | |||
// extra options | ||||
ROOT::Math::IOptions * fExtraOptions; // extra options | ||||
}; | }; | |||
} // end namespace Math | } // end namespace Math | |||
} // end namespace ROOT | } // end namespace ROOT | |||
#endif | #endif | |||
End of changes. 10 change blocks. | ||||
4 lines changed or deleted | 44 lines changed or added | |||
ModelConfig.h | ModelConfig.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: ModelConfig.h 34109 2010-06-24 15:00:16Z moneta $ | // @(#)root/roostats:$Id: ModelConfig.h 37084 2010-11-29 21:37:13Z moneta $ | |||
// Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | // Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke, S | |||
ven Kreiss | ||||
/************************************************************************* | /************************************************************************* | |||
* 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_ModelConfig | #ifndef ROOSTATS_ModelConfig | |||
#define ROOSTATS_ModelConfig | #define ROOSTATS_ModelConfig | |||
skipping to change at line 43 | skipping to change at line 43 | |||
#include <string> | #include <string> | |||
//_________________________________________________ | //_________________________________________________ | |||
/* | /* | |||
BEGIN_HTML | BEGIN_HTML | |||
<p> | <p> | |||
ModelConfig is a simple class that holds configuration information specifyi ng how a model | ModelConfig is a simple class that holds configuration information specifyi ng how a model | |||
should be used in the context of various RooStats tools. A single model ca n be used | should be used in the context of various RooStats tools. A single model ca n be used | |||
in different ways, and this class should carry all that is needed to specif y how it should be used. | in different ways, and this class should carry all that is needed to specif y how it should be used. | |||
ModelConfig requires a workspace to be set | ModelConfig requires a workspace to be set. | |||
</p> | </p> | |||
END_HTML | END_HTML | |||
*/ | */ | |||
// | // | |||
namespace RooStats { | namespace RooStats { | |||
class ModelConfig : public TNamed { | class ModelConfig : public TNamed { | |||
public: | public: | |||
ModelConfig(RooWorkspace * ws = 0) : | ModelConfig(RooWorkspace * ws = 0) : | |||
TNamed(), | TNamed() | |||
fWS(ws) | ||||
//fOwnsWorkspace(false) | ||||
{ | { | |||
if (ws) fWSName = ws->GetName(); | if(ws) SetWS(*ws); | |||
} | } | |||
ModelConfig(const char* name, RooWorkspace *ws = 0) : | ModelConfig(const char* name, RooWorkspace *ws = 0) : | |||
TNamed(name, name), | TNamed(name, name) | |||
fWS(ws) | ||||
//fOwnsWorkspace(false) | ||||
{ | { | |||
if (ws) fWSName = ws->GetName(); | if(ws) SetWS(*ws); | |||
} | } | |||
ModelConfig(const char* name, const char* title, RooWorkspace *ws = 0) : | ModelConfig(const char* name, const char* title, RooWorkspace *ws = 0) : | |||
TNamed(name, title), | TNamed(name, title) | |||
fWS(ws) | ||||
//fOwnsWorkspace(false) | ||||
{ | { | |||
if (ws) fWSName = ws->GetName(); | if(ws) SetWS(*ws); | |||
} | } | |||
// destructor. | ||||
virtual ~ModelConfig(); | ||||
// clone | // clone | |||
virtual ModelConfig * Clone(const char * name = "ModelConfig") const { | virtual ModelConfig * Clone(const char * name = "") const { | |||
ModelConfig * mc = new ModelConfig(*this); | ModelConfig * mc = new ModelConfig(*this); | |||
mc->SetName(name); | if(strcmp(name,"")==0) | |||
mc->SetName(this->GetName()); | ||||
else | ||||
mc->SetName(name); | ||||
return mc; | return mc; | |||
} | } | |||
// set a workspace that owns all the necessary components for the analys is | // set a workspace that owns all the necessary components for the analys is | |||
virtual void SetWorkspace(RooWorkspace & ws); | virtual void SetWS(RooWorkspace & ws); | |||
/// alias for SetWS(...) | ||||
virtual void SetWorkspace(RooWorkspace & ws) { SetWS(ws); } | ||||
// Set the proto DataSet, add to the the workspace if not already there | // Set the proto DataSet, add to the the workspace if not already there | |||
virtual void SetProtoData(RooAbsData & data) { | virtual void SetProtoData(RooAbsData & data) { | |||
ImportDataInWS(data); | ImportDataInWS(data); | |||
SetProtoData( data.GetName() ); | SetProtoData( data.GetName() ); | |||
} | } | |||
// Set the Pdf, add to the the workspace if not already there | // Set the Pdf, add to the the workspace if not already there | |||
virtual void SetPdf(const RooAbsPdf& pdf) { | virtual void SetPdf(const RooAbsPdf& pdf) { | |||
ImportPdfInWS(pdf); | ImportPdfInWS(pdf); | |||
skipping to change at line 155 | skipping to change at line 151 | |||
fGlobalObsName=std::string(GetName()) + "_GlobalObservables"; | fGlobalObsName=std::string(GetName()) + "_GlobalObservables"; | |||
DefineSetInWS(fGlobalObsName.c_str(), set); | DefineSetInWS(fGlobalObsName.c_str(), set); | |||
} | } | |||
// set parameter values for a particular hypothesis if using a common PD F | // set parameter values for a particular hypothesis if using a common PD F | |||
// by saving a snapshot in the workspace | // by saving a snapshot in the workspace | |||
virtual void SetSnapshot(const RooArgSet& set); | virtual void SetSnapshot(const RooArgSet& set); | |||
// specify the name of the PDF in the workspace to be used | // specify the name of the PDF in the workspace to be used | |||
virtual void SetPdf(const char* name) { | virtual void SetPdf(const char* name) { | |||
if(!fWS){ | if (! GetWS() ) return; | |||
coutE(ObjectHandling) << "workspace not set" << endl; | ||||
return; | if(GetWS()->pdf(name)) | |||
} | ||||
if(fWS->pdf(name)) | ||||
fPdfName = name; | fPdfName = name; | |||
else | else | |||
coutE(ObjectHandling) << "pdf "<<name<< " does not exist in worksp ace"<<endl; | coutE(ObjectHandling) << "pdf "<<name<< " does not exist in worksp ace"<<endl; | |||
} | } | |||
// specify the name of the PDF in the workspace to be used | // specify the name of the PDF in the workspace to be used | |||
virtual void SetPriorPdf(const char* name) { | virtual void SetPriorPdf(const char* name) { | |||
if(!fWS){ | if (! GetWS() ) return; | |||
coutE(ObjectHandling) << "workspace not set" << endl; | ||||
return; | if(GetWS()->pdf(name)) | |||
} | ||||
if(fWS->pdf(name)) | ||||
fPriorPdfName = name; | fPriorPdfName = name; | |||
else | else | |||
coutE(ObjectHandling) << "pdf "<<name<< " does not exist in worksp ace"<<endl; | coutE(ObjectHandling) << "pdf "<<name<< " does not exist in worksp ace"<<endl; | |||
} | } | |||
// specify the name of the dataset in the workspace to be used | // specify the name of the dataset in the workspace to be used | |||
virtual void SetProtoData(const char* name){ | virtual void SetProtoData(const char* name){ | |||
if(!fWS){ | if (! GetWS() ) return; | |||
coutE(ObjectHandling) << "workspace not set" << endl; | ||||
return; | if(GetWS()->data(name)) | |||
} | ||||
if(fWS->data(name)) | ||||
fProtoDataName = name; | fProtoDataName = name; | |||
else | else | |||
coutE(ObjectHandling) << "dataset "<<name<< " does not exist in wo rkspace"<<endl; | coutE(ObjectHandling) << "dataset "<<name<< " does not exist in wo rkspace"<<endl; | |||
} | } | |||
/* getter methods */ | /* getter methods */ | |||
/// get model PDF (return NULL if pdf has not been specified or does not exist) | /// get model PDF (return NULL if pdf has not been specified or does not exist) | |||
RooAbsPdf * GetPdf() const { return (fWS) ? fWS->pdf(fPdfName.c_str()) : 0; } | RooAbsPdf * GetPdf() const { return (GetWS()) ? GetWS()->pdf(fPdfName.c_ str()) : 0; } | |||
/// get RooArgSet containing the parameter of interest (return NULL if n ot existing) | /// get RooArgSet containing the parameter of interest (return NULL if n ot existing) | |||
const RooArgSet * GetParametersOfInterest() const { return (fWS) ? fWS-> set(fPOIName.c_str()) : 0; } | const RooArgSet * GetParametersOfInterest() const { return (GetWS()) ? G etWS()->set(fPOIName.c_str()) : 0; } | |||
/// get RooArgSet containing the nuisance parameters (return NULL if not existing) | /// get RooArgSet containing the nuisance parameters (return NULL if not existing) | |||
const RooArgSet * GetNuisanceParameters() const { return (fWS) ? fWS->se t(fNuisParamsName.c_str()) : 0; } | const RooArgSet * GetNuisanceParameters() const { return (GetWS()) ? Get WS()->set(fNuisParamsName.c_str()) : 0; } | |||
/// get RooArgSet containing the constraint parameters (return NULL if n ot existing) | /// get RooArgSet containing the constraint parameters (return NULL if n ot existing) | |||
const RooArgSet * GetConstraintParameters() const { return (fWS) ? fWS-> set(fConstrParamsName.c_str()) : 0; } | const RooArgSet * GetConstraintParameters() const { return (GetWS()) ? G etWS()->set(fConstrParamsName.c_str()) : 0; } | |||
/// get parameters prior pdf (return NULL if not existing) | /// get parameters prior pdf (return NULL if not existing) | |||
RooAbsPdf * GetPriorPdf() const { return (fWS) ? fWS->pdf(fPriorPdfName. c_str()) : 0; } | RooAbsPdf * GetPriorPdf() const { return (GetWS()) ? GetWS()->pdf(fPrior PdfName.c_str()) : 0; } | |||
/// get RooArgSet for observables (return NULL if not existing) | /// get RooArgSet for observables (return NULL if not existing) | |||
const RooArgSet * GetObservables() const { return (fWS) ? fWS->set(fObse rvablesName.c_str()) : 0; } | const RooArgSet * GetObservables() const { return (GetWS()) ? GetWS()->s et(fObservablesName.c_str()) : 0; } | |||
/// get RooArgSet for conditional observables (return NULL if not exist ing) | /// get RooArgSet for conditional observables (return NULL if not exist ing) | |||
const RooArgSet * GetConditionalObservables() const { return (fWS) ? fWS ->set(fConditionalObsName.c_str()) : 0; } | const RooArgSet * GetConditionalObservables() const { return (GetWS()) ? GetWS()->set(fConditionalObsName.c_str()) : 0; } | |||
/// get RooArgSet for global observables (return NULL if not existing) | /// get RooArgSet for global observables (return NULL if not existing) | |||
const RooArgSet * GetGlobalObservables() const { return (fWS) ? fWS->set (fGlobalObsName.c_str()) : 0; } | const RooArgSet * GetGlobalObservables() const { return (GetWS()) ? GetW S()->set(fGlobalObsName.c_str()) : 0; } | |||
/// get Proto data set (return NULL if not existing) | /// get Proto data set (return NULL if not existing) | |||
RooAbsData * GetProtoData() const { return (fWS) ? fWS->data(fProtoDat aName.c_str()) : 0; } | RooAbsData * GetProtoData() const { return (GetWS()) ? GetWS()->data(f ProtoDataName.c_str()) : 0; } | |||
/// get RooArgSet for parameters for a particular hypothesis (return NU LL if not existing) | /// get RooArgSet for parameters for a particular hypothesis (return NU LL if not existing) | |||
const RooArgSet * GetSnapshot() const; | const RooArgSet * GetSnapshot() const; | |||
void LoadSnapshot() const; | void LoadSnapshot() const; | |||
RooWorkspace * GetWS() const; | RooWorkspace * GetWS() const; | |||
/// alias for GetWS() | ||||
RooWorkspace * GetWorkspace() const { return GetWS(); } | ||||
/// guesses Observables and ParametersOfInterest if not already set | /// guesses Observables and ParametersOfInterest if not already set | |||
void GuessObsAndNuisance(const RooAbsData& data); | void GuessObsAndNuisance(const RooAbsData& data); | |||
// overload the print method | ||||
virtual void Print(Option_t* option = "") const; | ||||
protected: | protected: | |||
// helper functions to define a set in the WS | // helper functions to define a set in the WS | |||
void DefineSetInWS(const char* name, const RooArgSet& set); | void DefineSetInWS(const char* name, const RooArgSet& set); | |||
// internal function to import Pdf in WS | // internal function to import Pdf in WS | |||
void ImportPdfInWS(const RooAbsPdf & pdf); | void ImportPdfInWS(const RooAbsPdf & pdf); | |||
// internal function to import data in WS | // internal function to import data in WS | |||
void ImportDataInWS(RooAbsData & data); | void ImportDataInWS(RooAbsData & data); | |||
mutable RooWorkspace* fWS; //! a workspace that owns all the compone nts to be used by the calculator (transient member) | ||||
TRef fRefWS; // WS reference used in the file | TRef fRefWS; // WS reference used in the file | |||
//Bool_t fOwnsWorkspace; | ||||
std::string fWSName; // name of the WS | std::string fWSName; // name of the WS | |||
std::string fPdfName; // name of PDF in workspace | std::string fPdfName; // name of PDF in workspace | |||
std::string fDataName; // name of data set in workspace | std::string fDataName; // name of data set in workspace | |||
std::string fPOIName; // name for RooArgSet specifying parameters of int erest | std::string fPOIName; // name for RooArgSet specifying parameters of int erest | |||
std::string fNuisParamsName; // name for RooArgSet specifying nuisance p arameters | std::string fNuisParamsName; // name for RooArgSet specifying nuisance p arameters | |||
std::string fConstrParamsName; // name for RooArgSet specifying constrai ned parameters | std::string fConstrParamsName; // name for RooArgSet specifying constrai ned parameters | |||
std::string fPriorPdfName; // name for RooAbsPdf specifying a prior on t he parameters | std::string fPriorPdfName; // name for RooAbsPdf specifying a prior on t he parameters | |||
std::string fConditionalObsName; // name for RooArgSet specifying condit ional observables | std::string fConditionalObsName; // name for RooArgSet specifying condit ional observables | |||
std::string fGlobalObsName; // name for RooArgSet specifying global obse rvables | std::string fGlobalObsName; // name for RooArgSet specifying global obse rvables | |||
std::string fProtoDataName; // name for RooArgSet specifying dataset tha t should be used as protodata | std::string fProtoDataName; // name for RooArgSet specifying dataset tha t should be used as protodata | |||
std::string fSnapshotName; // name for RooArgSet that specifies a partic ular hypothesis | std::string fSnapshotName; // name for RooArgSet that specifies a partic ular hypothesis | |||
std::string fObservablesName; // name for RooArgSet specifying observabl e parameters. | std::string fObservablesName; // name for RooArgSet specifying observabl e parameters. | |||
ClassDef(ModelConfig,3) // A class that holds configuration information for a model using a workspace as a store | ClassDef(ModelConfig,4) // A class that holds configuration information for a model using a workspace as a store | |||
}; | }; | |||
} // end namespace RooStats | } // end namespace RooStats | |||
#endif | #endif | |||
End of changes. 29 change blocks. | ||||
49 lines changed or deleted | 42 lines changed or added | |||
MsgLogger.h | MsgLogger.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: MsgLogger.h 35732 2010-09-25 11:49:37Z stelzer $ | // @(#)root/tmva $Id: MsgLogger.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 * | |||
skipping to change at line 103 | skipping to change at line 103 | |||
} | } | |||
// Temporaly disables all the loggers (Caution! Use with care !) | // Temporaly disables all the loggers (Caution! Use with care !) | |||
static void InhibitOutput(); | static void InhibitOutput(); | |||
static void EnableOutput(); | static void EnableOutput(); | |||
private: | private: | |||
// private utility routines | // private utility routines | |||
void Send(); | void Send(); | |||
static void InitMaps(); | void InitMaps(); | |||
void WriteMsg( EMsgType type, const std::string& line ) const; | void WriteMsg( EMsgType type, const std::string& line ) const; | |||
const TObject* fObjSource; // the source TObjec | const TObject* fObjSource; // the source TObject (us | |||
t (used for name) | ed for name) | |||
std::string fStrSource; // alternative strin | std::string fStrSource; // alternative string sou | |||
g source | rce | |||
static const std::string fgPrefix; // the prefi | static const std::string fgPrefix; // the prefix of the sour | |||
x of the source name | ce name | |||
static const std::string fgSuffix; // suffix fo | static const std::string fgSuffix; // suffix following sourc | |||
llowing source name | e name | |||
EMsgType fActiveType; // active type | EMsgType fActiveType; // active type | |||
static UInt_t fgMaxSourceSize; // maximum length of | static UInt_t fgMaxSourceSize; // maximum length of sour | |||
source name | ce name | |||
static Bool_t fgOutputSupressed; // disable the out | static Bool_t fgOutputSupressed; // disable the output glo | |||
put globaly (used by generic booster) | baly (used by generic booster) | |||
static Bool_t fgInhibitOutput; // flag to suppress all o | ||||
static std::map<EMsgType, std::string> fgTypeMap; // matches o | utput | |||
utput types with strings | static Int_t fgInstanceCounter; // counts open MsgLogger | |||
static std::map<EMsgType, std::string> fgColorMap; // matches o | instances | |||
utput types with terminal colors | ||||
EMsgType fMinType; // minimum type for | static std::map<EMsgType, std::string>* fgTypeMap; // matches outpu | |||
output | t types with strings | |||
static std::map<EMsgType, std::string>* fgColorMap; // matches outpu | ||||
static Bool_t fgInhibitOutput; // flag to suppress | t types with terminal colors | |||
all output | EMsgType fMinType; // minimum type | |||
for output | ||||
ClassDef(MsgLogger,0) // Ostringstream derivative to redirect and for mat logging output | ClassDef(MsgLogger,0) // Ostringstream derivative to redirect and for mat logging output | |||
}; // class MsgLogger | }; // class MsgLogger | |||
inline MsgLogger& MsgLogger::operator<< ( MsgLogger& (*_f)( MsgLogger& ) ) | inline MsgLogger& MsgLogger::operator<< ( MsgLogger& (*_f)( MsgLogger& ) ) | |||
{ | { | |||
return (_f)(*this); | return (_f)(*this); | |||
} | } | |||
inline MsgLogger& MsgLogger::operator<< ( std::ostream& (*_f)( std::ostr eam& ) ) | inline MsgLogger& MsgLogger::operator<< ( std::ostream& (*_f)( std::ostr eam& ) ) | |||
End of changes. 3 change blocks. | ||||
25 lines changed or deleted | 26 lines changed or added | |||
MultiNumGradFunction.h | MultiNumGradFunction.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: MultiNumGradFunction.h 29068 2009-06-17 16:28:51Z moneta $ | // @(#)root/mathmore:$Id: MultiNumGradFunction.h 37448 2010-12-09 20:20:56Z moneta $ | |||
// Author: L. Moneta Wed Dec 20 14:36:31 2006 | // Author: L. Moneta Wed Dec 20 14:36:31 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 59 | skipping to change at line 59 | |||
class MultiNumGradFunction : public IMultiGradFunction { | class MultiNumGradFunction : public IMultiGradFunction { | |||
public: | public: | |||
/** | /** | |||
Constructor from a IMultiGenFunction interface | Constructor from a IMultiGenFunction interface | |||
*/ | */ | |||
MultiNumGradFunction (const IMultiGenFunction & f) : | MultiNumGradFunction (const IMultiGenFunction & f) : | |||
fFunc(&f), | fFunc(&f), | |||
fDim(f.NDim() ), | fDim(f.NDim() ), | |||
fNCalls(0), | ||||
fOwner(false) | fOwner(false) | |||
{} | {} | |||
/** | /** | |||
Constructor from a generic function (pointer or reference) and number of dimension | Constructor from a generic function (pointer or reference) and number of dimension | |||
implementiong operator () (double * x) | implementiong operator () (double * x) | |||
*/ | */ | |||
template<class FuncType> | template<class FuncType> | |||
MultiNumGradFunction (FuncType f, int n) : | MultiNumGradFunction (FuncType f, int n) : | |||
fDim( n ), | fDim( n ), | |||
fNCalls(0), | ||||
fOwner(true) | fOwner(true) | |||
{ | { | |||
// create a wrapped function | // create a wrapped function | |||
fFunc = new ROOT::Math::WrappedMultiFunction<FuncType> (f, n); | fFunc = new ROOT::Math::WrappedMultiFunction<FuncType> (f, n); | |||
} | } | |||
/** | /** | |||
Destructor (no operations) | Destructor (no operations) | |||
*/ | */ | |||
~MultiNumGradFunction () { | ~MultiNumGradFunction () { | |||
if (fOwner) delete fFunc; | if (fOwner) delete fFunc; | |||
} | } | |||
// method inheritaed from IFunction interface | // method inheritaed from IFunction interface | |||
unsigned int NDim() const { return fDim; } | unsigned int NDim() const { return fDim; } | |||
unsigned int NCalls() const { return fNCalls; } | ||||
IMultiGenFunction * Clone() const { | IMultiGenFunction * Clone() const { | |||
if (!fOwner) | if (!fOwner) | |||
return new MultiNumGradFunction(*fFunc); | return new MultiNumGradFunction(*fFunc); | |||
else { | else { | |||
// we need to copy the pointer to the wrapped function | // we need to copy the pointer to the wrapped function | |||
MultiNumGradFunction * f = new MultiNumGradFunction(*(fFunc->Clon e()) ); | MultiNumGradFunction * f = new MultiNumGradFunction(*(fFunc->Clon e()) ); | |||
f->fOwner = true; | f->fOwner = true; | |||
return f; | return f; | |||
} | } | |||
} | } | |||
skipping to change at line 108 | skipping to change at line 112 | |||
/// precision value used for calculating the derivative step-size | /// precision value used for calculating the derivative step-size | |||
/// h = eps * |x|. The default is 0.001, give a smaller in case function chanes rapidly | /// h = eps * |x|. The default is 0.001, give a smaller in case function chanes rapidly | |||
static void SetDerivPrecision(double eps); | static void SetDerivPrecision(double eps); | |||
/// get precision value used for calculating the derivative step-size | /// get precision value used for calculating the derivative step-size | |||
static double GetDerivPrecision(); | static double GetDerivPrecision(); | |||
private: | private: | |||
double DoEval(const double * x) const { | double DoEval(const double * x) const { | |||
fNCalls++; | ||||
return (*fFunc)(x); | return (*fFunc)(x); | |||
} | } | |||
// calculate derivative using mathcore derivator | // calculate derivative using mathcore derivator | |||
double DoDerivative (const double * x, unsigned int icoord ) const; | double DoDerivative (const double * x, unsigned int icoord ) const; | |||
// adapat internal function type to IMultiGenFunction needed by derivati ve calculation | // adapat internal function type to IMultiGenFunction needed by derivati ve calculation | |||
const IMultiGenFunction * fFunc; | const IMultiGenFunction * fFunc; | |||
unsigned int fDim; | unsigned int fDim; | |||
mutable unsigned int fNCalls; | ||||
bool fOwner; | bool fOwner; | |||
static double fgEps; // epsilon used in derivative calculation h ~ eps |x| | static double fgEps; // epsilon used in derivative calculation h ~ eps |x| | |||
}; | }; | |||
} // end namespace Math | } // end namespace Math | |||
} // end namespace ROOT | } // end namespace ROOT | |||
End of changes. 6 change blocks. | ||||
1 lines changed or deleted | 7 lines changed or added | |||
NeymanConstruction.h | NeymanConstruction.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: NeymanConstruction.h 34109 2010-06-24 15:00:16Z m oneta $ | // @(#)root/roostats:$Id: NeymanConstruction.h 37403 2010-12-08 15:59:22Z 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_NeymanConstruction | #ifndef ROOSTATS_NeymanConstruction | |||
skipping to change at line 25 | skipping to change at line 25 | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
#ifndef ROOSTATS_IntervalCalculator | #ifndef ROOSTATS_IntervalCalculator | |||
#include "RooStats/IntervalCalculator.h" | #include "RooStats/IntervalCalculator.h" | |||
#endif | #endif | |||
#include "RooStats/TestStatSampler.h" | #include "RooStats/TestStatSampler.h" | |||
#include "RooStats/ModelConfig.h" | #include "RooStats/ModelConfig.h" | |||
#include "RooStats/ConfidenceBelt.h" | #include "RooStats/ConfidenceBelt.h" | |||
#include "RooStats/PointSetInterval.h" | ||||
#include "RooAbsData.h" | #include "RooAbsData.h" | |||
#include "RooAbsPdf.h" | #include "RooAbsPdf.h" | |||
#include "RooArgSet.h" | #include "RooArgSet.h" | |||
#include "TList.h" | #include "TList.h" | |||
class RooAbsData; | class RooAbsData; | |||
namespace RooStats { | namespace RooStats { | |||
skipping to change at line 47 | skipping to change at line 48 | |||
class NeymanConstruction : public IntervalCalculator{ | class NeymanConstruction : public IntervalCalculator{ | |||
public: | public: | |||
// NeymanConstruction(); | // NeymanConstruction(); | |||
NeymanConstruction(RooAbsData& data, ModelConfig& model); | NeymanConstruction(RooAbsData& data, ModelConfig& model); | |||
virtual ~NeymanConstruction(); | virtual ~NeymanConstruction(); | |||
// Main interface to get a ConfInterval (will be a PointSetInterval) | // Main interface to get a ConfInterval (will be a PointSetInterval) | |||
virtual ConfInterval* GetInterval() const; | virtual PointSetInterval* GetInterval() const; | |||
// in addition to interface we also need: | // in addition to interface we also need: | |||
// Set the TestStatSampler (eg. ToyMC or FFT, includes choice of Test Statistic) | // Set the TestStatSampler (eg. ToyMC or FFT, includes choice of Test Statistic) | |||
void SetTestStatSampler(TestStatSampler& sampler) {fTestStatSampler = &sampler;} | void SetTestStatSampler(TestStatSampler& sampler) {fTestStatSampler = &sampler;} | |||
// fLeftSideTailFraction*fSize defines lower edge of acceptance regio n. | // fLeftSideTailFraction*fSize defines lower edge of acceptance regio n. | |||
// Unified limits use 0, central limits use 0.5, | // Unified limits use 0, central limits use 0.5, | |||
// for upper/lower limits it is 0/1 depends on sign of test statistic w.r.t. parameter | // for upper/lower limits it is 0/1 depends on sign of test statistic w.r.t. parameter | |||
void SetLeftSideTailFraction(Double_t leftSideFraction = 0.) {fLeftSi deFraction = leftSideFraction;} | void SetLeftSideTailFraction(Double_t leftSideFraction = 0.) {fLeftSi deFraction = leftSideFraction;} | |||
// User-defined set of points to test | // User-defined set of points to test | |||
skipping to change at line 118 | skipping to change at line 119 | |||
void AdditionalNToysFactor(double fact){fAdditionalNToysFactor = fact ;} | void AdditionalNToysFactor(double fact){fAdditionalNToysFactor = fact ;} | |||
// save teh confidence belt to a file | // save teh confidence belt to a file | |||
void SaveBeltToFile(bool flag=true){ | void SaveBeltToFile(bool flag=true){ | |||
fSaveBeltToFile = flag; | fSaveBeltToFile = flag; | |||
if(flag) fCreateBelt = true; | if(flag) fCreateBelt = true; | |||
} | } | |||
// should create confidence belt | // should create confidence belt | |||
void CreateConfBelt(bool flag=true){fCreateBelt = flag;} | void CreateConfBelt(bool flag=true){fCreateBelt = flag;} | |||
// Returns instance of TestStatSampler. Use to change properties of | ||||
// TestStatSampler, e.g. GetTestStatSampler.SetTestSize(Double_t size | ||||
); | ||||
TestStatSampler* GetTestStatSampler(void) { return fTestStatSampler; | ||||
} | ||||
private: | private: | |||
Double_t fSize; // size of the test (eg. specified rate of Type I err or) | Double_t fSize; // size of the test (eg. specified rate of Type I err or) | |||
RooAbsData& fData; // data set | RooAbsData& fData; // data set | |||
ModelConfig &fModel; | ModelConfig &fModel; | |||
/* | /* | |||
RooAbsPdf * fPdf; // common PDF | RooAbsPdf * fPdf; // common PDF | |||
mutable RooArgSet fPOI; // RooArgSet specifying parameters of intere st for interval | mutable RooArgSet fPOI; // RooArgSet specifying parameters of intere st for interval | |||
RooArgSet fNuisParams;// RooArgSet specifying nuisance parameters fo r interval | RooArgSet fNuisParams;// RooArgSet specifying nuisance parameters fo r interval | |||
*/ | */ | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 9 lines changed or added | |||
Node.h | Node.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Node.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: Node.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 90 | skipping to change at line 90 | |||
virtual Node* CreateNode() const = 0; | virtual Node* CreateNode() const = 0; | |||
// test event if i{ decends the tree at this node to the right | // test event if i{ decends the tree at this node to the right | |||
virtual Bool_t GoesRight( const Event& ) const = 0; | virtual Bool_t GoesRight( const Event& ) const = 0; | |||
// 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 | |||
virtual Bool_t GoesLeft ( const Event& ) const = 0; | virtual Bool_t GoesLeft ( const Event& ) const = 0; | |||
// test event if it is equal to the event that "makes the node" (just for the "search tree" | // test event if it is equal to the event that "makes the node" (just for the "search tree" | |||
// return pointer to the left daughter node | // return pointer to the left/right daughter or parent node | |||
inline Node* GetLeft () const { return fLeft; } | inline virtual Node* GetLeft () const { return fLeft; } | |||
// return pointer to the right daughter node | inline virtual Node* GetRight () const { return fRight; } | |||
inline Node* GetRight () const { return fRight; } | inline virtual Node* GetParent() const { return fParent; } | |||
// return pointer to the parent node | ||||
inline Node* GetParent() const { return fParent; } | // set pointer to the left/right daughter or parent node | |||
inline virtual void SetLeft (Node* l) { fLeft = l;} | ||||
// set pointer to the left daughter node | inline virtual void SetRight (Node* r) { fRight = r;} | |||
inline void SetLeft (Node* l) { fLeft = l;} | inline virtual void SetParent(Node* p) { fParent = p;} | |||
// set pointer to the right daughter node | ||||
inline void SetRight (Node* r) { fRight = r;} | ||||
// set pointer to the parent node | ||||
inline void SetParent(Node* p) { fParent = p;} | ||||
//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; | |||
skipping to change at line 131 | skipping to change at line 127 | |||
// 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 | |||
void SetPos(char s) {fPos=s;} | void SetPos(char s) {fPos=s;} | |||
// Return the node position, i.e, the node is a left (l) or right (r) daugther | // Return the node position, i.e, the node is a left (l) or right (r) daugther | |||
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;} | virtual 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;} | virtual void SetParentTree(TMVA::BinaryTree* t) {fParentTree = t;} | |||
int GetCount(); | int GetCount(); | |||
virtual Bool_t ReadDataRecord( std::istream&, UInt_t tmva_Version_Cod e = TMVA_VERSION_CODE ) = 0; | virtual Bool_t ReadDataRecord( std::istream&, UInt_t tmva_Version_Cod e = TMVA_VERSION_CODE ) = 0; | |||
virtual void ReadAttributes(void* node, UInt_t tmva_Version_Code = TM VA_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: | protected: | |||
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) | |||
BinaryTree* fParentTree; // pointer to the parent tree to which the Node belongs | BinaryTree* fParentTree; // pointer to the parent tree to which the Node belongs | |||
private: | ||||
static Int_t fgCount; // counter of all nodes present.. for d ebug.. to spot memory leaks... | static Int_t fgCount; // counter of all nodes present.. for d ebug.. to spot memory leaks... | |||
public: | public: | |||
ClassDef(Node,0) // Node for the BinarySearch or Decision Trees | ClassDef(Node,0) // Node for the BinarySearch or Decision Trees | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif | #endif | |||
End of changes. 6 change blocks. | ||||
17 lines changed or deleted | 14 lines changed or added | |||
NumEventsTestStat.h | NumEventsTestStat.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: NumEventsTestStat.h 31276 2009-11-18 15:06:42Z mo neta $ | // @(#)root/roostats:$Id: NumEventsTestStat.h 36222 2010-10-09 18:27:06Z wo uter $ | |||
// 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_NumEventsTestStat | #ifndef ROOSTATS_NumEventsTestStat | |||
skipping to change at line 52 | skipping to change at line 52 | |||
NumEventsTestStat(RooAbsPdf& pdf) { | NumEventsTestStat(RooAbsPdf& pdf) { | |||
fPdf = &pdf; | fPdf = &pdf; | |||
} | } | |||
virtual ~NumEventsTestStat() { | virtual ~NumEventsTestStat() { | |||
// delete fRand; | // delete fRand; | |||
// delete fTestStatistic; | // delete fTestStatistic; | |||
} | } | |||
// Main interface to evaluate the test statistic on a dataset | // Main interface to evaluate the test statistic on a dataset | |||
virtual Double_t Evaluate(RooAbsData& data, RooArgSet& /*paramsOfInter est*/) { | virtual Double_t Evaluate(RooAbsData& data, RooArgSet& /*paramsOfInter est*/) { | |||
if(!&data){ cout << "problem with data" << endl;} | if(!&data) { | |||
cout << "problem with data" << endl; | ||||
RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL) ; | return 0 ; | |||
} else { | ||||
return data.numEntries(); | ||||
RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL) ; | ||||
return data.numEntries(); | ||||
} | ||||
} | } | |||
// Get the TestStatistic | // Get the TestStatistic | |||
virtual const RooAbsArg* GetTestStatistic() const {return fPdf;} | virtual const RooAbsArg* GetTestStatistic() const {return fPdf;} | |||
virtual const TString GetVarName() const {return "Number of events";} | virtual const TString GetVarName() const {return "Number of events";} | |||
private: | private: | |||
RooAbsPdf* fPdf; | RooAbsPdf* fPdf; | |||
End of changes. 2 change blocks. | ||||
6 lines changed or deleted | 9 lines changed or added | |||
Object.h | Object.h | |||
---|---|---|---|---|
// @(#)root/reflex:$Id: Object.h 29288 2009-07-01 13:03:35Z axel $ | // @(#)root/reflex:$Id: Object.h 36314 2010-10-12 12:40:57Z axel $ | |||
// Author: Stefan Roiser 2004 | // Author: Stefan Roiser 2004 | |||
// Copyright CERN, CH-1211 Geneva 23, 2004-2006, All rights reserved. | // Copyright CERN, CH-1211 Geneva 23, 2004-2006, All rights reserved. | |||
// | // | |||
// Permission to use, copy, modify, and distribute this software for any | // Permission to use, copy, modify, and distribute this software for any | |||
// purpose is hereby granted without fee, provided that this copyright and | // purpose is hereby granted without fee, provided that this copyright and | |||
// permissions notice appear in all copies and derivatives. | // permissions notice appear in all copies and derivatives. | |||
// | // | |||
// This software is provided "as is" without express or implied warranty. | // This software is provided "as is" without express or implied warranty. | |||
skipping to change at line 215 | skipping to change at line 215 | |||
/** | /** | |||
* Object_Cast can be used to cast an object into a given type | * Object_Cast can be used to cast an object into a given type | |||
* (no additional checks are performed for the time being) | * (no additional checks are performed for the time being) | |||
* @param o the object to be casted | * @param o the object to be casted | |||
* @return the address of the object casted into type T | * @return the address of the object casted into type T | |||
*/ | */ | |||
template <class T> T Object_Cast(const Object& o); | template <class T> T Object_Cast(const Object& o); | |||
} // namespace Reflex | } // namespace Reflex | |||
#include "Reflex/Member.h" | ||||
#include "Reflex/Tools.h" | #include "Reflex/Tools.h" | |||
//------------------------------------------------------------------------- ------ | //------------------------------------------------------------------------- ------ | |||
template <class T> | template <class T> | |||
inline T | inline T | |||
Reflex::Object_Cast(const Object& o) { | Reflex::Object_Cast(const Object& o) { | |||
//------------------------------------------------------------------------- ------ | //------------------------------------------------------------------------- ------ | |||
return *(T*) o.Address(); | return *(T*) o.Address(); | |||
} | } | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 1 lines changed or added | |||
PDEFoam.h | PDEFoam.h | |||
---|---|---|---|---|
skipping to change at line 30 | skipping to change at line 30 | |||
* * | * * | |||
* 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> | |||
#include <cassert> | ||||
#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 | |||
skipping to change at line 59 | skipping to change at line 60 | |||
#ifndef ROOT_TMVA_Timer | #ifndef ROOT_TMVA_Timer | |||
#include "TMVA/Timer.h" | #include "TMVA/Timer.h" | |||
#endif | #endif | |||
#ifndef ROOT_TObject | #ifndef ROOT_TObject | |||
#include "TObject.h" | #include "TObject.h" | |||
#endif | #endif | |||
#ifndef ROOT_TRandom3 | #ifndef ROOT_TRandom3 | |||
#include "TRandom3.h" | #include "TRandom3.h" | |||
#endif | #endif | |||
namespace TMVA { | ||||
class PDEFoamCell; | ||||
class PDEFoamVect; | ||||
class PDEFoamDistr; | ||||
class PDEFoam; | ||||
enum EFoamType { kSeparate, kDiscr, kMonoTarget, kMultiTarget }; | ||||
} | ||||
#ifndef ROOT_TMVA_PDEFoamDistr | #ifndef ROOT_TMVA_PDEFoamDistr | |||
#include "TMVA/PDEFoamDistr.h" | #include "TMVA/PDEFoamDistr.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_PDEFoamVect | #ifndef ROOT_TMVA_PDEFoamVect | |||
#include "TMVA/PDEFoamVect.h" | #include "TMVA/PDEFoamVect.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_PDEFoamCell | #ifndef ROOT_TMVA_PDEFoamCell | |||
#include "TMVA/PDEFoamCell.h" | #include "TMVA/PDEFoamCell.h" | |||
#endif | #endif | |||
namespace TMVA { | namespace TMVA { | |||
class PDEFoam; | enum EKernel { kNone=0, kGaus=1, kLinN=2 }; | |||
class PDEFoamCell; | enum ETargetSelection { kMean=0, kMpv=1 }; | |||
enum EKernel { kNone, kGaus, kLinN }; | ||||
enum ETargetSelection { kMean, kMpv }; | ||||
enum ECellType { kAll, kActive, kInActive }; | enum ECellType { kAll, kActive, kInActive }; | |||
// enum type for possible foam cell values | // 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 ) | // 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) | // 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 | // kRmsOvMean : rms/mean of sampling distribution (saved in | |||
// fDriver and fIntegral) | // fDriver and fIntegral) | |||
// kDensity : number of events/cell volume | // kDensity : number of events/cell volume | |||
enum ECellValue { kNev, kDiscriminator, kDiscriminatorError, kTarget0, | enum ECellValue { kNev, kDiscriminator, kDiscriminatorError, kTarget0, | |||
kTarget0Error, kMeanValue, kRms, kRmsOvMean, kDensity }; | kTarget0Error, kMeanValue, kRms, kRmsOvMean, kDensity }; | |||
// separation quantity to use (kFoam: use PDEFoam algorithm) | ||||
enum EDTSeparation { kFoam, kGiniIndex, kMisClassificationError, | ||||
kCrossEntropy }; | ||||
} | } | |||
namespace TMVA { | namespace TMVA { | |||
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 // | |||
skipping to change at line 127 | skipping to change at line 137 | |||
Double_t *fRvec; // [fDim] random number vector from r.n. g enerator fDim+1 maximum elements | Double_t *fRvec; // [fDim] random number vector from r.n. g enerator fDim+1 maximum elements | |||
//----------- Procedures | //----------- Procedures | |||
TRandom3 *fPseRan; // Pointer to user-defined generator of ps eudorandom numbers | TRandom3 *fPseRan; // Pointer to user-defined generator of ps eudorandom numbers | |||
//---------- 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 | 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 | ||||
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 sp | UInt_t fMaxDepth; // maximum depth of cell tree | |||
lit | ||||
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 | |||
Bool_t fFillFoamWithOrigWeights; // fill the foam with boost or orig. | ||||
weights | ||||
EDTSeparation fDTSeparation; // split cells according to decision tre | ||||
e logic | ||||
Bool_t fPeekMax; // peek up cell with max. driver integral fo | ||||
r split | ||||
PDEFoamDistr *fDistr; //! distribution of training events | 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 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; } | ||||
///////////////////////////////////////////////////////////////// | ///////////////////////////////////////////////////////////////// | |||
// METHODS // | // METHODS // | |||
///////////////////////////////////////////////////////////////// | ///////////////////////////////////////////////////////////////// | |||
private: | private: | |||
Double_t Sqr(Double_t x) const { return x*x;} // Square function | // Square function (fastest implementation) | |||
template<typename T> T Sqr(T x) const { return x*x; } | ||||
PDEFoamDistr* GetDistr() const { assert(fDistr); return fDistr; } | ||||
protected: | protected: | |||
// ---------- TMVA console output | // ---------- TMVA console output | |||
void OutputGrow(Bool_t finished = false ); // nice TMVA console outpu t | void OutputGrow(Bool_t finished = false ); // nice TMVA console outpu t | |||
// ---------- Weighting functions for kernels | // ---------- Weighting functions for kernels | |||
Float_t WeightGaus(PDEFoamCell*, std::vector<Float_t>, UInt_t dim=0); | Float_t WeightGaus(PDEFoamCell*, std::vector<Float_t>&, UInt_t dim=0) ; | |||
Double_t WeightLinNeighbors( std::vector<Float_t> txvec, ECellValue c v, | Double_t WeightLinNeighbors( std::vector<Float_t> &txvec, ECellValue cv, | |||
Int_t dim1=-1, Int_t dim2=-1, | Int_t dim1=-1, Int_t dim2=-1, | |||
Bool_t TreatEmptyCells=kFALSE ); | Bool_t TreatEmptyCells=kFALSE ); | |||
// ---------- Foam build-up functions | // ---------- Foam build-up functions | |||
// Internal foam initialization functions | // Internal foam initialization functions | |||
void InitCells(Bool_t CreateCellElements); // Initialisation of all foam cells | void InitCells(); // Initialisation of all foam cel ls | |||
Int_t CellFill(Int_t, PDEFoamCell*);// Allocates new empty cell and r eturn its index | Int_t CellFill(Int_t, PDEFoamCell*);// Allocates new empty cell and r eturn its index | |||
void Explore(PDEFoamCell *Cell); // Exploration of the new cell, d etermine <wt>, wtMax etc. | void Explore(PDEFoamCell *Cell); // Exploration of the new cell, d etermine <wt>, wtMax etc. | |||
void DTExplore(PDEFoamCell *Cell); // Exploration of the new cell ac cording to decision tree logic | ||||
void Varedu(Double_t [], Int_t&, Double_t&,Double_t&); // Determines the best edge, variace reduction | void Varedu(Double_t [], Int_t&, Double_t&,Double_t&); // Determines the best edge, variace reduction | |||
void MakeAlpha(); // Provides random point inside hyperre ctangle | void MakeAlpha(); // Provides random point inside hyperre ctangle | |||
void Grow(); // build up foam | void Grow(); // build up foam | |||
Long_t PeekMax(); // peek cell with max. driver integral | Long_t PeekMax(); // peek cell with max. driver integral | |||
Long_t PeekLast(); // peek last created cell | ||||
Int_t Divide(PDEFoamCell *); // Divide iCell into two daughters; iCe ll retained, taged as inactive | 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' | Double_t Eval(Double_t *xRand, Double_t &event_density); // evaluate distribution on point 'xRand' | |||
Float_t GetSeparation(Float_t s, Float_t b); // calculate separation | ||||
// ---------- Cell value access functions | // ---------- Cell value access functions | |||
// low level functions to access a certain cell value | // low level functions to access a certain cell value | |||
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' | 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 SetCellElement(PDEFoamCell *cell, UInt_t i, Double_t value); // set Element 'i' in cell 'cell' to value 'value' | |||
// helper functions to access cell data | // helper functions to access cell data | |||
Double_t GetCellValue(PDEFoamCell*, ECellValue); | Double_t GetCellValue(PDEFoamCell*, ECellValue); | |||
// specific function used during evaluation; determines, whether a ce ll value is undefined | // specific function used during evaluation; determines, whether a ce ll value is undefined | |||
Bool_t CellValueIsUndefined( PDEFoamCell* ); | Bool_t CellValueIsUndefined( PDEFoamCell* ); | |||
// finds cell according to given event variables | // finds cell according to given event variables | |||
PDEFoamCell* FindCell(std::vector<Float_t>); //! | PDEFoamCell* FindCell(std::vector<Float_t>&); //! | |||
std::vector<TMVA::PDEFoamCell*> FindCells(std::vector<Float_t>); //! | std::vector<TMVA::PDEFoamCell*> FindCells(std::vector<Float_t>&); //! | |||
// find cells, which fit a given event vector | // find cells, which fit a given event vector | |||
void FindCellsRecursive(std::vector<Float_t>, PDEFoamCell*, | void FindCellsRecursive(std::vector<Float_t>&, PDEFoamCell*, | |||
std::vector<PDEFoamCell*> &); | std::vector<PDEFoamCell*> &); | |||
// calculates the mean/ mpv target values for a given event 'tvals' | // calculates the mean/ mpv target values for a given event 'tvals' | |||
std::vector<Float_t> GetCellTargets( std::vector<Float_t> tvals, ETar getSelection ts ); | std::vector<Float_t> GetCellTargets( std::vector<Float_t> &tvals, ETa rgetSelection ts ); | |||
// get number of events in cell during foam build-up | // get number of events in cell during foam build-up | |||
Double_t GetBuildUpCellEvents(PDEFoamCell* cell); | Double_t GetBuildUpCellEvents(PDEFoamCell* cell); | |||
PDEFoam(const PDEFoam&); // Copy Constructor NOT USED | ||||
// ---------- Public functions ---------------------------------- | // ---------- Public functions ---------------------------------- | |||
public: | public: | |||
PDEFoam(); // Default constructor (used only by ROOT streamer) | PDEFoam(); // Default constructor (used only by ROOT streamer) | |||
PDEFoam(const TString&); // Principal user-defined constructor | PDEFoam(const TString&); // Principal user-defined constructor | |||
virtual ~PDEFoam(); // Default destructor | virtual ~PDEFoam(); // Default destructor | |||
PDEFoam(const PDEFoam&); // Copy Constructor NOT USED | ||||
// ---------- Foam creation functions | // ---------- Foam creation functions | |||
void Init(); // initialize PDEFoamDistr | void Init(); // initialize PDEFoamDistr | |||
void FillBinarySearchTree( const Event* ev, Bool_t NoNegWeights=kFALS E ); | void FillBinarySearchTree( const Event* ev, Bool_t NoNegWeights=kFALS E ); | |||
void Create(Bool_t CreateCellElements=false); // build-up foam | void Create(); // build-up foam | |||
// function to fill created cell with given value | // function to fill created cell with given value | |||
void FillFoamCells(const Event* ev, Bool_t NoNegWeights=kFALSE); | void FillFoamCells(const Event* ev, Bool_t NoNegWeights=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(); | |||
// init TObject pointer on cells | // init TObject pointer on cells | |||
void ResetCellElements(Bool_t allcells = false); | void ResetCellElements(Bool_t allcells = false); | |||
// ---------- Getters and Setters | // ---------- Getters and Setters | |||
void SetkDim(Int_t kDim); // Sets dimension of cubical space | void SetDim(Int_t kDim); // Sets dimension of cubical space | |||
void SetnCells(Long_t nCells){fNCells =nCells;} // Sets maximum numb er of cells | void SetnCells(Long_t nCells){fNCells =nCells;} // Sets maximum numb er of cells | |||
void SetnSampl(Long_t nSampl){fNSampl =nSampl;} // Sets no of MC eve nts in cell exploration | void SetnSampl(Long_t nSampl){fNSampl =nSampl;} // Sets no of MC eve nts in cell exploration | |||
void SetnBin(Int_t nBin){fNBin = nBin;} // Sets no of bins i n histogs in cell exploration | void SetnBin(Int_t nBin){fNBin = nBin;} // Sets no of bins i n histogs in cell exploration | |||
void SetEvPerBin(Int_t EvPerBin){fEvPerBin =EvPerBin;} // Sets max. n o. of effective events per bin | void SetEvPerBin(Int_t EvPerBin){fEvPerBin =EvPerBin;} // Sets max. n o. of effective events per bin | |||
void SetInhiDiv(Int_t, Int_t ); // Set inhibition of cell division al ong certain edge | 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 SetNElements(UInt_t numb){fNElements = numb;} // init every cell element (TVectorD*) | |||
void SetPDEFoamVolumeFraction(Double_t vfr){fVolFrac = vfr;} // set V | void SetVolumeFraction(Float_t vfr){fVolFrac = vfr;} // set VolFrac | |||
olFrac to PDEFoam | ||||
void SetVolumeFraction(Double_t); // set VolFrac to PDEFoamDistr | ||||
void SetFoamType(EFoamType ft); // set foam type | void SetFoamType(EFoamType ft); // set foam type | |||
void SetFillFoamWithOrigWeights(Bool_t new_val){fFillFoamWithOrigWeig | ||||
hts=new_val;} | ||||
void SetDTSeparation(EDTSeparation new_val){fDTSeparation=new_val;} | ||||
void SetPeekMax(Bool_t new_val){ fPeekMax = new_val; } | ||||
void SetSignalClass( Int_t cls ) { fSignalClass = cls; fDistr->Se | // coverity[ -tainted_data_return ] | |||
tSignalClass( cls ); } // TODO: intermediate solution to keep IsSignal() of | ||||
Event working. TODO: remove IsSignal() from Event | ||||
void SetBackgroundClass( Int_t cls ) { fBackgroundClass = cls; fDistr | ||||
->SetBackgroundClass( cls ); } // TODO: intermediate solution to keep IsSig | ||||
nal() of Event working. TODO: remove IsSignal() from Event | ||||
Int_t GetTotDim() const {return fDim; } // Get total dimension | Int_t GetTotDim() const {return fDim; } // Get total dimension | |||
TString GetFoamName() const {return fName; } // Get name of foam | TString GetFoamName() const {return fName; } // Get name of foam | |||
UInt_t GetNElements() const {return fNElements; } // returns number of elements, saved on every cell | 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 | Float_t GetVolumeFraction() const {return fVolFrac;} // get VolFrac from PDEFoam | |||
EFoamType GetFoamType() const {return fFoamType;}; // get foam t ype | EFoamType GetFoamType() const {return fFoamType;}; // get foam t ype | |||
UInt_t GetNActiveCells() const {return fNoAct;}; // returns numbe r of active cells | 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 GetNInActiveCells() const {return GetNCells()-GetNActiveCell s();}; // returns number of not active cells | |||
UInt_t GetNCells() const {return fNCells;}; // returns nu mber of cells | UInt_t GetNCells() const {return fNCells;}; // returns nu mber of cells | |||
PDEFoamCell* GetRootCell() const {return fCells[0];}; // get pointe r to root cell | PDEFoamCell* GetRootCell() const {return fCells[0];}; // get pointe r to root cell | |||
// Getters and Setters for user cut options | // 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; } | void SetNmin(UInt_t val) { fNmin=val; } | |||
UInt_t GetNmin() { return fNmin; } | UInt_t GetNmin() { return fNmin; } | |||
void SetRMSmin(Double_t val) { fRMSmin=val; } | Bool_t GetFillFoamWithOrigWeights() const { return fFillFoamWithOri | |||
Double_t GetRMSmin() { return fRMSmin; } | gWeights; } | |||
void SetMaxDepth(UInt_t maxdepth) { fMaxDepth = maxdepth; } | ||||
UInt_t GetMaxDepth() const { return fMaxDepth; } | ||||
// Getters and Setters for foam boundaries | // Getters and Setters for foam boundaries | |||
void SetXmin(Int_t idim, Double_t wmin); | void SetXmin(Int_t idim, Double_t wmin); | |||
void SetXmax(Int_t idim, Double_t wmax); | void SetXmax(Int_t idim, Double_t wmax); | |||
Double_t GetXmin(Int_t idim){return fXmin[idim];} | Double_t GetXmin(Int_t idim) const {return fXmin[idim];} | |||
Double_t GetXmax(Int_t idim){return fXmax[idim];} | Double_t GetXmax(Int_t idim) const {return fXmax[idim];} | |||
// Getters and Setters for variable names | // Getters and Setters for variable names | |||
void AddVariableName(const char *s) { AddVariableName(new TObjString( | void AddVariableName(const char *s) { AddVariableName(new TObjString( | |||
s)); }; | s)); } | |||
void AddVariableName(TObjString *s) { fVariableNames->Add(s); }; | void AddVariableName(TObjString *s) { fVariableNames->Add(s); } | |||
TObjString* GetVariableName(Int_t idx) {return dynamic_cast<TObjStrin | TObjString* GetVariableName(Int_t idx) {return dynamic_cast<TObjStrin | |||
g*>(fVariableNames->At(idx));}; | g*>(fVariableNames->At(idx));} | |||
// Delete the fDistr object, which contains the binary search | ||||
// tree | ||||
void DeleteBinarySearchTree(); | ||||
// ---------- Transformation functions for event variables into foam boundaries | // ---------- Transformation functions for event variables into foam boundaries | |||
// reason: foam allways has boundaries [0, 1] | // reason: foam allways has boundaries [0, 1] | |||
Float_t VarTransform(Int_t idim, Float_t x); // transform [xmin | Float_t VarTransform(Int_t idim, Float_t x) const; // transform [xmin | |||
, xmax] --> [0, 1] | , xmax] --> [0, 1] | |||
std::vector<Float_t> VarTransform(std::vector<Float_t> invec); | std::vector<Float_t> VarTransform(std::vector<Float_t> &invec) const; | |||
Float_t VarTransformInvers(Int_t idim, Float_t x); // transform [0, 1 | Float_t VarTransformInvers(Int_t idim, Float_t x) const; // transform | |||
] --> [xmin, xmax] | [0, 1] --> [xmin, xmax] | |||
std::vector<Float_t> VarTransformInvers(std::vector<Float_t> invec); | std::vector<Float_t> VarTransformInvers(std::vector<Float_t> &invec) | |||
const; | ||||
// ---------- Debug functions | // ---------- Debug functions | |||
void CheckAll(Int_t); // Checks correctness of the entire data s tructure in the FOAM object | void CheckAll(Int_t); // Checks correctness of the entire data s tructure in the FOAM object | |||
void PrintCell(Long_t iCell=0); // Print content of cell | ||||
void PrintCells(); // Prints content of all cells | void PrintCells(); // Prints content of all cells | |||
void CheckCells(Bool_t remove_empty_cells=false); // check all cells with respect to critical values | 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 RemoveEmptyCell(Int_t iCell); // removes iCell if its volume is zero | |||
void PrintCellElements(); // print all cells with its el ements | void PrintCellElements(); // print all cells with its el ements | |||
// Message logger | ||||
MsgLogger& Log() const { return *fLogger; } | ||||
// ---------- Foam output | // ---------- Foam output | |||
friend std::ostream& operator<< ( std::ostream& os, const PDEFoam& pd efoam ); | friend std::ostream& operator<< ( std::ostream& os, const PDEFoam& pd efoam ); | |||
friend std::istream& operator>> ( std::istream& istr, PDEFoam& pd efoam ); | friend std::istream& operator>> ( std::istream& istr, PDEFoam& pd efoam ); | |||
void ReadStream(istream &); // read foam from stream | void ReadStream(istream &); // read foam from stream | |||
void PrintStream(ostream &) const; // write foam from stream | void PrintStream(ostream &) const; // write foam from stream | |||
void ReadXML( void* parent ); // read foam variables from xml | void ReadXML( void* parent ); // read foam variables from xml | |||
void AddXMLTo( void* parent ); // write foam variables to xml | void AddXMLTo( void* parent ); // write foam variables to xml | |||
// ---------- Foam projection methods | // ---------- Foam projection methods | |||
// project foam to two-dimensional histogram | // project foam to two-dimensional histogram | |||
TH2D* Project2(Int_t idim1, Int_t idim2, const char *opt="nev", | TH2D* Project2(Int_t idim1, Int_t idim2, const char *opt="cell_value" | |||
const char *ker="kNone", UInt_t maxbins=0); | , | |||
const char *ker="kNone", UInt_t maxbins=50); | ||||
// helper function for Project2() | // helper function for Project2() | |||
Double_t GetProjectionCellValue( PDEFoamCell* cell, | Double_t GetProjectionCellValue( PDEFoamCell* cell, | |||
Int_t idim1, Int_t idim2, ECellValue cv ); | Int_t idim1, Int_t idim2, ECellValue cv ); | |||
// Project one-dimensional foam to a 1-dim histogram | // Project one-dimensional foam to a 1-dim histogram | |||
TH1D* Draw1Dim(const char *opt, Int_t nbin); | TH1D* Draw1Dim(const char *opt, Int_t nbin); | |||
// Generates C++ code (root macro) for drawing foam with boxes (only 2-dim!) | // Generates C++ code (root macro) for drawing foam with boxes (only 2-dim!) | |||
void RootPlot2dim( const TString& filename, std::string what, | void RootPlot2dim( const TString& filename, TString opt, | |||
Bool_t CreateCanvas = kTRUE, Bool_t colors = kTRUE , | Bool_t CreateCanvas = kTRUE, Bool_t colors = kTRUE , | |||
Bool_t log_colors = kFALSE ); | Bool_t log_colors = kFALSE ); | |||
// ---------- Foam evaluation functions | // ---------- Foam evaluation functions | |||
// get cell value for a given event | // get cell value for a given event | |||
Double_t GetCellValue(std::vector<Float_t>, ECellValue); | Double_t GetCellValue(std::vector<Float_t>&, ECellValue); | |||
// helper functions to access cell data with kernel | // helper functions to access cell data with kernel | |||
Double_t GetCellDiscr(std::vector<Float_t> xvec, EKernel kernel=kNone | Double_t GetCellDiscr(std::vector<Float_t> &xvec, EKernel kernel=kNon | |||
); | e); | |||
Double_t GetCellDensity(std::vector<Float_t> xvec, EKernel kernel=kNo | Double_t GetCellDensity(std::vector<Float_t> &xvec, EKernel kernel=kN | |||
ne); | one); | |||
// calc mean cell value of neighbor cells | // calc mean cell value of neighbor cells | |||
Double_t GetAverageNeighborsValue(std::vector<Float_t> txvec, ECellVa lue cv); | Double_t GetAverageNeighborsValue(std::vector<Float_t> &txvec, ECellV alue cv); | |||
// returns regression value (mono target regression) | // returns regression value (mono target regression) | |||
Double_t GetCellRegValue0(std::vector<Float_t>, EKernel kernel=kNone) ; | Double_t GetCellRegValue0(std::vector<Float_t>&, EKernel kernel=kNone ); | |||
// returns regression value i, given all variables (multi target regr ession) | // returns regression value i, given all variables (multi target regr ession) | |||
std::vector<Float_t> GetProjectedRegValue(std::vector<Float_t> vals, EKernel kernel=kNone, ETargetSelection ts=kMean); | std::vector<Float_t> GetProjectedRegValue(std::vector<Float_t> &vals, EKernel kernel=kNone, ETargetSelection ts=kMean); | |||
// ---------- ROOT class definition | // ---------- ROOT class definition | |||
ClassDef(PDEFoam,3) | ClassDef(PDEFoam,5) // Tree of PDEFoamCells | |||
}; // end of PDEFoam | }; // end of PDEFoam | |||
} // namespace TMVA | } // namespace TMVA | |||
// ---------- Inline functions | // ---------- Inline functions | |||
//_____________________________________________________________________ | //_____________________________________________________________________ | |||
inline Float_t TMVA::PDEFoam::VarTransform(Int_t idim, Float_t x) | inline Float_t TMVA::PDEFoam::VarTransform(Int_t idim, Float_t x) const | |||
{ | { | |||
// transform variable x from [xmin, xmax] --> [0, 1] | // transform variable x from [xmin, xmax] --> [0, 1] | |||
return (x-fXmin[idim])/(fXmax[idim]-fXmin[idim]); | return (x-fXmin[idim])/(fXmax[idim]-fXmin[idim]); | |||
} | } | |||
//_____________________________________________________________________ | //_____________________________________________________________________ | |||
inline std::vector<Float_t> TMVA::PDEFoam::VarTransform(std::vector<Float_t > invec) | inline std::vector<Float_t> TMVA::PDEFoam::VarTransform(std::vector<Float_t > &invec) const | |||
{ | { | |||
// transform vector invec from [xmin, xmax] --> [0, 1] | // transform vector invec from [xmin, xmax] --> [0, 1] | |||
std::vector<Float_t> outvec; | std::vector<Float_t> outvec; | |||
for(UInt_t i=0; i<invec.size(); i++) | for(UInt_t i=0; i<invec.size(); i++) | |||
outvec.push_back(VarTransform(i, invec.at(i))); | outvec.push_back(VarTransform(i, invec.at(i))); | |||
return outvec; | return outvec; | |||
} | } | |||
//_____________________________________________________________________ | //_____________________________________________________________________ | |||
inline Float_t TMVA::PDEFoam::VarTransformInvers(Int_t idim, Float_t x) | inline Float_t TMVA::PDEFoam::VarTransformInvers(Int_t idim, Float_t x) con st | |||
{ | { | |||
// transform variable x from [0, 1] --> [xmin, xmax] | // transform variable x from [0, 1] --> [xmin, xmax] | |||
return x*(fXmax[idim]-fXmin[idim]) + fXmin[idim]; | return x*(fXmax[idim]-fXmin[idim]) + fXmin[idim]; | |||
} | } | |||
//_____________________________________________________________________ | //_____________________________________________________________________ | |||
inline std::vector<Float_t> TMVA::PDEFoam::VarTransformInvers(std::vector<F loat_t> invec) | inline std::vector<Float_t> TMVA::PDEFoam::VarTransformInvers(std::vector<F loat_t> &invec) const | |||
{ | { | |||
// transform vector invec from [0, 1] --> [xmin, xmax] | // transform vector invec from [0, 1] --> [xmin, xmax] | |||
std::vector<Float_t> outvec; | std::vector<Float_t> outvec; | |||
for(UInt_t i=0; i<invec.size(); i++) | for(UInt_t i=0; i<invec.size(); i++) | |||
outvec.push_back(VarTransformInvers(i, invec.at(i))); | outvec.push_back(VarTransformInvers(i, invec.at(i))); | |||
return outvec; | return outvec; | |||
} | } | |||
#endif | #endif | |||
End of changes. 47 change blocks. | ||||
73 lines changed or deleted | 89 lines changed or added | |||
PDEFoamCell.h | PDEFoamCell.h | |||
---|---|---|---|---|
skipping to change at line 105 | skipping to change at line 105 | |||
Int_t GetStat() const { return fStatus;} // Get Status | Int_t GetStat() const { return fStatus;} // Get Status | |||
void SetStat(Int_t Stat){ fStatus=Stat;} // Set Status | void SetStat(Int_t Stat){ fStatus=Stat;} // Set Status | |||
PDEFoamCell* GetPare() const { return (PDEFoamCell*) fParent.GetObjec t(); } // Get Pointer to parent cell | 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* 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 | 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 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 SetDau1(PDEFoamCell* Daug){ fDaught1 = Daug;} // Set point er to 2-nd daughter | |||
void SetPare(PDEFoamCell* Pare){ fParent = Pare;} // Set point er to parent | void SetPare(PDEFoamCell* Pare){ fParent = Pare;} // Set point er to parent | |||
void SetSerial(Int_t Serial){ fSerial=Serial;} // Set serial number | void SetSerial(Int_t Serial){ fSerial=Serial;} // Set serial number | |||
Int_t GetSerial() const { return fSerial;} // Get serial number | Int_t GetSerial() const { return fSerial;} // Get serial number | |||
UInt_t GetDepth(); // Get depth i n binary tree | ||||
//--- other --- | //--- other --- | |||
void Print(Option_t *option) const ; // Prints cell content | void Print(Option_t *option) const ; // Prints cell content | |||
//--- getter and setter for user variable --- | //--- getter and setter for user variable --- | |||
void SetElement(TObject* fobj){ fElement = fobj; } // Set user va riable | void SetElement(TObject* fobj){ fElement = fobj; } // Set user va riable | |||
TObject* GetElement() const { return fElement; } // Get pointer to user varibale | TObject* GetElement() const { return fElement; } // Get pointer to user varibale | |||
///////////////////////////////////////////////////////////////////// /////// | ///////////////////////////////////////////////////////////////////// /////// | |||
ClassDef(PDEFoamCell,1) //Single cell of FOAM | ClassDef(PDEFoamCell,1) //Single cell of FOAM | |||
}; // end of PDEFoamCell | }; // end of PDEFoamCell | |||
} // namespace TMVA | } // namespace TMVA | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
PDEFoamDistr.h | PDEFoamDistr.h | |||
---|---|---|---|---|
skipping to change at line 49 | skipping to change at line 49 | |||
#ifndef ROOT_TH2D | #ifndef ROOT_TH2D | |||
#include "TH2D.h" | #include "TH2D.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_BinarySearchTree | #ifndef ROOT_TMVA_BinarySearchTree | |||
#include "TMVA/BinarySearchTree.h" | #include "TMVA/BinarySearchTree.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Event | #ifndef ROOT_TMVA_Event | |||
#include "TMVA/Event.h" | #include "TMVA/Event.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_PDEFoam | ||||
#include "TMVA/PDEFoam.h" | ||||
#endif | ||||
#ifndef ROOT_TMVA_PDEFoamCell | #ifndef ROOT_TMVA_PDEFoamCell | |||
#include "TMVA/PDEFoamCell.h" | #include "TMVA/PDEFoamCell.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_MsgLogger | ||||
#include "TMVA/MsgLogger.h" | ||||
#endif | ||||
namespace TMVA { | namespace TMVA { | |||
enum EFoamType { kSeparate, kDiscr, kMonoTarget, kMultiTarget }; | ||||
// options for filling density (used in Density() to build up foam) | // options for filling density (used in Density() to build up foam) | |||
// kEVENT_DENSITY : use event density for foam buildup | // kEVENT_DENSITY : use event density for foam buildup | |||
// kDISCRIMINATOR : use N_sig/(N_sig + N_bg) for foam buildup | // kDISCRIMINATOR : use N_sig/(N_sig + N_bg) for foam buildup | |||
// kTARGET : use GetTarget(0) for foam build up | // kTARGET : use GetTarget(0) for foam build up | |||
enum TDensityCalc { kEVENT_DENSITY, kDISCRIMINATOR, kTARGET }; | enum TDensityCalc { kEVENT_DENSITY, kDISCRIMINATOR, kTARGET }; | |||
} | } | |||
namespace TMVA { | namespace TMVA { | |||
// class definition of underlying density | // class definition of underlying density | |||
class PDEFoamDistr : public ::TObject { | class PDEFoamDistr : public ::TObject { | |||
private: | private: | |||
Int_t fDim; // number of dimensions | const PDEFoam *fPDEFoam; // PDEFoam to refer to | |||
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 | BinarySearchTree *fBst; // Binary tree to find events within a volu me | |||
TDensityCalc fDensityCalc;// method of density calculation | TDensityCalc fDensityCalc;// method of density calculation | |||
protected: | protected: | |||
UInt_t fSignalClass; // TODO: intermediate solution to keep IsSi | ||||
gnal() 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; } | |||
public: | public: | |||
PDEFoamDistr(); | PDEFoamDistr(); | |||
PDEFoamDistr(const PDEFoamDistr&); | PDEFoamDistr(const PDEFoamDistr&); | |||
virtual ~PDEFoamDistr(); | virtual ~PDEFoamDistr(); | |||
// 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); | ||||
// 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]; | ||||
} | ||||
// density build-up functions | // density build-up functions | |||
void Initialize(Int_t ndim = 2); | void Initialize(); // create and initialize binary search tree | |||
void FillBinarySearchTree( const Event* ev, EFoamType ft, Bool_t NoNe gWeights=kFALSE ); | void FillBinarySearchTree( const Event* ev, EFoamType ft, Bool_t NoNe gWeights=kFALSE ); | |||
// main function used by PDEFoam | // main function used by PDEFoam | |||
// returns density at a given point by range searching in BST | // returns density at a given point by range searching in BST | |||
Double_t Density(Double_t *Xarg, Double_t &event_density); | Double_t Density(Double_t *Xarg, Double_t &event_density); | |||
// Return fDim histograms with signal and bg events | ||||
void FillHist(PDEFoamCell* cell, std::vector<TH1F*>&, std::vector<TH1 | ||||
F*>&, | ||||
std::vector<TH1F*>&, std::vector<TH1F*>&); | ||||
// Getter and setter for the fPDEFoam pointer | ||||
void SetPDEFoam(const PDEFoam *foam){ fPDEFoam = foam; } | ||||
const PDEFoam* GetPDEFoam() const { return fPDEFoam; }; | ||||
// Getters and setters for foam filling method | // Getters and setters for foam filling method | |||
void SetDensityCalc( TDensityCalc dc ){ fDensityCalc = dc; }; | void SetDensityCalc( TDensityCalc dc ){ fDensityCalc = dc; }; | |||
Bool_t FillDiscriminator(){ return fDensityCalc == kDISCRIMINATOR; } | Bool_t FillDiscriminator(){ return fDensityCalc == kDISCRIMINATOR; } | |||
Bool_t FillTarget0() { return fDensityCalc == kTARGET; } | Bool_t FillTarget0() { return fDensityCalc == kTARGET; } | |||
Bool_t FillEventDensity() { return fDensityCalc == kEVENT_DENSITY; } | Bool_t FillEventDensity() { return fDensityCalc == kEVENT_DENSITY; } | |||
void SetSignalClass( Int_t cls ) { fSignalClass = cls; } // TODO | ClassDef(PDEFoamDistr,3) //Class for Event density | |||
: 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 | ||||
ClassDef(PDEFoamDistr,2) //Class for Event density | ||||
}; //end of PDEFoamDistr | }; //end of PDEFoamDistr | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif | #endif | |||
End of changes. 9 change blocks. | ||||
47 lines changed or deleted | 18 lines changed or added | |||
PDEFoamVect.h | PDEFoamVect.h | |||
---|---|---|---|---|
skipping to change at line 34 | skipping to change at line 34 | |||
* (http://tmva.sourceforge.net/LICENSE) * | * (http://tmva.sourceforge.net/LICENSE) * | |||
************************************************************************** ********/ | ************************************************************************** ********/ | |||
#ifndef ROOT_TMVA_PDEFoamVect | #ifndef ROOT_TMVA_PDEFoamVect | |||
#define ROOT_TMVA_PDEFoamVect | #define ROOT_TMVA_PDEFoamVect | |||
#ifndef ROOT_TObject | #ifndef ROOT_TObject | |||
#include "TObject.h" | #include "TObject.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_MsgLogger | ||||
#include "TMVA/MsgLogger.h" | ||||
#endif | ||||
namespace TMVA { | namespace TMVA { | |||
class PDEFoamVect : public TObject { | class PDEFoamVect : public TObject { | |||
private: | private: | |||
Int_t fDim; // Dimension | Int_t fDim; // Dimension | |||
Double_t *fCoords; // [fDim] Coordinates | Double_t *fCoords; // [fDim] Coordinates | |||
protected: | ||||
static MsgLogger* fgLogger; //! message logger, s | ||||
tatic because there is a huge number of vectors... | ||||
MsgLogger& Log() const { return *fgLogger; } | ||||
public: | public: | |||
// constructor | // constructor | |||
PDEFoamVect(); // Constructor | PDEFoamVect(); // Constructor | |||
PDEFoamVect(Int_t); // USER Constructor | PDEFoamVect(Int_t); // USER Constructor | |||
PDEFoamVect(const PDEFoamVect &); // Copy constructor | PDEFoamVect(const PDEFoamVect &); // Copy constructor | |||
virtual ~PDEFoamVect(); // Destructor | virtual ~PDEFoamVect(); // Destructor | |||
///////////////////////////////////////////////////////////////////// ///////// | ///////////////////////////////////////////////////////////////////// ///////// | |||
// Overloading operators // | // Overloading operators // | |||
///////////////////////////////////////////////////////////////////// ///////// | ///////////////////////////////////////////////////////////////////// ///////// | |||
End of changes. 2 change blocks. | ||||
9 lines changed or deleted | 0 lines changed or added | |||
PdfFuncMathCore.h | PdfFuncMathCore.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: PdfFuncMathCore.h 34095 2010-06-24 07:31:19Z mone ta $ | // @(#)root/mathcore:$Id: PdfFuncMathCore.h 37441 2010-12-09 16:27:54Z mone ta $ | |||
// Authors: Andras Zsenei & Lorenzo Moneta 06/2005 | // Authors: Andras Zsenei & Lorenzo Moneta 06/2005 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2005 , LCG ROOT MathLib Team * | * Copyright (c) 2005 , LCG ROOT MathLib Team * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
/** | /** | |||
skipping to change at line 99 | skipping to change at line 99 | |||
Mathworld</A>. | Mathworld</A>. | |||
@ingroup PdfFunc | @ingroup PdfFunc | |||
*/ | */ | |||
double binomial_pdf(unsigned int k, double p, unsigned int n); | double binomial_pdf(unsigned int k, double p, unsigned int n); | |||
/** | /** | |||
Probability density function of the negative binomial distribution. | ||||
\f[ p(k) = \frac{(k+n-1)!}{k! (n-1)!} p^{n} (1-p)^{k} \f] | ||||
For detailed description see | ||||
<A HREF="http://mathworld.wolfram.com/NegativeBinomialDistribution.html"> | ||||
Mathworld</A> (where $k \to x$ and $n \to r$). | ||||
The distribution in <A HREF="http://en.wikipedia.org/wiki/Negative_binomi | ||||
al_distribution"> | ||||
Wikipedia</A> is defined with a $p$ corresponding to $1-p$ in this case. | ||||
@ingroup PdfFunc | ||||
*/ | ||||
double negative_binomial_pdf(unsigned int k, double p, double n); | ||||
/** | ||||
Probability density function of Breit-Wigner distribution, which is simil ar, just | Probability density function of Breit-Wigner distribution, which is simil ar, just | |||
a different definition of the parameters, to the Cauchy distribution | a different definition of the parameters, to the Cauchy distribution | |||
(see #cauchy_pdf ) | (see #cauchy_pdf ) | |||
\f[ p(x) = \frac{1}{\pi} \frac{\frac{1}{2} \Gamma}{x^2 + (\frac{1}{2} \Ga mma)^2} \f] | \f[ p(x) = \frac{1}{\pi} \frac{\frac{1}{2} \Gamma}{x^2 + (\frac{1}{2} \Ga mma)^2} \f] | |||
@ingroup PdfFunc | @ingroup PdfFunc | |||
*/ | */ | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 20 lines changed or added | |||
PoissonLikelihoodFCN.h | PoissonLikelihoodFCN.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: PoissonLikelihoodFCN.h 32508 2010-03-09 10:51:11Z rdm $ | // @(#)root/mathcore:$Id: PoissonLikelihoodFCN.h 37232 2010-12-03 18:09:43Z 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 100 | skipping to change at line 100 | |||
public: | public: | |||
/// clone the function (need to return Base for Windows) | /// clone the function (need to return Base for Windows) | |||
virtual BaseFunction * Clone() const { return new PoissonLikelihoodFCN( fData,fFunc); } | virtual BaseFunction * Clone() const { return new PoissonLikelihoodFCN( fData,fFunc); } | |||
// effective points used in the fit | // effective points used in the fit | |||
virtual unsigned int NFitPoints() const { return fNEffPoints; } | virtual unsigned int NFitPoints() const { return fNEffPoints; } | |||
/// i-th likelihood element and its gradient | /// i-th likelihood element and its gradient | |||
virtual double DataElement(const double * x, unsigned int i, double * g) const { | virtual double DataElement(const double * x, unsigned int i, double * g) const { | |||
if (i==0) this->UpdateNCalls(); | ||||
return FitUtil::EvaluatePoissonBinPdf(fFunc, fData, x, i, g); | return FitUtil::EvaluatePoissonBinPdf(fFunc, fData, x, i, g); | |||
} | } | |||
/// evaluate gradient | /// evaluate gradient | |||
virtual void Gradient(const double *x, double *g) const { | virtual void Gradient(const double *x, double *g) const { | |||
// evaluate the chi2 gradient | // evaluate the chi2 gradient | |||
FitUtil::EvaluatePoissonLogLGradient(fFunc, fData, x, g ); | FitUtil::EvaluatePoissonLogLGradient(fFunc, fData, x, g ); | |||
} | } | |||
/// get type of fit method function | /// get type of fit method function | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
Polynomial.h | Polynomial.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: Polynomial.h 32630 2010-03-17 09:59:26Z moneta $ | // @(#)root/mathmore:$Id: Polynomial.h 37160 2010-12-01 21:52:04Z moneta $ | |||
// Authors: L. Moneta, A. Zsenei 08/2005 | // Authors: 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 66 | skipping to change at line 66 | |||
Implements both the Parameteric function interface and the gradient in terface | Implements both the Parameteric function interface and the gradient in terface | |||
since it provides the analytical gradient with respect to x | since it provides the analytical gradient with respect to x | |||
@ingroup ParamFunc | @ingroup ParamFunc | |||
*/ | */ | |||
class Polynomial : public ParamFunction<IParamGradFunction>, | class Polynomial : public ParamFunction<IParamGradFunction>, | |||
public IGradientOneDim | public IGradientOneDim | |||
{ | { | |||
typedef ParamFunction<IParamGradFunction> ParFunc; | ||||
public: | public: | |||
typedef ParamFunction<IParamGradFunction> ParFunc; | ||||
/** | /** | |||
Construct a Polynomial function of order n. | Construct a Polynomial function of order n. | |||
The number of Parameters is n+1. | The number of Parameters is n+1. | |||
*/ | */ | |||
Polynomial(unsigned int n = 0); | Polynomial(unsigned int n = 0); | |||
/** | /** | |||
Construct a Polynomial of degree 1 : a*x + b | Construct a Polynomial of degree 1 : a*x + b | |||
*/ | */ | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 2 lines changed or added | |||
ProbFuncMathCore.h | ProbFuncMathCore.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: ProbFuncMathCore.h 34095 2010-06-24 07:31:19Z mon eta $ | // @(#)root/mathcore:$Id: ProbFuncMathCore.h 37441 2010-12-09 16:27:54Z mon eta $ | |||
// Authors: L. Moneta, A. Zsenei 06/2005 | // Authors: L. Moneta, A. Zsenei 06/2005 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2005 , LCG ROOT MathLib Team * | * Copyright (c) 2005 , LCG ROOT MathLib Team * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
#if defined(__CINT__) && !defined(__MAKECINT__) | #if defined(__CINT__) && !defined(__MAKECINT__) | |||
skipping to change at line 522 | skipping to change at line 522 | |||
Cumulative distribution function of the Binomial distribution | Cumulative distribution function of the Binomial distribution | |||
Lower tail of the integral of the #binomial_pdf | Lower tail of the integral of the #binomial_pdf | |||
@ingroup ProbFunc | @ingroup ProbFunc | |||
*/ | */ | |||
double binomial_cdf(unsigned int k, double p, unsigned int n); | double binomial_cdf(unsigned int k, double p, unsigned int n); | |||
/** | ||||
Complement of the cumulative distribution function of the Negative Binom | ||||
ial distribution. | ||||
Upper tail of the integral of the #negative_binomial_pdf | ||||
@ingroup ProbFunc | ||||
*/ | ||||
double negative_binomial_cdf_c(unsigned int k, double p, double n); | ||||
/** | ||||
Cumulative distribution function of the Negative Binomial distribution | ||||
Lower tail of the integral of the #negative_binomial_pdf | ||||
@ingroup ProbFunc | ||||
*/ | ||||
double negative_binomial_cdf(unsigned int k, double p, double n); | ||||
#ifdef HAVE_OLD_STAT_FUNC | #ifdef HAVE_OLD_STAT_FUNC | |||
/** @name Backward compatible MathCore CDF functions */ | /** @name Backward compatible MathCore CDF functions */ | |||
inline double breitwigner_prob(double x, double gamma, double x0 = 0) { | inline double breitwigner_prob(double x, double gamma, double x0 = 0) { | |||
return breitwigner_cdf_c(x,gamma,x0); | return breitwigner_cdf_c(x,gamma,x0); | |||
} | } | |||
inline double breitwigner_quant(double x, double gamma, double x0 = 0) { | inline double breitwigner_quant(double x, double gamma, double x0 = 0) { | |||
return breitwigner_cdf(x,gamma,x0); | return breitwigner_cdf(x,gamma,x0); | |||
} | } | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 24 lines changed or added | |||
ProfileLikelihoodTestStat.h | ProfileLikelihoodTestStat.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: ProfileLikelihoodTestStat.h 34264 2010-07-01 09:1 3:18Z moneta $ | // @(#)root/roostats:$Id: ProfileLikelihoodTestStat.h 36602 2010-11-11 16:5 2:13Z 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 43 | skipping to change at line 43 | |||
#endif | #endif | |||
#include <vector> | #include <vector> | |||
#include "RooStats/RooStatsUtils.h" | #include "RooStats/RooStatsUtils.h" | |||
//#include "RooStats/DistributionCreator.h" | //#include "RooStats/DistributionCreator.h" | |||
#include "RooStats/SamplingDistribution.h" | #include "RooStats/SamplingDistribution.h" | |||
#include "RooStats/TestStatistic.h" | #include "RooStats/TestStatistic.h" | |||
#include "RooStats/RooStatsUtils.h" | ||||
#include "RooRealVar.h" | #include "RooRealVar.h" | |||
#include "RooProfileLL.h" | #include "RooProfileLL.h" | |||
#include "RooNLLVar.h" | #include "RooNLLVar.h" | |||
#include "RooMinuit.h" | #include "RooMinuit.h" | |||
namespace RooStats { | namespace RooStats { | |||
class ProfileLikelihoodTestStat : public TestStatistic{ | class ProfileLikelihoodTestStat : public TestStatistic{ | |||
public: | public: | |||
ProfileLikelihoodTestStat() { | ||||
// Proof constructor. Do not use. | ||||
fPdf = 0; | ||||
fProfile = 0; | ||||
fNll = 0; | ||||
fCachedBestFitParams = 0; | ||||
fLastData = 0; | ||||
} | ||||
ProfileLikelihoodTestStat(RooAbsPdf& pdf) { | ProfileLikelihoodTestStat(RooAbsPdf& pdf) { | |||
fPdf = &pdf; | fPdf = &pdf; | |||
fProfile = 0; | fProfile = 0; | |||
fNll = 0; | fNll = 0; | |||
fCachedBestFitParams = 0; | fCachedBestFitParams = 0; | |||
fLastData = 0; | fLastData = 0; | |||
} | } | |||
virtual ~ProfileLikelihoodTestStat() { | virtual ~ProfileLikelihoodTestStat() { | |||
// delete fRand; | // delete fRand; | |||
// delete fTestStatistic; | // delete fTestStatistic; | |||
if(fProfile) delete fProfile; | if(fProfile) delete fProfile; | |||
if(fNll) delete fNll; | if(fNll) delete fNll; | |||
if(fCachedBestFitParams) delete fCachedBestFitParams; | if(fCachedBestFitParams) delete fCachedBestFitParams; | |||
} | } | |||
// Main interface to evaluate the test statistic on a dataset | // Main interface to evaluate the test statistic on a dataset | |||
virtual Double_t Evaluate(RooAbsData& data, RooArgSet& paramsOfInteres t) { | virtual Double_t Evaluate(RooAbsData& data, RooArgSet& paramsOfInteres t) { | |||
if (!&data) { | if (!&data) { | |||
cout << "problem with data" << endl; | cout << "problem with data" << endl; | |||
return 0 ; | ||||
} | } | |||
RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBelo w(); | RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBelo w(); | |||
RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); | RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); | |||
// simple | // simple | |||
RooAbsReal* nll = fPdf->createNLL(data, RooFit::CloneData(kFALSE)); | RooAbsReal* nll = fPdf->createNLL(data, RooFit::CloneData(kFALSE)); | |||
RooAbsReal* profile = nll->createProfile(paramsOfInterest); | RooAbsReal* profile = nll->createProfile(paramsOfInterest); | |||
// make sure we set the variables attached to this nll | ||||
RooArgSet* attachedSet = nll->getVariables(); | ||||
*attachedSet = paramsOfInterest; | ||||
double ret = profile->getVal(); | double ret = profile->getVal(); | |||
// paramsOfInterest.Print("v"); | // paramsOfInterest.Print("v"); | |||
delete attachedSet; | ||||
delete nll; | delete nll; | |||
nll = 0; | nll = 0; | |||
delete profile; | delete profile; | |||
RooMsgService::instance().setGlobalKillBelow(msglevel); | RooMsgService::instance().setGlobalKillBelow(msglevel); | |||
// cout << "ret = " << ret << endl; | // cout << "ret = " << ret << endl; | |||
// return here and forget about the following code | ||||
return ret; | return ret; | |||
// OLD version with some handling for local minima | // OLD version with some handling for local minima | |||
// (not used right now) | ||||
bool needToRebuild = true; // try to avoid rebuilding if possible | bool needToRebuild = true; // try to avoid rebuilding if possible | |||
if (fLastData == &data) // simple pointer comparison for now (note NLL makes COPY of data) | if (fLastData == &data) // simple pointer comparison for now (note NLL makes COPY of data) | |||
needToRebuild = false; | needToRebuild = false; | |||
else fLastData = &data; // keep a copy of pointer to original data | else fLastData = &data; // keep a copy of pointer to original data | |||
// pointer comparison causing problems. See multiple datasets wit h same value of pointer | // pointer comparison causing problems. See multiple datasets wit h same value of pointer | |||
// but actually a new dataset | // but actually a new dataset | |||
needToRebuild = true; | needToRebuild = true; | |||
End of changes. 8 change blocks. | ||||
1 lines changed or deleted | 19 lines changed or added | |||
Property.h | Property.h | |||
---|---|---|---|---|
skipping to change at line 38 | skipping to change at line 38 | |||
#define G__BIT_ISABSTRACT 0x00000040 | #define G__BIT_ISABSTRACT 0x00000040 | |||
#define G__BIT_ISVIRTUAL 0x00000080 | #define G__BIT_ISVIRTUAL 0x00000080 | |||
#define G__BIT_ISPUREVIRTUAL 0x00000100 | #define G__BIT_ISPUREVIRTUAL 0x00000100 | |||
#define G__BIT_ISPUBLIC 0x00000200 | #define G__BIT_ISPUBLIC 0x00000200 | |||
#define G__BIT_ISPROTECTED 0x00000400 | #define G__BIT_ISPROTECTED 0x00000400 | |||
#define G__BIT_ISPRIVATE 0x00000800 | #define G__BIT_ISPRIVATE 0x00000800 | |||
#define G__BIT_ISPOINTER 0x00001000 | #define G__BIT_ISPOINTER 0x00001000 | |||
#define G__BIT_ISARRAY 0x00002000 | #define G__BIT_ISARRAY 0x00002000 | |||
#define G__BIT_ISSTATIC 0x00004000 | #define G__BIT_ISSTATIC 0x00004000 | |||
#define G__BIT_ISDEFAULT 0x00008000 | #define G__BIT_ISDEFAULT 0x00008000 | |||
#define G__BIT_ISREFERENCE 0x00010000 | #define G__BIT_ISREFERENCE 0x00010000 | |||
#define G__BIT_ISDIRECTINHERIT 0x00020000 | #define G__BIT_ISDIRECTINHERIT 0x00020000 | |||
#define G__BIT_ISCCOMPILED 0x00040000 | #define G__BIT_ISCCOMPILED 0x00040000 | |||
#define G__BIT_ISCPPCOMPILED 0x00080000 | #define G__BIT_ISCPPCOMPILED 0x00080000 | |||
#define G__BIT_ISCOMPILED 0x000c0000 | #define G__BIT_ISCOMPILED 0x000c0000 | |||
#define G__BIT_ISBYTECODE 0x02000000 | #define G__BIT_ISBYTECODE 0x02000000 | |||
#define G__BIT_ISCONSTANT 0x00100000 | #define G__BIT_ISCONSTANT 0x00100000 | |||
#define G__BIT_ISVIRTUALBASE 0x00200000 | #define G__BIT_ISVIRTUALBASE 0x00200000 | |||
#define G__BIT_ISPCONSTANT 0x00400000 | #define G__BIT_ISPCONSTANT 0x00400000 | |||
#define G__BIT_ISMETHCONSTANT 0x10000000 // method is const | #define G__BIT_ISMETHCONSTANT 0x10000000 // method is const | |||
#define G__BIT_ISGLOBALVAR 0x00800000 | #define G__BIT_ISGLOBALVAR 0x00800000 | |||
#define G__BIT_ISLOCALVAR 0x01000000 | #define G__BIT_ISLOCALVAR 0x01000000 | |||
#define G__BIT_ISEXPLICIT 0x04000000 | #define G__BIT_ISEXPLICIT 0x04000000 | |||
#define G__BIT_ISNAMESPACE 0x08000000 | #define G__BIT_ISNAMESPACE 0x08000000 | |||
#define G__BIT_ISUSINGVARIABLE 0x20000000 | ||||
/* ECF enhancement ClassProperty() */ | /* ECF enhancement ClassProperty() */ | |||
#define G__CLS_VALID 0x00000001 | #define G__CLS_VALID 0x00000001 | |||
#define G__CLS_HASEXPLICITCTOR 0x00000010 | #define G__CLS_HASEXPLICITCTOR 0x00000010 | |||
#define G__CLS_HASIMPLICITCTOR 0x00000020 | #define G__CLS_HASIMPLICITCTOR 0x00000020 | |||
#define G__CLS_HASCTOR 0x00000030 | #define G__CLS_HASCTOR 0x00000030 | |||
#define G__CLS_HASDEFAULTCTOR 0x00000040 | #define G__CLS_HASDEFAULTCTOR 0x00000040 | |||
#define G__CLS_HASASSIGNOPR 0x00000080 | #define G__CLS_HASASSIGNOPR 0x00000080 | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 3 lines changed or added | |||
QuantFuncMathCore.h | QuantFuncMathCore.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: QuantFuncMathCore.h 34095 2010-06-24 07:31:19Z mo neta $ | // @(#)root/mathcore:$Id: QuantFuncMathCore.h 36536 2010-11-08 15:03:24Z mo neta $ | |||
// Authors: L. Moneta, A. Zsenei 08/2005 | // Authors: L. Moneta, A. Zsenei 08/2005 | |||
// Authors: Andras Zsenei & Lorenzo Moneta 08/2005 | // Authors: Andras Zsenei & Lorenzo Moneta 08/2005 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2005 , LCG ROOT MathLib Team * | * Copyright (c) 2005 , LCG ROOT MathLib Team * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
skipping to change at line 26 | skipping to change at line 26 | |||
#include "../lib/libMathCore.so" | #include "../lib/libMathCore.so" | |||
#else | #else | |||
#include "../bin/libMathCore.dll" | #include "../bin/libMathCore.dll" | |||
#endif | #endif | |||
#else | #else | |||
#ifndef ROOT_Math_QuantFuncMathCore | #ifndef ROOT_Math_QuantFuncMathCore | |||
#define ROOT_Math_QuantFuncMathCore | #define ROOT_Math_QuantFuncMathCore | |||
// required for R__HAS_MATHMORE | ||||
#ifndef ROOT_RConfigure | ||||
#include "RConfigure.h" | ||||
#endif | ||||
namespace ROOT { | namespace ROOT { | |||
namespace Math { | namespace Math { | |||
/** @defgroup QuantFunc Quantile Functions | /** @defgroup QuantFunc Quantile Functions | |||
* @ingroup StatFunc | * @ingroup StatFunc | |||
* | * | |||
* Inverse functions of the cumulative distribution functions | * Inverse functions of the cumulative distribution functions | |||
* and the inverse of the complement of the cumulative distribution func tions | * and the inverse of the complement of the cumulative distribution func tions | |||
* for various distributions. | * for various distributions. | |||
* The functions with the extension <em>_quantile</em> calculate the | * The functions with the extension <em>_quantile</em> calculate the | |||
skipping to change at line 180 | skipping to change at line 175 | |||
<A HREF="http://mathworld.wolfram.com/Chi-SquaredDistribution.html"> | <A HREF="http://mathworld.wolfram.com/Chi-SquaredDistribution.html"> | |||
Mathworld</A>. It is implemented using the inverse of the incomplete complement gamma function, using | Mathworld</A>. It is implemented using the inverse of the incomplete complement gamma function, using | |||
the function igami from <A HREF="http://www.netlib.org/cephes">Cephes </A>. | the function igami from <A HREF="http://www.netlib.org/cephes">Cephes </A>. | |||
@ingroup QuantFunc | @ingroup QuantFunc | |||
*/ | */ | |||
double chisquared_quantile_c(double z, double r); | double chisquared_quantile_c(double z, double r); | |||
#ifndef R__HAS_MATHMORE | ||||
/** | /** | |||
Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | |||
function of the lower tail of the \f$\chi^2\f$ distribution | function of the lower tail of the \f$\chi^2\f$ distribution | |||
with \f$r\f$ degrees of freedom (#chisquared_cdf). For detailed descr iption see | with \f$r\f$ degrees of freedom (#chisquared_cdf). For detailed descr iption see | |||
<A HREF="http://mathworld.wolfram.com/Chi-SquaredDistribution.html"> | <A HREF="http://mathworld.wolfram.com/Chi-SquaredDistribution.html"> | |||
Mathworld</A>. | Mathworld</A>. | |||
It is implemented using chisquared_quantile_c, therefore is not very precise for small z. | It is implemented using chisquared_quantile_c, therefore is not very precise for small z. | |||
It is reccomended to use the MathMore function implemented using GSL | It is reccomended to use the MathMore function (ROOT::MathMore::chisq uared_quantile )implemented using GSL | |||
@ingroup QuantFunc_def_in_MathMore | @ingroup QuantFunc | |||
*/ | */ | |||
double chisquared_quantile(double z, double r); | double chisquared_quantile(double z, double r); | |||
#endif | ||||
/** | /** | |||
Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | |||
function of the upper tail of the exponential distribution | function of the upper tail of the exponential distribution | |||
(#exponential_cdf_c). For detailed description see | (#exponential_cdf_c). For detailed description see | |||
<A HREF="http://mathworld.wolfram.com/ExponentialDistribution.html"> | <A HREF="http://mathworld.wolfram.com/ExponentialDistribution.html"> | |||
Mathworld</A>. | Mathworld</A>. | |||
@ingroup QuantFunc | @ingroup QuantFunc | |||
skipping to change at line 275 | skipping to change at line 266 | |||
<A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_19.html#SEC30 0">GSL</A>. | <A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_19.html#SEC30 0">GSL</A>. | |||
It is implemented using the function igami taken | It is implemented using the function igami taken | |||
from <A HREF="http://www.netlib.org/cephes">Cephes</A>. | from <A HREF="http://www.netlib.org/cephes">Cephes</A>. | |||
@ingroup QuantFunc | @ingroup QuantFunc | |||
*/ | */ | |||
double gamma_quantile_c(double z, double alpha, double theta); | double gamma_quantile_c(double z, double alpha, double theta); | |||
#ifndef R__HAS_MATHMORE | ||||
/** | /** | |||
Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | |||
function of the lower tail of the gamma distribution | function of the lower tail of the gamma distribution | |||
(#gamma_cdf). For detailed description see | (#gamma_cdf). For detailed description see | |||
<A HREF="http://mathworld.wolfram.com/GammaDistribution.html"> | <A HREF="http://mathworld.wolfram.com/GammaDistribution.html"> | |||
Mathworld</A>. | Mathworld</A>. | |||
It is implemented using chisquared_quantile_c, therefore is not very precise for small z. | It is implemented using chisquared_quantile_c, therefore is not very precise for small z. | |||
It is reccomended to use the MathMore function implemented using GSL | For this special cases it is reccomended to use the MathMore function | |||
ROOT::MathMore::gamma_quantile | ||||
implemented using GSL | ||||
@ingroup QuantFunc_def_in_MathMore | @ingroup QuantFunc | |||
*/ | */ | |||
double gamma_quantile(double z, double alpha, double theta); | double gamma_quantile(double z, double alpha, double theta); | |||
#endif | ||||
/** | /** | |||
Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | |||
function of the upper tail of the normal (Gaussian) distribution | function of the upper tail of the normal (Gaussian) distribution | |||
(#gaussian_cdf_c). For detailed description see | (#gaussian_cdf_c). For detailed description see | |||
<A HREF="http://mathworld.wolfram.com/NormalDistribution.html"> | <A HREF="http://mathworld.wolfram.com/NormalDistribution.html"> | |||
Mathworld</A>. It can also be evaluated using #normal_quantile_c whic h will | Mathworld</A>. It can also be evaluated using #normal_quantile_c whic h will | |||
call the same implementation. | call the same implementation. | |||
@ingroup QuantFunc | @ingroup QuantFunc | |||
skipping to change at line 567 | skipping to change at line 555 | |||
inline double gamma_prob_inv(double x, double alpha, double theta) { | inline double gamma_prob_inv(double x, double alpha, double theta) { | |||
return gamma_quantile_c (x, alpha, theta ); | return gamma_quantile_c (x, alpha, theta ); | |||
} | } | |||
#endif | #endif | |||
} // namespace Math | } // namespace Math | |||
} // namespace ROOT | } // namespace ROOT | |||
#endif // ROOT_Math_QuantFuncMathMore | #endif // ROOT_Math_QuantFuncMathCore | |||
#endif // if defined (__CINT__) && !defined(__MAKECINT__) | #endif // if defined (__CINT__) && !defined(__MAKECINT__) | |||
End of changes. 11 change blocks. | ||||
19 lines changed or deleted | 8 lines changed or added | |||
QuantFuncMathMore.h | QuantFuncMathMore.h | |||
---|---|---|---|---|
skipping to change at line 80 | skipping to change at line 80 | |||
/** @name Quantile Functions from MathMore | /** @name Quantile Functions from MathMore | |||
* The implementation used is that of | * The implementation used is that of | |||
* <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random-Numbe r-Distributions.html">GSL</A>. | * <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Random-Numbe r-Distributions.html">GSL</A>. | |||
*/ | */ | |||
//@{ | //@{ | |||
/** | /** | |||
Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | |||
function of the lower tail of the \f$\chi^2\f$ distribution | ||||
with \f$r\f$ degrees of freedom (#chisquared_cdf). For detailed descripti | ||||
on see | ||||
<A HREF="http://mathworld.wolfram.com/Chi-SquaredDistribution.html"> | ||||
Mathworld</A>. The implementation used is that of | ||||
<A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_19.html#SEC303">G | ||||
SL</A>. | ||||
@ingroup QuantFunc | ||||
*/ | ||||
double chisquared_quantile(double z, double r); | ||||
/** | ||||
Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | ||||
function of the lower tail of the gamma distribution | ||||
(#gamma_cdf). For detailed description see | ||||
<A HREF="http://mathworld.wolfram.com/GammaDistribution.html"> | ||||
Mathworld</A>. The implementation used is that of | ||||
<A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_19.html#SEC300">G | ||||
SL</A>. | ||||
@ingroup QuantFunc | ||||
*/ | ||||
double gamma_quantile(double z, double alpha, double theta); | ||||
/** | ||||
Inverse (\f$D^{-1}(z)\f$) of the cumulative distribution | ||||
function of the upper tail of Student's t-distribution | function of the upper tail of Student's t-distribution | |||
(#tdistribution_cdf_c). For detailed description see | (#tdistribution_cdf_c). For detailed description see | |||
<A HREF="http://mathworld.wolfram.com/Studentst-Distribution.html"> | <A HREF="http://mathworld.wolfram.com/Studentst-Distribution.html"> | |||
Mathworld</A>. The implementation used is that of | Mathworld</A>. The implementation used is that of | |||
<A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_19.html#SEC305">G SL</A>. | <A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_19.html#SEC305">G SL</A>. | |||
@ingroup QuantFunc | @ingroup QuantFunc | |||
*/ | */ | |||
skipping to change at line 162 | skipping to change at line 132 | |||
return tdistribution_quantile_c (x, r ); | return tdistribution_quantile_c (x, r ); | |||
} | } | |||
inline double tdistribution_quant_inv(double x, double r) { | inline double tdistribution_quant_inv(double x, double r) { | |||
return tdistribution_quantile (x, r ); | return tdistribution_quantile (x, r ); | |||
} | } | |||
#endif | #endif | |||
} // namespace Math | } // namespace Math | |||
namespace MathMore { | ||||
/** | ||||
Re-implementation in MathMore of the Inverse (\f$D^{-1}(z)\f$) of the cum | ||||
ulative distribution | ||||
function of the lower tail of the \f$\chi^2\f$ distribution | ||||
with \f$r\f$ degrees of freedom (#chisquared_cdf). For detailed descripti | ||||
on see | ||||
<A HREF="http://mathworld.wolfram.com/Chi-SquaredDistribution.html"> | ||||
Mathworld</A>. The implementation used is that of | ||||
<A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_19.html#SEC303">G | ||||
SL</A>. | ||||
@ingroup QuantFunc | ||||
*/ | ||||
double chisquared_quantile(double z, double r); | ||||
/** | ||||
Re-implementation in MathMore of the Inverse (\f$D^{-1}(z)\f$) of the cum | ||||
ulative distribution | ||||
function of the lower tail of the gamma distribution | ||||
(#gamma_cdf). For detailed description see | ||||
<A HREF="http://mathworld.wolfram.com/GammaDistribution.html"> | ||||
Mathworld</A>. The implementation used is that of | ||||
<A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_19.html#SEC300">G | ||||
SL</A>. | ||||
@ingroup QuantFunc | ||||
*/ | ||||
double gamma_quantile(double z, double alpha, double theta); | ||||
} // end namespace MathMore | ||||
} // namespace ROOT | } // namespace ROOT | |||
#endif // ROOT_Math_QuantFuncMathMore | #endif // ROOT_Math_QuantFuncMathMore | |||
#endif // if defined (__CINT__) && !defined(__MAKECINT__) | #endif // if defined (__CINT__) && !defined(__MAKECINT__) | |||
End of changes. 2 change blocks. | ||||
33 lines changed or deleted | 39 lines changed or added | |||
RConfig.h | RConfig.h | |||
---|---|---|---|---|
/* @(#)root/base:$Id: RConfig.h 35471 2010-09-20 16:35:01Z rdm $ */ | /* @(#)root/base:$Id: RConfig.h 37326 2010-12-06 11:07:19Z rdm $ */ | |||
/************************************************************************* | /************************************************************************* | |||
* 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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_RConfig | #ifndef ROOT_RConfig | |||
skipping to change at line 372 | skipping to change at line 372 | |||
# endif | # endif | |||
# if defined(__amd64__) | # if defined(__amd64__) | |||
# define R__B64 | # define R__B64 | |||
# endif | # endif | |||
# define R__THROWNEWDELETE /* new/delete throw exceptions */ | # define R__THROWNEWDELETE /* new/delete throw exceptions */ | |||
# define HAS_STRLCPY | # define HAS_STRLCPY | |||
#endif | #endif | |||
#if defined(__APPLE__) /* MacOS X support, initially following FreeBS D */ | #if defined(__APPLE__) /* MacOS X support, initially following FreeBS D */ | |||
# include <AvailabilityMacros.h> | # include <AvailabilityMacros.h> | |||
# ifndef __CINT__ | ||||
# include <TargetConditionals.h> | ||||
# endif | ||||
# define R__MACOSX | # define R__MACOSX | |||
# define R__UNIX | # define R__UNIX | |||
# if defined(__xlC__) || defined(__xlc__) | # if defined(__xlC__) || defined(__xlc__) | |||
# define ANSICPP | # define ANSICPP | |||
# define R__ANSISTREAM | # define R__ANSISTREAM | |||
# define R__PLACEMENTINLINE /* placement new/delete is inline in <new> */ | # define R__PLACEMENTINLINE /* placement new/delete is inline in <new> */ | |||
# endif | # endif | |||
# if defined(__ppc64__) | # if defined(__ppc64__) | |||
# define R__B64 /* enable when 64 bit machine */ | # define R__B64 /* enable when 64 bit machine */ | |||
# endif | # endif | |||
# if defined(__i386__) | # if defined(__i386__) | |||
# define R__BYTESWAP | # define R__BYTESWAP | |||
# endif | # endif | |||
# if defined(__arm__) | ||||
# define R__BYTESWAP | ||||
# endif | ||||
# if defined(__x86_64__) | # if defined(__x86_64__) | |||
# define R__BYTESWAP | # define R__BYTESWAP | |||
# define R__B64 /* enable when 64 bit machine */ | # define R__B64 /* enable when 64 bit machine */ | |||
# endif | # endif | |||
# define HAS_STRLCPY | # define HAS_STRLCPY | |||
#endif | #endif | |||
#ifdef _HIUX_SOURCE | #ifdef _HIUX_SOURCE | |||
# define R__HIUX | # define R__HIUX | |||
# define R__UNIX | # define R__UNIX | |||
skipping to change at line 537 | skipping to change at line 543 | |||
# define _NAME2_(name1,name2) _NAME1_(name1)name2 | # define _NAME2_(name1,name2) _NAME1_(name1)name2 | |||
# define _NAME3_(name1,name2,name3) _NAME2_(name1,name2)name3 | # define _NAME3_(name1,name2,name3) _NAME2_(name1,name2)name3 | |||
# define _QUOTE_(name) "name" | # define _QUOTE_(name) "name" | |||
#endif | #endif | |||
/* produce an identifier that is almost unique inside a file */ | /* produce an identifier that is almost unique inside a file */ | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
# define _R__JOIN_(X,Y) _NAME2_(X,Y) | # define _R__JOIN_(X,Y) _NAME2_(X,Y) | |||
# define _R__JOIN3_(F,X,Y) _NAME3_(F,X,Y) | ||||
#ifdef R__DICTIONARY_FILENAME | ||||
# define _R__UNIQUE_(X) _R__JOIN3_(R__DICTIONARY_FILENAME,X,__LINE__) | ||||
#else | ||||
# define _R__UNIQUE_(X) _R__JOIN_(X,__LINE__) | # define _R__UNIQUE_(X) _R__JOIN_(X,__LINE__) | |||
#endif | ||||
#else | #else | |||
/* Currently CINT does not really mind to have duplicates and */ | /* Currently CINT does not really mind to have duplicates and */ | |||
/* does not work correctly as far as merging tokens is concerned. */ | /* does not work correctly as far as merging tokens is concerned. */ | |||
# define _R__UNIQUE_(X) X | # define _R__UNIQUE_(X) X | |||
#endif | #endif | |||
/*---- misc --------------------------------------------------------------- ---*/ | /*---- misc --------------------------------------------------------------- ---*/ | |||
#ifdef R__GNU | #ifdef R__GNU | |||
# define SafeDelete(p) { if (p) { delete p; p = 0; } } | # define SafeDelete(p) { if (p) { delete p; p = 0; } } | |||
End of changes. 5 change blocks. | ||||
1 lines changed or deleted | 12 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.6.3/ | #define R__CONFIGUREOPTIONS "QTDIR=/afs/cern.ch/sw/lcg/external/qt/4.6.3/ | |||
i686-slc5-gcc43-opt PYTHONDIR=/afs/cern.ch/sw/lcg/external/Python/2.6.5/i68 | i686-slc5-gcc43-opt PYTHONDIR=/afs/cern.ch/sw/lcg/external/Python/2.6.5/i68 | |||
6-slc5-gcc43-opt --fail-on-missing --enable-cintex --enable-explicitlink -- | 6-slc5-gcc43-opt linux --fail-on-missing --enable-cintex --enable-explicitl | |||
enable-gdml --enable-genvector --enable-krb5 --enable-mathmore --enable-min | ink --enable-gdml --enable-genvector --enable-krb5 --enable-mathmore --enab | |||
uit2 --enable-mysql --enable-oracle --enable-python --enable-qt --enable-qt | le-minuit2 --enable-mysql --enable-oracle --enable-python --enable-qt --ena | |||
gsi --enable-reflex --enable-roofit --enable-table --enable-unuran --with-c | ble-qtgsi --enable-reflex --enable-roofit --enable-table --enable-unuran -- | |||
astor-incdir=/afs/cern.ch/sw/lcg/external/castor/2.1.8-10/i686-slc5-gcc43-o | with-castor-incdir=/afs/cern.ch/sw/lcg/external/castor/2.1.8-10/i686-slc5-g | |||
pt/usr/include/shift --with-castor-libdir=/afs/cern.ch/sw/lcg/external/cast | cc43-opt/usr/include/shift --with-castor-libdir=/afs/cern.ch/sw/lcg/externa | |||
or/2.1.8-10/i686-slc5-gcc43-opt/usr/lib --with-cern-libdir=/afs/cern.ch/sw/ | l/castor/2.1.8-10/i686-slc5-gcc43-opt/usr/lib --with-cern-libdir=/afs/cern. | |||
lcg/external/cernlib/2006a/i686-slc5-gcc43-opt/lib --with-dcap-libdir=/afs/ | ch/sw/lcg/external/cernlib/2006a/i686-slc5-gcc43-opt/lib --with-dcap-libdir | |||
cern.ch/sw/lcg/external/dcache_client/1.9.3p1/i686-slc5-gcc43-opt/dcap/lib | =/afs/cern.ch/sw/lcg/external/dcache_client/1.9.3p1/i686-slc5-gcc43-opt/dca | |||
--with-dcap-incdir=/afs/cern.ch/sw/lcg/external/dcache_client/1.9.3p1/i686- | p/lib --with-dcap-incdir=/afs/cern.ch/sw/lcg/external/dcache_client/1.9.3p1 | |||
slc5-gcc43-opt/dcap/include --with-fftw3-incdir=/afs/cern.ch/sw/lcg/externa | /i686-slc5-gcc43-opt/dcap/include --with-fftw3-incdir=/afs/cern.ch/sw/lcg/e | |||
l/fftw3/3.1.2/i686-slc5-gcc43-opt/include --with-fftw3-libdir=/afs/cern.ch/ | xternal/fftw3/3.1.2/i686-slc5-gcc43-opt/include --with-fftw3-libdir=/afs/ce | |||
sw/lcg/external/fftw3/3.1.2/i686-slc5-gcc43-opt/lib --with-gccxml=/afs/cern | rn.ch/sw/lcg/external/fftw3/3.1.2/i686-slc5-gcc43-opt/lib --with-gccxml=/af | |||
.ch/sw/lcg/external/gccxml/0.9.0_20100114/i686-slc5-gcc43-opt/bin --with-gf | s/cern.ch/sw/lcg/external/gccxml/0.9.0_20100114/i686-slc5-gcc43-opt/bin --w | |||
al-libdir=/afs/cern.ch/sw/lcg/external/Grid/gfal/1.11.8-2/i686-slc5-gcc43-o | ith-gfal-libdir=/afs/cern.ch/sw/lcg/external/Grid/gfal/1.11.8-2/i686-slc5-g | |||
pt/lib --with-gfal-incdir=/afs/cern.ch/sw/lcg/external/Grid/gfal/1.11.8-2/i | cc43-opt/lib --with-gfal-incdir=/afs/cern.ch/sw/lcg/external/Grid/gfal/1.11 | |||
686-slc5-gcc43-opt/include --with-gsl-incdir=/afs/cern.ch/sw/lcg/external/G | .8-2/i686-slc5-gcc43-opt/include --with-gsl-incdir=/afs/cern.ch/sw/lcg/exte | |||
SL/1.10/i686-slc5-gcc43-opt/include --with-gsl-libdir=/afs/cern.ch/sw/lcg/e | rnal/GSL/1.10/i686-slc5-gcc43-opt/include --with-gsl-libdir=/afs/cern.ch/sw | |||
xternal/GSL/1.10/i686-slc5-gcc43-opt/lib --with-mysql-incdir=/afs/cern.ch/s | /lcg/external/GSL/1.10/i686-slc5-gcc43-opt/lib --with-mysql-incdir=/afs/cer | |||
w/lcg/external/mysql/5.1.45/i686-slc5-gcc43-opt/include/mysql --with-mysql- | n.ch/sw/lcg/external/mysql/5.1.45/i686-slc5-gcc43-opt/include/mysql --with- | |||
libdir=/afs/cern.ch/sw/lcg/external/mysql/5.1.45/i686-slc5-gcc43-opt/lib/my | mysql-libdir=/afs/cern.ch/sw/lcg/external/mysql/5.1.45/i686-slc5-gcc43-opt/ | |||
sql --with-oracle-incdir=/afs/cern.ch/sw/lcg/external/oracle/11.2.0.1.0p2/i | lib/mysql --with-oracle-incdir=/afs/cern.ch/sw/lcg/external/oracle/11.2.0.1 | |||
686-slc5-gcc43-opt/include --with-oracle-libdir=/afs/cern.ch/sw/lcg/externa | .0p2/i686-slc5-gcc43-opt/include --with-oracle-libdir=/afs/cern.ch/sw/lcg/e | |||
l/oracle/11.2.0.1.0p2/i686-slc5-gcc43-opt/lib --with-rfio-incdir=/afs/cern. | xternal/oracle/11.2.0.1.0p2/i686-slc5-gcc43-opt/lib --with-rfio-incdir=/afs | |||
ch/sw/lcg/external/castor/2.1.8-10/i686-slc5-gcc43-opt/usr/include/shift -- | /cern.ch/sw/lcg/external/castor/2.1.8-10/i686-slc5-gcc43-opt/usr/include/sh | |||
with-rfio-libdir=/afs/cern.ch/sw/lcg/external/castor/2.1.8-10/i686-slc5-gcc | ift --with-rfio-libdir=/afs/cern.ch/sw/lcg/external/castor/2.1.8-10/i686-sl | |||
43-opt/usr/lib --with-pythia6-libdir=/afs/cern.ch/user/b/bellenot/scratch0/ | c5-gcc43-opt/usr/lib --with-pythia6-libdir=/afs/cern.ch/sw/lcg/external/MCG | |||
dist/pythia6/i686-slc5-gcc43-opt --with-pythia8-incdir=/afs/cern.ch/user/b/ | enerators/pythia6/421.2/i686-slc5-gcc43-opt/lib --with-pythia8-incdir=/afs/ | |||
bellenot/scratch0/dist/pythia8/i686-slc5-gcc43-opt/include --with-pythia8-l | cern.ch/sw/lcg/external/MCGenerators/pythia8/130/i686-slc5-gcc43-opt/includ | |||
ibdir=/afs/cern.ch/user/b/bellenot/scratch0/dist/pythia8/i686-slc5-gcc43-op | e --with-pythia8-libdir=/afs/cern.ch/sw/lcg/external/MCGenerators/pythia8/1 | |||
t/lib --with-gviz-incdir=/build/bellenot/libraries/i686-slc5-gcc43-opt/grap | 30/i686-slc5-gcc43-opt/lib --with-gviz-incdir=/afs/cern.ch/sw/lcg/external/ | |||
hviz-2.24.0/include/graphviz --with-gviz-libdir=/build/bellenot/libraries/i | graphviz/2.24.0/i686-slc5-gcc43-opt/include/graphviz --with-gviz-libdir=/af | |||
686-slc5-gcc43-opt/graphviz-2.24.0/lib" | s/cern.ch/sw/lcg/external/graphviz/2.24.0/i686-slc5-gcc43-opt/lib" | |||
#define R__CONFIGUREFEATURES "asimage astiff builtin_afterimage builtin_ft | #define R__CONFIGUREFEATURES "asimage astiff builtin_afterimage builtin_ft | |||
gl builtin_glew castor cintex editline dcache exceptions explicitlink fftw3 | gl builtin_glew builtin_pcre castor cintex editline dcache exceptions expli | |||
gviz gdml genvector gfal krb5 ldap mathmore memstat minuit2 mysql opengl o | citlink fftw3 gviz gdml genvector gfal krb5 ldap mathmore memstat minuit2 m | |||
racle pythia6 pythia8 python qt qtgsi reflex roofit rfio shadowpw shared ss | ysql opengl oracle pgsql pythia8 python qt qtgsi reflex roofit rfio shadowp | |||
l table tmva unuran x11 xft xml xrootd thread" | w shared ssl table tmva unuran x11 xft xml xrootd thread" | |||
#endif | #endif | |||
End of changes. 1 change blocks. | ||||
40 lines changed or deleted | 40 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.27/06" | #define ROOT_RELEASE "5.28/00" | |||
#define ROOT_RELEASE_DATE "Sep 29 2010" | #define ROOT_RELEASE_DATE "Dec 14 2010" | |||
#define ROOT_RELEASE_TIME "10:42:31" | #define ROOT_RELEASE_TIME "08:34:00" | |||
#define ROOT_SVN_REVISION 35855 | #define ROOT_SVN_REVISION 37583 | |||
#define ROOT_SVN_BRANCH "trunk" | #define ROOT_SVN_BRANCH "trunk" | |||
#define ROOT_VERSION_CODE 334598 | #define ROOT_VERSION_CODE 334848 | |||
#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 | |||
Random.h | Random.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: Random.h 21553 2007-12-21 10:55:46Z moneta $ | // @(#)root/mathmore:$Id: Random.h 37442 2010-12-09 16:36:55Z moneta $ | |||
// 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 270 | skipping to change at line 270 | |||
} | } | |||
/** | /** | |||
Binomial distribution | Binomial distribution | |||
*/ | */ | |||
unsigned int Binomial(unsigned int ntot, double prob) { | unsigned int Binomial(unsigned int ntot, double prob) { | |||
return fEngine.Binomial(prob,ntot); | return fEngine.Binomial(prob,ntot); | |||
} | } | |||
/** | /** | |||
Negative Binomial distribution | ||||
First parameter is n, second is probability | ||||
To be consistent with Random::Binomial | ||||
*/ | ||||
unsigned int NegativeBinomial(double n, double prob) { | ||||
return fEngine.NegativeBinomial(prob,n); | ||||
} | ||||
/** | ||||
Multinomial distribution | Multinomial distribution | |||
*/ | */ | |||
std::vector<unsigned int> Multinomial( unsigned int ntot, const std::ve ctor<double> & p ) { | std::vector<unsigned int> Multinomial( unsigned int ntot, const std::ve ctor<double> & p ) { | |||
return fEngine.Multinomial(ntot,p); | return fEngine.Multinomial(ntot,p); | |||
} | } | |||
private: | private: | |||
Engine fEngine; | Engine fEngine; | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 10 lines changed or added | |||
RatioOfProfiledLikelihoodsTestStat.h | RatioOfProfiledLikelihoodsTestStat.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: RatioOfProfiledLikelihoodsTestStat.h 34109 2010-0 6-24 15:00:16Z moneta $ | // @(#)root/roostats:$Id: RatioOfProfiledLikelihoodsTestStat.h 36602 2010-1 1-11 16:52:13Z moneta $ | |||
/************************************************************************* | /************************************************************************* | |||
* 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_RatioOfProfiledLikelihoodsTestStat | #ifndef ROOSTATS_RatioOfProfiledLikelihoodsTestStat | |||
#define ROOSTATS_RatioOfProfiledLikelihoodsTestStat | #define ROOSTATS_RatioOfProfiledLikelihoodsTestStat | |||
skipping to change at line 39 | skipping to change at line 39 | |||
#endif | #endif | |||
#ifndef ROOSTATS_TestStatistic | #ifndef ROOSTATS_TestStatistic | |||
#include "RooStats/TestStatistic.h" | #include "RooStats/TestStatistic.h" | |||
#endif | #endif | |||
namespace RooStats { | namespace RooStats { | |||
class RatioOfProfiledLikelihoodsTestStat: public TestStatistic { | class RatioOfProfiledLikelihoodsTestStat: public TestStatistic { | |||
public: | public: | |||
RatioOfProfiledLikelihoodsTestStat() : | ||||
fNullPdf(NULL), | ||||
fAltPdf(NULL), | ||||
fAltPOI(NULL), | ||||
fSubtractMLE(true) | ||||
{ | ||||
// Proof constructor. Don't use. | ||||
} | ||||
RatioOfProfiledLikelihoodsTestStat(RooAbsPdf& nullPdf, RooAbsPdf& altPdf, | RatioOfProfiledLikelihoodsTestStat(RooAbsPdf& nullPdf, RooAbsPdf& altPdf, | |||
const RooArgSet* altPOI=0) : | const RooArgSet* altPOI=0) : | |||
fNullPdf(nullPdf), fAltPdf(altPdf), fSubtractMLE(true) | fNullPdf(&nullPdf), fAltPdf(&altPdf), fSubtractMLE(true) | |||
{ | { | |||
/* | /* | |||
Calculates the ratio of profiled likelihoods. | Calculates the ratio of profiled likelihoods. | |||
By default the calculation is: | By default the calculation is: | |||
Lambda(mu_alt , conditional MLE for alt nuisance) | Lambda(mu_alt , conditional MLE for alt nuisance) | |||
log -------------------------------------------- | log -------------------------------------------- | |||
Lambda(mu_null , conditional MLE for null nuisance) | Lambda(mu_null , conditional MLE for null nuisance) | |||
skipping to change at line 109 | skipping to change at line 119 | |||
delete nll; | delete nll; | |||
return nllVal; | return nllVal; | |||
} | } | |||
//__________________________________________ | //__________________________________________ | |||
virtual Double_t Evaluate(RooAbsData& data, RooArgSet& nullParamsOfInte rest) { | virtual Double_t Evaluate(RooAbsData& data, RooArgSet& nullParamsOfInte rest) { | |||
RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBelow (); | RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBelow (); | |||
RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); | RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); | |||
/* | /* | |||
// if we want to set params back to what they were | // construct allVars | |||
RooArgSet *nullParams = fNullPdf.getParameters(data); | RooArgSet *allVars = fNullPdf->getVariables(); | |||
RooArgSet *altParams = fAltPdf.getParameters(data); | RooArgSet *altVars = fAltPdf->getVariables(); | |||
allVars->add(*altVars); | allVars->add(*altVars); | |||
delete altVars; | ||||
RooArgSet *saveNullPOI = (RooArgSet*)nullParamsOfInterest.snapshot(); | ||||
RooArgSet *saveAll = (RooArgSet*)allVars->snapshot(); | RooArgSet *saveAll = (RooArgSet*)allVars->snapshot(); | |||
*/ | */ | |||
// null | // null | |||
double nullNLL = ProfiledLikelihood(data, nullParamsOfInterest, fNull Pdf); | double nullNLL = ProfiledLikelihood(data, nullParamsOfInterest, *fNul lPdf); | |||
// alt | // alt | |||
double altNLL = ProfiledLikelihood(data, *fAltPOI, fAltPdf); | double altNLL = ProfiledLikelihood(data, *fAltPOI, *fAltPdf); | |||
/* | /* | |||
// set variables back to where they were | // set variables back to where they were | |||
nullParamsOfInterest = *saveNullPOI; | ||||
*allVars = *saveAll; | *allVars = *saveAll; | |||
delete saveAll; | delete saveAll; | |||
delete allVars; | delete allVars; | |||
*/ | */ | |||
RooMsgService::instance().setGlobalKillBelow(msglevel); | RooMsgService::instance().setGlobalKillBelow(msglevel); | |||
return nullNLL -altNLL; | return nullNLL -altNLL; | |||
} | } | |||
virtual const TString GetVarName() const { return "log(L(#mu_{1},#hat{# nu}_{1}) / L(#mu_{0},#hat{#nu}_{0}))"; } | virtual const TString GetVarName() const { return "log(L(#mu_{1},#hat{# nu}_{1}) / L(#mu_{0},#hat{#nu}_{0}))"; } | |||
// const bool PValueIsRightTail(void) { return false; } // overwrite s default | // const bool PValueIsRightTail(void) { return false; } // overwrite s default | |||
void SetSubtractMLE(bool subtract){fSubtractMLE = subtract;} | void SetSubtractMLE(bool subtract){fSubtractMLE = subtract;} | |||
private: | private: | |||
RooAbsPdf& fNullPdf; | RooAbsPdf* fNullPdf; | |||
RooAbsPdf& fAltPdf; | RooAbsPdf* fAltPdf; | |||
RooArgSet* fAltPOI; | RooArgSet* fAltPOI; | |||
Bool_t fSubtractMLE; | Bool_t fSubtractMLE; | |||
protected: | protected: | |||
ClassDef(RatioOfProfiledLikelihoodsTestStat,1) | ClassDef(RatioOfProfiledLikelihoodsTestStat,2) | |||
}; | }; | |||
} | } | |||
#endif | #endif | |||
End of changes. 13 change blocks. | ||||
15 lines changed or deleted | 29 lines changed or added | |||
Reader.h | Reader.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Reader.h 34022 2010-06-21 15:52:50Z stelzer $ | // @(#)root/tmva $Id: Reader.h 36966 2010-11-26 09:50:13Z evt $ | |||
// Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss, Ka i Voss | // Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss, Ka i 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 104 | skipping to change at line 104 | |||
// returns the MVA response for given event | // returns the MVA response for given event | |||
Double_t EvaluateMVA( const std::vector<Float_t> &, const TString& me thodTag, Double_t aux = 0 ); | Double_t EvaluateMVA( const std::vector<Float_t> &, const TString& me thodTag, Double_t aux = 0 ); | |||
Double_t EvaluateMVA( const std::vector<Double_t>&, const TString& me thodTag, Double_t aux = 0 ); | Double_t EvaluateMVA( const std::vector<Double_t>&, const TString& me thodTag, Double_t aux = 0 ); | |||
Double_t EvaluateMVA( MethodBase* method, Double_t aux = 0 ); | Double_t EvaluateMVA( MethodBase* method, Double_t aux = 0 ); | |||
Double_t EvaluateMVA( const TString& methodTag, Double_t aux = 0 ); | Double_t EvaluateMVA( const TString& methodTag, Double_t aux = 0 ); | |||
// returns error on MVA response for given event | // returns error on MVA response for given event | |||
// NOTE: must be called AFTER "EvaluateMVA(...)" call ! | // NOTE: must be called AFTER "EvaluateMVA(...)" call ! | |||
Double_t GetMVAError() const { return fMvaEventError; } | Double_t GetMVAError() const { return fMvaEventError; } | |||
Double_t GetMVAError2() const { return fMvaEventError2; } //zj | Double_t GetMVAErrorLower() const { return fMvaEventError; } | |||
h | Double_t GetMVAErrorUpper() const { return fMvaEventErrorUpper; } | |||
// regression response | // regression response | |||
const std::vector< Float_t >& EvaluateRegression( const TString& meth odTag, Double_t aux = 0 ); | const std::vector< Float_t >& EvaluateRegression( const TString& meth odTag, Double_t aux = 0 ); | |||
const std::vector< Float_t >& EvaluateRegression( MethodBase* method, Double_t aux = 0 ); | const std::vector< Float_t >& EvaluateRegression( MethodBase* method, Double_t aux = 0 ); | |||
Float_t EvaluateRegression( UInt_t tgtNumber, const TString& methodT ag, Double_t aux = 0 ); | Float_t EvaluateRegression( UInt_t tgtNumber, const TString& methodT ag, Double_t aux = 0 ); | |||
// multiclass response | // multiclass response | |||
const std::vector< Float_t >& EvaluateMulticlass( const TString& meth odTag, Double_t aux = 0 ); | const std::vector< Float_t >& EvaluateMulticlass( const TString& meth odTag, Double_t aux = 0 ); | |||
const std::vector< Float_t >& EvaluateMulticlass( MethodBase* method, Double_t aux = 0 ); | const std::vector< Float_t >& EvaluateMulticlass( MethodBase* method, Double_t aux = 0 ); | |||
Float_t EvaluateMulticlass( UInt_t clsNumber, const TString& methodT ag, Double_t aux = 0 ); | Float_t EvaluateMulticlass( UInt_t clsNumber, const TString& methodT ag, Double_t aux = 0 ); | |||
skipping to change at line 156 | skipping to change at line 157 | |||
// Init Reader class | // Init Reader class | |||
void Init( void ); | void Init( void ); | |||
// Decode Constructor string (or TString) and fill variable name std: :vector | // Decode Constructor string (or TString) and fill variable name std: :vector | |||
void DecodeVarNames( const std::string& varNames ); | void DecodeVarNames( const std::string& varNames ); | |||
void DecodeVarNames( const TString& varNames ); | void DecodeVarNames( const TString& varNames ); | |||
void DeclareOptions(); | void DeclareOptions(); | |||
Bool_t fVerbose; // verbosity | Bool_t fVerbose; // verbosity | |||
Bool_t fSilent; // silent mode | Bool_t fSilent; // silent mode | |||
Bool_t fColor; // color mode | Bool_t fColor; // color mode | |||
Bool_t fCalculateError; // error calculation mode | ||||
Double_t fMvaEventError; // per-event error returned by MVA (unless: | Double_t fMvaEventError; // per-event error returned by MVA | |||
-1) | Double_t fMvaEventErrorUpper; // per-event error returned by MVA | |||
Double_t fMvaEventError2; // per-event error returned by MVA (unless | ||||
: -1) //zjh | ||||
std::map<TString, IMethod*> fMethodMap; // map of methods | std::map<TString, IMethod*> fMethodMap; // map of methods | |||
std::vector<Float_t> fTmpEvalVec; // temporary evaluation vect or (if user input is v<double>) | std::vector<Float_t> fTmpEvalVec; // temporary evaluation vector (if user input is v<double>) | |||
mutable MsgLogger* fLogger; // message logger | mutable MsgLogger* fLogger; // message logger | |||
MsgLogger& Log() const { return *fLogger; } | MsgLogger& Log() const { return *fLogger; } | |||
ClassDef(Reader,0) // Interpret the trained MVAs in an analysis conte xt | ClassDef(Reader,0) // Interpret the trained MVAs in an analysis conte xt | |||
}; | }; | |||
} | } | |||
#endif | #endif | |||
End of changes. 5 change blocks. | ||||
11 lines changed or deleted | 10 lines changed or added | |||
Results.h | Results.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Results.h 35727 2010-09-24 21:41:20Z stelzer $ | // @(#)root/tmva $Id: Results.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 : Results * | * Class : Results * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Base-class for result-vectors * | * Base-class for result-vectors * | |||
skipping to change at line 81 | skipping to change at line 81 | |||
// getters | // getters | |||
Types::ETreeType GetTreeType() const { return fTreeType; } | Types::ETreeType GetTreeType() const { return fTreeType; } | |||
const DataSetInfo* GetDataSetInfo() const { return fDsi; } | const DataSetInfo* GetDataSetInfo() const { return fDsi; } | |||
DataSet* GetDataSet() const { return fDsi->GetDataSet( ); } | DataSet* GetDataSet() const { return fDsi->GetDataSet( ); } | |||
TList* GetStorage() const { return fStorage; } | TList* GetStorage() const { return fStorage; } | |||
TObject* GetObject(const TString & alias) const; | TObject* GetObject(const TString & alias) const; | |||
TH1* GetHist(const TString & alias) const; | TH1* GetHist(const TString & alias) const; | |||
virtual Types::EAnalysisType GetAnalysisType() { return Types::kNoAn alysisType; } | virtual Types::EAnalysisType GetAnalysisType() { return Types::kNoAn alysisType; } | |||
// delete all stored data | ||||
void Delete(); | ||||
virtual const std::vector< Float_t >& operator [] ( Int_t ievt ) con st = 0; | virtual const std::vector< Float_t >& operator [] ( Int_t ievt ) con st = 0; | |||
private: | private: | |||
Types::ETreeType fTreeType; //! tree type for this res ult | Types::ETreeType fTreeType; //! tree type for this res ult | |||
const DataSetInfo* fDsi; //! a pointer to the datas etinfo-object | const DataSetInfo* fDsi; //! a pointer to the datas etinfo-object | |||
TList* fStorage; //! stores all the result- histograms | TList* fStorage; //! stores all the result- histograms | |||
std::map<TString, TObject*>* fHistAlias; //! internal map for quick access to stored histograms | std::map<TString, TObject*>* fHistAlias; //! internal map for quick access to stored histograms | |||
mutable MsgLogger* fLogger; // message logger | mutable MsgLogger* fLogger; // message logger | |||
MsgLogger& Log() const { return *fLogger; } | MsgLogger& Log() const { return *fLogger; } | |||
}; | }; | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 4 lines changed or added | |||
ResultsMulticlass.h | ResultsMulticlass.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: ResultsMulticlass.h 35727 2010-09-24 21:41:20Z stelze r $ | // @(#)root/tmva $Id: ResultsMulticlass.h 36966 2010-11-26 09:50:13Z evt $ | |||
// 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 : ResultsMulticlass * | * Class : ResultsMulticlass * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: * | * Description: * | |||
* Base-class for result-vectors * | * Base-class for result-vectors * | |||
skipping to change at line 55 | skipping to change at line 55 | |||
#ifndef ROOT_TH2F | #ifndef ROOT_TH2F | |||
#include "TH2F.h" | #include "TH2F.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Results | #ifndef ROOT_TMVA_Results | |||
#include "TMVA/Results.h" | #include "TMVA/Results.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMVA_Event | #ifndef ROOT_TMVA_Event | |||
#include "TMVA/Event.h" | #include "TMVA/Event.h" | |||
#endif | #endif | |||
#ifndef ROOT_IFitterTarget | ||||
#include "IFitterTarget.h" | ||||
#endif | ||||
namespace TMVA { | namespace TMVA { | |||
class MsgLogger; | class MsgLogger; | |||
class ResultsMulticlass : public Results { | class ResultsMulticlass : public Results, public IFitterTarget { | |||
public: | public: | |||
ResultsMulticlass( const DataSetInfo* dsi ); | ResultsMulticlass( const DataSetInfo* dsi ); | |||
~ResultsMulticlass(); | ~ResultsMulticlass(); | |||
// setters | // setters | |||
void SetValue( std::vector<Float_t>& value, Int_t ievt ); | void SetValue( std::vector<Float_t>& value, Int_t ievt ); | |||
void Resize( Int_t entries ) { fMultiClassValues.resize( entries ); } | void Resize( Int_t entries ) { fMultiClassValues.resize( entries ); } | |||
void Clear() { fMultiClassValues.clear(); } | void Clear() { fMultiClassValues.clear(); } | |||
// getters | // getters | |||
Long64_t GetSize() const { return fMultiClassValues.size(); } | Long64_t GetSize() const { return fMultiClassValues.size(); } | |||
virtual const std::vector< Float_t >& operator[] ( Int_t ievt ) cons t { return fMultiClassValues.at(ievt); } | virtual const std::vector< Float_t >& operator[] ( Int_t ievt ) cons t { return fMultiClassValues.at(ievt); } | |||
std::vector<std::vector< Float_t> >* GetValueVector() { return &fMul tiClassValues; } | std::vector<std::vector< Float_t> >* GetValueVector() { return &fMul tiClassValues; } | |||
Types::EAnalysisType GetAnalysisType() { return Types::kMulticlass; } | Types::EAnalysisType GetAnalysisType() { return Types::kMulticlass; } | |||
Float_t GetAchievableEff(UInt_t cls){return fAchievableEff.at(cls);} | ||||
Float_t GetAchievablePur(UInt_t cls){return fAchievablePur.at(cls);} | ||||
std::vector<Float_t>& GetAchievableEff(){return fAchievableEff;} | ||||
std::vector<Float_t>& GetAchievablePur(){return fAchievablePur;} | ||||
// histogramming | // histogramming | |||
void MakeHistograms(); | void CreateMulticlassHistos( TString prefix, Int_t nbins, Int_t n | |||
bins_high); | ||||
Double_t EstimatorFunction( std::vector<Double_t> & ); | ||||
std::vector<Double_t> GetBestMultiClassCuts(UInt_t targetClass); | ||||
private: | private: | |||
mutable std::vector<std::vector< Float_t> > fMultiClassValues; //! mva values (Results) | mutable std::vector<std::vector< Float_t> > fMultiClassValues; //! mva values (Results) | |||
mutable MsgLogger* fLogger; //! message logger | mutable MsgLogger* fLogger; //! message logger | |||
MsgLogger& Log() const { return *fLogger; } | MsgLogger& Log() const { return *fLogger; } | |||
UInt_t fClassToOptimize; | ||||
std::vector<Float_t> fAchievableEff; | ||||
std::vector<Float_t> fAchievablePur; | ||||
std::vector<std::vector<Double_t> > fBestCuts; | ||||
}; | }; | |||
} | } | |||
#endif | #endif | |||
End of changes. 7 change blocks. | ||||
4 lines changed or deleted | 19 lines changed or added | |||
Roo1DTable.h | Roo1DTable.h | |||
---|---|---|---|---|
skipping to change at line 31 | skipping to change at line 31 | |||
#include "TObjArray.h" | #include "TObjArray.h" | |||
#include "RooTable.h" | #include "RooTable.h" | |||
#include <vector> | #include <vector> | |||
class Roo1DTable : public RooTable { | class Roo1DTable : public RooTable { | |||
public: | public: | |||
// Constructors, cloning and assignment | // Constructors, cloning and assignment | |||
Roo1DTable() { | Roo1DTable() { | |||
// Default constructor | // Default constructor | |||
// coverity[UNINIT_CTOR] | ||||
} ; | } ; | |||
virtual ~Roo1DTable(); | virtual ~Roo1DTable(); | |||
Roo1DTable(const char *name, const char *title, const RooAbsCategory &cat ); | Roo1DTable(const char *name, const char *title, const RooAbsCategory &cat ); | |||
Roo1DTable(const Roo1DTable& other) ; | Roo1DTable(const Roo1DTable& other) ; | |||
virtual void fill(RooAbsCategory& cat, Double_t weight=1.0) ; | virtual void fill(RooAbsCategory& cat, Double_t weight=1.0) ; | |||
Double_t get(const char* label, Bool_t silent=kFALSE) const ; | Double_t get(const char* label, Bool_t silent=kFALSE) const ; | |||
Double_t getFrac(const char* label, Bool_t silent=kFALSE) const ; | Double_t getFrac(const char* label, Bool_t silent=kFALSE) const ; | |||
Double_t getOverflow() const ; | Double_t getOverflow() const ; | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
RooAbsArg.h | RooAbsArg.h | |||
---|---|---|---|---|
skipping to change at line 41 | skipping to change at line 41 | |||
class RooAbsCollection ; | class RooAbsCollection ; | |||
class RooTreeData ; | class RooTreeData ; | |||
class RooTreeDataStore ; | class RooTreeDataStore ; | |||
class RooAbsData ; | class RooAbsData ; | |||
class RooAbsDataStore ; | class RooAbsDataStore ; | |||
class RooAbsProxy ; | class RooAbsProxy ; | |||
class RooArgProxy ; | class RooArgProxy ; | |||
class RooSetProxy ; | class RooSetProxy ; | |||
class RooListProxy ; | class RooListProxy ; | |||
class RooExpensiveObjectCache ; | class RooExpensiveObjectCache ; | |||
class RooWorkspace ; | ||||
/* class TGraphStruct ; */ | /* class TGraphStruct ; */ | |||
class RooAbsArg : public TNamed, public RooPrintable { | class RooAbsArg : public TNamed, public RooPrintable { | |||
public: | public: | |||
// Constructors, cloning and assignment | // Constructors, cloning and assignment | |||
RooAbsArg() ; | RooAbsArg() ; | |||
virtual ~RooAbsArg(); | virtual ~RooAbsArg(); | |||
RooAbsArg(const char *name, const char *title); | RooAbsArg(const char *name, const char *title); | |||
RooAbsArg(const RooAbsArg& other, const char* name=0) ; | RooAbsArg(const RooAbsArg& other, const char* name=0) ; | |||
virtual TObject* clone(const char* newname) const = 0 ; | virtual TObject* clone(const char* newname) const = 0 ; | |||
virtual TObject* Clone(const char* newname=0) const { | virtual TObject* Clone(const char* newname=0) const { | |||
return clone(newname?newname:GetName()) ; | return clone(newname?newname:GetName()) ; | |||
} | } | |||
virtual RooAbsArg* cloneTree(const char* newname=0) const ; | virtual RooAbsArg* cloneTree(const char* newname=0) const ; | |||
// Accessors to client-server relation information | // Accessors to client-server relation information | |||
virtual Bool_t isDerived() const { | virtual Bool_t isDerived() const { | |||
// Does value or shape of this arg depend on any other arg? | // Does value or shape of this arg depend on any other arg? | |||
return _serverList.GetSize()?kTRUE:kFALSE; | return (_serverList.GetSize()>0 || _proxyList.GetSize()>0)?kTRUE:kFALSE ; | |||
} | } | |||
Bool_t isCloneOf(const RooAbsArg& other) const ; | Bool_t isCloneOf(const RooAbsArg& other) const ; | |||
Bool_t dependsOnValue(const RooAbsCollection& serverList, const RooAbsArg * ignoreArg=0) const { | Bool_t dependsOnValue(const RooAbsCollection& serverList, const RooAbsArg * ignoreArg=0) const { | |||
// Does this arg depend on the value of any of of the values in serverL ist? | // Does this arg depend on the value of any of of the values in serverL ist? | |||
return dependsOn(serverList,ignoreArg,kTRUE) ; | return dependsOn(serverList,ignoreArg,kTRUE) ; | |||
} | } | |||
Bool_t dependsOnValue(const RooAbsArg& server, const RooAbsArg* ignoreArg =0) const { | Bool_t dependsOnValue(const RooAbsArg& server, const RooAbsArg* ignoreArg =0) const { | |||
// Does this arg depend on the value of server? | // Does this arg depend on the value of server? | |||
return dependsOn(server,ignoreArg,kTRUE) ; | return dependsOn(server,ignoreArg,kTRUE) ; | |||
} | } | |||
skipping to change at line 392 | skipping to change at line 393 | |||
void addServer(RooAbsArg& server, Bool_t valueProp=kTRUE, Bool_t shapePro p=kFALSE) ; | void addServer(RooAbsArg& server, Bool_t valueProp=kTRUE, Bool_t shapePro p=kFALSE) ; | |||
void addServerList(RooAbsCollection& serverList, Bool_t valueProp=kTRUE, Bool_t shapeProp=kFALSE) ; | void addServerList(RooAbsCollection& serverList, Bool_t valueProp=kTRUE, Bool_t shapeProp=kFALSE) ; | |||
void replaceServer(RooAbsArg& oldServer, RooAbsArg& newServer, Bool_t val ueProp, Bool_t shapeProp) ; | void replaceServer(RooAbsArg& oldServer, RooAbsArg& newServer, Bool_t val ueProp, Bool_t shapeProp) ; | |||
void changeServer(RooAbsArg& server, Bool_t valueProp, Bool_t shapeProp) ; | void changeServer(RooAbsArg& server, Bool_t valueProp, Bool_t shapeProp) ; | |||
void removeServer(RooAbsArg& server, Bool_t force=kFALSE) ; | void removeServer(RooAbsArg& server, Bool_t force=kFALSE) ; | |||
RooAbsArg *findNewServer(const RooAbsCollection &newSet, Bool_t nameChang e) const; | RooAbsArg *findNewServer(const RooAbsCollection &newSet, Bool_t nameChang e) const; | |||
RooExpensiveObjectCache& expensiveObjectCache() const ; | RooExpensiveObjectCache& expensiveObjectCache() const ; | |||
void setExpensiveObjectCache(RooExpensiveObjectCache& cache) { _eocache = &cache ; } | void setExpensiveObjectCache(RooExpensiveObjectCache& cache) { _eocache = &cache ; } | |||
virtual Bool_t importWorkspaceHook(RooWorkspace&) { return kFALSE ; } ; | ||||
protected: | protected: | |||
// Proxy management | // Proxy management | |||
friend class RooAddModel ; | friend class RooAddModel ; | |||
friend class RooArgProxy ; | friend class RooArgProxy ; | |||
friend class RooSetProxy ; | friend class RooSetProxy ; | |||
friend class RooListProxy ; | friend class RooListProxy ; | |||
friend class RooObjectFactory ; | friend class RooObjectFactory ; | |||
void registerProxy(RooArgProxy& proxy) ; | void registerProxy(RooArgProxy& proxy) ; | |||
void registerProxy(RooSetProxy& proxy) ; | void registerProxy(RooSetProxy& proxy) ; | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 4 lines changed or added | |||
RooAbsCategory.h | RooAbsCategory.h | |||
---|---|---|---|---|
skipping to change at line 83 | skipping to change at line 83 | |||
// Is this l-value object safe for use as integration observable | // Is this l-value object safe for use as integration observable | |||
return kTRUE ; | return kTRUE ; | |||
} | } | |||
RooAbsArg *createFundamental(const char* newname=0) const; | RooAbsArg *createFundamental(const char* newname=0) const; | |||
protected: | protected: | |||
// Function evaluation and error tracing | // Function evaluation and error tracing | |||
RooCatType traceEval() const ; | RooCatType traceEval() const ; | |||
// coverity[PASS_BY_VALUE] | ||||
virtual Bool_t traceEvalHook(RooCatType /*value*/) const { | virtual Bool_t traceEvalHook(RooCatType /*value*/) const { | |||
// Hook function for trace evaluation (dummy) | // Hook function for trace evaluation (dummy) | |||
return kFALSE ; | return kFALSE ; | |||
} | } | |||
virtual RooCatType evaluate() const = 0 ; | virtual RooCatType evaluate() const = 0 ; | |||
// Type definition management | // Type definition management | |||
const RooCatType* defineType(const char* label) ; | const RooCatType* defineType(const char* label) ; | |||
const RooCatType* defineType(const char* label, Int_t index) ; | const RooCatType* defineType(const char* label, Int_t index) ; | |||
const RooCatType* defineTypeUnchecked(const char* label, Int_t index) ; | const RooCatType* defineTypeUnchecked(const char* label, Int_t index) ; | |||
const RooCatType* getOrdinal(UInt_t n, const char* rangeName=0) const; | const RooCatType* getOrdinal(UInt_t n, const char* rangeName=0) const; | |||
void clearTypes() ; | void clearTypes() ; | |||
virtual Bool_t isValid() const ; | virtual Bool_t isValid() const ; | |||
virtual Bool_t isValid(RooCatType value) const ; | virtual Bool_t isValid(const RooCatType& value) const ; | |||
virtual void syncCache(const RooArgSet* set=0) ; | virtual void syncCache(const RooArgSet* set=0) ; | |||
virtual void copyCache(const RooAbsArg* source, Bool_t valueOnly=kFALSE) ; | virtual void copyCache(const RooAbsArg* source, Bool_t valueOnly=kFALSE) ; | |||
virtual void attachToTree(TTree& t, Int_t bufSize=32000) ; | virtual void attachToTree(TTree& t, Int_t bufSize=32000) ; | |||
virtual void setTreeBranchStatus(TTree& t, Bool_t active) ; | virtual void setTreeBranchStatus(TTree& t, Bool_t active) ; | |||
virtual void fillTreeBranch(TTree& t) ; | virtual void fillTreeBranch(TTree& t) ; | |||
mutable UChar_t _byteValue ; //! Transient cache for byte values from tree branches | mutable UChar_t _byteValue ; //! Transient cache for byte values from tree branches | |||
mutable RooCatType _value ; // Current value | mutable RooCatType _value ; // Current value | |||
TObjArray _types ; // Array of allowed values | TObjArray _types ; // Array of allowed values | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
RooAbsData.h | RooAbsData.h | |||
---|---|---|---|---|
skipping to change at line 48 | skipping to change at line 48 | |||
public: | public: | |||
// Constructors, factory methods etc. | // Constructors, factory methods etc. | |||
RooAbsData() ; | RooAbsData() ; | |||
RooAbsData(const char *name, const char *title, const RooArgSet& vars, Ro oAbsDataStore* store=0) ; | RooAbsData(const char *name, const char *title, const RooArgSet& vars, Ro oAbsDataStore* store=0) ; | |||
RooAbsData(const RooAbsData& other, const char* newname = 0) ; | RooAbsData(const RooAbsData& other, const char* newname = 0) ; | |||
virtual ~RooAbsData() ; | virtual ~RooAbsData() ; | |||
virtual RooAbsData* emptyClone(const char* newName=0, const char* newTitl e=0, const RooArgSet* vars=0) const = 0 ; | virtual RooAbsData* emptyClone(const char* newName=0, const char* newTitl e=0, const RooArgSet* vars=0) const = 0 ; | |||
// Reduction methods | // Reduction methods | |||
RooAbsData* reduce(RooCmdArg arg1,RooCmdArg arg2=RooCmdArg(),RooCmdArg ar | RooAbsData* reduce(const RooCmdArg& arg1,const RooCmdArg& arg2=RooCmdArg( | |||
g3=RooCmdArg(),RooCmdArg arg4=RooCmdArg(), | ),const RooCmdArg& arg3=RooCmdArg(),const RooCmdArg& arg4=RooCmdArg(), | |||
RooCmdArg arg5=RooCmdArg(),RooCmdArg arg6=RooCmdArg(), | const RooCmdArg& arg5=RooCmdArg(),const RooCmdArg& arg | |||
RooCmdArg arg7=RooCmdArg(),RooCmdArg arg8=RooCmdArg()) ; | 6=RooCmdArg(),const RooCmdArg& arg7=RooCmdArg(),const RooCmdArg& arg8=RooCm | |||
dArg()) ; | ||||
RooAbsData* reduce(const char* cut) ; | RooAbsData* reduce(const char* cut) ; | |||
RooAbsData* reduce(const RooFormulaVar& cutVar) ; | RooAbsData* reduce(const RooFormulaVar& cutVar) ; | |||
RooAbsData* reduce(const RooArgSet& varSubset, const char* cut=0) ; | RooAbsData* reduce(const RooArgSet& varSubset, const char* cut=0) ; | |||
RooAbsData* reduce(const RooArgSet& varSubset, const RooFormulaVar& cutVa r) ; | RooAbsData* reduce(const RooArgSet& varSubset, const RooFormulaVar& cutVa r) ; | |||
RooAbsDataStore* store() { return _dstore ; } | RooAbsDataStore* store() { return _dstore ; } | |||
const RooAbsDataStore* store() const { return _dstore ; } | const RooAbsDataStore* store() const { return _dstore ; } | |||
const TTree* tree() const ; | const TTree* tree() const ; | |||
virtual void Draw(Option_t* option = "") ; | virtual void Draw(Option_t* option = "") ; | |||
End of changes. 1 change blocks. | ||||
4 lines changed or deleted | 5 lines changed or added | |||
RooAbsNumGenerator.h | RooAbsNumGenerator.h | |||
---|---|---|---|---|
/************************************************************************** *** | /************************************************************************** *** | |||
* Project: RooFit * | * Project: RooFit * | |||
* Package: RooFitCore * | * Package: RooFitCore * | |||
* File: $Id: RooAbsNumGenerator.h 34064 2010-06-22 15:05:19Z wouter $ | * File: $Id: RooAbsNumGenerator.h 36209 2010-10-08 21:37:36Z 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) * | |||
skipping to change at line 32 | skipping to change at line 32 | |||
#include "RooArgList.h" | #include "RooArgList.h" | |||
class RooAbsReal; | class RooAbsReal; | |||
class RooRealVar; | class RooRealVar; | |||
class RooDataSet; | class RooDataSet; | |||
class RooRealBinding; | class RooRealBinding; | |||
class RooNumGenConfig ; | class RooNumGenConfig ; | |||
class RooAbsNumGenerator : public TNamed, public RooPrintable { | class RooAbsNumGenerator : public TNamed, public RooPrintable { | |||
public: | public: | |||
RooAbsNumGenerator() : _cloneSet(0), _funcClone(0), _funcMaxVal(0), _func ValStore(0), _funcValPtr(0), _cache(0) {} ; | RooAbsNumGenerator() : _cloneSet(0), _funcClone(0), _funcMaxVal(0), _verb ose(kFALSE), _isValid(kFALSE), _funcValStore(0), _funcValPtr(0), _cache(0) {} ; | |||
RooAbsNumGenerator(const RooAbsReal &func, const RooArgSet &genVars, Bool _t verbose=kFALSE, const RooAbsReal* maxFuncVal=0); | RooAbsNumGenerator(const RooAbsReal &func, const RooArgSet &genVars, Bool _t verbose=kFALSE, const RooAbsReal* maxFuncVal=0); | |||
virtual RooAbsNumGenerator* clone(const RooAbsReal&, const RooArgSet& gen Vars, const RooArgSet& condVars, | virtual RooAbsNumGenerator* clone(const RooAbsReal&, const RooArgSet& gen Vars, const RooArgSet& condVars, | |||
const RooNumGenConfig& config, Bool_t ve rbose=kFALSE, const RooAbsReal* maxFuncVal=0) const = 0 ; | const RooNumGenConfig& config, Bool_t ve rbose=kFALSE, const RooAbsReal* maxFuncVal=0) const = 0 ; | |||
Bool_t isValid() const { | Bool_t isValid() const { | |||
// If true, generator is in a valid state | // If true, generator is in a valid state | |||
return _isValid; | return _isValid; | |||
} | } | |||
virtual ~RooAbsNumGenerator(); | virtual ~RooAbsNumGenerator(); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
RooAbsOptTestStatistic.h | RooAbsOptTestStatistic.h | |||
---|---|---|---|---|
skipping to change at line 23 | skipping to change at line 23 | |||
* 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_ABS_OPT_TEST_STATISTIC | #ifndef ROO_ABS_OPT_TEST_STATISTIC | |||
#define ROO_ABS_OPT_TEST_STATISTIC | #define ROO_ABS_OPT_TEST_STATISTIC | |||
#include "Riosfwd.h" | #include "Riosfwd.h" | |||
#include "RooAbsTestStatistic.h" | #include "RooAbsTestStatistic.h" | |||
#include "RooSetProxy.h" | #include "RooSetProxy.h" | |||
#include "RooCategoryProxy.h" | #include "RooCategoryProxy.h" | |||
#include "TString.h" | ||||
class RooArgSet ; | class RooArgSet ; | |||
class RooAbsData ; | class RooAbsData ; | |||
class RooAbsReal ; | class RooAbsReal ; | |||
class RooAbsOptTestStatistic : public RooAbsTestStatistic { | class RooAbsOptTestStatistic : public RooAbsTestStatistic { | |||
public: | public: | |||
// Constructors, assignment etc | // Constructors, assignment etc | |||
RooAbsOptTestStatistic() ; | RooAbsOptTestStatistic() ; | |||
skipping to change at line 44 | skipping to change at line 45 | |||
const RooArgSet& projDeps, const char* rangeName=0, const char* addCoefRangeName=0, | const RooArgSet& projDeps, const char* rangeName=0, const char* addCoefRangeName=0, | |||
Int_t nCPU=1, Bool_t interleave=kFALSE, Bool_t verb ose=kTRUE, Bool_t splitCutRange=kFALSE, | Int_t nCPU=1, Bool_t interleave=kFALSE, Bool_t verb ose=kTRUE, Bool_t splitCutRange=kFALSE, | |||
Bool_t cloneInputData=kTRUE) ; | Bool_t cloneInputData=kTRUE) ; | |||
RooAbsOptTestStatistic(const RooAbsOptTestStatistic& other, const char* n ame=0); | RooAbsOptTestStatistic(const RooAbsOptTestStatistic& other, const char* n ame=0); | |||
virtual ~RooAbsOptTestStatistic(); | virtual ~RooAbsOptTestStatistic(); | |||
virtual Double_t combinedValue(RooAbsReal** gofArray, Int_t nVal) const ; | virtual Double_t combinedValue(RooAbsReal** gofArray, Int_t nVal) const ; | |||
RooAbsReal& function() { return *_funcClone ; } | RooAbsReal& function() { return *_funcClone ; } | |||
const RooAbsReal& function() const { return *_funcClone ; } | const RooAbsReal& function() const { return *_funcClone ; } | |||
RooAbsData& data() { return *_dataClone ; } | ||||
const RooAbsData& data() const { return *_dataClone ; } | ||||
RooAbsData& data() ; | ||||
const RooAbsData& data() const ; | ||||
Bool_t setData(RooAbsData& data, Bool_t cloneData=kTRUE) ; | Bool_t setData(RooAbsData& data, Bool_t cloneData=kTRUE) ; | |||
virtual const char* cacheUniqueSuffix() const { return Form("_%lx", (ULon g_t)_dataClone) ; } | virtual const char* cacheUniqueSuffix() const { return Form("_%lx", (ULon g_t)_dataClone) ; } | |||
// Override this to be always true to force calculation of likelihood wit hout parameters | // Override this to be always true to force calculation of likelihood wit hout parameters | |||
virtual Bool_t isDerived() const { return kTRUE ; } | virtual Bool_t isDerived() const { return kTRUE ; } | |||
void seal(const char* notice="") { _sealed = kTRUE ; _sealNotice = notice | ||||
; } | ||||
Bool_t isSealed() const { return _sealed ; } | ||||
const char* sealNotice() const { return _sealNotice.Data() ; } | ||||
protected: | protected: | |||
friend class RooAbsReal ; | friend class RooAbsReal ; | |||
virtual Bool_t allowFunctionCache() { return kTRUE ; } | virtual Bool_t allowFunctionCache() { return kTRUE ; } | |||
void constOptimizeTestStatistic(ConstOpCode opcode) ; | void constOptimizeTestStatistic(ConstOpCode opcode) ; | |||
virtual Bool_t redirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive) ; | virtual Bool_t redirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive) ; | |||
virtual void printCompactTreeHook(ostream& os, const char* indent="") ; | virtual void printCompactTreeHook(ostream& os, const char* indent="") ; | |||
virtual RooArgSet requiredExtraObservables() const { return RooArgSet() ; } | virtual RooArgSet requiredExtraObservables() const { return RooArgSet() ; } | |||
void optimizeCaching() ; | void optimizeCaching() ; | |||
void optimizeConstantTerms(Bool_t) ; | void optimizeConstantTerms(Bool_t) ; | |||
RooArgSet* _normSet ; // Pointer to set with observables used for normal ization | RooArgSet* _normSet ; // Pointer to set with observables used for normal ization | |||
RooArgSet* _funcCloneSet ; // Set owning all components of internal clon e of input function | RooArgSet* _funcCloneSet ; // Set owning all components of internal clon e of input function | |||
RooAbsData* _dataClone ; // Pointer to internal clone if input data | RooAbsData* _dataClone ; // Pointer to internal clone if input data | |||
RooAbsReal* _funcClone ; // Pointer to internal clone of input function | RooAbsReal* _funcClone ; // Pointer to internal clone of input function | |||
RooArgSet* _projDeps ; // Set of projected observable | RooArgSet* _projDeps ; // Set of projected observable | |||
Bool_t _ownData ; // Do we own the dataset | Bool_t _ownData ; // Do we own the dataset | |||
Bool_t _sealed ; // Is test statistic sealed -- i.e. no access to da | ||||
ClassDef(RooAbsOptTestStatistic,2) // Abstract base class for optimized t | ta | |||
est statistics | TString _sealNotice ; // User-defined notice shown when reading a sea | |||
led likelihood | ||||
ClassDef(RooAbsOptTestStatistic,3) // Abstract base class for optimized t | ||||
est statistics | ||||
}; | }; | |||
#endif | #endif | |||
End of changes. 5 change blocks. | ||||
5 lines changed or deleted | 14 lines changed or added | |||
RooAbsPdf.h | RooAbsPdf.h | |||
---|---|---|---|---|
skipping to change at line 20 | skipping to change at line 20 | |||
* 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_ABS_PDF | #ifndef ROO_ABS_PDF | |||
#define ROO_ABS_PDF | #define ROO_ABS_PDF | |||
#include "RooAbsReal.h" | #include "RooAbsReal.h" | |||
#include "RooRealIntegral.h" | //#include "RooRealIntegral.h" | |||
#include "RooNameSet.h" | #include "RooNameSet.h" | |||
#include "RooObjCacheManager.h" | #include "RooObjCacheManager.h" | |||
#include "RooCmdArg.h" | #include "RooCmdArg.h" | |||
class RooDataSet; | class RooDataSet; | |||
class RooDataHist ; | class RooDataHist ; | |||
class RooArgSet ; | class RooArgSet ; | |||
class RooRealProxy ; | class RooRealProxy ; | |||
class RooAbsGenContext ; | class RooAbsGenContext ; | |||
class RooFitResult ; | class RooFitResult ; | |||
class RooExtendPdf ; | class RooExtendPdf ; | |||
class RooCategory ; | class RooCategory ; | |||
class TPaveText; | class TPaveText; | |||
class TH1F; | class TH1F; | |||
class TH2F; | class TH2F; | |||
class TList ; | class TList ; | |||
class RooLinkedList ; | class RooLinkedList ; | |||
class RooNumGenConfig ; | class RooNumGenConfig ; | |||
class RooRealIntegral ; | ||||
class RooAbsPdf : public RooAbsReal { | class RooAbsPdf : public RooAbsReal { | |||
public: | public: | |||
// Constructors, assignment etc | // Constructors, assignment etc | |||
RooAbsPdf() ; | RooAbsPdf() ; | |||
RooAbsPdf(const char *name, const char *title=0) ; | RooAbsPdf(const char *name, const char *title=0) ; | |||
RooAbsPdf(const char *name, const char *title, Double_t minVal, Double_t maxVal) ; | RooAbsPdf(const char *name, const char *title, Double_t minVal, Double_t maxVal) ; | |||
// RooAbsPdf(const RooAbsPdf& other, const char* name=0); | // RooAbsPdf(const RooAbsPdf& other, const char* name=0); | |||
virtual ~RooAbsPdf(); | virtual ~RooAbsPdf(); | |||
skipping to change at line 131 | skipping to change at line 132 | |||
// Configuration of MC generators used for this pdf | // Configuration of MC generators used for this pdf | |||
const RooNumGenConfig* getGeneratorConfig() const ; | const RooNumGenConfig* getGeneratorConfig() const ; | |||
static RooNumGenConfig* defaultGeneratorConfig() ; | static RooNumGenConfig* defaultGeneratorConfig() ; | |||
RooNumGenConfig* specialGeneratorConfig() const ; | RooNumGenConfig* specialGeneratorConfig() const ; | |||
RooNumGenConfig* specialGeneratorConfig(Bool_t createOnTheFly) ; | RooNumGenConfig* specialGeneratorConfig(Bool_t createOnTheFly) ; | |||
void setGeneratorConfig() ; | void setGeneratorConfig() ; | |||
void setGeneratorConfig(const RooNumGenConfig& config) ; | void setGeneratorConfig(const RooNumGenConfig& config) ; | |||
// -log(L) fits to binned and unbinned data | // -log(L) fits to binned and unbinned data | |||
virtual RooFitResult* fitTo(RooAbsData& data, RooCmdArg arg1=RooCmdArg::n | virtual RooFitResult* fitTo(RooAbsData& data, const RooCmdArg& arg1=RooCm | |||
one(), RooCmdArg arg2=RooCmdArg::none(), | dArg::none(), const RooCmdArg& arg2=RooCmdArg::none(), | |||
RooCmdArg arg3=RooCmdArg::none(), RooCmdArg | const RooCmdArg& arg3=RooCmdArg::none(), con | |||
arg4=RooCmdArg::none(), RooCmdArg arg5=RooCmdArg::none(), | st RooCmdArg& arg4=RooCmdArg::none(), const RooCmdArg& arg5=RooCmdArg::none | |||
RooCmdArg arg6=RooCmdArg::none(), RooCmdArg | (), | |||
arg7=RooCmdArg::none(), RooCmdArg arg8=RooCmdArg::none()) ; | const RooCmdArg& arg6=RooCmdArg::none(), con | |||
st RooCmdArg& arg7=RooCmdArg::none(), const RooCmdArg& arg8=RooCmdArg::none | ||||
()) ; | ||||
virtual RooFitResult* fitTo(RooAbsData& data, const RooLinkedList& cmdLis t) ; | virtual RooFitResult* fitTo(RooAbsData& data, const RooLinkedList& cmdLis t) ; | |||
virtual RooAbsReal* createNLL(RooAbsData& data, const RooLinkedList& cmdL ist) ; | virtual RooAbsReal* createNLL(RooAbsData& data, const RooLinkedList& cmdL ist) ; | |||
virtual RooAbsReal* createNLL(RooAbsData& data, RooCmdArg arg1=RooCmdArg: | virtual RooAbsReal* createNLL(RooAbsData& data, const RooCmdArg& arg1=Roo | |||
:none(), RooCmdArg arg2=RooCmdArg::none(), | CmdArg::none(), const RooCmdArg& arg2=RooCmdArg::none(), | |||
RooCmdArg arg3=RooCmdArg::none(), RooCmdArg | const RooCmdArg& arg3=RooCmdArg::none(), co | |||
arg4=RooCmdArg::none(), RooCmdArg arg5=RooCmdArg::none(), | nst RooCmdArg& arg4=RooCmdArg::none(), const RooCmdArg& arg5=RooCmdArg::non | |||
RooCmdArg arg6=RooCmdArg::none(), RooCmdArg | e(), | |||
arg7=RooCmdArg::none(), RooCmdArg arg8=RooCmdArg::none()) ; | const RooCmdArg& arg6=RooCmdArg::none(), co | |||
nst RooCmdArg& arg7=RooCmdArg::none(), const RooCmdArg& arg8=RooCmdArg::non | ||||
e()) ; | ||||
// Chi^2 fits to histograms | // Chi^2 fits to histograms | |||
using RooAbsReal::chi2FitTo ; | using RooAbsReal::chi2FitTo ; | |||
using RooAbsReal::createChi2 ; | using RooAbsReal::createChi2 ; | |||
virtual RooFitResult* chi2FitTo(RooDataHist& data, const RooLinkedList& c mdList) ; | virtual RooFitResult* chi2FitTo(RooDataHist& data, const RooLinkedList& c mdList) ; | |||
virtual RooAbsReal* createChi2(RooDataHist& data, RooCmdArg arg1=RooCmdAr | virtual RooAbsReal* createChi2(RooDataHist& data, const RooCmdArg& arg1=R | |||
g::none(), RooCmdArg arg2=RooCmdArg::none(), | ooCmdArg::none(), const RooCmdArg& arg2=RooCmdArg::none(), | |||
RooCmdArg arg3=RooCmdArg::none(), RooCmdAr | const RooCmdArg& arg3=RooCmdArg::none(), c | |||
g arg4=RooCmdArg::none(), RooCmdArg arg5=RooCmdArg::none(), | onst RooCmdArg& arg4=RooCmdArg::none(), const RooCmdArg& arg5=RooCmdArg::no | |||
RooCmdArg arg6=RooCmdArg::none(), RooCmdAr | ne(), | |||
g arg7=RooCmdArg::none(), RooCmdArg arg8=RooCmdArg::none()) ; | const RooCmdArg& arg6=RooCmdArg::none(), c | |||
onst RooCmdArg& arg7=RooCmdArg::none(), const RooCmdArg& arg8=RooCmdArg::no | ||||
ne()) ; | ||||
// Chi^2 fits to X-Y datasets | // Chi^2 fits to X-Y datasets | |||
virtual RooAbsReal* createChi2(RooDataSet& data, const RooLinkedList& cmd List) ; | virtual RooAbsReal* createChi2(RooDataSet& data, const RooLinkedList& cmd List) ; | |||
// Constraint management | // Constraint management | |||
virtual RooArgSet* getConstraints(const RooArgSet& /*observables*/, RooAr gSet& /*constrainedParams*/, Bool_t /*stripDisconnected*/) const { | virtual RooArgSet* getConstraints(const RooArgSet& /*observables*/, RooAr gSet& /*constrainedParams*/, Bool_t /*stripDisconnected*/) const { | |||
// Interface to retrieve constraint terms on this pdf. Default implemen tation returns null | // Interface to retrieve constraint terms on this pdf. Default implemen tation returns null | |||
return 0 ; | return 0 ; | |||
} | } | |||
virtual RooArgSet* getAllConstraints(const RooArgSet& observables, RooArg Set& constrainedParams, Bool_t stripDisconnected=kTRUE) const ; | virtual RooArgSet* getAllConstraints(const RooArgSet& observables, RooArg Set& constrainedParams, Bool_t stripDisconnected=kTRUE) const ; | |||
// Project p.d.f into lower dimensional p.d.f | // Project p.d.f into lower dimensional p.d.f | |||
virtual RooAbsPdf* createProjection(const RooArgSet& iset) ; | virtual RooAbsPdf* createProjection(const RooArgSet& iset) ; | |||
// Create cumulative density function from p.d.f | // Create cumulative density function from p.d.f | |||
RooAbsReal* createCdf(const RooArgSet& iset, const RooArgSet& nset=RooArg Set()) ; | RooAbsReal* createCdf(const RooArgSet& iset, const RooArgSet& nset=RooArg Set()) ; | |||
RooAbsReal* createCdf(const RooArgSet& iset, const RooCmdArg arg1, const | RooAbsReal* createCdf(const RooArgSet& iset, const RooCmdArg& arg1, const | |||
RooCmdArg arg2=RooCmdArg::none(), | RooCmdArg& arg2=RooCmdArg::none(), | |||
const RooCmdArg arg3=RooCmdArg::none(), const RooCmd | const RooCmdArg& arg3=RooCmdArg::none(), const RooCm | |||
Arg arg4=RooCmdArg::none(), | dArg& arg4=RooCmdArg::none(), | |||
const RooCmdArg arg5=RooCmdArg::none(), const RooCmd | const RooCmdArg& arg5=RooCmdArg::none(), const RooCm | |||
Arg arg6=RooCmdArg::none(), | dArg& arg6=RooCmdArg::none(), | |||
const RooCmdArg arg7=RooCmdArg::none(), const RooCmd | const RooCmdArg& arg7=RooCmdArg::none(), const RooCm | |||
Arg arg8=RooCmdArg::none()) ; | dArg& arg8=RooCmdArg::none()) ; | |||
RooAbsReal* createScanCdf(const RooArgSet& iset, const RooArgSet& nset, I nt_t numScanBins, Int_t intOrder) ; | RooAbsReal* createScanCdf(const RooArgSet& iset, const RooArgSet& nset, I nt_t numScanBins, Int_t intOrder) ; | |||
// Function evaluation support | // Function evaluation support | |||
virtual Bool_t traceEvalHook(Double_t value) const ; | virtual Bool_t traceEvalHook(Double_t value) const ; | |||
virtual Double_t getVal(const RooArgSet* set=0) const ; | virtual Double_t getVal(const RooArgSet* set=0) const ; | |||
virtual Double_t getLogVal(const RooArgSet* set=0) const ; | virtual Double_t getLogVal(const RooArgSet* set=0) const ; | |||
void setNormValueCaching(Int_t minNumIntDim, Int_t ipOrder=2) ; | void setNormValueCaching(Int_t minNumIntDim, Int_t ipOrder=2) ; | |||
Int_t minDimNormValueCaching() const { return _minDimNormValueCache ; } | Int_t minDimNormValueCaching() const { return _minDimNormValueCache ; } | |||
Int_t intOrderNormValueCaching() const { return _valueCacheIntOrder ; } | Int_t intOrderNormValueCaching() const { return _valueCacheIntOrder ; } | |||
End of changes. 6 change blocks. | ||||
27 lines changed or deleted | 34 lines changed or added | |||
RooAbsReal.h | RooAbsReal.h | |||
---|---|---|---|---|
skipping to change at line 106 | skipping to change at line 106 | |||
// even if this is deemed unsafe. This default implementation returns a lways flase | // even if this is deemed unsafe. This default implementation returns a lways flase | |||
return kFALSE ; | return kFALSE ; | |||
} | } | |||
virtual void forceNumInt(Bool_t flag=kTRUE) { | virtual void forceNumInt(Bool_t flag=kTRUE) { | |||
// If flag is true, all advertised analytical integrals will be ignored | // If flag is true, all advertised analytical integrals will be ignored | |||
// and all integrals are calculated numerically | // and all integrals are calculated numerically | |||
_forceNumInt = flag ; | _forceNumInt = flag ; | |||
} | } | |||
// Chi^2 fits to histograms | // Chi^2 fits to histograms | |||
virtual RooFitResult* chi2FitTo(RooDataHist& data, RooCmdArg arg1=RooCmdA | virtual RooFitResult* chi2FitTo(RooDataHist& data, const RooCmdArg& arg1= | |||
rg::none(), RooCmdArg arg2=RooCmdArg::none(), | RooCmdArg::none(), const RooCmdArg& arg2=RooCmdArg::none(), | |||
RooCmdArg arg3=RooCmdArg::none(), RooCmdArg | const RooCmdArg& arg3=RooCmdArg::none(), con | |||
arg4=RooCmdArg::none(), RooCmdArg arg5=RooCmdArg::none(), | st RooCmdArg& arg4=RooCmdArg::none(), const RooCmdArg& arg5=RooCmdArg::none | |||
RooCmdArg arg6=RooCmdArg::none(), RooCmdArg | (), | |||
arg7=RooCmdArg::none(), RooCmdArg arg8=RooCmdArg::none()) ; | const RooCmdArg& arg6=RooCmdArg::none(), con | |||
st RooCmdArg& arg7=RooCmdArg::none(), const RooCmdArg& arg8=RooCmdArg::none | ||||
()) ; | ||||
virtual RooFitResult* chi2FitTo(RooDataHist& data, const RooLinkedList& c mdList) ; | virtual RooFitResult* chi2FitTo(RooDataHist& data, const RooLinkedList& c mdList) ; | |||
virtual RooAbsReal* createChi2(RooDataHist& data, const RooLinkedList& cm dList) ; | virtual RooAbsReal* createChi2(RooDataHist& data, const RooLinkedList& cm dList) ; | |||
virtual RooAbsReal* createChi2(RooDataHist& data, RooCmdArg arg1=RooCmdAr | virtual RooAbsReal* createChi2(RooDataHist& data, const RooCmdArg& arg1=R | |||
g::none(), RooCmdArg arg2=RooCmdArg::none(), | ooCmdArg::none(), const RooCmdArg& arg2=RooCmdArg::none(), | |||
RooCmdArg arg3=RooCmdArg::none(), RooCmdAr | const RooCmdArg& arg3=RooCmdArg::none(), c | |||
g arg4=RooCmdArg::none(), RooCmdArg arg5=RooCmdArg::none(), | onst RooCmdArg& arg4=RooCmdArg::none(), const RooCmdArg& arg5=RooCmdArg::no | |||
RooCmdArg arg6=RooCmdArg::none(), RooCmdAr | ne(), | |||
g arg7=RooCmdArg::none(), RooCmdArg arg8=RooCmdArg::none()) ; | const RooCmdArg& arg6=RooCmdArg::none(), c | |||
onst RooCmdArg& arg7=RooCmdArg::none(), const RooCmdArg& arg8=RooCmdArg::no | ||||
ne()) ; | ||||
// Chi^2 fits to X-Y datasets | // Chi^2 fits to X-Y datasets | |||
virtual RooFitResult* chi2FitTo(RooDataSet& xydata, RooCmdArg arg1=RooCmd | virtual RooFitResult* chi2FitTo(RooDataSet& xydata, const RooCmdArg& arg1 | |||
Arg::none(), RooCmdArg arg2=RooCmdArg::none(), | =RooCmdArg::none(), const RooCmdArg& arg2=RooCmdArg::none(), | |||
RooCmdArg arg3=RooCmdArg::none(), RooCmdArg | const RooCmdArg& arg3=RooCmdArg::none(), con | |||
arg4=RooCmdArg::none(), RooCmdArg arg5=RooCmdArg::none(), | st RooCmdArg& arg4=RooCmdArg::none(), const RooCmdArg& arg5=RooCmdArg::none | |||
RooCmdArg arg6=RooCmdArg::none(), RooCmdArg | (), | |||
arg7=RooCmdArg::none(), RooCmdArg arg8=RooCmdArg::none()) ; | const RooCmdArg& arg6=RooCmdArg::none(), con | |||
st RooCmdArg& arg7=RooCmdArg::none(), const RooCmdArg& arg8=RooCmdArg::none | ||||
()) ; | ||||
virtual RooFitResult* chi2FitTo(RooDataSet& xydata, const RooLinkedList& cmdList) ; | virtual RooFitResult* chi2FitTo(RooDataSet& xydata, const RooLinkedList& cmdList) ; | |||
virtual RooAbsReal* createChi2(RooDataSet& data, const RooLinkedList& cmd List) ; | virtual RooAbsReal* createChi2(RooDataSet& data, const RooLinkedList& cmd List) ; | |||
virtual RooAbsReal* createChi2(RooDataSet& data, RooCmdArg arg1=RooCmdArg | virtual RooAbsReal* createChi2(RooDataSet& data, const RooCmdArg& arg1=Ro | |||
::none(), RooCmdArg arg2=RooCmdArg::none(), | oCmdArg::none(), const RooCmdArg& arg2=RooCmdArg::none(), | |||
RooCmdArg arg3=RooCmdArg::none(), RooCmd | const RooCmdArg& arg3=RooCmdArg::none(), | |||
Arg arg4=RooCmdArg::none(), RooCmdArg arg5=RooCmdArg::none(), | const RooCmdArg& arg4=RooCmdArg::none(), const RooCmdArg& arg5=RooCmdArg:: | |||
RooCmdArg arg6=RooCmdArg::none(), RooCmd | none(), | |||
Arg arg7=RooCmdArg::none(), RooCmdArg arg8=RooCmdArg::none()) ; | const RooCmdArg& arg6=RooCmdArg::none(), | |||
const RooCmdArg& arg7=RooCmdArg::none(), const RooCmdArg& arg8=RooCmdArg:: | ||||
none()) ; | ||||
virtual RooAbsReal* createProfile(const RooArgSet& paramsOfInterest) ; | virtual RooAbsReal* createProfile(const RooArgSet& paramsOfInterest) ; | |||
RooAbsReal* createIntegral(const RooArgSet& iset, const RooCmdArg arg1, c | RooAbsReal* createIntegral(const RooArgSet& iset, const RooCmdArg& arg1, | |||
onst RooCmdArg arg2=RooCmdArg::none(), | const RooCmdArg& arg2=RooCmdArg::none(), | |||
const RooCmdArg arg3=RooCmdArg::none(), const | const RooCmdArg& arg3=RooCmdArg::none(), const | |||
RooCmdArg arg4=RooCmdArg::none(), | RooCmdArg& arg4=RooCmdArg::none(), | |||
const RooCmdArg arg5=RooCmdArg::none(), const R | const RooCmdArg& arg5=RooCmdArg::none(), const | |||
ooCmdArg arg6=RooCmdArg::none(), | RooCmdArg& arg6=RooCmdArg::none(), | |||
const RooCmdArg arg7=RooCmdArg::none(), const R | const RooCmdArg& arg7=RooCmdArg::none(), const | |||
ooCmdArg arg8=RooCmdArg::none()) const ; | RooCmdArg& arg8=RooCmdArg::none()) const ; | |||
RooAbsReal* createIntegral(const RooArgSet& iset, const char* rangeName) const { | RooAbsReal* createIntegral(const RooArgSet& iset, const char* rangeName) const { | |||
// Create integral over observables in iset in range named rangeName | // Create integral over observables in iset in range named rangeName | |||
return createIntegral(iset,0,0,rangeName) ; | return createIntegral(iset,0,0,rangeName) ; | |||
} | } | |||
RooAbsReal* createIntegral(const RooArgSet& iset, const RooArgSet& nset, const char* rangeName=0) const { | RooAbsReal* createIntegral(const RooArgSet& iset, const RooArgSet& nset, const char* rangeName=0) const { | |||
// Create integral over observables in iset in range named rangeName wi th integrand normalized over observables in nset | // Create integral over observables in iset in range named rangeName wi th integrand normalized over observables in nset | |||
return createIntegral(iset,&nset,0,rangeName) ; | return createIntegral(iset,&nset,0,rangeName) ; | |||
} | } | |||
RooAbsReal* createIntegral(const RooArgSet& iset, const RooArgSet& nset, const RooNumIntConfig& cfg, const char* rangeName=0) const { | RooAbsReal* createIntegral(const RooArgSet& iset, const RooArgSet& nset, const RooNumIntConfig& cfg, const char* rangeName=0) const { | |||
skipping to change at line 155 | skipping to change at line 155 | |||
return createIntegral(iset,&nset,&cfg,rangeName) ; | return createIntegral(iset,&nset,&cfg,rangeName) ; | |||
} | } | |||
RooAbsReal* createIntegral(const RooArgSet& iset, const RooNumIntConfig& cfg, const char* rangeName=0) const { | RooAbsReal* createIntegral(const RooArgSet& iset, const RooNumIntConfig& cfg, const char* rangeName=0) const { | |||
// Create integral over observables in iset in range named rangeName us ing specified configuration for any numeric integration | // Create integral over observables in iset in range named rangeName us ing specified configuration for any numeric integration | |||
return createIntegral(iset,0,&cfg,rangeName) ; | return createIntegral(iset,0,&cfg,rangeName) ; | |||
} | } | |||
virtual RooAbsReal* createIntegral(const RooArgSet& iset, const RooArgSet * nset=0, const RooNumIntConfig* cfg=0, const char* rangeName=0) const ; | virtual RooAbsReal* createIntegral(const RooArgSet& iset, const RooArgSet * nset=0, const RooNumIntConfig* cfg=0, const char* rangeName=0) const ; | |||
// Create running integrals | // Create running integrals | |||
RooAbsReal* createRunningIntegral(const RooArgSet& iset, const RooArgSet& nset=RooArgSet()) ; | RooAbsReal* createRunningIntegral(const RooArgSet& iset, const RooArgSet& nset=RooArgSet()) ; | |||
RooAbsReal* createRunningIntegral(const RooArgSet& iset, const RooCmdArg | RooAbsReal* createRunningIntegral(const RooArgSet& iset, const RooCmdArg& | |||
arg1, const RooCmdArg arg2=RooCmdArg::none(), | arg1, const RooCmdArg& arg2=RooCmdArg::none(), | |||
const RooCmdArg arg3=RooCmdArg::none(), const RooCmd | const RooCmdArg& arg3=RooCmdArg::none(), const RooCm | |||
Arg arg4=RooCmdArg::none(), | dArg& arg4=RooCmdArg::none(), | |||
const RooCmdArg arg5=RooCmdArg::none(), const RooCmd | const RooCmdArg& arg5=RooCmdArg::none(), const RooCm | |||
Arg arg6=RooCmdArg::none(), | dArg& arg6=RooCmdArg::none(), | |||
const RooCmdArg arg7=RooCmdArg::none(), const RooCmd | const RooCmdArg& arg7=RooCmdArg::none(), const RooCm | |||
Arg arg8=RooCmdArg::none()) ; | dArg& arg8=RooCmdArg::none()) ; | |||
RooAbsReal* createIntRI(const RooArgSet& iset, const RooArgSet& nset=RooA rgSet()) ; | RooAbsReal* createIntRI(const RooArgSet& iset, const RooArgSet& nset=RooA rgSet()) ; | |||
RooAbsReal* createScanRI(const RooArgSet& iset, const RooArgSet& nset, In t_t numScanBins, Int_t intOrder) ; | RooAbsReal* createScanRI(const RooArgSet& iset, const RooArgSet& nset, In t_t numScanBins, Int_t intOrder) ; | |||
// Optimized accept/reject generator support | // Optimized accept/reject generator support | |||
virtual Int_t getMaxVal(const RooArgSet& vars) const ; | virtual Int_t getMaxVal(const RooArgSet& vars) const ; | |||
virtual Double_t maxVal(Int_t code) const ; | virtual Double_t maxVal(Int_t code) const ; | |||
virtual Int_t minTrialSamples(const RooArgSet& /*arGenObs*/) const { retu rn 0 ; } | virtual Int_t minTrialSamples(const RooArgSet& /*arGenObs*/) const { retu rn 0 ; } | |||
// Plotting options | // Plotting options | |||
void setPlotLabel(const char *label); | void setPlotLabel(const char *label); | |||
skipping to change at line 236 | skipping to change at line 236 | |||
// Printing interface (human readable) | // Printing interface (human readable) | |||
virtual void printValue(ostream& os) const ; | virtual void printValue(ostream& os) const ; | |||
virtual void printMultiline(ostream& os, Int_t contents, Bool_t verbose=k FALSE, TString indent="") const ; | virtual void printMultiline(ostream& os, Int_t contents, Bool_t verbose=k FALSE, TString indent="") const ; | |||
static void setCacheCheck(Bool_t flag) ; | static void setCacheCheck(Bool_t flag) ; | |||
// Evaluation error logging | // Evaluation error logging | |||
class EvalError { | class EvalError { | |||
public: | public: | |||
EvalError() { _msg[0] = 0 ; _srvval[0] = 0 ; } | EvalError() { _msg[0] = 0 ; _srvval[0] = 0 ; } | |||
EvalError(const EvalError& other) { strcpy(_msg,other._msg) ; strcpy(_s rvval,other._srvval) ; } ; | EvalError(const EvalError& other) { strlcpy(_msg,other._msg,1024) ; str lcpy(_srvval,other._srvval,1024) ; } ; | |||
void setMessage(const char* tmp) ; | void setMessage(const char* tmp) ; | |||
void setServerValues(const char* tmp) ; | void setServerValues(const char* tmp) ; | |||
char _msg[1024] ; | char _msg[1024] ; | |||
char _srvval[1024] ; | char _srvval[1024] ; | |||
} ; | } ; | |||
enum ErrorLoggingMode { PrintErrors, CollectErrors, CountErrors } ; | enum ErrorLoggingMode { PrintErrors, CollectErrors, CountErrors } ; | |||
static ErrorLoggingMode evalErrorLoggingMode() ; | static ErrorLoggingMode evalErrorLoggingMode() ; | |||
static void setEvalErrorLoggingMode(ErrorLoggingMode m) ; | static void setEvalErrorLoggingMode(ErrorLoggingMode m) ; | |||
void logEvalError(const char* message, const char* serverValueString=0) c onst ; | void logEvalError(const char* message, const char* serverValueString=0) c onst ; | |||
skipping to change at line 361 | skipping to change at line 361 | |||
Double_t _plotMax ; // Maximum of plot range | Double_t _plotMax ; // Maximum of plot range | |||
Int_t _plotBins ; // Number of plot bins | Int_t _plotBins ; // Number of plot bins | |||
mutable Double_t _value ; // Cache for current value of object | mutable Double_t _value ; // Cache for current value of object | |||
TString _unit ; // Unit for objects value | TString _unit ; // Unit for objects value | |||
TString _label ; // Plot label for objects value | TString _label ; // Plot label for objects value | |||
Bool_t _forceNumInt ; // Force numerical integration if flag set | Bool_t _forceNumInt ; // Force numerical integration if flag set | |||
mutable Float_t _floatValue ; //! Transient cache for floating point valu es from tree branches | mutable Float_t _floatValue ; //! Transient cache for floating point valu es from tree branches | |||
mutable Int_t _intValue ; //! Transient cache for integer values from tree branches | mutable Int_t _intValue ; //! Transient cache for integer values from tree branches | |||
mutable UChar_t _byteValue ; //! Transient cache for byte values from tr ee branches | mutable UChar_t _byteValue ; //! Transient cache for byte values from tr ee branches | |||
mutable Char_t _sbyteValue ; //! Transient cache for signed byte values from tree branches | ||||
mutable UInt_t _uintValue ; //! Transient cache for unsigned integer va lues from tree branches | mutable UInt_t _uintValue ; //! Transient cache for unsigned integer va lues from tree branches | |||
friend class RooAbsPdf ; | friend class RooAbsPdf ; | |||
friend class RooAbsAnaConvPdf ; | friend class RooAbsAnaConvPdf ; | |||
friend class RooRealProxy ; | friend class RooRealProxy ; | |||
RooNumIntConfig* _specIntegratorConfig ; // Numeric integrator configurat ion specific for this object | RooNumIntConfig* _specIntegratorConfig ; // Numeric integrator configurat ion specific for this object | |||
Bool_t _treeVar ; // !do not persist | Bool_t _treeVar ; // !do not persist | |||
End of changes. 8 change blocks. | ||||
41 lines changed or deleted | 50 lines changed or added | |||
RooAcceptReject.h | RooAcceptReject.h | |||
---|---|---|---|---|
skipping to change at line 31 | skipping to change at line 31 | |||
#include "RooArgSet.h" | #include "RooArgSet.h" | |||
class RooAbsReal; | class RooAbsReal; | |||
class RooRealVar; | class RooRealVar; | |||
class RooDataSet; | class RooDataSet; | |||
class RooRealBinding; | class RooRealBinding; | |||
class RooNumGenFactory ; | class RooNumGenFactory ; | |||
class RooAcceptReject : public RooAbsNumGenerator { | class RooAcceptReject : public RooAbsNumGenerator { | |||
public: | public: | |||
RooAcceptReject() : _nextCatVar(0), _nextRealVar(0) {} ; | RooAcceptReject() : _nextCatVar(0), _nextRealVar(0) { | |||
// coverity[UNINIT_CTOR] | ||||
} ; | ||||
RooAcceptReject(const RooAbsReal &func, const RooArgSet &genVars, const R ooNumGenConfig& config, Bool_t verbose=kFALSE, const RooAbsReal* maxFuncVal =0); | RooAcceptReject(const RooAbsReal &func, const RooArgSet &genVars, const R ooNumGenConfig& config, Bool_t verbose=kFALSE, const RooAbsReal* maxFuncVal =0); | |||
RooAbsNumGenerator* clone(const RooAbsReal& func, const RooArgSet& genVar s, const RooArgSet& /*condVars*/, | RooAbsNumGenerator* clone(const RooAbsReal& func, const RooArgSet& genVar s, const RooArgSet& /*condVars*/, | |||
const RooNumGenConfig& config, Bool_t verbose=kF ALSE, const RooAbsReal* maxFuncVal=0) const { | const RooNumGenConfig& config, Bool_t verbose=kF ALSE, const RooAbsReal* maxFuncVal=0) const { | |||
return new RooAcceptReject(func,genVars,config,verbose,maxFuncVal) ; | return new RooAcceptReject(func,genVars,config,verbose,maxFuncVal) ; | |||
} | } | |||
virtual ~RooAcceptReject(); | virtual ~RooAcceptReject(); | |||
const RooArgSet *generateEvent(UInt_t remaining, Double_t& resampleRatio) ; | const RooArgSet *generateEvent(UInt_t remaining, Double_t& resampleRatio) ; | |||
Double_t getFuncMax() ; | Double_t getFuncMax() ; | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
RooAddModel.h | RooAddModel.h | |||
---|---|---|---|---|
skipping to change at line 21 | skipping to change at line 21 | |||
* * | * * | |||
* 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_ADD_MODEL | #ifndef ROO_ADD_MODEL | |||
#define ROO_ADD_MODEL | #define ROO_ADD_MODEL | |||
#include "RooResolutionModel.h" | #include "RooResolutionModel.h" | |||
#include "RooListProxy.h" | #include "RooListProxy.h" | |||
#include "RooSetProxy.h" | ||||
#include "RooAICRegistry.h" | #include "RooAICRegistry.h" | |||
#include "RooNormSetCache.h" | #include "RooNormSetCache.h" | |||
#include "RooNameSet.h" | #include "RooNameSet.h" | |||
#include "RooCacheManager.h" | #include "RooCacheManager.h" | |||
#include "RooObjCacheManager.h" | #include "RooObjCacheManager.h" | |||
class RooAddModel : public RooResolutionModel { | class RooAddModel : public RooResolutionModel { | |||
public: | public: | |||
RooAddModel() ; | RooAddModel() ; | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
RooAddPdf.h | RooAddPdf.h | |||
---|---|---|---|---|
skipping to change at line 21 | skipping to change at line 21 | |||
* * | * * | |||
* 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_ADD_PDF | #ifndef ROO_ADD_PDF | |||
#define ROO_ADD_PDF | #define ROO_ADD_PDF | |||
#include "RooAbsPdf.h" | #include "RooAbsPdf.h" | |||
#include "RooListProxy.h" | #include "RooListProxy.h" | |||
#include "RooSetProxy.h" | ||||
#include "RooAICRegistry.h" | #include "RooAICRegistry.h" | |||
#include "RooNormSetCache.h" | #include "RooNormSetCache.h" | |||
#include "RooNameSet.h" | #include "RooNameSet.h" | |||
#include "RooCacheManager.h" | #include "RooCacheManager.h" | |||
#include "RooObjCacheManager.h" | #include "RooObjCacheManager.h" | |||
#include "RooNameReg.h" | #include "RooNameReg.h" | |||
class RooAddPdf : public RooAbsPdf { | class RooAddPdf : public RooAbsPdf { | |||
public: | public: | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
RooAddition.h | RooAddition.h | |||
---|---|---|---|---|
skipping to change at line 21 | skipping to change at line 21 | |||
* * | * * | |||
* 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_ADDITION | #ifndef ROO_ADDITION | |||
#define ROO_ADDITION | #define ROO_ADDITION | |||
#include "RooAbsReal.h" | #include "RooAbsReal.h" | |||
#include "RooListProxy.h" | #include "RooListProxy.h" | |||
#include "RooObjCacheManager.h" | ||||
class RooRealVar; | class RooRealVar; | |||
class RooArgList ; | class RooArgList ; | |||
class RooAddition : public RooAbsReal { | class RooAddition : public RooAbsReal { | |||
public: | public: | |||
RooAddition() ; | RooAddition() ; | |||
RooAddition(const char *name, const char *title, const RooArgSet& sumSet, Bool_t takeOwnerShip=kFALSE) ; | RooAddition(const char *name, const char *title, const RooArgSet& sumSet, Bool_t takeOwnerShip=kFALSE) ; | |||
RooAddition(const char *name, const char *title, const RooArgList& sumSet 1, const RooArgList& sumSet2, Bool_t takeOwnerShip=kFALSE) ; | RooAddition(const char *name, const char *title, const RooArgList& sumSet 1, const RooArgList& sumSet2, Bool_t takeOwnerShip=kFALSE) ; | |||
virtual ~RooAddition() ; | virtual ~RooAddition() ; | |||
RooAddition(const RooAddition& other, const char* name = 0); | RooAddition(const RooAddition& other, const char* name = 0); | |||
virtual TObject* clone(const char* newname) const { return new RooAdditio n(*this, newname); } | virtual TObject* clone(const char* newname) const { return new RooAdditio n(*this, newname); } | |||
virtual Double_t defaultErrorLevel() const ; | virtual Double_t defaultErrorLevel() const ; | |||
void printMetaArgs(ostream& os) const ; | void printMetaArgs(ostream& os) const ; | |||
const RooArgList& list1() const { return _set1 ; } | const RooArgList& list1() const { return _set ; } | |||
const RooArgList& list2() const { return _set2 ; } | const RooArgList& list() const { return _set ; } | |||
virtual Bool_t forceAnalyticalInt(const RooAbsArg& /*dep*/) const { | ||||
// Force RooRealIntegral to offer all observables for internal integr | ||||
ation | ||||
return kTRUE ; | ||||
} | ||||
Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& numVars, const | ||||
char* rangeName=0) const; | ||||
Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ; | ||||
protected: | protected: | |||
RooArgList _ownedList ; // List of owned components | RooArgList _ownedList ; // List of owned components | |||
RooListProxy _set1 ; // First set of terms to be summed | RooListProxy _set ; // set of terms to be summed | |||
RooListProxy _set2 ; // Second set of terms to be summed | mutable TIterator* _setIter ; //! Iterator over set | |||
mutable TIterator* _setIter1 ; //! Iterator over set1 | ||||
mutable TIterator* _setIter2 ; //! Iterator over set2 | class CacheElem : public RooAbsCacheElement { | |||
public: | ||||
virtual ~CacheElem(); | ||||
// Payload | ||||
RooArgList _I ; | ||||
virtual RooArgList containedArgs(Action) ; | ||||
}; | ||||
mutable RooObjCacheManager _cacheMgr ; // The cache manager | ||||
Double_t evaluate() const; | Double_t evaluate() const; | |||
ClassDef(RooAddition,1) // Sum of RooAbsReal objects | ClassDef(RooAddition,2) // Sum of RooAbsReal objects | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
8 lines changed or deleted | 25 lines changed or added | |||
RooArgProxy.h | RooArgProxy.h | |||
---|---|---|---|---|
skipping to change at line 27 | skipping to change at line 27 | |||
#define ROO_ARG_PROXY | #define ROO_ARG_PROXY | |||
#include "TNamed.h" | #include "TNamed.h" | |||
#include "RooAbsProxy.h" | #include "RooAbsProxy.h" | |||
#include "RooAbsArg.h" | #include "RooAbsArg.h" | |||
class RooArgProxy : public TNamed, public RooAbsProxy { | class RooArgProxy : public TNamed, public RooAbsProxy { | |||
public: | public: | |||
// Constructors, assignment etc. | // Constructors, assignment etc. | |||
RooArgProxy() : _owner(0), _arg(0), _ownArg(kFALSE) { | RooArgProxy() : _owner(0), _arg(0), _valueServer(kFALSE), _shapeServer(kF ALSE), _isFund(kTRUE), _ownArg(kFALSE) { | |||
// Default constructor | // Default constructor | |||
} ; | } ; | |||
RooArgProxy(const char* name, const char* desc, RooAbsArg* owner, | RooArgProxy(const char* name, const char* desc, RooAbsArg* owner, | |||
Bool_t valueServer, Bool_t shapeServer, Bool_t proxyOwnsArg=kF ALSE) ; | Bool_t valueServer, Bool_t shapeServer, Bool_t proxyOwnsArg=kF ALSE) ; | |||
RooArgProxy(const char* name, const char* desc, RooAbsArg* owner, RooAbsA rg& arg, | RooArgProxy(const char* name, const char* desc, RooAbsArg* owner, RooAbsA rg& arg, | |||
Bool_t valueServer, Bool_t shapeServer, Bool_t proxyOwnsArg=kF ALSE) ; | Bool_t valueServer, Bool_t shapeServer, Bool_t proxyOwnsArg=kF ALSE) ; | |||
RooArgProxy(const char* name, RooAbsArg* owner, const RooArgProxy& other) ; | RooArgProxy(const char* name, RooAbsArg* owner, const RooArgProxy& other) ; | |||
virtual ~RooArgProxy() ; | virtual ~RooArgProxy() ; | |||
inline RooAbsArg* absArg() const { | inline RooAbsArg* absArg() const { | |||
// Return pointer to contained argument | // Return pointer to contained argument | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
RooCFunction1Binding.h | RooCFunction1Binding.h | |||
---|---|---|---|---|
/************************************************************************** *** | /************************************************************************** *** | |||
* Project: RooFit * | * Project: RooFit * | |||
* Package: RooFitCore * | * Package: RooFitCore * | |||
* File: $Id: RooCFunction1Binding.h 35299 2010-09-15 12:51:24Z pcanal $ | * File: $Id: RooCFunction1Binding.h 36207 2010-10-08 19:00:29Z wouter $ | |||
* Authors: * | * Authors: * | |||
* WV, Wouter Verkerke, NIKHEF, verkerke@nikhef.nl * | * WV, Wouter Verkerke, NIKHEF, verkerke@nikhef.nl * | |||
* * | * * | |||
* Copyright (c) 2000-2008, NIKHEF, Regents of the University of California * | * Copyright (c) 2000-2008, NIKHEF, Regents of the University of California * | |||
* and Stanford University. All rights reserved. * | * and Stanford University. All rights reserved. * | |||
* * | * * | |||
************************************************************************** ***/ | ************************************************************************** ***/ | |||
#ifndef ROOCFUNCTION1BINDING | #ifndef ROOCFUNCTION1BINDING | |||
#define ROOCFUNCTION1BINDING | #define ROOCFUNCTION1BINDING | |||
skipping to change at line 163 | skipping to change at line 163 | |||
// issues and a dummy null function is substituted. When the registered f unction | // issues and a dummy null function is substituted. When the registered f unction | |||
// name can not be mapped to a function pointer an ERROR is issued and a pointer | // name can not be mapped to a function pointer an ERROR is issued and a pointer | |||
// to the dummy null function is substituted | // to the dummy null function is substituted | |||
typedef ::RooCFunction1Ref<VO,VI> thisClass; | typedef ::RooCFunction1Ref<VO,VI> thisClass; | |||
// Stream an object of class RooCFunction1Ref | // Stream an object of class RooCFunction1Ref | |||
if (R__b.IsReading()) { | if (R__b.IsReading()) { | |||
UInt_t R__s, R__c; | UInt_t R__s, R__c; | |||
R__b.ReadVersion(&R__s, &R__c); | Version_t R__v = R__b.ReadVersion(&R__s, &R__c); | |||
// Read name from file | // Read name from file | |||
TString tmpName ; | TString tmpName ; | |||
tmpName.Streamer(R__b) ; | tmpName.Streamer(R__b) ; | |||
if (tmpName=="UNKNOWN") { | if (tmpName=="UNKNOWN" && R__v>0) { | |||
coutW(ObjectHandling) << "WARNING: Objected embeds function pointer to unknown function, object will not be functional" << endl ; | coutW(ObjectHandling) << "WARNING: Objected embeds function pointer to unknown function, object will not be functional" << endl ; | |||
_ptr = dummyFunction ; | _ptr = dummyFunction ; | |||
} else { | } else { | |||
// Lookup pointer to C function wih given name | // Lookup pointer to C function wih given name | |||
_ptr = fmap().lookupPtr(tmpName.Data()) ; | _ptr = fmap().lookupPtr(tmpName.Data()) ; | |||
if (_ptr==0) { | if (_ptr==0) { | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
RooCFunction2Binding.h | RooCFunction2Binding.h | |||
---|---|---|---|---|
/************************************************************************** *** | /************************************************************************** *** | |||
* Project: RooFit * | * Project: RooFit * | |||
* Package: RooFitCore * | * Package: RooFitCore * | |||
* File: $Id: RooCFunction2Binding.h 35299 2010-09-15 12:51:24Z pcanal $ | * File: $Id: RooCFunction2Binding.h 36207 2010-10-08 19:00:29Z wouter $ | |||
* Authors: * | * Authors: * | |||
* WV, Wouter Verkerke, NIKHEF, verkerke@nikhef.nl * | * WV, Wouter Verkerke, NIKHEF, verkerke@nikhef.nl * | |||
* * | * * | |||
* Copyright (c) 2000-2008, NIKHEF, Regents of the University of California * | * Copyright (c) 2000-2008, NIKHEF, Regents of the University of California * | |||
* and Stanford University. All rights reserved. * | * and Stanford University. All rights reserved. * | |||
* * | * * | |||
************************************************************************** ***/ | ************************************************************************** ***/ | |||
#ifndef ROOCFUNCTION2BINDING | #ifndef ROOCFUNCTION2BINDING | |||
#define ROOCFUNCTION2BINDING | #define ROOCFUNCTION2BINDING | |||
skipping to change at line 173 | skipping to change at line 173 | |||
// issues and a dummy null function is substituted. When the registered f unction | // issues and a dummy null function is substituted. When the registered f unction | |||
// name can not be mapped to a function pointer an ERROR is issued and a pointer | // name can not be mapped to a function pointer an ERROR is issued and a pointer | |||
// to the dummy null function is substituted | // to the dummy null function is substituted | |||
typedef ::RooCFunction2Ref<VO,VI1,VI2> thisClass; | typedef ::RooCFunction2Ref<VO,VI1,VI2> thisClass; | |||
// Stream an object of class RooCFunction2Ref | // Stream an object of class RooCFunction2Ref | |||
if (R__b.IsReading()) { | if (R__b.IsReading()) { | |||
UInt_t R__s, R__c; | UInt_t R__s, R__c; | |||
R__b.ReadVersion(&R__s, &R__c); | Version_t R__v = R__b.ReadVersion(&R__s, &R__c); | |||
// Read name from file | // Read name from file | |||
TString tmpName ; | TString tmpName ; | |||
tmpName.Streamer(R__b) ; | tmpName.Streamer(R__b) ; | |||
if (tmpName=="UNKNOWN") { | if (tmpName=="UNKNOWN" && R__v>0) { | |||
coutW(ObjectHandling) << "WARNING: Objected embeds function pointer to unknown function, object will not be functional" << endl ; | coutW(ObjectHandling) << "WARNING: Objected embeds function pointer to unknown function, object will not be functional" << endl ; | |||
_ptr = dummyFunction ; | _ptr = dummyFunction ; | |||
} else { | } else { | |||
// Lookup pointer to C function wih given name | // Lookup pointer to C function wih given name | |||
_ptr = fmap().lookupPtr(tmpName.Data()) ; | _ptr = fmap().lookupPtr(tmpName.Data()) ; | |||
if (_ptr==0) { | if (_ptr==0) { | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
RooCFunction3Binding.h | RooCFunction3Binding.h | |||
---|---|---|---|---|
/************************************************************************** *** | /************************************************************************** *** | |||
* Project: RooFit * | * Project: RooFit * | |||
* Package: RooFitCore * | * Package: RooFitCore * | |||
* File: $Id: RooCFunction3Binding.h 35299 2010-09-15 12:51:24Z pcanal $ | * File: $Id: RooCFunction3Binding.h 36207 2010-10-08 19:00:29Z wouter $ | |||
* Authors: * WV, Wouter Verkerke, NIKHEF, verkerke@nikhef.nl * | * Authors: * WV, Wouter Verkerke, NIKHEF, verkerke@nikhef.nl * | |||
* * | * * | |||
* Copyright (c) 2000-2008, NIKHEF, Regents of the University of California * | * Copyright (c) 2000-2008, NIKHEF, Regents of the University of California * | |||
* and Stanford University. All rights reserved. * | * and Stanford University. All rights reserved. * | |||
* * | * * | |||
************************************************************************** ***/ | ************************************************************************** ***/ | |||
#ifndef ROOCFUNCTION3BINDING | #ifndef ROOCFUNCTION3BINDING | |||
#define ROOCFUNCTION3BINDING | #define ROOCFUNCTION3BINDING | |||
skipping to change at line 176 | skipping to change at line 176 | |||
// issues and a dummy null function is substituted. When the registered f unction | // issues and a dummy null function is substituted. When the registered f unction | |||
// name can not be mapped to a function pointer an ERROR is issued and a pointer | // name can not be mapped to a function pointer an ERROR is issued and a pointer | |||
// to the dummy null function is substituted | // to the dummy null function is substituted | |||
typedef ::RooCFunction3Ref<VO,VI1,VI2,VI3> thisClass; | typedef ::RooCFunction3Ref<VO,VI1,VI2,VI3> thisClass; | |||
// Stream an object of class RooCFunction3Ref | // Stream an object of class RooCFunction3Ref | |||
if (R__b.IsReading()) { | if (R__b.IsReading()) { | |||
UInt_t R__s, R__c; | UInt_t R__s, R__c; | |||
R__b.ReadVersion(&R__s, &R__c); | Version_t R__v = R__b.ReadVersion(&R__s, &R__c); | |||
// Read name from file | // Read name from file | |||
TString tmpName ; | TString tmpName ; | |||
tmpName.Streamer(R__b) ; | tmpName.Streamer(R__b) ; | |||
if (tmpName=="UNKNOWN") { | if (tmpName=="UNKNOWN" && R__v>0) { | |||
coutW(ObjectHandling) << "WARNING: Objected embeds function pointer to unknown function, object will not be functional" << endl ; | coutW(ObjectHandling) << "WARNING: Objected embeds function pointer to unknown function, object will not be functional" << endl ; | |||
_ptr = dummyFunction ; | _ptr = dummyFunction ; | |||
} else { | } else { | |||
// Lookup pointer to C function wih given name | // Lookup pointer to C function wih given name | |||
_ptr = fmap().lookupPtr(tmpName.Data()) ; | _ptr = fmap().lookupPtr(tmpName.Data()) ; | |||
if (_ptr==0) { | if (_ptr==0) { | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
RooCFunction4Binding.h | RooCFunction4Binding.h | |||
---|---|---|---|---|
/************************************************************************** *** | /************************************************************************** *** | |||
* Project: RooFit * | * Project: RooFit * | |||
* Package: RooFitCore * | * Package: RooFitCore * | |||
* File: $Id: RooCFunction4Binding.h 35299 2010-09-15 12:51:24Z pcanal $ | * File: $Id: RooCFunction4Binding.h 36207 2010-10-08 19:00:29Z wouter $ | |||
* Authors: * | * Authors: * | |||
* WV, Wouter Verkerke, NIKHEF, verkerke@nikhef.nl * | * WV, Wouter Verkerke, NIKHEF, verkerke@nikhef.nl * | |||
* * | * * | |||
* Copyright (c) 2000-2008, NIKHEF, Regents of the University of California * | * Copyright (c) 2000-2008, NIKHEF, Regents of the University of California * | |||
* and Stanford University. All rights reserved. * | * and Stanford University. All rights reserved. * | |||
* * | * * | |||
************************************************************************** ***/ | ************************************************************************** ***/ | |||
#ifndef ROOCFUNCTION4BINDING | #ifndef ROOCFUNCTION4BINDING | |||
#define ROOCFUNCTION4BINDING | #define ROOCFUNCTION4BINDING | |||
skipping to change at line 170 | skipping to change at line 170 | |||
// issues and a dummy null function is substituted. When the registered f unction | // issues and a dummy null function is substituted. When the registered f unction | |||
// name can not be mapped to a function pointer an ERROR is issued and a pointer | // name can not be mapped to a function pointer an ERROR is issued and a pointer | |||
// to the dummy null function is substituted | // to the dummy null function is substituted | |||
typedef ::RooCFunction4Ref<VO,VI1,VI2,VI3,VI4> thisClass; | typedef ::RooCFunction4Ref<VO,VI1,VI2,VI3,VI4> thisClass; | |||
// Stream an object of class RooCFunction4Ref | // Stream an object of class RooCFunction4Ref | |||
if (R__b.IsReading()) { | if (R__b.IsReading()) { | |||
UInt_t R__s, R__c; | UInt_t R__s, R__c; | |||
R__b.ReadVersion(&R__s, &R__c); | Version_t R__v = R__b.ReadVersion(&R__s, &R__c); | |||
// Read name from file | // Read name from file | |||
TString tmpName ; | TString tmpName ; | |||
tmpName.Streamer(R__b) ; | tmpName.Streamer(R__b) ; | |||
if (tmpName=="UNKNOWN") { | if (tmpName=="UNKNOWN" && R__v>0) { | |||
coutW(ObjectHandling) << "WARNING: Objected embeds function pointer to unknown function, object will not be functional" << endl ; | coutW(ObjectHandling) << "WARNING: Objected embeds function pointer to unknown function, object will not be functional" << endl ; | |||
_ptr = dummyFunction ; | _ptr = dummyFunction ; | |||
} else { | } else { | |||
// Lookup pointer to C function wih given name | // Lookup pointer to C function wih given name | |||
_ptr = fmap().lookupPtr(tmpName.Data()) ; | _ptr = fmap().lookupPtr(tmpName.Data()) ; | |||
if (_ptr==0) { | if (_ptr==0) { | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
RooCachedReal.h | RooCachedReal.h | |||
---|---|---|---|---|
skipping to change at line 21 | skipping to change at line 21 | |||
#ifndef ROOCACHEDREAL | #ifndef ROOCACHEDREAL | |||
#define ROOCACHEDREAL | #define ROOCACHEDREAL | |||
#include "RooAbsCachedReal.h" | #include "RooAbsCachedReal.h" | |||
#include "RooRealProxy.h" | #include "RooRealProxy.h" | |||
#include "RooAbsReal.h" | #include "RooAbsReal.h" | |||
class RooCachedReal : public RooAbsCachedReal { | class RooCachedReal : public RooAbsCachedReal { | |||
public: | public: | |||
RooCachedReal() {} | RooCachedReal() { | |||
// coverity[UNINIT_CTOR] | ||||
} | ||||
RooCachedReal(const char *name, const char *title, RooAbsReal& _func, con st RooArgSet& cacheObs); | RooCachedReal(const char *name, const char *title, RooAbsReal& _func, con st RooArgSet& cacheObs); | |||
RooCachedReal(const char *name, const char *title, RooAbsReal& _func); | RooCachedReal(const char *name, const char *title, RooAbsReal& _func); | |||
RooCachedReal(const RooCachedReal& other, const char* name=0) ; | RooCachedReal(const RooCachedReal& other, const char* name=0) ; | |||
virtual TObject* clone(const char* newname) const { return new RooCachedR eal(*this,newname); } | virtual TObject* clone(const char* newname) const { return new RooCachedR eal(*this,newname); } | |||
virtual ~RooCachedReal() ; | virtual ~RooCachedReal() ; | |||
void setCdfBoundaries(Bool_t flag) { | void setCdfBoundaries(Bool_t flag) { | |||
// If flag is true the RooHistFunc that represent the cache histogram | // If flag is true the RooHistFunc that represent the cache histogram | |||
// will use special boundary conditions for use with cumulative distrib ution | // will use special boundary conditions for use with cumulative distrib ution | |||
// functions: at the lower bound the function is forced to converge at zero and the upper | // functions: at the lower bound the function is forced to converge at zero and the upper | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
RooCatType.h | RooCatType.h | |||
---|---|---|---|---|
skipping to change at line 37 | skipping to change at line 37 | |||
_value = 0 ; _label[0] = 0 ; | _value = 0 ; _label[0] = 0 ; | |||
} | } | |||
inline RooCatType(const char* name, Int_t value) : TObject(), RooPrintabl e(), _value(value) { | inline RooCatType(const char* name, Int_t value) : TObject(), RooPrintabl e(), _value(value) { | |||
// Constructor with state name and index value | // Constructor with state name and index value | |||
SetName(name) ; | SetName(name) ; | |||
} | } | |||
inline RooCatType(const RooCatType& other) : | inline RooCatType(const RooCatType& other) : | |||
TObject(other), RooPrintable(other), _value(other._value) { | TObject(other), RooPrintable(other), _value(other._value) { | |||
// Copy constructor | // Copy constructor | |||
strcpy(_label,other._label) ; | strlcpy(_label,other._label,256) ; | |||
} ; | } ; | |||
virtual ~RooCatType() { | virtual ~RooCatType() { | |||
// Destructor | // Destructor | |||
} ; | } ; | |||
virtual TObject* Clone(const char*) const { return new RooCatType(*this); } | virtual TObject* Clone(const char*) const { return new RooCatType(*this); } | |||
virtual const Text_t* GetName() const { | virtual const Text_t* GetName() const { | |||
// Return state name | // Return state name | |||
return _label ; | return _label ; | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
RooCmdArg.h | RooCmdArg.h | |||
---|---|---|---|---|
skipping to change at line 40 | skipping to change at line 40 | |||
RooCmdArg(); | RooCmdArg(); | |||
RooCmdArg(const char* name, | RooCmdArg(const char* name, | |||
Int_t i1=0, Int_t i2=0, | Int_t i1=0, Int_t i2=0, | |||
Double_t d1=0, Double_t d2=0, | Double_t d1=0, Double_t d2=0, | |||
const char* s1=0, const char* s2=0, | const char* s1=0, const char* s2=0, | |||
const TObject* o1=0, const TObject* o2=0, const RooCmdArg* ca=0, const char* s3=0, | const TObject* o1=0, const TObject* o2=0, const RooCmdArg* ca=0, const char* s3=0, | |||
const RooArgSet* c1=0, const RooArgSet* c2=0) ; | const RooArgSet* c1=0, const RooArgSet* c2=0) ; | |||
RooCmdArg(const RooCmdArg& other) ; | RooCmdArg(const RooCmdArg& other) ; | |||
RooCmdArg& operator=(const RooCmdArg& other) ; | RooCmdArg& operator=(const RooCmdArg& other) ; | |||
void addArg(const RooCmdArg& arg) ; | void addArg(const RooCmdArg& arg) ; | |||
void setProcessRecArgs(Bool_t flag) { | void setProcessRecArgs(Bool_t flag, Bool_t prefix=kTRUE) { | |||
// If true flag this object as containing recursive arguments | // If true flag this object as containing recursive arguments | |||
_procSubArgs = flag ; | _procSubArgs = flag ; | |||
_prefixSubArgs = prefix ; | ||||
} | } | |||
RooLinkedList& subArgs() { | RooLinkedList& subArgs() { | |||
// Return list of sub-arguments in this RooCmdArg | // Return list of sub-arguments in this RooCmdArg | |||
return _argList ; | return _argList ; | |||
} | } | |||
virtual TObject* Clone(const char* newName=0) const { | virtual TObject* Clone(const char* newName=0) const { | |||
RooCmdArg* newarg = new RooCmdArg(*this) ; | RooCmdArg* newarg = new RooCmdArg(*this) ; | |||
if (newName) { newarg->SetName(newName) ; } | if (newName) { newarg->SetName(newName) ; } | |||
skipping to change at line 115 | skipping to change at line 116 | |||
friend class RooAbsCollection ; | friend class RooAbsCollection ; | |||
// Payload | // Payload | |||
Double_t _d[2] ; // Payload doubles | Double_t _d[2] ; // Payload doubles | |||
Int_t _i[2] ; // Payload integers | Int_t _i[2] ; // Payload integers | |||
std::string _s[3] ; // Payload strings | std::string _s[3] ; // Payload strings | |||
TObject* _o[2] ; // Payload objects | TObject* _o[2] ; // Payload objects | |||
Bool_t _procSubArgs ; // If true argument requires recursive processing | Bool_t _procSubArgs ; // If true argument requires recursive processing | |||
RooArgSet* _c ; // Payload RooArgSets | RooArgSet* _c ; // Payload RooArgSets | |||
RooLinkedList _argList ; // Payload sub-arguments | RooLinkedList _argList ; // Payload sub-arguments | |||
Bool_t _prefixSubArgs ; // Prefix subarguments with container name? | ||||
ClassDef(RooCmdArg,1) // Generic named argument container | ClassDef(RooCmdArg,2) // Generic named argument container | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 4 lines changed or added | |||
RooDataHist.h | RooDataHist.h | |||
---|---|---|---|---|
skipping to change at line 50 | skipping to change at line 50 | |||
public: | public: | |||
// Constructors, factory methods etc. | // Constructors, factory methods etc. | |||
RooDataHist() ; | RooDataHist() ; | |||
RooDataHist(const char *name, const char *title, const RooArgSet& vars, c onst char* binningName=0) ; | RooDataHist(const char *name, const char *title, const RooArgSet& vars, c onst char* binningName=0) ; | |||
RooDataHist(const char *name, const char *title, const RooArgSet& vars, c onst RooAbsData& data, Double_t initWgt=1.0) ; | RooDataHist(const char *name, const char *title, const RooArgSet& vars, c onst RooAbsData& data, Double_t initWgt=1.0) ; | |||
RooDataHist(const char *name, const char *title, const RooArgList& vars, const TH1* hist, Double_t initWgt=1.0) ; | RooDataHist(const char *name, const char *title, const RooArgList& vars, const TH1* hist, Double_t initWgt=1.0) ; | |||
RooDataHist(const char *name, const char *title, const RooArgList& vars, RooCategory& indexCat, std::map<std::string,TH1*> histMap, Double_t initWgt =1.0) ; | RooDataHist(const char *name, const char *title, const RooArgList& vars, RooCategory& indexCat, std::map<std::string,TH1*> histMap, Double_t initWgt =1.0) ; | |||
RooDataHist(const char *name, const char *title, const RooArgList& vars, RooCategory& indexCat, std::map<std::string,RooDataHist*> dhistMap, Double_ t wgt=1.0) ; | RooDataHist(const char *name, const char *title, const RooArgList& vars, RooCategory& indexCat, std::map<std::string,RooDataHist*> dhistMap, Double_ t wgt=1.0) ; | |||
//RooDataHist(const char *name, const char *title, const RooArgList& vars , Double_t initWgt=1.0) ; | //RooDataHist(const char *name, const char *title, const RooArgList& vars , Double_t initWgt=1.0) ; | |||
RooDataHist(const char *name, const char *title, const RooArgList& vars, | RooDataHist(const char *name, const char *title, const RooArgList& vars, | |||
RooCmdArg arg1, RooCmdArg arg2=RooCmdArg(), RooCmdArg arg3=RooCmdArg(), | const RooCmdArg& arg1, const RooCmdArg& arg2=RooCmdArg(), const RooCmdArg& | |||
RooCmdArg arg4=RooCmdArg(),RooCmdArg arg5=RooCmdArg(),RooCmdAr | arg3=RooCmdArg(), | |||
g arg6=RooCmdArg(),RooCmdArg arg7=RooCmdArg(),RooCmdArg arg8=RooCmdArg()) ; | const RooCmdArg& arg4=RooCmdArg(),const RooCmdArg& arg5=RooCmd | |||
Arg(),const RooCmdArg& arg6=RooCmdArg(),const RooCmdArg& arg7=RooCmdArg(),c | ||||
onst RooCmdArg& arg8=RooCmdArg()) ; | ||||
RooDataHist(const RooDataHist& other, const char* newname = 0) ; | RooDataHist(const RooDataHist& other, const char* newname = 0) ; | |||
virtual TObject* Clone(const char* newname=0) const { return new RooDataH ist(*this,newname?newname:GetName()) ; } | virtual TObject* Clone(const char* newname=0) const { return new RooDataH ist(*this,newname?newname:GetName()) ; } | |||
virtual ~RooDataHist() ; | virtual ~RooDataHist() ; | |||
virtual RooAbsData* emptyClone(const char* newName=0, const char* newTitl e=0, const RooArgSet*vars=0) const { | virtual RooAbsData* emptyClone(const char* newName=0, const char* newTitl e=0, const RooArgSet*vars=0) const { | |||
// Return empty clone of this RooDataHist | // Return empty clone of this RooDataHist | |||
return new RooDataHist(newName?newName:GetName(),newTitle?newTitle:GetT itle(),vars?*vars:*get()) ; | return new RooDataHist(newName?newName:GetName(),newTitle?newTitle:GetT itle(),vars?*vars:*get()) ; | |||
} | } | |||
End of changes. 1 change blocks. | ||||
4 lines changed or deleted | 6 lines changed or added | |||
RooDataSet.h | RooDataSet.h | |||
---|---|---|---|---|
skipping to change at line 36 | skipping to change at line 36 | |||
class RooDataSet : public RooAbsData, public RooDirItem { | class RooDataSet : public RooAbsData, public RooDirItem { | |||
public: | public: | |||
// Constructors, factory methods etc. | // Constructors, factory methods etc. | |||
RooDataSet() ; | RooDataSet() ; | |||
// Empty constructor | // Empty constructor | |||
RooDataSet(const char *name, const char *title, const RooArgSet& vars, co nst char* wgtVarName=0) ; | RooDataSet(const char *name, const char *title, const RooArgSet& vars, co nst char* wgtVarName=0) ; | |||
// Universal constructor | // Universal constructor | |||
RooDataSet(const char* name, const char* title, const RooArgSet& vars, Ro | RooDataSet(const char* name, const char* title, const RooArgSet& vars, co | |||
oCmdArg arg1, RooCmdArg arg2=RooCmdArg(), | nst RooCmdArg& arg1, const RooCmdArg& arg2=RooCmdArg(), | |||
RooCmdArg arg3=RooCmdArg(), RooCmdArg arg4=RooCmdArg(),RooCmdAr | const RooCmdArg& arg3=RooCmdArg(), const RooCmdArg& arg4=RooCmd | |||
g arg5=RooCmdArg(), | Arg(),const RooCmdArg& arg5=RooCmdArg(), | |||
RooCmdArg arg6=RooCmdArg(),RooCmdArg arg7=RooCmdArg(),RooCmdArg | const RooCmdArg& arg6=RooCmdArg(),const RooCmdArg& arg7=RooCmdA | |||
arg8=RooCmdArg()) ; | rg(),const RooCmdArg& arg8=RooCmdArg()) ; | |||
// Constructor for subset of existing dataset | // Constructor for subset of existing dataset | |||
RooDataSet(const char *name, const char *title, RooDataSet *data, const R ooArgSet& vars, | RooDataSet(const char *name, const char *title, RooDataSet *data, const R ooArgSet& vars, | |||
const char *cuts=0, const char* wgtVarName=0); | const char *cuts=0, const char* wgtVarName=0); | |||
RooDataSet(const char *name, const char *title, RooDataSet *data, const R ooArgSet& vars, | RooDataSet(const char *name, const char *title, RooDataSet *data, const R ooArgSet& vars, | |||
const RooFormulaVar& cutVar, const char* wgtVarName=0) ; | const RooFormulaVar& cutVar, const char* wgtVarName=0) ; | |||
// Constructor importing data from external ROOT Tree | // Constructor importing data from external ROOT Tree | |||
RooDataSet(const char *name, const char *title, TTree *ntuple, const RooA rgSet& vars, | RooDataSet(const char *name, const char *title, TTree *ntuple, const RooA rgSet& vars, | |||
const char *cuts=0, const char* wgtVarName=0); | const char *cuts=0, const char* wgtVarName=0); | |||
End of changes. 1 change blocks. | ||||
6 lines changed or deleted | 6 lines changed or added | |||
RooDouble.h | RooDouble.h | |||
---|---|---|---|---|
skipping to change at line 25 | skipping to change at line 25 | |||
************************************************************************** ***/ | ************************************************************************** ***/ | |||
#ifndef ROO_DOUBLE | #ifndef ROO_DOUBLE | |||
#define ROO_DOUBLE | #define ROO_DOUBLE | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#include "TNamed.h" | #include "TNamed.h" | |||
class RooDouble : public TNamed { | class RooDouble : public TNamed { | |||
public: | public: | |||
RooDouble() { | RooDouble() : _value(0) { | |||
// Default constructor | // Default constructor | |||
} ; | } ; | |||
RooDouble(Double_t value) ; | RooDouble(Double_t value) ; | |||
RooDouble(const RooDouble& other) : TNamed(other), _value(other._value) { } | RooDouble(const RooDouble& other) : TNamed(other), _value(other._value) { } | |||
virtual ~RooDouble() { | virtual ~RooDouble() { | |||
// Destructor | // Destructor | |||
} ; | } ; | |||
// Double_t cast operator | // Double_t cast operator | |||
inline operator Double_t() const { | inline operator Double_t() const { | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
RooExpensiveObjectCache.h | RooExpensiveObjectCache.h | |||
---|---|---|---|---|
/************************************************************************** *** | /************************************************************************** *** | |||
* Project: RooFit * | * Project: RooFit * | |||
* Package: RooFitCore * | * Package: RooFitCore * | |||
* File: $Id: RooExpensiveObjectCache.h 28259 2009-04-16 16:21:16Z woute r $ | * File: $Id: RooExpensiveObjectCache.h 36209 2010-10-08 21:37:36Z woute r $ | |||
* 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) * | |||
skipping to change at line 53 | skipping to change at line 53 | |||
static RooExpensiveObjectCache& instance() ; | static RooExpensiveObjectCache& instance() ; | |||
Int_t size() const { return _map.size() ; } | Int_t size() const { return _map.size() ; } | |||
static void cleanup() ; | static void cleanup() ; | |||
void print() const ; | void print() const ; | |||
class ExpensiveObject { | class ExpensiveObject { | |||
public: | public: | |||
ExpensiveObject() { _payload = 0 ; } ; | ExpensiveObject() { _uid = 0 ; _payload = 0 ; } ; | |||
ExpensiveObject(Int_t uid, const char* ownerName, TObject& payload, TIt erator* paramIter) ; | ExpensiveObject(Int_t uid, const char* ownerName, TObject& payload, TIt erator* paramIter) ; | |||
ExpensiveObject(Int_t uid, const ExpensiveObject& other) ; | ExpensiveObject(Int_t uid, const ExpensiveObject& other) ; | |||
virtual ~ExpensiveObject() ; | virtual ~ExpensiveObject() ; | |||
Bool_t matches(TClass* tc, const RooArgSet& params) ; | Bool_t matches(TClass* tc, const RooArgSet& params) ; | |||
Int_t uid() const { return _uid ; } | Int_t uid() const { return _uid ; } | |||
const TObject* payload() const { return _payload ; } | const TObject* payload() const { return _payload ; } | |||
TObject* payload() { return _payload ; } | TObject* payload() { return _payload ; } | |||
void setPayload(TObject* obj) { _payload = obj ; } | void setPayload(TObject* obj) { _payload = obj ; } | |||
const char* ownerName() const { return _ownerName.Data() ; } | const char* ownerName() const { return _ownerName.Data() ; } | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
RooFFTConvPdf.h | RooFFTConvPdf.h | |||
---|---|---|---|---|
skipping to change at line 28 | skipping to change at line 28 | |||
#include "RooAbsReal.h" | #include "RooAbsReal.h" | |||
#include "RooHistPdf.h" | #include "RooHistPdf.h" | |||
#include "TVirtualFFT.h" | #include "TVirtualFFT.h" | |||
class RooRealVar ; | class RooRealVar ; | |||
#include <map> | #include <map> | |||
class RooFFTConvPdf : public RooAbsCachedPdf { | class RooFFTConvPdf : public RooAbsCachedPdf { | |||
public: | public: | |||
RooFFTConvPdf() {} ; | RooFFTConvPdf() { | |||
// coverity[UNINIT_CTOR] | ||||
} ; | ||||
RooFFTConvPdf(const char *name, const char *title, RooRealVar& convVar, R ooAbsPdf& pdf1, RooAbsPdf& pdf2, Int_t ipOrder=2); | RooFFTConvPdf(const char *name, const char *title, RooRealVar& convVar, R ooAbsPdf& pdf1, RooAbsPdf& pdf2, Int_t ipOrder=2); | |||
RooFFTConvPdf(const char *name, const char *title, RooAbsReal& pdfConvVar , RooRealVar& convVar, RooAbsPdf& pdf1, RooAbsPdf& pdf2, Int_t ipOrder=2); | RooFFTConvPdf(const char *name, const char *title, RooAbsReal& pdfConvVar , RooRealVar& convVar, RooAbsPdf& pdf1, RooAbsPdf& pdf2, Int_t ipOrder=2); | |||
RooFFTConvPdf(const RooFFTConvPdf& other, const char* name=0) ; | RooFFTConvPdf(const RooFFTConvPdf& other, const char* name=0) ; | |||
virtual TObject* clone(const char* newname) const { return new RooFFTConv Pdf(*this,newname); } | virtual TObject* clone(const char* newname) const { return new RooFFTConv Pdf(*this,newname); } | |||
virtual ~RooFFTConvPdf() ; | virtual ~RooFFTConvPdf() ; | |||
void setShift(Double_t val1, Double_t val2) { _shift1 = val1 ; _shift2 = val2 ; } | void setShift(Double_t val1, Double_t val2) { _shift1 = val1 ; _shift2 = val2 ; } | |||
void setCacheObservables(const RooArgSet& obs) { _cacheObs.removeAll() ; _cacheObs.add(obs) ; } | void setCacheObservables(const RooArgSet& obs) { _cacheObs.removeAll() ; _cacheObs.add(obs) ; } | |||
const RooArgSet& cacheObservables() const { return _cacheObs ; } | const RooArgSet& cacheObservables() const { return _cacheObs ; } | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
RooGExpModel.h | RooGExpModel.h | |||
---|---|---|---|---|
skipping to change at line 38 | skipping to change at line 38 | |||
sinBasisMinus=11, sinBasisSum=12, sinBasisP lus=13, | sinBasisMinus=11, sinBasisSum=12, sinBasisP lus=13, | |||
cosBasisMinus=21, cosBasisSum=22, cosBasis Plus=23, | cosBasisMinus=21, cosBasisSum=22, cosBasis Plus=23, | |||
sinhBasisMinus=31,sinhBasisSum=32,sinhBasis Plus=33, | sinhBasisMinus=31,sinhBasisSum=32,sinhBasis Plus=33, | |||
coshBasisMinus=41,coshBasisSum=42,coshBasis Plus=43} ; | coshBasisMinus=41,coshBasisSum=42,coshBasis Plus=43} ; | |||
enum BasisType { none=0, expBasis=1, sinBasis=2, cosBasis=3, sinhBasis=4, coshBasis=5 } ; | enum BasisType { none=0, expBasis=1, sinBasis=2, cosBasis=3, sinhBasis=4, coshBasis=5 } ; | |||
enum BasisSign { Both=0, Plus=+1, Minus=-1 } ; | enum BasisSign { Both=0, Plus=+1, Minus=-1 } ; | |||
enum Type { Normal, Flipped }; | enum Type { Normal, Flipped }; | |||
// Constructors, assignment etc | // Constructors, assignment etc | |||
inline RooGExpModel() { } | inline RooGExpModel() { | |||
// coverity[UNINIT_CTOR] | ||||
} | ||||
RooGExpModel(const char *name, const char *title, RooRealVar& x, | RooGExpModel(const char *name, const char *title, RooRealVar& x, | |||
RooAbsReal& sigma, RooAbsReal& rlife, | RooAbsReal& sigma, RooAbsReal& rlife, | |||
Bool_t nlo=kFALSE, Type type=Normal) ; | Bool_t nlo=kFALSE, Type type=Normal) ; | |||
RooGExpModel(const char *name, const char *title, RooRealVar& x, | RooGExpModel(const char *name, const char *title, RooRealVar& x, | |||
RooAbsReal& sigma, RooAbsReal& rlife, | RooAbsReal& sigma, RooAbsReal& rlife, | |||
RooAbsReal& srSF, | RooAbsReal& srSF, | |||
Bool_t nlo=kFALSE, Type type=Normal) ; | Bool_t nlo=kFALSE, Type type=Normal) ; | |||
RooGExpModel(const char *name, const char *title, RooRealVar& x, | RooGExpModel(const char *name, const char *title, RooRealVar& x, | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
RooGaussModel.h | RooGaussModel.h | |||
---|---|---|---|---|
skipping to change at line 39 | skipping to change at line 39 | |||
cosBasisMinus=21, cosBasisSum=22, cosBasi sPlus=23, | cosBasisMinus=21, cosBasisSum=22, cosBasi sPlus=23, | |||
linBasi sPlus=33, | linBasi sPlus=33, | |||
quadBasi sPlus=43, | quadBasi sPlus=43, | |||
coshBasisMinus=51,coshBasisSum=52,coshBasi sPlus=53, | coshBasisMinus=51,coshBasisSum=52,coshBasi sPlus=53, | |||
sinhBasisMinus=61,sinhBasisSum=62,sinhBasi sPlus=63}; | sinhBasisMinus=61,sinhBasisSum=62,sinhBasi sPlus=63}; | |||
enum BasisType { none=0, expBasis=1, sinBasis=2, cosBasis=3, | enum BasisType { none=0, expBasis=1, sinBasis=2, cosBasis=3, | |||
linBasis=4, quadBasis=5, coshBasis=6, sinhBasis=7 } ; | linBasis=4, quadBasis=5, coshBasis=6, sinhBasis=7 } ; | |||
enum BasisSign { Both=0, Plus=+1, Minus=-1 } ; | enum BasisSign { Both=0, Plus=+1, Minus=-1 } ; | |||
// Constructors, assignment etc | // Constructors, assignment etc | |||
inline RooGaussModel() { } | inline RooGaussModel() : _flatSFInt(kFALSE), _asympInt(kFALSE) { } | |||
RooGaussModel(const char *name, const char *title, RooRealVar& x, | RooGaussModel(const char *name, const char *title, RooRealVar& x, | |||
RooAbsReal& mean, RooAbsReal& sigma) ; | RooAbsReal& mean, RooAbsReal& sigma) ; | |||
RooGaussModel(const char *name, const char *title, RooRealVar& x, | RooGaussModel(const char *name, const char *title, RooRealVar& x, | |||
RooAbsReal& mean, RooAbsReal& sigma, RooAbsReal& msSF) ; | RooAbsReal& mean, RooAbsReal& sigma, RooAbsReal& msSF) ; | |||
RooGaussModel(const char *name, const char *title, RooRealVar& x, | RooGaussModel(const char *name, const char *title, RooRealVar& x, | |||
RooAbsReal& mean, RooAbsReal& sigma, RooAbsReal& meanSF, Roo AbsReal& sigmaSF) ; | RooAbsReal& mean, RooAbsReal& sigma, RooAbsReal& meanSF, Roo AbsReal& sigmaSF) ; | |||
RooGaussModel(const RooGaussModel& other, const char* name=0); | RooGaussModel(const RooGaussModel& other, const char* name=0); | |||
virtual TObject* clone(const char* newname) const { return new RooGaussMo del(*this,newname) ; } | virtual TObject* clone(const char* newname) const { return new RooGaussMo del(*this,newname) ; } | |||
virtual ~RooGaussModel(); | virtual ~RooGaussModel(); | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
RooGenCategory.h | RooGenCategory.h | |||
---|---|---|---|---|
skipping to change at line 33 | skipping to change at line 33 | |||
#include "TString.h" | #include "TString.h" | |||
class TObject ; | class TObject ; | |||
#include "TMethodCall.h" | #include "TMethodCall.h" | |||
class RooGenCategory : public RooAbsCategory { | class RooGenCategory : public RooAbsCategory { | |||
public: | public: | |||
// Constructors etc. | // Constructors etc. | |||
inline RooGenCategory() { | inline RooGenCategory() { | |||
// Default constructor | // Default constructor | |||
// coverity[UNINIT_CTOR] | ||||
} | } | |||
RooGenCategory(const char *name, const char *title, void* userFunc, RooAr gSet& catList); | RooGenCategory(const char *name, const char *title, void* userFunc, RooAr gSet& catList); | |||
RooGenCategory(const RooGenCategory& other, const char *name=0) ; | RooGenCategory(const RooGenCategory& other, const char *name=0) ; | |||
virtual TObject* clone(const char* newname) const { return new RooGenCate gory(*this,newname); } | virtual TObject* clone(const char* newname) const { return new RooGenCate gory(*this,newname); } | |||
virtual ~RooGenCategory(); | virtual ~RooGenCategory(); | |||
// Printing interface (human readable) | // Printing interface (human readable) | |||
virtual void printMultiline(ostream& os, Int_t content, Bool_t verbose=kF ALSE, TString indent= "") const ; | virtual void printMultiline(ostream& os, Int_t content, Bool_t verbose=kF ALSE, TString indent= "") const ; | |||
// I/O streaming interface (machine readable) | // I/O streaming interface (machine readable) | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
RooGlobalFunc.h | RooGlobalFunc.h | |||
---|---|---|---|---|
skipping to change at line 20 | skipping to change at line 20 | |||
* 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_GLOBAL_FUNC | #ifndef ROO_GLOBAL_FUNC | |||
#define ROO_GLOBAL_FUNC | #define ROO_GLOBAL_FUNC | |||
#include "RooCmdArg.h" | #include "RooCmdArg.h" | |||
#include <map> | ||||
#include <string> | ||||
//#include "RooDataHist.h" | //#include "RooDataHist.h" | |||
//#include "RooAbsPdf.h" | //#include "RooAbsPdf.h" | |||
//#include "RooRealConstant.h" | //#include "RooRealConstant.h" | |||
//#include "RooMsgService.h" | //#include "RooMsgService.h" | |||
class RooDataHist ; | class RooDataHist ; | |||
class RooDataSet ; | class RooDataSet ; | |||
class RooFitResult ; | class RooFitResult ; | |||
class RooAbsPdf ; | class RooAbsPdf ; | |||
class RooAbsRealLValue ; | class RooAbsRealLValue ; | |||
skipping to change at line 114 | skipping to change at line 116 | |||
RooCmdArg CutRange(const char* rangeName) ; | RooCmdArg CutRange(const char* rangeName) ; | |||
RooCmdArg XErrorSize(Double_t width) ; | RooCmdArg XErrorSize(Double_t width) ; | |||
RooCmdArg RefreshNorm() ; | RooCmdArg RefreshNorm() ; | |||
RooCmdArg Efficiency(const RooCategory& cat) ; | RooCmdArg Efficiency(const RooCategory& cat) ; | |||
RooCmdArg Rescale(Double_t factor) ; | RooCmdArg Rescale(Double_t factor) ; | |||
// RooDataHist::ctor arguments | // RooDataHist::ctor arguments | |||
RooCmdArg Weight(Double_t wgt) ; | RooCmdArg Weight(Double_t wgt) ; | |||
RooCmdArg Index(RooCategory& icat) ; | RooCmdArg Index(RooCategory& icat) ; | |||
RooCmdArg Import(const char* state, TH1& histo) ; | RooCmdArg Import(const char* state, TH1& histo) ; | |||
RooCmdArg Import(const std::map<std::string,TH1*>&) ; | ||||
RooCmdArg Import(const char* state, RooDataHist& dhist) ; | RooCmdArg Import(const char* state, RooDataHist& dhist) ; | |||
RooCmdArg Import(const std::map<std::string,RooDataHist*>&) ; | ||||
RooCmdArg Import(TH1& histo, Bool_t importDensity=kTRUE) ; | RooCmdArg Import(TH1& histo, Bool_t importDensity=kTRUE) ; | |||
// RooDataSet::ctor arguments | // RooDataSet::ctor arguments | |||
RooCmdArg WeightVar(const char* name) ; | RooCmdArg WeightVar(const char* name) ; | |||
RooCmdArg WeightVar(const RooRealVar& arg) ; | RooCmdArg WeightVar(const RooRealVar& arg) ; | |||
RooCmdArg Import(const char* state, RooDataSet& data) ; | RooCmdArg Import(const char* state, RooDataSet& data) ; | |||
RooCmdArg Import(const std::map<std::string,RooDataSet*>& ) ; | ||||
RooCmdArg Link(const char* state, RooAbsData& data) ; | RooCmdArg Link(const char* state, RooAbsData& data) ; | |||
RooCmdArg Link(const std::map<std::string,RooAbsData*>&) ; | ||||
RooCmdArg Import(RooDataSet& data) ; | RooCmdArg Import(RooDataSet& data) ; | |||
RooCmdArg Import(TTree& tree) ; | RooCmdArg Import(TTree& tree) ; | |||
RooCmdArg ImportFromFile(const char* fname, const char* tname) ; | RooCmdArg ImportFromFile(const char* fname, const char* tname) ; | |||
RooCmdArg StoreError(const RooArgSet& aset) ; | RooCmdArg StoreError(const RooArgSet& aset) ; | |||
RooCmdArg StoreAsymError(const RooArgSet& aset) ; | RooCmdArg StoreAsymError(const RooArgSet& aset) ; | |||
// RooChi2Var::ctor arguments | // RooChi2Var::ctor arguments | |||
RooCmdArg Extended(Bool_t flag=kTRUE) ; | RooCmdArg Extended(Bool_t flag=kTRUE) ; | |||
RooCmdArg DataError(Int_t) ; | RooCmdArg DataError(Int_t) ; | |||
RooCmdArg NumCPU(Int_t nCPU, Bool_t interleave=kFALSE) ; | RooCmdArg NumCPU(Int_t nCPU, Bool_t interleave=kFALSE) ; | |||
End of changes. 5 change blocks. | ||||
0 lines changed or deleted | 6 lines changed or added | |||
RooHistPdf.h | RooHistPdf.h | |||
---|---|---|---|---|
/************************************************************************** *** | /************************************************************************** *** | |||
* Project: RooFit * | * Project: RooFit * | |||
* Package: RooFitCore * | * Package: RooFitCore * | |||
* File: $Id: RooHistPdf.h 30333 2009-09-21 15:39:17Z wouter $ | * File: $Id: RooHistPdf.h 37219 2010-12-03 12:51:36Z 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) * | |||
skipping to change at line 85 | skipping to change at line 85 | |||
virtual Bool_t selfNormalized() const { return _unitNorm ; } | virtual Bool_t selfNormalized() const { return _unitNorm ; } | |||
virtual Int_t getMaxVal(const RooArgSet& vars) const ; | virtual Int_t getMaxVal(const RooArgSet& vars) const ; | |||
virtual Double_t maxVal(Int_t code) const ; | virtual Double_t maxVal(Int_t code) const ; | |||
virtual std::list<Double_t>* plotSamplingHint(RooAbsRealLValue& obs, Doub le_t xlo, Double_t xhi) const ; | virtual std::list<Double_t>* plotSamplingHint(RooAbsRealLValue& obs, Doub le_t xlo, Double_t xhi) const ; | |||
protected: | protected: | |||
Bool_t importWorkspaceHook(RooWorkspace& ws) ; | ||||
Double_t evaluate() const; | Double_t evaluate() const; | |||
Double_t totalVolume() const ; | Double_t totalVolume() const ; | |||
friend class RooAbsCachedPdf ; | friend class RooAbsCachedPdf ; | |||
Double_t totVolume() const ; | Double_t totVolume() const ; | |||
RooArgSet _histObsList ; // List of observables defining dimensio ns of histogram | RooArgSet _histObsList ; // List of observables defining dimensio ns of histogram | |||
RooSetProxy _pdfObsList ; // List of observables mapped onto histo gram observables | RooSetProxy _pdfObsList ; // List of observables mapped onto histo gram observables | |||
RooDataHist* _dataHist ; // Unowned pointer to underlying histogram | RooDataHist* _dataHist ; // Unowned pointer to underlying histogram | |||
TIterator* _histObsIter ; //! | TIterator* _histObsIter ; //! | |||
TIterator* _pdfObsIter ; //! | TIterator* _pdfObsIter ; //! | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
RooInt.h | RooInt.h | |||
---|---|---|---|---|
skipping to change at line 25 | skipping to change at line 25 | |||
************************************************************************** ***/ | ************************************************************************** ***/ | |||
#ifndef ROO_INT | #ifndef ROO_INT | |||
#define ROO_INT | #define ROO_INT | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#include "TNamed.h" | #include "TNamed.h" | |||
class RooInt : public TNamed { | class RooInt : public TNamed { | |||
public: | public: | |||
RooInt() {} ; | RooInt() : _value(0) {} ; | |||
RooInt(Int_t value) : TNamed(), _value(value) {} ; | RooInt(Int_t value) : TNamed(), _value(value) {} ; | |||
RooInt(const RooInt& other) : TNamed(other), _value(other._value) {} | RooInt(const RooInt& other) : TNamed(other), _value(other._value) {} | |||
virtual ~RooInt() {} ; | virtual ~RooInt() {} ; | |||
// Double_t cast operator | // Double_t cast operator | |||
inline operator Int_t() const { return _value ; } | inline operator Int_t() const { return _value ; } | |||
RooInt& operator=(Int_t value) { _value = value ; return *this ; } | RooInt& operator=(Int_t value) { _value = value ; return *this ; } | |||
// Sorting interface ; | // Sorting interface ; | |||
Int_t Compare(const TObject* other) const ; | Int_t Compare(const TObject* other) const ; | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
RooIntegralMorph.h | RooIntegralMorph.h | |||
---|---|---|---|---|
skipping to change at line 26 | skipping to change at line 26 | |||
#include "RooRealProxy.h" | #include "RooRealProxy.h" | |||
#include "RooCategoryProxy.h" | #include "RooCategoryProxy.h" | |||
#include "RooAbsReal.h" | #include "RooAbsReal.h" | |||
#include "RooAbsCategory.h" | #include "RooAbsCategory.h" | |||
class RooBrentRootFinder ; | class RooBrentRootFinder ; | |||
class TH1D ; | class TH1D ; | |||
class RooIntegralMorph : public RooAbsCachedPdf { | class RooIntegralMorph : public RooAbsCachedPdf { | |||
public: | public: | |||
RooIntegralMorph() {} ; | RooIntegralMorph() { | |||
// coverity[UNINIT_CTOR] | ||||
} ; | ||||
RooIntegralMorph(const char *name, const char *title, | RooIntegralMorph(const char *name, const char *title, | |||
RooAbsReal& _pdf1, | RooAbsReal& _pdf1, | |||
RooAbsReal& _pdf2, | RooAbsReal& _pdf2, | |||
RooAbsReal& _x, | RooAbsReal& _x, | |||
RooAbsReal& _alpha, Bool_t cacheAlpha=kFALSE); | RooAbsReal& _alpha, Bool_t cacheAlpha=kFALSE); | |||
RooIntegralMorph(const RooIntegralMorph& other, const char* name=0) ; | RooIntegralMorph(const RooIntegralMorph& other, const char* name=0) ; | |||
virtual TObject* clone(const char* newname) const { return new RooIntegra lMorph(*this,newname); } | virtual TObject* clone(const char* newname) const { return new RooIntegra lMorph(*this,newname); } | |||
inline virtual ~RooIntegralMorph() { } | inline virtual ~RooIntegralMorph() { } | |||
Bool_t selfNormalized() const { | Bool_t selfNormalized() const { | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
RooKeysPdf.h | RooKeysPdf.h | |||
---|---|---|---|---|
skipping to change at line 51 | skipping to change at line 51 | |||
protected: | protected: | |||
RooRealProxy _x ; | RooRealProxy _x ; | |||
Double_t evaluate() const; | Double_t evaluate() const; | |||
private: | private: | |||
Double_t evaluateFull(Double_t x) const; | Double_t evaluateFull(Double_t x) const; | |||
Int_t _nEvents; | Int_t _nEvents; | |||
Double_t *_dataPts; //[_nEvents] | Double_t *_dataPts; //[_nEvents] | |||
Double_t *_weights; //[_nEvents] | Double_t *_dataWgts; //[_nEvents] | |||
Double_t *_weights; //[_nEvents] | ||||
Double_t _sumWgt ; | ||||
enum { _nPoints = 1000 }; | enum { _nPoints = 1000 }; | |||
Double_t _lookupTable[_nPoints+1]; | Double_t _lookupTable[_nPoints+1]; | |||
Double_t g(Double_t x,Double_t sigma) const; | Double_t g(Double_t x,Double_t sigma) const; | |||
Bool_t _mirrorLeft, _mirrorRight; | Bool_t _mirrorLeft, _mirrorRight; | |||
Bool_t _asymLeft, _asymRight; | Bool_t _asymLeft, _asymRight; | |||
// cached info on variable | // cached info on variable | |||
Char_t _varName[128]; | Char_t _varName[128]; | |||
Double_t _lo, _hi, _binWidth; | Double_t _lo, _hi, _binWidth; | |||
Double_t _rho; | Double_t _rho; | |||
ClassDef(RooKeysPdf,1) // One-dimensional non-parametric kernel estimatio n p.d.f. | ClassDef(RooKeysPdf,2) // One-dimensional non-parametric kernel estimatio n p.d.f. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 5 lines changed or added | |||
RooLinTransBinning.h | RooLinTransBinning.h | |||
---|---|---|---|---|
skipping to change at line 25 | skipping to change at line 25 | |||
************************************************************************** ***/ | ************************************************************************** ***/ | |||
#ifndef ROO_LIN_TRANS_BINNING | #ifndef ROO_LIN_TRANS_BINNING | |||
#define ROO_LIN_TRANS_BINNING | #define ROO_LIN_TRANS_BINNING | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#include "RooAbsBinning.h" | #include "RooAbsBinning.h" | |||
class RooLinTransBinning : public RooAbsBinning { | class RooLinTransBinning : public RooAbsBinning { | |||
public: | public: | |||
RooLinTransBinning(const char* name=0) : RooAbsBinning(name) {} ; | RooLinTransBinning(const char* name=0) : RooAbsBinning(name) { | |||
// coverity[UNINIT_CTOR] | ||||
} ; | ||||
RooLinTransBinning(const RooAbsBinning& input, Double_t slope=1.0, Double _t offset=0.0, const char* name=0) ; | RooLinTransBinning(const RooAbsBinning& input, Double_t slope=1.0, Double _t offset=0.0, const char* name=0) ; | |||
RooLinTransBinning(const RooLinTransBinning&, const char* name=0) ; | RooLinTransBinning(const RooLinTransBinning&, const char* name=0) ; | |||
virtual RooAbsBinning* clone(const char* name=0) const { return new RooLi nTransBinning(*this,name) ; } | virtual RooAbsBinning* clone(const char* name=0) const { return new RooLi nTransBinning(*this,name) ; } | |||
virtual ~RooLinTransBinning() ; | virtual ~RooLinTransBinning() ; | |||
virtual Int_t numBoundaries() const { return _input->numBoundaries() ; } | virtual Int_t numBoundaries() const { return _input->numBoundaries() ; } | |||
virtual Int_t binNumber(Double_t x) const { return _input->binNumber(invT rans(x)) ; } | virtual Int_t binNumber(Double_t x) const { return _input->binNumber(invT rans(x)) ; } | |||
virtual Double_t binCenter(Int_t bin) const { return trans(_input->binCen ter(binTrans(bin))) ; } | virtual Double_t binCenter(Int_t bin) const { return trans(_input->binCen ter(binTrans(bin))) ; } | |||
virtual Double_t binWidth(Int_t bin) const { return _slope*_input->binWid th(binTrans(bin)) ; } | virtual Double_t binWidth(Int_t bin) const { return _slope*_input->binWid th(binTrans(bin)) ; } | |||
virtual Double_t binLow(Int_t bin) const { if (_slope>0) return trans(_in put->binLow(binTrans(bin))) ; else return trans(_input->binHigh(binTrans(bi n))) ; } | virtual Double_t binLow(Int_t bin) const { if (_slope>0) return trans(_in put->binLow(binTrans(bin))) ; else return trans(_input->binHigh(binTrans(bi n))) ; } | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
RooLinkedListElem.h | RooLinkedListElem.h | |||
---|---|---|---|---|
skipping to change at line 20 | skipping to change at line 20 | |||
* 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_LINKED_LIST_ELEM | #ifndef ROO_LINKED_LIST_ELEM | |||
#define ROO_LINKED_LIST_ELEM | #define ROO_LINKED_LIST_ELEM | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#include "RooLinkedListElem.h" | ||||
class TObject ; | class TObject ; | |||
class RooLinkedListElem ; | class RooLinkedListElem ; | |||
class TBuffer ; | class TBuffer ; | |||
class RooLinkedListElem { | class RooLinkedListElem { | |||
public: | public: | |||
// Initial element ctor | // Initial element ctor | |||
RooLinkedListElem(TObject* arg) : | RooLinkedListElem(TObject* arg) : | |||
// Constructor with payload | // Constructor with payload | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 0 lines changed or added | |||
RooLinkedListIter.h | RooLinkedListIter.h | |||
---|---|---|---|---|
skipping to change at line 33 | skipping to change at line 33 | |||
#if ROOT_VERSION_CODE <= 332546 | #if ROOT_VERSION_CODE <= 332546 | |||
#ifndef nullptr | #ifndef nullptr | |||
#define nullptr 0 | #define nullptr 0 | |||
#endif | #endif | |||
#endif | #endif | |||
class RooLinkedListIter : public TIterator { | class RooLinkedListIter : public TIterator { | |||
public: | public: | |||
RooLinkedListIter() {} ; | RooLinkedListIter() { | |||
// coverity[UNINIT_CTOR] | ||||
} ; | ||||
RooLinkedListIter(const RooLinkedList* list, Bool_t forward) : | RooLinkedListIter(const RooLinkedList* list, Bool_t forward) : | |||
TIterator(), _forward(forward), _list(list) | TIterator(), _forward(forward), _list(list) | |||
{ | { | |||
// Constructor from list with direction | // Constructor from list with direction | |||
_ptr = _list->_first ; | _ptr = _list->_first ; | |||
_cptr = _ptr; | _cptr = _ptr; | |||
} | } | |||
RooLinkedListIter(const RooLinkedListIter& other) : | RooLinkedListIter(const RooLinkedListIter& other) : | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
RooListProxy.h | RooListProxy.h | |||
---|---|---|---|---|
skipping to change at line 29 | skipping to change at line 29 | |||
#include "TObject.h" | #include "TObject.h" | |||
#include "Riosfwd.h" | #include "Riosfwd.h" | |||
#include "RooAbsProxy.h" | #include "RooAbsProxy.h" | |||
#include "RooAbsArg.h" | #include "RooAbsArg.h" | |||
#include "RooArgList.h" | #include "RooArgList.h" | |||
class RooListProxy : public RooArgList, public RooAbsProxy { | class RooListProxy : public RooArgList, public RooAbsProxy { | |||
public: | public: | |||
// Constructors, assignment etc. | // Constructors, assignment etc. | |||
RooListProxy() { _iter = createIterator() ; _owner=0 ; } ; | RooListProxy() : _defValueServer(kTRUE), _defShapeServer(kFALSE) { _iter = createIterator() ; _owner=0 ; } ; | |||
RooListProxy(const char* name, const char* desc, RooAbsArg* owner, | RooListProxy(const char* name, const char* desc, RooAbsArg* owner, | |||
Bool_t defValueServer=kTRUE, Bool_t defShapeServer=kFALSE) ; | Bool_t defValueServer=kTRUE, Bool_t defShapeServer=kFALSE) ; | |||
RooListProxy(const char* name, RooAbsArg* owner, const RooListProxy& othe r) ; | RooListProxy(const char* name, RooAbsArg* owner, const RooListProxy& othe r) ; | |||
virtual ~RooListProxy() ; | virtual ~RooListProxy() ; | |||
virtual const char* name() const { return GetName() ; } | virtual const char* name() const { return GetName() ; } | |||
// List content management (modified for server hooks) | // List content management (modified for server hooks) | |||
virtual Bool_t add(const RooAbsArg& var, Bool_t silent=kFALSE) ; | virtual Bool_t add(const RooAbsArg& var, Bool_t silent=kFALSE) ; | |||
virtual Bool_t add(const RooAbsCollection& list, Bool_t silent=kFALSE) { return RooAbsCollection::add(list,silent) ; } | virtual Bool_t add(const RooAbsCollection& list, Bool_t silent=kFALSE) { return RooAbsCollection::add(list,silent) ; } | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
RooMCStudy.h | RooMCStudy.h | |||
---|---|---|---|---|
skipping to change at line 36 | skipping to change at line 36 | |||
class RooAbsGenContext ; | class RooAbsGenContext ; | |||
class RooFitResult ; | class RooFitResult ; | |||
class RooPlot ; | class RooPlot ; | |||
class RooRealVar ; | class RooRealVar ; | |||
class RooAbsMCStudyModule ; | class RooAbsMCStudyModule ; | |||
class RooMCStudy : public TNamed { | class RooMCStudy : public TNamed { | |||
public: | public: | |||
RooMCStudy(const RooAbsPdf& model, const RooArgSet& observables, | RooMCStudy(const RooAbsPdf& model, const RooArgSet& observables, | |||
RooCmdArg arg1=RooCmdArg::none(), RooCmdArg arg2=RooCmdArg::non | const RooCmdArg& arg1=RooCmdArg::none(), const RooCmdArg& arg2= | |||
e(), | RooCmdArg::none(), | |||
RooCmdArg arg3=RooCmdArg::none(), RooCmdArg arg4=RooCmdArg::no | const RooCmdArg& arg3=RooCmdArg::none(), const RooCmdArg& arg4 | |||
ne(), RooCmdArg arg5=RooCmdArg::none(), | =RooCmdArg::none(), const RooCmdArg& arg5=RooCmdArg::none(), | |||
RooCmdArg arg6=RooCmdArg::none(), RooCmdArg arg7=RooCmdArg::no | const RooCmdArg& arg6=RooCmdArg::none(), const RooCmdArg& arg7 | |||
ne(), RooCmdArg arg8=RooCmdArg::none()) ; | =RooCmdArg::none(), const RooCmdArg& arg8=RooCmdArg::none()) ; | |||
RooMCStudy(const RooAbsPdf& genModel, const RooAbsPdf& fitModel, | RooMCStudy(const RooAbsPdf& genModel, const RooAbsPdf& fitModel, | |||
const RooArgSet& dependents, const char* genOptions="", | const RooArgSet& dependents, const char* genOptions="", | |||
const char* fitOptions="", const RooDataSet* genProtoData=0, | const char* fitOptions="", const RooDataSet* genProtoData=0, | |||
const RooArgSet& projDeps=RooArgSet()) ; | const RooArgSet& projDeps=RooArgSet()) ; | |||
virtual ~RooMCStudy() ; | virtual ~RooMCStudy() ; | |||
// Method to add study modules | // Method to add study modules | |||
void addModule(RooAbsMCStudyModule& module) ; | void addModule(RooAbsMCStudyModule& module) ; | |||
End of changes. 1 change blocks. | ||||
6 lines changed or deleted | 6 lines changed or added | |||
RooMomentMorph.h | RooMomentMorph.h | |||
---|---|---|---|---|
skipping to change at line 16 | skipping to change at line 16 | |||
#ifndef ROOMOMENTMORPH | #ifndef ROOMOMENTMORPH | |||
#define ROOMOMENTMORPH | #define ROOMOMENTMORPH | |||
#include "RooAbsPdf.h" | #include "RooAbsPdf.h" | |||
#include "RooRealProxy.h" | #include "RooRealProxy.h" | |||
#include "RooCategoryProxy.h" | #include "RooCategoryProxy.h" | |||
#include "RooAbsReal.h" | #include "RooAbsReal.h" | |||
#include "RooAbsCategory.h" | #include "RooAbsCategory.h" | |||
#include "RooSetProxy.h" | #include "RooSetProxy.h" | |||
#include "RooListProxy.h" | ||||
#include "RooArgList.h" | #include "RooArgList.h" | |||
#include "TMatrixD.h" | #include "TMatrixD.h" | |||
#include "TVectorD.h" | #include "TVectorD.h" | |||
#include <vector> | #include <vector> | |||
#include <string> | #include <string> | |||
class RooChangeTracker ; | class RooChangeTracker ; | |||
class RooMomentMorph : public RooAbsPdf { | class RooMomentMorph : public RooAbsPdf { | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
RooObjCacheManager.h | RooObjCacheManager.h | |||
---|---|---|---|---|
/************************************************************************** *** | /************************************************************************** *** | |||
* Project: RooFit * | * Project: RooFit * | |||
* Package: RooFitCore * | * Package: RooFitCore * | |||
* File: $Id: RooObjCacheManager.h 24280 2008-06-15 20:57:45Z wouter $ | * File: $Id: RooObjCacheManager.h 37505 2010-12-10 13:46:32Z 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) * | |||
skipping to change at line 51 | skipping to change at line 51 | |||
virtual void operModeHook() ; | virtual void operModeHook() ; | |||
virtual void optimizeCacheMode(const RooArgSet& /*obs*/, RooArgSet& /*opt Set*/, RooLinkedList& /*processedNodes*/) ; | virtual void optimizeCacheMode(const RooArgSet& /*obs*/, RooArgSet& /*opt Set*/, RooLinkedList& /*processedNodes*/) ; | |||
virtual void printCompactTreeHook(std::ostream&, const char *) ; | virtual void printCompactTreeHook(std::ostream&, const char *) ; | |||
virtual void findConstantNodes(const RooArgSet& /*obs*/, RooArgSet& /*cac heList*/, RooLinkedList& /*processedNodes*/) ; | virtual void findConstantNodes(const RooArgSet& /*obs*/, RooArgSet& /*cac heList*/, RooLinkedList& /*processedNodes*/) ; | |||
virtual void insertObjectHook(RooAbsCacheElement&) ; | virtual void insertObjectHook(RooAbsCacheElement&) ; | |||
protected: | protected: | |||
Bool_t _clearOnRedirect ; | Bool_t _clearOnRedirect ; | |||
Bool_t _optCacheModeSeen ; | Bool_t _optCacheModeSeen ; //! | |||
std::list<RooArgSet*> _optCacheObsList ; //! list of all optCacheObservab les owned | std::list<RooArgSet*> _optCacheObsList ; //! list of all optCacheObservab les owned | |||
RooArgSet* _optCacheObservables ; //! current optCacheObservables | RooArgSet* _optCacheObservables ; //! current optCacheObservables | |||
ClassDef(RooObjCacheManager,1) // Cache manager for generic caches that c ontain RooAbsArg objects | ClassDef(RooObjCacheManager,2) // Cache manager for generic caches that c ontain RooAbsArg objects | |||
} ; | } ; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
RooPoisson.h | RooPoisson.h | |||
---|---|---|---|---|
skipping to change at line 20 | skipping to change at line 20 | |||
#define ROOPOISSON | #define ROOPOISSON | |||
#include "RooAbsPdf.h" | #include "RooAbsPdf.h" | |||
#include "RooRealProxy.h" | #include "RooRealProxy.h" | |||
#include "RooCategoryProxy.h" | #include "RooCategoryProxy.h" | |||
#include "RooAbsReal.h" | #include "RooAbsReal.h" | |||
#include "RooAbsCategory.h" | #include "RooAbsCategory.h" | |||
class RooPoisson : public RooAbsPdf { | class RooPoisson : public RooAbsPdf { | |||
public: | public: | |||
RooPoisson() {} ; | RooPoisson() { _noRounding = kFALSE ; } ; | |||
RooPoisson(const char *name, const char *title, RooAbsReal& _x, RooAbsRea | RooPoisson(const char *name, const char *title, RooAbsReal& _x, RooAbsRea | |||
l& _mean); | l& _mean, Bool_t noRounding=kFALSE); | |||
RooPoisson(const RooPoisson& other, const char* name=0) ; | RooPoisson(const RooPoisson& other, const char* name=0) ; | |||
virtual TObject* clone(const char* newname) const { return new RooPoisson (*this,newname); } | virtual TObject* clone(const char* newname) const { return new RooPoisson (*this,newname); } | |||
inline virtual ~RooPoisson() { } | inline virtual ~RooPoisson() { } | |||
Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, cons t char* rangeName=0) const ; | Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, cons t char* rangeName=0) const ; | |||
Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ; | Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ; | |||
Int_t getGenerator(const RooArgSet& directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) const; | Int_t getGenerator(const RooArgSet& directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) const; | |||
void generateEvent(Int_t code); | void generateEvent(Int_t code); | |||
protected: | protected: | |||
RooRealProxy x ; | RooRealProxy x ; | |||
RooRealProxy mean ; | RooRealProxy mean ; | |||
Bool_t _noRounding ; | ||||
Double_t evaluate() const ; | Double_t evaluate() const ; | |||
Double_t evaluate(Double_t k) const; | Double_t evaluate(Double_t k) const; | |||
private: | private: | |||
ClassDef(RooPoisson,1) // A Poisson PDF | ClassDef(RooPoisson,2) // A Poisson PDF | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
4 lines changed or deleted | 5 lines changed or added | |||
RooProfileLL.h | RooProfileLL.h | |||
---|---|---|---|---|
skipping to change at line 26 | skipping to change at line 26 | |||
#include "RooRealProxy.h" | #include "RooRealProxy.h" | |||
#include "RooSetProxy.h" | #include "RooSetProxy.h" | |||
#include <map> | #include <map> | |||
#include <string> | #include <string> | |||
class RooMinuit ; | class RooMinuit ; | |||
class RooProfileLL : public RooAbsReal { | class RooProfileLL : public RooAbsReal { | |||
public: | public: | |||
RooProfileLL() ; | ||||
RooProfileLL(const char *name, const char *title, RooAbsReal& nll, const RooArgSet& observables); | RooProfileLL(const char *name, const char *title, RooAbsReal& nll, const RooArgSet& observables); | |||
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()) ; } | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
RooRealProxy.h | RooRealProxy.h | |||
---|---|---|---|---|
skipping to change at line 53 | skipping to change at line 53 | |||
protected: | protected: | |||
RooAbsRealLValue* lvptr() const ; | RooAbsRealLValue* lvptr() const ; | |||
public: | public: | |||
// LValue operations | // LValue operations | |||
RooRealProxy& operator=(const Double_t& value) { lvptr()->setVal(value) ; return *this ; } | RooRealProxy& operator=(const Double_t& value) { lvptr()->setVal(value) ; return *this ; } | |||
Double_t min(const char* rname=0) const { return lvptr()->getMin(rname) ; } | Double_t min(const char* rname=0) const { return lvptr()->getMin(rname) ; } | |||
Double_t max(const char* rname=0) const { return lvptr()->getMax(rname) ; } | Double_t max(const char* rname=0) const { return lvptr()->getMax(rname) ; } | |||
Bool_t hasMin(const char* rname=0) const { return lvptr()->hasMin(rname) | ||||
; } | ||||
Bool_t hasMax(const char* rname=0) const { return lvptr()->hasMax(rname) | ||||
; } | ||||
ClassDef(RooRealProxy,1) // Proxy for a RooAbsReal object | ClassDef(RooRealProxy,1) // Proxy for a RooAbsReal object | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 4 lines changed or added | |||
RooSetProxy.h | RooSetProxy.h | |||
---|---|---|---|---|
skipping to change at line 34 | skipping to change at line 34 | |||
class RooSetProxy : public RooArgSet, public RooAbsProxy { | class RooSetProxy : public RooArgSet, public RooAbsProxy { | |||
public: | public: | |||
#ifdef USEMEMPOOL | #ifdef USEMEMPOOL | |||
void* operator new (size_t bytes); | void* operator new (size_t bytes); | |||
void operator delete (void *ptr); | void operator delete (void *ptr); | |||
#endif | #endif | |||
// Constructors, assignment etc. | // Constructors, assignment etc. | |||
RooSetProxy() { _iter = createIterator() ; _owner = 0 ; } ; | RooSetProxy() { | |||
// coverity[UNINIT_CTOR] | ||||
_iter = createIterator() ; _owner = 0 ; | ||||
} ; | ||||
RooSetProxy(const char* name, const char* desc, RooAbsArg* owner, | RooSetProxy(const char* name, const char* desc, RooAbsArg* owner, | |||
Bool_t defValueServer=kTRUE, Bool_t defShapeServer=kFALSE) ; | Bool_t defValueServer=kTRUE, Bool_t defShapeServer=kFALSE) ; | |||
RooSetProxy(const char* name, RooAbsArg* owner, const RooSetProxy& other) ; | RooSetProxy(const char* name, RooAbsArg* owner, const RooSetProxy& other) ; | |||
virtual ~RooSetProxy() ; | virtual ~RooSetProxy() ; | |||
virtual const char* name() const { return GetName() ; } | virtual const char* name() const { return GetName() ; } | |||
// List content management (modified for server hooks) | // List content management (modified for server hooks) | |||
virtual Bool_t add(const RooAbsArg& var, Bool_t silent=kFALSE) ; | virtual Bool_t add(const RooAbsArg& var, Bool_t silent=kFALSE) ; | |||
virtual Bool_t add(const RooAbsCollection& list, Bool_t silent=kFALSE) { return RooAbsCollection::add(list,silent) ; } | virtual Bool_t add(const RooAbsCollection& list, Bool_t silent=kFALSE) { return RooAbsCollection::add(list,silent) ; } | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 4 lines changed or added | |||
RooSimWSTool.h | RooSimWSTool.h | |||
---|---|---|---|---|
/************************************************************************** *** | /************************************************************************** *** | |||
* Project: RooFit * | * Project: RooFit * | |||
* Package: RooFitCore * | * Package: RooFitCore * | |||
* File: $Id: RooSimWSTool.h 28259 2009-04-16 16:21:16Z wouter $ | * File: $Id: RooSimWSTool.h 36209 2010-10-08 21:37:36Z 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) * | |||
skipping to change at line 156 | skipping to change at line 156 | |||
friend class RooSimWSTool ; | friend class RooSimWSTool ; | |||
friend class RooSimWSTool::ObjBuildConfig ; | friend class RooSimWSTool::ObjBuildConfig ; | |||
std::list<const RooCatType*> _miStateList ; | std::list<const RooCatType*> _miStateList ; | |||
std::map<RooAbsArg*, std::pair<RooArgSet,std::string> > _paramSplitMap ; //<paramName,<list<splitCatSet>,remainderStateName>> | std::map<RooAbsArg*, std::pair<RooArgSet,std::string> > _paramSplitMap ; //<paramName,<list<splitCatSet>,remainderStateName>> | |||
ClassDef(ObjSplitRule,0) // Validated RooSimWSTool split rule | ClassDef(ObjSplitRule,0) // Validated RooSimWSTool split rule | |||
} ; | } ; | |||
class RooSimWSTool::ObjBuildConfig | class RooSimWSTool::ObjBuildConfig | |||
{ | { | |||
public: | public: | |||
ObjBuildConfig() {} ; | ObjBuildConfig() : _masterCat(0) {} ; | |||
virtual ~ObjBuildConfig() {} ; | virtual ~ObjBuildConfig() {} ; | |||
void print() ; | void print() ; | |||
protected: | protected: | |||
friend class RooSimWSTool ; | friend class RooSimWSTool ; | |||
std::map<RooAbsPdf*,ObjSplitRule> _pdfmap ; | std::map<RooAbsPdf*,ObjSplitRule> _pdfmap ; | |||
std::map<RooAbsCategory*,std::list<const RooCatType*> > _restr ; | std::map<RooAbsCategory*,std::list<const RooCatType*> > _restr ; | |||
RooCategory* _masterCat ; | RooCategory* _masterCat ; | |||
RooArgSet _usedSplitCats ; | RooArgSet _usedSplitCats ; | |||
RooCmdArg _conflProtocol ; | RooCmdArg _conflProtocol ; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
RooSimultaneous.h | RooSimultaneous.h | |||
---|---|---|---|---|
skipping to change at line 23 | skipping to change at line 23 | |||
* 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_SIMULTANEOUS | #ifndef ROO_SIMULTANEOUS | |||
#define ROO_SIMULTANEOUS | #define ROO_SIMULTANEOUS | |||
//#include "THashList.h" | //#include "THashList.h" | |||
#include "TList.h" | #include "TList.h" | |||
#include "RooAbsPdf.h" | #include "RooAbsPdf.h" | |||
#include "RooCategoryProxy.h" | #include "RooCategoryProxy.h" | |||
#include "RooRealProxy.h" | ||||
#include "RooSetProxy.h" | #include "RooSetProxy.h" | |||
#include "RooAICRegistry.h" | #include "RooAICRegistry.h" | |||
#include "RooObjCacheManager.h" | #include "RooObjCacheManager.h" | |||
#include "RooAbsCacheElement.h" | #include "RooAbsCacheElement.h" | |||
#include "RooArgList.h" | #include "RooArgList.h" | |||
#include <map> | #include <map> | |||
#include <string> | #include <string> | |||
class RooAbsCategoryLValue ; | class RooAbsCategoryLValue ; | |||
class RooFitResult ; | class RooFitResult ; | |||
class RooPlot ; | class RooPlot ; | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
RooStatsUtils.h | RooStatsUtils.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: RooStatsUtils.h 35810 2010-09-27 20:05:22Z moneta $ | // @(#)root/roostats:$Id: RooStatsUtils.h 37161 2010-12-01 22:04:07Z moneta $ | |||
// Author: Kyle Cranmer 28/07/2008 | // Author: Kyle Cranmer 28/07/2008 | |||
/************************************************************************* | /************************************************************************* | |||
* 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_RooStatsUtils | #ifndef RooStats_RooStatsUtils | |||
#define RooStats_RooStatsUtils | #define RooStats_RooStatsUtils | |||
#ifndef ROOT_TMath | #ifndef ROOT_TMath | |||
#include "TMath.h" | #include "TMath.h" | |||
#endif | #endif | |||
#ifndef ROOT_Math_DistFunc | #ifndef ROOT_Math_DistFuncMathCore | |||
#include"Math/DistFunc.h" | #include"Math/DistFuncMathCore.h" | |||
#endif | #endif | |||
#include "RooArgSet.h" | #include "RooArgSet.h" | |||
#include "RooRealVar.h" | #include "RooRealVar.h" | |||
#include "RooAbsCollection.h" | #include "RooAbsCollection.h" | |||
#include "TIterator.h" | #include "TIterator.h" | |||
#include <iostream> | #include <iostream> | |||
using namespace std ; | using namespace std ; | |||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
RooStudyManager.h | RooStudyManager.h | |||
---|---|---|---|---|
/************************************************************************** *** | /************************************************************************** *** | |||
* Project: RooFit * | * Project: RooFit * | |||
* Package: RooFitCore * | * Package: RooFitCore * | |||
* File: $Id: RooStudyManager.h 30333 2009-09-21 15:39:17Z wouter $ | * File: $Id: RooStudyManager.h 37534 2010-12-10 22:30:05Z 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) * | |||
skipping to change at line 45 | skipping to change at line 45 | |||
RooStudyManager(RooWorkspace& w) ; | RooStudyManager(RooWorkspace& w) ; | |||
RooStudyManager(RooWorkspace& w, RooAbsStudy& study) ; | RooStudyManager(RooWorkspace& w, RooAbsStudy& study) ; | |||
RooStudyManager(const char* studyPackFileName) ; | RooStudyManager(const char* studyPackFileName) ; | |||
void addStudy(RooAbsStudy& study) ; | void addStudy(RooAbsStudy& study) ; | |||
// Interactive running | // Interactive running | |||
void run(Int_t nExperiments) ; | void run(Int_t nExperiments) ; | |||
// PROOF-based paralllel running | // PROOF-based paralllel running | |||
void runProof(Int_t nExperiments, const char* proofHost="") ; | void runProof(Int_t nExperiments, const char* proofHost="", Bool_t showGu i=kTRUE) ; | |||
// Batch running | // Batch running | |||
void prepareBatchInput(const char* studyName, Int_t nExpPerJob, Bool_t un ifiedInput) ; | void prepareBatchInput(const char* studyName, Int_t nExpPerJob, Bool_t un ifiedInput) ; | |||
void processBatchOutput(const char* filePat) ; | void processBatchOutput(const char* filePat) ; | |||
RooWorkspace& wspace() { return _pkg->wspace() ; } | RooWorkspace& wspace() { return _pkg->wspace() ; } | |||
std::list<RooAbsStudy*>& studies() { return _pkg->studies() ; } | std::list<RooAbsStudy*>& studies() { return _pkg->studies() ; } | |||
protected: | protected: | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
SVEvent.h | SVEvent.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: SVEvent.h 31458 2009-11-30 13:58:20Z stelzer $ | // @(#)root/tmva $Id: SVEvent.h 37252 2010-12-04 09:57:53Z evt $ | |||
// 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 47 | skipping to change at line 47 | |||
namespace TMVA | namespace TMVA | |||
{ | { | |||
class Event; | class Event; | |||
class SVEvent { | class SVEvent { | |||
public: | public: | |||
SVEvent(); | SVEvent(); | |||
SVEvent( const Event*, const Float_t ); | SVEvent( const Event*, Float_t ); | |||
SVEvent( const std::vector<Float_t>*, Float_t alpha, const Int_t type | SVEvent( const std::vector<Float_t>*, Float_t alpha, Int_t typeFlag, | |||
Flag, const UInt_t ns ); | UInt_t ns ); | |||
SVEvent( const std::vector<Float_t>* svector, Float_t alpha, Float_t | SVEvent( const std::vector<Float_t>* svector, Float_t alpha, Float_t | |||
alpha_p,const Int_t typeFlag); | alpha_p, 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; } | |||
End of changes. 2 change blocks. | ||||
6 lines changed or deleted | 6 lines changed or added | |||
SamplingDistPlot.h | SamplingDistPlot.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: SamplingDistPlot.h 34109 2010-06-24 15:00:16Z mon eta $ | // @(#)root/roostats:$Id: SamplingDistPlot.h 37333 2010-12-06 14:26:57Z mon eta $ | |||
// Authors: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | // Authors: 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_SamplingDistPlot | #ifndef ROOSTATS_SamplingDistPlot | |||
skipping to change at line 35 | skipping to change at line 35 | |||
#ifndef ROO_PLOT | #ifndef ROO_PLOT | |||
#include "RooPlot.h" | #include "RooPlot.h" | |||
#endif | #endif | |||
namespace RooStats { | namespace RooStats { | |||
class SamplingDistPlot : public TNamed, public RooPrintable { | class SamplingDistPlot : public TNamed, public RooPrintable { | |||
public: | public: | |||
// Constructors for SamplingDistribution | // Constructors for SamplingDistribution | |||
SamplingDistPlot(const Int_t nbins = 100); | SamplingDistPlot(Int_t nbins = 100); | |||
SamplingDistPlot(const char* name, const char* title, Int_t nbins, Doub | // SamplingDistPlot(const char* name, const char* title, Int_t nbins, Do | |||
le_t xmin, Double_t xmax); | uble_t xmin, Double_t xmax); | |||
// Destructor of SamplingDistribution | // Destructor of SamplingDistribution | |||
virtual ~SamplingDistPlot(); | virtual ~SamplingDistPlot() {} | |||
// adds the sampling distribution and returns the scale factor | // adds the sampling distribution and returns the scale factor | |||
Double_t AddSamplingDistribution(const SamplingDistribution *samplingDi st, Option_t *drawOptions=0); | Double_t AddSamplingDistribution(const SamplingDistribution *samplingDi st, Option_t *drawOptions="NORMALIZE HIST"); | |||
// Like AddSamplingDistribution, but also sets a shaded area in the | // Like AddSamplingDistribution, but also sets a shaded area in the | |||
// minShaded and maxShaded boundaries. | // minShaded and maxShaded boundaries. | |||
Double_t AddSamplingDistributionShaded(const SamplingDistribution *samp lingDist, Double_t minShaded, Double_t maxShaded, Option_t *drawOptions); | Double_t AddSamplingDistributionShaded(const SamplingDistribution *samp lingDist, Double_t minShaded, Double_t maxShaded, Option_t *drawOptions="NO RMALIZE HIST"); | |||
// add a line | // add a line | |||
void AddLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2, const char* title = NULL); | void AddLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2, const char* title = NULL); | |||
void Draw(const Option_t *options=0); | void Draw(Option_t *options=0); | |||
// Applies a predefined style if fApplyStyle is kTRUE (default). | // Applies a predefined style if fApplyStyle is kTRUE (default). | |||
void ApplyDefaultStyle(void); | void ApplyDefaultStyle(void); | |||
void SetLineColor(const Color_t color, const SamplingDistribution *samp | void SetLineColor(Color_t color, const SamplingDistribution *samplDist | |||
lDist = 0); | = 0); | |||
void SetLineWidth(const Width_t lwidth, const SamplingDistribution *sam | void SetLineWidth(Width_t lwidth, const SamplingDistribution *samplDist | |||
plDist = 0); | = 0); | |||
void SetLineStyle(const Style_t style, const SamplingDistribution *samp | void SetLineStyle(Style_t style, const SamplingDistribution *samplDist | |||
lDist = 0); | = 0); | |||
void SetMarkerColor(const Color_t color, const SamplingDistribution *sa | void SetMarkerColor(Color_t color, const SamplingDistribution *samplDis | |||
mplDist = 0); | t = 0); | |||
void SetMarkerStyle(const Style_t style, const SamplingDistribution *sa | void SetMarkerStyle(Style_t style, const SamplingDistribution *samplDis | |||
mplDist = 0); | t = 0); | |||
void SetMarkerSize(const Size_t size, const SamplingDistribution *sampl | void SetMarkerSize(Size_t size, const SamplingDistribution *samplDist = | |||
Dist = 0); | 0); | |||
void RebinDistribution(const Int_t rebinFactor, const SamplingDistribut ion *samplDist = 0); | void RebinDistribution(Int_t rebinFactor, const SamplingDistribution *s amplDist = 0); | |||
void SetAxisTitle(char *varName) { fVarName = TString(varName); } | void SetAxisTitle(char *varName) { fVarName = TString(varName); } | |||
// If you do not want SamplingDistPlot to interfere with your style set tings, call this | // If you do not want SamplingDistPlot to interfere with your style set tings, call this | |||
// function with "false" before Draw(). | // function with "false" before Draw(). | |||
void SetApplyStyle(const Bool_t s) { fApplyStyle = s; } | void SetApplyStyle(Bool_t s) { fApplyStyle = s; } | |||
// Returns the TH1F associated with the give SamplingDistribution. | // Returns the TH1F associated with the give SamplingDistribution. | |||
// Intended use: Access to member functions of TH1F like GetMean(), | // Intended use: Access to member functions of TH1F like GetMean(), | |||
// GetRMS() etc. | // GetRMS() etc. | |||
TH1F* GetTH1F(const SamplingDistribution *samplDist); | TH1F* GetTH1F(const SamplingDistribution *samplDist); | |||
// changes plot to log scale on x axis | // changes plot to log scale on x axis | |||
void SetLogXaxis(const Bool_t lx) { fLogXaxis = lx; } | void SetLogXaxis(Bool_t lx) { fLogXaxis = lx; } | |||
// changes plot to log scale on y axis | // changes plot to log scale on y axis | |||
void SetLogYaxis(const Bool_t ly) { fLogYaxis = ly; } | void SetLogYaxis(Bool_t ly) { fLogYaxis = ly; } | |||
// write to Root file | // write to Root file | |||
void DumpToFile(const char* RootFileName, Option_t *option="", const ch ar *ftitle="", Int_t compress=1); | void DumpToFile(const char* RootFileName, Option_t *option="", const ch ar *ftitle="", Int_t compress=1); | |||
private: | private: | |||
std::vector<Double_t> fSamplingDistr; | std::vector<Double_t> fSamplingDistr; | |||
std::vector<Double_t> fSampleWeights; | std::vector<Double_t> fSampleWeights; | |||
Bool_t fIsWeighted; | Bool_t fIsWeighted; | |||
End of changes. 11 change blocks. | ||||
25 lines changed or deleted | 25 lines changed or added | |||
SamplingDistribution.h | SamplingDistribution.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: SamplingDistribution.h 34109 2010-06-24 15:00:16Z moneta $ | // @(#)root/roostats:$Id: SamplingDistribution.h 36604 2010-11-11 16:58:54Z 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 24 | skipping to change at line 24 | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOSTATS_SamplingDistribution | #ifndef ROOSTATS_SamplingDistribution | |||
#define ROOSTATS_SamplingDistribution | #define ROOSTATS_SamplingDistribution | |||
#ifndef ROOT_TNamed | #ifndef ROOT_TNamed | |||
#include "TNamed.h" | #include "TNamed.h" | |||
#endif | #endif | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#include "RooDataSet.h" | ||||
#include <vector> | #include <vector> | |||
namespace RooStats { | namespace RooStats { | |||
class SamplingDistribution : public TNamed { | class SamplingDistribution : public TNamed { | |||
public: | public: | |||
// Constructor for SamplingDistribution | // Constructor for SamplingDistribution | |||
SamplingDistribution(const char *name,const char *title, std::vector<Do uble_t>& samplingDist, const TString varName = ""); | SamplingDistribution(const char *name,const char *title, std::vector<Do uble_t>& samplingDist, const char * varName = 0); | |||
SamplingDistribution(const char *name,const char *title, | SamplingDistribution(const char *name,const char *title, | |||
std::vector<Double_t>& samplingDist, std::vector<Do uble_t>& sampleWeights, const TString varName = ""); | std::vector<Double_t>& samplingDist, std::vector<Do uble_t>& sampleWeights, const char * varName = 0); | |||
SamplingDistribution(const char *name,const char *title, const TString | SamplingDistribution(const char *name,const char *title, const char * v | |||
varName = ""); | arName = 0); | |||
SamplingDistribution(const char *name,const char *title, RooDataSet& da | ||||
taSet, const char * varName = 0); | ||||
// Default constructor for SamplingDistribution | // Default constructor for SamplingDistribution | |||
SamplingDistribution(); | SamplingDistribution(); | |||
// Destructor of SamplingDistribution | // Destructor of SamplingDistribution | |||
virtual ~SamplingDistribution(); | virtual ~SamplingDistribution(); | |||
// get the inverse of the Cumulative distribution function | // get the inverse of the Cumulative distribution function | |||
Double_t InverseCDF(Double_t pvalue); | Double_t InverseCDF(Double_t pvalue); | |||
skipping to change at line 72 | skipping to change at line 75 | |||
// Get test statistics values | // Get test statistics values | |||
std::vector<Double_t> GetSamplingDistribution() const {return fSampling Dist;} | std::vector<Double_t> GetSamplingDistribution() const {return fSampling Dist;} | |||
// Get the sampling weights | // Get the sampling weights | |||
std::vector<Double_t> GetSampleWeights() const {return fSampleWeights;} | std::vector<Double_t> GetSampleWeights() const {return fSampleWeights;} | |||
const TString GetVarName() const {return fVarName;} | const TString GetVarName() const {return fVarName;} | |||
// numerical integral in these limits | // numerical integral in these limits | |||
Double_t Integral(Double_t low, Double_t high, Bool_t normalize = kTRUE ) const; | Double_t Integral(Double_t low, Double_t high, Bool_t normalize = kTRUE ) const; | |||
// calculate CDF as a special case of Integral(...) with lower limit eq | ||||
ual to -inf | ||||
Double_t CDF(Double_t x) const; | ||||
private: | private: | |||
std::vector<Double_t> fSamplingDist; // vector of points for the sampli ng distribution | std::vector<Double_t> fSamplingDist; // vector of points for the sampli ng distribution | |||
std::vector<Double_t> fSampleWeights; // vector of weights for the samp les | std::vector<Double_t> fSampleWeights; // vector of weights for the samp les | |||
// store a RooRealVar that this distribution corresponds to? | // store a RooRealVar that this distribution corresponds to? | |||
TString fVarName; | TString fVarName; | |||
protected: | protected: | |||
ClassDef(SamplingDistribution,1) // Class containing the results of th e HybridCalculator | ClassDef(SamplingDistribution,1) // Class containing the results of th e HybridCalculator | |||
End of changes. 6 change blocks. | ||||
5 lines changed or deleted | 13 lines changed or added | |||
ScopeBase.h | ScopeBase.h | |||
---|---|---|---|---|
// @(#)root/reflex:$Id: ScopeBase.h 32228 2010-02-05 16:13:09Z axel $ | // @(#)root/reflex:$Id: ScopeBase.h 36289 2010-10-11 09:54:28Z axel $ | |||
// Author: Stefan Roiser 2004 | // Author: Stefan Roiser 2004 | |||
// Copyright CERN, CH-1211 Geneva 23, 2004-2010, All rights reserved. | // Copyright CERN, CH-1211 Geneva 23, 2004-2010, All rights reserved. | |||
// | // | |||
// Permission to use, copy, modify, and distribute this software for any | // Permission to use, copy, modify, and distribute this software for any | |||
// purpose is hereby granted without fee, provided that this copyright and | // purpose is hereby granted without fee, provided that this copyright and | |||
// permissions notice appear in all copies and derivatives. | // permissions notice appear in all copies and derivatives. | |||
// | // | |||
// This software is provided "as is" without express or implied warranty. | // This software is provided "as is" without express or implied warranty. | |||
#ifndef Reflex_ScopeBase | #ifndef Reflex_ScopeBase | |||
#define Reflex_ScopeBase | #define Reflex_ScopeBase | |||
// Include files | // Include files | |||
#include "Reflex/Kernel.h" | #include "Reflex/Kernel.h" | |||
#ifndef Reflex_Scope | ||||
#include "Reflex/Scope.h" | #include "Reflex/Scope.h" | |||
#endif | ||||
#include "Reflex/internal/OwnedPropertyList.h" | #include "Reflex/internal/OwnedPropertyList.h" | |||
#include "Reflex/internal/BuilderContainer.h" | #include "Reflex/internal/BuilderContainer.h" | |||
#include <vector> | #include <vector> | |||
#ifdef _WIN32 | #ifdef _WIN32 | |||
# pragma warning( push ) | # pragma warning( push ) | |||
# pragma warning( disable : 4251 ) | # pragma warning( disable : 4251 ) | |||
#endif | #endif | |||
namespace Reflex { | namespace Reflex { | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
SdivSqrtSplusB.h | SdivSqrtSplusB.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: SdivSqrtSplusB.h 29122 2009-06-22 06:51:30Z brun $ | // @(#)root/tmva $Id: SdivSqrtSplusB.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 : SdivSqrtSplusB * | * Class : SdivSqrtSplusB * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: Implementation of the SdivSqrtSplusB as separation criterio n * | * Description: Implementation of the SdivSqrtSplusB as separation criterio n * | |||
* S/sqrt(S + B) * | * S/sqrt(S + B) * | |||
skipping to change at line 51 | skipping to change at line 51 | |||
#include "TMVA/SeparationBase.h" | #include "TMVA/SeparationBase.h" | |||
#endif | #endif | |||
namespace TMVA { | namespace TMVA { | |||
class SdivSqrtSplusB : public SeparationBase { | class SdivSqrtSplusB : public SeparationBase { | |||
public: | public: | |||
//constructor for the "statistical significance" index | //constructor for the "statistical significance" index | |||
SdivSqrtSplusB() { fName = "StatSig"; } | SdivSqrtSplusB(): SeparationBase() { fName = "StatSig"; } | |||
// copy constructor | // copy constructor | |||
SdivSqrtSplusB( const SdivSqrtSplusB& g): SeparationBase(g) {} | SdivSqrtSplusB( const SdivSqrtSplusB& g): SeparationBase(g) {} | |||
//destructor | //destructor | |||
virtual ~SdivSqrtSplusB() {} | virtual ~SdivSqrtSplusB() {} | |||
// return the Index (S/sqrt(S+B)) | // return the Index (S/sqrt(S+B)) | |||
virtual Double_t GetSeparationIndex( const Double_t &s, const Double _t &b ); | virtual Double_t GetSeparationIndex( const Double_t &s, const Double _t &b ); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
SeparationBase.h | SeparationBase.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: SeparationBase.h 35727 2010-09-24 21:41:20Z stelzer $ | // @(#)root/tmva $Id: SeparationBase.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 : SeparationBase * | * Class : SeparationBase * | |||
* Web : http://tmva.sourceforge.net * | * Web : http://tmva.sourceforge.net * | |||
* * | * * | |||
* Description: An interface to different separation critiera useded in var ious * | * Description: An interface to different separation critiera useded in var ious * | |||
* training algorithms, as there are: * | * training algorithms, as there are: * | |||
skipping to change at line 80 | skipping to change at line 80 | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#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 | |||
#ifndef ROOT_TMath | ||||
#include "TMath.h" | ||||
#endif | ||||
#include <limits> | ||||
namespace TMVA { | namespace TMVA { | |||
class SeparationBase { | class SeparationBase { | |||
public: | public: | |||
// default constructor | // default constructor | |||
SeparationBase(); | SeparationBase(); | |||
// copy constructor | //copy constructor | |||
SeparationBase( const SeparationBase& s ); | SeparationBase( const SeparationBase& s ); | |||
// destructor | // destructor | |||
virtual ~SeparationBase(){} | virtual ~SeparationBase(){} | |||
// Return the gain in separation of the original sample is splitted i n two sub-samples | // Return the gain in separation of the original sample is splitted i n two sub-samples | |||
// (N * Index_parent) - (N_left * Index_left) - (N_right * Index_righ t) | // (N * Index_parent) - (N_left * Index_left) - (N_right * Index_righ t) | |||
Double_t GetSeparationGain( const Double_t& nSelS, const Double_t& nS elB, | Double_t GetSeparationGain( const Double_t& nSelS, const Double_t& nS elB, | |||
const Double_t& nTotS, const Double_t& nT otB ); | const Double_t& nTotS, const Double_t& nT otB ); | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 8 lines changed or added | |||
SimpleLikelihoodRatioTestStat.h | SimpleLikelihoodRatioTestStat.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: SimpleLikelihoodRatioTestStat.h 34109 2010-06-24 15:00:16Z moneta $ | // @(#)root/roostats:$Id: SimpleLikelihoodRatioTestStat.h 36602 2010-11-11 16:52:13Z moneta $ | |||
/************************************************************************* | /************************************************************************* | |||
* 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_SimpleLikelihoodRatioTestStat | #ifndef ROOSTATS_SimpleLikelihoodRatioTestStat | |||
#define ROOSTATS_SimpleLikelihoodRatioTestStat | #define ROOSTATS_SimpleLikelihoodRatioTestStat | |||
//_________________________________________________ | //_________________________________________________ | |||
/* | /* | |||
BEGIN_HTML | BEGIN_HTML | |||
<p> | <p> | |||
SimpleLikelihoodRatioTestStat: TestStatistic that returns -log(L[null] / L[ | SimpleLikelihoodRatioTestStat: TestStatistic that returns -log(L[null] / L | |||
alt]) where | [alt]) where | |||
L is the likelihood. | L is the likelihood. | |||
</p> | </p> | |||
END_HTML | END_HTML | |||
*/ | */ | |||
// | // | |||
#ifndef ROOT_Rtypes | #ifndef ROOT_Rtypes | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
#ifndef ROO_NLL_VAR | #ifndef ROO_NLL_VAR | |||
#include "RooNLLVar.h" | #include "RooNLLVar.h" | |||
#endif | #endif | |||
#include "RooStats/TestStatistic.h" | #include "RooStats/TestStatistic.h" | |||
namespace RooStats { | namespace RooStats { | |||
class SimpleLikelihoodRatioTestStat: public TestStatistic { | class SimpleLikelihoodRatioTestStat : public TestStatistic { | |||
public: | public: | |||
//__________________________________ | //__________________________________ | |||
SimpleLikelihoodRatioTestStat(RooAbsPdf& nullPdf, RooAbsPdf& altPdf) : | SimpleLikelihoodRatioTestStat() : | |||
fNullPdf(nullPdf), fAltPdf(altPdf) | fNullPdf(NULL), fAltPdf(NULL) | |||
{ | ||||
// b/c null and alternate parameters are not set, it will take | ||||
// values from PDF. Can override | ||||
fFirstEval=true; | ||||
fNullParameters = (RooArgSet*)fNullPdf.getVariables()->snapshot(); | ||||
fAltParameters = (RooArgSet*)fAltPdf.getVariables()->snapshot(); | ||||
} | ||||
//__________________________________ | ||||
SimpleLikelihoodRatioTestStat(RooAbsPdf& nullPdf, RooAbsPdf& altPdf, cons | ||||
t RooArgSet& nullParameters, const RooArgSet& altParameters) : | ||||
fNullPdf(nullPdf), fAltPdf(altPdf) | ||||
{ | { | |||
// constructor, explicitly set parameters. | // Constructor for proof. Do not use. | |||
// note to developers, constructor with two const RooArgSet* | fFirstEval = true; | |||
// causes problems if the usage is | fNullParameters = NULL; | |||
// null.GetSnapshot(), alt.GetSnapshot() | fAltParameters = NULL; | |||
// because both are pointers to the same set, and you will | } | |||
// get duplicate values. | ||||
//__________________________________ | ||||
fFirstEval=true; | SimpleLikelihoodRatioTestStat( | |||
fNullParameters = (RooArgSet*)nullParameters.snapshot(); | RooAbsPdf& nullPdf, | |||
fAltParameters = (RooArgSet*)altParameters.snapshot(); | RooAbsPdf& altPdf | |||
) : | ||||
fFirstEval(true) | ||||
{ | ||||
// Takes null and alternate parameters from PDF. Can be overridden | ||||
. | ||||
RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBe | ||||
low(); | ||||
RooMsgService::instance().setGlobalKillBelow(RooFit::ERROR); | ||||
w.import(nullPdf, RooFit::RecycleConflictNodes()); | ||||
w.import(altPdf, RooFit::RecycleConflictNodes()); | ||||
RooMsgService::instance().setGlobalKillBelow(msglevel); | ||||
fNullPdf = w.pdf(nullPdf.GetName()); | ||||
fAltPdf = w.pdf(altPdf.GetName()); | ||||
fNullParameters = (RooArgSet*) fNullPdf->getVariables()->snapshot( | ||||
); | ||||
fAltParameters = (RooArgSet*) fAltPdf->getVariables()->snapshot(); | ||||
} | } | |||
//__________________________________ | ||||
SimpleLikelihoodRatioTestStat( | ||||
RooAbsPdf& nullPdf, | ||||
RooAbsPdf& altPdf, | ||||
const RooArgSet& nullParameters, | ||||
const RooArgSet& altParameters | ||||
) : | ||||
fFirstEval(true) | ||||
{ | ||||
// Takes null and alternate parameters from values in nullParamete | ||||
rs | ||||
// and altParameters. Can be overridden. | ||||
RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBe | ||||
low(); | ||||
RooMsgService::instance().setGlobalKillBelow(RooFit::ERROR); | ||||
w.import(nullPdf, RooFit::RecycleConflictNodes()); | ||||
w.import(altPdf, RooFit::RecycleConflictNodes()); | ||||
RooMsgService::instance().setGlobalKillBelow(msglevel); | ||||
fNullPdf = w.pdf(nullPdf.GetName()); | ||||
fAltPdf = w.pdf(altPdf.GetName()); | ||||
//_________________________________________ | fNullParameters = (RooArgSet*) nullParameters.snapshot(); | |||
void SetNullParameters(const RooArgSet& nullParameters){ | fAltParameters = (RooArgSet*) altParameters.snapshot(); | |||
delete fNullParameters; | } | |||
fFirstEval=true; | ||||
// if(fNullParameters) delete fNullParameters; | //______________________________ | |||
fNullParameters = (RooArgSet*)nullParameters.snapshot(); | virtual ~SimpleLikelihoodRatioTestStat() { | |||
} | if (fNullParameters) delete fNullParameters; | |||
if (fAltParameters) delete fAltParameters; | ||||
//_________________________________________ | } | |||
void SetAltParameters(const RooArgSet& altParameters){ | ||||
delete fAltParameters; | //_________________________________________ | |||
fFirstEval=true; | void SetNullParameters(const RooArgSet& nullParameters) { | |||
// if(fAltParameters) delete fAltParameters; | if (fNullParameters) delete fNullParameters; | |||
fAltParameters = (RooArgSet*)altParameters.snapshot(); | fFirstEval = true; | |||
} | // if(fNullParameters) delete fNullParameters; | |||
//______________________________ | fNullParameters = (RooArgSet*) nullParameters.snapshot(); | |||
virtual ~SimpleLikelihoodRatioTestStat() { | } | |||
delete fNullParameters; | ||||
delete fAltParameters; | //_________________________________________ | |||
} | void SetAltParameters(const RooArgSet& altParameters) { | |||
if (fAltParameters) delete fAltParameters; | ||||
//______________________________ | fFirstEval = true; | |||
bool ParamsAreEqual(){ | // if(fAltParameters) delete fAltParameters; | |||
// this should be possible with RooAbsCollection | fAltParameters = (RooArgSet*) altParameters.snapshot(); | |||
if(!fNullParameters->equals(*fAltParameters)) | } | |||
return false; | ||||
//______________________________ | ||||
RooAbsReal* null; | bool ParamsAreEqual() { | |||
RooAbsReal* alt; | // this should be possible with RooAbsCollection | |||
if (!fNullParameters->equals(*fAltParameters)) return false; | ||||
TIterator* nullIt = fNullParameters->createIterator(); | ||||
TIterator* altIt = fAltParameters->createIterator(); | RooAbsReal* null; | |||
bool ret =true; | RooAbsReal* alt; | |||
while((null = (RooAbsReal*) nullIt->Next()) && | ||||
(alt = (RooAbsReal*) altIt->Next()) ){ | TIterator* nullIt = fNullParameters->createIterator(); | |||
if(null->getVal() != alt->getVal() ) ret = false; | TIterator* altIt = fAltParameters->createIterator(); | |||
} | bool ret = true; | |||
delete nullIt; | while ((null = (RooAbsReal*) nullIt->Next()) && (alt = (RooAbsReal | |||
delete altIt; | *) altIt->Next())) { | |||
return ret; | if (null->getVal() != alt->getVal()) ret = false; | |||
} | } | |||
delete nullIt; | ||||
//______________________________ | delete altIt; | |||
virtual Double_t Evaluate(RooAbsData& data, RooArgSet& /*nullPOI*/) { | return ret; | |||
} | ||||
if( fFirstEval && ParamsAreEqual()){ | ||||
oocoutW(fNullParameters,InputArguments) << "Same RooArgSet used fo | //______________________________ | |||
r null and alternate, so you must explicitly SetNullParameters and SetAlter | virtual Double_t Evaluate(RooAbsData& data, RooArgSet& nullPOI) { | |||
nateParameters or the likelihood ratio will always be 1." << endl; | ||||
} | if (fFirstEval && ParamsAreEqual()) { | |||
fFirstEval=false; | oocoutW(fNullParameters,InputArguments) | |||
<< "Same RooArgSet used for null and alternate, so you must | ||||
explicitly SetNullParameters and SetAlternateParameters or the likelihood r | ||||
atio will always be 1." | ||||
<< endl; | ||||
} | ||||
fFirstEval = false; | ||||
RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBe low(); | RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBe low(); | |||
RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); | RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL); | |||
RooAbsReal *nll; | RooAbsReal *nll; | |||
nll = fNullPdf.createNLL(data, RooFit::CloneData(kFALSE)); | nll = fNullPdf->createNLL(data, RooFit::CloneData(kFALSE)); | |||
// make sure we set the variables attached to this nll | // make sure we set the variables attached to this nll | |||
RooArgSet* attachedSet = nll->getVariables(); | RooArgSet* attachedSet = nll->getVariables(); | |||
*attachedSet = *fNullParameters; | *attachedSet = *fNullParameters; | |||
*attachedSet = nullPOI; | ||||
double nullNLL = nll->getVal(); | double nullNLL = nll->getVal(); | |||
delete nll; | delete nll; | |||
delete attachedSet; | delete attachedSet; | |||
nll = fAltPdf.createNLL(data, RooFit::CloneData(kFALSE)); | nll = fAltPdf->createNLL(data, RooFit::CloneData(kFALSE)); | |||
// make sure we set the variables attached to this nll | // make sure we set the variables attached to this nll | |||
attachedSet = nll->getVariables(); | attachedSet = nll->getVariables(); | |||
*attachedSet = *fAltParameters; | *attachedSet = *fAltParameters; | |||
double altNLL = nll->getVal(); | double altNLL = nll->getVal(); | |||
delete nll; | delete nll; | |||
delete attachedSet; | delete attachedSet; | |||
RooMsgService::instance().setGlobalKillBelow(msglevel); | RooMsgService::instance().setGlobalKillBelow(msglevel); | |||
return nullNLL - altNLL; | return nullNLL - altNLL; | |||
} | } | |||
virtual const TString GetVarName() const { return "log(L(#mu_{1}) / L | virtual const TString GetVarName() const { | |||
(#mu_{0}))"; } | return "log(L(#mu_{1}) / L(#mu_{0}))"; | |||
} | ||||
private: | private: | |||
RooAbsPdf& fNullPdf; | RooWorkspace w; | |||
RooAbsPdf& fAltPdf; | ||||
RooAbsPdf* fNullPdf; | ||||
RooAbsPdf* fAltPdf; | ||||
RooArgSet* fNullParameters; | RooArgSet* fNullParameters; | |||
RooArgSet* fAltParameters; | RooArgSet* fAltParameters; | |||
bool fFirstEval; | bool fFirstEval; | |||
protected: | protected: | |||
ClassDef(SimpleLikelihoodRatioTestStat,1) | ClassDef(SimpleLikelihoodRatioTestStat,1) | |||
}; | }; | |||
} | } | |||
End of changes. 14 change blocks. | ||||
100 lines changed or deleted | 138 lines changed or added | |||
SpecFuncMathMore.h | SpecFuncMathMore.h | |||
---|---|---|---|---|
// @(#)root/mathmore:$Id: SpecFuncMathMore.h 34054 2010-06-22 12:27:30Z mon eta $ | // @(#)root/mathmore:$Id: SpecFuncMathMore.h 37160 2010-12-01 21:52:04Z mon eta $ | |||
// Authors: L. Moneta, A. Zsenei 08/2005 | // Authors: L. Moneta, A. Zsenei 08/2005 | |||
// Authors: Andras Zsenei & Lorenzo Moneta 06/2005 | // Authors: Andras Zsenei & Lorenzo Moneta 06/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 * | |||
skipping to change at line 699 | skipping to change at line 699 | |||
The implementation used is that of | The implementation used is that of | |||
<A HREF="http://www.gnu.org/software/gsl/manual/html_node/Zeros-of-Deriva tives-of-Airy-Functions.html">GSL</A>. | <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Zeros-of-Deriva tives-of-Airy-Functions.html">GSL</A>. | |||
@ingroup SpecFunc | @ingroup SpecFunc | |||
*/ | */ | |||
// s-th zero of the derivative of the Airy function Bi | // s-th zero of the derivative of the Airy function Bi | |||
double airy_zero_Bi_deriv(unsigned int s); | double airy_zero_Bi_deriv(unsigned int s); | |||
/** | ||||
Calculates the Wigner 3j coupling coefficients | ||||
For detailed description see | ||||
<A HREF="http://mathworld.wolfram.com/Wigner3j-Symbol.html.html"> | ||||
Mathworld</A>. | ||||
The implementation used is that of | ||||
<A HREF="http://www.gnu.org/software/gsl/manual/html_node/3_002dj-Symbols | ||||
.html#g_t3_002dj-Symbols">GSL</A>. | ||||
@ingroup SpecFunc | ||||
*/ | ||||
double wigner_3j(int ja, int jb, int jc, int ma, int mb, int mc); | ||||
/** | ||||
Calculates the Wigner 6j coupling coefficients | ||||
For detailed description see | ||||
<A HREF="http://mathworld.wolfram.com/Wigner6j-Symbol.html"> | ||||
Mathworld</A>. | ||||
The implementation used is that of | ||||
<A HREF="http://www.gnu.org/software/gsl/manual/html_node/6_002dj-Symbols | ||||
.html#g_t6_002dj-Symbols">GSL</A>. | ||||
@ingroup SpecFunc | ||||
*/ | ||||
double wigner_6j(int ja, int jb, int jc, int jd, int je, int jf); | ||||
/** | ||||
Calculates the Wigner 9j coupling coefficients | ||||
For detailed description see | ||||
<A HREF="http://mathworld.wolfram.com/Wigner9j-Symbol.html"> | ||||
Mathworld</A>. | ||||
The implementation used is that of | ||||
<A HREF="http://www.gnu.org/software/gsl/manual/html_node/9_002dj-Symbols | ||||
.html#g_t9_002dj-Symbols">GSL</A>. | ||||
@ingroup SpecFunc | ||||
*/ | ||||
double wigner_9j(int ja, int jb, int jc, int jd, int je, int jf, int jg, | ||||
int jh, int ji); | ||||
} // namespace Math | } // namespace Math | |||
} // namespace ROOT | } // namespace ROOT | |||
#endif //ROOT_Math_SpecFuncMathMore | #endif //ROOT_Math_SpecFuncMathMore | |||
#endif // if defined (__CINT__) && !defined(__MAKECINT__) | #endif // if defined (__CINT__) && !defined(__MAKECINT__) | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 53 lines changed or added | |||
TAttPad.h | TAttPad.h | |||
---|---|---|---|---|
// @(#)root/base:$Id: TAttPad.h 26433 2008-11-24 20:55:56Z brun $ | // @(#)root/base:$Id: TAttPad.h 36045 2010-10-03 16:10:52Z brun $ | |||
// Author: Rene Brun 04/01/95 | // Author: Rene Brun 04/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 34 | skipping to change at line 34 | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
class TAttPad { | class TAttPad { | |||
protected: | protected: | |||
Float_t fLeftMargin; //LeftMargin | Float_t fLeftMargin; //LeftMargin | |||
Float_t fRightMargin; //RightMargin | Float_t fRightMargin; //RightMargin | |||
Float_t fBottomMargin; //BottomMargin | Float_t fBottomMargin; //BottomMargin | |||
Float_t fTopMargin; //TopMargin | Float_t fTopMargin; //TopMargin | |||
Float_t fXfile; //X position where to draw the file name | Float_t fXfile; //X position where to draw the file name | |||
Float_t fYfile; //X position where to draw the file name | Float_t fYfile; //Y position where to draw the file name | |||
Float_t fAfile; //Alignment for the file name | Float_t fAfile; //Alignment for the file name | |||
Float_t fXstat; //X position where to draw the statistics | Float_t fXstat; //X position where to draw the statistics | |||
Float_t fYstat; //X position where to draw the statistics | Float_t fYstat; //Y position where to draw the statistics | |||
Float_t fAstat; //Alignment for the statistics | Float_t fAstat; //Alignment for the statistics | |||
Color_t fFrameFillColor; //pad frame fill color | Color_t fFrameFillColor; //pad frame fill color | |||
Color_t fFrameLineColor; //pad frame line color | Color_t fFrameLineColor; //pad frame line color | |||
Style_t fFrameFillStyle; //pad frame fill style | Style_t fFrameFillStyle; //pad frame fill style | |||
Style_t fFrameLineStyle; //pad frame line style | Style_t fFrameLineStyle; //pad frame line style | |||
Width_t fFrameLineWidth; //pad frame line width | Width_t fFrameLineWidth; //pad frame line width | |||
Width_t fFrameBorderSize; //pad frame border size | Width_t fFrameBorderSize; //pad frame border size | |||
Int_t fFrameBorderMode; //pad frame border mode | Int_t fFrameBorderMode; //pad frame border mode | |||
public: | public: | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
TAxis.h | TAxis.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: TAxis.h 27982 2009-03-28 19:05:50Z brun $ | // @(#)root/hist:$Id: TAxis.h 36506 2010-11-04 20:58:59Z brun $ | |||
// Author: Rene Brun 12/12/94 | // Author: Rene Brun 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 139 | skipping to change at line 139 | |||
virtual void SetNoExponent(Bool_t noExponent=kTRUE); // *TOGGLE* *GETTER=GetNoExponent | virtual void SetNoExponent(Bool_t noExponent=kTRUE); // *TOGGLE* *GETTER=GetNoExponent | |||
virtual void SetDecimals(Bool_t dot=kTRUE); // *TOGGLE* *GETTER=G etDecimals | virtual void SetDecimals(Bool_t dot=kTRUE); // *TOGGLE* *GETTER=G etDecimals | |||
virtual void SetParent(TObject *obj) {fParent = obj;} | virtual void SetParent(TObject *obj) {fParent = obj;} | |||
virtual void SetRange(Int_t first=0, Int_t last=0); // *MENU* | virtual void SetRange(Int_t first=0, Int_t last=0); // *MENU* | |||
virtual void SetRangeUser(Double_t ufirst, Double_t ulast); // *M ENU* | virtual void SetRangeUser(Double_t ufirst, Double_t ulast); // *M ENU* | |||
virtual void SetTicks(Option_t *option="+"); // *MENU* | virtual void SetTicks(Option_t *option="+"); // *MENU* | |||
virtual void SetTimeDisplay(Int_t value) {fTimeDisplay = (value != 0);} // *TOGGLE* | virtual void SetTimeDisplay(Int_t value) {fTimeDisplay = (value != 0);} // *TOGGLE* | |||
virtual void SetTimeFormat(const char *format=""); // *MENU* | virtual void SetTimeFormat(const char *format=""); // *MENU* | |||
virtual void SetTimeOffset(Double_t toffset, Option_t *option="loc al"); | virtual void SetTimeOffset(Double_t toffset, Option_t *option="loc al"); | |||
virtual void UnZoom(); // *MENU* | virtual void UnZoom(); // *MENU* | |||
virtual void ZoomOut(Double_t factor=0, Double_t offset=0); // *M ENU* | ||||
ClassDef(TAxis,9) //Axis class | ClassDef(TAxis,9) //Axis class | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TBox.h | TBox.h | |||
---|---|---|---|---|
// @(#)root/graf:$Id: TBox.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/graf:$Id: TBox.h 36489 2010-11-03 08:33:25Z brun $ | |||
// Author: Rene Brun 12/12/94 | // Author: Rene Brun 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 66 | skipping to change at line 66 | |||
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 TBox *DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y 2); | virtual TBox *DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y 2); | |||
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py); | virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py); | |||
Bool_t IsBeingResized() const { return fResizing; } | Bool_t IsBeingResized() const { return fResizing; } | |||
Double_t GetX1() const { return fX1; } | Double_t GetX1() const { return fX1; } | |||
Double_t GetX2() const { return fX2; } | Double_t GetX2() const { return fX2; } | |||
Double_t GetY1() const { return fY1; } | Double_t GetY1() const { return fY1; } | |||
Double_t GetY2() const { return fY2; } | Double_t GetY2() const { return fY2; } | |||
virtual void HideToolTip(Int_t event); | virtual void HideToolTip(Int_t event); | |||
virtual Int_t IsInside(Double_t x, Double_t y) const; | ||||
virtual void ls(Option_t *option="") const; | virtual void ls(Option_t *option="") const; | |||
virtual void Paint(Option_t *option=""); | virtual void Paint(Option_t *option=""); | |||
virtual void PaintBox(Double_t x1, Double_t y1, Double_t x2, Double_t y 2, Option_t *option=""); | virtual void PaintBox(Double_t x1, Double_t y1, Double_t x2, Double_t y 2, Option_t *option=""); | |||
virtual void Print(Option_t *option="") const; | virtual void Print(Option_t *option="") const; | |||
virtual void SavePrimitive(ostream &out, Option_t *option = ""); | virtual void SavePrimitive(ostream &out, Option_t *option = ""); | |||
virtual void SetX1(Double_t x1) {fX1=x1;} | virtual void SetX1(Double_t x1) {fX1=x1;} | |||
virtual void SetX2(Double_t x2) {fX2=x2;} | virtual void SetX2(Double_t x2) {fX2=x2;} | |||
virtual void SetY1(Double_t y1) {fY1=y1;} | virtual void SetY1(Double_t y1) {fY1=y1;} | |||
virtual void SetY2(Double_t y2) {fY2=y2;} | virtual void SetY2(Double_t y2) {fY2=y2;} | |||
virtual void SetToolTipText(const char *text, Long_t delayms = 1000); | virtual void SetToolTipText(const char *text, Long_t delayms = 1000); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TBranch.h | TBranch.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TBranch.h 35231 2010-09-10 17:59:10Z pcanal $ | // @(#)root/tree:$Id: TBranch.h 37168 2010-12-02 02:34:55Z pcanal $ | |||
// 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 188 | skipping to change at line 188 | |||
virtual void SetBasketSize(Int_t buffsize); | virtual void SetBasketSize(Int_t buffsize); | |||
virtual void SetBufferAddress(TBuffer *entryBuffer); | virtual void SetBufferAddress(TBuffer *entryBuffer); | |||
virtual void SetCompressionLevel(Int_t level=1); | virtual void SetCompressionLevel(Int_t level=1); | |||
virtual void SetEntries(Long64_t entries); | virtual void SetEntries(Long64_t entries); | |||
virtual void SetEntryOffsetLen(Int_t len, Bool_t updateSubBranches = kFALSE); | virtual void SetEntryOffsetLen(Int_t len, Bool_t updateSubBranches = kFALSE); | |||
virtual void SetFirstEntry( Long64_t entry ); | virtual void SetFirstEntry( Long64_t entry ); | |||
virtual void SetFile(TFile *file=0); | virtual void SetFile(TFile *file=0); | |||
virtual void SetFile(const char *filename); | virtual void SetFile(const char *filename); | |||
virtual Bool_t SetMakeClass(Bool_t decomposeObj = kTRUE); | virtual Bool_t SetMakeClass(Bool_t decomposeObj = kTRUE); | |||
virtual void SetOffset(Int_t offset=0) {fOffset=offset;} | virtual void SetOffset(Int_t offset=0) {fOffset=offset;} | |||
virtual void SetStatus(Bool_t status=1); | ||||
virtual void SetTree(TTree *tree) { fTree = tree;} | virtual void SetTree(TTree *tree) { fTree = tree;} | |||
virtual void SetupAddresses(); | ||||
virtual void UpdateAddress() {;} | virtual void UpdateAddress() {;} | |||
virtual void UpdateFile(); | virtual void UpdateFile(); | |||
static void ResetCount(); | static void ResetCount(); | |||
ClassDef(TBranch,12); //Branch descriptor | ClassDef(TBranch,12); //Branch descriptor | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
TBranchElement.h | TBranchElement.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TBranchElement.h 34969 2010-08-24 19:01:19Z pcanal $ | // @(#)root/tree:$Id: TBranchElement.h 36061 2010-10-04 16:05:51Z pcanal $ | |||
// Author: Rene Brun 14/01/2001 | // Author: Rene Brun 14/01/2001 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 35 | skipping to change at line 35 | |||
#ifndef ROOT_TClassRef | #ifndef ROOT_TClassRef | |||
#include "TClassRef.h" | #include "TClassRef.h" | |||
#endif | #endif | |||
#include <vector> | #include <vector> | |||
class TFolder; | class TFolder; | |||
class TStreamerInfo; | class TStreamerInfo; | |||
class TVirtualCollectionProxy; | class TVirtualCollectionProxy; | |||
class TVirtualCollectionIterators; | ||||
class TVirtualCollectionPtrIterators; | ||||
class TVirtualArray; | class TVirtualArray; | |||
namespace TStreamerInfoActions { class TActionSequence; } | ||||
class TBranchElement : public TBranch { | class TBranchElement : public TBranch { | |||
// Friends | // Friends | |||
friend class TTreeCloner; | friend class TTreeCloner; | |||
// Types | // Types | |||
protected: | protected: | |||
enum { | enum { | |||
kBranchFolder = BIT(14), | kBranchFolder = BIT(14), | |||
kDeleteObject = BIT(16), // We are the owner of fObject. | kDeleteObject = BIT(16), // We are the owner of fObject. | |||
skipping to change at line 82 | skipping to change at line 86 | |||
char *fObject; //! Pointer to object at *fAddr ess | char *fObject; //! Pointer to object at *fAddr ess | |||
TVirtualArray *fOnfileObject; //! Place holder for the onfile representation of data members. | TVirtualArray *fOnfileObject; //! Place holder for the onfile representation of data members. | |||
Bool_t fInit; //! Initialization flag for bra nch assignment | Bool_t fInit; //! Initialization flag for bra nch assignment | |||
Bool_t fInitOffsets; //! Initialization flag to not endlessly recalculate offsets | Bool_t fInitOffsets; //! Initialization flag to not endlessly recalculate offsets | |||
TClassRef fCurrentClass; //! Reference to current (trans ient) class definition | TClassRef fCurrentClass; //! Reference to current (trans ient) class definition | |||
TClassRef fParentClass; //! Reference to class definiti on in fParentName | TClassRef fParentClass; //! Reference to class definiti on in fParentName | |||
TClassRef fBranchClass; //! Reference to class definiti on in fClassName | TClassRef fBranchClass; //! Reference to class definiti on in fClassName | |||
Int_t *fBranchOffset; //! Sub-Branch offsets with res pect to current transient class | Int_t *fBranchOffset; //! Sub-Branch offsets with res pect to current transient class | |||
Int_t fBranchID; //! ID number assigned by a TRe fTable. | Int_t fBranchID; //! ID number assigned by a TRe fTable. | |||
std::vector<Int_t> fIDs; //! List of the serial number o f all the StreamerInfo to be used. | std::vector<Int_t> fIDs; //! List of the serial number o f all the StreamerInfo to be used. | |||
TStreamerInfoActions::TActionSequence *fReadActionSequence; //! Set of | ||||
actions to be executed to extract the data from the basket. | ||||
TVirtualCollectionIterators *fIterators; //! holds the ite | ||||
rators when the branch is of fType==4. | ||||
TVirtualCollectionPtrIterators *fPtrIterators; //! holds the ite | ||||
rators when the branch is of fType==4 and it is a split collection of point | ||||
ers. | ||||
// Not implemented | // Not implemented | |||
private: | private: | |||
TBranchElement(const TBranchElement&); // not implemented | TBranchElement(const TBranchElement&); // not implemented | |||
TBranchElement& operator=(const TBranchElement&); // not implemented | TBranchElement& operator=(const TBranchElement&); // not implemented | |||
static void SwitchContainer(TObjArray *); | static void SwitchContainer(TObjArray *); | |||
// Implementation use only functions. | // Implementation use only functions. | |||
protected: | protected: | |||
skipping to change at line 112 | skipping to change at line 119 | |||
void ValidateAddress() const; | void ValidateAddress() const; | |||
void Init(TTree *tree, TBranch *parent, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0); | void Init(TTree *tree, TBranch *parent, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0); | |||
void Init(TTree *tree, TBranch *parent, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1 ); | void Init(TTree *tree, TBranch *parent, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1 ); | |||
void Init(TTree *tree, TBranch *parent, const char* name, TVirtualCollec tionProxy* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t comp ress = -1); | void Init(TTree *tree, TBranch *parent, const char* name, TVirtualCollec tionProxy* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t comp ress = -1); | |||
void ReadLeavesImpl(TBuffer& b); | void ReadLeavesImpl(TBuffer& b); | |||
void ReadLeavesMakeClass(TBuffer& b); | void ReadLeavesMakeClass(TBuffer& b); | |||
void ReadLeavesCollection(TBuffer& b); | void ReadLeavesCollection(TBuffer& b); | |||
void ReadLeavesCollectionSplitPtrMember(TBuffer& b); | void ReadLeavesCollectionSplitPtrMember(TBuffer& b); | |||
void ReadLeavesCollectionSplitVectorPtrMember(TBuffer& b); | ||||
void ReadLeavesCollectionMember(TBuffer& b); | void ReadLeavesCollectionMember(TBuffer& b); | |||
void ReadLeavesClones(TBuffer& b); | void ReadLeavesClones(TBuffer& b); | |||
void ReadLeavesClonesMember(TBuffer& b); | void ReadLeavesClonesMember(TBuffer& b); | |||
void ReadLeavesCustomStreamer(TBuffer& b); | void ReadLeavesCustomStreamer(TBuffer& b); | |||
void ReadLeavesMember(TBuffer& b); | void ReadLeavesMember(TBuffer& b); | |||
void ReadLeavesMemberBranchCount(TBuffer& b); | void ReadLeavesMemberBranchCount(TBuffer& b); | |||
void ReadLeavesMemberCounter(TBuffer& b); | void ReadLeavesMemberCounter(TBuffer& b); | |||
void SetReadLeavesPtr(); | void SetReadLeavesPtr(); | |||
void SetReadActionSequence(); | ||||
// Public Interface. | // Public Interface. | |||
public: | public: | |||
TBranchElement(); | TBranchElement(); | |||
TBranchElement(TTree *tree, const char* name, TStreamerInfo* sinfo, Int_ t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0); | TBranchElement(TTree *tree, const char* name, TStreamerInfo* sinfo, Int_ t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0); | |||
TBranchElement(TTree *tree, const char* name, TClonesArray* clones, Int_ t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1); | TBranchElement(TTree *tree, const char* name, TClonesArray* clones, Int_ t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1); | |||
TBranchElement(TTree *tree, const char* name, TVirtualCollectionProxy* c ont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1); | TBranchElement(TTree *tree, const char* name, TVirtualCollectionProxy* c ont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1); | |||
TBranchElement(TBranch *parent, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, In t_t btype = 0); | TBranchElement(TBranch *parent, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, In t_t btype = 0); | |||
TBranchElement(TBranch *parent, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1); | TBranchElement(TBranch *parent, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1); | |||
TBranchElement(TBranch *parent, const char* name, TVirtualCollectionProx y* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = - 1); | TBranchElement(TBranch *parent, const char* name, TVirtualCollectionProx y* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = - 1); | |||
skipping to change at line 177 | skipping to change at line 186 | |||
void PrintValue(Int_t i) const; | void PrintValue(Int_t i) const; | |||
virtual void Reset(Option_t* option = ""); | virtual void Reset(Option_t* option = ""); | |||
virtual void ResetAddress(); | virtual void ResetAddress(); | |||
virtual void ResetDeleteObject(); | virtual void ResetDeleteObject(); | |||
virtual void SetAddress(void* addobj); | virtual void SetAddress(void* addobj); | |||
virtual Bool_t SetMakeClass(Bool_t decomposeObj = kTRUE); | virtual Bool_t SetMakeClass(Bool_t decomposeObj = kTRUE); | |||
virtual void SetObject(void *objadd); | virtual void SetObject(void *objadd); | |||
virtual void SetBasketSize(Int_t buffsize); | virtual void SetBasketSize(Int_t buffsize); | |||
virtual void SetBranchFolder() { SetBit(kBranchFolder); } | virtual void SetBranchFolder() { SetBit(kBranchFolder); } | |||
virtual void SetClassName(const char* name) { fClassName = n ame; } | virtual void SetClassName(const char* name) { fClassName = n ame; } | |||
virtual void SetOffset(Int_t offset); | ||||
inline void SetParentClass(TClass* clparent); | inline void SetParentClass(TClass* clparent); | |||
virtual void SetParentName(const char* name) { fParentName = name; } | virtual void SetParentName(const char* name) { fParentName = name; } | |||
virtual void SetTargetClassName(const char *name); | virtual void SetTargetClassName(const char *name); | |||
virtual void SetupAddresses(); | virtual void SetupAddresses(); | |||
virtual void SetType(Int_t btype) { fType = btype; } | virtual void SetType(Int_t btype) { fType = btype; } | |||
virtual void UpdateFile(); | virtual void UpdateFile(); | |||
ClassDef(TBranchElement,9) // Branch in case of an object | ClassDef(TBranchElement,9) // Branch in case of an object | |||
}; | }; | |||
End of changes. 7 change blocks. | ||||
1 lines changed or deleted | 15 lines changed or added | |||
TBranchObject.h | TBranchObject.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TBranchObject.h 23230 2008-04-15 15:33:32Z pcanal $ | // @(#)root/tree:$Id: TBranchObject.h 37168 2010-12-02 02:34:55Z pcanal $ | |||
// Author: Rene Brun 11/02/96 | // Author: Rene Brun 11/02/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 53 | skipping to change at line 53 | |||
virtual Int_t Fill(); | virtual Int_t Fill(); | |||
virtual const char* GetClassName() const { return fClassName.Data(); }; | virtual const char* GetClassName() const { return fClassName.Data(); }; | |||
virtual const char* GetObjClassName() { return fClassName.Data(); }; | virtual const char* GetObjClassName() { return fClassName.Data(); }; | |||
virtual Int_t GetEntry(Long64_t entry=0, Int_t getall = 0); | virtual Int_t GetEntry(Long64_t entry=0, Int_t getall = 0); | |||
Bool_t IsFolder() const; | Bool_t IsFolder() const; | |||
virtual void Print(Option_t *option="") const; | virtual void Print(Option_t *option="") const; | |||
virtual void Reset(Option_t *option=""); | virtual void Reset(Option_t *option=""); | |||
virtual void SetAddress(void *addobj); | virtual void SetAddress(void *addobj); | |||
virtual void SetAutoDelete(Bool_t autodel=kTRUE); | virtual void SetAutoDelete(Bool_t autodel=kTRUE); | |||
virtual void SetBasketSize(Int_t buffsize); | virtual void SetBasketSize(Int_t buffsize); | |||
virtual void SetupAddresses(); | ||||
virtual void UpdateAddress(); | virtual void UpdateAddress(); | |||
ClassDef(TBranchObject,1); //Branch in case of an object | ClassDef(TBranchObject,1); //Branch in case of an object | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TBranchProxy.h | TBranchProxy.h | |||
---|---|---|---|---|
// @(#)root/treeplayer:$Id: TBranchProxy.h 35344 2010-09-16 21:34:21Z pcana l $ | // @(#)root/treeplayer:$Id: TBranchProxy.h 36449 2010-10-28 20:52:17Z pcana l $ | |||
// Author: Philippe Canal 01/06/2004 | // Author: Philippe Canal 01/06/2004 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers and al. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers and al. * | |||
* 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 261 | skipping to change at line 261 | |||
return *(void**)(location); | return *(void**)(location); | |||
} else { | } else { | |||
return location; | return location; | |||
} | } | |||
} | } | |||
virtual void *GetStlStart(UInt_t i=0) { | virtual void *GetStlStart(UInt_t i=0) { | |||
// return the address of the start of the object being proxied. As sumes | // return the address of the start of the object being proxied. As sumes | |||
// that Setup() has been called. Assumes the object containing th is data | // that Setup() has been called. Assumes the object containing th is data | |||
// member is held in TClonesArray. | // member is held in STL Collection. | |||
char *location=0; | char *location=0; | |||
if (fCollection) { | if (fCollection) { | |||
if (fCollection->Size()<i) return 0; | if (fCollection->Size()<i) return 0; | |||
location = (char*)fCollection->At(i); | location = (char*)fCollection->At(i); | |||
// return location; | // return location; | |||
skipping to change at line 301 | skipping to change at line 301 | |||
if (location) location += fOffset; | if (location) location += fOffset; | |||
else return 0; | else return 0; | |||
if (IsaPointer()) { | if (IsaPointer()) { | |||
return *(void**)(location); | return *(void**)(location); | |||
} else { | } else { | |||
return location; | return location; | |||
} | } | |||
} | } | |||
Int_t GetOffset() { return fOffset; } | ||||
}; | }; | |||
//______________________________________________________________________ ______________________ | //______________________________________________________________________ ______________________ | |||
// Concrete Implementation of the branch proxy around the data members w hich are array of char | // Concrete Implementation of the branch proxy around the data members w hich are array of char | |||
class TArrayCharProxy : public TBranchProxy { | class TArrayCharProxy : public TBranchProxy { | |||
public: | public: | |||
void Print() { | void Print() { | |||
TBranchProxy::Print(); | TBranchProxy::Print(); | |||
cout << "fWhere " << fWhere << endl; | cout << "fWhere " << fWhere << endl; | |||
if (fWhere) cout << "value? " << *(unsigned char*)GetStart() << en dl; | if (fWhere) cout << "value? " << *(unsigned char*)GetStart() << en dl; | |||
skipping to change at line 421 | skipping to change at line 423 | |||
TStlProxy(TBranchProxyDirector *director, const char *top, const char *name) : | TStlProxy(TBranchProxyDirector *director, const char *top, const char *name) : | |||
TBranchProxy(director,top,name) {}; | TBranchProxy(director,top,name) {}; | |||
TStlProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) : | TStlProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) : | |||
TBranchProxy(director,top,name,data) {}; | TBranchProxy(director,top,name,data) {}; | |||
TStlProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) : | TStlProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) : | |||
TBranchProxy(director,parent, name, top, mid) {}; | TBranchProxy(director,parent, name, top, mid) {}; | |||
~TStlProxy() {}; | ~TStlProxy() {}; | |||
const TVirtualCollectionProxy* GetPtr() { | const TVirtualCollectionProxy* GetPtr() { | |||
if (!Read()) return 0; | if (!Read()) return 0; | |||
return GetCollection();; | return GetCollection(); | |||
} | } | |||
Int_t GetEntries() { | Int_t GetEntries() { | |||
if (!ReadEntries()) return 0; | if (!ReadEntries()) return 0; | |||
return GetPtr()->Size(); | return GetPtr()->Size(); | |||
} | } | |||
const TVirtualCollectionProxy* operator->() { return GetPtr(); } | const TVirtualCollectionProxy* operator->() { return GetPtr(); } | |||
}; | }; | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 5 lines changed or added | |||
TBranchProxyClassDescriptor.h | TBranchProxyClassDescriptor.h | |||
---|---|---|---|---|
// @(#)root/treeplayer:$Id: TBranchProxyClassDescriptor.h 21704 2008-01-14 22:52:10Z pcanal $ | // @(#)root/treeplayer:$Id: TBranchProxyClassDescriptor.h 36449 2010-10-28 20:52:17Z pcanal $ | |||
// Author: Philippe Canal 06/06/2004 | // Author: Philippe Canal 06/06/2004 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers and al. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers and al. * | |||
* 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 36 | skipping to change at line 36 | |||
class TBranchProxyDescriptor; | class TBranchProxyDescriptor; | |||
class TBranchProxyClassDescriptor : public TNamed { | class TBranchProxyClassDescriptor : public TNamed { | |||
public: | public: | |||
enum ELocation { kOut=0, kClones, kSTL, kInsideClones, kInsideSTL }; // for IsClones | enum ELocation { kOut=0, kClones, kSTL, kInsideClones, kInsideSTL }; // for IsClones | |||
private: | private: | |||
TList fListOfSubProxies; | TList fListOfSubProxies; | |||
TList fListOfBaseProxies; | TList fListOfBaseProxies; | |||
ELocation fIsClones; // 1 for the general case, 2 when this a split clases inside a TClonesArray, 3 when this is a split classes insid e an STL container. | ELocation fIsClones; // 0 for the general case, 1 when this a split clases inside a TClonesArray, 2 when this is a split classes insid e an STL container. | |||
TString fContainerName; // Name of the container if any | TString fContainerName; // Name of the container if any | |||
Bool_t fIsLeafList; // true if the branch was constructed from a leaf list. | Bool_t fIsLeafList; // true if the branch was constructed from a leaf list. | |||
UInt_t fSplitLevel; | UInt_t fSplitLevel; | |||
TString fRawSymbol; | TString fRawSymbol; | |||
TString fBranchName; | TString fBranchName; | |||
TString fSubBranchPrefix; | TString fSubBranchPrefix; | |||
TVirtualStreamerInfo *fInfo; // TVirtualStreamerInfo describing t his class | TVirtualStreamerInfo *fInfo; // TVirtualStreamerInfo describing t his class | |||
UInt_t fMaxDatamemberType; | UInt_t fMaxDatamemberType; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TBranchProxyTemplate.h | TBranchProxyTemplate.h | |||
---|---|---|---|---|
// @(#)root/treeplayer:$Id: TBranchProxyTemplate.h 21708 2008-01-15 08:04:1 5Z pcanal $ | // @(#)root/treeplayer:$Id: TBranchProxyTemplate.h 36449 2010-10-28 20:52:1 7Z pcanal $ | |||
// Author: Philippe Canal 01/06/2004 | // Author: Philippe Canal 01/06/2004 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers and al. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers and al. * | |||
* 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 44 | skipping to change at line 44 | |||
TObjProxy() : obj() {}; | TObjProxy() : obj() {}; | |||
TObjProxy(TBranchProxyDirector *director, const char *name) : obj(dir ector,name) {}; | TObjProxy(TBranchProxyDirector *director, const char *name) : obj(dir ector,name) {}; | |||
TObjProxy(TBranchProxyDirector *director, const char *top, const char *name) : | TObjProxy(TBranchProxyDirector *director, const char *top, const char *name) : | |||
obj(director,top,name) {}; | obj(director,top,name) {}; | |||
TObjProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) : | TObjProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) : | |||
obj(director,top,name,data) {}; | obj(director,top,name,data) {}; | |||
TObjProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) : | TObjProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) : | |||
obj(director,parent, name, top, mid) {}; | obj(director,parent, name, top, mid) {}; | |||
~TObjProxy() {}; | ~TObjProxy() {}; | |||
Int_t GetOffset() { return obj.GetOffset(); } | ||||
void Print() { | void Print() { | |||
obj.Print(); | obj.Print(); | |||
cout << "fWhere " << obj.GetWhere() << endl; | cout << "fWhere " << obj.GetWhere() << endl; | |||
if (obj.GetWhere()) cout << "address? " << (T*)obj.GetWhere() << e ndl; | if (obj.GetWhere()) cout << "address? " << (T*)obj.GetWhere() << e ndl; | |||
} | } | |||
T* GetPtr() { | T* GetPtr() { | |||
//static T default_val; | //static T default_val; | |||
if (!obj.Read()) return 0; // &default_val; | if (!obj.Read()) return 0; // &default_val; | |||
T *temp = (T*)obj.GetStart(); | T *temp = (T*)obj.GetStart(); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
TBranchRef.h | TBranchRef.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TBranchRef.h 34969 2010-08-24 19:01:19Z pcanal $ | // @(#)root/tree:$Id: TBranchRef.h 37275 2010-12-04 21:32:11Z pcanal $ | |||
// Author: Rene Brun 19/08/2004 | // Author: Rene Brun 19/08/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 49 | skipping to change at line 49 | |||
TBranchRef(); | TBranchRef(); | |||
TBranchRef(TTree *tree); | TBranchRef(TTree *tree); | |||
virtual ~TBranchRef(); | virtual ~TBranchRef(); | |||
virtual void Clear(Option_t *option=""); | virtual void Clear(Option_t *option=""); | |||
virtual Int_t Fill(); | virtual Int_t Fill(); | |||
virtual void FillLeaves(TBuffer &b); | virtual void FillLeaves(TBuffer &b); | |||
TRefTable *GetRefTable() const {return fRefTable;} | TRefTable *GetRefTable() const {return fRefTable;} | |||
virtual Bool_t Notify(); | virtual Bool_t Notify(); | |||
virtual void Print(Option_t *option="") const; | virtual void Print(Option_t *option="") const; | |||
virtual void Reset(Option_t *option=""); | virtual void Reset(Option_t *option=""); | |||
virtual Int_t SetParent(const TObject* obj, const Int_t branchID); | virtual Int_t SetParent(const TObject* obj, Int_t branchID); | |||
virtual void SetReadEntry(Long64_t entry) {fReadEntry = entry;} | virtual void SetReadEntry(Long64_t entry) {fReadEntry = entry;} | |||
ClassDef(TBranchRef,1); //to support referenced objects on other branch es | ClassDef(TBranchRef,1); //to support referenced objects on other branch es | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TBuffer.h | TBuffer.h | |||
---|---|---|---|---|
// @(#)root/base:$Id: TBuffer.h 35314 2010-09-16 03:22:09Z pcanal $ | // @(#)root/base:$Id: TBuffer.h 36061 2010-10-04 16:05:51Z pcanal $ | |||
// Author: Rene Brun, Philippe Canal, Fons Rademakers 04/05/96 | // Author: Rene Brun, Philippe Canal, Fons Rademakers 04/05/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 34 | skipping to change at line 34 | |||
#include "TObject.h" | #include "TObject.h" | |||
#endif | #endif | |||
class TVirtualStreamerInfo; | class TVirtualStreamerInfo; | |||
class TStreamerElement; | class TStreamerElement; | |||
class TClass; | class TClass; | |||
class TString; | class TString; | |||
class TProcessID; | class TProcessID; | |||
class TClonesArray; | class TClonesArray; | |||
class TRefTable; | class TRefTable; | |||
class TVirtualArray; | ||||
namespace TStreamerInfoActions { | ||||
class TActionSequence; | ||||
} | ||||
class TBuffer : public TObject { | class TBuffer : public TObject { | |||
protected: | protected: | |||
typedef std::vector<TVirtualArray*> CacheList_t; | ||||
Bool_t fMode; //Read or write mode | Bool_t fMode; //Read or write mode | |||
Int_t fVersion; //Buffer format version | Int_t fVersion; //Buffer format version | |||
Int_t fBufSize; //Size of buffer | Int_t fBufSize; //Size of buffer | |||
char *fBuffer; //Buffer used to store objects | char *fBuffer; //Buffer used to store objects | |||
char *fBufCur; //Current position in buffer | char *fBufCur; //Current position in buffer | |||
char *fBufMax; //End of buffer | char *fBufMax; //End of buffer | |||
TObject *fParent; //Pointer to parent object owning this buffer | TObject *fParent; //Pointer to parent object owning this buffer | |||
ReAllocCharFun_t fReAllocFunc; //! Realloc function to be used when ex tending the buffer. | ReAllocCharFun_t fReAllocFunc; //! Realloc function to be used when ex tending the buffer. | |||
CacheList_t fCacheStack; //Stack of pointers to the cache where to temporarily store the value of 'missing' data members | ||||
// Default ctor | // Default ctor | |||
TBuffer() : TObject(), fMode(0), fVersion(0), fBufSize(0), fBuffer(0), | TBuffer() : TObject(), fMode(0), fVersion(0), fBufSize(0), fBuffer(0), | |||
fBufCur(0), fBufMax(0), fParent(0), fReAllocFunc(0) {} | fBufCur(0), fBufMax(0), fParent(0), fReAllocFunc(0) {} | |||
// TBuffer objects cannot be copied or assigned | // TBuffer objects cannot be copied or assigned | |||
TBuffer(const TBuffer &); // not implemented | TBuffer(const TBuffer &); // not implemented | |||
void operator=(const TBuffer &); // not implemented | void operator=(const TBuffer &); // not implemented | |||
Int_t Read(const char *name) { return TObject::Read(name); } | Int_t Read(const char *name) { return TObject::Read(name); } | |||
skipping to change at line 113 | skipping to change at line 120 | |||
virtual void Reset() = 0; | virtual void Reset() = 0; | |||
virtual void InitMap() = 0; | virtual void InitMap() = 0; | |||
virtual void ResetMap() = 0; | virtual void ResetMap() = 0; | |||
virtual void SetReadParam(Int_t mapsize) = 0; | virtual void SetReadParam(Int_t mapsize) = 0; | |||
virtual void SetWriteParam(Int_t mapsize) = 0; | virtual void SetWriteParam(Int_t mapsize) = 0; | |||
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TC lass *clss) = 0; | virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TC lass *clss) = 0; | |||
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const ch ar *classname) = 0; | virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const ch ar *classname) = 0; | |||
virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kF ALSE)= 0; | virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kF ALSE)= 0; | |||
virtual void SkipVersion(const TClass *cl = 0) = 0; | ||||
virtual Version_t ReadVersion(UInt_t *start = 0, UInt_t *bcnt = 0, cons t TClass *cl = 0) = 0; | virtual Version_t ReadVersion(UInt_t *start = 0, UInt_t *bcnt = 0, cons t TClass *cl = 0) = 0; | |||
virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt = kFALS E) = 0; | virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt = kFALS E) = 0; | |||
virtual UInt_t WriteVersionMemberWise(const TClass *cl, Bool_t useBc nt = kFALSE) = 0; | virtual UInt_t WriteVersionMemberWise(const TClass *cl, Bool_t useBc nt = kFALSE) = 0; | |||
virtual void *ReadObjectAny(const TClass* cast) = 0; | virtual void *ReadObjectAny(const TClass* cast) = 0; | |||
virtual void SkipObjectAny() = 0; | virtual void SkipObjectAny() = 0; | |||
virtual void TagStreamerInfo(TVirtualStreamerInfo* info) = 0; | virtual void TagStreamerInfo(TVirtualStreamerInfo* info) = 0; | |||
virtual void IncrementLevel(TVirtualStreamerInfo* info) = 0; | virtual void IncrementLevel(TVirtualStreamerInfo* info) = 0; | |||
virtual void SetStreamerElementNumber(Int_t) = 0; | virtual void SetStreamerElementNumber(Int_t) = 0; | |||
virtual void DecrementLevel(TVirtualStreamerInfo*) = 0; | virtual void DecrementLevel(TVirtualStreamerInfo*) = 0; | |||
virtual void ClassBegin(const TClass*, Version_t = -1) = 0; | virtual void ClassBegin(const TClass*, Version_t = -1) = 0; | |||
virtual void ClassEnd(const TClass*) = 0; | virtual void ClassEnd(const TClass*) = 0; | |||
virtual void ClassMember(const char*, const char* = 0, Int_t = -1, Int_t = -1) = 0; | virtual void ClassMember(const char*, const char* = 0, Int_t = -1, Int_t = -1) = 0; | |||
virtual TVirtualStreamerInfo *GetInfo() = 0; | virtual TVirtualStreamerInfo *GetInfo() = 0; | |||
virtual TVirtualArray *PeekDataCache() const; | ||||
virtual TVirtualArray *PopDataCache(); | ||||
virtual void PushDataCache(TVirtualArray *); | ||||
virtual TClass *ReadClass(const TClass *cl = 0, UInt_t *objTag = 0) = 0; | virtual TClass *ReadClass(const TClass *cl = 0, UInt_t *objTag = 0) = 0; | |||
virtual void WriteClass(const TClass *cl) = 0; | virtual void WriteClass(const TClass *cl) = 0; | |||
virtual TObject *ReadObject(const TClass *cl) = 0; | virtual TObject *ReadObject(const TClass *cl) = 0; | |||
virtual void WriteObject(const TObject *obj) = 0; | virtual void WriteObject(const TObject *obj) = 0; | |||
virtual Int_t WriteObjectAny(const void *obj, const TClass *ptrClas s) = 0; | virtual Int_t WriteObjectAny(const void *obj, const TClass *ptrClas s) = 0; | |||
virtual UShort_t GetPidOffset() const = 0; | virtual UShort_t GetPidOffset() const = 0; | |||
virtual void SetPidOffset(UShort_t offset) = 0; | virtual void SetPidOffset(UShort_t offset) = 0; | |||
virtual Int_t GetBufferDisplacement() const = 0; | virtual Int_t GetBufferDisplacement() const = 0; | |||
virtual void SetBufferDisplacement() = 0; | virtual void SetBufferDisplacement() = 0; | |||
virtual void SetBufferDisplacement(Int_t skipped) = 0; | virtual void SetBufferDisplacement(Int_t skipped) = 0; | |||
// basic types and arrays of basic types | // basic types and arrays of basic types | |||
virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=0) = 0 ; | virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=0) = 0 ; | |||
virtual void WriteFloat16(Float_t *f, TStreamerElement *ele=0) = 0 ; | virtual void WriteFloat16(Float_t *f, TStreamerElement *ele=0) = 0 ; | |||
virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=0) = 0; | virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=0) = 0; | |||
virtual void WriteDouble32(Double_t *d, TStreamerElement *ele=0) = 0; | virtual void WriteDouble32(Double_t *d, TStreamerElement *ele=0) = 0; | |||
virtual void ReadWithFactor(Float_t *ptr, Double_t factor, Double_ | ||||
t minvalue) = 0; | ||||
virtual void ReadWithNbits(Float_t *ptr, Int_t nbits) = 0; | ||||
virtual void ReadWithFactor(Double_t *ptr, Double_t factor, Double | ||||
_t minvalue) = 0; | ||||
virtual void ReadWithNbits(Double_t *ptr, Int_t nbits) = 0; | ||||
virtual Int_t ReadArray(Bool_t *&b) = 0; | virtual Int_t ReadArray(Bool_t *&b) = 0; | |||
virtual Int_t ReadArray(Char_t *&c) = 0; | virtual Int_t ReadArray(Char_t *&c) = 0; | |||
virtual Int_t ReadArray(UChar_t *&c) = 0; | virtual Int_t ReadArray(UChar_t *&c) = 0; | |||
virtual Int_t ReadArray(Short_t *&h) = 0; | virtual Int_t ReadArray(Short_t *&h) = 0; | |||
virtual Int_t ReadArray(UShort_t *&h) = 0; | virtual Int_t ReadArray(UShort_t *&h) = 0; | |||
virtual Int_t ReadArray(Int_t *&i) = 0; | virtual Int_t ReadArray(Int_t *&i) = 0; | |||
virtual Int_t ReadArray(UInt_t *&i) = 0; | virtual Int_t ReadArray(UInt_t *&i) = 0; | |||
virtual Int_t ReadArray(Long_t *&l) = 0; | virtual Int_t ReadArray(Long_t *&l) = 0; | |||
virtual Int_t ReadArray(ULong_t *&l) = 0; | virtual Int_t ReadArray(ULong_t *&l) = 0; | |||
skipping to change at line 291 | skipping to change at line 307 | |||
virtual void ForceWriteInfoClones(TClonesArray *a) = 0; | virtual void ForceWriteInfoClones(TClonesArray *a) = 0; | |||
virtual Int_t ReadClones (TClonesArray *a, Int_t nobjects, Version_ t objvers) = 0; | virtual Int_t ReadClones (TClonesArray *a, Int_t nobjects, Version_ t objvers) = 0; | |||
virtual Int_t WriteClones(TClonesArray *a, Int_t nobjects) = 0; | virtual Int_t WriteClones(TClonesArray *a, Int_t nobjects) = 0; | |||
// Utilities for TClass | // Utilities for TClass | |||
virtual Int_t ReadClassEmulated(const TClass *cl, void *object, con st TClass *onfile_class = 0) = 0; | virtual Int_t ReadClassEmulated(const TClass *cl, void *object, con st TClass *onfile_class = 0) = 0; | |||
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, cons t TClass *onfile_class = 0) = 0; | virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, cons t TClass *onfile_class = 0) = 0; | |||
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, Int_ t version, UInt_t start, UInt_t count, const TClass *onfile_class = 0) = 0; | virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, Int_ t version, UInt_t start, UInt_t count, const TClass *onfile_class = 0) = 0; | |||
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer) = 0 ; | virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer) = 0 ; | |||
// Utilites to streamer using sequences. | ||||
virtual Int_t ReadSequence(const TStreamerInfoActions::TActionSequence & | ||||
sequence, void *object) = 0; | ||||
virtual Int_t ReadSequenceVecPtr(const TStreamerInfoActions::TActionSequ | ||||
ence &sequence, void *start_collection, void *end_collection) = 0; | ||||
virtual Int_t ReadSequence(const TStreamerInfoActions::TActionSequence & | ||||
sequence, void *start_collection, void *end_collection) = 0; | ||||
static TClass *GetClass(const type_info &typeinfo); | static TClass *GetClass(const type_info &typeinfo); | |||
static TClass *GetClass(const char *className); | static TClass *GetClass(const char *className); | |||
ClassDef(TBuffer,0) //Buffer base class used for serializing objects | ClassDef(TBuffer,0) //Buffer base class used for serializing objects | |||
}; | }; | |||
//---------------------- TBuffer default external operators --------------- ----- | //---------------------- TBuffer default external operators --------------- ----- | |||
inline TBuffer &operator>>(TBuffer &buf, Bool_t &b) { buf.ReadBool(b); return buf; } | inline TBuffer &operator>>(TBuffer &buf, Bool_t &b) { buf.ReadBool(b); return buf; } | |||
inline TBuffer &operator>>(TBuffer &buf, Char_t &c) { buf.ReadChar(c); return buf; } | inline TBuffer &operator>>(TBuffer &buf, Char_t &c) { buf.ReadChar(c); return buf; } | |||
End of changes. 8 change blocks. | ||||
1 lines changed or deleted | 27 lines changed or added | |||
TBufferFile.h | TBufferFile.h | |||
---|---|---|---|---|
// @(#)root/io:$Id: TBufferFile.h 35314 2010-09-16 03:22:09Z pcanal $ | // @(#)root/io:$Id: TBufferFile.h 36061 2010-10-04 16:05:51Z pcanal $ | |||
// Author: Rene Brun 17/01/2007 | // Author: Rene Brun 17/01/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 46 | skipping to change at line 46 | |||
using ::vector; | using ::vector; | |||
} | } | |||
#endif | #endif | |||
class TVirtualStreamerInfo; | class TVirtualStreamerInfo; | |||
class TStreamerInfo; | class TStreamerInfo; | |||
class TStreamerElement; | class TStreamerElement; | |||
class TClass; | class TClass; | |||
class TExMap; | class TExMap; | |||
class TVirtualArray; | class TVirtualArray; | |||
namespace TStreamerInfoActions { | ||||
class TActionSequence; | ||||
} | ||||
class TBufferFile : public TBuffer { | class TBufferFile : public TBuffer { | |||
protected: | protected: | |||
typedef std::vector<TStreamerInfo*> InfoList_t; | typedef std::vector<TStreamerInfo*> InfoList_t; | |||
typedef std::vector<TVirtualArray*> CacheList_t; | ||||
Int_t fMapCount; //Number of objects or classes in map | Int_t fMapCount; //Number of objects or classes in map | |||
Int_t fMapSize; //Default size of map | Int_t fMapSize; //Default size of map | |||
Int_t fDisplacement; //Value to be added to the map offsets | Int_t fDisplacement; //Value to be added to the map offsets | |||
UShort_t fPidOffset; //Offset to be added to the pid index in this key/buffer. | UShort_t fPidOffset; //Offset to be added to the pid index in this key/buffer. | |||
TExMap *fMap; //Map containing object,offset pairs for reading/writing | TExMap *fMap; //Map containing object,offset pairs for reading/writing | |||
TExMap *fClassMap; //Map containing object,class pairs for reading | TExMap *fClassMap; //Map containing object,class pairs for reading | |||
TStreamerInfo *fInfo; //Pointer to TStreamerInfo object writin g/reading the buffer | TStreamerInfo *fInfo; //Pointer to TStreamerInfo object writin g/reading the buffer | |||
InfoList_t fInfoStack; //Stack of pointers to the TStreamerInfo s | InfoList_t fInfoStack; //Stack of pointers to the TStreamerInfo s | |||
CacheList_t fCacheStack; //Stack of pointers to the cache where t o temporarily store the value of 'missing' data members | ||||
static Int_t fgMapSize; //Default map size for all TBuffer objec ts | static Int_t fgMapSize; //Default map size for all TBuffer objec ts | |||
// Default ctor | // Default ctor | |||
TBufferFile() : TBuffer(), fMapCount(0), fMapSize(0), | TBufferFile() : TBuffer(), fMapCount(0), fMapSize(0), | |||
fDisplacement(0),fPidOffset(0), fMap(0), fClassMap(0), | fDisplacement(0),fPidOffset(0), fMap(0), fClassMap(0), | |||
fInfo(0), fInfoStack(), fCacheStack() {} | fInfo(0), fInfoStack() {} | |||
// TBuffer objects cannot be copied or assigned | // TBuffer objects cannot be copied or assigned | |||
TBufferFile(const TBufferFile &); // not implemented | TBufferFile(const TBufferFile &); // not implemented | |||
void operator=(const TBufferFile &); // not implemented | void operator=(const TBufferFile &); // not implemented | |||
Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss, const char* classname); | Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss, const char* classname); | |||
void CheckCount(UInt_t offset); | void CheckCount(UInt_t offset); | |||
UInt_t CheckObject(UInt_t offset, const TClass *cl, Bool_t readClass = k FALSE); | UInt_t CheckObject(UInt_t offset, const TClass *cl, Bool_t readClass = k FALSE); | |||
virtual void WriteObjectClass(const void *actualObjStart, const TClass *actualClass); | virtual void WriteObjectClass(const void *actualObjStart, const TClass *actualClass); | |||
skipping to change at line 110 | skipping to change at line 111 | |||
void SetWriteParam(Int_t mapsize); | void SetWriteParam(Int_t mapsize); | |||
Bool_t CheckObject(const TObject *obj); | Bool_t CheckObject(const TObject *obj); | |||
Bool_t CheckObject(const void *obj, const TClass *ptrClass); | Bool_t CheckObject(const void *obj, const TClass *ptrClass); | |||
virtual Int_t GetVersionOwner() const; | virtual Int_t GetVersionOwner() const; | |||
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TC lass *clss); | virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TC lass *clss); | |||
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const ch ar *classname); | virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const ch ar *classname); | |||
virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kF ALSE); | virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kF ALSE); | |||
virtual void SkipVersion(const TClass *cl = 0); | ||||
virtual Version_t ReadVersion(UInt_t *start = 0, UInt_t *bcnt = 0, cons t TClass *cl = 0); | virtual Version_t ReadVersion(UInt_t *start = 0, UInt_t *bcnt = 0, cons t TClass *cl = 0); | |||
virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt = kFALS E); | virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt = kFALS E); | |||
virtual UInt_t WriteVersionMemberWise(const TClass *cl, Bool_t useBc nt = kFALSE); | virtual UInt_t WriteVersionMemberWise(const TClass *cl, Bool_t useBc nt = kFALSE); | |||
virtual void *ReadObjectAny(const TClass* cast); | virtual void *ReadObjectAny(const TClass* cast); | |||
virtual void SkipObjectAny(); | virtual void SkipObjectAny(); | |||
virtual void TagStreamerInfo(TVirtualStreamerInfo* info); | virtual void TagStreamerInfo(TVirtualStreamerInfo* info); | |||
virtual void IncrementLevel(TVirtualStreamerInfo* info); | virtual void IncrementLevel(TVirtualStreamerInfo* info); | |||
virtual void SetStreamerElementNumber(Int_t) {} | virtual void SetStreamerElementNumber(Int_t) {} | |||
virtual void DecrementLevel(TVirtualStreamerInfo*); | virtual void DecrementLevel(TVirtualStreamerInfo*); | |||
TVirtualStreamerInfo *GetInfo() {return (TVirtualStreamerInfo*)fInfo;} | TVirtualStreamerInfo *GetInfo() {return (TVirtualStreamerInfo*)fInfo;} | |||
virtual void ClassBegin(const TClass*, Version_t = -1) {} | virtual void ClassBegin(const TClass*, Version_t = -1) {} | |||
virtual void ClassEnd(const TClass*) {} | virtual void ClassEnd(const TClass*) {} | |||
virtual void ClassMember(const char*, const char* = 0, Int_t = -1, Int_t = -1) {} | virtual void ClassMember(const char*, const char* = 0, Int_t = -1, Int_t = -1) {} | |||
virtual TVirtualArray *PeekDataCache() const; | ||||
virtual TVirtualArray *PopDataCache(); | ||||
virtual void PushDataCache(TVirtualArray *); | ||||
virtual Int_t ReadBuf(void *buf, Int_t max); | virtual Int_t ReadBuf(void *buf, Int_t max); | |||
virtual void WriteBuf(const void *buf, Int_t max); | virtual void WriteBuf(const void *buf, Int_t max); | |||
virtual char *ReadString(char *s, Int_t max); | virtual char *ReadString(char *s, Int_t max); | |||
virtual void WriteString(const char *s); | virtual void WriteString(const char *s); | |||
virtual TClass *ReadClass(const TClass *cl = 0, UInt_t *objTag = 0); | virtual TClass *ReadClass(const TClass *cl = 0, UInt_t *objTag = 0); | |||
virtual void WriteClass(const TClass *cl); | virtual void WriteClass(const TClass *cl); | |||
virtual TObject *ReadObject(const TClass *cl); | virtual TObject *ReadObject(const TClass *cl); | |||
skipping to change at line 159 | skipping to change at line 157 | |||
Int_t GetBufferDisplacement() const { return fDisplacement; } | Int_t GetBufferDisplacement() const { return fDisplacement; } | |||
void SetBufferDisplacement() { fDisplacement = 0; } | void SetBufferDisplacement() { fDisplacement = 0; } | |||
void SetBufferDisplacement(Int_t skipped) | void SetBufferDisplacement(Int_t skipped) | |||
{ fDisplacement = (Int_t)(Length() - skipped); } | { fDisplacement = (Int_t)(Length() - skipped); } | |||
// basic types and arrays of basic types | // basic types and arrays of basic types | |||
virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=0); | virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=0); | |||
virtual void WriteFloat16(Float_t *f, TStreamerElement *ele=0); | virtual void WriteFloat16(Float_t *f, TStreamerElement *ele=0); | |||
virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=0); | virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=0); | |||
virtual void WriteDouble32(Double_t *d, TStreamerElement *ele=0); | virtual void WriteDouble32(Double_t *d, TStreamerElement *ele=0); | |||
virtual void ReadWithFactor(Float_t *ptr, Double_t factor, Double_ | ||||
t minvalue); | ||||
virtual void ReadWithNbits(Float_t *ptr, Int_t nbits); | ||||
virtual void ReadWithFactor(Double_t *ptr, Double_t factor, Double | ||||
_t minvalue); | ||||
virtual void ReadWithNbits(Double_t *ptr, Int_t nbits); | ||||
virtual Int_t ReadArray(Bool_t *&b); | virtual Int_t ReadArray(Bool_t *&b); | |||
virtual Int_t ReadArray(Char_t *&c); | virtual Int_t ReadArray(Char_t *&c); | |||
virtual Int_t ReadArray(UChar_t *&c); | virtual Int_t ReadArray(UChar_t *&c); | |||
virtual Int_t ReadArray(Short_t *&h); | virtual Int_t ReadArray(Short_t *&h); | |||
virtual Int_t ReadArray(UShort_t *&h); | virtual Int_t ReadArray(UShort_t *&h); | |||
virtual Int_t ReadArray(Int_t *&i); | virtual Int_t ReadArray(Int_t *&i); | |||
virtual Int_t ReadArray(UInt_t *&i); | virtual Int_t ReadArray(UInt_t *&i); | |||
virtual Int_t ReadArray(Long_t *&l); | virtual Int_t ReadArray(Long_t *&l); | |||
virtual Int_t ReadArray(ULong_t *&l); | virtual Int_t ReadArray(ULong_t *&l); | |||
skipping to change at line 301 | skipping to change at line 303 | |||
virtual void ForceWriteInfoClones(TClonesArray *a); | virtual void ForceWriteInfoClones(TClonesArray *a); | |||
virtual Int_t ReadClones (TClonesArray *a, Int_t nobjects, Version_t objvers); | virtual Int_t ReadClones (TClonesArray *a, Int_t nobjects, Version_t objvers); | |||
virtual Int_t WriteClones(TClonesArray *a, Int_t nobjects); | virtual Int_t WriteClones(TClonesArray *a, Int_t nobjects); | |||
// Utilities for TClass | // Utilities for TClass | |||
virtual Int_t ReadClassEmulated(const TClass *cl, void *object, const TClass *onfile_class); | virtual Int_t ReadClassEmulated(const TClass *cl, void *object, const TClass *onfile_class); | |||
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class); | virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class); | |||
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, Int_t version, UInt_t start, UInt_t count, const TClass *onfile_class); | virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, Int_t version, UInt_t start, UInt_t count, const TClass *onfile_class); | |||
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer); | virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer); | |||
// Utilites to streamer using sequences. | ||||
Int_t ReadSequence(const TStreamerInfoActions::TActionSequence &sequence | ||||
, void *object); | ||||
Int_t ReadSequenceVecPtr(const TStreamerInfoActions::TActionSequence &se | ||||
quence, void *start_collection, void *end_collection); | ||||
Int_t ReadSequence(const TStreamerInfoActions::TActionSequence &sequence | ||||
, void *start_collection, void *end_collection); | ||||
static void SetGlobalReadParam(Int_t mapsize); | static void SetGlobalReadParam(Int_t mapsize); | |||
static void SetGlobalWriteParam(Int_t mapsize); | static void SetGlobalWriteParam(Int_t mapsize); | |||
static Int_t GetGlobalReadParam(); | static Int_t GetGlobalReadParam(); | |||
static Int_t GetGlobalWriteParam(); | static Int_t GetGlobalWriteParam(); | |||
ClassDef(TBufferFile,0) //concrete implementation of TBuffer for writin g/reading to/from a ROOT file or socket. | ClassDef(TBufferFile,0) //concrete implementation of TBuffer for writin g/reading to/from a ROOT file or socket. | |||
}; | }; | |||
//---------------------- TBufferFile inlines ------------------------------ --------- | //---------------------- TBufferFile inlines ------------------------------ --------- | |||
End of changes. 9 change blocks. | ||||
8 lines changed or deleted | 20 lines changed or added | |||
TBufferSQL2.h | TBufferSQL2.h | |||
---|---|---|---|---|
// @(#)root/sql:$Id: TBufferSQL2.h 29321 2009-07-03 10:42:10Z brun $ | // @(#)root/sql:$Id: TBufferSQL2.h 36061 2010-10-04 16:05:51Z pcanal $ | |||
// Author: Sergey Linev 20/11/2005 | // Author: Sergey Linev 20/11/2005 | |||
#ifndef ROOT_TBufferSQL2 | #ifndef ROOT_TBufferSQL2 | |||
#define ROOT_TBufferSQL2 | #define ROOT_TBufferSQL2 | |||
///////////////////////////////////////////////////////////////////////// | ///////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
// TBufferSQL2 class used in TSQLFile to convert binary object data // | // TBufferSQL2 class used in TSQLFile to convert binary object data // | |||
// to SQL statements, supplied to DB server // | // to SQL statements, supplied to DB server // | |||
// // | // // | |||
skipping to change at line 152 | skipping to change at line 152 | |||
virtual TClass* ReadClass(const TClass* cl = 0, UInt_t* objTag = 0); | virtual TClass* ReadClass(const TClass* cl = 0, UInt_t* objTag = 0); | |||
virtual void WriteClass(const TClass* cl); | virtual void WriteClass(const TClass* cl); | |||
// redefined virtual functions of TBuffer | // redefined virtual functions of TBuffer | |||
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TCla ss *clss); // SL | virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TCla ss *clss); // SL | |||
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const char *classname); // SL | virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const char *classname); // SL | |||
virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kFAL SE); // SL | virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kFAL SE); // SL | |||
virtual void SkipVersion(const TClass *cl = 0); | ||||
virtual Version_t ReadVersion(UInt_t *start = 0, UInt_t *bcnt = 0, const TClass *cl = 0); // SL | virtual Version_t ReadVersion(UInt_t *start = 0, UInt_t *bcnt = 0, const TClass *cl = 0); // SL | |||
virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt = kFALSE) ; // SL | virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt = kFALSE ); // SL | |||
virtual void* ReadObjectAny(const TClass* clCast); | virtual void* ReadObjectAny(const TClass* clCast); | |||
virtual void SkipObjectAny(); | virtual void SkipObjectAny(); | |||
virtual void IncrementLevel(TVirtualStreamerInfo*); | virtual void IncrementLevel(TVirtualStreamerInfo*); | |||
virtual void SetStreamerElementNumber(Int_t); | virtual void SetStreamerElementNumber(Int_t); | |||
virtual void DecrementLevel(TVirtualStreamerInfo*); | virtual void DecrementLevel(TVirtualStreamerInfo*); | |||
virtual void ClassBegin(const TClass*, Version_t = -1); | virtual void ClassBegin(const TClass*, Version_t = -1); | |||
virtual void ClassEnd(const TClass*); | virtual void ClassEnd(const TClass*); | |||
virtual void ClassMember(const char* name, const char* typeName = 0, Int_t arrsize1 = -1, Int_t arrsize2 = -1); | virtual void ClassMember(const char* name, const char* typeName = 0, Int_t arrsize1 = -1, Int_t arrsize2 = -1); | |||
virtual void WriteObject(const TObject *obj); | virtual void WriteObject(const TObject *obj); | |||
virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=0); | virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=0); | |||
virtual void WriteFloat16(Float_t *f, TStreamerElement *ele=0); | virtual void WriteFloat16(Float_t *f, TStreamerElement *ele=0); | |||
virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=0); | virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=0); | |||
virtual void WriteDouble32(Double_t *d, TStreamerElement *ele=0); | virtual void WriteDouble32(Double_t *d, TStreamerElement *ele=0); | |||
virtual void ReadWithFactor(Float_t *ptr, Double_t factor, Double_t | ||||
minvalue); | ||||
virtual void ReadWithNbits(Float_t *ptr, Int_t nbits); | ||||
virtual void ReadWithFactor(Double_t *ptr, Double_t factor, Double_t | ||||
minvalue); | ||||
virtual void ReadWithNbits(Double_t *ptr, Int_t nbits); | ||||
virtual Int_t ReadArray(Bool_t *&b); | virtual Int_t ReadArray(Bool_t *&b); | |||
virtual Int_t ReadArray(Char_t *&c); | virtual Int_t ReadArray(Char_t *&c); | |||
virtual Int_t ReadArray(UChar_t *&c); | virtual Int_t ReadArray(UChar_t *&c); | |||
virtual Int_t ReadArray(Short_t *&h); | virtual Int_t ReadArray(Short_t *&h); | |||
virtual Int_t ReadArray(UShort_t *&h); | virtual Int_t ReadArray(UShort_t *&h); | |||
virtual Int_t ReadArray(Int_t *&i); | virtual Int_t ReadArray(Int_t *&i); | |||
virtual Int_t ReadArray(UInt_t *&i); | virtual Int_t ReadArray(UInt_t *&i); | |||
virtual Int_t ReadArray(Long_t *&l); | virtual Int_t ReadArray(Long_t *&l); | |||
virtual Int_t ReadArray(ULong_t *&l); | virtual Int_t ReadArray(ULong_t *&l); | |||
skipping to change at line 295 | skipping to change at line 300 | |||
virtual void WriteUInt(UInt_t i); | virtual void WriteUInt(UInt_t i); | |||
virtual void WriteLong(Long_t l); | virtual void WriteLong(Long_t l); | |||
virtual void WriteULong(ULong_t l); | virtual void WriteULong(ULong_t l); | |||
virtual void WriteLong64(Long64_t l); | virtual void WriteLong64(Long64_t l); | |||
virtual void WriteULong64(ULong64_t l); | virtual void WriteULong64(ULong64_t l); | |||
virtual void WriteFloat(Float_t f); | virtual void WriteFloat(Float_t f); | |||
virtual void WriteDouble(Double_t d); | virtual void WriteDouble(Double_t d); | |||
virtual void WriteCharP(const Char_t *c); | virtual void WriteCharP(const Char_t *c); | |||
virtual void WriteTString(const TString &s); | virtual void WriteTString(const TString &s); | |||
virtual Int_t ReadSequence(const TStreamerInfoActions::TActionSequence & | ||||
sequence, void *object); | ||||
virtual Int_t ReadSequenceVecPtr(const TStreamerInfoActions::TActionSequ | ||||
ence &sequence, void *start_collection, void *end_collection); | ||||
virtual Int_t ReadSequence(const TStreamerInfoActions::TActionSequence & | ||||
sequence, void *start_collection, void *end_collection); | ||||
static void SetFloatFormat(const char* fmt = "%e"); | static void SetFloatFormat(const char* fmt = "%e"); | |||
static const char* GetFloatFormat(); | static const char* GetFloatFormat(); | |||
// end of redefined virtual functions | // end of redefined virtual functions | |||
ClassDef(TBufferSQL2,1); //a specialized TBuffer to convert data to SQL statements or read data from SQL tables | ClassDef(TBufferSQL2,1); //a specialized TBuffer to convert data to SQL statements or read data from SQL tables | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 5 change blocks. | ||||
2 lines changed or deleted | 16 lines changed or added | |||
TBufferXML.h | TBufferXML.h | |||
---|---|---|---|---|
// @(#)root/xml:$Id: TBufferXML.h 29170 2009-06-23 14:09:56Z brun $ | // @(#)root/xml:$Id: TBufferXML.h 36061 2010-10-04 16:05:51Z pcanal $ | |||
// 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 67 | skipping to change at line 67 | |||
virtual TClass* ReadClass(const TClass* cl = 0, UInt_t* objTag = 0); | virtual TClass* ReadClass(const TClass* cl = 0, UInt_t* objTag = 0); | |||
virtual void WriteClass(const TClass* cl); | virtual void WriteClass(const TClass* cl); | |||
// redefined virtual functions of TBuffer | // redefined virtual functions of TBuffer | |||
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TCla ss *clss); // SL | virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TCla ss *clss); // SL | |||
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const char *classname); // SL | virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const char *classname); // SL | |||
virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kFAL SE); // SL | virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion = kFAL SE); // SL | |||
virtual void SkipVersion(const TClass *cl = 0); | ||||
virtual Version_t ReadVersion(UInt_t *start = 0, UInt_t *bcnt = 0, const TClass *cl = 0); // SL | virtual Version_t ReadVersion(UInt_t *start = 0, UInt_t *bcnt = 0, const TClass *cl = 0); // SL | |||
virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt = kFALSE) ; // SL | virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt = kFALSE ); // SL | |||
virtual void* ReadObjectAny(const TClass* clCast); | virtual void* ReadObjectAny(const TClass* clCast); | |||
virtual void SkipObjectAny(); | virtual void SkipObjectAny(); | |||
virtual void IncrementLevel(TVirtualStreamerInfo*); | virtual void IncrementLevel(TVirtualStreamerInfo*); | |||
virtual void SetStreamerElementNumber(Int_t); | virtual void SetStreamerElementNumber(Int_t); | |||
virtual void DecrementLevel(TVirtualStreamerInfo*); | virtual void DecrementLevel(TVirtualStreamerInfo*); | |||
virtual void ClassBegin(const TClass*, Version_t = -1); | virtual void ClassBegin(const TClass*, Version_t = -1); | |||
virtual void ClassEnd(const TClass*); | virtual void ClassEnd(const TClass*); | |||
virtual void ClassMember(const char* name, const char* typeName = 0, Int_t arrsize1 = -1, Int_t arrsize2 = -1); | virtual void ClassMember(const char* name, const char* typeName = 0, Int_t arrsize1 = -1, Int_t arrsize2 = -1); | |||
virtual void WriteObject(const TObject *obj); | virtual void WriteObject(const TObject *obj); | |||
virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=0); | virtual void ReadFloat16 (Float_t *f, TStreamerElement *ele=0); | |||
virtual void WriteFloat16(Float_t *f, TStreamerElement *ele=0); | virtual void WriteFloat16(Float_t *f, TStreamerElement *ele=0); | |||
virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=0); | virtual void ReadDouble32 (Double_t *d, TStreamerElement *ele=0); | |||
virtual void WriteDouble32(Double_t *d, TStreamerElement *ele=0); | virtual void WriteDouble32(Double_t *d, TStreamerElement *ele=0); | |||
virtual void ReadWithFactor(Float_t *ptr, Double_t factor, Double_t | ||||
minvalue); | ||||
virtual void ReadWithNbits(Float_t *ptr, Int_t nbits); | ||||
virtual void ReadWithFactor(Double_t *ptr, Double_t factor, Double_t | ||||
minvalue); | ||||
virtual void ReadWithNbits(Double_t *ptr, Int_t nbits); | ||||
virtual Int_t ReadArray(Bool_t *&b); | virtual Int_t ReadArray(Bool_t *&b); | |||
virtual Int_t ReadArray(Char_t *&c); | virtual Int_t ReadArray(Char_t *&c); | |||
virtual Int_t ReadArray(UChar_t *&c); | virtual Int_t ReadArray(UChar_t *&c); | |||
virtual Int_t ReadArray(Short_t *&h); | virtual Int_t ReadArray(Short_t *&h); | |||
virtual Int_t ReadArray(UShort_t *&h); | virtual Int_t ReadArray(UShort_t *&h); | |||
virtual Int_t ReadArray(Int_t *&i); | virtual Int_t ReadArray(Int_t *&i); | |||
virtual Int_t ReadArray(UInt_t *&i); | virtual Int_t ReadArray(UInt_t *&i); | |||
virtual Int_t ReadArray(Long_t *&l); | virtual Int_t ReadArray(Long_t *&l); | |||
virtual Int_t ReadArray(ULong_t *&l); | virtual Int_t ReadArray(ULong_t *&l); | |||
skipping to change at line 209 | skipping to change at line 214 | |||
virtual void WriteUInt(UInt_t i); | virtual void WriteUInt(UInt_t i); | |||
virtual void WriteLong(Long_t l); | virtual void WriteLong(Long_t l); | |||
virtual void WriteULong(ULong_t l); | virtual void WriteULong(ULong_t l); | |||
virtual void WriteLong64(Long64_t l); | virtual void WriteLong64(Long64_t l); | |||
virtual void WriteULong64(ULong64_t l); | virtual void WriteULong64(ULong64_t l); | |||
virtual void WriteFloat(Float_t f); | virtual void WriteFloat(Float_t f); | |||
virtual void WriteDouble(Double_t d); | virtual void WriteDouble(Double_t d); | |||
virtual void WriteCharP(const Char_t *c); | virtual void WriteCharP(const Char_t *c); | |||
virtual void WriteTString(const TString &s); | virtual void WriteTString(const TString &s); | |||
virtual Int_t ReadSequence(const TStreamerInfoActions::TActionSequence & | ||||
sequence, void *object); | ||||
virtual Int_t ReadSequenceVecPtr(const TStreamerInfoActions::TActionSequ | ||||
ence &sequence, void *start_collection, void *end_collection); | ||||
virtual Int_t ReadSequence(const TStreamerInfoActions::TActionSequence & | ||||
sequence, void *start_collection, void *end_collection); | ||||
// end of redefined virtual functions | // end of redefined virtual functions | |||
static void SetFloatFormat(const char* fmt = "%e"); | static void SetFloatFormat(const char* fmt = "%e"); | |||
static const char* GetFloatFormat(); | static const char* GetFloatFormat(); | |||
protected: | protected: | |||
TBufferXML(); | TBufferXML(); | |||
// redefined protected virtual functions | // redefined protected virtual functions | |||
End of changes. 5 change blocks. | ||||
2 lines changed or deleted | 16 lines changed or added | |||
TChi2FitData.h | TChi2FitData.h | |||
---|---|---|---|---|
// @(#)root/minuit2:$Id: TChi2FitData.h 20880 2007-11-19 11:23:41Z rdm $ | // @(#)root/minuit2:$Id: TChi2FitData.h 36076 2010-10-05 09:13:12Z moneta $ | |||
// Author: L. Moneta 10/2005 | // Author: L. Moneta 10/2005 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2005 ROOT Foundation, CERN/PH-SFT * | * Copyright (c) 2005 ROOT Foundation, CERN/PH-SFT * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
#ifndef ROOT_TChi2FitData_H_ | #ifndef ROOT_TChi2FitData_H_ | |||
#define ROOT_TChi2FitData_H_ | #define ROOT_TChi2FitData_H_ | |||
skipping to change at line 41 | skipping to change at line 41 | |||
class TChi2FitData { | class TChi2FitData { | |||
public: | public: | |||
typedef std::vector<double> CoordData; | typedef std::vector<double> CoordData; | |||
/** | /** | |||
construct the Fit data object | construct the Fit data object | |||
*/ | */ | |||
TChi2FitData() : fSize(0) {} | TChi2FitData() : fSize(0), fSkipEmptyBins(false), fIntegral(false) {} | |||
TChi2FitData(const TVirtualFitter & fitter, bool skipEmptyBins = true); | TChi2FitData(const TVirtualFitter & fitter, bool skipEmptyBins = true); | |||
virtual ~TChi2FitData() {} | virtual ~TChi2FitData() {} | |||
unsigned int Size() const { return fSize; } | unsigned int Size() const { return fSize; } | |||
const CoordData & Coords(unsigned int i) const { return fCoordinates[i]; } | const CoordData & Coords(unsigned int i) const { return fCoordinates[i]; } | |||
double Value(unsigned int i) const { return fValues[i]; } | double Value(unsigned int i) const { return fValues[i]; } | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TClass.h | TClass.h | |||
---|---|---|---|---|
// @(#)root/meta:$Id: TClass.h 35394 2010-09-17 19:40:12Z pcanal $ | // @(#)root/meta:$Id: TClass.h 37287 2010-12-05 04:14:11Z 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 114 | skipping to change at line 114 | |||
const type_info *fTypeInfo; //pointer to the C++ type informati on. | const type_info *fTypeInfo; //pointer to the C++ type informati on. | |||
ShowMembersFunc_t fShowMembers; //pointer to the class's ShowMember s function | ShowMembersFunc_t fShowMembers; //pointer to the class's ShowMember s function | |||
mutable void *fInterShowMembers;//Interpreter call setup for ShowMe mbers | mutable void *fInterShowMembers;//Interpreter call setup for ShowMe mbers | |||
TClassStreamer *fStreamer; //pointer to streamer function | TClassStreamer *fStreamer; //pointer to streamer function | |||
TString fSharedLibs; //shared libraries containing class code | TString fSharedLibs; //shared libraries containing class code | |||
TVirtualIsAProxy *fIsA; //!pointer to the class's IsA proxy . | TVirtualIsAProxy *fIsA; //!pointer to the class's IsA proxy . | |||
IsAGlobalFunc_t fGlobalIsA; //pointer to a global IsA function. | IsAGlobalFunc_t fGlobalIsA; //pointer to a global IsA function. | |||
mutable TMethodCall *fIsAMethod; //!saved info to call a IsA membe r function | mutable TMethodCall *fIsAMethod; //!saved info to call a IsA membe r function | |||
ROOT::NewFunc_t fNew; //pointer to a function newing one | ROOT::NewFunc_t fNew; //pointer to a function newing one | |||
object. | object. | |||
ROOT::NewArrFunc_t fNewArray; //pointer to a function newing an a | ROOT::NewArrFunc_t fNewArray; //pointer to a function newing an a | |||
rray of objects. | rray of objects. | |||
ROOT::DelFunc_t fDelete; //pointer to a function deleting on | ROOT::DelFunc_t fDelete; //pointer to a function deleting on | |||
e object. | e object. | |||
ROOT::DelArrFunc_t fDeleteArray; //pointer to a function deleting an | ROOT::DelArrFunc_t fDeleteArray; //pointer to a function deleting an | |||
array of objects. | array of objects. | |||
ROOT::DesFunc_t fDestructor; //pointer to a function call an obj | ROOT::DesFunc_t fDestructor; //pointer to a function call an obj | |||
ect's destructor. | ect's destructor. | |||
ROOT::DirAutoAdd_t fDirAutoAdd;//pointer which implements the Directory | ROOT::DirAutoAdd_t fDirAutoAdd; //pointer which implements the Dire | |||
Auto Add feature for this class. | ctory Auto Add feature for this class.']' | |||
Int_t fSizeof; //Sizeof the class. | ClassStreamerFunc_t fStreamerFunc; //Wrapper around this class custom | |||
Streamer member function. | ||||
Int_t fSizeof; //Sizeof the class. | ||||
mutable Bool_t fVersionUsed; //!Indicates whether GetClassVersio n has been called | ||||
mutable Long_t fProperty; //!Property | mutable Long_t fProperty; //!Property | |||
mutable Bool_t fVersionUsed; //!Indicates whether GetClassVersio n has been called | ||||
mutable void *fInterStreamer; //!saved info to call Streamer | mutable Bool_t fIsOffsetStreamerSet; //!saved remember if fOffsetStr eamer has been set. | |||
mutable Long_t fOffsetStreamer; //!saved info to call Streamer | mutable Long_t fOffsetStreamer; //!saved info to call Streamer | |||
Int_t fStreamerType; //!cached of the streaming method t o use | Int_t fStreamerType; //!cached of the streaming method t o use | |||
mutable TVirtualStreamerInfo *fCurrentInfo; //!cached current st reamer info. | mutable TVirtualStreamerInfo *fCurrentInfo; //!cached current st reamer info. | |||
TClassRef *fRefStart; //!List of references to this objec t | TClassRef *fRefStart; //!List of references to this objec t | |||
TVirtualRefProxy *fRefProxy; //!Pointer to reference proxy if th is class represents a reference | TVirtualRefProxy *fRefProxy; //!Pointer to reference proxy if th is class represents a reference | |||
ROOT::TSchemaRuleSet *fSchemaRules; //! Schema evolution rules | ROOT::TSchemaRuleSet *fSchemaRules; //! Schema evolution rules | |||
typedef void (TClass::*StreamerImpl_t)(void *obj, TBuffer &b, const TCla | ||||
ss *onfile_class) const; | ||||
mutable StreamerImpl_t fStreamerImpl;//! Pointer to the function impleme | ||||
nting the right streaming behavior for the class represented by this object | ||||
. | ||||
TMethod *GetClassMethod(Long_t faddr); | TMethod *GetClassMethod(Long_t faddr); | |||
TMethod *GetClassMethod(const char *name, const char *signatur e); | TMethod *GetClassMethod(const char *name, const char *signatur e); | |||
Int_t GetBaseClassOffsetRecurse(const TClass *base); | Int_t GetBaseClassOffsetRecurse(const TClass *base); | |||
void Init(const char *name, Version_t cversion, const type_info *info, | void Init(const char *name, Version_t cversion, const type_info *info, | |||
TVirtualIsAProxy *isa, ShowMembersFunc_t showmember, | TVirtualIsAProxy *isa, ShowMembersFunc_t showmember, | |||
const char *dfil, const char *ifil, | const char *dfil, const char *ifil, | |||
Int_t dl, Int_t il, | Int_t dl, Int_t il, | |||
Bool_t silent); | Bool_t silent); | |||
void ForceReload (TClass* oldcl); | void ForceReload (TClass* oldcl); | |||
void SetClassVersion(Version_t version); | void SetClassVersion(Version_t version); | |||
void SetClassSize(Int_t sizof) { fSizeof = sizof; } | void SetClassSize(Int_t sizof) { fSizeof = sizof; } | |||
// Various implementation for TClass::Stramer | ||||
void StreamerExternal(void *object, TBuffer &b, const TClass *onfile_cla | ||||
ss) const; | ||||
void StreamerTObject(void *object, TBuffer &b, const TClass *onfile_clas | ||||
s) const; | ||||
void StreamerTObjectInitialized(void *object, TBuffer &b, const TClass * | ||||
onfile_class) const; | ||||
void StreamerTObjectEmulated(void *object, TBuffer &b, const TClass *onf | ||||
ile_class) const; | ||||
void StreamerInstrumented(void *object, TBuffer &b, const TClass *onfile | ||||
_class) const; | ||||
void StreamerStreamerInfo(void *object, TBuffer &b, const TClass *onfile | ||||
_class) const; | ||||
void StreamerDefault(void *object, TBuffer &b, const TClass *onfile_clas | ||||
s) const; | ||||
static IdMap_t *fgIdMap; //Map from typeid to TClass pointer | static IdMap_t *fgIdMap; //Map from typeid to TClass pointer | |||
static ENewType fgCallingNew; //Intent of why/how TClass::New() i s called | static ENewType fgCallingNew; //Intent of why/how TClass::New() i s called | |||
static Int_t fgClassCount; //provides unique id for a each cla ss | static Int_t fgClassCount; //provides unique id for a each cla ss | |||
//stored in TObject::fUniqueID | //stored in TObject::fUniqueID | |||
// Internal status bits | // Internal status bits | |||
enum { kLoading = BIT(14) }; | enum { kLoading = BIT(14) }; | |||
// Internal streamer type. | // Internal streamer type. | |||
enum {kDefault=0, kEmulated=1, kTObject=2, kInstrumented=4, kForeign=8, kExternal=16}; | enum {kDefault=0, kEmulated=1, kTObject=2, kInstrumented=4, kForeign=8, kExternal=16}; | |||
// When a new class is created, we need to be able to find | // When a new class is created, we need to be able to find | |||
skipping to change at line 282 | skipping to change at line 295 | |||
ROOT::NewFunc_t GetNew() const; | ROOT::NewFunc_t GetNew() const; | |||
ROOT::NewArrFunc_t GetNewArray() const; | ROOT::NewArrFunc_t GetNewArray() const; | |||
Int_t GetNmethods(); | Int_t GetNmethods(); | |||
TRealData *GetRealData(const char *name) const; | TRealData *GetRealData(const char *name) const; | |||
TVirtualRefProxy *GetReferenceProxy() const { return fRefProxy; } | TVirtualRefProxy *GetReferenceProxy() const { return fRefProxy; } | |||
const ROOT::TSchemaRuleSet *GetSchemaRules() const; | const ROOT::TSchemaRuleSet *GetSchemaRules() const; | |||
ROOT::TSchemaRuleSet *GetSchemaRules(Bool_t create = kFALSE); | ROOT::TSchemaRuleSet *GetSchemaRules(Bool_t create = kFALSE); | |||
const char *GetSharedLibs(); | const char *GetSharedLibs(); | |||
ShowMembersFunc_t GetShowMembersWrapper() const { return fShowMembers; } | ShowMembersFunc_t GetShowMembersWrapper() const { return fShowMembers; } | |||
TClassStreamer *GetStreamer() const; | TClassStreamer *GetStreamer() const; | |||
ClassStreamerFunc_t GetStreamerFunc() const; | ||||
TObjArray *GetStreamerInfos() const { return fStreamerInfo; } | TObjArray *GetStreamerInfos() const { return fStreamerInfo; } | |||
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; | |||
void InterpretedShowMembers(void* obj, TMemberInspector &i nsp); | void InterpretedShowMembers(void* obj, TMemberInspector &i nsp); | |||
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; | |||
skipping to change at line 331 | skipping to change at line 345 | |||
void SetNew(ROOT::NewFunc_t newFunc); | void SetNew(ROOT::NewFunc_t newFunc); | |||
void SetNewArray(ROOT::NewArrFunc_t newArrayFunc); | void SetNewArray(ROOT::NewArrFunc_t newArrayFunc); | |||
TVirtualStreamerInfo *SetStreamerInfo(Int_t version, const char *inf o=""); | TVirtualStreamerInfo *SetStreamerInfo(Int_t version, const char *inf o=""); | |||
void SetUnloaded(); | void SetUnloaded(); | |||
Int_t WriteBuffer(TBuffer &b, void *pointer, const char *in fo=""); | Int_t WriteBuffer(TBuffer &b, void *pointer, const char *in fo=""); | |||
void AdoptReferenceProxy(TVirtualRefProxy* proxy); | void AdoptReferenceProxy(TVirtualRefProxy* proxy); | |||
void AdoptStreamer(TClassStreamer *strm); | void AdoptStreamer(TClassStreamer *strm); | |||
void AdoptMemberStreamer(const char *name, TMemberStreamer *strm); | void AdoptMemberStreamer(const char *name, TMemberStreamer *strm); | |||
void SetMemberStreamer(const char *name, MemberStreamerFun c_t strm); | void SetMemberStreamer(const char *name, MemberStreamerFun c_t strm); | |||
void SetStreamerFunc(ClassStreamerFunc_t strm); | ||||
// Function to retrieve the TClass object and dictionary function | // Function to retrieve the TClass object and dictionary function | |||
static void AddClass(TClass *cl); | static void AddClass(TClass *cl); | |||
static void RemoveClass(TClass *cl); | static void RemoveClass(TClass *cl); | |||
static TClass *GetClass(const char *name, Bool_t load = kTRUE, Bo ol_t silent = kFALSE); | static TClass *GetClass(const char *name, Bool_t load = kTRUE, Bo ol_t silent = kFALSE); | |||
static TClass *GetClass(const type_info &typeinfo, Bool_t load = kTRUE, Bool_t silent = kFALSE); | static TClass *GetClass(const type_info &typeinfo, Bool_t load = kTRUE, Bool_t silent = kFALSE); | |||
static VoidFuncPtr_t GetDict (const char *cname); | static VoidFuncPtr_t GetDict (const char *cname); | |||
static VoidFuncPtr_t GetDict (const type_info &info); | static VoidFuncPtr_t GetDict (const type_info &info); | |||
static Int_t AutoBrowse(TObject *obj, TBrowser *browser); | static Int_t AutoBrowse(TObject *obj, TBrowser *browser); | |||
skipping to change at line 353 | skipping to change at line 368 | |||
void Store(TBuffer &b) const; | void Store(TBuffer &b) const; | |||
// Pseudo-method apply to the 'obj'. In particular those are used to | // Pseudo-method apply to the 'obj'. In particular those are used to | |||
// implement TObject like methods for non-TObject classes | // implement TObject like methods for non-TObject classes | |||
Int_t Browse(void *obj, TBrowser *b) const; | Int_t Browse(void *obj, TBrowser *b) const; | |||
void DeleteArray(void *ary, Bool_t dtorOnly = kFALSE); | void DeleteArray(void *ary, Bool_t dtorOnly = kFALSE); | |||
void Destructor(void *obj, Bool_t dtorOnly = kFALSE); | void Destructor(void *obj, Bool_t dtorOnly = kFALSE); | |||
void *DynamicCast(const TClass *base, void *obj, Bool_t up = kTRUE); | void *DynamicCast(const TClass *base, void *obj, Bool_t up = kTRUE); | |||
Bool_t IsFolder(void *obj) const; | Bool_t IsFolder(void *obj) const; | |||
void Streamer(void *obj, TBuffer &b, const TClass *onfile_ | inline void Streamer(void *obj, TBuffer &b, const TClass *onfile_ | |||
class = 0) const; | class = 0) const | |||
{ | ||||
// Inline for performance, skipping one function call. | ||||
(this->*fStreamerImpl)(obj,b,onfile_class); | ||||
} | ||||
ClassDef(TClass,0) //Dictionary containing class information | ClassDef(TClass,0) //Dictionary containing class information | |||
}; | }; | |||
namespace ROOT { | namespace ROOT { | |||
#ifndef R__NO_CLASS_TEMPLATE_SPECIALIZATION | #ifndef R__NO_CLASS_TEMPLATE_SPECIALIZATION | |||
template <typename T> struct IsPointer { enum { kVal = 0 }; }; | template <typename T> struct IsPointer { enum { kVal = 0 }; }; | |||
template <typename T> struct IsPointer<T*> { enum { kVal = 1 }; }; | template <typename T> struct IsPointer<T*> { enum { kVal = 1 }; }; | |||
#else | #else | |||
End of changes. 10 change blocks. | ||||
18 lines changed or deleted | 48 lines changed or added | |||
TClassRef.h | TClassRef.h | |||
---|---|---|---|---|
// @(#)root/meta:$Id: TClassRef.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/meta:$Id: TClassRef.h 36061 2010-10-04 16:05:51Z pcanal $ | |||
// Author: Philippe Canal 15/03/2005 | // Author: Philippe Canal 15/03/2005 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 43 | skipping to change at line 43 | |||
class TClassRef { | class TClassRef { | |||
private: | private: | |||
std::string fClassName; //Name of referenced class | std::string fClassName; //Name of referenced class | |||
TClass *fClassPtr; //! Ptr to the TClass object | TClass *fClassPtr; //! Ptr to the TClass object | |||
TClassRef *fPrevious; //! link to the previous refs | TClassRef *fPrevious; //! link to the previous refs | |||
TClassRef *fNext; //! link to the next refs | TClassRef *fNext; //! link to the next refs | |||
friend class TClass; | friend class TClass; | |||
void Assign(const TClassRef &); | ||||
void Assign(TClass *); | ||||
TClass *InternalGetClass() const; | TClass *InternalGetClass() const; | |||
void ListReset(); | void ListReset(); | |||
public: | public: | |||
TClassRef() : fClassName(), fClassPtr(0), fPrevious(0), fNext(0) {} | TClassRef() : fClassName(), fClassPtr(0), fPrevious(0), fNext(0) {} | |||
TClassRef(TClass *cl); | TClassRef(TClass *cl); | |||
TClassRef(const char *classname); | TClassRef(const char *classname); | |||
TClassRef(const TClassRef&); | TClassRef(const TClassRef&); | |||
TClassRef &operator=(const TClassRef&); | inline TClassRef &operator=(const TClassRef &rhs) { | |||
TClassRef &operator=(TClass*); | // Inline implementation of operator= to speed the no-op case. | |||
if (this != &rhs && fClassPtr != rhs.fClassPtr) { | ||||
this->Assign(rhs); | ||||
} | ||||
return *this; | ||||
} | ||||
inline TClassRef &operator=(TClass *rhs) { | ||||
// Inline implementation of operator= to speed the no-op case. | ||||
if (this->fClassPtr != rhs) { | ||||
this->Assign(rhs); | ||||
} | ||||
return *this; | ||||
} | ||||
~TClassRef() { if (fClassPtr) fClassPtr->RemoveRef(this); }; | ~TClassRef() { if (fClassPtr) fClassPtr->RemoveRef(this); }; | |||
void SetName(const char* new_name) { | void SetName(const char* new_name) { | |||
if ( fClassPtr && fClassName != new_name ) Reset(); | if ( fClassPtr && fClassName != new_name ) Reset(); | |||
fClassName = new_name; | fClassName = new_name; | |||
} | } | |||
const char *GetClassName() { return fClassName.c_str(); } | const char *GetClassName() { return fClassName.c_str(); } | |||
TClass *GetClass() const { return fClassPtr ? fClassPtr : InternalGetCl ass(); } | TClass *GetClass() const { return fClassPtr ? fClassPtr : InternalGetCl ass(); } | |||
void Reset() { if (fClassPtr) fClassPtr->RemoveRef(this); fClassPtr = 0; } | void Reset() { if (fClassPtr) fClassPtr->RemoveRef(this); fClassPtr = 0; } | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 17 lines changed or added | |||
TClassStreamer.h | TClassStreamer.h | |||
---|---|---|---|---|
// @(#)root/base:$Id: TClassStreamer.h 25450 2008-09-18 21:13:42Z pcanal $ | // @(#)root/base:$Id: TClassStreamer.h 36096 2010-10-05 21:27:26Z pcanal $ | |||
// Author: Victor Perev and Philippe Canal 08/05/02 | // Author: Victor Perev and Philippe Canal 08/05/02 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2003, Rene Brun, Fons Rademakers and al. * | * Copyright (C) 1995-2003, Rene Brun, Fons Rademakers and al. * | |||
* 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 38 | skipping to change at line 38 | |||
protected: | protected: | |||
TClassStreamer() : fStreamer(0) {}; | TClassStreamer() : fStreamer(0) {}; | |||
public: | public: | |||
TClassStreamer(ClassStreamerFunc_t pointer) : fStreamer(pointer), fOnFil eClass() {}; | TClassStreamer(ClassStreamerFunc_t pointer) : fStreamer(pointer), fOnFil eClass() {}; | |||
TClassStreamer(const TClassStreamer &rhs) : fStreamer(rhs.fStreamer), fO nFileClass() {}; | TClassStreamer(const TClassStreamer &rhs) : fStreamer(rhs.fStreamer), fO nFileClass() {}; | |||
virtual void SetOnFileClass( const TClass* cl ) { fOnFileClass = const_c ast<TClass*>(cl); } | virtual void SetOnFileClass( const TClass* cl ) { fOnFileClass = const_c ast<TClass*>(cl); } | |||
virtual const TClass* GetOnFileClass() const { return fOnFileClass; } | virtual const TClass* GetOnFileClass() const { return fOnFileClass; } | |||
virtual TClassStreamer *Generate() { | virtual TClassStreamer *Generate() const { | |||
// Virtual copy constructor. | // Virtual copy constructor. | |||
return new TClassStreamer(*this); | return new TClassStreamer(*this); | |||
} | } | |||
virtual ~TClassStreamer(){}; | virtual ~TClassStreamer(){}; | |||
virtual void operator()(TBuffer &b, void *objp) | virtual void operator()(TBuffer &b, void *objp) | |||
{ | { | |||
// The address passed to operator() will be the address of the start of the | // The address passed to operator() will be the address of the start of the | |||
// object. | // object. | |||
(*fStreamer)(b,objp); | (*fStreamer)(b,objp); | |||
} | } | |||
virtual void Stream(TBuffer &b, void *objp, const TClass *onfileClass) | ||||
{ | ||||
// The address passed to operator() will be the address of the start | ||||
of the | ||||
// object. Overload this routine, if your derived class can optimiz | ||||
e | ||||
// the handling of the onfileClass (rather than storing and restoring | ||||
from the | ||||
// fOnFileClass member. | ||||
// Note we can not name this routine 'operator()' has it would be sli | ||||
ghtly | ||||
// backward incompatible and lead to the following warning/error from | ||||
the | ||||
// compiler in the derived class overloading the other operator(): | ||||
// include/TClassStreamer.h:51: error: ‘virtual void TClassStreamer::o | ||||
perator()(TBuffer&, void*, const TClass*)’ was hidden | ||||
// include/TCollectionProxyFactory.h:180: error: by ‘virtual void TC | ||||
ollectionClassStreamer::operator()(TBuffer&, void*)’ | ||||
// cc1plus: warnings being treated as errors | ||||
SetOnFileClass(onfileClass); | ||||
(*this)(b,objp); | ||||
} | ||||
private: | private: | |||
ClassStreamerFunc_t fStreamer; | ClassStreamerFunc_t fStreamer; | |||
protected: | protected: | |||
TClassRef fOnFileClass; | TClassRef fOnFileClass; | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 26 lines changed or added | |||
TCollection.h | TCollection.h | |||
---|---|---|---|---|
// @(#)root/cont:$Id: TCollection.h 25128 2008-08-12 17:59:19Z pcanal $ | // @(#)root/cont:$Id: TCollection.h 37411 2010-12-08 17:42:11Z pcanal $ | |||
// Author: Fons Rademakers 13/08/95 | // Author: Fons Rademakers 13/08/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 79 | skipping to change at line 79 | |||
enum { kInitCapacity = 16, kInitHashTableCapacity = 17 }; | enum { kInitCapacity = 16, kInitHashTableCapacity = 17 }; | |||
virtual ~TCollection() { } | virtual ~TCollection() { } | |||
virtual void Add(TObject *obj) = 0; | virtual void Add(TObject *obj) = 0; | |||
void AddVector(TObject *obj1, ...); | void AddVector(TObject *obj1, ...); | |||
virtual void AddAll(const TCollection *col); | virtual void AddAll(const TCollection *col); | |||
Bool_t AssertClass(TClass *cl) const; | Bool_t AssertClass(TClass *cl) const; | |||
void Browse(TBrowser *b); | void Browse(TBrowser *b); | |||
Int_t Capacity() const { return fSize; } | Int_t Capacity() const { return fSize; } | |||
virtual void Clear(Option_t *option="") = 0; | virtual void Clear(Option_t *option="") = 0; | |||
virtual TObject *Clone(const char *newname="") const; | ||||
Int_t Compare(const TObject *obj) const; | Int_t Compare(const TObject *obj) const; | |||
Bool_t Contains(const char *name) const { return FindObject( name) != 0; } | Bool_t Contains(const char *name) const { return FindObject( name) != 0; } | |||
Bool_t Contains(const TObject *obj) const { return FindObjec t(obj) != 0; } | Bool_t Contains(const TObject *obj) const { return FindObjec t(obj) != 0; } | |||
virtual void Delete(Option_t *option="") = 0; | virtual void Delete(Option_t *option="") = 0; | |||
virtual void Draw(Option_t *option=""); | virtual void Draw(Option_t *option=""); | |||
virtual void Dump() const ; | virtual void Dump() const ; | |||
virtual TObject *FindObject(const char *name) const; | virtual TObject *FindObject(const char *name) const; | |||
TObject *operator()(const char *name) const; | TObject *operator()(const char *name) const; | |||
virtual TObject *FindObject(const TObject *obj) const; | virtual TObject *FindObject(const TObject *obj) const; | |||
virtual Int_t GetEntries() const { return GetSize(); } | virtual Int_t GetEntries() const { return GetSize(); } | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TCollectionProxyFactory.h | TCollectionProxyFactory.h | |||
---|---|---|---|---|
// @(#)root/io:$Id: TCollectionProxyFactory.h 30749 2009-10-15 16:33:04Z br un $ | // @(#)root/io:$Id: TCollectionProxyFactory.h 36061 2010-10-04 16:05:51Z pc anal $ | |||
// Author: Markus Frank 28/10/04 | // Author: Markus Frank 28/10/04 | |||
/************************************************************************* | /************************************************************************* | |||
* 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_TCollectionProxyFactory | #ifndef ROOT_TCollectionProxyFactory | |||
skipping to change at line 31 | skipping to change at line 31 | |||
#include <typeinfo> | #include <typeinfo> | |||
#include <vector> | #include <vector> | |||
#ifndef ROOT_TCollectionProxyInfo | #ifndef ROOT_TCollectionProxyInfo | |||
#include "TCollectionProxyInfo.h" | #include "TCollectionProxyInfo.h" | |||
#endif | #endif | |||
#ifndef ROOT_TClassStreamer | #ifndef ROOT_TClassStreamer | |||
#include "TClassStreamer.h" | #include "TClassStreamer.h" | |||
#endif | #endif | |||
#ifndef ROOT_TMemberStreamer | #ifndef ROOT_TMemberStreamer | |||
#include "TMemberStreamer.h" | #include "TMemberStreamer.h" | |||
#endif | #endif | |||
#ifndef ROOT_TGenCollectionProxy | ||||
#include "TGenCollectionProxy.h" | ||||
#endif | ||||
// Forward declarations | // Forward declarations | |||
class TBuffer; | class TBuffer; | |||
class TGenCollectionProxy; | class TGenCollectionProxy; | |||
class TGenCollectionStreamer; | class TGenCollectionStreamer; | |||
class TVirtualCollectionProxy; | class TVirtualCollectionProxy; | |||
class TEmulatedCollectionProxy; | class TEmulatedCollectionProxy; | |||
#if defined(_WIN32) | #if defined(_WIN32) | |||
#if _MSC_VER<1300 | #if _MSC_VER<1300 | |||
#define TYPENAME | #define TYPENAME | |||
skipping to change at line 152 | skipping to change at line 157 | |||
public: | public: | |||
/// Initializing constructor | /// Initializing constructor | |||
TCollectionStreamer(); | TCollectionStreamer(); | |||
/// Copy constructor | /// Copy constructor | |||
TCollectionStreamer(const TCollectionStreamer& c); | TCollectionStreamer(const TCollectionStreamer& c); | |||
/// Standard destructor | /// Standard destructor | |||
virtual ~TCollectionStreamer(); | virtual ~TCollectionStreamer(); | |||
/// Attach worker proxy | /// Attach worker proxy | |||
void AdoptStreamer(TGenCollectionProxy* streamer); | void AdoptStreamer(TGenCollectionProxy* streamer); | |||
/// Streamer for I/O handling | /// Streamer for I/O handling | |||
void Streamer(TBuffer &refBuffer, void *pObject, int siz, TClass *onFile Class ); | void Streamer(TBuffer &refBuffer, void *obj, int siz, TClass *onFileClas s ); | |||
}; | }; | |||
/** @class TEmulatedClassStreamer TCollectionProxy.h cont/TCollectionProxy. h | /** @class TEmulatedClassStreamer TCollectionProxy.h cont/TCollectionProxy. h | |||
* | * | |||
* TEmulatedClassStreamer | * TEmulatedClassStreamer | |||
* | * | |||
* Class streamer object to implement TClassStreamr functionality | * Class streamer object to implement TClassStreamr functionality | |||
* for I/O emulation. | * for I/O emulation. | |||
* | * | |||
* @author M.Frank | * @author M.Frank | |||
skipping to change at line 175 | skipping to change at line 180 | |||
class TCollectionClassStreamer : public TClassStreamer, public TCollectionS treamer { | class TCollectionClassStreamer : public TClassStreamer, public TCollectionS treamer { | |||
public: | public: | |||
/// Initializing constructor | /// Initializing constructor | |||
TCollectionClassStreamer() : TClassStreamer(0) { } | TCollectionClassStreamer() : TClassStreamer(0) { } | |||
/// Copy constructor | /// Copy constructor | |||
TCollectionClassStreamer(const TCollectionClassStreamer& c) | TCollectionClassStreamer(const TCollectionClassStreamer& c) | |||
: TClassStreamer(c), TCollectionStreamer(c) { } | : TClassStreamer(c), TCollectionStreamer(c) { } | |||
/// Standard destructor | /// Standard destructor | |||
virtual ~TCollectionClassStreamer() { } | virtual ~TCollectionClassStreamer() { } | |||
/// Streamer for I/O handling | /// Streamer for I/O handling | |||
virtual void operator()(TBuffer &buff, void *pObj ) { Streamer(buff,pObj | virtual void operator()(TBuffer &buff, void *obj ) { Streamer(buff,obj,0 | |||
,0,fOnFileClass); } | ,fOnFileClass); } | |||
virtual void Stream(TBuffer &b, void *obj, const TClass *onfileClass) | ||||
{ | ||||
if (b.IsReading()) { | ||||
TGenCollectionProxy *proxy = TCollectionStreamer::fStreamer; | ||||
if (onfileClass==0 || onfileClass == proxy->GetCollectionClass()) | ||||
{ | ||||
proxy->ReadBuffer(b,obj); | ||||
} else { | ||||
proxy->ReadBuffer(b,obj,onfileClass); | ||||
} | ||||
} else { | ||||
// fStreamer->WriteBuffer(b,objp,onfileClass); | ||||
Streamer(b,obj,0,(TClass*)onfileClass); | ||||
} | ||||
} | ||||
/// Virtual copy constructor. | /// Virtual copy constructor. | |||
virtual TClassStreamer *Generate() { | virtual TClassStreamer *Generate() const { | |||
return new TCollectionClassStreamer(*this); | return new TCollectionClassStreamer(*this); | |||
} | } | |||
TGenCollectionProxy *GetXYZ() { return TCollectionStreamer::fStreamer; } | TGenCollectionProxy *GetXYZ() { return TCollectionStreamer::fStreamer; } | |||
}; | }; | |||
/** @class TCollectionMemberStreamer TCollectionProxyFactory.h cont/TCollec tionProxyFactory.h | /** @class TCollectionMemberStreamer TCollectionProxyFactory.h cont/TCollec tionProxyFactory.h | |||
* | * | |||
* TCollectionMemberStreamer | * TCollectionMemberStreamer | |||
skipping to change at line 206 | skipping to change at line 226 | |||
class TCollectionMemberStreamer : public TMemberStreamer, public TCollectio nStreamer { | class TCollectionMemberStreamer : public TMemberStreamer, public TCollectio nStreamer { | |||
public: | public: | |||
/// Initializing constructor | /// Initializing constructor | |||
TCollectionMemberStreamer() : TMemberStreamer(0) { } | TCollectionMemberStreamer() : TMemberStreamer(0) { } | |||
/// Copy constructor | /// Copy constructor | |||
TCollectionMemberStreamer(const TCollectionMemberStreamer& c) | TCollectionMemberStreamer(const TCollectionMemberStreamer& c) | |||
: TMemberStreamer(c), TCollectionStreamer(c) { } | : TMemberStreamer(c), TCollectionStreamer(c) { } | |||
/// Standard destructor | /// Standard destructor | |||
virtual ~TCollectionMemberStreamer() { } | virtual ~TCollectionMemberStreamer() { } | |||
/// Streamer for I/O handling | /// Streamer for I/O handling | |||
virtual void operator()(TBuffer &buff,void *pObj,Int_t siz=0) | virtual void operator()(TBuffer &buff,void *obj,Int_t siz=0) | |||
{ Streamer(buff, pObj, siz, 0); /* FIXME */ } | { Streamer(buff, obj, siz, 0); /* FIXME */ } | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 7 change blocks. | ||||
7 lines changed or deleted | 28 lines changed or added | |||
TCollectionProxyInfo.h | TCollectionProxyInfo.h | |||
---|---|---|---|---|
// @(#)root/cont:$Id: TCollectionProxyInfo.h 32611 2010-03-15 15:26:56Z rdm $ | // @(#)root/cont:$Id: TCollectionProxyInfo.h 36061 2010-10-04 16:05:51Z 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 87 | skipping to change at line 87 | |||
Iter_t fIterator; | Iter_t fIterator; | |||
T& iter() { return fIterator; } | T& iter() { return fIterator; } | |||
static void *Create() { | static void *Create() { | |||
return new Environ(); | return new Environ(); | |||
} | } | |||
}; | }; | |||
#else | #else | |||
struct EnvironBase; | struct EnvironBase; | |||
template <typename T> struct Environ; | template <typename T> struct Environ; | |||
#endif | #endif | |||
#if defined(R__VCXX6) | ||||
template <class T> void Destruct(T* obj) { obj->~T(); } | ||||
#endif | ||||
template <class T, class Q> struct PairHolder { | template <class T, class Q> struct PairHolder { | |||
T first; | T first; | |||
Q second; | Q second; | |||
PairHolder() {} | PairHolder() {} | |||
PairHolder(const PairHolder& c) : first(c.first), second(c.second) {} | PairHolder(const PairHolder& c) : first(c.first), second(c.second) {} | |||
virtual ~PairHolder() {} | virtual ~PairHolder() {} | |||
private: | private: | |||
PairHolder& operator=(const PairHolder&); // not implemented | PairHolder& operator=(const PairHolder&); // not implemented | |||
}; | }; | |||
skipping to change at line 164 | skipping to change at line 161 | |||
} | } | |||
static void* next(void* env) { | static void* next(void* env) { | |||
PEnv_t e = PEnv_t(env); | PEnv_t e = PEnv_t(env); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(e->fObject); | |||
for (; e->fIdx > 0 && e->iter() != c->end(); ++(e->iter()), --e->f Idx){ } | for (; e->fIdx > 0 && e->iter() != c->end(); ++(e->iter()), --e->f Idx){ } | |||
// TODO: Need to find something for going backwards.... | // TODO: Need to find something for going backwards.... | |||
if ( e->iter() == c->end() ) return 0; | if ( e->iter() == c->end() ) return 0; | |||
TYPENAME T::const_reference ref = *(e->iter()); | TYPENAME T::const_reference ref = *(e->iter()); | |||
return Type<T>::address(ref); | return Type<T>::address(ref); | |||
} | } | |||
static void* construct(void* env) { | static void* construct(void *what, size_t size) { | |||
PEnv_t e = PEnv_t(env); | PValue_t m = PValue_t(what); | |||
PValue_t m = PValue_t(e->fStart); | for (size_t i=0; i<size; ++i, ++m) | |||
for (size_t i=0; i<e->fSize; ++i, ++m) | ||||
::new(m) Value_t(); | ::new(m) Value_t(); | |||
return 0; | return 0; | |||
} | } | |||
static void* collect(void* env) { | static void* collect(void* env) { | |||
PEnv_t e = PEnv_t(env); | PEnv_t e = PEnv_t(env); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(e->fObject); | |||
PValue_t m = PValue_t(e->fStart); | PValue_t m = PValue_t(e->fStart); | |||
for (Iter_t i=c->begin(); i != c->end(); ++i, ++m ) | for (Iter_t i=c->begin(); i != c->end(); ++i, ++m ) | |||
::new(m) Value_t(*i); | ::new(m) Value_t(*i); | |||
return 0; | return 0; | |||
} | } | |||
static void* destruct(void* env) { | static void destruct(void *what, size_t size) { | |||
PEnv_t e = PEnv_t(env); | PValue_t m = PValue_t(what); | |||
PValue_t m = PValue_t(e->fStart); | for (size_t i=0; i < size; ++i, ++m ) | |||
#if defined(R__VCXX6) | ||||
PCont_t c = PCont_t(e->fObject); | ||||
for (size_t i=0; i < e->fSize; ++i, ++m ) | ||||
ROOT::Destruct(m); | ||||
#else | ||||
for (size_t i=0; i < e->fSize; ++i, ++m ) | ||||
m->~Value_t(); | m->~Value_t(); | |||
#endif | ||||
return 0; | ||||
} | } | |||
}; | }; | |||
/** @class TCollectionProxyInfo::Map TCollectionProxyInfo.h TCollectionP roxyInfo.h | /** @class TCollectionProxyInfo::Map TCollectionProxyInfo.h TCollectionP roxyInfo.h | |||
* | * | |||
* Small helper to encapsulate all necessary data accesses for | * Small helper to encapsulate all necessary data accesses for | |||
* containers like vector, list, deque | * containers like vector, list, deque | |||
* | * | |||
* @author M.Frank | * @author M.Frank | |||
* @version 1.0 | * @version 1.0 | |||
* @date 10/10/2004 | * @date 10/10/2004 | |||
*/ | */ | |||
template <class T> struct Pushback : public Type<T> { | template <class T> struct Pushback : public Type<T> { | |||
typedef T Cont_t; | typedef T Cont_t; | |||
typedef typename T::iterator Iter_t; | typedef typename T::iterator Iter_t; | |||
typedef typename T::value_type Value_t; | typedef typename T::value_type Value_t; | |||
typedef Environ<Iter_t> Env_t; | typedef Environ<Iter_t> Env_t; | |||
typedef Env_t *PEnv_t; | typedef Env_t *PEnv_t; | |||
typedef Cont_t *PCont_t; | typedef Cont_t *PCont_t; | |||
typedef Value_t *PValue_t; | typedef Value_t *PValue_t; | |||
static void* resize(void* env) { | static void resize(void* obj, size_t n) { | |||
PEnv_t e = PEnv_t(env); | PCont_t c = PCont_t(obj); | |||
PCont_t c = PCont_t(e->fObject); | c->resize(n); | |||
c->resize(e->fSize); | } | |||
e->fIdx = 0; | static void* feed(void *from, void *to, size_t size) { | |||
return e->fStart = e->fSize ? Type<T>::address(*c->begin()) : 0; | PCont_t c = PCont_t(to); | |||
} | PValue_t m = PValue_t(from); | |||
static void* feed(void* env) { | for (size_t i=0; i<size; ++i, ++m) | |||
PEnv_t e = PEnv_t(env); | ||||
PCont_t c = PCont_t(e->fObject); | ||||
PValue_t m = PValue_t(e->fStart); // Here start is actually a 'buf | ||||
fer' outside the buffer. | ||||
for (size_t i=0; i<e->fSize; ++i, ++m) | ||||
c->push_back(*m); | c->push_back(*m); | |||
return 0; | return 0; | |||
} | } | |||
static int value_offset() { | static int value_offset() { | |||
return 0; | return 0; | |||
} | } | |||
}; | }; | |||
/** @class TCollectionProxyInfo::Map TCollectionProxyInfo.h TCollectionP roxyInfo.h | /** @class TCollectionProxyInfo::Map TCollectionProxyInfo.h TCollectionP roxyInfo.h | |||
* | * | |||
skipping to change at line 248 | skipping to change at line 232 | |||
* @date 10/10/2004 | * @date 10/10/2004 | |||
*/ | */ | |||
template <class T> struct Insert : public Type<T> { | template <class T> struct Insert : public Type<T> { | |||
typedef T Cont_t; | typedef T Cont_t; | |||
typedef typename T::iterator Iter_t; | typedef typename T::iterator Iter_t; | |||
typedef typename T::value_type Value_t; | typedef typename T::value_type Value_t; | |||
typedef Environ<Iter_t> Env_t; | typedef Environ<Iter_t> Env_t; | |||
typedef Env_t *PEnv_t; | typedef Env_t *PEnv_t; | |||
typedef Cont_t *PCont_t; | typedef Cont_t *PCont_t; | |||
typedef Value_t *PValue_t; | typedef Value_t *PValue_t; | |||
static void* feed(void* env) { | static void* feed(void *from, void *to, size_t size) { | |||
PEnv_t e = PEnv_t(env); | PCont_t c = PCont_t(to); | |||
PCont_t c = PCont_t(e->fObject); | PValue_t m = PValue_t(from); | |||
PValue_t m = PValue_t(e->fStart); | for (size_t i=0; i<size; ++i, ++m) | |||
for (size_t i=0; i<e->fSize; ++i, ++m) | ||||
c->insert(*m); | c->insert(*m); | |||
return 0; | return 0; | |||
} | } | |||
static void* resize(void* /* env */ ) { | static void resize(void* /* obj */, size_t ) { | |||
return 0; | ; | |||
} | } | |||
static int value_offset() { | static int value_offset() { | |||
return 0; | return 0; | |||
} | } | |||
}; | }; | |||
/** @class TCollectionProxyInfo::Map TCollectionProxyInfo.h TCollectionP roxyInfo.h | /** @class TCollectionProxyInfo::Map TCollectionProxyInfo.h TCollectionP roxyInfo.h | |||
* | * | |||
* Small helper to encapsulate all necessary data accesses for | * Small helper to encapsulate all necessary data accesses for | |||
* containers like set, multiset etc. | * containers like set, multiset etc. | |||
skipping to change at line 281 | skipping to change at line 264 | |||
* @date 10/10/2004 | * @date 10/10/2004 | |||
*/ | */ | |||
template <class T> struct MapInsert : public Type<T> { | template <class T> struct MapInsert : public Type<T> { | |||
typedef T Cont_t; | typedef T Cont_t; | |||
typedef typename T::iterator Iter_t; | typedef typename T::iterator Iter_t; | |||
typedef typename T::value_type Value_t; | typedef typename T::value_type Value_t; | |||
typedef Environ<Iter_t> Env_t; | typedef Environ<Iter_t> Env_t; | |||
typedef Env_t *PEnv_t; | typedef Env_t *PEnv_t; | |||
typedef Cont_t *PCont_t; | typedef Cont_t *PCont_t; | |||
typedef Value_t *PValue_t; | typedef Value_t *PValue_t; | |||
static void* feed(void* env) { | static void* feed(void *from, void *to, size_t size) { | |||
PEnv_t e = PEnv_t(env); | PCont_t c = PCont_t(to); | |||
PCont_t c = PCont_t(e->fObject); | PValue_t m = PValue_t(from); | |||
PValue_t m = PValue_t(e->fStart); | for (size_t i=0; i<size; ++i, ++m) | |||
for (size_t i=0; i<e->fSize; ++i, ++m) | ||||
c->insert(*m); | c->insert(*m); | |||
return 0; | return 0; | |||
} | } | |||
static void* resize(void* /* env */ ) { | static void resize(void* /* obj */, size_t ) { | |||
return 0; | ; | |||
} | } | |||
static int value_offset() { | static int value_offset() { | |||
return ((char*)&((PValue_t(0x1000))->second)) - ((char*)PValue_t(0 x1000)); | return ((char*)&((PValue_t(0x1000))->second)) - ((char*)PValue_t(0 x1000)); | |||
} | } | |||
}; | }; | |||
public: | public: | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
const type_info &fInfo; | const type_info &fInfo; | |||
#endif | #endif | |||
size_t fIterSize; | size_t fIterSize; | |||
size_t fValueDiff; | size_t fValueDiff; | |||
int fValueOffset; | int fValueOffset; | |||
void* (*fSizeFunc)(void*); | void* (*fSizeFunc)(void*); | |||
void* (*fResizeFunc)(void*); | void (*fResizeFunc)(void*,size_t); | |||
void* (*fClearFunc)(void*); | void* (*fClearFunc)(void*); | |||
void* (*fFirstFunc)(void*); | void* (*fFirstFunc)(void*); | |||
void* (*fNextFunc)(void*); | void* (*fNextFunc)(void*); | |||
void* (*fConstructFunc)(void*); | void* (*fConstructFunc)(void*,size_t); | |||
void* (*fDestructFunc)(void*); | void (*fDestructFunc)(void*,size_t); | |||
void* (*fFeedFunc)(void*); | void* (*fFeedFunc)(void*,void*,size_t); | |||
void* (*fCollectFunc)(void*); | void* (*fCollectFunc)(void*); | |||
void* (*fCreateEnv)(); | void* (*fCreateEnv)(); | |||
// Set of function of direct iteration of the collections. | ||||
void (*fGetIterators)(void *collection, void *&begin_arena, void *&en | ||||
d_arena); | ||||
// begin_arena and end_arena should contain the location of memory ar | ||||
ena of size fgIteratorSize. | ||||
// If the collection iterator are of that size or less, the iterators | ||||
will be constructed in place in those location (new with placement) | ||||
// Otherwise the iterators will be allocated via a regular new and th | ||||
eir address returned by modifying the value of begin_arena and end_arena. | ||||
void (*fCopyIterator)(void *&dest, const void *source); | ||||
// Copy the iterator source, into dest. dest should contain should | ||||
contain the location of memory arena of size fgIteratorSize. | ||||
// If the collection iterator are of that size or less, the iterator | ||||
will be constructed in place in this location (new with placement) | ||||
// Otherwise the iterator will be allocated via a regular new and its | ||||
address returned by modifying the value of dest. | ||||
void* (*fNext)(void *iter, void *end); | ||||
// iter and end should be pointer to respectively an iterator to be i | ||||
ncremented and the result of colleciton.end() | ||||
// 'Next' will increment the iterator 'iter' and return 0 if the iter | ||||
ator reached the end. | ||||
// If the end is not reached, 'Next' will return the address of the c | ||||
ontent unless the collection contains pointers in | ||||
// which case 'Next' will return the value of the pointer. | ||||
void (*fDeleteSingleIterator)(void *iter); | ||||
void (*fDeleteTwoIterators)(void *begin, void *end); | ||||
// If the sizeof iterator is greater than fgIteratorArenaSize, call d | ||||
elete on the addresses, | ||||
// Otherwise just call the iterator's destructor. | ||||
public: | public: | |||
TCollectionProxyInfo(const type_info& info, | TCollectionProxyInfo(const type_info& info, | |||
size_t iter_size, | size_t iter_size, | |||
size_t value_diff, | size_t value_diff, | |||
int value_offset, | int value_offset, | |||
void* (*size_func)(void*), | void* (*size_func)(void*), | |||
void* (*resize_func)(void*), | void (*resize_func)(void*,size_t), | |||
void* (*clear_func)(void*), | void* (*clear_func)(void*), | |||
void* (*first_func)(void*), | void* (*first_func)(void*), | |||
void* (*next_func)(void*), | void* (*next_func)(void*), | |||
void* (*construct_func)(void*), | void* (*construct_func)(void*,size_t), | |||
void* (*destruct_func)(void*), | void (*destruct_func)(void*,size_t), | |||
void* (*feed_func)(void*), | void* (*feed_func)(void*,void*,size_t), | |||
void* (*collect_func)(void*), | void* (*collect_func)(void*), | |||
void* (*create_env)() | void* (*create_env)() | |||
) : | ) : | |||
fInfo(info), fIterSize(iter_size), fValueDiff(value_diff), | fInfo(info), fIterSize(iter_size), fValueDiff(value_diff), | |||
fValueOffset(value_offset), | fValueOffset(value_offset), | |||
fSizeFunc(size_func),fResizeFunc(resize_func),fClearFunc(clear_fun c), | fSizeFunc(size_func),fResizeFunc(resize_func),fClearFunc(clear_fun c), | |||
fFirstFunc(first_func),fNextFunc(next_func),fConstructFunc(constru ct_func), | fFirstFunc(first_func),fNextFunc(next_func),fConstructFunc(constru ct_func), | |||
fDestructFunc(destruct_func),fFeedFunc(feed_func),fCollectFunc(col lect_func), | fDestructFunc(destruct_func),fFeedFunc(feed_func),fCollectFunc(col lect_func), | |||
fCreateEnv(create_env) | fCreateEnv(create_env), | |||
fGetIterators(0),fCopyIterator(0),fNext(0),fDeleteSingleIterator(0 | ||||
),fDeleteTwoIterators(0) | ||||
{ | { | |||
} | } | |||
/// Generate proxy from template | /// Generate proxy from template | |||
template <class T> static ROOT::TCollectionProxyInfo* Generate(const T&) { | template <class T> static ROOT::TCollectionProxyInfo* Generate(const T&) { | |||
// Generate a TCollectionProxyInfo given a TCollectionProxyInfo::T ype | // Generate a TCollectionProxyInfo given a TCollectionProxyInfo::T ype | |||
// template (used to described the behavior of the stl collection. | // template (used to described the behavior of the stl collection. | |||
// Typical use looks like: | // Typical use looks like: | |||
// ::ROOT::TCollectionProxyInfo::Generate(TCollectionProxyInf o::Pushback< vector<string> >())); | // ::ROOT::TCollectionProxyInfo::Generate(TCollectionProxyInf o::Pushback< vector<string> >())); | |||
skipping to change at line 435 | skipping to change at line 440 | |||
e->fSize = c->size(); | e->fSize = c->size(); | |||
return 0; | return 0; | |||
} | } | |||
static void* next(void* env) { | static void* next(void* env) { | |||
PEnv_t e = PEnv_t(env); | PEnv_t e = PEnv_t(env); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(e->fObject); | |||
for (; e->fIdx > 0 && e->iter() != c->end(); ++(e->iter()), --e->f Idx){ } | for (; e->fIdx > 0 && e->iter() != c->end(); ++(e->iter()), --e->f Idx){ } | |||
// TODO: Need to find something for going backwards.... | // TODO: Need to find something for going backwards.... | |||
return 0; | return 0; | |||
} | } | |||
static void* construct(void*) { | static void* construct(void*,size_t) { | |||
// Nothing to construct. | // Nothing to construct. | |||
return 0; | return 0; | |||
} | } | |||
static void* collect(void* env) { | static void* collect(void* env) { | |||
PEnv_t e = PEnv_t(env); | PEnv_t e = PEnv_t(env); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(e->fObject); | |||
PValue_t m = PValue_t(e->fStart); // 'start' is a buffer outside t he container. | PValue_t m = PValue_t(e->fStart); // 'start' is a buffer outside t he container. | |||
for (Iter_t i=c->begin(); i != c->end(); ++i, ++m ) | for (Iter_t i=c->begin(); i != c->end(); ++i, ++m ) | |||
::new(m) Value_t(*i); | ::new(m) Value_t(*i); | |||
return 0; | return 0; | |||
} | } | |||
static void* destruct(void*) { | static void destruct(void*,size_t) { | |||
// Nothing to destruct. | // Nothing to destruct. | |||
return 0; | ||||
} | } | |||
}; | }; | |||
template <> struct TCollectionProxyInfo::Pushback<std::vector<bool> > : public TCollectionProxyInfo::Type<std::vector<bool> > { | template <> struct TCollectionProxyInfo::Pushback<std::vector<bool> > : public TCollectionProxyInfo::Type<std::vector<bool> > { | |||
typedef std::vector<bool> Cont_t; | typedef std::vector<bool> Cont_t; | |||
typedef Cont_t::iterator Iter_t; | typedef Cont_t::iterator Iter_t; | |||
typedef Cont_t::value_type Value_t; | typedef Cont_t::value_type Value_t; | |||
typedef Environ<Iter_t> Env_t; | typedef Environ<Iter_t> Env_t; | |||
typedef Env_t *PEnv_t; | typedef Env_t *PEnv_t; | |||
typedef Cont_t *PCont_t; | typedef Cont_t *PCont_t; | |||
typedef Value_t *PValue_t; | typedef Value_t *PValue_t; | |||
static void* resize(void* env) { | static void resize(void* obj,size_t n) { | |||
PEnv_t e = PEnv_t(env); | PCont_t c = PCont_t(obj); | |||
PCont_t c = PCont_t(e->fObject); | c->resize(n); | |||
c->resize(e->fSize); | } | |||
e->fIdx = 0; | static void* feed(void* from, void *to, size_t size) { | |||
return 0; | PCont_t c = PCont_t(to); | |||
} | PValue_t m = PValue_t(from); | |||
static void* feed(void* env) { | for (size_t i=0; i<size; ++i, ++m) | |||
PEnv_t e = PEnv_t(env); | ||||
PCont_t c = PCont_t(e->fObject); | ||||
PValue_t m = PValue_t(e->fStart); // Here start is actually a 'buf | ||||
fer' outside the container. | ||||
for (size_t i=0; i<e->fSize; ++i, ++m) | ||||
c->push_back(*m); | c->push_back(*m); | |||
return 0; | return 0; | |||
} | } | |||
static int value_offset() { | static int value_offset() { | |||
return 0; | return 0; | |||
} | } | |||
}; | }; | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
// Need specialization for boolean references due to stupid STL vector<b ool> | // Need specialization for boolean references due to stupid STL vector<b ool> | |||
skipping to change at line 536 | skipping to change at line 536 | |||
e->fSize = c->size(); | e->fSize = c->size(); | |||
return 0; | return 0; | |||
} | } | |||
static void* next(void* env) { | static void* next(void* env) { | |||
PEnv_t e = PEnv_t(env); | PEnv_t e = PEnv_t(env); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(e->fObject); | |||
for (; e->fIdx > 0 && e->fIterator.first != c->size(); ++(e->fIter ator.first), --e->fIdx){ } | for (; e->fIdx > 0 && e->fIterator.first != c->size(); ++(e->fIter ator.first), --e->fIdx){ } | |||
e->fIterator.second = (e->fIterator.first != c->size()) ? c->test( e->fIterator.first) : false; | e->fIterator.second = (e->fIterator.first != c->size()) ? c->test( e->fIterator.first) : false; | |||
return 0; | return 0; | |||
} | } | |||
static void* construct(void*) { | static void* construct(void*,size_t) { | |||
// Nothing to construct. | // Nothing to construct. | |||
return 0; | return 0; | |||
} | } | |||
static void* collect(void* env) { | static void* collect(void* env) { | |||
PEnv_t e = PEnv_t(env); | PEnv_t e = PEnv_t(env); | |||
PCont_t c = PCont_t(e->fObject); | PCont_t c = PCont_t(e->fObject); | |||
PValue_t m = PValue_t(e->fStart); // 'start' is a buffer outside t he container. | PValue_t m = PValue_t(e->fStart); // 'start' is a buffer outside t he container. | |||
for (size_t i=0; i != c->size(); ++i, ++m ) | for (size_t i=0; i != c->size(); ++i, ++m ) | |||
*m = c->test(i); | *m = c->test(i); | |||
return 0; | return 0; | |||
} | } | |||
static void* destruct(void*) { | static void destruct(void*,size_t) { | |||
// Nothing to destruct. | // Nothing to destruct. | |||
return 0; | ||||
} | } | |||
}; | }; | |||
template <typename Bitset_t> | template <typename Bitset_t> | |||
struct TCollectionProxyInfo::Pushback<ROOT::TStdBitsetHelper<Bitset_t> > : public TCollectionProxyInfo::Type<TStdBitsetHelper<Bitset_t> > { | struct TCollectionProxyInfo::Pushback<ROOT::TStdBitsetHelper<Bitset_t> > : public TCollectionProxyInfo::Type<TStdBitsetHelper<Bitset_t> > { | |||
typedef Bitset_t Cont_t; | typedef Bitset_t Cont_t; | |||
typedef bool Iter_t; | typedef bool Iter_t; | |||
typedef bool Value_t; | typedef bool Value_t; | |||
typedef Environ<Iter_t> Env_t; | typedef Environ<Iter_t> Env_t; | |||
typedef Env_t *PEnv_t; | typedef Env_t *PEnv_t; | |||
typedef Cont_t *PCont_t; | typedef Cont_t *PCont_t; | |||
typedef Value_t *PValue_t; | typedef Value_t *PValue_t; | |||
static void* resize(void* env) { | static void resize(void*,size_t) { | |||
PEnv_t e = PEnv_t(env); | ||||
e->fIdx = 0; | ||||
return 0; | ||||
} | } | |||
static void* feed(void* env) { | static void* feed(void *from, void *to, size_t size) { | |||
PEnv_t e = PEnv_t(env); | PCont_t c = PCont_t(to); | |||
PCont_t c = PCont_t(e->fObject); | PValue_t m = PValue_t(from); | |||
PValue_t m = PValue_t(e->fStart); // Here start is actually a 'buf | for (size_t i=0; i<size; ++i, ++m) | |||
fer' outside the container. | ||||
for (size_t i=0; i<e->fSize; ++i, ++m) | ||||
c->set(i,*m); | c->set(i,*m); | |||
return 0; | return 0; | |||
} | } | |||
static int value_offset() { | static int value_offset() { | |||
return 0; | return 0; | |||
} | } | |||
}; | }; | |||
#endif | #endif | |||
} | } | |||
End of changes. 25 change blocks. | ||||
84 lines changed or deleted | 88 lines changed or added | |||
TCutG.h | TCutG.h | |||
---|---|---|---|---|
// @(#)root/graf:$Id: TCutG.h 31952 2010-01-04 08:24:07Z brun $ | // @(#)root/graf:$Id: TCutG.h 37309 2010-12-06 00:10:29Z pcanal $ | |||
// Author: Rene Brun 16/05/97 | // Author: Rene Brun 16/05/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 51 | skipping to change at line 51 | |||
TCutG(const char *name, Int_t n, const Float_t *x, const Float_t *y); | TCutG(const char *name, Int_t n, const Float_t *x, const Float_t *y); | |||
TCutG(const char *name, Int_t n, const Double_t *x, const Double_t *y); | TCutG(const char *name, Int_t n, const Double_t *x, const Double_t *y); | |||
virtual ~TCutG(); | virtual ~TCutG(); | |||
virtual Double_t Area() const; | virtual Double_t Area() const; | |||
virtual void Center(Double_t &cx, Double_t &cy) const; | virtual void Center(Double_t &cx, Double_t &cy) const; | |||
TObject *GetObjectX() const {return fObjectX;} | TObject *GetObjectX() const {return fObjectX;} | |||
TObject *GetObjectY() const {return fObjectY;} | TObject *GetObjectY() const {return fObjectY;} | |||
const char *GetVarX() const {return fVarX.Data();} | const char *GetVarX() const {return fVarX.Data();} | |||
const char *GetVarY() const {return fVarY.Data();} | const char *GetVarY() const {return fVarY.Data();} | |||
virtual Double_t IntegralHist(TH2 *h, Option_t *option="") const; | virtual Double_t IntegralHist(TH2 *h, Option_t *option="") const; | |||
virtual Int_t IsInside(Double_t x, Double_t y) const; | ||||
virtual void SavePrimitive(ostream &out, Option_t *option = ""); | virtual void SavePrimitive(ostream &out, Option_t *option = ""); | |||
virtual void SetObjectX(TObject *obj) {fObjectX = obj;} | virtual void SetObjectX(TObject *obj); | |||
virtual void SetObjectY(TObject *obj) {fObjectY = obj;} | virtual void SetObjectY(TObject *obj); | |||
virtual void SetVarX(const char *varx); // *MENU* | virtual void SetVarX(const char *varx); // *MENU* | |||
virtual void SetVarY(const char *vary); // *MENU* | virtual void SetVarY(const char *vary); // *MENU* | |||
ClassDef(TCutG,2) // A Graphical cut. | ClassDef(TCutG,2) // A Graphical cut. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
4 lines changed or deleted | 3 lines changed or added | |||
TDictionary.h | TDictionary.h | |||
---|---|---|---|---|
// @(#)root/meta:$Id: TDictionary.h 31914 2009-12-16 10:57:32Z rdm $ | // @(#)root/meta:$Id: TDictionary.h 37415 2010-12-08 19:57:59Z pcanal $ | |||
// Author: Fons Rademakers 20/06/96 | // Author: Fons Rademakers 20/06/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 76 | skipping to change at line 76 | |||
kIsFundamental = G__BIT_ISFUNDAMENTAL, | kIsFundamental = G__BIT_ISFUNDAMENTAL, | |||
kIsAbstract = G__BIT_ISABSTRACT, | kIsAbstract = G__BIT_ISABSTRACT, | |||
kIsVirtual = G__BIT_ISVIRTUAL, | kIsVirtual = G__BIT_ISVIRTUAL, | |||
kIsPureVirtual = G__BIT_ISPUREVIRTUAL, | kIsPureVirtual = G__BIT_ISPUREVIRTUAL, | |||
kIsPublic = G__BIT_ISPUBLIC, | kIsPublic = G__BIT_ISPUBLIC, | |||
kIsProtected = G__BIT_ISPROTECTED, | kIsProtected = G__BIT_ISPROTECTED, | |||
kIsPrivate = G__BIT_ISPRIVATE, | kIsPrivate = G__BIT_ISPRIVATE, | |||
kIsPointer = G__BIT_ISPOINTER, | kIsPointer = G__BIT_ISPOINTER, | |||
kIsArray = G__BIT_ISARRAY, | kIsArray = G__BIT_ISARRAY, | |||
kIsStatic = G__BIT_ISSTATIC, | kIsStatic = G__BIT_ISSTATIC, | |||
kIsUsingVariable= G__BIT_ISUSINGVARIABLE, | ||||
kIsDefault = G__BIT_ISDEFAULT, | kIsDefault = G__BIT_ISDEFAULT, | |||
kIsReference = G__BIT_ISREFERENCE, | kIsReference = G__BIT_ISREFERENCE, | |||
kIsConstant = G__BIT_ISCONSTANT, | kIsConstant = G__BIT_ISCONSTANT, | |||
kIsConstPointer = G__BIT_ISPCONSTANT, | kIsConstPointer = G__BIT_ISPCONSTANT, | |||
kIsMethConst = G__BIT_ISMETHCONSTANT | kIsMethConst = G__BIT_ISMETHCONSTANT | |||
}; | }; | |||
class TDictionary : public TNamed { | class TDictionary : public TNamed { | |||
public: | public: | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TEfficiency.h | TEfficiency.h | |||
---|---|---|---|---|
#ifndef ROOT_TEfficiency | #ifndef ROOT_TEfficiency | |||
#define ROOT_TEfficiency | #define ROOT_TEfficiency | |||
//standard header | //standard header | |||
#include <vector> | #include <vector> | |||
#include <utility> | ||||
//ROOT header | //ROOT header | |||
#ifndef ROOT_TNamed | #ifndef ROOT_TNamed | |||
#include "TNamed.h" | #include "TNamed.h" | |||
#endif | #endif | |||
#ifndef ROOT_TAttLine | #ifndef ROOT_TAttLine | |||
#include "TAttLine.h" | #include "TAttLine.h" | |||
#endif | #endif | |||
skipping to change at line 38 | skipping to change at line 39 | |||
class TList; | class TList; | |||
//|TEfficiency | //|TEfficiency | |||
//------------------------ | //------------------------ | |||
class TEfficiency: public TNamed, public TAttLine, public TAttFill, public TAttMarker | class TEfficiency: public TNamed, public TAttLine, public TAttFill, public TAttMarker | |||
{ | { | |||
public: | public: | |||
//enumaration type for different statistic options for calculating co nfidence intervals | //enumaration type for different statistic options for calculating co nfidence intervals | |||
//kF* ... frequentist methods; kB* ... bayesian methods | //kF* ... frequentist methods; kB* ... bayesian methods | |||
enum { | enum EStatOption { | |||
kFCP, //Clopper-Pearson interval (recom | kFCP = 0, //Clopper-Pearson interval (r | |||
mended by PDG) | ecommended by PDG) | |||
kFNormal, //normal approximation | kFNormal, //normal approximation | |||
kFWilson, //Wilson interval | kFWilson, //Wilson interval | |||
kFAC, //Agresti-Coull interval | kFAC, //Agresti-Coull interval | |||
kFFC, //Feldman-Cousins interval | ||||
kBJeffrey, //Jeffrey interval (Prior ~ Beta( 0.5,0.5) | kBJeffrey, //Jeffrey interval (Prior ~ Beta( 0.5,0.5) | |||
kBUniform, //Prior ~ Uniform = Beta(1,1) | kBUniform, //Prior ~ Uniform = Beta(1,1) | |||
kBBayesian //user specified Prior ~ Beta(fBe ta_alpha,fBeta_beta) | kBBayesian //user specified Prior ~ Beta(fBe ta_alpha,fBeta_beta) | |||
}; | }; | |||
protected: | protected: | |||
Double_t fBeta_alpha; //parameter for prior beta dis | Double_t fBeta_alpha; //global parameter for prior b | |||
tribution (default = 1) | eta distribution (default = 1) | |||
Double_t fBeta_beta; //parameter for prior beta dis | Double_t fBeta_beta; //global parameter for prior b | |||
tribution (default = 1) | eta distribution (default = 1) | |||
std::vector<std::pair<Double_t, Double_t> > fBeta_bin_params; // par | ||||
ameter for prior beta distribution different bin by bin | ||||
// (defaul | ||||
t vector is empty) | ||||
Double_t (*fBoundary)(Int_t,Int_t,Double_t,Bool_t); //!pointer to a method calculating the boundaries of confidence intervals | Double_t (*fBoundary)(Int_t,Int_t,Double_t,Bool_t); //!pointer to a method calculating the boundaries of confidence intervals | |||
Double_t fConfLevel; //confidence level (default = 0.95) | Double_t fConfLevel; //confidence level (default = 0.95) | |||
TDirectory* fDirectory; //!pointer to directory holdin g this TEfficiency object | TDirectory* fDirectory; //!pointer to directory holdin g this TEfficiency object | |||
TList* fFunctions; //->pointer to list of functio ns | TList* fFunctions; //->pointer to list of functio ns | |||
TGraphAsymmErrors* fPaintGraph; //!temporary graph for paintin g | TGraphAsymmErrors* fPaintGraph; //!temporary graph for paintin g | |||
TH1* fPaintHisto; //!temporary histogram for pai nting | TH1* fPaintHisto; //!temporary histogram for pai nting | |||
TH1* fPassedHistogram; //histogram for events which p assed certain criteria | TH1* fPassedHistogram; //histogram for events which p assed certain criteria | |||
Int_t fStatisticOption; //defines how the confidence i ntervals are determined | EStatOption fStatisticOption; //defines how the confidence i ntervals are determined | |||
TH1* fTotalHistogram; //histogram for total number o f events | TH1* fTotalHistogram; //histogram for total number o f events | |||
Double_t fWeight; //weight for all events (defau lt = 1) | Double_t fWeight; //weight for all events (defau lt = 1) | |||
enum{ | enum{ | |||
kIsBayesian = BIT(14) //bayesian statistics are used | kIsBayesian = BIT(14), //bayesian statistics are | |||
used | ||||
kPosteriorMode = BIT(15), //use posterior mean for | ||||
best estimate (Bayesian statistics) | ||||
kShortestInterval = BIT(16), // use shortest interval | ||||
kUseBinPrior = BIT(17) // use a different prior | ||||
for each bin | ||||
}; | }; | |||
void Build(const char* name,const char* title); | void Build(const char* name,const char* title); | |||
public: | public: | |||
TEfficiency(); | TEfficiency(); | |||
TEfficiency(const TH1& passed,const TH1& total); | TEfficiency(const TH1& passed,const TH1& total); | |||
TEfficiency(const char* name,const char* title,Int_t nbins, | TEfficiency(const char* name,const char* title,Int_t nbins, | |||
const Double_t* xbins); | const Double_t* xbins); | |||
TEfficiency(const char* name,const char* title,Int_t nbins,Double_t x low, | TEfficiency(const char* name,const char* title,Int_t nbins,Double_t x low, | |||
skipping to change at line 91 | skipping to change at line 98 | |||
TEfficiency(const char* name,const char* title,Int_t nbinsx, | TEfficiency(const char* name,const char* title,Int_t nbinsx, | |||
Double_t xlow,Double_t xup,Int_t nbinsy,Double_t ylow, | Double_t xlow,Double_t xup,Int_t nbinsy,Double_t ylow, | |||
Double_t yup,Int_t nbinsz,Double_t zlow,Double_t zup); | Double_t yup,Int_t nbinsz,Double_t zlow,Double_t zup); | |||
TEfficiency(const char* name,const char* title,Int_t nbinsx, | TEfficiency(const char* name,const char* title,Int_t nbinsx, | |||
const Double_t* xbins,Int_t nbinsy,const Double_t* ybins, | const Double_t* xbins,Int_t nbinsy,const Double_t* ybins, | |||
Int_t nbinsz,const Double_t* zbins); | Int_t nbinsz,const Double_t* zbins); | |||
TEfficiency(const TEfficiency& heff); | TEfficiency(const TEfficiency& heff); | |||
~TEfficiency(); | ~TEfficiency(); | |||
void Add(const TEfficiency& rEff) {*this += rEff;} | void Add(const TEfficiency& rEff) {*this += rEff;} | |||
void Draw(const Option_t* opt=""); | void Draw(Option_t* opt); | |||
void Fill(Bool_t bPassed,Double_t x,Double_t y=0,Double_t z= 0); | void Fill(Bool_t bPassed,Double_t x,Double_t y=0,Double_t z= 0); | |||
Int_t FindFixBin(Double_t x,Double_t y=0,Double_t z=0) const; | Int_t FindFixBin(Double_t x,Double_t y=0,Double_t z=0) const; | |||
Int_t Fit(TF1* f1,Option_t* opt=""); | Int_t Fit(TF1* f1,Option_t* opt=""); | |||
Double_t GetBetaAlpha() const {return fBeta_alpha;} | // use trick of -1 to return global parameters | |||
Double_t GetBetaBeta() const {return fBeta_beta;} | Double_t GetBetaAlpha(Int_t bin = -1) const {return (fBeta_bin_p | |||
arams.size() > (UInt_t)bin) ? fBeta_bin_params[bin].first : fBeta_alpha;} | ||||
Double_t GetBetaBeta(Int_t bin = -1) const {return (fBeta_bin_p | ||||
arams.size() > (UInt_t)bin) ? fBeta_bin_params[bin].second : fBeta_beta;} | ||||
Double_t GetConfidenceLevel() const {return fConfLevel;} | Double_t GetConfidenceLevel() const {return fConfLevel;} | |||
TH1* GetCopyPassedHisto() const; | TH1* GetCopyPassedHisto() const; | |||
TH1* GetCopyTotalHisto() const; | TH1* GetCopyTotalHisto() const; | |||
Int_t GetDimension() const; | Int_t GetDimension() const; | |||
TDirectory* GetDirectory() const {return fDirectory;} | TDirectory* GetDirectory() const {return fDirectory;} | |||
Double_t GetEfficiency(Int_t bin) const; | Double_t GetEfficiency(Int_t bin) const; | |||
Double_t GetEfficiencyErrorLow(Int_t bin) const; | Double_t GetEfficiencyErrorLow(Int_t bin) const; | |||
Double_t GetEfficiencyErrorUp(Int_t bin) const; | Double_t GetEfficiencyErrorUp(Int_t bin) const; | |||
Int_t GetGlobalBin(Int_t binx,Int_t biny=0,Int_t binz=0) cons t; | Int_t GetGlobalBin(Int_t binx,Int_t biny=0,Int_t binz=0) cons t; | |||
TList* GetListOfFunctions() const {return fFunctions;} | TList* GetListOfFunctions() const {return fFunctions;} | |||
const TH1* GetPassedHistogram() const {return fPassedHistogram;} | const TH1* GetPassedHistogram() const {return fPassedHistogram;} | |||
Int_t GetStatisticOption() const {return fStatisticOption;} | EStatOption GetStatisticOption() const {return fStatisticOption;} | |||
const TH1* GetTotalHistogram() const {return fTotalHistogram;} | const TH1* GetTotalHistogram() const {return fTotalHistogram;} | |||
Double_t GetWeight() const {return fWeight;} | Double_t GetWeight() const {return fWeight;} | |||
void Merge(TCollection* list); | void Merge(TCollection* list); | |||
TEfficiency& operator+=(const TEfficiency& rhs); | TEfficiency& operator+=(const TEfficiency& rhs); | |||
TEfficiency& operator=(const TEfficiency& rhs); | TEfficiency& operator=(const TEfficiency& rhs); | |||
void Paint(const Option_t* opt); | void Paint(Option_t* opt); | |||
void SavePrimitive(ostream& out,Option_t* opt=""); | void SavePrimitive(ostream& out,Option_t* opt=""); | |||
void SetBetaAlpha(Double_t alpha); | void SetBetaAlpha(Double_t alpha); | |||
void SetBetaBeta(Double_t beta); | void SetBetaBeta(Double_t beta); | |||
void SetBetaBinParameters(Int_t bin, Double_t alpha, Double_ t beta); | ||||
void SetConfidenceLevel(Double_t level); | void SetConfidenceLevel(Double_t level); | |||
void SetDirectory(TDirectory* dir); | void SetDirectory(TDirectory* dir); | |||
void SetName(const char* name); | void SetName(const char* name); | |||
Bool_t SetPassedEvents(Int_t bin,Int_t events); | Bool_t SetPassedEvents(Int_t bin,Int_t events); | |||
Bool_t SetPassedHistogram(const TH1& rPassed,Option_t* opt); | Bool_t SetPassedHistogram(const TH1& rPassed,Option_t* opt); | |||
void SetStatisticOption(Int_t option); | void SetPosteriorMode(Bool_t on = true) { SetBit(kPosteriorM | |||
ode,on); if(on) SetShortestInterval(); } | ||||
void SetPosteriorAverage(Bool_t on = true) { SetBit(kPosteri | ||||
orMode,!on); } | ||||
void SetShortestInterval(Bool_t on = true) { SetBit(kShortes | ||||
tInterval,on); } | ||||
void SetCentralInterval(Bool_t on = true) { SetBit(kShortest | ||||
Interval,!on); } | ||||
void SetStatisticOption(EStatOption option); | ||||
void SetTitle(const char* title); | void SetTitle(const char* title); | |||
Bool_t SetTotalEvents(Int_t bin,Int_t events); | Bool_t SetTotalEvents(Int_t bin,Int_t events); | |||
Bool_t SetTotalHistogram(const TH1& rTotal,Option_t* opt); | Bool_t SetTotalHistogram(const TH1& rTotal,Option_t* opt); | |||
void SetWeight(Double_t weight); | void SetWeight(Double_t weight); | |||
Bool_t UsesBayesianStat() const {return TestBit(kIsBayesian);} | Bool_t UsesBayesianStat() const {return TestBit(kIsBayesian);} | |||
Bool_t UsesPosteriorMode() const {return TestBit(kPosteriorM | ||||
ode) && TestBit(kIsBayesian);} | ||||
Bool_t UsesShortestInterval() const {return TestBit(kShortes | ||||
tInterval) && TestBit(kIsBayesian);} | ||||
Bool_t UsesPosteriorAverage() const {return !UsesPosteriorMo | ||||
de();} | ||||
Bool_t UsesCentralInterval() const {return !UsesShortestInte | ||||
rval();} | ||||
static Bool_t CheckBinning(const TH1& pass,const TH1& total); | static Bool_t CheckBinning(const TH1& pass,const TH1& total); | |||
static Bool_t CheckConsistency(const TH1& pass,const TH1& total,Optio n_t* opt=""); | static Bool_t CheckConsistency(const TH1& pass,const TH1& total,Optio n_t* opt=""); | |||
static Bool_t CheckEntries(const TH1& pass,const TH1& total,Option_t* opt=""); | static Bool_t CheckEntries(const TH1& pass,const TH1& total,Option_t* opt=""); | |||
static Double_t Combine(Double_t& up,Double_t& low,Int_t n,const Int_ t* pass,const Int_t* total, | static Double_t Combine(Double_t& up,Double_t& low,Int_t n,const Int_ t* pass,const Int_t* total, | |||
const Double_t* alpha,const Double_t* beta,Dou ble_t level=0.683, | Double_t alpha,Double_t beta,Double_t level=0. 683, | |||
const Double_t* w=0,Option_t* opt=""); | const Double_t* w=0,Option_t* opt=""); | |||
static TGraphAsymmErrors* Combine(TCollection* pList,Option_t* opt="N ",Int_t n=0,const Double_t* w=0); | static TGraphAsymmErrors* Combine(TCollection* pList,Option_t* opt="" ,Int_t n=0,const Double_t* w=0); | |||
//calculating boundaries of confidence intervals | //calculating boundaries of confidence intervals | |||
static Double_t AgrestiCoull(Int_t total,Int_t passed,Double_t level, Bool_t bUpper); | static Double_t AgrestiCoull(Int_t total,Int_t passed,Double_t level, Bool_t bUpper); | |||
static Double_t Bayesian(Int_t total,Int_t passed,Double_t level,Doub le_t alpha,Double_t beta,Bool_t bUpper); | ||||
static Double_t ClopperPearson(Int_t total,Int_t passed,Double_t leve l,Bool_t bUpper); | static Double_t ClopperPearson(Int_t total,Int_t passed,Double_t leve l,Bool_t bUpper); | |||
static Double_t Normal(Int_t total,Int_t passed,Double_t level,Bool_t bUpper); | static Double_t Normal(Int_t total,Int_t passed,Double_t level,Bool_t bUpper); | |||
static Double_t Wilson(Int_t total,Int_t passed,Double_t level,Bool_t bUpper); | static Double_t Wilson(Int_t total,Int_t passed,Double_t level,Bool_t bUpper); | |||
static Double_t FeldmanCousins(Int_t total,Int_t passed,Double_t leve | ||||
l,Bool_t bUpper); | ||||
static Bool_t FeldmanCousinsInterval(Int_t total,Int_t passed,Double_ | ||||
t level,Double_t & lower, Double_t & upper); | ||||
// Bayesian functions | ||||
static Double_t Bayesian(Int_t total,Int_t passed,Double_t level,Doub | ||||
le_t alpha,Double_t beta,Bool_t bUpper, Bool_t bShortest = false); | ||||
// helper functions for Bayesian statistics | ||||
static Double_t BetaCentralInterval(Double_t level,Double_t alpha,Dou | ||||
ble_t beta,Bool_t bUpper); | ||||
static Bool_t BetaShortestInterval(Double_t level,Double_t alpha,Do | ||||
uble_t beta,Double_t & lower, Double_t & upper); | ||||
static Double_t BetaMean(Double_t alpha,Double_t beta); | ||||
static Double_t BetaMode(Double_t alpha,Double_t beta); | ||||
ClassDef(TEfficiency,1) //calculating efficiencies | ClassDef(TEfficiency,1) //calculating efficiencies | |||
}; | }; | |||
const TEfficiency operator+(const TEfficiency& lhs,const TEfficiency& rhs); | const TEfficiency operator+(const TEfficiency& lhs,const TEfficiency& rhs); | |||
#endif | #endif | |||
End of changes. 17 change blocks. | ||||
20 lines changed or deleted | 65 lines changed or added | |||
TEmulatedCollectionProxy.h | TEmulatedCollectionProxy.h | |||
---|---|---|---|---|
// @(#)root/io:$Id: TEmulatedCollectionProxy.h 31136 2009-11-12 21:25:38Z p canal $ | // @(#)root/io:$Id: TEmulatedCollectionProxy.h 36061 2010-10-04 16:05:51Z p canal $ | |||
// Author: Markus Frank 28/10/04 | // Author: Markus Frank 28/10/04 | |||
/************************************************************************* | /************************************************************************* | |||
* 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_TEmulatedCollectionProxy | #ifndef ROOT_TEmulatedCollectionProxy | |||
skipping to change at line 110 | skipping to change at line 110 | |||
// Return the current size of the container | // Return the current size of the container | |||
virtual UInt_t Size() const; | virtual UInt_t Size() const; | |||
// Block allocation of containees | // Block allocation of containees | |||
virtual void* Allocate(UInt_t n, Bool_t forceDelete); | virtual void* Allocate(UInt_t n, Bool_t forceDelete); | |||
// Block commit of containees | // Block commit of containees | |||
virtual void Commit(void* env); | virtual void Commit(void* env); | |||
// Read portion of the streamer | ||||
virtual void ReadBuffer(TBuffer &buff, void *pObj); | ||||
virtual void ReadBuffer(TBuffer &buff, void *pObj, const TClass *onfile) | ||||
; | ||||
// Streamer for I/O handling | // Streamer for I/O handling | |||
virtual void Streamer(TBuffer &refBuffer); | virtual void Streamer(TBuffer &refBuffer); | |||
// Streamer I/O overload | // Streamer I/O overload | |||
virtual void Streamer(TBuffer &buff, void *pObj, int siz) { | virtual void Streamer(TBuffer &buff, void *pObj, int siz) { | |||
TGenCollectionProxy::Streamer(buff,pObj,siz); | TGenCollectionProxy::Streamer(buff,pObj,siz); | |||
} | } | |||
// Check validity of the proxy itself | // Check validity of the proxy itself | |||
Bool_t IsValid() const; | Bool_t IsValid() const; | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 6 lines changed or added | |||
TEmulatedMapProxy.h | TEmulatedMapProxy.h | |||
---|---|---|---|---|
// @(#)root/io:$Id: TEmulatedMapProxy.h 23122 2008-04-10 14:56:30Z rdm $ | // @(#)root/io:$Id: TEmulatedMapProxy.h 36061 2010-10-04 16:05:51Z pcanal $ | |||
// Author: Markus Frank 28/10/04 | // Author: Markus Frank 28/10/04 | |||
/************************************************************************* | /************************************************************************* | |||
* 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_TEmulatedMapProxy | #ifndef ROOT_TEmulatedMapProxy | |||
skipping to change at line 53 | skipping to change at line 53 | |||
// Standard destructor | // Standard destructor | |||
virtual ~TEmulatedMapProxy(); | virtual ~TEmulatedMapProxy(); | |||
// Return the address of the value at index 'idx' | // Return the address of the value at index 'idx' | |||
virtual void *At(UInt_t idx); | virtual void *At(UInt_t idx); | |||
// Return the current size of the container | // Return the current size of the container | |||
virtual UInt_t Size() const; | virtual UInt_t Size() const; | |||
// Read portion of the streamer | ||||
virtual void ReadBuffer(TBuffer &buff, void *pObj); | ||||
virtual void ReadBuffer(TBuffer &buff, void *pObj, const TClass *onfile) | ||||
; | ||||
// Streamer for I/O handling | // Streamer for I/O handling | |||
virtual void Streamer(TBuffer &refBuffer); | virtual void Streamer(TBuffer &refBuffer); | |||
// Streamer I/O overload | // Streamer I/O overload | |||
virtual void Streamer(TBuffer &buff, void *pObj, int siz) { | virtual void Streamer(TBuffer &buff, void *pObj, int siz) { | |||
TEmulatedCollectionProxy::Streamer(buff,pObj,siz); | TEmulatedCollectionProxy::Streamer(buff,pObj,siz); | |||
} | } | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 6 lines changed or added | |||
TEveArrow.h | TEveArrow.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveArrow.h 35074 2010-08-30 15:18:02Z matevz $ | // @(#)root/eve:$Id: TEveArrow.h 36373 2010-10-19 17:43:35Z 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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 50 | skipping to change at line 50 | |||
TEveVector fOrigin; | TEveVector fOrigin; | |||
TEveVector fVector; | TEveVector fVector; | |||
Int_t fDrawQuality; // Number of segments of circles. | Int_t fDrawQuality; // Number of segments of circles. | |||
public: | public: | |||
TEveArrow(Float_t xVec=0, Float_t yVec=0, Float_t zVec=1, | TEveArrow(Float_t xVec=0, Float_t yVec=0, Float_t zVec=1, | |||
Float_t xOrg=0, Float_t yOrg=0, Float_t zOrg=0); | Float_t xOrg=0, Float_t yOrg=0, Float_t zOrg=0); | |||
virtual ~TEveArrow() {} | virtual ~TEveArrow() {} | |||
virtual TObject* GetObject(const TEveException& /*eh*/="TEveElementList: :GetObject ") const | virtual TObject* GetObject(const TEveException& ) const | |||
{ const TObject* obj = this; return const_cast<TObject*>(obj); } | { const TObject* obj = this; return const_cast<TObject*>(obj); } | |||
void SetTubeR(Float_t x) { fTubeR = x; } | void SetTubeR(Float_t x) { fTubeR = x; } | |||
void SetConeR(Float_t x) { fConeR = x; } | void SetConeR(Float_t x) { fConeR = x; } | |||
void SetConeL(Float_t x) { fConeL = x; } | void SetConeL(Float_t x) { fConeL = x; } | |||
Float_t GetTubeR() const { return fTubeR; } | Float_t GetTubeR() const { return fTubeR; } | |||
Float_t GetConeR() const { return fConeR; } | Float_t GetConeR() const { return fConeR; } | |||
Float_t GetConeL() const { return fConeL; } | Float_t GetConeL() const { return fConeL; } | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TEveBoxGL.h | TEveBoxGL.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveBoxGL.h 32528 2010-03-10 17:02:54Z matevz $ | // @(#)root/eve:$Id: TEveBoxGL.h 36867 2010-11-23 10:06:35Z matevz $ | |||
// Author: Matevz Tadel, 2010 | // Author: Matevz Tadel, 2010 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 50 | skipping to change at line 50 | |||
public: | public: | |||
TEveBoxGL(); | TEveBoxGL(); | |||
virtual ~TEveBoxGL() {} | virtual ~TEveBoxGL() {} | |||
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(); | |||
virtual void Draw(TGLRnrCtx& rnrCtx) const; | virtual void Draw(TGLRnrCtx& rnrCtx) const; | |||
virtual void DirectDraw(TGLRnrCtx& rnrCtx) const; | virtual void DirectDraw(TGLRnrCtx& rnrCtx) const; | |||
virtual Bool_t IgnoreSizeForOfInterest() const { return kTRUE; } | ||||
// To support two-level selection | // To support two-level selection | |||
// virtual Bool_t SupportsSecondarySelect() const { return kTRUE; } | // virtual Bool_t SupportsSecondarySelect() const { return kTRUE; } | |||
// virtual void ProcessSelection(TGLRnrCtx & rnrCtx, TGLSelectRecord & r ec); | // virtual void ProcessSelection(TGLRnrCtx & rnrCtx, TGLSelectRecord & r ec); | |||
ClassDef(TEveBoxGL, 0); // GL renderer class for TEveBox. | ClassDef(TEveBoxGL, 0); // GL renderer class for TEveBox. | |||
}; | }; | |||
//------------------------------------------------------------------------- ----- | //------------------------------------------------------------------------- ----- | |||
// TEveBoxProjectedGL | // TEveBoxProjectedGL | |||
//------------------------------------------------------------------------- ----- | //------------------------------------------------------------------------- ----- | |||
skipping to change at line 82 | skipping to change at line 84 | |||
public: | public: | |||
TEveBoxProjectedGL(); | TEveBoxProjectedGL(); | |||
virtual ~TEveBoxProjectedGL() {} | virtual ~TEveBoxProjectedGL() {} | |||
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(); | |||
virtual void Draw(TGLRnrCtx& rnrCtx) const; | virtual void Draw(TGLRnrCtx& rnrCtx) const; | |||
virtual void DirectDraw(TGLRnrCtx& rnrCtx) const; | virtual void DirectDraw(TGLRnrCtx& rnrCtx) const; | |||
virtual Bool_t IgnoreSizeForOfInterest() const { return kTRUE; } | ||||
// To support two-level selection | // To support two-level selection | |||
// virtual Bool_t SupportsSecondarySelect() const { return kTRUE; } | // virtual Bool_t SupportsSecondarySelect() const { return kTRUE; } | |||
// virtual void ProcessSelection(TGLRnrCtx & rnrCtx, TGLSelectRecord & r ec); | // virtual void ProcessSelection(TGLRnrCtx & rnrCtx, TGLSelectRecord & r ec); | |||
ClassDef(TEveBoxProjectedGL, 0); // GL renderer class for TEveBoxProject ed. | ClassDef(TEveBoxProjectedGL, 0); // GL renderer class for TEveBoxProject ed. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 5 lines changed or added | |||
TEveBoxSet.h | TEveBoxSet.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveBoxSet.h 32935 2010-04-09 20:10:18Z matevz $ | // @(#)root/eve:$Id: TEveBoxSet.h 37234 2010-12-03 18:20:15Z 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 29 | skipping to change at line 29 | |||
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 | |||
public: | public: | |||
enum EBoxType_e | enum EBoxType_e { | |||
{ | kBT_Undef, // unknown-ignored | |||
kBT_Undef, // unknown-ignored | kBT_FreeBox, // arbitrary box: specify 8*(x,y,z) box corners | |||
kBT_FreeBox, // arbitrary box: specify 8*(x,y,z) box corne | kBT_AABox, // axis-aligned box: specify (x,y,z) and (w, h, | |||
rs | d) | |||
kBT_AABox, // axis-aligned box: specify (x,y,z) and (w, | kBT_AABoxFixedDim, // axis-aligned box w/ fixed dimensions: specify | |||
h, d) | (x,y,z) | |||
kBT_AABoxFixedDim, // axis-aligned box w/ fixed dimensions: spec | kBT_Cone, | |||
ify (x,y,z) | kBT_EllipticCone | |||
kBT_Cone, | }; | |||
kBT_EllipticCone | ||||
}; | ||||
protected: | struct BFreeBox_t : public DigitBase_t { Float_t fVertices[8][3]; | |||
}; | ||||
struct BFreeBox_t : public DigitBase_t { Float_t fVertices[24]; }; | ||||
struct BOrigin_t : public DigitBase_t { Float_t fA, fB, fC; }; | struct BOrigin_t : public DigitBase_t { Float_t fA, fB, fC; }; | |||
struct BAABox_t : public BOrigin_t { Float_t fW, fH, fD; }; | struct BAABox_t : public BOrigin_t { Float_t fW, fH, fD; }; | |||
struct BAABoxFixedDim_t : public BOrigin_t {}; | struct BAABoxFixedDim_t : public BOrigin_t {}; | |||
struct BCone_t : public DigitBase_t { TEveVector fPos, fDir; Fl oat_t fR; }; | struct BCone_t : public DigitBase_t { TEveVector fPos, fDir; Fl oat_t fR; }; | |||
struct BEllipticCone_t : public BCone_t { Float_t fR2, fAngle; }; | struct BEllipticCone_t : public BCone_t { Float_t fR2, fAngle; }; | |||
End of changes. 3 change blocks. | ||||
16 lines changed or deleted | 13 lines changed or added | |||
TEveBoxSetGL.h | TEveBoxSetGL.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveBoxSetGL.h 33124 2010-04-21 20:04:42Z matevz $ | // @(#)root/eve:$Id: TEveBoxSetGL.h 36816 2010-11-20 22:41:48Z 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 29 | skipping to change at line 29 | |||
{ | { | |||
TEveBoxSetGL(const TEveBoxSetGL&); // Not implemented | TEveBoxSetGL(const TEveBoxSetGL&); // Not implemented | |||
TEveBoxSetGL& operator=(const TEveBoxSetGL&); // Not implemented | TEveBoxSetGL& operator=(const TEveBoxSetGL&); // Not implemented | |||
protected: | protected: | |||
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; | |||
void MakeOriginBox(Float_t p[24], Float_t dx, Float_t dy, Float_t dz) | void MakeOriginBox(Float_t p[8][3], Float_t dx, Float_t dy, Float_t dz | |||
const; | ) const; | |||
void RenderBox(const Float_t p[24]) const; | void RenderBoxStdNorm(const Float_t p[8][3]) const; | |||
void RenderBoxAutoNorm(const Float_t p[8][3]) const; | ||||
void MakeDisplayList() const; | void MakeDisplayList() const; | |||
void RenderBoxes(TGLRnrCtx& rnrCtx) 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(); | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 5 lines changed or added | |||
TEveBrowser.h | TEveBrowser.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveBrowser.h 31343 2009-11-20 16:33:02Z matevz $ | // @(#)root/eve:$Id: TEveBrowser.h 36955 2010-11-25 21:23:09Z 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 157 | skipping to change at line 157 | |||
TGFileBrowser* MakeFileBrowser(); | TGFileBrowser* MakeFileBrowser(); | |||
TGFileBrowser* GetFileBrowser() const { return fFileBrowser; } | TGFileBrowser* GetFileBrowser() const { return fFileBrowser; } | |||
void EveMenu(Int_t id); | void EveMenu(Int_t id); | |||
// Some getters missing in TRootBrowser | // Some getters missing in TRootBrowser | |||
TGMenuBar* GetMenuBar() const { return fMenuBar; } | TGMenuBar* GetMenuBar() const { return fMenuBar; } | |||
TGHorizontalFrame* GetTopMenuFrame() const { return fTopMenuFrame; } | TGHorizontalFrame* GetTopMenuFrame() const { return fTopMenuFrame; } | |||
void HideBottomTab(); | ||||
ClassDef(TEveBrowser, 0); // Specialization of TRootBrowser for Eve. | ClassDef(TEveBrowser, 0); // Specialization of TRootBrowser for Eve. | |||
}; | }; | |||
#endif | #endif | |||
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 35048 2010-08-27 14:39:37Z matevz $ | // @(#)root/eve:$Id: TEveCaloLegoGL.h 37345 2010-12-06 16:53:39Z 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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 65 | skipping to change at line 65 | |||
Float_t Y() { return 0.5*(fY0 + fY1); } | Float_t Y() { return 0.5*(fY0 + fY1); } | |||
}; | }; | |||
typedef std::vector<Cell2D_t> vCell2D_t; | typedef std::vector<Cell2D_t> vCell2D_t; | |||
typedef std::vector<Cell2D_t>::iterator vCell2D_i; | typedef std::vector<Cell2D_t>::iterator vCell2D_i; | |||
typedef std::map<Int_t, UInt_t> SliceDLMap_t; | typedef std::map<Int_t, UInt_t> SliceDLMap_t; | |||
typedef std::map<Int_t, UInt_t>::iterator SliceDLMap_i; | typedef std::map<Int_t, UInt_t>::iterator SliceDLMap_i; | |||
// histogram base | // histogram base | |||
mutable Float_t fDataMax; | ||||
mutable Color_t fGridColor; | mutable Color_t fGridColor; | |||
mutable Color_t fFontColor; | mutable Color_t fFontColor; | |||
mutable TAxis *fEtaAxis; | mutable TAxis *fEtaAxis; | |||
mutable TAxis *fPhiAxis; | mutable TAxis *fPhiAxis; | |||
mutable TAxis *fZAxis; | mutable TAxis *fZAxis; | |||
mutable TEveVector fXAxisTitlePos; | mutable TEveVector fXAxisTitlePos; | |||
mutable TEveVector fYAxisTitlePos; | mutable TEveVector fYAxisTitlePos; | |||
mutable TEveVector fZAxisTitlePos; | mutable TEveVector fZAxisTitlePos; | |||
mutable TEveVector fBackPlaneXConst[2]; | mutable TEveVector fBackPlaneXConst[2]; | |||
skipping to change at line 98 | skipping to change at line 97 | |||
mutable Int_t fCurrentPixelsPerBin; | mutable Int_t fCurrentPixelsPerBin; | |||
mutable SliceDLMap_t fDLMap; | mutable SliceDLMap_t fDLMap; | |||
mutable Bool_t fCells3D; | mutable Bool_t fCells3D; | |||
mutable Int_t fBinStep; | mutable Int_t fBinStep; | |||
TEveCaloLegoGL(const TEveCaloLegoGL&); // Stop default | TEveCaloLegoGL(const TEveCaloLegoGL&); // Stop default | |||
TEveCaloLegoGL& operator=(const TEveCaloLegoGL&); // Stop default | TEveCaloLegoGL& operator=(const TEveCaloLegoGL&); // Stop default | |||
protected: | private: | |||
void GetScaleForMatrix(Float_t& sx, Float_t& sy, Float_t& sz) const; | ||||
Int_t GetGridStep(TGLRnrCtx &rnrCtx) const; | Int_t GetGridStep(TGLRnrCtx &rnrCtx) const; | |||
void RebinAxis(TAxis *orig, TAxis *curr) const; | void RebinAxis(TAxis *orig, TAxis *curr) const; | |||
void SetAxis3DTitlePos(TGLRnrCtx &rnrCtx, Float_t x0, Float_t x1, Flo at_t y0, Float_t y1) const; | void SetAxis3DTitlePos(TGLRnrCtx &rnrCtx, Float_t x0, Float_t x1, Flo at_t y0, Float_t y1) const; | |||
void DrawAxis3D(TGLRnrCtx &rnrCtx) const; | void DrawAxis3D(TGLRnrCtx &rnrCtx) const; | |||
void DrawAxis2D(TGLRnrCtx &rnrCtx) const; | void DrawAxis2D(TGLRnrCtx &rnrCtx) const; | |||
void DrawHistBase(TGLRnrCtx &rnrCtx) const; | void DrawHistBase(TGLRnrCtx &rnrCtx) const; | |||
// highlight | // highlight | |||
void DrawSelectedCells(TGLRnrCtx & rnrCtx, TEveCaloData::vCellId_t ce lls) const; | void DrawSelectedCells(TGLRnrCtx & rnrCtx, TEveCaloData::vCellId_t ce lls) const; | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
TEveDigitSet.h | TEveDigitSet.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveDigitSet.h 35074 2010-08-30 15:18:02Z matevz $ | // @(#)root/eve:$Id: TEveDigitSet.h 37390 2010-12-08 11:10:41Z 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 47 | skipping to change at line 47 | |||
TEveDigitSet(const TEveDigitSet&); // Not implemented | TEveDigitSet(const TEveDigitSet&); // Not implemented | |||
TEveDigitSet& operator=(const TEveDigitSet&); // Not implemented | TEveDigitSet& operator=(const TEveDigitSet&); // Not implemented | |||
public: | public: | |||
enum ERenderMode_e { kRM_AsIs, kRM_Line, kRM_Fill }; | enum ERenderMode_e { kRM_AsIs, kRM_Line, kRM_Fill }; | |||
typedef void (*Callback_foo)(TEveDigitSet*, Int_t, TObject*); | typedef void (*Callback_foo)(TEveDigitSet*, Int_t, TObject*); | |||
typedef TString (*TooltipCB_foo)(TEveDigitSet*, Int_t); | typedef TString (*TooltipCB_foo)(TEveDigitSet*, Int_t); | |||
protected: | ||||
struct DigitBase_t | struct DigitBase_t | |||
{ | { | |||
// Base-class for digit representation classes. | // Base-class for digit representation classes. | |||
Int_t fValue; // signal value of a digit (can be direct RGBA colo r) | Int_t fValue; // signal value of a digit (can be direct RGBA colo r) | |||
void *fUserData; // user-data for given digit | void *fUserData; // user-data for given digit | |||
DigitBase_t(Int_t v=0) : fValue(v), fUserData(0) {} | DigitBase_t(Int_t v=0) : fValue(v), fUserData(0) {} | |||
}; | }; | |||
protected: | ||||
TRefArray *fDigitIds; // Array holding references to exter nal objects. | TRefArray *fDigitIds; // Array holding references to exter nal objects. | |||
Int_t fDefaultValue; // Default signal value. | Int_t fDefaultValue; // Default signal value. | |||
Bool_t fValueIsColor; // Interpret signal value as RGBA co lor. | Bool_t fValueIsColor; // Interpret signal value as RGBA co lor. | |||
Bool_t fSingleColor; // Use the same color for all digits . | Bool_t fSingleColor; // Use the same color for all digits . | |||
Bool_t fAntiFlick; // Make extra render pass to avoid fl ickering when quads are too small. | Bool_t fAntiFlick; // Make extra render pass to avoid fl ickering when quads are too small. | |||
Bool_t fOwnIds; // Flag specifying if id-objects are owned by the TEveDigitSet. | Bool_t fOwnIds; // Flag specifying if id-objects are owned by the TEveDigitSet. | |||
TEveChunkManager fPlex; // Container of digit data. | TEveChunkManager fPlex; // Container of digit data. | |||
DigitBase_t* fLastDigit; //! The last / current digit added to collection. | DigitBase_t* fLastDigit; //! The last / current digit added to collection. | |||
Int_t fLastIdx; //! The last / current idx added to c ollection. | Int_t fLastIdx; //! The last / current idx added to c ollection. | |||
Color_t fColor; // Color used for frame (or all digi s with single-color). | Color_t fColor; // Color used for frame (or all digi s with single-color). | |||
TEveFrameBox* fFrame; // Pointer to frame structure. | TEveFrameBox* fFrame; // Pointer to frame structure. | |||
TEveRGBAPalette* fPalette; // Pointer to signal-color palette. | TEveRGBAPalette* fPalette; // Pointer to signal-color palette. | |||
ERenderMode_e fRenderMode; // Render mode: as-is / line / fille d. | ERenderMode_e fRenderMode; // Render mode: as-is / line / fille d. | |||
Bool_t fDisableLigting; // Disable lighting for rendering. | Bool_t fDisableLighting;// Disable lighting for rendering. | |||
Bool_t fHistoButtons; // Show histogram buttons in object editor. | Bool_t fHistoButtons; // Show histogram buttons in object editor. | |||
Bool_t fEmitSignals; // Emit signals on secondary-select. | Bool_t fEmitSignals; // Emit signals on secondary-select. | |||
Callback_foo fCallbackFoo; //! Additional function to call on se condary-select. | Callback_foo fCallbackFoo; //! Additional function to call on se condary-select. | |||
TooltipCB_foo fTooltipCBFoo; //! Function providing highlight tool tips when always-sec-select is active. | TooltipCB_foo fTooltipCBFoo; //! Function providing highlight tool tips when always-sec-select is active. | |||
DigitBase_t* NewDigit(); | DigitBase_t* NewDigit(); | |||
void ReleaseIds(); | void ReleaseIds(); | |||
public: | public: | |||
TEveDigitSet(const char* n="TEveDigitSet", const char* t=""); | TEveDigitSet(const char* n="TEveDigitSet", const char* t=""); | |||
virtual ~TEveDigitSet(); | virtual ~TEveDigitSet(); | |||
virtual TObject* GetObject(const TEveException& /*eh*/="TEveDigitSet::Ge tObject ") const | virtual TObject* GetObject(const TEveException&) const | |||
{ const TObject* obj = this; return const_cast<TObject*>(obj); } | { const TObject* obj = this; return const_cast<TObject*>(obj); } | |||
void UseSingleColor(); | void UseSingleColor(); | |||
Bool_t GetAntiFlick() const { return fAntiFlick; } | Bool_t GetAntiFlick() const { return fAntiFlick; } | |||
void SetAntiFlick(Bool_t f) { fAntiFlick = f; } | void SetAntiFlick(Bool_t f) { fAntiFlick = f; } | |||
virtual void SetMainColor(Color_t color); | virtual void SetMainColor(Color_t color); | |||
virtual void UnSelected(); | virtual void UnSelected(); | |||
skipping to change at line 130 | skipping to change at line 130 | |||
void DigitId(TObject* id); | void DigitId(TObject* id); | |||
void DigitUserData(void* ud); | void DigitUserData(void* ud); | |||
void DigitId(Int_t n, TObject* id); | void DigitId(Int_t n, TObject* id); | |||
void DigitUserData(Int_t n, void* ud); | void DigitUserData(Int_t n, void* ud); | |||
DigitBase_t* GetDigit(Int_t n) const { return (DigitBase_t*) fPlex.Atom( n); } | DigitBase_t* GetDigit(Int_t n) const { return (DigitBase_t*) fPlex.Atom( n); } | |||
TObject* GetId(Int_t n) const; | TObject* GetId(Int_t n) const; | |||
void* GetUserData(Int_t n) const; | void* GetUserData(Int_t n) const; | |||
using TEveElement::GetUserData; | ||||
// -------------------------------- | // -------------------------------- | |||
// Implemented in subclasses: | // Implemented in subclasses: | |||
// virtual void ComputeBBox(); | // virtual void ComputeBBox(); | |||
virtual void Paint(Option_t* option=""); | virtual void Paint(Option_t* option=""); | |||
virtual void DigitSelected(Int_t idx); | virtual void DigitSelected(Int_t idx); | |||
virtual void SecSelected(TEveDigitSet* qs, Int_t idx); // *SIGNAL* | virtual void SecSelected(TEveDigitSet* qs, Int_t idx); // *SIGNAL* | |||
skipping to change at line 157 | skipping to change at line 158 | |||
Bool_t GetValueIsColor() const { return fValueIsColor; } | Bool_t GetValueIsColor() const { return fValueIsColor; } | |||
TEveRGBAPalette* GetPalette() const { return fPalette; } | TEveRGBAPalette* GetPalette() const { return fPalette; } | |||
void SetPalette(TEveRGBAPalette* p); | void SetPalette(TEveRGBAPalette* p); | |||
TEveRGBAPalette* AssertPalette(); | TEveRGBAPalette* AssertPalette(); | |||
ERenderMode_e GetRenderMode() const { return fRenderMode; } | ERenderMode_e GetRenderMode() const { return fRenderMode; } | |||
void SetRenderMode(ERenderMode_e rm) { fRenderMode = rm; } | void SetRenderMode(ERenderMode_e rm) { fRenderMode = rm; } | |||
Bool_t GetDisableLighting() const { return fDisableLighting; } | ||||
void SetDisableLighting(Bool_t l) { fDisableLighting = l; } | ||||
Bool_t GetHistoButtons() const { return fHistoButtons; } | Bool_t GetHistoButtons() const { return fHistoButtons; } | |||
void SetHistoButtons(Bool_t f) { fHistoButtons = f; } | void SetHistoButtons(Bool_t f) { fHistoButtons = f; } | |||
Bool_t GetEmitSignals() const { return fEmitSignals; } | Bool_t GetEmitSignals() const { return fEmitSignals; } | |||
void SetEmitSignals(Bool_t f) { fEmitSignals = f; } | void SetEmitSignals(Bool_t f) { fEmitSignals = f; } | |||
Callback_foo GetCallbackFoo() const { return fCallbackFoo; } | Callback_foo GetCallbackFoo() const { return fCallbackFoo; } | |||
void SetCallbackFoo(Callback_foo f) { fCallbackFoo = f; } | void SetCallbackFoo(Callback_foo f) { fCallbackFoo = f; } | |||
TooltipCB_foo GetTooltipCBFoo() const { return fTooltipCBFoo; } | TooltipCB_foo GetTooltipCBFoo() const { return fTooltipCBFoo; } | |||
End of changes. 7 change blocks. | ||||
4 lines changed or deleted | 8 lines changed or added | |||
TEveElement.h | TEveElement.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveElement.h 35074 2010-08-30 15:18:02Z matevz $ | // @(#)root/eve:$Id: TEveElement.h 36374 2010-10-19 17:50: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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 107 | skipping to change at line 107 | |||
Color_t *fMainColorPtr; // Pointer to main-color variab le. | Color_t *fMainColorPtr; // Pointer to main-color variab le. | |||
TEveTrans *fMainTrans; // Pointer to main transformati on matrix. | TEveTrans *fMainTrans; // Pointer to main transformati on matrix. | |||
sLTI_t fItems; //! Set of list-tree-items. | sLTI_t fItems; //! Set of list-tree-items. | |||
TRef fSource; // External object that is repr esented by this element. | TRef fSource; // External object that is repr esented by this element. | |||
void *fUserData; //! Externally assigned and cont rolled user data. | void *fUserData; //! Externally assigned and cont rolled user data. | |||
virtual void PreDeleteElement(); | virtual void PreDeleteElement(); | |||
virtual void RemoveElementsInternal(); | virtual void RemoveElementsInternal(); | |||
virtual void AnnihilateRecursively(); | ||||
static const char* ToString(Bool_t b); | static const char* ToString(Bool_t b); | |||
public: | public: | |||
TEveElement(); | TEveElement(); | |||
TEveElement(Color_t& main_color); | TEveElement(Color_t& main_color); | |||
TEveElement(const TEveElement& e); | TEveElement(const TEveElement& e); | |||
virtual ~TEveElement(); | virtual ~TEveElement(); | |||
virtual TEveElement* CloneElement() const; | virtual TEveElement* CloneElement() const; | |||
skipping to change at line 162 | skipping to change at line 163 | |||
virtual void CollectSceneParentsFromChildren(List_t& scenes, | virtual void CollectSceneParentsFromChildren(List_t& scenes, | |||
TEveElement* parent); | TEveElement* parent); | |||
List_i BeginParents() { return fParents.begin(); } | List_i BeginParents() { return fParents.begin(); } | |||
List_i EndParents() { return fParents.end(); } | List_i EndParents() { return fParents.end(); } | |||
List_ci BeginParents() const { return fParents.begin(); } | List_ci BeginParents() const { return fParents.begin(); } | |||
List_ci EndParents() const { return fParents.end(); } | List_ci EndParents() const { return fParents.end(); } | |||
Int_t NumParents() const { return fParents.size(); } | Int_t NumParents() const { return fParents.size(); } | |||
Bool_t HasParents() const { return !fParents.empty(); } | Bool_t HasParents() const { return !fParents.empty(); } | |||
const List_t& RefChildren() const { return fChildren; } | ||||
List_i BeginChildren() { return fChildren.begin(); } | List_i BeginChildren() { return fChildren.begin(); } | |||
List_i EndChildren() { return fChildren.end(); } | List_i EndChildren() { return fChildren.end(); } | |||
List_ci BeginChildren() const { return fChildren.begin(); } | List_ci BeginChildren() const { return fChildren.begin(); } | |||
List_ci EndChildren() const { return fChildren.end(); } | List_ci EndChildren() const { return fChildren.end(); } | |||
Int_t NumChildren() const { return fNumChildren; } | Int_t NumChildren() const { return fNumChildren; } | |||
Bool_t HasChildren() const { return fNumChildren != 0; } | Bool_t HasChildren() const { return fNumChildren != 0; } | |||
Bool_t HasChild(TEveElement* el); | Bool_t HasChild(TEveElement* el); | |||
TEveElement* FindChild(const TString& name, const TClass* cls=0); | TEveElement* FindChild(const TString& name, const TClass* cls=0); | |||
TEveElement* FindChild(TPRegexp& regexp, const TClass* cls=0); | TEveElement* FindChild(TPRegexp& regexp, const TClass* cls=0); | |||
skipping to change at line 194 | skipping to change at line 196 | |||
void IncDenyDestroy(); | void IncDenyDestroy(); | |||
void DecDenyDestroy(); | void DecDenyDestroy(); | |||
Int_t GetParentIgnoreCnt() const; | Int_t GetParentIgnoreCnt() const; | |||
void IncParentIgnoreCnt(); | void IncParentIgnoreCnt(); | |||
void DecParentIgnoreCnt(); | void DecParentIgnoreCnt(); | |||
virtual void PadPaint(Option_t* option); | virtual void PadPaint(Option_t* option); | |||
virtual void PaintStandard(TObject* id); | virtual void PaintStandard(TObject* id); | |||
virtual TObject* GetObject (const TEveException& eh="TEveElement::G | virtual TObject* GetObject (const TEveException& eh) const; | |||
etObject ") const; | virtual TObject* GetEditorObject(const TEveException& eh) const { return | |||
virtual TObject* GetEditorObject(const TEveException& eh="TEveElement::G | GetObject(eh); } | |||
etEditorObject ") const { return GetObject(eh); } | virtual TObject* GetRenderObject(const TEveException& eh) const { return | |||
virtual TObject* GetRenderObject(const TEveException& eh="TEveElement::G | GetObject(eh); } | |||
etRenderObject ") const { return GetObject(eh); } | ||||
// -------------------------------- | // -------------------------------- | |||
virtual void ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* paren t); | virtual void ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* paren t); | |||
virtual void DestroyListSubTree(TGListTree* ltree, TGListTreeItem* paren t); | virtual void DestroyListSubTree(TGListTree* ltree, TGListTreeItem* paren t); | |||
virtual TGListTreeItem* AddIntoListTree(TGListTree* ltree, | virtual TGListTreeItem* AddIntoListTree(TGListTree* ltree, | |||
TGListTreeItem* parent_lti); | TGListTreeItem* parent_lti); | |||
virtual TGListTreeItem* AddIntoListTree(TGListTree* ltree, | virtual TGListTreeItem* AddIntoListTree(TGListTree* ltree, | |||
TEveElement* parent); | TEveElement* parent); | |||
skipping to change at line 237 | skipping to change at line 239 | |||
void ExportSourceObjectToCINT(char* var_name) const; // *MENU* | void ExportSourceObjectToCINT(char* var_name) const; // *MENU* | |||
virtual Bool_t AcceptElement(TEveElement* el); | virtual Bool_t AcceptElement(TEveElement* el); | |||
virtual void AddElement(TEveElement* el); | virtual void AddElement(TEveElement* el); | |||
virtual void RemoveElement(TEveElement* el); | virtual void RemoveElement(TEveElement* el); | |||
virtual void RemoveElementLocal(TEveElement* el); | virtual void RemoveElementLocal(TEveElement* el); | |||
virtual void RemoveElements(); | virtual void RemoveElements(); | |||
virtual void RemoveElementsLocal(); | virtual void RemoveElementsLocal(); | |||
virtual void AnnihilateElements(); | ||||
virtual void Annihilate(); | ||||
virtual void ProjectChild(TEveElement* el, Bool_t same_depth=kTRUE); | virtual void ProjectChild(TEveElement* el, Bool_t same_depth=kTRUE); | |||
virtual void ProjectAllChildren(Bool_t same_depth=kTRUE); | virtual void ProjectAllChildren(Bool_t same_depth=kTRUE); | |||
virtual void Destroy(); // *MENU* | virtual void Destroy(); // *MENU* | |||
virtual void DestroyOrWarn(); | virtual void DestroyOrWarn(); | |||
virtual void DestroyElements(); // *MENU* | virtual void DestroyElements(); // *MENU* | |||
virtual Bool_t HandleElementPaste(TEveElement* el); | virtual Bool_t HandleElementPaste(TEveElement* el); | |||
virtual void ElementChanged(Bool_t update_scenes=kTRUE, Bool_t redraw= kFALSE); | virtual void ElementChanged(Bool_t update_scenes=kTRUE, Bool_t redraw= kFALSE); | |||
skipping to change at line 320 | skipping to change at line 325 | |||
enum ECompoundSelectionColorBits | enum ECompoundSelectionColorBits | |||
{ | { | |||
kCSCBImplySelectAllChildren = BIT(0), // compound will sele ct all children | kCSCBImplySelectAllChildren = BIT(0), // compound will sele ct all children | |||
kCSCBTakeAnyParentAsMaster = BIT(1), // element will take any compound parent as master | kCSCBTakeAnyParentAsMaster = BIT(1), // element will take any compound parent as master | |||
kCSCBApplyMainColorToAllChildren = BIT(2), // compound will appl y color change to all children | kCSCBApplyMainColorToAllChildren = BIT(2), // compound will appl y color change to all children | |||
kCSCBApplyMainColorToMatchingChildren = BIT(3), // compound will appl y color change to all children with matching color | kCSCBApplyMainColorToMatchingChildren = BIT(3), // compound will appl y color change to all children with matching color | |||
kCSCBApplyMainTransparencyToAllChildren = BIT(4), // compound wi ll apply transparency change to all children | kCSCBApplyMainTransparencyToAllChildren = BIT(4), // compound wi ll apply transparency change to all children | |||
kCSCBApplyMainTransparencyToMatchingChildren = BIT(5) // compound wi ll apply transparency change to all children with matching color | kCSCBApplyMainTransparencyToMatchingChildren = BIT(5) // compound wi ll apply transparency change to all children with matching color | |||
}; | }; | |||
enum EDestruct | ||||
{ | ||||
kNone, | ||||
kStandard, | ||||
kAnnihilate | ||||
}; | ||||
UChar_t fCSCBits; | UChar_t fCSCBits; | |||
public: | public: | |||
typedef void (TEveElement::* Select_foo) (Bool_t); | typedef void (TEveElement::* Select_foo) (Bool_t); | |||
typedef void (TEveElement::* ImplySelect_foo) (); | typedef void (TEveElement::* ImplySelect_foo) (); | |||
Bool_t IsPickable() const { return fPickable; } | Bool_t IsPickable() const { return fPickable; } | |||
void SetPickable(Bool_t p) { fPickable = p; } | void SetPickable(Bool_t p) { fPickable = p; } | |||
virtual TEveElement* ForwardSelection(); | virtual TEveElement* ForwardSelection(); | |||
skipping to change at line 377 | skipping to change at line 389 | |||
kCBObjProps = BIT(2), // Object changed, requires dropping its display-lists. | kCBObjProps = BIT(2), // Object changed, requires dropping its display-lists. | |||
kCBVisibility = BIT(3) // Rendering of self/children changed. | kCBVisibility = BIT(3) // Rendering of self/children changed. | |||
// kCBElementAdded = BIT(), // Element was added to a new parent. | // kCBElementAdded = BIT(), // Element was added to a new parent. | |||
// kCBElementRemoved = BIT() // Element was removed from a parent. | // kCBElementRemoved = BIT() // Element was removed from a parent. | |||
// Deletions are handled in a special way in TEveManager::PreDeleteEl ement(). | // Deletions are handled in a special way in TEveManager::PreDeleteEl ement(). | |||
}; | }; | |||
protected: | protected: | |||
UChar_t fChangeBits; //! | UChar_t fChangeBits; //! | |||
Bool_t fDestructing; //! | Char_t fDestructing; //! | |||
public: | public: | |||
void StampColorSelection() { AddStamp(kCBColorSelection); } | void StampColorSelection() { AddStamp(kCBColorSelection); } | |||
void StampTransBBox() { AddStamp(kCBTransBBox); } | void StampTransBBox() { AddStamp(kCBTransBBox); } | |||
void StampObjProps() { AddStamp(kCBObjProps); } | void StampObjProps() { AddStamp(kCBObjProps); } | |||
void StampVisibility() { AddStamp(kCBVisibility); } | void StampVisibility() { AddStamp(kCBVisibility); } | |||
// void StampElementAdded() { AddStamp(kCBElementAdded); } | // void StampElementAdded() { AddStamp(kCBElementAdded); } | |||
// void StampElementRemoved() { AddStamp(kCBElementRemoved); } | // void StampElementRemoved() { AddStamp(kCBElementRemoved); } | |||
virtual void AddStamp(UChar_t bits); | virtual void AddStamp(UChar_t bits); | |||
virtual void ClearStamps() { fChangeBits = 0; } | virtual void ClearStamps() { fChangeBits = 0; } | |||
End of changes. 7 change blocks. | ||||
8 lines changed or deleted | 19 lines changed or added | |||
TEveGeoNode.h | TEveGeoNode.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveGeoNode.h 35074 2010-08-30 15:18:02Z matevz $ | // @(#)root/eve:$Id: TEveGeoNode.h 36373 2010-10-19 17:43:35Z 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 49 | skipping to change at line 49 | |||
protected: | protected: | |||
TGeoNode *fNode; | TGeoNode *fNode; | |||
TEveGeoShapeExtract* DumpShapeTree(TEveGeoNode* geon, TEveGeoShapeExtrac t* parent=0, Bool_t leafs_only=kFALSE); | TEveGeoShapeExtract* DumpShapeTree(TEveGeoNode* geon, TEveGeoShapeExtrac t* parent=0, Bool_t leafs_only=kFALSE); | |||
static Int_t fgCSGExportNSeg; //! | static Int_t fgCSGExportNSeg; //! | |||
static std::list<TGeoShape*> fgTemporaryStore; //! | static std::list<TGeoShape*> fgTemporaryStore; //! | |||
public: | public: | |||
TEveGeoNode(TGeoNode* node); | TEveGeoNode(TGeoNode* node); | |||
virtual TObject* GetObject(const TEveException& /*eh*/="TEveElementList: :GetObject ") const | virtual TObject* GetObject(const TEveException&) const | |||
{ const TObject* obj = this; return const_cast<TObject*>(obj); } | { const TObject* obj = this; return const_cast<TObject*>(obj); } | |||
virtual const char* GetName() const; | virtual const char* GetName() const; | |||
virtual const char* GetTitle() const; | virtual const char* GetTitle() const; | |||
virtual const char* GetElementName() const; | virtual const char* GetElementName() const; | |||
virtual const char* GetElementTitle() const; | virtual const char* GetElementTitle() const; | |||
TGeoNode* GetNode() const { return fNode; } | TGeoNode* GetNode() const { return fNode; } | |||
virtual void ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* par ent); | virtual void ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* par ent); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TEveGeoPolyShape.h | TEveGeoPolyShape.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveGeoPolyShape.h 28295 2009-04-20 20:26:34Z matevz $ | // @(#)root/eve:$Id: TEveGeoPolyShape.h 37192 2010-12-02 15:54:26Z 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_TEveGeoPolyShape | #ifndef ROOT_TEveGeoPolyShape | |||
#define ROOT_TEveGeoPolyShape | #define ROOT_TEveGeoPolyShape | |||
#include "TGeoBBox.h" | #include "TGeoBBox.h" | |||
#include "TAttBBox.h" | ||||
class TBuffer3D; | class TBuffer3D; | |||
class TGLFaceSet; | class TGLFaceSet; | |||
class TGeoCompositeShape; | ||||
class TEveGeoPolyShape : public TGeoBBox | class TEveGeoPolyShape : public TGeoBBox | |||
{ | { | |||
friend class TEveGeoPolyShapeGL; | friend class TEveGeoPolyShapeGL; | |||
private: | private: | |||
TEveGeoPolyShape(const TEveGeoPolyShape&); // Not implemented | TEveGeoPolyShape(const TEveGeoPolyShape&); // Not implemented | |||
TEveGeoPolyShape& operator=(const TEveGeoPolyShape&); // Not implemented | TEveGeoPolyShape& operator=(const TEveGeoPolyShape&); // Not implemented | |||
protected: | protected: | |||
std::vector<Double_t> fVertices; | std::vector<Double_t> fVertices; | |||
std::vector<Int_t> fPolyDesc; | std::vector<Int_t> fPolyDesc; | |||
UInt_t fNbPols; | UInt_t fNbPols; | |||
virtual void FillBuffer3D(TBuffer3D& buffer, Int_t reqSections, Bool_t l ocalFrame) const; | virtual void FillBuffer3D(TBuffer3D& buffer, Int_t reqSections, Bool_t l ocalFrame) const; | |||
struct Edge_t | ||||
{ | ||||
Int_t fI, fJ; | ||||
Edge_t(Int_t i, Int_t j) | ||||
{ | ||||
if (i <= j) { fI = i; fJ = j; } | ||||
else { fI = j; fJ = i; } | ||||
} | ||||
bool operator<(const Edge_t& e) const | ||||
{ | ||||
if (fI == e.fI) | ||||
return fJ < e.fJ; | ||||
else | ||||
return fI < e.fI; | ||||
} | ||||
}; | ||||
public: | public: | |||
TEveGeoPolyShape(); | TEveGeoPolyShape(); | |||
virtual ~TEveGeoPolyShape() {} | virtual ~TEveGeoPolyShape() {} | |||
static TEveGeoPolyShape* Construct(TGeoCompositeShape *cshp, Int_t n_seg | ||||
); | ||||
void SetFromFaceSet(TGLFaceSet* fs); | void SetFromFaceSet(TGLFaceSet* fs); | |||
virtual const TBuffer3D& GetBuffer3D(Int_t reqSections, Bool_t localFram e) const; | virtual const TBuffer3D& GetBuffer3D(Int_t reqSections, Bool_t localFram e) const; | |||
virtual TBuffer3D* MakeBuffer3D() const; | virtual TBuffer3D* MakeBuffer3D() const; | |||
ClassDef(TEveGeoPolyShape, 1); // A shape with arbitrary tesselation for visualization of CSG shapes. | ClassDef(TEveGeoPolyShape, 1); // A shape with arbitrary tesselation for visualization of CSG shapes. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 5 change blocks. | ||||
2 lines changed or deleted | 23 lines changed or added | |||
TEveGeoShape.h | TEveGeoShape.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveGeoShape.h 35074 2010-08-30 15:18:02Z matevz $ | // @(#)root/eve:$Id: TEveGeoShape.h 37192 2010-12-02 15:54:26Z 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_TEveGeoShape | #ifndef ROOT_TEveGeoShape | |||
#define ROOT_TEveGeoShape | #define ROOT_TEveGeoShape | |||
#include "TEveElement.h" | #include "TEveShape.h" | |||
#include "TEveProjectionBases.h" | ||||
#include "TAttBBox.h" | ||||
class TGeoShape; | class TGeoShape; | |||
class TGeoCompositeShape; | ||||
class TEveGeoShapeExtract; | class TEveGeoShapeExtract; | |||
class TBuffer3D; | class TBuffer3D; | |||
class TEveGeoShape : public TEveElement, | class TEveGeoShape : public TEveShape | |||
public TNamed, | ||||
public TEveProjectable | ||||
{ | { | |||
private: | private: | |||
TEveGeoShape(const TEveGeoShape&); // Not implemented | TEveGeoShape(const TEveGeoShape&); // Not implemented | |||
TEveGeoShape& operator=(const TEveGeoShape&); // Not implemented | TEveGeoShape& operator=(const TEveGeoShape&); // Not implemented | |||
protected: | protected: | |||
Color_t fColor; | Int_t fNSegments; | |||
Int_t fNSegments; | TGeoShape *fShape; | |||
TGeoShape* fShape; | TGeoCompositeShape *fCompositeShape; //! Temporary holder (if passed sha | |||
pe is composite shape). | ||||
static TGeoManager* fgGeoMangeur; | static TGeoManager *fgGeoMangeur; | |||
static TEveGeoShape* SubImportShapeExtract(TEveGeoShapeExtract* gse, TEv eElement* parent); | static TEveGeoShape* SubImportShapeExtract(TEveGeoShapeExtract* gse, TEv eElement* parent); | |||
TEveGeoShapeExtract* DumpShapeTree(TEveGeoShape* geon, TEveGeoShapeExtra ct* parent=0); | TEveGeoShapeExtract* DumpShapeTree(TEveGeoShape* geon, TEveGeoShapeExtra ct* parent=0); | |||
TGeoShape* MakePolyShape(); | ||||
public: | public: | |||
TEveGeoShape(const char* name="TEveGeoShape", const char* title=0); | TEveGeoShape(const char* name="TEveGeoShape", const char* title=0); | |||
virtual ~TEveGeoShape(); | virtual ~TEveGeoShape(); | |||
virtual TObject* GetObject(const TEveException& /*eh*/="TEveElementList: :GetObject ") const | virtual TObject* GetObject(const TEveException&) const | |||
{ const TObject* obj = this; return const_cast<TObject*>(obj); } | { const TObject* obj = this; return const_cast<TObject*>(obj); } | |||
Color_t GetColor() const { return fColor; } | ||||
Int_t GetNSegments() const { return fNSegments; } | Int_t GetNSegments() const { return fNSegments; } | |||
void SetNSegments(Int_t s) { fNSegments = s; } | TGeoShape* GetShape() const { return fShape; } | |||
TGeoShape* GetShape() { return fShape; } | void SetNSegments(Int_t s); | |||
void SetShape(TGeoShape* s); | void SetShape(TGeoShape* s); | |||
virtual void ComputeBBox(); | ||||
virtual void Paint(Option_t* option=""); | virtual void Paint(Option_t* option=""); | |||
void Save(const char* file, const char* name="Extract"); | void Save(const char* file, const char* name="Extract"); | |||
void SaveExtract(const char* file, const char* name); | void SaveExtract(const char* file, const char* name); | |||
void WriteExtract(const char* name); | void WriteExtract(const char* name); | |||
static TEveGeoShape* ImportShapeExtract(TEveGeoShapeExtract* gse, TEveEl ement* parent=0); | static TEveGeoShape* ImportShapeExtract(TEveGeoShapeExtract* gse, TEveEl ement* parent=0); | |||
// GeoProjectable | // GeoProjectable | |||
virtual TBuffer3D* MakeBuffer3D(); | virtual TBuffer3D* MakeBuffer3D(); | |||
virtual TClass* ProjectedClass(const TEveProjection* p) const; | virtual TClass* ProjectedClass(const TEveProjection* p) const; | |||
static TGeoManager* GetGeoMangeur(); | static TGeoManager* GetGeoMangeur(); | |||
ClassDef(TEveGeoShape, 1); // Wrapper for TGeoShape with absolute positi oning and color attributes allowing display of extracted TGeoShape's (witho ut an active TGeoManager) and simplified geometries (needed for NLT project ions). | ClassDef(TEveGeoShape, 2); // Wrapper for TGeoShape with absolute positi oning and color attributes allowing display of extracted TGeoShape's (witho ut an active TGeoManager) and simplified geometries (needed for NLT project ions). | |||
}; | }; | |||
//------------------------------------------------------------------------- ----- | //------------------------------------------------------------------------- ----- | |||
class TEveGeoShapeProjected : public TEveElementList, | class TEveGeoShapeProjected : public TEveShape, | |||
public TEveProjected, | public TEveProjected | |||
public TAttBBox | ||||
{ | { | |||
private: | private: | |||
TEveGeoShapeProjected(const TEveGeoShapeProjected&); // Not i mplemented | TEveGeoShapeProjected(const TEveGeoShapeProjected&); // Not i mplemented | |||
TEveGeoShapeProjected& operator=(const TEveGeoShapeProjected&); // Not i mplemented | TEveGeoShapeProjected& operator=(const TEveGeoShapeProjected&); // Not i mplemented | |||
protected: | protected: | |||
TBuffer3D* fBuff; | TBuffer3D *fBuff; | |||
virtual void SetDepthLocal(Float_t d); | virtual void SetDepthLocal(Float_t d); | |||
public: | public: | |||
TEveGeoShapeProjected(); | TEveGeoShapeProjected(); | |||
virtual ~TEveGeoShapeProjected() {} | virtual ~TEveGeoShapeProjected() {} | |||
virtual Bool_t CanEditMainTransparency() const { return kTRUE; } | ||||
virtual void SetProjection(TEveProjectionManager* proj, TEveProjectable* model); | virtual void SetProjection(TEveProjectionManager* proj, TEveProjectable* model); | |||
virtual void UpdateProjection(); | virtual void UpdateProjection(); | |||
virtual TEveElement* GetProjectedAsElement() { return this; } | virtual TEveElement* GetProjectedAsElement() { return this; } | |||
virtual void ComputeBBox(); | virtual void ComputeBBox(); | |||
virtual void Paint(Option_t* option = ""); | ||||
ClassDef(TEveGeoShapeProjected, 0); | ClassDef(TEveGeoShapeProjected, 0); | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 16 change blocks. | ||||
23 lines changed or deleted | 19 lines changed or added | |||
TEveGeoShapeExtract.h | TEveGeoShapeExtract.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveGeoShapeExtract.h 27157 2009-01-15 14:05:12Z brun $ | // @(#)root/eve:$Id: TEveGeoShapeExtract.h 36892 2010-11-24 10:24:35Z 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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 28 | skipping to change at line 28 | |||
class TGeoShape; | class TGeoShape; | |||
class TEveGeoShapeExtract : public TNamed | class TEveGeoShapeExtract : public TNamed | |||
{ | { | |||
TEveGeoShapeExtract(const TEveGeoShapeExtract&); // Not imple mented | TEveGeoShapeExtract(const TEveGeoShapeExtract&); // Not imple mented | |||
TEveGeoShapeExtract& operator=(const TEveGeoShapeExtract&); // Not imple mented | TEveGeoShapeExtract& operator=(const TEveGeoShapeExtract&); // Not imple mented | |||
protected: | protected: | |||
Double_t fTrans[16]; // Transformation matrix, 4x4 column major. | Double_t fTrans[16]; // Transformation matrix, 4x4 column major. | |||
Float_t fRGBA[4]; // RGBA color. | Float_t fRGBA[4]; // RGBA color. | |||
Float_t fRGBALine[4]; // RGBA color. | ||||
Bool_t fRnrSelf; // Render this object. | Bool_t fRnrSelf; // Render this object. | |||
Bool_t fRnrElements; // Render children of this object. | Bool_t fRnrElements; // Render children of this object. | |||
Bool_t fRnrFrame; // Also draw shape outline. | ||||
Bool_t fMiniFrame; // Minimize shape outline when drawing. | ||||
TGeoShape* fShape; // Shape to be drawn for this object. | TGeoShape* fShape; // Shape to be drawn for this object. | |||
TList* fElements; // Children elements. | TList* fElements; // Children elements. | |||
public: | public: | |||
TEveGeoShapeExtract(const char* n="TEveGeoShapeExtract", const char* t=0 ); | TEveGeoShapeExtract(const char* n="TEveGeoShapeExtract", const char* t=0 ); | |||
~TEveGeoShapeExtract(); | ~TEveGeoShapeExtract(); | |||
Bool_t HasElements(); | Bool_t HasElements(); | |||
void AddElement(TEveGeoShapeExtract* gse); | void AddElement(TEveGeoShapeExtract* gse); | |||
void SetTrans(const Double_t arr[16]); | void SetTrans(const Double_t arr[16]); | |||
void SetRGBA (const Float_t arr[4]); | void SetRGBA (const Float_t arr[4]); | |||
void SetRGBALine(const Float_t arr[4]); | ||||
void SetRnrSelf(Bool_t r) { fRnrSelf = r; } | void SetRnrSelf(Bool_t r) { fRnrSelf = r; } | |||
void SetRnrElements(Bool_t r) { fRnrElements = r; } | void SetRnrElements(Bool_t r) { fRnrElements = r; } | |||
void SetRnrFrame(Bool_t r) { fRnrFrame = r; } | ||||
void SetMiniFrame(Bool_t r) { fMiniFrame = r; } | ||||
void SetShape(TGeoShape* s) { fShape = s; } | void SetShape(TGeoShape* s) { fShape = s; } | |||
void SetElements(TList* e) { fElements = e; } | void SetElements(TList* e) { fElements = e; } | |||
Double_t* GetTrans() { return fTrans; } | Double_t* GetTrans() { return fTrans; } | |||
Float_t* GetRGBA() { return fRGBA; } | Float_t* GetRGBA() { return fRGBA; } | |||
Float_t* GetRGBALine() { return fRGBALine; } | ||||
Bool_t GetRnrSelf() { return fRnrSelf; } | Bool_t GetRnrSelf() { return fRnrSelf; } | |||
Bool_t GetRnrElements() { return fRnrElements; } | Bool_t GetRnrElements() { return fRnrElements; } | |||
Bool_t GetRnrFrame() { return fRnrFrame; } | ||||
Bool_t GetMiniFrame() { return fMiniFrame; } | ||||
TGeoShape* GetShape() { return fShape; } | TGeoShape* GetShape() { return fShape; } | |||
TList* GetElements() { return fElements; } | TList* GetElements() { return fElements; } | |||
ClassDef(TEveGeoShapeExtract, 1); // Globally positioned TGeoShape with rendering attributes and an optional list of daughter shape-extracts. | ClassDef(TEveGeoShapeExtract, 2); // Globally positioned TGeoShape with rendering attributes and an optional list of daughter shape-extracts. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 8 change blocks. | ||||
2 lines changed or deleted | 11 lines changed or added | |||
TEvePointSet.h | TEvePointSet.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEvePointSet.h 35074 2010-08-30 15:18:02Z matevz $ | // @(#)root/eve:$Id: TEvePointSet.h 36373 2010-10-19 17:43:35Z 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 | |||
Int_t fIntIdsPerPoint; // Number of integer indices assigned to each point. | Int_t fIntIdsPerPoint; // Number of integer indices assigned to each point. | |||
void AssertIntIdsSize(); | void AssertIntIdsSize(); | |||
public: | public: | |||
TEvePointSet(Int_t n_points=0, ETreeVarType_e tv_type=kTVT_XYZ); | TEvePointSet(Int_t n_points=0, ETreeVarType_e tv_type=kTVT_XYZ); | |||
TEvePointSet(const char* name, Int_t n_points=0, ETreeVarType_e tv_type= kTVT_XYZ); | TEvePointSet(const char* name, Int_t n_points=0, ETreeVarType_e tv_type= kTVT_XYZ); | |||
TEvePointSet(const TEvePointSet& e); | TEvePointSet(const TEvePointSet& e); | |||
virtual ~TEvePointSet(); | virtual ~TEvePointSet(); | |||
virtual TObject* GetObject(const TEveException& /*eh*/="TEvePointSet::Ge tObject ") const | virtual TObject* GetObject(const TEveException&) const | |||
{ const TObject* obj = this; return const_cast<TObject*>(obj); } | { const TObject* obj = this; return const_cast<TObject*>(obj); } | |||
virtual TEvePointSet* CloneElement() const { return new TEvePointSet(*th is); } | virtual TEvePointSet* CloneElement() const { return new TEvePointSet(*th is); } | |||
virtual void ClonePoints(const TEvePointSet& e); | virtual void ClonePoints(const TEvePointSet& e); | |||
void Reset(Int_t n_points=0, Int_t n_int_ids=0); | void Reset(Int_t n_points=0, Int_t n_int_ids=0); | |||
Int_t GrowFor(Int_t n_points); | Int_t GrowFor(Int_t n_points); | |||
virtual const char* GetTitle() const { return fTitle; } | virtual const char* GetTitle() const { return fTitle; } | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TEvePolygonSetProjected.h | TEvePolygonSetProjected.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEvePolygonSetProjected.h 35074 2010-08-30 15:18:02Z m atevz $ | // @(#)root/eve:$Id: TEvePolygonSetProjected.h 37192 2010-12-02 15:54:26Z 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 "TEveVector.h" | #include "TEveVector.h" | |||
#include "TEveShape.h" | #include "TEveShape.h" | |||
#include "TEveProjectionBases.h" | ||||
class TBuffer3D; | class TBuffer3D; | |||
class TEvePolygonSetProjected : public TEveShape, | class TEvePolygonSetProjected : public TEveShape, | |||
public TEveProjected | public TEveProjected | |||
{ | { | |||
friend class TEvePolygonSetProjectedGL; | friend class TEvePolygonSetProjectedGL; | |||
friend class TEvePolygonSetProjectedEditor; | friend class TEvePolygonSetProjectedEditor; | |||
private: | private: | |||
skipping to change at line 44 | skipping to change at line 43 | |||
Int_t fNPnts; // number of points | Int_t fNPnts; // number of points | |||
Int_t* fPnts; // point indices | Int_t* fPnts; // point indices | |||
Polygon_t() : fNPnts(0), fPnts(0) {} | Polygon_t() : fNPnts(0), fPnts(0) {} | |||
virtual ~Polygon_t() { delete [] fPnts; fNPnts=0; fPnts=0; } | virtual ~Polygon_t() { delete [] fPnts; fNPnts=0; fPnts=0; } | |||
Polygon_t& operator=(const Polygon_t& x) | Polygon_t& operator=(const Polygon_t& x) | |||
{ fNPnts = x.fNPnts; fPnts = x.fPnts; return *this; } | { fNPnts = x.fNPnts; fPnts = x.fPnts; return *this; } | |||
Int_t FindPoint(Int_t pi) | Int_t FindPoint(Int_t pi) | |||
{ for (Int_t i=0; i<fNPnts; ++i) if (fPnts[i] == pi) return i; return | { | |||
-1; } | for (Int_t i=0; i<fNPnts; ++i) { | |||
if (fPnts[i] == pi) return i; | ||||
} | ||||
return -1; | ||||
} | ||||
}; | }; | |||
typedef std::list<Polygon_t> vpPolygon_t; | typedef std::list<Polygon_t> vpPolygon_t; | |||
typedef vpPolygon_t::iterator vpPolygon_i; | typedef vpPolygon_t::iterator vpPolygon_i; | |||
typedef vpPolygon_t::const_iterator vpPolygon_ci; | typedef vpPolygon_t::const_iterator vpPolygon_ci; | |||
private: | private: | |||
TBuffer3D* fBuff; // buffer of projectable object | TBuffer3D* fBuff; // buffer of projectable object | |||
Bool_t IsFirstIdxHead(Int_t s0, Int_t s1); | Bool_t IsFirstIdxHead(Int_t s0, Int_t s1); | |||
skipping to change at line 71 | skipping to change at line 75 | |||
protected: | protected: | |||
vpPolygon_t fPols; // polygons | vpPolygon_t fPols; // polygons | |||
vpPolygon_t fPolsBS; // polygons build from TBuffer3D segments | vpPolygon_t fPolsBS; // polygons build from TBuffer3D segments | |||
vpPolygon_t fPolsBP; // polygons build from TBuffer3D polygons | vpPolygon_t fPolsBP; // polygons build from TBuffer3D polygons | |||
Int_t fNPnts; // number of reduced and projected points | Int_t fNPnts; // number of reduced and projected points | |||
TEveVector* fPnts; // reduced and projected points | TEveVector* fPnts; // reduced and projected points | |||
virtual void SetDepthLocal(Float_t d); | virtual void SetDepthLocal(Float_t d); | |||
Float_t PolygonSurfaceXY(const Polygon_t& poly) const; | ||||
public: | public: | |||
TEvePolygonSetProjected(const char* n="TEvePolygonSetProjected", const c har* t=""); | TEvePolygonSetProjected(const char* n="TEvePolygonSetProjected", const c har* t=""); | |||
virtual ~TEvePolygonSetProjected(); | virtual ~TEvePolygonSetProjected(); | |||
virtual void ComputeBBox(); | virtual void ComputeBBox(); | |||
virtual void SetProjection(TEveProjectionManager* mng, TEveProjectabl e* model); | virtual void SetProjection(TEveProjectionManager* mng, TEveProjectabl e* model); | |||
virtual void UpdateProjection(); | virtual void UpdateProjection(); | |||
virtual TEveElement* GetProjectedAsElement() { return this; } | virtual TEveElement* GetProjectedAsElement() { return this; } | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 9 lines changed or added | |||
TEvePolygonSetProjectedGL.h | TEvePolygonSetProjectedGL.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEvePolygonSetProjectedGL.h 33124 2010-04-21 20:04:42Z matevz $ | // @(#)root/eve:$Id: TEvePolygonSetProjectedGL.h 36853 2010-11-22 19:48:34Z 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_TEvePolygonSetProjectedGL | #ifndef ROOT_TEvePolygonSetProjectedGL | |||
#define ROOT_TEvePolygonSetProjectedGL | #define ROOT_TEvePolygonSetProjectedGL | |||
#include "TGLObject.h" | #include "TGLObject.h" | |||
class TEvePolygonSetProjected; | ||||
class TEvePolygonSetProjectedGL : public TGLObject | class TEvePolygonSetProjectedGL : public TGLObject | |||
{ | { | |||
protected: | ||||
struct Edge_t | ||||
{ | ||||
Int_t fI, fJ; | ||||
Edge_t(Int_t i, Int_t j) | ||||
{ | ||||
if (i <= j) { fI = i; fJ = j; } | ||||
else { fI = j; fJ = i; } | ||||
} | ||||
bool operator<(const Edge_t& e) const | ||||
{ | ||||
if (fI == e.fI) | ||||
return fJ < e.fJ; | ||||
else | ||||
return fI < e.fI; | ||||
} | ||||
}; | ||||
TEvePolygonSetProjected *fM; | ||||
public: | public: | |||
TEvePolygonSetProjectedGL(); | TEvePolygonSetProjectedGL(); | |||
virtual ~TEvePolygonSetProjectedGL() {} | virtual ~TEvePolygonSetProjectedGL() {} | |||
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(); | |||
virtual void Draw(TGLRnrCtx& rnrCtx) const; | virtual void Draw(TGLRnrCtx& rnrCtx) const; | |||
virtual void DirectDraw(TGLRnrCtx& rnrCtx) const; | virtual void DirectDraw(TGLRnrCtx& rnrCtx) const; | |||
virtual void DrawHighlight(TGLRnrCtx& rnrCtx, const TGLPhysicalShape* pshp, Int_t lvl=-1) const; | virtual void DrawHighlight(TGLRnrCtx& rnrCtx, const TGLPhysicalShape* pshp, Int_t lvl=-1) const; | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 24 lines changed or added | |||
TEveProjectionBases.h | TEveProjectionBases.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveProjectionBases.h 35074 2010-08-30 15:18:02Z matev z $ | // @(#)root/eve:$Id: TEveProjectionBases.h 36373 2010-10-19 17:43:35Z 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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 61 | skipping to change at line 61 | |||
virtual TClass* ProjectedClass(const TEveProjection* p) const = 0; | virtual TClass* ProjectedClass(const TEveProjection* p) const = 0; | |||
virtual Bool_t HasProjecteds() const { return ! fProjectedList.empty(); } | virtual Bool_t HasProjecteds() const { return ! fProjectedList.empty(); } | |||
ProjList_i BeginProjecteds() { return fProjectedList.begin(); } | ProjList_i BeginProjecteds() { return fProjectedList.begin(); } | |||
ProjList_i EndProjecteds() { return fProjectedList.end(); } | ProjList_i EndProjecteds() { return fProjectedList.end(); } | |||
virtual void AddProjected(TEveProjected* p) { fProjectedList.push_bac k(p); } | virtual void AddProjected(TEveProjected* p) { fProjectedList.push_bac k(p); } | |||
virtual void RemoveProjected(TEveProjected* p) { fProjectedList.remove(p ); } | virtual void RemoveProjected(TEveProjected* p) { fProjectedList.remove(p ); } | |||
virtual void AnnihilateProjecteds(); | ||||
virtual void ClearProjectedList(); | ||||
virtual void AddProjectedsToSet(std::set<TEveElement*>& set); | virtual void AddProjectedsToSet(std::set<TEveElement*>& set); | |||
virtual void PropagateVizParams(TEveElement* el=0); | virtual void PropagateVizParams(TEveElement* el=0); | |||
virtual void PropagateRenderState(Bool_t rnr_self, Bool_t rnr_children); | virtual void PropagateRenderState(Bool_t rnr_self, Bool_t rnr_children); | |||
virtual void PropagateMainColor(Color_t color, Color_t old_color); | virtual void PropagateMainColor(Color_t color, Color_t old_color); | |||
virtual void PropagateMainTransparency(Char_t t, Char_t old_t); | virtual void PropagateMainTransparency(Char_t t, Char_t old_t); | |||
ClassDef(TEveProjectable, 0); // Abstract base class for classes that ca n be transformed with non-linear projections. | ClassDef(TEveProjectable, 0); // Abstract base class for classes that ca n be transformed with non-linear projections. | |||
}; | }; | |||
skipping to change at line 102 | skipping to change at line 105 | |||
public: | public: | |||
TEveProjected(); | TEveProjected(); | |||
virtual ~TEveProjected(); | virtual ~TEveProjected(); | |||
TEveProjectionManager* GetManager() const { return fManager; } | TEveProjectionManager* GetManager() const { return fManager; } | |||
TEveProjectable* GetProjectable() const { return fProjectable; } | TEveProjectable* GetProjectable() const { return fProjectable; } | |||
Float_t GetDepth() const { return fDepth; } | Float_t GetDepth() const { return fDepth; } | |||
virtual void SetProjection(TEveProjectionManager* mng, TEveProjectable* model); | virtual void SetProjection(TEveProjectionManager* mng, TEveProjectable* model); | |||
virtual void UnRefProjectable(TEveProjectable* assumed_parent); | virtual void UnRefProjectable(TEveProjectable* assumed_parent, bool noti fyParent = true); | |||
virtual void UpdateProjection() = 0; | virtual void UpdateProjection() = 0; | |||
virtual TEveElement* GetProjectedAsElement(); | virtual TEveElement* GetProjectedAsElement(); | |||
virtual void SetDepth(Float_t d); | virtual void SetDepth(Float_t d); | |||
ClassDef(TEveProjected, 0); // Abstract base class for classes that hold results of a non-linear projection transformation. | ClassDef(TEveProjected, 0); // Abstract base class for classes that hold results of a non-linear projection transformation. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 5 lines changed or added | |||
TEveQuadSet.h | TEveQuadSet.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveQuadSet.h 33864 2010-06-14 09:47:19Z matevz $ | // @(#)root/eve:$Id: TEveQuadSet.h 37234 2010-12-03 18:20:15Z 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 27 | skipping to change at line 27 | |||
class TRandom; | class TRandom; | |||
class TEveQuadSet : public TEveDigitSet | class TEveQuadSet : public TEveDigitSet | |||
{ | { | |||
friend class TEveQuadSetGL; | friend class TEveQuadSetGL; | |||
TEveQuadSet(const TEveQuadSet&); // Not implemented | TEveQuadSet(const TEveQuadSet&); // Not implemented | |||
TEveQuadSet& operator=(const TEveQuadSet&); // Not implemented | TEveQuadSet& operator=(const TEveQuadSet&); // Not implemented | |||
public: | public: | |||
enum EQuadType_e | enum EQuadType_e { | |||
{ | kQT_Undef, // unknown-ignored | |||
kQT_Undef, // unknown-ignored | kQT_FreeQuad, // arbitrary quad: specify 4*(x,y,z) quad c | |||
kQT_FreeQuad, // arbitrary quad: specify 4*(x,y,z) qua | orners | |||
d corners | kQT_RectangleXY, // rectangle in x-y plane: specify x, y, z, | |||
kQT_RectangleXY, // rectangle in x-y plane: specify x, y, | w, h | |||
z, w, h | kQT_RectangleXZ, // rectangle in x-z plane: specify x, y, z, | |||
kQT_RectangleXZ, // rectangle in x-z plane: specify x, y, | w, h | |||
z, w, h | kQT_RectangleYZ, // rectangle in y-z plane: specify x, y, z, | |||
kQT_RectangleYZ, // rectangle in y-z plane: specify x, y, | w, h | |||
z, w, h | kQT_RectangleXYFixedDim, // rectangle in x-y plane: specify x, y, z; | |||
kQT_RectangleXYFixedDim, // rectangle in x-y plane: specify x, y, | w, h taken from fDefWidth/Height | |||
z; w, h taken from fDefWidth/Height | kQT_RectangleXYFixedZ, // rectangle in x-y plane: specify x, y, w, | |||
kQT_RectangleXYFixedZ, // rectangle in x-y plane: specify x, y, | h; z taken from fDefCoord | |||
w, h; z taken from fDefCoord | kQT_RectangleXZFixedY, // rectangle in x-z plane: specify x, z, w, | |||
kQT_RectangleXZFixedY, // rectangle in x-z plane: specify x, z, | h; y taken from fDefCoord | |||
w, h; y taken from fDefCoord | kQT_RectangleYZFixedX, // rectangle in y-z plane: specify y, z, w, | |||
kQT_RectangleYZFixedX, // rectangle in y-z plane: specify y, z, | h; x taken from fDefWidth/Height/Coord | |||
w, h; x taken from fDefWidth/Height/Coord | kQT_RectangleXYFixedDimZ, // rectangle in x-y plane: specify x, y; w, | |||
kQT_RectangleXYFixedDimZ, // rectangle in x-y plane: specify x, y; | h, z taken from fDefWidth/Height/Coord | |||
w, h, z taken from fDefWidth/Height/Coord | kQT_RectangleXZFixedDimY, // rectangle in x-z plane: specify x, z; w, | |||
kQT_RectangleXZFixedDimY, // rectangle in x-z plane: specify x, z; | h, y taken from fDefWidth/Height/Coord | |||
w, h, y taken from fDefWidth/Height/Coord | kQT_RectangleYZFixedDimX, // rectangle in y-z plane: specify y, z; w, | |||
kQT_RectangleYZFixedDimX, // rectangle in y-z plane: specify y, z; | h, x taken from fDefWidth/Height/Coord | |||
w, h, x taken from fDefWidth/Height/Coord | kQT_Rectangle_End, | |||
kQT_Rectangle_End, | // line modes (needed for uniform handling of silicon-strip digits) | |||
// line modes (needed for uniform handling of silicon-strip digits | kQT_LineXYFixedZ, // line in x-y plane: specify x, y, w(dx), | |||
) | h(dy); z taken from fDefCoord | |||
kQT_LineXYFixedZ, // line in x-y plane: specify x, y, w(dx | kQT_LineXZFixedY, // line in x-z plane: specify x, z, w(dx), | |||
), h(dy); z taken from fDefCoord | h(dz); y taken from fDefCoord | |||
kQT_LineXZFixedY, // line in x-z plane: specify x, z, w(dx | kQT_Line_End, | |||
), h(dz); y taken from fDefCoord | // hexagon modes | |||
kQT_Line_End, | kQT_HexagonXY, // horizontal hexagon: specify x, y, z, r | |||
// hexagon modes | kQT_HexagonYX, // vertical hexagon: specify x, y, z, r | |||
kQT_HexagonXY, // horizontal hexagon: specify x, y, z, | kQT_Hexagon_End | |||
r | // circle modes: | |||
kQT_HexagonYX, // vertical hexagon: specify x, y, z, | // QT_CircleXY, // specify r, z | |||
r | // QT_CircleXYFixedZ, // specify r | |||
kQT_Hexagon_End | // QT_CircleXYFixedR, // specify z | |||
// circle modes: | }; | |||
// QT_CircleXY, // specify r, z | ||||
// QT_CircleXYFixedZ, // specify r | ||||
// QT_CircleXYFixedR, // specify z | ||||
}; | ||||
protected: | ||||
struct QFreeQuad_t : public DigitBase_t { Float_t fVertices[12]; }; | struct QFreeQuad_t : public DigitBase_t { Float_t fVertices[12]; }; | |||
struct QOrigin_t : public DigitBase_t { Float_t fA, fB; }; | struct QOrigin_t : public DigitBase_t { Float_t fA, fB; }; | |||
struct QRectFixDimC_t : public QOrigin_t {}; | struct QRectFixDimC_t : public QOrigin_t {}; | |||
struct QRectFixDim_t : public QRectFixDimC_t { Float_t fC; }; | struct QRectFixDim_t : public QRectFixDimC_t { Float_t fC; }; | |||
struct QRectFixC_t : public QRectFixDimC_t { Float_t fW, fH; }; | struct QRectFixC_t : public QRectFixDimC_t { Float_t fW, fH; }; | |||
End of changes. 2 change blocks. | ||||
47 lines changed or deleted | 41 lines changed or added | |||
TEveShape.h | TEveShape.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveShape.h 33864 2010-06-14 09:47:19Z matevz $ | // @(#)root/eve:$Id: TEveShape.h 37228 2010-12-03 16:55:15Z matevz $ | |||
// Author: Matevz Tadel, 2010 | // Author: Matevz Tadel, 2010 | |||
/************************************************************************* | /************************************************************************* | |||
* 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<TEveVector2> vVector2_t; | typedef std::vector<TEveVector2> vVector2_t; | |||
typedef std::vector<TEveVector2>::iterator vVector2_i; | typedef std::vector<TEveVector2>::iterator vVector2_i; | |||
protected: | protected: | |||
Color_t fFillColor; // fill color of polygons | Color_t fFillColor; // fill color of polygons | |||
Color_t fLineColor; // outline color of polygons | Color_t fLineColor; // outline color of polygons | |||
Float_t fLineWidth; // outline width of polygons | Float_t fLineWidth; // outline width of polygons | |||
Bool_t fDrawFrame; // draw frame | Bool_t fDrawFrame; // draw frame | |||
Bool_t fHighlightFrame; // highlight frame / all shape | Bool_t fHighlightFrame; // highlight frame / all shape | |||
Bool_t fMiniFrame; // draw minimal frame | ||||
public: | public: | |||
TEveShape(const char* n="TEveShape", const char* t=""); | TEveShape(const char* n="TEveShape", const char* t=""); | |||
virtual ~TEveShape(); | virtual ~TEveShape(); | |||
// Rendering parameters. | // Rendering parameters. | |||
virtual void SetMainColor(Color_t color); | virtual void SetMainColor(Color_t color); | |||
virtual Color_t GetFillColor() const { return fFillColor; } | virtual Color_t GetFillColor() const { return fFillColor; } | |||
virtual Color_t GetLineColor() const { return fLineColor; } | virtual Color_t GetLineColor() const { return fLineColor; } | |||
virtual Float_t GetLineWidth() const { return fLineWidth;} | virtual Float_t GetLineWidth() const { return fLineWidth;} | |||
virtual Bool_t GetDrawFrame() const { return fDrawFrame; } | virtual Bool_t GetDrawFrame() const { return fDrawFrame; } | |||
virtual Bool_t GetHighlightFrame() const { return fHighlightFrame; } | virtual Bool_t GetHighlightFrame() const { return fHighlightFrame; } | |||
virtual Bool_t GetMiniFrame() const { return fMiniFrame; } | ||||
virtual void SetFillColor(Color_t c) { fFillColor = c; } | virtual void SetFillColor(Color_t c) { fFillColor = c; } | |||
virtual void SetLineColor(Color_t c) { fLineColor = c; } | virtual void SetLineColor(Color_t c) { fLineColor = c; } | |||
virtual void SetLineWidth(Float_t lw) { fLineWidth = lw;} | virtual void SetLineWidth(Float_t lw) { fLineWidth = lw;} | |||
virtual void SetDrawFrame(Bool_t f) { fDrawFrame = f; } | virtual void SetDrawFrame(Bool_t f) { fDrawFrame = f; } | |||
virtual void SetHighlightFrame(Bool_t f) { fHighlightFrame = f; } | virtual void SetHighlightFrame(Bool_t f) { fHighlightFrame = f; } | |||
virtual void SetMiniFrame(Bool_t r) { fMiniFrame = r; } | ||||
// ---------------------------------------------------------------- | // ---------------------------------------------------------------- | |||
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 from TObject | // Virtual from TObject | |||
virtual void Paint(Option_t* option=""); | virtual void Paint(Option_t* option=""); | |||
// Abstract function from TAttBBox: | // Abstract function from TAttBBox: | |||
// virtual void ComputeBBox(); | // virtual void ComputeBBox(); | |||
// Abstract from TEveProjectable, overriden in TEveElementList: | // Abstract from TEveProjectable, overriden in TEveElementList: | |||
// virtual TClass* ProjectedClass(const TEveProjection* p) const; | // virtual TClass* ProjectedClass(const TEveProjection* p) const; | |||
// ---------------------------------------------------------------- | // ---------------------------------------------------------------- | |||
static Int_t FindConvexHull(const vVector2_t& pin, vVector2_t& pout, TEv | static Int_t FindConvexHull(const vVector2_t& pin, vVector2_t& pout, TE | |||
eElement* caller=0); | veElement* caller=0); | |||
static Bool_t IsBoxOrientationConsistentEv(const TEveVector box[8]); | ||||
static Bool_t IsBoxOrientationConsistentFv(const Float_t box[8][3]); | ||||
static void CheckAndFixBoxOrientationEv(TEveVector box[8]); | ||||
static void CheckAndFixBoxOrientationFv(Float_t box[8][3]); | ||||
ClassDef(TEveShape, 0); // Abstract base-class for 2D/3D shapes. | ClassDef(TEveShape, 0); // Abstract base-class for 2D/3D shapes. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 5 change blocks. | ||||
3 lines changed or deleted | 12 lines changed or added | |||
TEveStraightLineSet.h | TEveStraightLineSet.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveStraightLineSet.h 35074 2010-08-30 15:18:02Z matev z $ | // @(#)root/eve:$Id: TEveStraightLineSet.h 36938 2010-11-25 13:57:45Z 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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 100 | skipping to change at line 100 | |||
virtual ~TEveStraightLineSet() {} | virtual ~TEveStraightLineSet() {} | |||
virtual void SetLineColor(Color_t col) { SetMainColor(col); } | virtual void SetLineColor(Color_t col) { SetMainColor(col); } | |||
Line_t* AddLine(Float_t x1, Float_t y1, Float_t z1, Float_t x2, Float_ t y2, Float_t z2); | Line_t* AddLine(Float_t x1, Float_t y1, Float_t z1, Float_t x2, Float_ t y2, Float_t z2); | |||
Line_t* AddLine(const TEveVector& p1, const TEveVector& p2); | Line_t* AddLine(const TEveVector& p1, const TEveVector& p2); | |||
Marker_t* AddMarker(Float_t x, Float_t y, Float_t z, Int_t line_id=-1); | Marker_t* AddMarker(Float_t x, Float_t y, Float_t z, Int_t line_id=-1); | |||
Marker_t* AddMarker(const TEveVector& p, Int_t line_id=-1); | Marker_t* AddMarker(const TEveVector& p, Int_t line_id=-1); | |||
Marker_t* AddMarker(Int_t line_id, Float_t pos); | Marker_t* AddMarker(Int_t line_id, Float_t pos); | |||
void SetLine(int idx, Float_t x1, Float_t y1, Float_t z1, Float_t x | ||||
2, Float_t y2, Float_t z2); | ||||
void SetLine(int idx, const TEveVector& p1, const TEveVector& p2); | ||||
TEveChunkManager& GetLinePlex() { return fLinePlex; } | TEveChunkManager& GetLinePlex() { return fLinePlex; } | |||
TEveChunkManager& GetMarkerPlex() { return fMarkerPlex; } | TEveChunkManager& GetMarkerPlex() { return fMarkerPlex; } | |||
virtual Bool_t GetRnrMarkers() { return fRnrMarkers; } | virtual Bool_t GetRnrMarkers() { return fRnrMarkers; } | |||
virtual Bool_t GetRnrLines() { return fRnrLines; } | virtual Bool_t GetRnrLines() { return fRnrLines; } | |||
virtual Bool_t GetDepthTest() { return fDepthTest; } | virtual Bool_t GetDepthTest() { return fDepthTest; } | |||
virtual void SetRnrMarkers(Bool_t x) { fRnrMarkers = x; } | virtual void SetRnrMarkers(Bool_t x) { fRnrMarkers = x; } | |||
virtual void SetRnrLines(Bool_t x) { fRnrLines = x; } | virtual void SetRnrLines(Bool_t x) { fRnrLines = x; } | |||
virtual void SetDepthTest(Bool_t x) { fDepthTest = x; } | virtual void SetDepthTest(Bool_t x) { fDepthTest = x; } | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 5 lines changed or added | |||
TEveUtil.h | TEveUtil.h | |||
---|---|---|---|---|
// @(#)root/eve:$Id: TEveUtil.h 33864 2010-06-14 09:47:19Z matevz $ | // @(#)root/eve:$Id: TEveUtil.h 36373 2010-10-19 17:43:35Z 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_TEveUtil | #ifndef ROOT_TEveUtil | |||
#define ROOT_TEveUtil | #define ROOT_TEveUtil | |||
#include "TObject.h" | #include "TObject.h" | |||
#include "TString.h" | #include "TString.h" | |||
#include "TError.h" | #include "TError.h" | |||
#include "GuiTypes.h" | #include "GuiTypes.h" | |||
#include <list> | #include <list> | |||
#include <map> | ||||
#include <set> | #include <set> | |||
#include <exception> | #include <exception> | |||
class TVirtualPad; | class TVirtualPad; | |||
class TGeoManager; | class TGeoManager; | |||
class TEveElement; | class TEveElement; | |||
/************************************************************************** ****/ | /************************************************************************** ****/ | |||
// TEveUtil | // TEveUtil | |||
skipping to change at line 184 | skipping to change at line 185 | |||
ClassDef(TEveRefCnt, 0); // Base-class for reference-counted objects. | ClassDef(TEveRefCnt, 0); // Base-class for reference-counted objects. | |||
}; | }; | |||
/************************************************************************** ****/ | /************************************************************************** ****/ | |||
// TEveRefBackPtr reference-count with back pointers | // TEveRefBackPtr reference-count with back pointers | |||
/************************************************************************** ****/ | /************************************************************************** ****/ | |||
class TEveRefBackPtr : public TEveRefCnt | class TEveRefBackPtr : public TEveRefCnt | |||
{ | { | |||
protected: | protected: | |||
std::list<TEveElement*> fBackRefs; | typedef std::map<TEveElement*, Int_t> RefMap_t; | |||
typedef RefMap_t::iterator RefMap_i; | ||||
RefMap_t fBackRefs; | ||||
public: | public: | |||
TEveRefBackPtr(); | TEveRefBackPtr(); | |||
virtual ~TEveRefBackPtr(); | virtual ~TEveRefBackPtr(); | |||
TEveRefBackPtr(const TEveRefBackPtr&); | TEveRefBackPtr(const TEveRefBackPtr&); | |||
TEveRefBackPtr& operator=(const TEveRefBackPtr&); | TEveRefBackPtr& operator=(const TEveRefBackPtr&); | |||
using TEveRefCnt::IncRefCount; | using TEveRefCnt::IncRefCount; | |||
using TEveRefCnt::DecRefCount; | using TEveRefCnt::DecRefCount; | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 6 lines changed or added | |||
TF1.h | TF1.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: TF1.h 34809 2010-08-13 12:48:34Z moneta $ | // @(#)root/hist:$Id: TF1.h 36906 2010-11-24 15:52:01Z moneta $ | |||
// Author: Rene Brun 18/08/95 | // Author: Rene Brun 18/08/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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
// ---------------------------------- F1.h | // ---------------------------------- F1.h | |||
skipping to change at line 46 | skipping to change at line 46 | |||
#ifndef ROOT_Math_ParamFunctor | #ifndef ROOT_Math_ParamFunctor | |||
#include "Math/ParamFunctor.h" | #include "Math/ParamFunctor.h" | |||
#endif | #endif | |||
class TF1; | class TF1; | |||
class TH1; | class TH1; | |||
class TAxis; | class TAxis; | |||
class TMethodCall; | class TMethodCall; | |||
namespace ROOT { | ||||
namespace Fit { | ||||
class FitResult; | ||||
} | ||||
} | ||||
class TF1 : public TFormula, public TAttLine, public TAttFill, public TAttM arker { | class TF1 : public TFormula, public TAttLine, public TAttFill, public TAttM arker { | |||
protected: | protected: | |||
Double_t fXmin; //Lower bounds for the range | Double_t fXmin; //Lower bounds for the range | |||
Double_t fXmax; //Upper bounds for the range | Double_t fXmax; //Upper bounds for the range | |||
Int_t fNpx; //Number of points used for the graphical repr esentation | Int_t fNpx; //Number of points used for the graphical repr esentation | |||
Int_t fType; //(=0 for standard functions, 1 if pointer to function) | Int_t fType; //(=0 for standard functions, 1 if pointer to function) | |||
Int_t fNpfits; //Number of points used in the fit | Int_t fNpfits; //Number of points used in the fit | |||
Int_t fNDF; //Number of degrees of freedom in the fit | Int_t fNDF; //Number of degrees of freedom in the fit | |||
Int_t fNsave; //Number of points used to fill array fSave | Int_t fNsave; //Number of points used to fill array fSave | |||
skipping to change at line 208 | skipping to change at line 214 | |||
virtual void DrawF1(const char *formula, Double_t xmin, Double_t xma x, Option_t *option=""); | virtual void DrawF1(const char *formula, Double_t xmin, Double_t xma x, Option_t *option=""); | |||
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t =0) const; | virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t =0) const; | |||
virtual Double_t EvalPar(const Double_t *x, const Double_t *params=0); | virtual Double_t EvalPar(const Double_t *x, const Double_t *params=0); | |||
// for using TF1 as a callable object (functor) | // for using TF1 as a callable object (functor) | |||
virtual Double_t operator()(Double_t x, Double_t y=0, Double_t z = 0, Do uble_t t = 0) const; | virtual Double_t operator()(Double_t x, Double_t y=0, Double_t z = 0, Do uble_t t = 0) const; | |||
virtual Double_t operator()(const Double_t *x, const Double_t *params=0) ; | virtual Double_t operator()(const Double_t *x, const Double_t *params=0) ; | |||
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 FixParameter(Int_t ipar, Double_t value); | virtual void FixParameter(Int_t ipar, Double_t value); | |||
Double_t GetChisquare() const {return fChisquare;} | Double_t GetChisquare() const {return fChisquare;} | |||
TH1 *GetHistogram() const; | TH1 *GetHistogram() const; | |||
virtual Double_t GetMaximum(Double_t xmin=0, Double_t xmax=0, Double_t e | virtual Double_t GetMaximum(Double_t xmin=0, Double_t xmax=0, Double_t e | |||
psilon = 1.E-10, Int_t maxiter = 100) const; | psilon = 1.E-10, Int_t maxiter = 100, Bool_t logx = false) const; | |||
virtual Double_t GetMinimum(Double_t xmin=0, Double_t xmax=0, Double_t e | virtual Double_t GetMinimum(Double_t xmin=0, Double_t xmax=0, Double_t e | |||
psilon = 1.E-10, Int_t maxiter = 100) const; | psilon = 1.E-10, Int_t maxiter = 100, Bool_t logx = false) const; | |||
virtual Double_t GetMaximumX(Double_t xmin=0, Double_t xmax=0, Double_t | virtual Double_t GetMaximumX(Double_t xmin=0, Double_t xmax=0, Double_t | |||
epsilon = 1.E-10, Int_t maxiter = 100) const; | epsilon = 1.E-10, Int_t maxiter = 100, Bool_t logx = false) const; | |||
virtual Double_t GetMinimumX(Double_t xmin=0, Double_t xmax=0, Double_t | virtual Double_t GetMinimumX(Double_t xmin=0, Double_t xmax=0, Double_t | |||
epsilon = 1.E-10, Int_t maxiter = 100) const; | epsilon = 1.E-10, Int_t maxiter = 100, Bool_t logx = false) const; | |||
virtual Int_t GetNDF() const; | virtual Int_t GetNDF() const; | |||
virtual Int_t GetNpx() const {return fNpx;} | virtual Int_t GetNpx() const {return fNpx;} | |||
TMethodCall *GetMethodCall() const {return fMethodCall;} | TMethodCall *GetMethodCall() const {return fMethodCall;} | |||
virtual Int_t GetNumberFreeParameters() const; | virtual Int_t GetNumberFreeParameters() const; | |||
virtual Int_t GetNumberFitPoints() const {return fNpfits;} | virtual Int_t GetNumberFitPoints() const {return fNpfits;} | |||
virtual char *GetObjectInfo(Int_t px, Int_t py) const; | virtual char *GetObjectInfo(Int_t px, Int_t py) const; | |||
TObject *GetParent() const {return fParent;} | TObject *GetParent() const {return fParent;} | |||
virtual Double_t GetParError(Int_t ipar) const; | virtual Double_t GetParError(Int_t ipar) const; | |||
virtual Double_t *GetParErrors() const {return fParErrors;} | virtual Double_t *GetParErrors() const {return fParErrors;} | |||
virtual void GetParLimits(Int_t ipar, Double_t &parmin, Double_t &pa rmax) const; | virtual void GetParLimits(Int_t ipar, Double_t &parmin, Double_t &pa rmax) const; | |||
virtual Double_t GetProb() const; | virtual Double_t GetProb() const; | |||
virtual Int_t GetQuantiles(Int_t nprobSum, Double_t *q, const Double_ t *probSum); | virtual Int_t GetQuantiles(Int_t nprobSum, Double_t *q, const Double_ t *probSum); | |||
virtual Double_t GetRandom(); | virtual Double_t GetRandom(); | |||
virtual Double_t GetRandom(Double_t xmin, Double_t xmax); | virtual Double_t GetRandom(Double_t xmin, Double_t xmax); | |||
virtual void GetRange(Double_t &xmin, Double_t &xmax) const; | virtual void GetRange(Double_t &xmin, Double_t &xmax) const; | |||
virtual void GetRange(Double_t &xmin, Double_t &ymin, Double_t &xmax , Double_t &ymax) const; | virtual void GetRange(Double_t &xmin, Double_t &ymin, Double_t &xmax , Double_t &ymax) const; | |||
virtual void GetRange(Double_t &xmin, Double_t &ymin, Double_t &zmin , Double_t &xmax, Double_t &ymax, Double_t &zmax) const; | virtual void GetRange(Double_t &xmin, Double_t &ymin, Double_t &zmin , Double_t &xmax, Double_t &ymax, Double_t &zmax) const; | |||
virtual Double_t GetSave(const Double_t *x); | virtual Double_t GetSave(const Double_t *x); | |||
virtual Double_t GetX(Double_t y, Double_t xmin=0, Double_t xmax=0, Doub le_t epsilon = 1.E-10, Int_t maxiter = 100) const; | virtual Double_t GetX(Double_t y, Double_t xmin=0, Double_t xmax=0, Doub le_t epsilon = 1.E-10, Int_t maxiter = 100, Bool_t logx = false) const; | |||
virtual Double_t GetXmin() const {return fXmin;} | virtual Double_t GetXmin() const {return fXmin;} | |||
virtual Double_t GetXmax() const {return fXmax;} | virtual Double_t GetXmax() const {return fXmax;} | |||
TAxis *GetXaxis() const ; | TAxis *GetXaxis() const ; | |||
TAxis *GetYaxis() const ; | TAxis *GetYaxis() const ; | |||
TAxis *GetZaxis() const ; | TAxis *GetZaxis() const ; | |||
virtual Double_t GradientPar(Int_t ipar, const Double_t *x, Double_t eps =0.01); | virtual Double_t GradientPar(Int_t ipar, const Double_t *x, Double_t eps =0.01); | |||
virtual void GradientPar(const Double_t *x, Double_t *grad, Double_t eps=0.01); | virtual void GradientPar(const Double_t *x, Double_t *grad, Double_t eps=0.01); | |||
virtual void InitArgs(const Double_t *x, const Double_t *params); | virtual void InitArgs(const Double_t *x, const Double_t *params); | |||
static void InitStandardFunctions(); | static void InitStandardFunctions(); | |||
virtual Double_t Integral(Double_t a, Double_t b, const Double_t *params =0, Double_t epsilon=1e-12); | virtual Double_t Integral(Double_t a, Double_t b, const Double_t *params =0, Double_t epsilon=1e-12); | |||
skipping to change at line 256 | skipping to change at line 262 | |||
virtual Double_t IntegralFast(Int_t num, Double_t *x, Double_t *w, Doubl e_t a, Double_t b, Double_t *params=0, Double_t epsilon=1e-12); | virtual Double_t IntegralFast(Int_t num, Double_t *x, Double_t *w, Doubl e_t a, Double_t b, Double_t *params=0, Double_t epsilon=1e-12); | |||
virtual Double_t IntegralMultiple(Int_t n, const Double_t *a, const Doub le_t *b, Int_t minpts, Int_t maxpts, Double_t epsilon, Double_t &relerr,Int _t &nfnevl, Int_t &ifail); | virtual Double_t IntegralMultiple(Int_t n, const Double_t *a, const Doub le_t *b, Int_t minpts, Int_t maxpts, Double_t epsilon, Double_t &relerr,Int _t &nfnevl, Int_t &ifail); | |||
virtual Double_t IntegralMultiple(Int_t n, const Double_t *a, const Doub le_t *b, Double_t epsilon, Double_t &relerr); | virtual Double_t IntegralMultiple(Int_t n, const Double_t *a, const Doub le_t *b, Double_t epsilon, Double_t &relerr); | |||
virtual Bool_t IsInside(const Double_t *x) const; | virtual Bool_t IsInside(const Double_t *x) const; | |||
virtual void Paint(Option_t *option=""); | virtual void Paint(Option_t *option=""); | |||
virtual void Print(Option_t *option="") const; | virtual void Print(Option_t *option="") const; | |||
virtual void ReleaseParameter(Int_t ipar); | virtual void ReleaseParameter(Int_t ipar); | |||
virtual void Save(Double_t xmin, Double_t xmax, Double_t ymin, Doubl e_t ymax, Double_t zmin, Double_t zmax); | virtual void Save(Double_t xmin, Double_t xmax, Double_t ymin, Doubl e_t ymax, Double_t zmin, Double_t zmax); | |||
virtual void SavePrimitive(ostream &out, Option_t *option = ""); | virtual void SavePrimitive(ostream &out, Option_t *option = ""); | |||
virtual void SetChisquare(Double_t chi2) {fChisquare = chi2;} | virtual void SetChisquare(Double_t chi2) {fChisquare = chi2;} | |||
virtual void SetFitResult(const ROOT::Fit::FitResult & result, const Int_t * indpar = 0); | ||||
template <class PtrObj, typename MemFn> | template <class PtrObj, typename MemFn> | |||
void SetFunction( PtrObj& p, MemFn memFn ); | void SetFunction( PtrObj& p, MemFn memFn ); | |||
template <typename Func> | template <typename Func> | |||
void SetFunction( Func f ); | void SetFunction( Func f ); | |||
virtual void SetMaximum(Double_t maximum=-1111); // *MENU* | virtual void SetMaximum(Double_t maximum=-1111); // *MENU* | |||
virtual void SetMinimum(Double_t minimum=-1111); // *MENU* | virtual void SetMinimum(Double_t minimum=-1111); // *MENU* | |||
virtual void SetNDF(Int_t ndf); | virtual void SetNDF(Int_t ndf); | |||
virtual void SetNumberFitPoints(Int_t npfits) {fNpfits = npfits;} | virtual void SetNumberFitPoints(Int_t npfits) {fNpfits = npfits;} | |||
virtual void SetNpx(Int_t npx=100); // *MENU* | virtual void SetNpx(Int_t npx=100); // *MENU* | |||
virtual void SetParError(Int_t ipar, Double_t error); | virtual void SetParError(Int_t ipar, Double_t error); | |||
End of changes. 5 change blocks. | ||||
10 lines changed or deleted | 17 lines changed or added | |||
TFileCollection.h | TFileCollection.h | |||
---|---|---|---|---|
// @(#)root/base:$Id: TFileCollection.h 28573 2009-05-12 14:29:22Z rdm $ | // @(#)root/base:$Id: TFileCollection.h 36629 2010-11-12 14:46:35Z brun $ | |||
// Author: Jan Fiete Grosse-Oetringhaus 01/06/07 | // Author: Jan Fiete Grosse-Oetringhaus 01/06/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 37 | skipping to change at line 37 | |||
#include "TNamed.h" | #include "TNamed.h" | |||
#endif | #endif | |||
#ifndef ROOT_TString | #ifndef ROOT_TString | |||
#include "TString.h" | #include "TString.h" | |||
#endif | #endif | |||
class THashList; | class THashList; | |||
class TMap; | class TMap; | |||
class TList; | class TList; | |||
class TCollection; | ||||
class TFileInfo; | class TFileInfo; | |||
class TFileInfoMeta; | class TFileInfoMeta; | |||
class TObjString; | class TObjString; | |||
class TFileCollection : public TNamed { | class TFileCollection : public TNamed { | |||
private: | private: | |||
THashList *fList; //-> list of TFileInfos | THashList *fList; //-> list of TFileInfos | |||
TList *fMetaDataList; //-> generic list of file meta data obj ect(s) | TList *fMetaDataList; //-> generic list of file meta data obj ect(s) | |||
// (summed over entries of fList) | // (summed over entries of fList) | |||
skipping to change at line 74 | skipping to change at line 75 | |||
Int_t Add(TFileInfo *info); | Int_t Add(TFileInfo *info); | |||
Int_t Add(TFileCollection *coll); | Int_t Add(TFileCollection *coll); | |||
Int_t AddFromFile(const char *file, Int_t nfiles = -1, Int_t f irstfile = 1); | Int_t AddFromFile(const char *file, Int_t nfiles = -1, Int_t f irstfile = 1); | |||
Int_t Add(const char *path); | Int_t Add(const char *path); | |||
THashList *GetList() { return fList; } | THashList *GetList() { return fList; } | |||
void SetList(THashList* list) { fList = list; } | void SetList(THashList* list) { fList = list; } | |||
TObjString *ExportInfo(const char *name = 0, Int_t popt = 0); | TObjString *ExportInfo(const char *name = 0, Int_t popt = 0); | |||
Long64_t Merge(TCollection* list); | ||||
Int_t RemoveDuplicates(); | Int_t RemoveDuplicates(); | |||
Int_t Update(Long64_t avgsize = -1); | Int_t Update(Long64_t avgsize = -1); | |||
void Sort(); | void Sort(); | |||
void SetAnchor(const char *anchor); | void SetAnchor(const char *anchor); | |||
void Print(Option_t *option = "") const; | void Print(Option_t *option = "") const; | |||
void SetBitAll(UInt_t f); | void SetBitAll(UInt_t f); | |||
void ResetBitAll(UInt_t f); | void ResetBitAll(UInt_t f); | |||
Long64_t GetTotalSize() const { return fTotalSize; } | Long64_t GetTotalSize() const { return fTotalSize; } | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
TGDMLParse.h | TGDMLParse.h | |||
---|---|---|---|---|
/* @(#)root/gdml:$Id: TGDMLParse.h 35010 2010-08-25 13:15:30Z agheata $ */ | /* @(#)root/gdml:$Id: TGDMLParse.h 36390 2010-10-21 09:35:45Z agheata $ */ | |||
// Authors: Ben Lloyd 09/11/06 | // Authors: Ben Lloyd 09/11/06 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2006, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2006, 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 127 | skipping to change at line 127 | |||
fFILENO = 0; | fFILENO = 0; | |||
} | } | |||
virtual ~TGDMLParse() { //destructor | virtual ~TGDMLParse() { //destructor | |||
for (size_t i=0;i<fformvec.size();i++) | for (size_t i=0;i<fformvec.size();i++) | |||
if (fformvec[i] != NULL) delete fformvec[i]; | if (fformvec[i] != NULL) delete fformvec[i]; | |||
} | } | |||
static TGeoVolume* StartGDML(const char* filename){ | static TGeoVolume* StartGDML(const char* filename){ | |||
TGDMLParse* fParser = new TGDMLParse; | TGDMLParse* parser = new TGDMLParse; | |||
TGeoVolume* fWorld = fParser->GDMLReadFile(filename); | TGeoVolume* world = parser->GDMLReadFile(filename); | |||
return fWorld; | return world; | |||
} | } | |||
TGeoVolume* GDMLReadFile(const char* filename = "test.gdml"); | TGeoVolume* GDMLReadFile(const char* filename = "test.gdml"); | |||
private: | private: | |||
const char* ParseGDML(TXMLEngine* gdml, XMLNodePointer_t node) ; | const char* ParseGDML(TXMLEngine* gdml, XMLNodePointer_t node) ; | |||
const char* GetScale(const char* unit); | const char* GetScale(const char* unit); | |||
double Evaluate(const char* evalline); | double Evaluate(const char* evalline); | |||
const char* NameShort(const char* name); | const char* NameShort(const char* name); | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 4 lines changed or added | |||
TGFSContainer.h | TGFSContainer.h | |||
---|---|---|---|---|
// @(#)root/gui:$Id: TGFSContainer.h 34072 2010-06-23 07:51:58Z bellenot $ | // @(#)root/gui:$Id: TGFSContainer.h 36090 2010-10-05 17:32:34Z rdm $ | |||
// Author: Fons Rademakers 19/01/98 | // Author: Fons Rademakers 19/01/98 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 52 | skipping to change at line 52 | |||
}; | }; | |||
class TRegexp; | class TRegexp; | |||
class TGPicture; | class TGPicture; | |||
class TGFileContainer; | class TGFileContainer; | |||
class TViewUpdateTimer; | class TViewUpdateTimer; | |||
class TGFileIcon; | class TGFileIcon; | |||
class TGFileItem; | class TGFileItem; | |||
class TTimer; | class TTimer; | |||
class TString; | class TString; | |||
struct FileStat_t; | ||||
class TGFileItem : public TGLVEntry { | class TGFileItem : public TGLVEntry { | |||
protected: | protected: | |||
const TGPicture *fBlpic; // big icon | const TGPicture *fBlpic; // big icon | |||
const TGPicture *fSlpic; // small icon | const TGPicture *fSlpic; // small icon | |||
const TGPicture *fLcurrent; // current icon | const TGPicture *fLcurrent; // current icon | |||
Int_t fType; // file type | Int_t fType; // file type | |||
Int_t fUid, fGid; // file uid and gid | Int_t fUid, fGid; // file uid and gid | |||
Bool_t fIsLink; // true if symbolic link | Bool_t fIsLink; // true if symbolic link | |||
Long_t fModTime; // modification time | Long_t fModTime; // modification time | |||
Long64_t fSize; // file size | Long64_t fSize; // file size | |||
TBufferFile *fBuf; // buffer used for Drag and Drop | TBufferFile *fBuf; // buffer used for Drag and Drop | |||
TDNDData fDNDData; // Drag and Drop data | TDNDData fDNDData; // Drag and Drop data | |||
void Init(const TGPicture *blpic, const TGPicture *slpic, | ||||
FileStat_t &stat, EListViewMode viewMode); | ||||
virtual void DoRedraw(); | virtual void DoRedraw(); | |||
public: | public: | |||
TGFileItem(const TGWindow *p = 0, | TGFileItem(const TGWindow *p = 0, | |||
const TGPicture *bpic = 0, const TGPicture *blpic = 0, | const TGPicture *bpic = 0, const TGPicture *blpic = 0, | |||
const TGPicture *spic = 0, const TGPicture *slpic = 0, | const TGPicture *spic = 0, const TGPicture *slpic = 0, | |||
TGString *name = 0, Int_t type = 0, Long64_t size = 1, | TGString *name = 0, Int_t type = 0, Long64_t size = 1, | |||
Int_t uid = 0, Int_t gid = 0, Long_t modtime = 0, | Int_t uid = 0, Int_t gid = 0, Long_t modtime = 0, | |||
EListViewMode viewMode = kLVList, UInt_t options = kVerticalF rame, | EListViewMode viewMode = kLVList, UInt_t options = kVerticalF rame, | |||
Pixel_t back = GetWhitePixel()); | Pixel_t back = GetWhitePixel()); | |||
TGFileItem(const TGWindow *p, | ||||
const TGPicture *bpic, const TGPicture *blpic, | ||||
const TGPicture *spic, const TGPicture *slpic, | ||||
TGString *name, FileStat_t &stat, | ||||
EListViewMode viewMode = kLVList, UInt_t options = kVerticalF | ||||
rame, | ||||
Pixel_t back = GetWhitePixel()); | ||||
virtual ~TGFileItem(); | virtual ~TGFileItem(); | |||
virtual void SetViewMode(EListViewMode viewMode); | virtual void SetViewMode(EListViewMode viewMode); | |||
Bool_t IsActive() const { return fActive; } | Bool_t IsActive() const { return fActive; } | |||
Bool_t IsSymLink() const { return fIsLink; } | Bool_t IsSymLink() const { return fIsLink; } | |||
Int_t GetType() const { return fType; } | Int_t GetType() const { return fType; } | |||
Long64_t GetSize() const { return fSize; } | Long64_t GetSize() const { return fSize; } | |||
Long_t GetModTime() const { return fModTime; } | Long_t GetModTime() const { return fModTime; } | |||
Int_t GetUid() const { return fUid; } | Int_t GetUid() const { return fUid; } | |||
End of changes. 4 change blocks. | ||||
1 lines changed or deleted | 12 lines changed or added | |||
TGFont.h | TGFont.h | |||
---|---|---|---|---|
// @(#)root/gui:$Id: TGFont.h 23115 2008-04-10 13:35:37Z rdm $ | // @(#)root/gui:$Id: TGFont.h 35912 2010-09-30 13:43:06Z couet $ | |||
// Author: Fons Rademakers 20/5/2003 | // Author: Fons Rademakers 20/5/2003 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2003, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2003, 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 174 | skipping to change at line 174 | |||
Int_t fWidths[256]; // Array giving widths of all possibl e characters in the font. | Int_t fWidths[256]; // Array giving widths of all possibl e characters in the font. | |||
Int_t fBarHeight; // Height of underline or overstrike bar | Int_t fBarHeight; // Height of underline or overstrike bar | |||
// (used for simulating a native unde rlined or strikeout font). | // (used for simulating a native unde rlined or strikeout font). | |||
protected: | protected: | |||
TGFont(const char *name) | TGFont(const char *name) | |||
: TNamed(name,""), TRefCnt(), fFontStruct(0), fFontH(0), fFM(), | : TNamed(name,""), TRefCnt(), fFontStruct(0), fFontH(0), fFM(), | |||
fFA(), fNamedHash(0), fTabWidth(0), fUnderlinePos(0), fUnderlineHeight (0), fBarHeight(0) | fFA(), fNamedHash(0), fTabWidth(0), fUnderlinePos(0), fUnderlineHeight (0), fBarHeight(0) | |||
{ | { | |||
SetRefCount(1); | SetRefCount(1); | |||
for (Int_t i=0; i<256; i++) { | ||||
fWidths[i] = 0; | ||||
fTypes[i] = ' '; | ||||
} | ||||
} | } | |||
TGFont(const TGFont &font); // not implemented | TGFont(const TGFont &font); // not implemented | |||
void operator=(const TGFont &font); // not implemented | void operator=(const TGFont &font); // not implemented | |||
LayoutChunk_t *NewChunk(TGTextLayout *layout, int *maxPtr, | LayoutChunk_t *NewChunk(TGTextLayout *layout, int *maxPtr, | |||
const char *start, int numChars, | const char *start, int numChars, | |||
int curX, int newX, int y) const; | int curX, int newX, int y) const; | |||
public: | public: | |||
virtual ~TGFont(); | virtual ~TGFont(); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 5 lines changed or added | |||
TGLAnnotation.h | TGLAnnotation.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLAnnotation.h 32600 2010-03-12 19:36:45Z matevz $ | // @(#)root/gl:$Id: TGLAnnotation.h 36946 2010-11-25 15:29:03Z matevz $ | |||
// Author: Matevz and Alja Tadel 20/02/2009 | // Author: Matevz and Alja Tadel 20/02/2009 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 78 | skipping to change at line 78 | |||
Bool_t fDrawRefLine; // draw 3D refrence line | Bool_t fDrawRefLine; // draw 3D refrence line | |||
Bool_t fUseColorSet; // use color set from rnrCtx | Bool_t fUseColorSet; // use color set from rnrCtx | |||
Bool_t fAllowClose; // allow closing via 'X' button | Bool_t fAllowClose; // allow closing via 'X' button | |||
public: | public: | |||
TGLAnnotation(TGLViewerBase *parent, const char *text, Float_t posx, Flo at_t posy); | TGLAnnotation(TGLViewerBase *parent, const char *text, Float_t posx, Flo at_t posy); | |||
TGLAnnotation(TGLViewerBase *parent, const char *text, Float_t posx, Flo at_t posy, TGLVector3 ref); | TGLAnnotation(TGLViewerBase *parent, const char *text, Float_t posx, Flo at_t posy, TGLVector3 ref); | |||
virtual ~TGLAnnotation(); | virtual ~TGLAnnotation(); | |||
void SetTransparency(Char_t x) { fTransparency = x; } | void SetText(const TString& x) { fText = x; } | |||
Char_t GetTransparency() const { return fTransparency; } | const TString& GetText() const { return fText; } | |||
void SetUseColorSet(Bool_t x) { fUseColorSet = x; } | ||||
Bool_t GetUseColorSet() const { return fUseColorSet; } | void SetTransparency(Char_t x) { fTransparency = x; } | |||
void SetBackColor(Color_t x) { fBackColor = x; } | Char_t GetTransparency() const { return fTransparency; } | |||
Color_t GetBackColor() const { return fBackColor; } | ||||
void SetTextColor(Color_t x) { fTextColor = x; } | void SetUseColorSet(Bool_t x) { fUseColorSet = x; } | |||
Color_t GetTextColor() const { return fTextColor; } | Bool_t GetUseColorSet() const { return fUseColorSet; } | |||
void SetTextSize(Float_t x) { fTextSize = x; } | ||||
Float_t GetTextSize() const { return fTextSize; } | void SetBackColor(Color_t x) { fBackColor = x; } | |||
void SetAllowClose(Bool_t x) { fAllowClose = x; } | Color_t GetBackColor() const { return fBackColor; } | |||
Bool_t GetAllowClose() const { return fAllowClose;} | ||||
void SetTextColor(Color_t x) { fTextColor = x; } | ||||
Color_t GetTextColor() const { return fTextColor; } | ||||
void SetTextSize(Float_t x) { fTextSize = x; } | ||||
Float_t GetTextSize() const { return fTextSize; } | ||||
void SetAllowClose(Bool_t x) { fAllowClose = x; } | ||||
Bool_t GetAllowClose() const { return fAllowClose; } | ||||
TGLFont::ETextAlignH_e GetTextAlign() const { return fTextAlign; } | TGLFont::ETextAlignH_e GetTextAlign() const { return fTextAlign; } | |||
void SetTextAlign(TGLFont::ETextAlignH_e a) { fTextAlign = a; } | void SetTextAlign(TGLFont::ETextAlignH_e a) { fTextAlign = a; } | |||
virtual Bool_t MouseEnter(TGLOvlSelectRecord& selRec); | virtual Bool_t MouseEnter(TGLOvlSelectRecord& selRec); | |||
virtual Bool_t Handle(TGLRnrCtx& rnrCtx, TGLOvlSelectRecord& selRec, | virtual Bool_t Handle(TGLRnrCtx& rnrCtx, TGLOvlSelectRecord& selRec, | |||
Event_t* event); | Event_t* event); | |||
virtual void MouseLeave(); | virtual void MouseLeave(); | |||
void CloseEditor(); | void CloseEditor(); | |||
End of changes. 2 change blocks. | ||||
13 lines changed or deleted | 22 lines changed or added | |||
TGLBoundingBox.h | TGLBoundingBox.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLBoundingBox.h 29754 2009-08-11 15:48:54Z matevz $ | // @(#)root/gl:$Id: TGLBoundingBox.h 37397 2010-12-08 13:54:23Z 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 58 | skipping to change at line 58 | |||
// | // | |||
// 0123 'far' face | // 0123 'far' face | |||
// 4567 'near' face | // 4567 'near' face | |||
// | // | |||
// This could be more compact: | // This could be more compact: | |||
// For orientated box 3 vertices which form plane cutting box | // For orientated box 3 vertices which form plane cutting box | |||
// diagonally (e.g. 0,5,6 or 1,3,6 etc) would fix in space. | // diagonally (e.g. 0,5,6 or 1,3,6 etc) would fix in space. | |||
// For axis aligned 2 verticies would suffice. | // For axis aligned 2 verticies would suffice. | |||
// Rest could be calculated on demand - however speed more important | // Rest could be calculated on demand - however speed more important | |||
// than memory considerations | // than memory considerations | |||
std::vector<TGLVertex3> fVertex; //! the 8 bounding box vertices | TGLVertex3 fVertex[8]; //! the 8 bounding box vertices | |||
Double_t fVolume; //! box volume - cached for speed | Double_t fVolume; //! box volume - cached for speed | |||
Double_t fDiagonal; //! max box diagonal - cached for s peed | Double_t fDiagonal; //! max box diagonal - cached for s peed | |||
TGLVector3 fAxes[3]; //! box axes in global frame - cach ed for speed | TGLVector3 fAxes[3]; //! box axes in global frame - cach ed for speed | |||
TGLVector3 fAxesNorm[3];//! normalised box axes in global f rame - cached for speed | TGLVector3 fAxesNorm[3];//! normalised box axes in global f rame - cached for speed | |||
// Methods | // Methods | |||
void UpdateCache(); | void UpdateCache(); | |||
Bool_t ValidIndex(UInt_t index) const { return (index < 8); } | Bool_t ValidIndex(UInt_t index) const { return (index < 8); } | |||
Double_t Min(UInt_t index) const; | Double_t Min(UInt_t index) const; | |||
Double_t Max(UInt_t index) const; | Double_t Max(UInt_t index) const; | |||
skipping to change at line 110 | skipping to change at line 110 | |||
Double_t XMin() const { return Min(0); } | Double_t XMin() const { return Min(0); } | |||
Double_t XMax() const { return Max(0); } | Double_t XMax() const { return Max(0); } | |||
Double_t YMin() const { return Min(1); } | Double_t YMin() const { return Min(1); } | |||
Double_t YMax() const { return Max(1); } | Double_t YMax() const { return Max(1); } | |||
Double_t ZMin() const { return Min(2); } | Double_t ZMin() const { return Min(2); } | |||
Double_t ZMax() const { return Max(2); } | Double_t ZMax() const { return Max(2); } | |||
TGLVertex3 MinAAVertex() const; | TGLVertex3 MinAAVertex() const; | |||
TGLVertex3 MaxAAVertex() const; | TGLVertex3 MaxAAVertex() const; | |||
// Multiple vertices accessors | // Multiple vertices accessors | |||
const std::vector<TGLVertex3> & Vertices() const; // All 8 box | const TGLVertex3* Vertices() const; // All 8 box vertices | |||
vertices | Int_t NumVertices() const { return 8; } | |||
enum EFace { kFaceLowX, kFaceHighX, kFaceLowY, kFaceHighY, kFaceLowZ, kF aceHighZ, kFaceCount }; | enum EFace { kFaceLowX, kFaceHighX, kFaceLowY, kFaceHighY, kFaceLowZ, kF aceHighZ, kFaceCount }; | |||
const std::vector<UInt_t> & FaceVertices(EFace face) const; // 4 box fac e vertices | const std::vector<UInt_t> & FaceVertices(EFace face) const; // 4 box fac e vertices | |||
// Other properties | // Other properties | |||
TGLVertex3 Center() const; | TGLVertex3 Center() const; | |||
TGLVector3 Extents() const; | TGLVector3 Extents() const; | |||
const TGLVector3 & Axis(UInt_t i, Bool_t normalised = kTRUE) const; | const TGLVector3 & Axis(UInt_t i, Bool_t normalised = kTRUE) const; | |||
Bool_t IsEmpty() const; | Bool_t IsEmpty() const; | |||
Double_t Volume() const { return fVolume; } | Double_t Volume() const { return fVolume; } | |||
Double_t Diagonal() const { return fDiagonal; } | Double_t Diagonal() const { return fDiagonal; } | |||
skipping to change at line 157 | skipping to change at line 159 | |||
return fVertex[index]; | return fVertex[index]; | |||
} | } | |||
//_________________________________________________________________________ _____ | //_________________________________________________________________________ _____ | |||
inline const TGLVertex3 & TGLBoundingBox::Vertex(UInt_t index) const | inline const TGLVertex3 & TGLBoundingBox::Vertex(UInt_t index) const | |||
{ | { | |||
return fVertex[index]; | return fVertex[index]; | |||
} | } | |||
//_________________________________________________________________________ _____ | //_________________________________________________________________________ _____ | |||
inline const std::vector<TGLVertex3> & TGLBoundingBox::Vertices() const | inline const TGLVertex3* TGLBoundingBox::Vertices() const | |||
{ | { | |||
return fVertex; | return fVertex; | |||
} | } | |||
//_________________________________________________________________________ _____ | //_________________________________________________________________________ _____ | |||
inline TGLVector3 TGLBoundingBox::Extents() const | inline TGLVector3 TGLBoundingBox::Extents() const | |||
{ | { | |||
// Return the local axis entents of the box | // Return the local axis entents of the box | |||
return TGLVector3(Axis(0,kFALSE).Mag(), | return TGLVector3(Axis(0,kFALSE).Mag(), | |||
Axis(1,kFALSE).Mag(), | Axis(1,kFALSE).Mag(), | |||
End of changes. 4 change blocks. | ||||
5 lines changed or deleted | 6 lines changed or added | |||
TGLContext.h | TGLContext.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLContext.h 29332 2009-07-03 17:02:46Z matevz $ | // @(#)root/gl:$Id: TGLContext.h 36675 2010-11-15 20:33:58Z matevz $ | |||
#include <utility> | #include <utility> | |||
#include <list> | #include <list> | |||
/************************************************************************* | /************************************************************************* | |||
* 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 47 | skipping to change at line 47 | |||
private: | private: | |||
TGLPaintDevice *fDevice; | TGLPaintDevice *fDevice; | |||
TGLContextPrivate *fPimpl; | TGLContextPrivate *fPimpl; | |||
Bool_t fFromCtor;//To prohibit user's calls of SetContext. | Bool_t fFromCtor;//To prohibit user's calls of SetContext. | |||
Bool_t fValid; | Bool_t fValid; | |||
TGLContextIdentity *fIdentity; | TGLContextIdentity *fIdentity; | |||
static Bool_t fgGlewInitDone; | static Bool_t fgGlewInitDone; | |||
void GlewInit(); | ||||
public: | public: | |||
TGLContext(TGLWidget *glWidget, Bool_t shareDefault=kTRUE, const TGLCont ext *shareList=0); | TGLContext(TGLWidget *glWidget, Bool_t shareDefault=kTRUE, const TGLCont ext *shareList=0); | |||
// TGLContext(TGLPBuffer *glPbuf, const TGLContext *shareList = 0); | // TGLContext(TGLPBuffer *glPbuf, const TGLContext *shareList = 0); | |||
TGLContextIdentity *GetIdentity()const; | TGLContextIdentity *GetIdentity()const; | |||
virtual ~TGLContext(); | virtual ~TGLContext(); | |||
Bool_t MakeCurrent(); | Bool_t MakeCurrent(); | |||
skipping to change at line 70 | skipping to change at line 69 | |||
//This functions are public _ONLY_ for calls via | //This functions are public _ONLY_ for calls via | |||
//gROOT under win32. Please, DO NOT CALL IT DIRECTLY. | //gROOT under win32. Please, DO NOT CALL IT DIRECTLY. | |||
void SetContext(TGLWidget *widget, const TGLContext *shareLi st); | void SetContext(TGLWidget *widget, const TGLContext *shareLi st); | |||
// void SetContextPB(TGLPBuffer *pbuff, const TGLContext *share List); | // void SetContextPB(TGLPBuffer *pbuff, const TGLContext *share List); | |||
void Release(); | void Release(); | |||
Bool_t IsValid() const { return fValid; } | Bool_t IsValid() const { return fValid; } | |||
static TGLContext *GetCurrent(); | static TGLContext *GetCurrent(); | |||
static void GlewInit(); | ||||
private: | private: | |||
TGLContext(const TGLContext &); | TGLContext(const TGLContext &); | |||
TGLContext &operator = (const TGLContext &); | TGLContext &operator = (const TGLContext &); | |||
ClassDef(TGLContext, 0); // Control internal gl-context resources. | ClassDef(TGLContext, 0); // Control internal gl-context resources. | |||
}; | }; | |||
//_________________________________________________________________________ _____ | //_________________________________________________________________________ _____ | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TGLFBO.h | TGLFBO.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLFBO.h 33579 2010-05-19 12:43:08Z rdm $ | // @(#)root/gl:$Id: TGLFBO.h 36675 2010-11-15 20:33:58Z matevz $ | |||
/************************************************************************* | /************************************************************************* | |||
* 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_TGLFBO | #ifndef ROOT_TGLFBO | |||
#define ROOT_TGLFBO | #define ROOT_TGLFBO | |||
skipping to change at line 25 | skipping to change at line 25 | |||
class TGLFBO | class TGLFBO | |||
{ | { | |||
private: | private: | |||
TGLFBO(const TGLFBO&); // Not implemented | TGLFBO(const TGLFBO&); // Not implemented | |||
TGLFBO& operator=(const TGLFBO&); // Not implemented | TGLFBO& operator=(const TGLFBO&); // Not implemented | |||
protected: | protected: | |||
UInt_t fFrameBuffer; | UInt_t fFrameBuffer; | |||
UInt_t fColorTexture; | UInt_t fColorTexture; | |||
UInt_t fDepthBuffer; | UInt_t fDepthBuffer; | |||
// UInt_t fStencilBuffer; | UInt_t fMSFrameBuffer; | |||
UInt_t fMSColorBuffer; | ||||
Int_t fW, fH; | Int_t fW, fH, fMSSamples, fMSCoverageSamples; | |||
Bool_t fIsRescaled; | ||||
Float_t fWScale, fHScale; | Float_t fWScale, fHScale; | |||
Bool_t fIsRescaled; | ||||
static Bool_t fgRescaleToPow2; | static Bool_t fgRescaleToPow2; | |||
static Bool_t fgMultiSampleNAWarned; | ||||
void InitStandard(); | ||||
void InitMultiSample(); | ||||
UInt_t CreateAndAttachRenderBuffer(Int_t format, Int_t type); | ||||
UInt_t CreateAndAttachColorTexture(); | ||||
public: | public: | |||
TGLFBO(); | TGLFBO(); | |||
virtual ~TGLFBO(); | virtual ~TGLFBO(); | |||
void Init(int w, int h); | void Init(int w, int h, int ms_samples=0); | |||
void Release(); | void Release(); | |||
void Bind(); | void Bind(); | |||
void Unbind(); | void Unbind(); | |||
void BindTexture(); | void BindTexture(); | |||
void UnbindTexture(); | void UnbindTexture(); | |||
void SetAsReadBuffer(); | ||||
ClassDef(TGLFBO, 0); // Frame-buffer object. | ClassDef(TGLFBO, 0); // Frame-buffer object. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 8 change blocks. | ||||
5 lines changed or deleted | 15 lines changed or added | |||
TGLFaceSet.h | TGLFaceSet.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLFaceSet.h 34932 2010-08-22 18:05:36Z matevz $ | // @(#)root/gl:$Id: TGLFaceSet.h 37192 2010-12-02 15:54:26Z matevz $ | |||
// Author: Timur Pocheptsov 03/08/2004 | // Author: Timur Pocheptsov 03/08/2004 | |||
// NOTE: This code moved from obsoleted TGLSceneObject.h / .cxx - see these | // NOTE: This code moved from obsoleted TGLSceneObject.h / .cxx - see these | |||
// attic files for previous CVS history | // attic files for previous CVS history | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2006, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2006, 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 41 | skipping to change at line 41 | |||
UInt_t fNbPols; | UInt_t fNbPols; | |||
static Bool_t fgEnforceTriangles; | static Bool_t fgEnforceTriangles; | |||
public: | public: | |||
TGLFaceSet(const TBuffer3D & buffer); | TGLFaceSet(const TBuffer3D & buffer); | |||
virtual void DirectDraw(TGLRnrCtx & rnrCtx) const; | virtual void DirectDraw(TGLRnrCtx & rnrCtx) const; | |||
void SetFromMesh(const RootCsg::TBaseMesh *m); | void SetFromMesh(const RootCsg::TBaseMesh *m); | |||
void CalculateNormals(); | ||||
void EnforceTriangles(); | void EnforceTriangles(); | |||
std::vector<Double_t>& GetVertices() { return fVertices; } | std::vector<Double_t>& GetVertices() { return fVertices; } | |||
std::vector<Double_t>& GetNormals() { return fNormals; } | std::vector<Double_t>& GetNormals() { return fNormals; } | |||
std::vector<Int_t>& GetPolyDesc() { return fPolyDesc; } | std::vector<Int_t>& GetPolyDesc() { return fPolyDesc; } | |||
UInt_t GetNbPols() { return fNbPols; } | UInt_t GetNbPols() { return fNbPols; } | |||
static Bool_t GetEnforceTriangles(); | static Bool_t GetEnforceTriangles(); | |||
static void SetEnforceTriangles(Bool_t e); | static void SetEnforceTriangles(Bool_t e); | |||
private: | private: | |||
void GLDrawPolys()const; | void GLDrawPolys() const; | |||
Int_t CheckPoints(const Int_t *source, Int_t *dest)const; | Int_t CheckPoints(const Int_t *source, Int_t *dest) const; | |||
static Bool_t Eq(const Double_t *p1, const Double_t *p2); | static Bool_t Eq(const Double_t *p1, const Double_t *p2); | |||
void CalculateNormals(); | ||||
ClassDef(TGLFaceSet,0) // a faceset logical shape | ClassDef(TGLFaceSet,0) // a faceset logical shape | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 5 lines changed or added | |||
TGLFormat.h | TGLFormat.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLFormat.h 31821 2009-12-10 18:22:44Z matevz $ | // @(#)root/gl:$Id: TGLFormat.h 36675 2010-11-15 20:33:58Z 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 | |||
#ifndef ROOT_Rtypes | ||||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | ||||
#include <vector> | ||||
/* | /* | |||
TGLFormat class describes the pixel format of a drawing surface. | TGLFormat class describes the pixel format of a drawing surface. | |||
It's a generic analog of PIXELFORMATDESCRIPTOR (win32) or | It's a generic analog of PIXELFORMATDESCRIPTOR (win32) or | |||
array of integer constants array for glXChooseVisual (X11). | array of integer constants array for glXChooseVisual (X11). | |||
This class is in a very preliminary state, different | This class is in a very preliminary state, different | |||
options have not been tested yet, only defaults. | options have not been tested yet, only defaults. | |||
Surface can be: | Surface can be: | |||
-RGBA | -RGBA | |||
-with/without depth buffer | -with/without depth buffer | |||
-with/without stencil buffer | -with/without stencil buffer | |||
-with/without accum buffer | -with/without accum buffer | |||
-double/single buffered | -double/single buffered | |||
*/ | */ | |||
class TGLFormat { | class TGLFormat | |||
{ | ||||
public: | public: | |||
enum EFormatOptions { | enum EFormatOptions | |||
{ | ||||
kNone = 0, | ||||
kDoubleBuffer = 1, | kDoubleBuffer = 1, | |||
kDepth = 2, | kDepth = 2, | |||
kAccum = 4, | kAccum = 4, | |||
kStencil = 8, | kStencil = 8, | |||
kStereo = 16 | kStereo = 16, | |||
kMultiSample = 32 | ||||
}; | }; | |||
private: | private: | |||
Bool_t fDoubleBuffered; | Bool_t fDoubleBuffered; | |||
Bool_t fStereo; | Bool_t fStereo; | |||
UInt_t fDepthSize; | Int_t fDepthSize; | |||
UInt_t fAccumSize; | Int_t fAccumSize; | |||
UInt_t fStencilSize; | Int_t fStencilSize; | |||
Int_t fSamples; | ||||
static std::vector<Int_t> fgAvailableSamples; | ||||
static Int_t GetDefaultSamples(); | ||||
static void InitAvailableSamples(); | ||||
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. | |||
virtual ~TGLFormat(); | virtual ~TGLFormat(); | |||
Bool_t operator == (const TGLFormat &rhs)const; | Bool_t operator == (const TGLFormat &rhs)const; | |||
Bool_t operator != (const TGLFormat &rhs)const; | Bool_t operator != (const TGLFormat &rhs)const; | |||
UInt_t GetDepthSize()const; | Int_t GetDepthSize()const; | |||
void SetDepthSize(UInt_t depth); | void SetDepthSize(Int_t depth); | |||
Bool_t HasDepth()const; | Bool_t HasDepth()const; | |||
UInt_t GetStencilSize()const; | Int_t GetStencilSize()const; | |||
void SetStencilSize(UInt_t stencil); | void SetStencilSize(Int_t stencil); | |||
Bool_t HasStencil()const; | Bool_t HasStencil()const; | |||
UInt_t GetAccumSize()const; | Int_t GetAccumSize()const; | |||
void SetAccumSize(UInt_t accum); | void SetAccumSize(Int_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; | Bool_t IsStereo()const; | |||
void SetStereo(Bool_t db); | void SetStereo(Bool_t db); | |||
ClassDef(TGLFormat, 0) // Describes GL buffer format. | Int_t GetSamples()const; | |||
void SetSamples(Int_t samples); | ||||
Bool_t HasMultiSampling()const; | ||||
ClassDef(TGLFormat, 0); // Describes GL buffer format. | ||||
}; | }; | |||
#endif | #endif | |||
End of changes. 11 change blocks. | ||||
16 lines changed or deleted | 30 lines changed or added | |||
TGLObject.h | TGLObject.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLObject.h 33124 2010-04-21 20:04:42Z matevz $ | // @(#)root/gl:$Id: TGLObject.h 36384 2010-10-20 14:26:41Z matevz $ | |||
// Author: Matevz Tadel 7/4/2006 | // Author: Matevz Tadel 7/4/2006 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2006, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2006, 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_TGLObject | #ifndef ROOT_TGLObject | |||
#define ROOT_TGLObject | #define ROOT_TGLObject | |||
#include "TGLLogicalShape.h" | #include "TGLLogicalShape.h" | |||
#include "TMap.h" | #include "TMap.h" | |||
#include <stdexcept> | ||||
class TClass; | class TClass; | |||
class TGLObject : public TGLLogicalShape | class TGLObject : public TGLLogicalShape | |||
{ | { | |||
private: | private: | |||
static TMap fgGLClassMap; | static TMap fgGLClassMap; | |||
static TClass* SearchGLRenderer(TClass* cls); | static TClass* SearchGLRenderer(TClass* cls); | |||
protected: | protected: | |||
mutable Bool_t fMultiColor; // Are multiple colors used for object rende ring. | mutable Bool_t fMultiColor; // Are multiple colors used for object rende ring. | |||
Bool_t SetModelCheckClass(TObject* obj, TClass* cls); | Bool_t SetModelCheckClass(TObject* obj, TClass* cls); | |||
void SetAxisAlignedBBox(Float_t xmin, Float_t xmax, | void SetAxisAlignedBBox(Float_t xmin, Float_t xmax, | |||
Float_t ymin, Float_t ymax, | Float_t ymin, Float_t ymax, | |||
Float_t zmin, Float_t zmax); | Float_t zmin, Float_t zmax); | |||
void SetAxisAlignedBBox(const Float_t* p); | void SetAxisAlignedBBox(const Float_t* p); | |||
template <class TT> TT* SetModelDynCast(TObject* obj) | ||||
{ | ||||
TT *ret = dynamic_cast<TT*>(obj); | ||||
if (!ret) throw std::runtime_error("Object of wrong type passed."); | ||||
fExternalObj = obj; | ||||
return ret; | ||||
} | ||||
template <class TT> TT* DynCast(TObject* obj) | ||||
{ | ||||
TT *ret = dynamic_cast<TT*>(obj); | ||||
if (!ret) throw std::runtime_error("Object of wrong type passed."); | ||||
return ret; | ||||
} | ||||
public: | public: | |||
TGLObject() : TGLLogicalShape(0), fMultiColor(kFALSE) {} | TGLObject() : TGLLogicalShape(0), fMultiColor(kFALSE) {} | |||
virtual ~TGLObject() {} | virtual ~TGLObject() {} | |||
virtual Bool_t ShouldDLCache(const TGLRnrCtx& rnrCtx) const; | virtual Bool_t ShouldDLCache(const TGLRnrCtx& rnrCtx) const; | |||
// Kept from TGLLogicalShape | // Kept from TGLLogicalShape | |||
// virtual ELODAxes SupportedLODAxes() const { return kLODAxesNone; } | // virtual ELODAxes SupportedLODAxes() const { return kLODAxesNone; } | |||
// Changed from TGLLogicalShape | // Changed from TGLLogicalShape | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 17 lines changed or added | |||
TGLPadUtils.h | TGLPadUtils.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLPadUtils.h 33600 2010-05-21 09:24:32Z rdm $ | // @(#)root/gl:$Id: TGLPadUtils.h 36532 2010-11-08 10:36:48Z couet $ | |||
// Author: Timur Pocheptsov 06/05/2009 | // Author: Timur Pocheptsov 06/05/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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_TGLPadUtils | #ifndef ROOT_TGLPadUtils | |||
#define ROOT_TGLPadUtils | #define ROOT_TGLPadUtils | |||
#include <vector> | #include <vector> | |||
#include <list> | ||||
#ifndef ROOT_RStipples | #ifndef ROOT_RStipples | |||
#include "RStipples.h" | #include "RStipples.h" | |||
#endif | #endif | |||
#ifndef ROOT_TPoint | #ifndef ROOT_TPoint | |||
#include "TPoint.h" | #include "TPoint.h" | |||
#endif | #endif | |||
#ifndef ROOT_Rtypes | #ifndef ROOT_Rtypes | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
skipping to change at line 142 | skipping to change at line 143 | |||
void DrawFullSquare(UInt_t n, const TPoint *xy)const; | void DrawFullSquare(UInt_t n, const TPoint *xy)const; | |||
void DrawFullTrianlgeUp(UInt_t n, const TPoint *xy)const; | void DrawFullTrianlgeUp(UInt_t n, const TPoint *xy)const; | |||
void DrawFullTrianlgeDown(UInt_t n, const TPoint *xy)const; | void DrawFullTrianlgeDown(UInt_t n, const TPoint *xy)const; | |||
void DrawDiamond(UInt_t n, const TPoint *xy)const; | void DrawDiamond(UInt_t n, const TPoint *xy)const; | |||
void DrawCross(UInt_t n, const TPoint *xy)const; | void DrawCross(UInt_t n, const TPoint *xy)const; | |||
void DrawFullStar(UInt_t n, const TPoint *xy)const; | void DrawFullStar(UInt_t n, const TPoint *xy)const; | |||
void DrawOpenStar(UInt_t n, const TPoint *xy)const; | void DrawOpenStar(UInt_t n, const TPoint *xy)const; | |||
}; | }; | |||
// | ||||
// OpenGL's tesselator calls callback functions glBegin(MODE), glVertex3(v) | ||||
, glEnd(), | ||||
// where v can be new vertex (or existing) and MODE is a type of mesh patch | ||||
. | ||||
// MeshPatch_t is a class to save such a tesselation | ||||
// (instead of using glVertex and glBegin to draw. | ||||
// | ||||
struct MeshPatch_t { | ||||
MeshPatch_t(Int_t type) : fPatchType(type) | ||||
{} | ||||
Int_t fPatchType; //GL_QUADS, GL_QUAD_STRIP, etc. | ||||
std::vector<Double_t> fPatch; //vertices. | ||||
}; | ||||
typedef std::list<MeshPatch_t> Tesselation_t; | ||||
class Tesselator { | class Tesselator { | |||
public: | public: | |||
Tesselator(); | Tesselator(Bool_t dump = kFALSE); | |||
~Tesselator(); | ~Tesselator(); | |||
void *GetTess()const | void *GetTess()const | |||
{ | { | |||
return fTess; | return fTess; | |||
} | } | |||
static void SetDump(Tesselation_t *t) | ||||
{ | ||||
fVs = t; | ||||
} | ||||
static Tesselation_t *GetDump() | ||||
{ | ||||
return fVs; | ||||
} | ||||
private: | private: | |||
void *fTess; | void *fTess; | |||
static Tesselation_t *fVs;//the current tesselator's dump. | ||||
}; | }; | |||
/* | /* | |||
In future, this should be an interface to per-pad FBO. | In future, this should be an interface to per-pad FBO. | |||
Currently, in only save sizes and coordinates (?) | Currently, in only save sizes and coordinates (?) | |||
*/ | */ | |||
class OffScreenDevice { | class OffScreenDevice { | |||
friend class ::TGLPadPainter; | friend class ::TGLPadPainter; | |||
public: | public: | |||
OffScreenDevice(UInt_t w, UInt_t h, UInt_t x, UInt_t y, Bool_t top); | OffScreenDevice(UInt_t w, UInt_t h, UInt_t x, UInt_t y, Bool_t top); | |||
End of changes. 8 change blocks. | ||||
2 lines changed or deleted | 37 lines changed or added | |||
TGLPlotBox.h | TGLPlotBox.h | |||
---|---|---|---|---|
skipping to change at line 44 | skipping to change at line 44 | |||
const Bool_t fXOZSelectable; | const Bool_t fXOZSelectable; | |||
const Bool_t fYOZSelectable; | const Bool_t fYOZSelectable; | |||
Bool_t fSelectablePairs[4][2]; | Bool_t fSelectablePairs[4][2]; | |||
TGLVertex3 f3DBox[8]; | TGLVertex3 f3DBox[8]; | |||
mutable TGLVertex3 f2DBox[8]; | mutable TGLVertex3 f2DBox[8]; | |||
mutable TGLVertex3 f2DBoxU[8]; | mutable TGLVertex3 f2DBoxU[8]; | |||
mutable Int_t fFrontPoint; | mutable Int_t fFrontPoint; | |||
//The sizes of a "unit" cube. | ||||
Double_t fRangeXU; | ||||
Double_t fRangeYU; | ||||
Double_t fRangeZU; | ||||
public: | public: | |||
TGLPlotBox(Bool_t xoySelectable, Bool_t xozSelectable, Bool_t yozSelecta ble); | TGLPlotBox(Bool_t xoySelectable, Bool_t xozSelectable, Bool_t yozSelecta ble); | |||
//ClassDef macro adds some virtual functions, | //ClassDef macro adds some virtual functions, | |||
//so, to supress g++ warnings virtual destructor declared. | //so, to supress g++ warnings virtual destructor declared. | |||
virtual ~TGLPlotBox(); | virtual ~TGLPlotBox(); | |||
void DrawBox(Int_t selectedPart, Bool_t selectionPass, | void DrawBox(Int_t selectedPart, Bool_t selectionPass, | |||
const std::vector<Double_t> &zLevels, | const std::vector<Double_t> &zLevels, | |||
Bool_t highColor)const; | Bool_t highColor)const; | |||
void SetPlotBox(const Rgl::Range_t &xRange, | void SetPlotBox(const Rgl::Range_t &xRange, | |||
const Rgl::Range_t &yRange, | const Rgl::Range_t &yRange, | |||
const Rgl::Range_t &zRange); | const Rgl::Range_t &zRange); | |||
void SetPlotBox(const Rgl::Range_t &xRange, Double_t rangeXU, | ||||
const Rgl::Range_t &yRange, Double_t rangeYU, | ||||
const Rgl::Range_t &zRange, Double_t rangeZU); | ||||
void SetFrameColor(const TColor *color); | void SetFrameColor(const TColor *color); | |||
Int_t FindFrontPoint()const; | Int_t FindFrontPoint()const; | |||
Int_t GetFrontPoint()const; | Int_t GetFrontPoint()const; | |||
const TGLVertex3 *Get3DBox()const; | const TGLVertex3 *Get3DBox()const; | |||
const TGLVertex3 *Get2DBox()const; | const TGLVertex3 *Get2DBox()const; | |||
static const Int_t fgFramePlanes[][4]; | static const Int_t fgFramePlanes[][4]; | |||
static const Int_t fgBackPairs[][2]; | static const Int_t fgBackPairs[][2]; | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 9 lines changed or added | |||
TGLPlotPainter.h | TGLPlotPainter.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLPlotPainter.h 30298 2009-09-19 13:07:06Z matevz $ | // @(#)root/gl:$Id: TGLPlotPainter.h 36773 2010-11-19 12:26:30Z couet $ | |||
// Author: Timur Pocheptsov 14/06/2006 | // Author: Timur Pocheptsov 14/06/2006 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 305 | skipping to change at line 305 | |||
void RestoreProjectionMatrix()const; | void RestoreProjectionMatrix()const; | |||
ClassDef(TGLPlotPainter, 0) //Base for gl plots | ClassDef(TGLPlotPainter, 0) //Base for gl plots | |||
}; | }; | |||
/* | /* | |||
Auxiliary class, which holds different | Auxiliary class, which holds different | |||
information about plot's current coordinate system | information about plot's current coordinate system | |||
*/ | */ | |||
class TH2Poly; | ||||
class TGLPlotCoordinates { | class TGLPlotCoordinates { | |||
private: | private: | |||
EGLCoordType fCoordType; | EGLCoordType fCoordType; | |||
Rgl::BinRange_t fXBins; | Rgl::BinRange_t fXBins; | |||
Rgl::BinRange_t fYBins; | Rgl::BinRange_t fYBins; | |||
Rgl::BinRange_t fZBins; | Rgl::BinRange_t fZBins; | |||
Double_t fXScale; | Double_t fXScale; | |||
Double_t fYScale; | Double_t fYScale; | |||
skipping to change at line 350 | skipping to change at line 352 | |||
Bool_t GetXLog()const; | Bool_t GetXLog()const; | |||
void SetYLog(Bool_t yLog); | void SetYLog(Bool_t yLog); | |||
Bool_t GetYLog()const; | Bool_t GetYLog()const; | |||
void SetZLog(Bool_t zLog); | void SetZLog(Bool_t zLog); | |||
Bool_t GetZLog()const; | Bool_t GetZLog()const; | |||
void ResetModified(); | void ResetModified(); | |||
Bool_t Modified()const; | Bool_t Modified()const; | |||
// | ||||
Bool_t SetRanges(const TH1 *hist, Bool_t errors = kFALSE, Bool_t zBins = kFALSE); | Bool_t SetRanges(const TH1 *hist, Bool_t errors = kFALSE, Bool_t zBins = kFALSE); | |||
// | // | |||
Bool_t SetRanges(TH2Poly *hist); | ||||
// | ||||
Bool_t SetRanges(const TAxis *xAxis, const TAxis *yAxis, const TAxis *zA xis); | Bool_t SetRanges(const TAxis *xAxis, const TAxis *yAxis, const TAxis *zA xis); | |||
Int_t GetNXBins()const; | Int_t GetNXBins()const; | |||
Int_t GetNYBins()const; | Int_t GetNYBins()const; | |||
Int_t GetNZBins()const; | Int_t GetNZBins()const; | |||
const Rgl::BinRange_t &GetXBins()const; | const Rgl::BinRange_t &GetXBins()const; | |||
const Rgl::BinRange_t &GetYBins()const; | const Rgl::BinRange_t &GetYBins()const; | |||
const Rgl::BinRange_t &GetZBins()const; | const Rgl::BinRange_t &GetZBins()const; | |||
skipping to change at line 407 | skipping to change at line 411 | |||
ClassDef(TGLPlotCoordinates, 0)//Auxilary class, holds plot dimensions. | ClassDef(TGLPlotCoordinates, 0)//Auxilary class, holds plot dimensions. | |||
}; | }; | |||
class TGLLevelPalette; | class TGLLevelPalette; | |||
namespace Rgl { | namespace Rgl { | |||
void DrawPalette(const TGLPlotCamera * camera, const TGLLevelPalette & pale tte); | void DrawPalette(const TGLPlotCamera * camera, const TGLLevelPalette & pale tte); | |||
void DrawPaletteAxis(const TGLPlotCamera * camera, const Range_t & minMax, Bool_t logZ); | void DrawPaletteAxis(const TGLPlotCamera * camera, const Range_t & minMax, Bool_t logZ); | |||
//Polygonal histogram (TH2Poly) is slightly stretched along x and y. | ||||
extern const Double_t gH2PolyScaleXY; | ||||
} | } | |||
#endif | #endif | |||
End of changes. 5 change blocks. | ||||
2 lines changed or deleted | 9 lines changed or added | |||
TGLRnrCtx.h | TGLRnrCtx.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLRnrCtx.h 34006 2010-06-21 10:36:05Z matevz $ | // @(#)root/gl:$Id: TGLRnrCtx.h 36675 2010-11-15 20:33:58Z 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_TGLRnrCtx | #ifndef ROOT_TGLRnrCtx | |||
#define ROOT_TGLRnrCtx | #define ROOT_TGLRnrCtx | |||
skipping to change at line 259 | skipping to change at line 259 | |||
void RegisterFont(Int_t size, Int_t file, Int_t mode, TGLFont& out); | void RegisterFont(Int_t size, Int_t file, Int_t mode, TGLFont& out); | |||
void RegisterFont(Int_t size, const char* name, Int_t mode, TGLFont& ou t); | void RegisterFont(Int_t size, const char* name, Int_t mode, TGLFont& ou t); | |||
void RegisterFontNoScale(Int_t size, Int_t file, Int_t mode, TGLFont& o ut); | void RegisterFontNoScale(Int_t size, Int_t file, Int_t mode, TGLFont& o ut); | |||
void RegisterFontNoScale(Int_t size, const char* name, Int_t mode, TGLF ont& out); | void RegisterFontNoScale(Int_t size, const char* name, Int_t mode, TGLF ont& out); | |||
void ReleaseFont(TGLFont& font); | void ReleaseFont(TGLFont& font); | |||
GLUquadric* GetGluQuadric() { return fQuadric; } | GLUquadric* GetGluQuadric() { return fQuadric; } | |||
// Picture grabbing | // Picture grabbing | |||
void SetGrabImage(Bool_t gi, Int_t buf=-1) { fGrabImage = gi; fGrabB uffer = buf; } | void SetGrabImage(Bool_t gi) { fGrabImage = gi; } | |||
Bool_t GetGrabImage() const { return fGrabImage; } | Bool_t GetGrabImage() const { return fGrabImage; } | |||
Int_t GetGrabBuffer() const { return fGrabBuffer; } | ||||
UChar_t* GetGrabbedImage() const { return fGrabbedImage; } | ||||
void SetGrabbedImage(UChar_t* img) { fGrabbedImage = img; } | ||||
// Matrix manipulation helpers | // Matrix manipulation helpers | |||
void ProjectionMatrixPushIdentity(); | void ProjectionMatrixPushIdentity(); | |||
void ProjectionMatrixPop(); | void ProjectionMatrixPop(); | |||
ClassDef(TGLRnrCtx, 0); // Collection of objects and data passes along a ll rendering calls. | ClassDef(TGLRnrCtx, 0); // Collection of objects and data passes along a ll rendering calls. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
5 lines changed or deleted | 2 lines changed or added | |||
TGLSAViewer.h | TGLSAViewer.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLSAViewer.h 32770 2010-03-25 17:05:08Z matevz $ | // @(#)root/gl:$Id: TGLSAViewer.h 36895 2010-11-24 11:46:09Z 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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 47 | skipping to change at line 47 | |||
{ | { | |||
public: | public: | |||
enum EGLSACommands { | enum EGLSACommands { | |||
kGLHelpAbout, kGLHelpViewer, | kGLHelpAbout, kGLHelpViewer, | |||
kGLPerspYOZ, kGLPerspXOZ, kGLPerspXOY, | kGLPerspYOZ, kGLPerspXOZ, kGLPerspXOY, | |||
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, kGLHideMenus }; | |||
private: | private: | |||
// GUI components | // GUI components | |||
TGLSAFrame *fFrame; | TGLSAFrame *fFrame; | |||
TGLFormat *fFormat; | TGLFormat *fFormat; | |||
TGPopupMenu *fFileMenu; | TGPopupMenu *fFileMenu; | |||
TGPopupMenu *fFileSaveMenu; | TGPopupMenu *fFileSaveMenu; | |||
TGPopupMenu *fCameraMenu; | TGPopupMenu *fCameraMenu; | |||
TGPopupMenu *fHelpMenu; | TGPopupMenu *fHelpMenu; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TGLScenePad.h | TGLScenePad.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLScenePad.h 26649 2008-12-04 11:30:23Z matevz $ | // @(#)root/gl:$Id: TGLScenePad.h 36884 2010-11-23 17:52:08Z 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_TGLScenePad | #ifndef ROOT_TGLScenePad | |||
#define ROOT_TGLScenePad | #define ROOT_TGLScenePad | |||
skipping to change at line 55 | skipping to change at line 55 | |||
// Composite shape specific | // Composite shape specific | |||
typedef std::pair<UInt_t, RootCsg::TBaseMesh*> CSPart_t; | typedef std::pair<UInt_t, RootCsg::TBaseMesh*> CSPart_t; | |||
mutable TGLFaceSet *fComposite; //! Paritally created composite | mutable TGLFaceSet *fComposite; //! Paritally created composite | |||
UInt_t fCSLevel; | UInt_t fCSLevel; | |||
std::vector<CSPart_t> fCSTokens; | std::vector<CSPart_t> fCSTokens; | |||
RootCsg::TBaseMesh* BuildComposite(); | RootCsg::TBaseMesh* BuildComposite(); | |||
TGLLogicalShape* AttemptDirectRenderer(TObject* id); | TGLLogicalShape* AttemptDirectRenderer(TObject* id); | |||
Bool_t fSmartRefresh; //! cache logicals during scene rebuilds , use TAtt3D time-stamp to determine if they are still valid | Bool_t fSmartRefresh; //! cache logicals during scene rebuilds | |||
public: | public: | |||
TGLScenePad(TVirtualPad* pad); | TGLScenePad(TVirtualPad* pad); | |||
virtual ~TGLScenePad() {} | virtual ~TGLScenePad() {} | |||
TVirtualPad* GetPad() const { return fPad; } | TVirtualPad* GetPad() const { return fPad; } | |||
// void SetPad(TVirtualPad* p) { fPad = p; /* also need to drop contents */ } | // void SetPad(TVirtualPad* p) { fPad = p; /* also need to drop contents */ } | |||
// Histo import and Sub-pad traversal | // Histo import and Sub-pad traversal | |||
void AddHistoPhysical(TGLLogicalShape* log); | void AddHistoPhysical(TGLLogicalShape* log); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TGLUtil.h | TGLUtil.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLUtil.h 34006 2010-06-21 10:36:05Z matevz $ | // @(#)root/gl:$Id: TGLUtil.h 36624 2010-11-12 12:17:06Z couet $ | |||
// 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 1177 | skipping to change at line 1177 | |||
return &std::vector<T>::operator [] (ind * fRowLen); | return &std::vector<T>::operator [] (ind * fRowLen); | |||
} | } | |||
}; | }; | |||
class TGLPlotCoordinates; | class TGLPlotCoordinates; | |||
class TGLQuadric; | class TGLQuadric; | |||
class TAxis; | class TAxis; | |||
namespace Rgl { | namespace Rgl { | |||
extern const Float_t gRedEmission[]; | extern const Float_t gRedEmission[]; | |||
extern const Float_t gGreenEmission[]; | extern const Float_t gGreenEmission[]; | |||
extern const Float_t gBlueEmission[]; | extern const Float_t gBlueEmission[]; | |||
extern const Float_t gOrangeEmission[]; | extern const Float_t gOrangeEmission[]; | |||
extern const Float_t gWhiteEmission[]; | extern const Float_t gWhiteEmission[]; | |||
extern const Float_t gGrayEmission[]; | extern const Float_t gGrayEmission[]; | |||
extern const Float_t gNullEmission[]; | extern const Float_t gNullEmission[]; | |||
typedef std::pair<Int_t, Int_t> BinRange_t; | typedef std::pair<Int_t, Int_t> BinRange_t; | |||
typedef std::pair<Double_t, Double_t> Range_t; | typedef std::pair<Double_t, Double_t> Range_t; | |||
void ObjectIDToColor(Int_t objectID, Bool_t highColor); | void ObjectIDToColor(Int_t objectID, Bool_t highColor); | |||
Int_t ColorToObjectID(const UChar_t *color, Bool_t highColor); | Int_t ColorToObjectID(const UChar_t *color, Bool_t highColor); | |||
void DrawQuadOutline(const TGLVertex3 &v1, const TGLVertex3 &v2, | void DrawQuadOutline(const TGLVertex3 &v1, const TGLVertex3 &v2, | |||
const TGLVertex3 &v3, const TGLVertex3 &v4); | const TGLVertex3 &v3, const TGLVertex3 &v4); | |||
void DrawQuadFilled(const TGLVertex3 &v0, const TGLVertex3 &v1, | void DrawQuadFilled(const TGLVertex3 &v0, const TGLVertex3 &v1, | |||
const TGLVertex3 &v2, const TGLVertex3 &v3, | const TGLVertex3 &v2, const TGLVertex3 &v3, | |||
const TGLVector3 &normal); | const TGLVector3 &normal); | |||
void DrawSmoothFace(const TGLVertex3 &v1, const TGLVertex3 &v2, | void DrawQuadFilled(const Double_t *v0, const Double_t *v1, | |||
const TGLVertex3 &v3, const TGLVector3 &norm1, | const Double_t *v2, const Double_t *v3, | |||
const TGLVector3 &norm2, const TGLVector3 &norm3); | const Double_t *normal); | |||
void DrawBoxFront(Double_t xMin, Double_t xMax, Double_t yMin, Double_t | ||||
yMax, | void DrawSmoothFace(const TGLVertex3 &v1, const TGLVertex3 &v2, | |||
Double_t zMin, Double_t zMax, Int_t fp); | const TGLVertex3 &v3, const TGLVector3 &norm1, | |||
const TGLVector3 &norm2, const TGLVector3 &norm3); | ||||
void DrawBoxFrontTextured(Double_t xMin, Double_t xMax, Double_t yMin, | void DrawBoxFront(Double_t xMin, Double_t xMax, Double_t yMin, Double_t yMa | |||
Double_t yMax, Double_t zMin, Double_t zMax, | x, | |||
Double_t tMin, Double_t tMax, Int_t front); | Double_t zMin, Double_t zMax, Int_t fp); | |||
void DrawBoxFrontTextured(Double_t xMin, Double_t xMax, Double_t yMin, | ||||
Double_t yMax, Double_t zMin, Double_t zMax, | ||||
Double_t tMin, Double_t tMax, Int_t front); | ||||
#ifndef __CINT__ | #ifndef __CINT__ | |||
void DrawTrapezoidTextured(const Double_t ver[][2], Double_t zMin, Doubl | void DrawTrapezoidTextured(const Double_t ver[][2], Double_t zMin, Double_t | |||
e_t zMax, | zMax, | |||
Double_t tMin, Double_t tMax); | Double_t tMin, Double_t tMax); | |||
void DrawTrapezoidTextured(const Double_t ver[][3], Double_t texMin, Dou | void DrawTrapezoidTextured(const Double_t ver[][3], Double_t texMin, Double | |||
ble_t texMax); | _t texMax); | |||
void DrawTrapezoidTextured2(const Double_t ver[][2], Double_t zMin, Doub | void DrawTrapezoidTextured2(const Double_t ver[][2], Double_t zMin, Double_ | |||
le_t zMax, | t zMax, | |||
Double_t tMin, Double_t tMax); | Double_t tMin, Double_t tMax); | |||
#endif | #endif | |||
void DrawCylinder(TGLQuadric *quadric, Double_t xMin, Double_t xMax, Dou | void DrawCylinder(TGLQuadric *quadric, Double_t xMin, Double_t xMax, Double | |||
ble_t yMin, | _t yMin, | |||
Double_t yMax, Double_t zMin, Double_t zMax); | ||||
void DrawSphere(TGLQuadric *quadric, Double_t xMin, Double_t xMax, Doubl | ||||
e_t yMin, | ||||
Double_t yMax, Double_t zMin, Double_t zMax); | ||||
void DrawError(Double_t xMin, Double_t xMax, Double_t yMin, | ||||
Double_t yMax, Double_t zMin, Double_t zMax); | Double_t yMax, Double_t zMin, Double_t zMax); | |||
void DrawSphere(TGLQuadric *quadric, Double_t xMin, Double_t xMax, Double_t | ||||
yMin, | ||||
Double_t yMax, Double_t zMin, Double_t zMax); | ||||
void DrawError(Double_t xMin, Double_t xMax, Double_t yMin, | ||||
Double_t yMax, Double_t zMin, Double_t zMax); | ||||
#ifndef __CINT__ | #ifndef __CINT__ | |||
void DrawTrapezoid(const Double_t ver[][2], Double_t zMin, Double_t zMax | void DrawTrapezoid(const Double_t ver[][2], Double_t zMin, Double_t zMax, B | |||
, Bool_t color = kTRUE); | ool_t color = kTRUE); | |||
void DrawTrapezoid(const Double_t ver[][3]); | void DrawTrapezoid(const Double_t ver[][3]); | |||
#endif | #endif | |||
void DrawAxes(Int_t frontPoint, const Int_t *viewport, const TGLVertex3 | void DrawAxes(Int_t frontPoint, const Int_t *viewport, const TGLVertex3 *bo | |||
*box2D, | x2D, | |||
const TGLPlotCoordinates *plotCoord, TAxis *xAxis, TAxis * | const TGLPlotCoordinates *plotCoord, TAxis *xAxis, TAxis *yAx | |||
yAxis, | is, | |||
TAxis *zAxis); | TAxis *zAxis); | |||
void SetZLevels(TAxis *zAxis, Double_t zMin, Double_t zMax, | void SetZLevels(TAxis *zAxis, Double_t zMin, Double_t zMax, | |||
Double_t zScale, std::vector<Double_t> &zLevels); | Double_t zScale, std::vector<Double_t> &zLevels); | |||
void DrawFaceTextured(const TGLVertex3 &v1, const TGLVertex3 &v2, const | void DrawFaceTextured(const TGLVertex3 &v1, const TGLVertex3 &v2, const TGL | |||
TGLVertex3 &v3, | Vertex3 &v3, | |||
Double_t t1, Double_t t2, Double_t t3, const TGLVe | Double_t t1, Double_t t2, Double_t t3, const TGLVecto | |||
ctor3 &norm1, | r3 &norm1, | |||
const TGLVector3 &norm2, const TGLVector3 &norm3); | const TGLVector3 &norm2, const TGLVector3 &norm3); | |||
void DrawFaceTextured(const TGLVertex3 &v1, const TGLVertex3 &v2, const | void DrawFaceTextured(const TGLVertex3 &v1, const TGLVertex3 &v2, const TGL | |||
TGLVertex3 &v3, | Vertex3 &v3, | |||
Double_t t1, Double_t t2, Double_t t3, Double_t z, | Double_t t1, Double_t t2, Double_t t3, Double_t z, co | |||
const TGLVector3 &planeNormal); | nst TGLVector3 &planeNormal); | |||
void GetColor(Float_t v, Float_t vmin, Float_t vmax, Int_t type, Float_t | void GetColor(Float_t v, Float_t vmin, Float_t vmax, Int_t type, Float_t *r | |||
*rgba); | gba); | |||
class TGuardBase { | ||||
private: | ||||
mutable Bool_t fActive; | ||||
TGuardBase &operator = (const TGuardBase &rhs); | ||||
protected: | ||||
TGuardBase() | ||||
: fActive(kTRUE) | ||||
{ | ||||
} | ||||
TGuardBase(const TGuardBase &rhs) | ||||
: fActive(kTRUE) | ||||
{ | ||||
rhs.fActive = kFALSE; | ||||
} | ||||
Bool_t IsActive()const | ||||
{ | ||||
return fActive; | ||||
} | ||||
public: | class TGuardBase { | |||
void Stop()const | private: | |||
{ | mutable Bool_t fActive; | |||
fActive = kFALSE; | ||||
} | ||||
}; | ||||
template<class Func, class Arg> | TGuardBase &operator = (const TGuardBase &rhs); | |||
class TOneArgGuard : public TGuardBase { | protected: | |||
private: | TGuardBase() | |||
Func fFunc; | : fActive(kTRUE) | |||
Arg fArg; | { | |||
public: | } | |||
TOneArgGuard(Func f, Arg a) | TGuardBase(const TGuardBase &rhs) | |||
: fFunc(f), fArg(a) | : fActive(kTRUE) | |||
{ | { | |||
} | rhs.fActive = kFALSE; | |||
~TOneArgGuard() | } | |||
{ | ||||
if (IsActive()) | ||||
fFunc(fArg); | ||||
} | ||||
}; | ||||
template<class Func, class Arg1, class Arg2> | Bool_t IsActive()const | |||
class TTwoArgsGuard : public TGuardBase { | { | |||
private: | return fActive; | |||
Func fFunc; | } | |||
Arg1 fArg1; | ||||
Arg2 fArg2; | ||||
public: | public: | |||
TTwoArgsGuard(Func f, Arg1 a1, Arg2 a2) | void Stop()const | |||
: fFunc(f), fArg1(a1), fArg2(a2) | { | |||
{ | fActive = kFALSE; | |||
} | } | |||
~TTwoArgsGuard() | }; | |||
{ | ||||
if (IsActive()) | ||||
fFunc(fArg1, fArg2); | ||||
} | ||||
}; | ||||
template<class Func, class Arg> | template<class Func, class Arg> | |||
TOneArgGuard<Func, Arg> make_guard(Func f, Arg a) | class TOneArgGuard : public TGuardBase { | |||
private: | ||||
Func fFunc; | ||||
Arg fArg; | ||||
public: | ||||
TOneArgGuard(Func f, Arg a) | ||||
: fFunc(f), fArg(a) | ||||
{ | { | |||
return TOneArgGuard<Func, Arg>(f, a); | ||||
} | } | |||
~TOneArgGuard() | ||||
{ | ||||
if (IsActive()) | ||||
fFunc(fArg); | ||||
} | ||||
}; | ||||
template<class Func, class Arg1, class Arg2> | template<class Func, class Arg1, class Arg2> | |||
TTwoArgsGuard<Func, Arg1, Arg2> make_guard(Func f, Arg1 a1, Arg2 a2) | class TTwoArgsGuard : public TGuardBase { | |||
private: | ||||
Func fFunc; | ||||
Arg1 fArg1; | ||||
Arg2 fArg2; | ||||
public: | ||||
TTwoArgsGuard(Func f, Arg1 a1, Arg2 a2) | ||||
: fFunc(f), fArg1(a1), fArg2(a2) | ||||
{ | { | |||
return TTwoArgsGuard<Func, Arg1, Arg2>(f, a1, a2); | ||||
} | } | |||
~TTwoArgsGuard() | ||||
{ | ||||
if (IsActive()) | ||||
fFunc(fArg1, fArg2); | ||||
} | ||||
}; | ||||
template<class Func, class Arg> | ||||
TOneArgGuard<Func, Arg> make_guard(Func f, Arg a) | ||||
{ | ||||
return TOneArgGuard<Func, Arg>(f, a); | ||||
} | } | |||
template<class Func, class Arg1, class Arg2> | ||||
TTwoArgsGuard<Func, Arg1, Arg2> make_guard(Func f, Arg1 a1, Arg2 a2) | ||||
{ | ||||
return TTwoArgsGuard<Func, Arg1, Arg2>(f, a1, a2); | ||||
} | ||||
}//namespace Rgl. | ||||
class TGLLevelPalette { | class TGLLevelPalette { | |||
private: | private: | |||
std::vector<UChar_t> fTexels; | std::vector<UChar_t> fTexels; | |||
const std::vector<Double_t> *fContours; | const std::vector<Double_t> *fContours; | |||
UInt_t fPaletteSize; | UInt_t fPaletteSize; | |||
mutable UInt_t fTexture; | mutable UInt_t fTexture; | |||
Int_t fMaxPaletteSize; | Int_t fMaxPaletteSize; | |||
Rgl::Range_t fZRange; | Rgl::Range_t fZRange; | |||
TGLLevelPalette(const TGLLevelPalette&); // Not implemented | TGLLevelPalette(const TGLLevelPalette&); // Not implemented | |||
End of changes. 18 change blocks. | ||||
132 lines changed or deleted | 137 lines changed or added | |||
TGLViewer.h | TGLViewer.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLViewer.h 33864 2010-06-14 09:47:19Z matevz $ | // @(#)root/gl:$Id: TGLViewer.h 37327 2010-12-06 12:23:33Z 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 45 | skipping to change at line 45 | |||
class TGLSceneBase; | class TGLSceneBase; | |||
class TGLRedrawTimer; | class TGLRedrawTimer; | |||
class TGLViewerEditor; | class TGLViewerEditor; | |||
class TGLWidget; | class TGLWidget; | |||
class TGLLightSet; | class TGLLightSet; | |||
class TGLClipSet; | class TGLClipSet; | |||
class TGLManipSet; | class TGLManipSet; | |||
class TGLCameraOverlay; | class TGLCameraOverlay; | |||
class TGLContextIdentity; | class TGLContextIdentity; | |||
class TGLAutoRotator; | ||||
class TTimer; | class TTimer; | |||
class TContextMenu; | class TContextMenu; | |||
class TGedEditor; | class TGedEditor; | |||
class TGLPShapeObj; | class TGLPShapeObj; | |||
class TGLViewer : public TVirtualViewer3D, | class TGLViewer : public TVirtualViewer3D, | |||
public TGLViewerBase, | public TGLViewerBase, | |||
public TQObject | public TQObject | |||
skipping to change at line 94 | skipping to change at line 95 | |||
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; //! | |||
TGLAutoRotator *fAutoRotator; //! | ||||
// Stereo | // Stereo | |||
Bool_t fStereo; //! use stereo rendering | 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 fStereoZeroParallax; //! position of zero-paralla x plane: 0 - near clipping plane, 1 - far clipping plane | |||
Float_t fStereoEyeOffsetFac; //! | Float_t fStereoEyeOffsetFac; //! | |||
Float_t fStereoFrustumAsymFac; //! | Float_t fStereoFrustumAsymFac; //! | |||
// Lights | // Lights | |||
TGLLightSet *fLightSet; //! | TGLLightSet *fLightSet; //! | |||
// Clipping | // Clipping | |||
skipping to change at line 148 | skipping to change at line 150 | |||
Float_t fLineScale; //! width scale for lines | Float_t fLineScale; //! width scale for lines | |||
Bool_t fSmoothPoints; //! smooth point edge rendering | Bool_t fSmoothPoints; //! smooth point edge rendering | |||
Bool_t fSmoothLines; //! smooth line edge rendering | Bool_t fSmoothLines; //! smooth line edge rendering | |||
Int_t fAxesType; //! axes type | Int_t fAxesType; //! axes type | |||
Bool_t fAxesDepthTest; //! remove guides hidden-lines | Bool_t fAxesDepthTest; //! remove guides hidden-lines | |||
Bool_t fReferenceOn; //! reference marker on? | Bool_t fReferenceOn; //! reference marker on? | |||
TGLVertex3 fReferencePos; //! reference position | TGLVertex3 fReferencePos; //! reference position | |||
Bool_t fDrawCameraCenter; //! reference marker on? | Bool_t fDrawCameraCenter; //! reference marker on? | |||
TGLCameraOverlay *fCameraOverlay; //! markup size of viewport in scene units | TGLCameraOverlay *fCameraOverlay; //! markup size of viewport in scene units | |||
Bool_t fInitGL; //! has GL been initialised? | Bool_t fSmartRefresh; //! cache logicals during scene rebuilds | |||
Bool_t fSmartRefresh; //! cache logicals during scene rebuilds | ||||
, use TAtt3D time-stamp to determine if they are still valid | ||||
// Debug tracing (for scene rebuilds) | // Debug tracing (for scene rebuilds) | |||
Bool_t fDebugMode; //! debug mode (forced rebuild + d raw scene/frustum/interest boxes) | Bool_t fDebugMode; //! debug mode (forced rebuild + d raw scene/frustum/interest boxes) | |||
Bool_t fIsPrinting; //! | Bool_t fIsPrinting; //! | |||
TString fPictureFileName; //! default file-name for SavePict ure() | TString fPictureFileName; //! default file-name for SavePict ure() | |||
Float_t fFader; //! fade the view (0 - no fade/def ault, 1 - full fade/no rendering done) | Float_t fFader; //! fade the view (0 - no fade/def ault, 1 - full fade/no rendering done) | |||
static TGLColorSet fgDefaultColorSet; //! a shared, defa ult color-set | static TGLColorSet fgDefaultColorSet; //! a shared, defa ult color-set | |||
static Bool_t fgUseDefaultColorSetForNewViewers; //! name says it a ll | static Bool_t fgUseDefaultColorSetForNewViewers; //! name says it a ll | |||
skipping to change at line 194 | skipping to change at line 195 | |||
// Updata/camera-reset behaviour | // Updata/camera-reset behaviour | |||
Bool_t fIgnoreSizesOnUpdate; // ignore sizes of bounding- boxes on update | Bool_t fIgnoreSizesOnUpdate; // ignore sizes of bounding- boxes on update | |||
Bool_t fResetCamerasOnUpdate; // reposition camera on each update | Bool_t fResetCamerasOnUpdate; // reposition camera on each update | |||
Bool_t fResetCamerasOnNextUpdate; // reposition camera on next update | Bool_t fResetCamerasOnNextUpdate; // reposition camera on next update | |||
public: | public: | |||
TGLViewer(TVirtualPad* pad, Int_t x, Int_t y, Int_t width, Int_t height) ; | TGLViewer(TVirtualPad* pad, Int_t x, Int_t y, Int_t width, Int_t height) ; | |||
TGLViewer(TVirtualPad* pad); | TGLViewer(TVirtualPad* pad); | |||
virtual ~TGLViewer(); | virtual ~TGLViewer(); | |||
void ResetInitGL(); | ||||
// TVirtualViewer3D interface ... mostly a facade | // TVirtualViewer3D interface ... mostly a facade | |||
// Forward to TGLScenePad | // Forward to TGLScenePad | |||
virtual Bool_t CanLoopOnPrimitives() const { return kTRUE; } | virtual Bool_t CanLoopOnPrimitives() const { return kTRUE; } | |||
virtual void PadPaint(TVirtualPad* pad); | virtual void PadPaint(TVirtualPad* pad); | |||
// Actually used by GL-in-pad | // Actually used by GL-in-pad | |||
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py); | virtual Int_t DistancetoPrimitive(Int_t px, Int_t py); | |||
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py); | virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py); | |||
// Only implemented because they're abstract ... should throw an | // Only implemented because they're abstract ... should throw an | |||
// exception or assert they are not called. | // exception or assert they are not called. | |||
skipping to change at line 279 | skipping to change at line 278 | |||
void SetPerspectiveCamera(ECameraType camera, Double_t fov, Double_t dol ly, | void SetPerspectiveCamera(ECameraType camera, Double_t fov, Double_t dol ly, | |||
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; } | |||
TGLAutoRotator* GetAutoRotator(); | ||||
void SetAutoRotator(TGLAutoRotator* ar); | ||||
// Stereo | // Stereo | |||
Bool_t GetStereo() const { return fStereo; } | Bool_t GetStereo() const { return fStereo; } | |||
Float_t GetStereoZeroParallax() const { return fStereoZeroParallax; } | Float_t GetStereoZeroParallax() const { return fStereoZeroParallax; } | |||
Float_t GetStereoEyeOffsetFac() const { return fStereoEyeOffsetFac; } | Float_t GetStereoEyeOffsetFac() const { return fStereoEyeOffsetFac; } | |||
Float_t GetStereoFrustumAsymFac() const { return fStereoFrustumAsymFac; } | Float_t GetStereoFrustumAsymFac() const { return fStereoFrustumAsymFac; } | |||
void SetStereo(Bool_t s) { fStereo = s; } | void SetStereo(Bool_t s) { fStereo = s; } | |||
void SetStereoZeroParallax(Float_t f) { fStereoZeroParallax = f; } | void SetStereoZeroParallax(Float_t f) { fStereoZeroParallax = f; } | |||
void SetStereoEyeOffsetFac(Float_t f) { fStereoEyeOffsetFac = f; } | void SetStereoEyeOffsetFac(Float_t f) { fStereoEyeOffsetFac = f; } | |||
skipping to change at line 309 | skipping to change at line 310 | |||
// 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(Bool_t swap_buffers=kTRUE); | |||
void DoDrawMono(); | void DoDrawMono(Bool_t swap_buffers); | |||
void DoDrawStereo(); | void DoDrawStereo(Bool_t swap_buffers); | |||
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. 7 change blocks. | ||||
9 lines changed or deleted | 9 lines changed or added | |||
TGLViewerEditor.h | TGLViewerEditor.h | |||
---|---|---|---|---|
skipping to change at line 94 | skipping to change at line 94 | |||
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 *fARotDt, *fARotWPhi; | ||||
TGNumberEntry *fARotATheta, *fARotWTheta; | ||||
TGNumberEntry *fARotADolly, *fARotWDolly; | ||||
TGNumberEntry *fStereoZeroParallax; | TGNumberEntry *fStereoZeroParallax; | |||
TGNumberEntry *fStereoEyeOffsetFac; | TGNumberEntry *fStereoEyeOffsetFac; | |||
TGNumberEntry *fStereoFrustumAsymFac; | 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 CreateExtrasTab(); | |||
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 140 | skipping to change at line 144 | |||
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 | // Extras | |||
void UpdateRotator(); | ||||
void DoRotatorStart(); | ||||
void DoRotatorStop(); | ||||
void UpdateStereo(); | 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 | |||
}; | }; | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 9 lines changed or added | |||
TGLWSIncludes.h | TGLWSIncludes.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLWSIncludes.h 29056 2009-06-17 14:36:59Z matevz $ | // @(#)root/gl:$Id: TGLWSIncludes.h 36706 2010-11-16 18:48:09Z 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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
// Window-system specific GL includes. | // Window-system specific GL includes. | |||
// Inclusion should only be necessary in in low-level system files. | // Inclusion should only be necessary in in low-level system files. | |||
#ifndef ROOT_TGLWSIncludes | #ifndef ROOT_TGLWSIncludes | |||
#include "TGLIncludes.h" | #include "TGLIncludes.h" | |||
#ifdef WIN32 | #if defined(WIN32) | |||
#include <GL/wglew.h> | # include <GL/wglew.h> | |||
#else | #else | |||
#include <GL/glxew.h> | # if defined(__APPLE__) | |||
# define GLEW_APPLE_GLX | ||||
# endif | ||||
# include <GL/glxew.h> | ||||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
4 lines changed or deleted | 7 lines changed or added | |||
TGLWidget.h | TGLWidget.h | |||
---|---|---|---|---|
// @(#)root/gl:$Id: TGLWidget.h 26250 2008-11-17 20:56:44Z matevz $ | // @(#)root/gl:$Id: TGLWidget.h 36675 2010-11-15 20:33:58Z 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_TGLWidget | #ifndef ROOT_TGLWidget | |||
#define ROOT_TGLWidget | #define ROOT_TGLWidget | |||
skipping to change at line 52 | skipping to change at line 52 | |||
TGLFormat fGLFormat; | TGLFormat fGLFormat; | |||
//fFromCtor checks that SetFormat was called only from ctor. | //fFromCtor checks that SetFormat was called only from ctor. | |||
Bool_t fFromInit; | Bool_t fFromInit; | |||
std::set<TGLContext *> fValidContexts; | std::set<TGLContext *> fValidContexts; | |||
TGEventHandler *fEventHandler; | TGEventHandler *fEventHandler; | |||
public: | public: | |||
static TGLWidget* CreateDummy(); | ||||
static TGLWidget* Create(const TGWindow* parent, Bool_t selectInput, | static TGLWidget* Create(const TGWindow* parent, Bool_t selectInput, | |||
Bool_t shareDefault, const TGLPaintDevice *shareDevice, | Bool_t shareDefault, const TGLPaintDevice *shareDevice, | |||
UInt_t width, UInt_t height); | UInt_t width, UInt_t height); | |||
static TGLWidget* Create(const TGLFormat &format, | static TGLWidget* Create(const TGLFormat &format, | |||
const TGWindow* parent, Bool_t selectInput, | const TGWindow* parent, Bool_t selectInput, | |||
Bool_t shareDefault, const TGLPaintDevice *shareDevice, | Bool_t shareDefault, const TGLPaintDevice *shareDevice, | |||
UInt_t width, UInt_t height); | UInt_t width, UInt_t height); | |||
~TGLWidget(); | ~TGLWidget(); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
TGListBox.h | TGListBox.h | |||
---|---|---|---|---|
// @(#)root/gui:$Id: TGListBox.h 33569 2010-05-18 17:56:20Z bellenot $ | // @(#)root/gui:$Id: TGListBox.h 36119 2010-10-06 14:10:03Z rdm $ | |||
// Author: Fons Rademakers 12/01/98 | // Author: Fons Rademakers 12/01/98 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 263 | skipping to change at line 263 | |||
virtual void InsertEntry(TGLBEntry *lbe, TGLayoutHints *lhints, Int_t af terID); | virtual void InsertEntry(TGLBEntry *lbe, TGLayoutHints *lhints, Int_t af terID); | |||
virtual void RemoveEntry(Int_t id); | virtual void RemoveEntry(Int_t id); | |||
virtual void RemoveEntries(Int_t from_ID, Int_t to_ID); | virtual void RemoveEntries(Int_t from_ID, Int_t to_ID); | |||
virtual void RemoveAll(); | virtual void RemoveAll(); | |||
virtual void ActivateItem(TGFrameElement *el); | virtual void ActivateItem(TGFrameElement *el); | |||
virtual void Associate(const TGWindow *w) { fMsgWindow = w; } | virtual void Associate(const TGWindow *w) { fMsgWindow = w; } | |||
virtual void SetListBox(TGListBox *lb) { fListBox = lb; } | virtual void SetListBox(TGListBox *lb) { fListBox = lb; } | |||
TGListBox *GetListBox() const { return fListBox; } | TGListBox *GetListBox() const { return fListBox; } | |||
virtual Bool_t HandleButton(Event_t *event); | virtual Bool_t HandleButton(Event_t *event); | |||
virtual Bool_t HandleDoubleClick(Event_t *event); | ||||
virtual Bool_t HandleMotion(Event_t *event); | virtual Bool_t HandleMotion(Event_t *event); | |||
virtual Int_t GetSelected() const; | virtual Int_t GetSelected() const; | |||
virtual Bool_t GetSelection(Int_t id); | virtual Bool_t GetSelection(Int_t id); | |||
virtual Int_t GetPos(Int_t id); | virtual Int_t GetPos(Int_t id); | |||
TGLBEntry *GetSelectedEntry() const { return fLastActive; } | TGLBEntry *GetSelectedEntry() const { return fLastActive; } | |||
virtual void GetSelectedEntries(TList *selected); | virtual void GetSelectedEntries(TList *selected); | |||
virtual TGLBEntry *Select(Int_t id, Bool_t sel); | virtual TGLBEntry *Select(Int_t id, Bool_t sel); | |||
virtual TGLBEntry *Select(Int_t id); | virtual TGLBEntry *Select(Int_t id); | |||
virtual TGVScrollBar *GetVScrollbar() const; | virtual TGVScrollBar *GetVScrollbar() const; | |||
skipping to change at line 367 | skipping to change at line 368 | |||
virtual Bool_t GetSelection(Int_t id) { return fLbc->GetSelection(id); } | virtual Bool_t GetSelection(Int_t id) { return fLbc->GetSelection(id); } | |||
virtual TGLBEntry *GetSelectedEntry() const { return fLbc->GetSelectedEn try(); } | virtual TGLBEntry *GetSelectedEntry() const { return fLbc->GetSelectedEn try(); } | |||
virtual void GetSelectedEntries(TList *selected); | virtual void GetSelectedEntries(TList *selected); | |||
UInt_t GetItemVsize() const { return fItemVsize; } | UInt_t GetItemVsize() const { return fItemVsize; } | |||
virtual void SavePrimitive(ostream &out, Option_t *option = ""); | virtual void SavePrimitive(ostream &out, Option_t *option = ""); | |||
virtual void Selected(Int_t widgetId, Int_t id); //*SIGNAL* | virtual void Selected(Int_t widgetId, Int_t id); //*SIGNAL* | |||
virtual void Selected(Int_t id) { Emit("Selected(Int_t)", id); } //*SIGN AL* | virtual void Selected(Int_t id) { Emit("Selected(Int_t)", id); } //*SIGN AL* | |||
virtual void Selected(const char *txt) { Emit("Selected(char*)", txt); } //*SIGNAL | virtual void Selected(const char *txt) { Emit("Selected(char*)", txt); } //*SIGNAL | |||
virtual void DoubleClicked(Int_t widgetId, Int_t id); //*SIGNAL* | ||||
virtual void DoubleClicked(Int_t id) { Emit("DoubleClicked(Int_t)", id); | ||||
} //*SIGNAL* | ||||
virtual void DoubleClicked(const char *txt) { Emit("DoubleClicked(char*) | ||||
", txt); } //*SIGNAL | ||||
virtual void SelectionChanged() { Emit("SelectionChanged()"); } //*SIGNA L* | virtual void SelectionChanged() { Emit("SelectionChanged()"); } //*SIGNA L* | |||
ClassDef(TGListBox,0) // Listbox widget | ClassDef(TGListBox,0) // Listbox widget | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 7 lines changed or added | |||
TGenCollectionProxy.h | TGenCollectionProxy.h | |||
---|---|---|---|---|
// @(#)root/io:$Id: TGenCollectionProxy.h 31136 2009-11-12 21:25:38Z pcanal $ | // @(#)root/io:$Id: TGenCollectionProxy.h 36061 2010-10-04 16:05:51Z pcanal $ | |||
// Author: Markus Frank 28/10/04 | // Author: Markus Frank 28/10/04 | |||
/************************************************************************* | /************************************************************************* | |||
* 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_TGenCollectionProxy | #ifndef ROOT_TGenCollectionProxy | |||
skipping to change at line 28 | skipping to change at line 28 | |||
// Proxy around an arbitrary container, which implements basic | // Proxy around an arbitrary container, which implements basic | |||
// functionality and iteration. | // functionality and iteration. | |||
// | // | |||
// In particular this is used to implement splitting and abstract | // In particular this is used to implement splitting and abstract | |||
// element access of any container. Access to compiled code is necessary | // element access of any container. Access to compiled code is necessary | |||
// to implement the abstract iteration sequence and functionality like | // to implement the abstract iteration sequence and functionality like | |||
// size(), clear(), resize(). resize() may be a void operation. | // size(), clear(), resize(). resize() may be a void operation. | |||
// | // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#ifndef ROOT_TVirtualCollectionProxy | ||||
#include "TVirtualCollectionProxy.h" | #include "TVirtualCollectionProxy.h" | |||
#include "TCollectionProxyFactory.h" | #endif | |||
#ifndef ROOT_TCollectionProxyInfo | ||||
#include "TCollectionProxyInfo.h" | ||||
#endif | ||||
#include <typeinfo> | #include <typeinfo> | |||
#include <string> | #include <string> | |||
#include <map> | ||||
#ifndef __CINT__ | ||||
#if defined(__APPLE__) | ||||
#include <stdlib.h> | ||||
#else | ||||
#include <malloc.h> | ||||
#endif | ||||
#endif | ||||
class TObjArray; | ||||
class TCollectionProxyFactory; | ||||
class TGenCollectionProxy | class TGenCollectionProxy | |||
: public TVirtualCollectionProxy | : public TVirtualCollectionProxy | |||
{ | { | |||
// Friend declaration | // Friend declaration | |||
friend class TCollectionProxyFactory; | friend class TCollectionProxyFactory; | |||
public: | public: | |||
skipping to change at line 226 | skipping to change at line 242 | |||
class Method0 { | class Method0 { | |||
public: | public: | |||
typedef void* (*Call_t)(); | typedef void* (*Call_t)(); | |||
Call_t call; | Call_t call; | |||
Method0() : call(0) { } | Method0() : call(0) { } | |||
Method0(Call_t c) : call(c) { } | Method0(Call_t c) : call(c) { } | |||
Method0(const Method0& m) : call(m.call) { } | Method0(const Method0& m) : call(m.call) { } | |||
void* invoke() const { return (*call)(); } | void* invoke() const { return (*call)(); } | |||
}; | }; | |||
/** @class TGenCollectionProxy::TStaging | ||||
* | ||||
* Small helper to stage the content of an associative | ||||
* container when reading and before inserting it in the | ||||
* actual collection. | ||||
* | ||||
* @author Ph.Canal | ||||
* @version 1.0 | ||||
* @date 20/08/2010 | ||||
*/ | ||||
class TStaging { | ||||
void *fTarget; // Pointer to the collection we are staging for. | ||||
void *fContent; // Pointer to the content | ||||
size_t fReserved; // Amount of space already reserved. | ||||
size_t fSize; // Number of elements | ||||
size_t fSizeOf; // size of each elements | ||||
public: | ||||
TStaging(size_t size, size_t size_of) : fTarget(0), fContent(0), fRes | ||||
erved(0), fSize(size), fSizeOf(size_of) | ||||
{ | ||||
// Usual constructor. Reserves the required number of elements. | ||||
fReserved = fSize; | ||||
fContent = ::malloc(fReserved * fSizeOf); | ||||
} | ||||
~TStaging() { | ||||
// Usual destructor | ||||
::free(fContent); | ||||
} | ||||
void *GetContent() { | ||||
// Return the location of the array of content. | ||||
return fContent; | ||||
} | ||||
void *GetEnd() { | ||||
// Return the 'end' of the array of content. | ||||
return ((char*)fContent) + fSize*fSizeOf; | ||||
} | ||||
size_t GetSize() { | ||||
// Return the number of elements. | ||||
return fSize; | ||||
} | ||||
void *GetTarget() { | ||||
// Get the address of the collection we are staging for. | ||||
return fTarget; | ||||
} | ||||
void Resize(size_t nelement) { | ||||
if (fReserved < nelement) { | ||||
fReserved = nelement; | ||||
fContent = ::realloc(fContent,fReserved * fSizeOf); | ||||
} | ||||
fSize = nelement; | ||||
} | ||||
void SetTarget(void *target) { | ||||
// Set the collection we are staging for. | ||||
fTarget = target; | ||||
} | ||||
}; | ||||
protected: | protected: | |||
typedef ROOT::TCollectionProxyInfo::Environ<char[64]> Env_t; | typedef ROOT::TCollectionProxyInfo::Environ<char[64]> Env_t; | |||
typedef ROOT::TCollectionProxyInfo::EnvironBase EnvironBase_t; | typedef ROOT::TCollectionProxyInfo::EnvironBase EnvironBase_t; | |||
typedef std::vector<TStaging*> Staged_t; // Collection of pre- allocated staged array for associative containers. | ||||
typedef std::vector<EnvironBase_t*> Proxies_t; | typedef std::vector<EnvironBase_t*> Proxies_t; | |||
mutable TObjArray *fReadMemberWise; // | ||||
Array of bundle of TStreamerInfoActions to stream out (read) | ||||
mutable std::map<std::string, TObjArray*> *fConversionReadMemberWise; // | ||||
Array of bundle of TStreamerInfoActions to stream out (read) derived from a | ||||
nother class. | ||||
typedef void (*Sizing_t)(void *obj, size_t size); | ||||
typedef void* (*Feedfunc_t)(void *from, void *to, size_t size); | ||||
typedef void* (*ArrIterfunc_t)(void *from, size_t size); | ||||
std::string fName; // Name of the class being proxied. | std::string fName; // Name of the class being proxied. | |||
Bool_t fPointers; // Flag to indicate if containee has pointers (key or value) | Bool_t fPointers; // Flag to indicate if containee has pointers (key or value) | |||
Method fClear; // Method cache for container accessors: clear container | Method fClear; // Method cache for container accessors: clear container | |||
Method fSize; // Container accessors: size of container | Method fSize; // Container accessors: size of container | |||
Method fResize; // Container accessors: resize container | Sizing_t fResize; // Container accessors: resize container | |||
Method fFirst; // Container accessors: generic iteration: fir st | Method fFirst; // Container accessors: generic iteration: fir st | |||
Method fNext; // Container accessors: generic iteration: nex t | Method fNext; // Container accessors: generic iteration: nex t | |||
Method fConstruct; // Container accessors: block construct | ArrIterfunc_t fConstruct; // Container accessors: block construct | |||
Method fDestruct; // Container accessors: block destruct | Sizing_t fDestruct; // Container accessors: block destruct | |||
Method fFeed; // Container accessors: block feed | Feedfunc_t fFeed; // Container accessors: block feed | |||
Method fCollect; // Method to collect objects from container | Method fCollect; // Method to collect objects from container | |||
Method0 fCreateEnv; // Method to allocate an Environment holder. | Method0 fCreateEnv; // Method to allocate an Environment holder. | |||
Value* fValue; // Descriptor of the container value type | Value* fValue; // Descriptor of the container value type | |||
Value* fVal; // Descriptor of the Value_type | Value* fVal; // Descriptor of the Value_type | |||
Value* fKey; // Descriptor of the key_type | Value* fKey; // Descriptor of the key_type | |||
EnvironBase_t*fEnv; // Address of the currently proxied object | EnvironBase_t*fEnv; // Address of the currently proxied object | |||
int fValOffset; // Offset from key to value (in maps) | int fValOffset; // Offset from key to value (in maps) | |||
int fValDiff; // Offset between two consecutive value_types (memory layout). | int fValDiff; // Offset between two consecutive value_types (memory layout). | |||
Proxies_t fProxyList; // Stack of recursive proxies | Proxies_t fProxyList; // Stack of recursive proxies | |||
Proxies_t fProxyKept; // Optimization: Keep proxies once they were c reated | Proxies_t fProxyKept; // Optimization: Keep proxies once they were c reated | |||
Staged_t fStaged; // Optimization: Keep staged array once they w ere created | ||||
int fSTL_type; // STL container type | int fSTL_type; // STL container type | |||
Info_t fTypeinfo; // Type information | Info_t fTypeinfo; // Type information | |||
TClass* fOnFileClass; // On file class | TClass* fOnFileClass; // On file class | |||
CreateIterators_t fFunctionCreateIterators; | ||||
DeleteTwoIterators_t fFunctionDeleteTwoIterators; | ||||
// Late initialization of collection proxy | // Late initialization of collection proxy | |||
TGenCollectionProxy* Initialize() const; | TGenCollectionProxy* Initialize() const; | |||
// Some hack to avoid const-ness. | // Some hack to avoid const-ness. | |||
virtual TGenCollectionProxy* InitializeEx(); | virtual TGenCollectionProxy* InitializeEx(); | |||
// Call to delete/destruct individual contained item. | // Call to delete/destruct individual contained item. | |||
virtual void DeleteItem(Bool_t force, void* ptr) const; | virtual void DeleteItem(Bool_t force, void* ptr) const; | |||
// Allow to check function pointers. | // Allow to check function pointers. | |||
void CheckFunctions() const; | void CheckFunctions() const; | |||
private: | ||||
TGenCollectionProxy(); // not implemented on purpose. | ||||
public: | public: | |||
// Virtual copy constructor. | // Virtual copy constructor. | |||
virtual TVirtualCollectionProxy* Generate() const; | virtual TVirtualCollectionProxy* Generate() const; | |||
// Copy constructor. | // Copy constructor. | |||
TGenCollectionProxy(const TGenCollectionProxy& copy); | TGenCollectionProxy(const TGenCollectionProxy& copy); | |||
// Initializing constructor | // Initializing constructor | |||
TGenCollectionProxy(Info_t typ, size_t iter_size); | TGenCollectionProxy(Info_t typ, size_t iter_size); | |||
TGenCollectionProxy(const ROOT::TCollectionProxyInfo &info, TClass *cl); | TGenCollectionProxy(const ROOT::TCollectionProxyInfo &info, TClass *cl); | |||
// Standard destructor. | // Standard destructor. | |||
virtual ~TGenCollectionProxy(); | virtual ~TGenCollectionProxy(); | |||
// Return a pointer to the TClass representing the container. | // Return a pointer to the TClass representing the container. | |||
virtual TClass *GetCollectionClass(); | virtual TClass *GetCollectionClass(); | |||
// Return the type of collection see TClassEdit::ESTLType | ||||
virtual Int_t GetCollectionType(); | ||||
// Return the offset between two consecutive value_types (memory layout) | ||||
. | ||||
virtual ULong_t GetIncrement(); | ||||
// Return the sizeof the collection object. | // Return the sizeof the collection object. | |||
virtual UInt_t Sizeof() const; | virtual UInt_t Sizeof() const; | |||
// Push new proxy environment. | // Push new proxy environment. | |||
virtual void PushProxy(void *objstart); | virtual void PushProxy(void *objstart); | |||
// Pop old proxy environment. | // Pop old proxy environment. | |||
virtual void PopProxy(); | virtual void PopProxy(); | |||
// Return true if the content is of type 'pointer to'. | // Return true if the content is of type 'pointer to'. | |||
skipping to change at line 330 | skipping to change at line 422 | |||
// Streamer function. | // Streamer function. | |||
virtual void Streamer(TBuffer &refBuffer); | virtual void Streamer(TBuffer &refBuffer); | |||
// Streamer I/O overload. | // Streamer I/O overload. | |||
virtual void Streamer(TBuffer &refBuffer, void *pObject, int siz); | virtual void Streamer(TBuffer &refBuffer, void *pObject, int siz); | |||
// TClassStreamer I/O overload. | // TClassStreamer I/O overload. | |||
virtual void operator()(TBuffer &refBuffer, void *pObject); | virtual void operator()(TBuffer &refBuffer, void *pObject); | |||
// Routine to read the content of the buffer into 'obj'. | ||||
virtual void ReadBuffer(TBuffer &b, void *obj); | ||||
virtual void ReadBuffer(TBuffer &b, void *obj, const TClass *onfileClass | ||||
); | ||||
virtual void SetOnFileClass( TClass* cl ) { fOnFileClass = cl; } | virtual void SetOnFileClass( TClass* cl ) { fOnFileClass = cl; } | |||
virtual TClass* GetOnFileClass() const { return fOnFileClass; } | virtual TClass* GetOnFileClass() const { return fOnFileClass; } | |||
// MemberWise actions | ||||
virtual TStreamerInfoActions::TActionSequence *GetConversionReadMemberWi | ||||
seActions(TClass *oldClass, Int_t version); | ||||
virtual TStreamerInfoActions::TActionSequence *GetReadMemberWiseActions( | ||||
Int_t version); | ||||
virtual TStreamerInfoActions::TActionSequence *GetWriteMemberWiseActions | ||||
(); | ||||
// Set of functions to iterate easily throught the collection | ||||
virtual CreateIterators_t GetFunctionCreateIterators(Bool_t read = kTRUE | ||||
); | ||||
// typedef void (*CreateIterators_t)(void *collection, void **begin_aren | ||||
a, void **end_arena); | ||||
// begin_arena and end_arena should contain the location of a memory are | ||||
na of size fgIteratorSize. | ||||
// If the collection iterator are of that size or less, the iterators wi | ||||
ll be constructed in place in those location (new with placement) | ||||
// Otherwise the iterators will be allocated via a regular new and their | ||||
address returned by modifying the value of begin_arena and end_arena. | ||||
virtual CopyIterator_t GetFunctionCopyIterator(Bool_t read = kTRUE); | ||||
// typedef void* (*CopyIterator_t)(void *dest, const void *source); | ||||
// Copy the iterator source, into dest. dest should contain the locati | ||||
on of a memory arena of size fgIteratorSize. | ||||
// If the collection iterator is of that size or less, the iterator will | ||||
be constructed in place in this location (new with placement) | ||||
// Otherwise the iterator will be allocated via a regular new and its ad | ||||
dress returned by modifying the value of dest. | ||||
virtual Next_t GetFunctionNext(Bool_t read = kTRUE); | ||||
// typedef void* (*Next_t)(void *iter, const void *end); | ||||
// iter and end should be pointers to respectively an iterator to be inc | ||||
remented and the result of collection.end() | ||||
// If the iterator has not reached the end of the collection, 'Next' inc | ||||
rement the iterator 'iter' and return 0 if | ||||
// the iterator reached the end. | ||||
// If the end was not reached, 'Next' returns the address of the content | ||||
pointed to by the iterator before the | ||||
// incrementation ; if the collection contains pointers, 'Next' will ret | ||||
urn the value of the pointer. | ||||
virtual DeleteIterator_t GetFunctionDeleteIterator(Bool_t read = kTRUE); | ||||
virtual DeleteTwoIterators_t GetFunctionDeleteTwoIterators(Bool_t read = | ||||
kTRUE); | ||||
// typedef void (*DeleteIterator_t)(void *iter); | ||||
// typedef void (*DeleteTwoIterators_t)(void *begin, void *end); | ||||
// If the size of the iterator is greater than fgIteratorArenaSize, call | ||||
delete on the addresses, | ||||
// Otherwise just call the iterator's destructor. | ||||
}; | }; | |||
template <typename T> | template <typename T> | |||
struct AnyCollectionProxy : public TGenCollectionProxy { | struct AnyCollectionProxy : public TGenCollectionProxy { | |||
AnyCollectionProxy() | AnyCollectionProxy() | |||
: TGenCollectionProxy(typeid(T::Cont_t),sizeof(T::Iter_t)) | : TGenCollectionProxy(typeid(T::Cont_t),sizeof(T::Iter_t)) | |||
{ | { | |||
// Constructor. | // Constructor. | |||
fValDiff = sizeof(T::Value_t); | fValDiff = sizeof(T::Value_t); | |||
fValOffset = T::value_offset(); | fValOffset = T::value_offset(); | |||
fSize.call = T::size; | fSize.call = T::size; | |||
fResize.call = T::resize; | fResize = T::resize; | |||
fNext.call = T::next; | fNext.call = T::next; | |||
fFirst.call = T::first; | fFirst.call = T::first; | |||
fClear.call = T::clear; | fClear.call = T::clear; | |||
fConstruct.call = T::construct; | fConstruct = T::construct; | |||
fDestruct.call = T::destruct; | fDestruct = T::destruct; | |||
fFeed.call = T::feed; | fFeed = T::feed; | |||
CheckFunctions(); | CheckFunctions(); | |||
} | } | |||
virtual ~AnyCollectionProxy() { } | virtual ~AnyCollectionProxy() { } | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 17 change blocks. | ||||
10 lines changed or deleted | 164 lines changed or added | |||
TGenCollectionStreamer.h | TGenCollectionStreamer.h | |||
---|---|---|---|---|
// @(#)root/io:$Id: TGenCollectionStreamer.h 23122 2008-04-10 14:56:30Z rdm $ | // @(#)root/io:$Id: TGenCollectionStreamer.h 36061 2010-10-04 16:05:51Z pca nal $ | |||
// Author: Markus Frank 28/10/04 | // Author: Markus Frank 28/10/04 | |||
/************************************************************************* | /************************************************************************* | |||
* 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_TGenCollectionStreamer | #ifndef ROOT_TGenCollectionStreamer | |||
skipping to change at line 24 | skipping to change at line 24 | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
// TGenCollectionStreamer | // TGenCollectionStreamer | |||
// | // | |||
// Streamer around an arbitrary STL like container, which implements basic | // Streamer around an arbitrary STL like container, which implements basic | |||
// container functionality. | // container functionality. | |||
// | // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#include "TGenCollectionProxy.h" | #include "TGenCollectionProxy.h" | |||
#include "TCollectionProxyFactory.h" | ||||
class TGenCollectionStreamer : public TGenCollectionProxy { | class TGenCollectionStreamer : public TGenCollectionProxy { | |||
protected: | protected: | |||
void ReadMapHelper(StreamHelper *i, Value *v, Bool_t vsn3, TBuffer &b); | void ReadMapHelper(StreamHelper *i, Value *v, Bool_t vsn3, TBuffer &b); | |||
void ReadMap(int nElements, TBuffer &b); | void ReadMap(int nElements, TBuffer &b); | |||
void ReadPairFromMap(int nElements, TBuffer &b); | void ReadPairFromMap(int nElements, TBuffer &b); | |||
void ReadObjects(int nElements, TBuffer &b); | void ReadObjects(int nElements, TBuffer &b); | |||
void ReadPrimitives(int nElements, TBuffer &b); | void ReadPrimitives(int nElements, TBuffer &b); | |||
void WriteMap(int nElements, TBuffer &b); | void WriteMap(int nElements, TBuffer &b); | |||
void WriteObjects(int nElements, TBuffer &b); | void WriteObjects(int nElements, TBuffer &b); | |||
void WritePrimitives(int nElements, TBuffer &b); | void WritePrimitives(int nElements, TBuffer &b); | |||
// typedef void (TGenCollectionStreamer::*ReadBufferConv_t)(TBuffer &b, v | ||||
oid *obj, const TClass *onfileClass); | ||||
// ReadBufferConv_t fReadBufferConvFunc; | ||||
typedef void (TGenCollectionStreamer::*ReadBuffer_t)(TBuffer &b, void *o | ||||
bj); | ||||
ReadBuffer_t fReadBufferFunc; | ||||
template <typename basictype> void ReadBufferVectorPrimitives(TBuffer &b | ||||
, void *obj); | ||||
void ReadBufferVectorPrimitivesFloat16(TBuffer &b, void *obj); | ||||
void ReadBufferVectorPrimitivesDouble32(TBuffer &b, void *obj); | ||||
void ReadBufferDefault(TBuffer &b, void *obj); | ||||
void ReadBufferGeneric(TBuffer &b, void *obj); | ||||
public: | public: | |||
// Virtual copy constructor | // Virtual copy constructor | |||
virtual TVirtualCollectionProxy* Generate() const; | virtual TVirtualCollectionProxy* Generate() const; | |||
// Copy constructor | // Copy constructor | |||
TGenCollectionStreamer(const TGenCollectionStreamer& copy); | TGenCollectionStreamer(const TGenCollectionStreamer& copy); | |||
// Initializing constructor | // Initializing constructor | |||
TGenCollectionStreamer(Info_t typ, size_t iter_size); | TGenCollectionStreamer(Info_t typ, size_t iter_size); | |||
TGenCollectionStreamer(const ROOT::TCollectionProxyInfo &info, TClass *c l); | TGenCollectionStreamer(const ROOT::TCollectionProxyInfo &info, TClass *c l); | |||
skipping to change at line 61 | skipping to change at line 74 | |||
// Streamer I/O overload | // Streamer I/O overload | |||
virtual void Streamer(TBuffer &refBuffer); | virtual void Streamer(TBuffer &refBuffer); | |||
// Streamer I/O overload | // Streamer I/O overload | |||
virtual void StreamerAsMap(TBuffer &refBuffer); | virtual void StreamerAsMap(TBuffer &refBuffer); | |||
// Streamer I/O overload | // Streamer I/O overload | |||
virtual void Streamer(TBuffer &buff, void *pObj, int siz) { | virtual void Streamer(TBuffer &buff, void *pObj, int siz) { | |||
TGenCollectionProxy::Streamer(buff, pObj, siz); | TGenCollectionProxy::Streamer(buff, pObj, siz); | |||
} | } | |||
// Routine to read the content of the buffer into 'obj'. | ||||
virtual void ReadBuffer(TBuffer &b, void *obj, const TClass *onfileClass | ||||
); | ||||
// Routine to read the content of the buffer into 'obj'. | ||||
virtual void ReadBuffer(TBuffer &b, void *obj); | ||||
}; | }; | |||
template <typename T> | template <typename T> | |||
struct AnyCollectionStreamer : public TGenCollectionStreamer { | struct AnyCollectionStreamer : public TGenCollectionStreamer { | |||
AnyCollectionStreamer() | AnyCollectionStreamer() | |||
: TGenCollectionStreamer(typeid(T::Cont_t),sizeof(T::Iter_t)) { | : TGenCollectionStreamer(typeid(T::Cont_t),sizeof(T::Iter_t)) { | |||
fValDiff = sizeof(T::Value_t); | fValDiff = sizeof(T::Value_t); | |||
fValOffset = T::value_offset(); | fValOffset = T::value_offset(); | |||
fSize.call = T::size; | fSize.call = T::size; | |||
fFirst.call = T::first; | fFirst.call = T::first; | |||
fNext.call = T::next; | fNext.call = T::next; | |||
fClear.call = T::clear; | fClear.call = T::clear; | |||
fResize.call = T::resize; | fResize = T::resize; | |||
fCollect.call = T::collect; | fCollect.call = T::collect; | |||
fConstruct.call = T::construct; | fConstruct = T::construct; | |||
fDestruct.call = T::destruct; | fDestruct = T::destruct; | |||
fFeed.call = T::feed; | fFeed = T::feed; | |||
CheckFunctions(); | CheckFunctions(); | |||
} | } | |||
virtual ~AnyCollectionStreamer() { } | virtual ~AnyCollectionStreamer() { } | |||
}; | }; | |||
// Forward declaration in the event of later seperation | // Forward declaration in the event of later seperation | |||
typedef TGenCollectionStreamer TGenMapStreamer; | typedef TGenCollectionStreamer TGenMapStreamer; | |||
#endif | #endif | |||
End of changes. 6 change blocks. | ||||
5 lines changed or deleted | 28 lines changed or added | |||
TGenericClassInfo.h | TGenericClassInfo.h | |||
---|---|---|---|---|
// @(#)root/base:$Id: TGenericClassInfo.h 32337 2010-02-12 16:09:35Z pcanal $ | // @(#)root/base:$Id: TGenericClassInfo.h 36954 2010-11-25 19:19:46Z pcanal $ | |||
// Author: Philippe Canal 23/2/02 | // Author: Philippe Canal 23/2/02 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2002, Rene Brun, Fons Rademakers and al. * | * Copyright (C) 1995-2002, Rene Brun, Fons Rademakers and al. * | |||
* 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 | |||
TVirtualIsAProxy *fIsA; | TVirtualIsAProxy *fIsA; | |||
ShowMembersFunc_t fShowMembers; | ShowMembersFunc_t fShowMembers; | |||
Int_t fVersion; | Int_t fVersion; | |||
NewFunc_t fNew; | NewFunc_t fNew; | |||
NewArrFunc_t fNewArray; | NewArrFunc_t fNewArray; | |||
DelFunc_t fDelete; | DelFunc_t fDelete; | |||
DelArrFunc_t fDeleteArray; | DelArrFunc_t fDeleteArray; | |||
DesFunc_t fDestructor; | DesFunc_t fDestructor; | |||
DirAutoAdd_t fDirAutoAdd; | DirAutoAdd_t fDirAutoAdd; | |||
TClassStreamer *fStreamer; | TClassStreamer *fStreamer; | |||
ClassStreamerFunc_t fStreamerFunc; | ||||
TVirtualCollectionProxy *fCollectionProxy; | TVirtualCollectionProxy *fCollectionProxy; | |||
Int_t fSizeof; | Int_t fSizeof; | |||
TCollectionProxyInfo *fCollectionProxyInfo; | TCollectionProxyInfo *fCollectionProxyInfo; | |||
TCollectionProxyInfo *fCollectionStreamerInfo; | TCollectionProxyInfo *fCollectionStreamerInfo; | |||
std::vector<TSchemaHelper> fReadRules; | std::vector<ROOT::TSchemaHelper> fReadRules; | |||
std::vector<TSchemaHelper> fReadRawRules; | std::vector<ROOT::TSchemaHelper> fReadRawRules; | |||
public: | public: | |||
TGenericClassInfo(const char *fullClassname, | TGenericClassInfo(const char *fullClassname, | |||
const char *declFileName, Int_t declFileLine, | const char *declFileName, Int_t declFileLine, | |||
const type_info &info, const TInitBehavior *action, | const type_info &info, const TInitBehavior *action, | |||
ShowMembersFunc_t showmembers, VoidFuncPtr_t diction ary, | ShowMembersFunc_t showmembers, VoidFuncPtr_t diction ary, | |||
TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof ); | TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof ); | |||
TGenericClassInfo(const char *fullClassname, Int_t version, | TGenericClassInfo(const char *fullClassname, Int_t version, | |||
const char *declFileName, Int_t declFileLine, | const char *declFileName, Int_t declFileLine, | |||
skipping to change at line 109 | skipping to change at line 110 | |||
DelFunc_t GetDelete() const; | DelFunc_t GetDelete() const; | |||
DelArrFunc_t GetDeleteArray() const; | DelArrFunc_t GetDeleteArray() const; | |||
DesFunc_t GetDestructor() const; | DesFunc_t GetDestructor() const; | |||
DirAutoAdd_t GetDirectoryAutoAdd() const; | DirAutoAdd_t GetDirectoryAutoAdd() const; | |||
const char *GetImplFileName(); | const char *GetImplFileName(); | |||
Int_t GetImplFileLine(); | Int_t GetImplFileLine(); | |||
const type_info &GetInfo() const; | const type_info &GetInfo() const; | |||
TVirtualIsAProxy *GetIsA() const; | TVirtualIsAProxy *GetIsA() const; | |||
NewFunc_t GetNew() const; | NewFunc_t GetNew() const; | |||
NewArrFunc_t GetNewArray() const; | NewArrFunc_t GetNewArray() const; | |||
const std::vector<TSchemaHelper> &GetReadRawRules() const; | const std::vector<ROOT::TSchemaHelper> &GetReadRawRules() const; | |||
const std::vector<TSchemaHelper> &GetReadRules() const; | const std::vector<ROOT::TSchemaHelper> &GetReadRules() const; | |||
ShowMembersFunc_t GetShowMembers() const; | ShowMembersFunc_t GetShowMembers() const; | |||
Int_t GetVersion() const; | Int_t GetVersion() const; | |||
TClass *IsA(const void *obj); | TClass *IsA(const void *obj); | |||
Short_t AdoptStreamer(TClassStreamer*); | Short_t AdoptStreamer(TClassStreamer*); | |||
Short_t AdoptCollectionProxy(TVirtualCollec tionProxy*); | Short_t AdoptCollectionProxy(TVirtualCollec tionProxy*); | |||
void AdoptCollectionProxyInfo(TCollectio nProxyInfo*); | void AdoptCollectionProxyInfo(TCollectio nProxyInfo*); | |||
void AdoptCollectionStreamerInfo(TCollec tionProxyInfo*); | void AdoptCollectionStreamerInfo(TCollec tionProxyInfo*); | |||
Int_t SetDeclFile(const char *file, Int_t line); | Int_t SetDeclFile(const char *file, Int_t line); | |||
void SetDelete(DelFunc_t deleteFunc); | void SetDelete(DelFunc_t deleteFunc); | |||
void SetDeleteArray(DelArrFunc_t deleteA rrayFunc); | void SetDeleteArray(DelArrFunc_t deleteA rrayFunc); | |||
void SetDestructor(DesFunc_t destructorF unc); | void SetDestructor(DesFunc_t destructorF unc); | |||
void SetDirectoryAutoAdd(DirAutoAdd_t di rAutoAdd); | void SetDirectoryAutoAdd(DirAutoAdd_t di rAutoAdd); | |||
void SetFromTemplate(); | void SetFromTemplate(); | |||
Int_t SetImplFile(const char *file, Int_t line); | Int_t SetImplFile(const char *file, Int_t line); | |||
void SetNew(NewFunc_t newFunc); | void SetNew(NewFunc_t newFunc); | |||
void SetNewArray(NewArrFunc_t newArrayFu nc); | void SetNewArray(NewArrFunc_t newArrayFu nc); | |||
void SetReadRawRules( const std::vector< | void SetReadRawRules( const std::vector< | |||
TSchemaHelper>& rules ); | ROOT::TSchemaHelper>& rules ); | |||
void SetReadRules( const std::vector<TSc | void SetReadRules( const std::vector<ROO | |||
hemaHelper>& rules ); | T::TSchemaHelper>& rules ); | |||
Short_t SetStreamer(ClassStreamerFunc_t); | Short_t SetStreamer(ClassStreamerFunc_t); | |||
void SetStreamerFunc(ClassStreamerFunc_t ); | ||||
Short_t SetVersion(Short_t version); | Short_t SetVersion(Short_t version); | |||
// protected: | // protected: | |||
private: | private: | |||
void CreateRuleSet( std::vector<TSchemaHelper>& vect, Bool_t ProcessR eadRules ); | void CreateRuleSet( std::vector<ROOT::TSchemaHelper>& vect, Bool_t Pr ocessReadRules ); | |||
TGenericClassInfo(const TGenericClassInfo&); // Not implemented | TGenericClassInfo(const TGenericClassInfo&); // Not implemented | |||
TGenericClassInfo& operator=(const TGenericClassInfo&); // Not implem ented | TGenericClassInfo& operator=(const TGenericClassInfo&); // Not implem ented | |||
private: | private: | |||
TGenericClassInfo(); | TGenericClassInfo(); | |||
}; | }; | |||
} | } | |||
End of changes. 7 change blocks. | ||||
10 lines changed or deleted | 12 lines changed or added | |||
TGeoNode.h | TGeoNode.h | |||
---|---|---|---|---|
// @(#)root/geom:$Id: TGeoNode.h 31454 2009-11-30 07:39:14Z brun $ | // @(#)root/geom:$Id: TGeoNode.h 35859 2010-09-29 13:59:30Z 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 221 | skipping to change at line 221 | |||
// / / | // / / | |||
// TGeoIteratorPlugin - Plugin for a TGeoIterator providing the method / / | // TGeoIteratorPlugin - Plugin for a TGeoIterator providing the method / / | |||
// ProcessNode each time Next is called. / / | // ProcessNode each time Next is called. / / | |||
// / / | // / / | |||
/////////////////////////////////////////////////////////////////////////// / | /////////////////////////////////////////////////////////////////////////// / | |||
class TGeoIterator; | class TGeoIterator; | |||
class TGeoIteratorPlugin : public TObject | class TGeoIteratorPlugin : public TObject | |||
{ | { | |||
private: | protected: | |||
const TGeoIterator *fIterator; // Caller iterator | const TGeoIterator *fIterator; // Caller iterator | |||
private: | ||||
// No copy | // No copy | |||
TGeoIteratorPlugin(const TGeoIteratorPlugin &); | TGeoIteratorPlugin(const TGeoIteratorPlugin &); | |||
TGeoIteratorPlugin &operator=(const TGeoIteratorPlugin &); | TGeoIteratorPlugin &operator=(const TGeoIteratorPlugin &); | |||
public: | public: | |||
TGeoIteratorPlugin() : TObject(),fIterator(0) {} | TGeoIteratorPlugin() : TObject(),fIterator(0) {} | |||
virtual ~TGeoIteratorPlugin() {} | virtual ~TGeoIteratorPlugin() {} | |||
virtual void ProcessNode() = 0; | virtual void ProcessNode() = 0; | |||
void SetIterator(const TGeoIterator *iter) {fIterator = ite r;} | void SetIterator(const TGeoIterator *iter) {fIterator = ite r;} | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 3 lines changed or added | |||
TGeoShapeAssembly.h | TGeoShapeAssembly.h | |||
---|---|---|---|---|
// @(#)root/geom:$Id: TGeoShapeAssembly.h 35047 2010-08-27 14:38:41Z agheat a $ | // @(#)root/geom:$Id: TGeoShapeAssembly.h 36632 2010-11-12 15:57:07Z agheat a $ | |||
// Author: Andrei Gheata 02/06/05 | // Author: Andrei Gheata 02/06/05 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 62 | skipping to change at line 62 | |||
Double_t step=TGeoShape::Big(), Double_t *safe=0) const; | Double_t step=TGeoShape::Big(), Double_t *safe=0) const; | |||
virtual TGeoVolume *Divide(TGeoVolume *voldiv, const char *divname, In t_t iaxis, Int_t ndiv, | virtual TGeoVolume *Divide(TGeoVolume *voldiv, const char *divname, In t_t iaxis, Int_t ndiv, | |||
Double_t start, Double_t step); | Double_t start, Double_t step); | |||
virtual TGeoShape *GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const; | virtual TGeoShape *GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const; | |||
virtual void GetMeshNumbers(Int_t &nvert, Int_t &nsegs, Int_t & npols) const; | virtual void GetMeshNumbers(Int_t &nvert, Int_t &nsegs, Int_t & npols) const; | |||
virtual Int_t GetNmeshVertices() const {return 0;} | virtual Int_t GetNmeshVertices() const {return 0;} | |||
virtual void InspectShape() const; | virtual void InspectShape() const; | |||
virtual Bool_t IsAssembly() const {return kTRUE;} | virtual Bool_t IsAssembly() const {return kTRUE;} | |||
virtual Bool_t IsCylType() const {return kFALSE;} | virtual Bool_t IsCylType() const {return kFALSE;} | |||
void NeedsBBoxRecompute() {fBBoxOK = kFALSE;} | void NeedsBBoxRecompute() {fBBoxOK = kFALSE;} | |||
void RecomputeBoxLast(); | ||||
virtual Double_t Safety(Double_t *point, Bool_t in=kTRUE) const; | virtual Double_t Safety(Double_t *point, Bool_t in=kTRUE) const; | |||
virtual void SavePrimitive(ostream &out, Option_t *option = "") ; | virtual void SavePrimitive(ostream &out, Option_t *option = "") ; | |||
virtual void SetPoints(Double_t *points) const; | virtual void SetPoints(Double_t *points) const; | |||
virtual void SetPoints(Float_t *points) const; | virtual void SetPoints(Float_t *points) const; | |||
virtual void SetSegsAndPols(TBuffer3D &buff) const; | virtual void SetSegsAndPols(TBuffer3D &buff) const; | |||
ClassDef(TGeoShapeAssembly, 2) // assembly shape | ClassDef(TGeoShapeAssembly, 2) // assembly shape | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TGraph.h | TGraph.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: TGraph.h 31491 2009-12-01 18:11:55Z moneta $ | // @(#)root/hist:$Id: TGraph.h 36493 2010-11-03 13:01:36Z couet $ | |||
// 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 161 | skipping to change at line 161 | |||
TAxis *GetXaxis() const ; | TAxis *GetXaxis() const ; | |||
TAxis *GetYaxis() const ; | TAxis *GetYaxis() const ; | |||
virtual Int_t GetPoint(Int_t i, Double_t &x, Double_t &y) const; | virtual Int_t GetPoint(Int_t i, Double_t &x, Double_t &y) const; | |||
virtual void InitExpo(Double_t xmin=0, Double_t xmax=0); | virtual void InitExpo(Double_t xmin=0, Double_t xmax=0); | |||
virtual void InitGaus(Double_t xmin=0, Double_t xmax=0); | virtual void InitGaus(Double_t xmin=0, Double_t xmax=0); | |||
virtual void InitPolynom(Double_t xmin=0, Double_t xmax=0); | virtual void InitPolynom(Double_t xmin=0, Double_t xmax=0); | |||
virtual Int_t InsertPoint(); // *MENU* | virtual Int_t InsertPoint(); // *MENU* | |||
virtual Double_t Integral(Int_t first=0, Int_t last=-1) const; | virtual Double_t Integral(Int_t first=0, Int_t last=-1) const; | |||
virtual Bool_t IsEditable() const {return !TestBit(kNotEditable); } | virtual Bool_t IsEditable() const {return !TestBit(kNotEditable); } | |||
virtual Int_t IsInside(Double_t x, Double_t y) const; | ||||
virtual void LeastSquareFit(Int_t m, Double_t *a, Double_t xmin =0, Double_t xmax=0); | virtual void LeastSquareFit(Int_t m, Double_t *a, Double_t xmin =0, Double_t xmax=0); | |||
virtual void LeastSquareLinearFit(Int_t n, Double_t &a0, Double _t &a1, Int_t &ifail, Double_t xmin=0, Double_t xmax=0); | virtual void LeastSquareLinearFit(Int_t n, Double_t &a0, Double _t &a1, Int_t &ifail, Double_t xmin=0, Double_t xmax=0); | |||
virtual Int_t Merge(TCollection* list); | virtual Int_t Merge(TCollection* list); | |||
virtual void Paint(Option_t *chopt=""); | virtual void Paint(Option_t *chopt=""); | |||
void PaintGraph(Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt); | void PaintGraph(Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt); | |||
void PaintGrapHist(Int_t npoints, const Double_t *x, co nst Double_t *y, Option_t *chopt); | void PaintGrapHist(Int_t npoints, const Double_t *x, co nst Double_t *y, Option_t *chopt); | |||
virtual void PaintStats(TF1 *fit); | virtual void PaintStats(TF1 *fit); | |||
virtual void Print(Option_t *chopt="") const; | virtual void Print(Option_t *chopt="") const; | |||
virtual void RecursiveRemove(TObject *obj); | virtual void RecursiveRemove(TObject *obj); | |||
virtual Int_t RemovePoint(); // *MENU* | virtual Int_t RemovePoint(); // *MENU* | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TGraph2D.h | TGraph2D.h | |||
---|---|---|---|---|
skipping to change at line 94 | skipping to change at line 94 | |||
TGraph2D(Int_t n, Double_t *x, Double_t *y, Double_t *z); | TGraph2D(Int_t n, Double_t *x, Double_t *y, Double_t *z); | |||
TGraph2D(TH2 *h2); | TGraph2D(TH2 *h2); | |||
TGraph2D(const char *name, const char *title, Int_t n, Double_t *x, Doub le_t *y, Double_t *z); | TGraph2D(const char *name, const char *title, Int_t n, Double_t *x, Doub le_t *y, Double_t *z); | |||
TGraph2D(const char *filename, const char *format="%lg %lg %lg", Option_ t *option=""); | TGraph2D(const char *filename, const char *format="%lg %lg %lg", Option_ t *option=""); | |||
TGraph2D(const TGraph2D &); | TGraph2D(const TGraph2D &); | |||
virtual ~TGraph2D(); | virtual ~TGraph2D(); | |||
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 TFitResultPtr Fit(const char *formula ,Option_t *option="" ,Opti on_t *goption=""); // *MENU* | virtual TFitResultPtr Fit(const char *formula ,Option_t *option="" ,Opti on_t *goption=""); // *MENU* | |||
virtual TFitResultPtr Fit(TF2 *f2 ,Option_t *option="" ,Option_t *goptio n=""); // *MENU* | virtual TFitResultPtr Fit(TF2 *f2 ,Option_t *option="" ,Option_t *goptio 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; | |||
Double_t GetMargin() const {return fMargin;} | Double_t GetMargin() const {return fMargin;} | |||
TAxis *GetXaxis() const ; | TAxis *GetXaxis() const ; | |||
TAxis *GetYaxis() const ; | TAxis *GetYaxis() const ; | |||
TAxis *GetZaxis() const ; | TAxis *GetZaxis() const ; | |||
Int_t GetN() const {return fNpoints;} | Int_t GetN() const {return fNpoints;} | |||
Double_t *GetX() const {return fX;} | Double_t *GetX() const {return fX;} | |||
Double_t *GetY() const {return fY;} | Double_t *GetY() const {return fY;} | |||
Double_t *GetZ() const {return fZ;} | Double_t *GetZ() const {return fZ;} | |||
virtual Double_t *GetEX() const {return 0;} | virtual Double_t *GetEX() const {return 0;} | |||
virtual Double_t *GetEY() const {return 0;} | virtual Double_t *GetEY() const {return 0;} | |||
virtual Double_t *GetEZ() const {return 0;} | virtual Double_t *GetEZ() const {return 0;} | |||
Double_t GetXmax() const; | Double_t GetXmax() const; | |||
Double_t GetXmin() const; | Double_t GetXmin() const; | |||
Double_t GetYmax() const; | Double_t GetYmax() const; | |||
Double_t GetYmin() const; | Double_t GetYmin() const; | |||
Double_t GetZmax() const; | Double_t GetZmax() const; | |||
Double_t GetZmin() const; | Double_t GetZmin() const; | |||
Double_t Interpolate(Double_t x, Double_t y); | virtual Double_t GetXmaxE() const {return GetXmax();}; | |||
void Paint(Option_t *option=""); | virtual Double_t GetXminE() const {return GetXmin();}; | |||
TH1 *Project(Option_t *option="x") const; // *MENU* | virtual Double_t GetYmaxE() const {return GetYmax();}; | |||
Int_t RemovePoint(Int_t ipoint); // *MENU* | virtual Double_t GetYminE() const {return GetYmin();}; | |||
virtual void SavePrimitive(ostream &out, Option_t *option = ""); | virtual Double_t GetZmaxE() const {return GetZmax();}; | |||
virtual void Set(Int_t n); | virtual Double_t GetZminE() const {return GetZmin();}; | |||
virtual void SetDirectory(TDirectory *dir); | Double_t Interpolate(Double_t x, Double_t y); | |||
virtual void SetHistogram(TH2 *h); | void Paint(Option_t *option=""); | |||
void SetMargin(Double_t m=0.1); // *MENU* | TH1 *Project(Option_t *option="x") const; // *MENU* | |||
void SetMarginBinsContent(Double_t z=0.); // *MENU* | Int_t RemovePoint(Int_t ipoint); // *MENU* | |||
void SetMaximum(Double_t maximum=-1111); // *MENU* | virtual void SavePrimitive(ostream &out, Option_t *option = "") | |||
void SetMinimum(Double_t minimum=-1111); // *MENU* | ; | |||
void SetMaxIter(Int_t n=100000) {fMaxIter = n;} // *MENU* | virtual void Set(Int_t n); | |||
virtual void SetName(const char *name); // *MENU* | virtual void SetDirectory(TDirectory *dir); | |||
virtual void SetNameTitle(const char *name, const char *title); | virtual void SetHistogram(TH2 *h); | |||
void SetNpx(Int_t npx=40); // *MENU* | void SetMargin(Double_t m=0.1); // *MENU* | |||
void SetNpy(Int_t npx=40); // *MENU* | void SetMarginBinsContent(Double_t z=0.); // *MENU* | |||
virtual void SetPoint(Int_t point, Double_t x, Double_t y, Double_t | void SetMaximum(Double_t maximum=-1111); // *MENU* | |||
z); // *MENU* | void SetMinimum(Double_t minimum=-1111); // *MENU* | |||
virtual void SetTitle(const char *title=""); // *MENU* | void SetMaxIter(Int_t n=100000) {fMaxIter = n;} // *MEN | |||
U* | ||||
virtual void SetName(const char *name); // *MENU* | ||||
virtual void SetNameTitle(const char *name, const char *title); | ||||
void SetNpx(Int_t npx=40); // *MENU* | ||||
void SetNpy(Int_t npx=40); // *MENU* | ||||
virtual void SetPoint(Int_t point, Double_t x, Double_t y, Doub | ||||
le_t z); // *MENU* | ||||
virtual void SetTitle(const char *title=""); // *MENU* | ||||
ClassDef(TGraph2D,1) //Set of n x[i],y[i],z[i] points with 3-d graphics including Delaunay triangulation | ClassDef(TGraph2D,1) //Set of n x[i],y[i],z[i] points with 3-d graphics including Delaunay triangulation | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
54 lines changed or deleted | 62 lines changed or added | |||
TGraph2DErrors.h | TGraph2DErrors.h | |||
---|---|---|---|---|
skipping to change at line 48 | skipping to change at line 48 | |||
public: | public: | |||
TGraph2DErrors(); | TGraph2DErrors(); | |||
TGraph2DErrors(Int_t n); | TGraph2DErrors(Int_t n); | |||
TGraph2DErrors(Int_t n, Double_t *x, Double_t *y, Double_t *z, | TGraph2DErrors(Int_t n, Double_t *x, Double_t *y, Double_t *z, | |||
Double_t *ex=0, Double_t *ey=0, Double_t *ez=0, Option_t *option=""); | Double_t *ex=0, Double_t *ey=0, Double_t *ez=0, Option_t *option=""); | |||
virtual ~TGraph2DErrors(); | virtual ~TGraph2DErrors(); | |||
Double_t GetErrorX(Int_t bin) const; | Double_t GetErrorX(Int_t bin) const; | |||
Double_t GetErrorY(Int_t bin) const; | Double_t GetErrorY(Int_t bin) const; | |||
Double_t GetErrorZ(Int_t bin) const; | Double_t GetErrorZ(Int_t bin) const; | |||
Double_t *GetEX() const {return fEX;} | Double_t *GetEX() const {return fEX;} | |||
Double_t *GetEY() const {return fEY;} | Double_t *GetEY() const {return fEY;} | |||
Double_t *GetEZ() const {return fEZ;} | Double_t *GetEZ() const {return fEZ;} | |||
Double_t GetXmaxE() const; | ||||
Double_t GetXminE() const; | ||||
Double_t GetYmaxE() const; | ||||
Double_t GetYminE() const; | ||||
Double_t GetZmaxE() const; | ||||
Double_t GetZminE() const; | ||||
virtual void Set(Int_t n); | virtual void Set(Int_t n); | |||
virtual void SetPoint(Int_t i, Double_t x, Double_t y, Double_t z); | virtual void SetPoint(Int_t i, Double_t x, Double_t y, Double_t z); | |||
virtual void SetPointError(Int_t i, Double_t ex, Double_t ey, Double_ t ez); | virtual void SetPointError(Int_t i, Double_t ex, Double_t ey, Double_ t ez); | |||
ClassDef(TGraph2DErrors,1) //A 2D graph with error bars | ClassDef(TGraph2DErrors,1) //A 2D graph with error bars | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 1 change blocks. | ||||
3 lines changed or deleted | 9 lines changed or added | |||
TGraph2DPainter.h | TGraph2DPainter.h | |||
---|---|---|---|---|
skipping to change at line 40 | skipping to change at line 40 | |||
class TGraph2DPainter : public TObject { | class TGraph2DPainter : public TObject { | |||
protected: | protected: | |||
Double_t *fX; //!Pointer to fGraph2D->fX | Double_t *fX; //!Pointer to fGraph2D->fX | |||
Double_t *fY; //!Pointer to fGraph2D->fY | Double_t *fY; //!Pointer to fGraph2D->fY | |||
Double_t *fZ; //!Pointer to fGraph2D->fZ | Double_t *fZ; //!Pointer to fGraph2D->fZ | |||
Double_t *fXN; //!Pointer to fDelaunay->fXN | Double_t *fXN; //!Pointer to fDelaunay->fXN | |||
Double_t *fYN; //!Pointer to fDelaunay->fYN | Double_t *fYN; //!Pointer to fDelaunay->fYN | |||
Double_t *fEX; //!Pointer to fGraph2D->fXE | ||||
Double_t *fEY; //!Pointer to fGraph2D->fYE | ||||
Double_t *fEZ; //!Pointer to fGraph2D->fZE | ||||
Double_t fXNmin; //!Equal to fDelaunay->fXNmin | Double_t fXNmin; //!Equal to fDelaunay->fXNmin | |||
Double_t fXNmax; //!Equal to fDelaunay->fXNmax | Double_t fXNmax; //!Equal to fDelaunay->fXNmax | |||
Double_t fYNmin; //!Equal to fDelaunay->fYNmin | Double_t fYNmin; //!Equal to fDelaunay->fYNmin | |||
Double_t fYNmax; //!Equal to fDelaunay->fYNmax | Double_t fYNmax; //!Equal to fDelaunay->fYNmax | |||
Double_t fXmin; //! | Double_t fXmin; //! | |||
Double_t fXmax; //! | Double_t fXmax; //! | |||
Double_t fYmin; //! fGraph2D->fHistogram limits | Double_t fYmin; //! fGraph2D->fHistogram limits | |||
Double_t fYmax; //! | Double_t fYmax; //! | |||
Double_t fZmin; //! | Double_t fZmin; //! | |||
Double_t fZmax; //! | Double_t fZmax; //! | |||
skipping to change at line 72 | skipping to change at line 75 | |||
public: | public: | |||
TGraph2DPainter(); | TGraph2DPainter(); | |||
TGraph2DPainter(TGraphDelaunay *gd); | TGraph2DPainter(TGraphDelaunay *gd); | |||
virtual ~TGraph2DPainter(); | virtual ~TGraph2DPainter(); | |||
TList *GetContourList(Double_t contour); | TList *GetContourList(Double_t contour); | |||
void Paint(Option_t *option); | void Paint(Option_t *option); | |||
void PaintTriangles(Option_t *option); | void PaintContour(Option_t *option); | |||
void PaintErrors(Option_t *option); | ||||
void PaintPolyMarker(Option_t *option); | void PaintPolyMarker(Option_t *option); | |||
void PaintPolyLine(Option_t *option); | void PaintPolyLine(Option_t *option); | |||
void PaintContour(Option_t *option); | void PaintTriangles(Option_t *option); | |||
ClassDef(TGraph2DPainter,0) // TGraph2D painter | ClassDef(TGraph2DPainter,0) // TGraph2D painter | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 6 lines changed or added | |||
THistPainter.h | THistPainter.h | |||
---|---|---|---|---|
// @(#)root/histpainter:$Id: THistPainter.h 25489 2008-09-22 13:05:29Z brun $ | // @(#)root/histpainter:$Id: THistPainter.h 36953 2010-11-25 17:27:16Z coue t $ | |||
// Author: Rene Brun 26/08/99 | // Author: Rene Brun 26/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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef ROOT_THistPainter | #ifndef ROOT_THistPainter | |||
skipping to change at line 79 | skipping to change at line 79 | |||
virtual Bool_t IsInside(Double_t x, Double_t y); | virtual Bool_t IsInside(Double_t x, Double_t y); | |||
virtual Int_t MakeChopt(Option_t *option); | virtual Int_t MakeChopt(Option_t *option); | |||
virtual Int_t MakeCuts(char *cutsopt); | virtual Int_t MakeCuts(char *cutsopt); | |||
virtual void Paint(Option_t *option=""); | virtual void Paint(Option_t *option=""); | |||
virtual void PaintArrows(Option_t *option); | virtual void PaintArrows(Option_t *option); | |||
virtual void PaintAxis(Bool_t drawGridOnly=kFALSE); | virtual void PaintAxis(Bool_t drawGridOnly=kFALSE); | |||
virtual void PaintBar(Option_t *option); | virtual void PaintBar(Option_t *option); | |||
virtual void PaintBarH(Option_t *option); | virtual void PaintBarH(Option_t *option); | |||
virtual void PaintBoxes(Option_t *option); | virtual void PaintBoxes(Option_t *option); | |||
virtual void PaintColorLevels(Option_t *option); | virtual void PaintColorLevels(Option_t *option); | |||
virtual void PaintTH2PolyBins(Option_t *option); | ||||
virtual void PaintTH2PolyColorLevels(Option_t *option); | ||||
virtual void PaintTH2PolyScatterPlot(Option_t *option); | ||||
virtual void PaintTH2PolyText(Option_t *option); | ||||
virtual void PaintContour(Option_t *option); | virtual void PaintContour(Option_t *option); | |||
virtual Int_t PaintContourLine(Double_t elev1, Int_t icont1, Double _t x1, Double_t y1, | virtual Int_t PaintContourLine(Double_t elev1, Int_t icont1, Double _t x1, Double_t y1, | |||
Double_t elev2, Int_t icont2, Double_t x2, Double _t y2, | Double_t elev2, Int_t icont2, Double_t x2, Double _t y2, | |||
Double_t *xarr, Double_t *yarr, Int_t *itarr, Dou ble_t *levels); | Double_t *xarr, Double_t *yarr, Int_t *itarr, Dou ble_t *levels); | |||
virtual void PaintErrors(Option_t *option); | virtual void PaintErrors(Option_t *option); | |||
virtual void Paint2DErrors(Option_t *option); | virtual void Paint2DErrors(Option_t *option); | |||
virtual void PaintFrame(); | virtual void PaintFrame(); | |||
virtual void PaintFunction(Option_t *option); | virtual void PaintFunction(Option_t *option); | |||
virtual void PaintHist(Option_t *option); | virtual void PaintHist(Option_t *option); | |||
virtual void PaintH3(Option_t *option=""); | virtual void PaintH3(Option_t *option=""); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 5 lines changed or added | |||
THnSparse.h | THnSparse.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: THnSparse.h 32836 2010-03-30 14:27:57Z moneta $ | // @(#)root/hist:$Id: THnSparse.h 36894 2010-11-24 11:04:47Z 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 34 | skipping to change at line 34 | |||
#endif | #endif | |||
#ifndef ROOT_TNamed | #ifndef ROOT_TNamed | |||
#include "TNamed.h" | #include "TNamed.h" | |||
#endif | #endif | |||
#ifndef ROOT_TObjArray | #ifndef ROOT_TObjArray | |||
#include "TObjArray.h" | #include "TObjArray.h" | |||
#endif | #endif | |||
#ifndef ROOT_TArrayD | #ifndef ROOT_TArrayD | |||
#include "TArrayD.h" | #include "TArrayD.h" | |||
#endif | #endif | |||
#ifndef ROOT_TFitResultPtr | ||||
#include "TFitResultPtr.h" | ||||
#endif | ||||
// needed only for template instantiations of THnSparseT: | // needed only for template instantiations of THnSparseT: | |||
#ifndef ROOT_TArrayF | #ifndef ROOT_TArrayF | |||
#include "TArrayF.h" | #include "TArrayF.h" | |||
#endif | #endif | |||
#ifndef ROOT_TArrayL | #ifndef ROOT_TArrayL | |||
#include "TArrayL.h" | #include "TArrayL.h" | |||
#endif | #endif | |||
#ifndef ROOT_TArrayI | #ifndef ROOT_TArrayI | |||
#include "TArrayI.h" | #include "TArrayI.h" | |||
#endif | #endif | |||
#ifndef ROOT_TArrayS | #ifndef ROOT_TArrayS | |||
#include "TArrayS.h" | #include "TArrayS.h" | |||
#endif | #endif | |||
#ifndef ROOT_TArrayC | #ifndef ROOT_TArrayC | |||
#include "TArrayC.h" | #include "TArrayC.h" | |||
#endif | #endif | |||
class TAxis; | class TAxis; | |||
class TCollection; | class TCollection; | |||
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) {} | |||
skipping to change at line 167 | skipping to change at line 167 | |||
THnSparse* CloneEmpty(const char* name, const char* title, | THnSparse* CloneEmpty(const char* name, const char* title, | |||
const TObjArray* axes, Int_t chunksize, | const TObjArray* axes, Int_t chunksize, | |||
Bool_t keepTargetAxis) const; | Bool_t keepTargetAxis) const; | |||
Bool_t CheckConsistency(const THnSparse *h, const char *tag) const; | Bool_t CheckConsistency(const THnSparse *h, const char *tag) const; | |||
Bool_t IsInRange(Int_t *coord) const; | Bool_t IsInRange(Int_t *coord) const; | |||
TH1* CreateHist(const char* name, const char* title, | TH1* CreateHist(const char* name, const char* title, | |||
const TObjArray* axes, Bool_t keepTargetAxis) const; | const TObjArray* axes, Bool_t keepTargetAxis) const; | |||
TObject* ProjectionAny(Int_t ndim, const Int_t* dim, | TObject* ProjectionAny(Int_t ndim, const Int_t* dim, | |||
Bool_t wantSparse, Option_t* option = "") const; | Bool_t wantSparse, Option_t* option = "") const; | |||
Bool_t PrintBin(Long64_t idx, Int_t* coord, Option_t* options) const; | ||||
void AddInternal(const THnSparse* h, Double_t c, Bool_t rebinned); | ||||
public: | public: | |||
virtual ~THnSparse(); | virtual ~THnSparse(); | |||
static THnSparse* CreateSparse(const char* name, const char* title, | static THnSparse* CreateSparse(const char* name, const char* title, | |||
const TH1* h1, Int_t ChunkSize = 1024 * 1 6); | const TH1* h1, Int_t ChunkSize = 1024 * 1 6); | |||
Int_t GetNChunks() const { return fBinContent.GetEntriesFast(); } | Int_t GetNChunks() const { return fBinContent.GetEntriesFast(); } | |||
TObjArray* GetListOfAxes() { return &fAxes; } | TObjArray* GetListOfAxes() { return &fAxes; } | |||
TAxis* GetAxis(Int_t dim) const { return (TAxis*)fAxes[dim]; } | TAxis* GetAxis(Int_t dim) const { return (TAxis*)fAxes[dim]; } | |||
skipping to change at line 234 | skipping to change at line 236 | |||
Double_t GetSparseFractionBins() const; | Double_t GetSparseFractionBins() const; | |||
Double_t GetSparseFractionMem() const; | Double_t GetSparseFractionMem() const; | |||
Double_t GetSumw() const { return fTsumw; } | Double_t GetSumw() const { return fTsumw; } | |||
Double_t GetSumw2() const { return fTsumw2; } | Double_t GetSumw2() const { return fTsumw2; } | |||
Double_t GetSumwx(Int_t dim) const { return fTsumwx[dim]; } | Double_t GetSumwx(Int_t dim) const { return fTsumwx[dim]; } | |||
Double_t GetSumwx2(Int_t dim) const { return fTsumwx2[dim]; } | Double_t GetSumwx2(Int_t dim) const { return fTsumwx2[dim]; } | |||
TH1D* Projection(Int_t xDim, Option_t* option = "") const; | TH1D* Projection(Int_t xDim, Option_t* option = "") const; | |||
TH2D* Projection(Int_t xDim, Int_t yDim, | TH2D* Projection(Int_t yDim, Int_t xDim, | |||
Option_t* option = "") const; | Option_t* option = "") const; | |||
TH3D* Projection(Int_t xDim, Int_t yDim, Int_t zDim, | TH3D* Projection(Int_t xDim, Int_t yDim, Int_t zDim, | |||
Option_t* option = "") const; | Option_t* option = "") const; | |||
THnSparse* Projection(Int_t ndim, const Int_t* dim, | THnSparse* Projection(Int_t ndim, const Int_t* dim, | |||
Option_t* option = "") const; | Option_t* option = "") const; | |||
THnSparse* Rebin(Int_t group) const; | THnSparse* Rebin(Int_t group) const; | |||
THnSparse* Rebin(const Int_t* group) const; | THnSparse* Rebin(const Int_t* group) const; | |||
Long64_t Merge(TCollection* list); | Long64_t Merge(TCollection* list); | |||
skipping to change at line 260 | skipping to change at line 262 | |||
void Divide(const THnSparse* h); | void Divide(const THnSparse* h); | |||
void Divide(const THnSparse* h1, const THnSparse* h2, Double_t c1 = 1., Double_t c2 = 1., Option_t* option=""); | void Divide(const THnSparse* h1, const THnSparse* h2, Double_t c1 = 1., Double_t c2 = 1., Option_t* option=""); | |||
void RebinnedAdd(const THnSparse* h, Double_t c=1.); | void RebinnedAdd(const THnSparse* h, Double_t c=1.); | |||
void Reset(Option_t* option = ""); | void Reset(Option_t* option = ""); | |||
void Sumw2(); | void Sumw2(); | |||
Double_t ComputeIntegral(); | Double_t ComputeIntegral(); | |||
void GetRandom(Double_t *rand, Bool_t subBinRandom = kTRUE); | void GetRandom(Double_t *rand, Bool_t subBinRandom = kTRUE); | |||
void Print(Option_t* option = "") const; | ||||
void PrintEntries(Long64_t from = 0, Long64_t howmany = -1, Option_t* op | ||||
tions = 0) const; | ||||
void PrintBin(Int_t* coord, Option_t* options) const { | ||||
PrintBin(-1, coord, options); | ||||
} | ||||
void PrintBin(Long64_t idx, Option_t* options) const; | ||||
//void Draw(Option_t* option = ""); | //void Draw(Option_t* option = ""); | |||
ClassDef(THnSparse, 2); // Interfaces of sparse n-dimensional histogram | ClassDef(THnSparse, 2); // Interfaces of sparse n-dimensional histogram | |||
}; | }; | |||
//_________________________________________________________________________ _____ | //_________________________________________________________________________ _____ | |||
// | // | |||
// Templated implementation of the abstract base THnSparse. | // Templated implementation of the abstract base THnSparse. | |||
// All functionality and the interfaces to be used are in THnSparse! | // All functionality and the interfaces to be used are in THnSparse! | |||
// | // | |||
End of changes. 7 change blocks. | ||||
5 lines changed or deleted | 15 lines changed or added | |||
TKDE.h | TKDE.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: TKDE.h 35847 2010-09-28 15:40:18Z moneta $ | // @(#)root/hist:$Id: TKDE.h 37543 2010-12-11 14:14:05Z moneta $ | |||
// Authors: Bartolomeu Rabacal 07/2010 | // Authors: Bartolomeu Rabacal 07/2010 | |||
/********************************************************************** | /********************************************************************** | |||
* * | * * | |||
* Copyright (c) 2006 , LCG ROOT MathLib Team * | * Copyright (c) 2006 , LCG ROOT MathLib Team * | |||
* * | * * | |||
* * | * * | |||
**********************************************************************/ | **********************************************************************/ | |||
// Header file for TKDE | // Header file for TKDE | |||
#ifndef ROOT_TKDE | #ifndef ROOT_TKDE | |||
#define ROOT_TKDE | #define ROOT_TKDE | |||
#ifndef ROOT_Math_WrappedFunction | #ifndef ROOT_Math_WrappedFunction | |||
#include "Math/WrappedFunction.h" | #include "Math/WrappedFunction.h" | |||
#endif | #endif | |||
#include "TF1.h" | #ifndef ROOT_TNamed | |||
#include "TH1D.h" | #include "TNamed.h" | |||
#endif | ||||
#ifndef ROOT_Math_Math | ||||
#include "Math/Math.h" | #include "Math/Math.h" | |||
#endif | ||||
//#include "TF1.h" | ||||
class TGraphErrors; | ||||
class TF1; | ||||
/* | /* | |||
Kernel Density Estimation class. The three main references are (1) "Scot | Kernel Density Estimation class. The three main references are (1) "Scot | |||
t DW, Multivariate Density Estimation. Theory, Practice and Visualization. | t DW, Multivariate Density Estimation. | |||
New York: Wiley", (2) "Jann Ben - ETH Zurich, Switzerland -, Univariate ker | Theory, Practice and Visualization. New York: Wiley", (2) "Jann Ben - ETH Z | |||
nel density estimation document for KDENS: Stata module for univariate kern | urich, Switzerland -, Univariate kernel density estimation document for KDE | |||
el density estimation." and (3) "Hardle W, Muller M, Sperlich S, Werwatz A, | NS: Stata module for univariate kernel density estimation." and (3) "Hardle | |||
Nonparametric and Semiparametric Models. Springer." | W, Muller M, Sperlich S, Werwatz A, Nonparametric and Semiparametric Model | |||
s. Springer." | ||||
The algorithm is briefly described in (4) "Cranmer KS, Kernel Estimation in High-Energy | The algorithm is briefly described in (4) "Cranmer KS, Kernel Estimation in High-Energy | |||
Physics. Computer Physics Communications 136:198-207,2001" - e-Print Arc | Physics. Computer Physics Communications 136:198-207,2001" - e-Print Archiv | |||
hive: hep ex/0011057. | e: hep ex/0011057. | |||
A binned version is also implemented to address the performance issue du | A binned version is also implemented to address the performance issue du | |||
e to its data | e to its data size dependence. | |||
size dependance. | ||||
*/ | */ | |||
class TKDE : public TNamed { | class TKDE : public TNamed { | |||
public: | public: | |||
enum EKernelType { // Kernel function type option | enum EKernelType { // Kernel function type option | |||
kGaussian, | kGaussian, | |||
kEpanechnikov, | kEpanechnikov, | |||
kBiweight, | kBiweight, | |||
kCosineArch, | kCosineArch, | |||
kUserDefined, // Internal use only for the class's template construct or | kUserDefined, // Internal use only for the class's template construct or | |||
skipping to change at line 64 | skipping to change at line 72 | |||
kMirrorLeftAsymRight, | kMirrorLeftAsymRight, | |||
kMirrorAsymBoth | kMirrorAsymBoth | |||
}; | }; | |||
enum EBinning{ // Data binning option | enum EBinning{ // Data binning option | |||
kUnbinned, | kUnbinned, | |||
kRelaxedBinning, // The algorithm is allowed to use binning if the da ta is large enough | kRelaxedBinning, // The algorithm is allowed to use binning if the da ta is large enough | |||
kForcedBinning | kForcedBinning | |||
}; | }; | |||
explicit TKDE(UInt_t events=0, const Double_t* data=0, Double_t xMin = 0 .0, Double_t xMax = 0.0, Option_t* option = "KernelType:Gaussian;Iteration: Adaptive;Mirror:noMirror;Binning:RelaxedBinning", Double_t rho = 1.0); | explicit TKDE(UInt_t events = 0, const Double_t* data = 0, Double_t xMin = 0.0, Double_t xMax = 0.0, const Option_t* option = "KernelType:Gaussian; Iteration:Adaptive;Mirror:noMirror;Binning:RelaxedBinning", Double_t rho = 1.0); | |||
template<class KernelFunction> | template<class KernelFunction> | |||
TKDE(const char * name, const KernelFunction& kernfunc, UInt_t events, c onst Double_t* data, Double_t xMin = 0.0, Double_t xMax = 0.0, Option_t* op tion = "KernelType:UserDefined;Iteration:Adaptive;Mirror:noMirror;Binning:R elaxedBinning", Double_t rho = 1.0) { | TKDE(const Char_t* /*name*/, const KernelFunction& kernfunc, UInt_t even ts, const Double_t* data, Double_t xMin = 0.0, Double_t xMax = 0.0, const O ption_t* option = "KernelType:UserDefined;Iteration:Adaptive;Mirror:noMirro r;Binning:RelaxedBinning", Double_t rho = 1.0) { | |||
Instantiate(new ROOT::Math::WrappedFunction<const KernelFunction&>(ke rnfunc), events, data, xMin, xMax, option, rho); | Instantiate(new ROOT::Math::WrappedFunction<const KernelFunction&>(ke rnfunc), events, data, xMin, xMax, option, rho); | |||
} | } | |||
virtual ~TKDE(); | virtual ~TKDE(); | |||
void Fill(Double_t data); | void Fill(Double_t data); | |||
void SetKernelType(EKernelType kern); | void SetKernelType(EKernelType kern); | |||
void SetIteration(EIteration iter); | void SetIteration(EIteration iter); | |||
void SetMirror(EMirror mir); | void SetMirror(EMirror mir); | |||
void SetBinning(EBinning); | void SetBinning(EBinning); | |||
void SetNBins(UInt_t nbins); | void SetNBins(UInt_t nbins); | |||
void SetUseBinsNEvents(UInt_t nEvents); | void SetUseBinsNEvents(UInt_t nEvents); | |||
void SetAdaptiveTuneFactor(Double_t rho); | void SetTuneFactor(Double_t rho); | |||
void SetRange(Double_t xMin, Double_t xMax); // By default computed from the data | void SetRange(Double_t xMin, Double_t xMax); // By default computed from the data | |||
virtual void Draw(const Option_t* option = ""); | ||||
Double_t operator()(Double_t x) const; | Double_t operator()(Double_t x) const; | |||
Double_t operator()(const Double_t* x, const Double_t* p=0) const; // n eeded for creating TF1 | Double_t operator()(const Double_t* x, const Double_t* p=0) const; // N eeded for creating TF1 | |||
Double_t GetValue(Double_t x) const { return (*this)(x); } | Double_t GetValue(Double_t x) const { return (*this)(x); } | |||
Double_t GetError(Double_t x) const; | Double_t GetError(Double_t x) const; | |||
Double_t GetBias(Double_t x) const; | Double_t GetBias(Double_t x) const; | |||
Double_t GetMean() const; | Double_t GetMean() const; | |||
Double_t GetSigma() const; | Double_t GetSigma() const; | |||
Double_t GetRAMISE() const; | ||||
Double_t GetFixedWeight() const; | Double_t GetFixedWeight() const; | |||
TH1D* GetHistogram(UInt_t nbins = 100, Double_t xMin = 1.0, Double_t xMa | ||||
x = 0.0); | ||||
TF1* GetFunction(UInt_t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | TF1* GetFunction(UInt_t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | |||
TF1* GetUpperFunction(Double_t confidenceLevel = 0.95, UInt_t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | TF1* GetUpperFunction(Double_t confidenceLevel = 0.95, UInt_t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | |||
TF1* GetLowerFunction(Double_t confidenceLevel = 0.95, UInt_t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | TF1* GetLowerFunction(Double_t confidenceLevel = 0.95, UInt_t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | |||
TF1* GetApproximateBias(UInt_t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | TF1* GetApproximateBias(UInt_t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | |||
TGraphErrors * GetGraphWithErrors(UInt_t npx = 100, Double_t xMin = 1.0, | ||||
Double_t xMax = 0.0); | ||||
// get the drawn object to chanage settings | ||||
// These objects are managed by TKDE and should not be deleted by the us | ||||
er | ||||
TF1 * GetDrawnFunction() { return fPDF;} | ||||
TF1 * GetDrawnUpperFunction() { return fUpperPDF;} | ||||
TF1 * GetDrawnLowerFunction() { return fLowerPDF;} | ||||
TGraphErrors * GetDrawnGraph() { return fGraph;} | ||||
const Double_t * GetAdaptiveWeights() const; | const Double_t * GetAdaptiveWeights() const; | |||
private: | private: | |||
static const Double_t _2_PI_ROOT_INV; // (2*TMath::Pi())**-0.5 | ||||
static const Double_t PI; // TMath::Pi() | ||||
static const Double_t PI_OVER2; // TMath::PiOver2() | ||||
static const Double_t PI_OVER4; // TMath::PiOver4() | ||||
TKDE(TKDE& kde); // Disallowed copy constructor | TKDE(TKDE& kde); // Disallowed copy constructor | |||
TKDE operator=(TKDE& kde); // Disallowed assign operator | TKDE operator=(TKDE& kde); // Disallowed assign operator | |||
typedef ROOT::Math::IBaseFunctionOneDim* KernelFunction_Ptr; | typedef ROOT::Math::IBaseFunctionOneDim* KernelFunction_Ptr; | |||
KernelFunction_Ptr fKernelFunction; | KernelFunction_Ptr fKernelFunction; | |||
class TKernel; | class TKernel; | |||
friend class TKernel; | friend class TKernel; | |||
TKernel* fKernel; | TKernel* fKernel; | |||
std::vector<Double_t> fData; // Data events | std::vector<Double_t> fData; // Data events | |||
std::vector<Double_t> fEvents; // Original data storage | std::vector<Double_t> fEvents; // Original data storage | |||
TF1* fPDF; // Output Kernel Density Estimation PDF function | TF1* fPDF; // Output Kernel Density Estimation PDF function | |||
TF1* fUpperPDF; // Output Kernel Density Estimation upper confide nce interval PDF function | TF1* fUpperPDF; // Output Kernel Density Estimation upper confide nce interval PDF function | |||
TF1* fLowerPDF; // Output Kernel Density Estimation lower confide nce interval PDF function | TF1* fLowerPDF; // Output Kernel Density Estimation lower confide nce interval PDF function | |||
TF1* fApproximateBias; // Output Kernel Density Estimation approximate b ias | TF1* fApproximateBias; // Output Kernel Density Estimation approximate b ias | |||
TGraphErrors* fGraph; // Graph with the errors | ||||
TH1D* fHistogram; // Output data histogram | ||||
EKernelType fKernelType; | EKernelType fKernelType; | |||
EIteration fIteration; | EIteration fIteration; | |||
EMirror fMirror; | EMirror fMirror; | |||
EBinning fBinning; | EBinning fBinning; | |||
Bool_t fUseMirroring, fMirrorLeft, fMirrorRight, fAsymLeft, fAsymRight; | Bool_t fUseMirroring, fMirrorLeft, fMirrorRight, fAsymLeft, fAsymRight; | |||
Bool_t fUseBins; | Bool_t fUseBins; | |||
Bool_t fNewData; // flag to control when new data are given | Bool_t fNewData; // flag to control when new data are given | |||
Bool_t fUseMinMaxFromData; // flag top control if min and max must be us ed from data | Bool_t fUseMinMaxFromData; // flag top control if min and max must be us ed from data | |||
skipping to change at line 167 | skipping to change at line 178 | |||
std::vector<Double_t> fKernelSigmas2; | std::vector<Double_t> fKernelSigmas2; | |||
std::vector<UInt_t> fBinCount; // Number of events per bin for binned da ta option | std::vector<UInt_t> fBinCount; // Number of events per bin for binned da ta option | |||
std::vector<Bool_t> fSettedOptions; // User input options flag | std::vector<Bool_t> fSettedOptions; // User input options flag | |||
struct KernelIntegrand; | struct KernelIntegrand; | |||
friend struct KernelIntegrand; | friend struct KernelIntegrand; | |||
void Instantiate(KernelFunction_Ptr kernfunc, UInt_t events, const Doubl e_t* data, | void Instantiate(KernelFunction_Ptr kernfunc, UInt_t events, const Doubl e_t* data, | |||
Double_t xMin, Double_t xMax, Option_t* option, Double_ t rho); | Double_t xMin, Double_t xMax, const Option_t* option, D ouble_t rho); | |||
inline Double_t GaussianKernel(Double_t x) const { | inline Double_t GaussianKernel(Double_t x) const { | |||
// Returns the kernel evaluation at x | // Returns the kernel evaluation at x | |||
return (x > -9. && x < 9.) ? _2_PI_ROOT_INV * std::exp(-.5 * x * x) : | Double_t k2_PI_ROOT_INV = 0.398942280401432703; // (2 * M_PI)**-0.5 | |||
0.0; | return (x > -9. && x < 9.) ? k2_PI_ROOT_INV * std::exp(-.5 * x * x) : | |||
0.0; | ||||
} | } | |||
inline Double_t EpanechnikovKernel(Double_t x) const { | inline Double_t EpanechnikovKernel(Double_t x) const { | |||
return (x > -1. && x < 1.) ? 3. / 4. * (1. - x * x) : 0.0; | return (x > -1. && x < 1.) ? 3. / 4. * (1. - x * x) : 0.0; | |||
} | } | |||
inline Double_t BiweightKernel(Double_t x) const { | inline Double_t BiweightKernel(Double_t x) const { | |||
// Returns the kernel evaluation at x | // Returns the kernel evaluation at x | |||
return (x > -1. && x < 1.) ? 15. / 16. * (1. - x * x) * (1. - x * x) : 0.0; | return (x > -1. && x < 1.) ? 15. / 16. * (1. - x * x) * (1. - x * x) : 0.0; | |||
} | } | |||
inline Double_t CosineArchKernel(Double_t x) const { | inline Double_t CosineArchKernel(Double_t x) const { | |||
// Returns the kernel evaluation at x | // Returns the kernel evaluation at x | |||
return (x > -1. && x < 1.) ? PI_OVER4 * std::cos(PI_OVER2 * x) : 0.0 ; | return (x > -1. && x < 1.) ? M_PI_4 * std::cos(M_PI_2 * x) : 0.0; | |||
} | } | |||
Double_t UpperConfidenceInterval(const Double_t* x, const Double_t* p) c onst; // Valid if the bandwidth is small compared to nEvents**1/5 | Double_t UpperConfidenceInterval(const Double_t* x, const Double_t* p) c onst; // Valid if the bandwidth is small compared to nEvents**1/5 | |||
Double_t LowerConfidenceInterval(const Double_t* x, const Double_t* p) c onst; // Valid if the bandwidth is small compared to nEvents**1/5 | Double_t LowerConfidenceInterval(const Double_t* x, const Double_t* p) c onst; // Valid if the bandwidth is small compared to nEvents**1/5 | |||
Double_t ApproximateBias(const Double_t* x, const Double_t* ) const { re turn GetBias(*x); } | Double_t ApproximateBias(const Double_t* x, const Double_t* ) const { re turn GetBias(*x); } | |||
Double_t ComputeKernelL2Norm() const; | Double_t ComputeKernelL2Norm() const; | |||
Double_t ComputeKernelSigma2() const; | Double_t ComputeKernelSigma2() const; | |||
Double_t ComputeKernelMu() const; | Double_t ComputeKernelMu() const; | |||
Double_t ComputeKernelIntegral() const; | Double_t ComputeKernelIntegral() const; | |||
Double_t ComputeMidspread() ; | Double_t ComputeMidspread() ; | |||
skipping to change at line 209 | skipping to change at line 221 | |||
void SetKernelSigma2(); | void SetKernelSigma2(); | |||
void SetCanonicalBandwidths(); | void SetCanonicalBandwidths(); | |||
void SetKernelSigmas2(); | void SetKernelSigmas2(); | |||
void SetHistogram(); | void SetHistogram(); | |||
void SetUseBins(); | void SetUseBins(); | |||
void SetMirror(); | void SetMirror(); | |||
void SetMean(); | void SetMean(); | |||
void SetSigma(Double_t R); | void SetSigma(Double_t R); | |||
void SetKernel(); | void SetKernel(); | |||
void SetKernelFunction(KernelFunction_Ptr kernfunc = 0); | void SetKernelFunction(KernelFunction_Ptr kernfunc = 0); | |||
void SetOptions(Option_t* option, Double_t rho); | void SetOptions(const Option_t* option, Double_t rho); | |||
void CheckOptions(Bool_t isUserDefinedKernel = kFALSE); | void CheckOptions(Bool_t isUserDefinedKernel = kFALSE); | |||
void GetOptions(std::string optionType, std::string option); | void GetOptions(std::string optionType, std::string option); | |||
void AssureOptions(); | void AssureOptions(); | |||
void SetData(const Double_t* data); | void SetData(const Double_t* data); | |||
void InitFromNewData(); | void InitFromNewData(); | |||
void SetMirroredEvents(); | void SetMirroredEvents(); | |||
void SetDrawOptions(const Option_t* option, TString& plotOpt, TString& d | ||||
TH1D* GetKDEHistogram(UInt_t nbins, Double_t xMin, Double_t xMax, Bool_t | rawOpt); | |||
reNorm = kFALSE); | void DrawErrors(TString& drawOpt); | |||
void DrawConfidenceInterval(TString& drawOpt, double cl=0.95); | ||||
TF1* GetKDEFunction(UInt_t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | TF1* GetKDEFunction(UInt_t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | |||
TF1* GetKDEApproximateBias(UInt_t npx = 100, Double_t xMin = 1.0, Double _t xMax = 0.0); | TF1* GetKDEApproximateBias(UInt_t npx = 100, Double_t xMin = 1.0, Double _t xMax = 0.0); | |||
// The density to estimate should be at least twice differentiable. | // The density to estimate should be at least twice differentiable. | |||
TF1* GetPDFUpperConfidenceInterval(Double_t confidenceLevel, UInt_t npx | TF1* GetPDFUpperConfidenceInterval(Double_t confidenceLevel = 0.95, UInt | |||
= 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | _t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | |||
TF1* GetPDFLowerConfidenceInterval(Double_t confidenceLevel, UInt_t npx | TF1* GetPDFLowerConfidenceInterval(Double_t confidenceLevel = 0.95, UInt | |||
= 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | _t npx = 100, Double_t xMin = 1.0, Double_t xMax = 0.0); | |||
ClassDef(TKDE, 1) // One dimensional semi-parametric Kernel Density Esti mation | ClassDef(TKDE, 1) // One dimensional semi-parametric Kernel Density Esti mation | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 22 change blocks. | ||||
41 lines changed or deleted | 55 lines changed or added | |||
TKDTree.h | TKDTree.h | |||
---|---|---|---|---|
skipping to change at line 52 | skipping to change at line 52 | |||
Index GetNDim() { return fNDim; } | Index GetNDim() { return fNDim; } | |||
Index GetNPointsNode(Int_t node) const; | Index GetNPointsNode(Int_t node) const; | |||
//Getters for internal variables. | //Getters for internal variables. | |||
Int_t GetRowT0() {return fRowT0;} //! smallest terminal row | Int_t GetRowT0() {return fRowT0;} //! smallest terminal row | |||
Int_t GetCrossNode() {return fCrossNode;} //! cross node | Int_t GetCrossNode() {return fCrossNode;} //! cross node | |||
Int_t GetOffset() {return fOffset;} //! offset in fIndPoints | Int_t GetOffset() {return fOffset;} //! offset in fIndPoints | |||
Index* GetIndPoints() {return fIndPoints;} | Index* GetIndPoints() {return fIndPoints;} | |||
Index GetBucketSize() {return fBucketSize;} | Index GetBucketSize() {return fBucketSize;} | |||
void FindNearestNeighbors(const Value *point, const Int_t k, Index *i nd, Value *dist); | void FindNearestNeighbors(const Value *point, Int_t k, Index *ind, Va lue *dist); | |||
Index FindNode(const Value * point) const; | Index FindNode(const Value * point) const; | |||
void FindPoint(Value * point, Index &index, Int_t &iter); | void FindPoint(Value * point, Index &index, Int_t &iter); | |||
void FindInRange(Value *point, Value range, std::vector<Index> &res); | void FindInRange(Value *point, Value range, std::vector<Index> &res); | |||
void FindBNodeA(Value * point, Value * delta, Int_t &inode); | void FindBNodeA(Value * point, Value * delta, Int_t &inode); | |||
Bool_t IsTerminal(Index inode) const {return (inode>=fNNodes);} | Bool_t IsTerminal(Index inode) const {return (inode>=fNNodes);} | |||
Int_t IsOwner() { return fDataOwner; } | Int_t IsOwner() { return fDataOwner; } | |||
Value KOrdStat(Index ntotal, Value *a, Index k, Index *index) const; | Value KOrdStat(Index ntotal, Value *a, Index k, Index *index) const; | |||
void MakeBoundaries(Value *range = 0x0); | void MakeBoundaries(Value *range = 0x0); | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
TLeaf.h | TLeaf.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TLeaf.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/tree:$Id: TLeaf.h 36407 2010-10-22 02:04:08Z pcanal $ | |||
// 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 84 | skipping to change at line 84 | |||
virtual void *GetValuePointer() const { return 0; } | virtual void *GetValuePointer() const { return 0; } | |||
virtual const char *GetTypeName() const { return ""; } | virtual const char *GetTypeName() const { return ""; } | |||
virtual Double_t GetValue(Int_t i = 0) const; | virtual Double_t GetValue(Int_t i = 0) const; | |||
virtual void Import(TClonesArray*, Int_t) {} | virtual void Import(TClonesArray*, Int_t) {} | |||
virtual Bool_t IsOnTerminalBranch() const { return kTRUE; } | virtual Bool_t IsOnTerminalBranch() const { return kTRUE; } | |||
virtual Bool_t IsRange() const { return fIsRange; } | virtual Bool_t IsRange() const { return fIsRange; } | |||
virtual Bool_t IsUnsigned() const { return fIsUnsigned; } | virtual Bool_t IsUnsigned() const { return fIsUnsigned; } | |||
virtual void PrintValue(Int_t i = 0) const; | virtual void PrintValue(Int_t i = 0) const; | |||
virtual void ReadBasket(TBuffer&) {} | virtual void ReadBasket(TBuffer&) {} | |||
virtual void ReadBasketExport(TBuffer&, TClonesArray*, Int_t) {} | virtual void ReadBasketExport(TBuffer&, TClonesArray*, Int_t) {} | |||
virtual void ReadValue(ifstream& /*s*/) {} | virtual void ReadValue(istream& /*s*/) {} | |||
Int_t ResetAddress(void* add, Bool_t destructor = kFALSE); | Int_t ResetAddress(void* add, Bool_t destructor = kFALSE); | |||
virtual void SetAddress(void* add = 0); | virtual void SetAddress(void* add = 0); | |||
virtual void SetBranch(TBranch* branch) { fBranch = branch; } | virtual void SetBranch(TBranch* branch) { fBranch = branch; } | |||
virtual void SetLeafCount(TLeaf* leaf); | virtual void SetLeafCount(TLeaf* leaf); | |||
virtual void SetLen(Int_t len = 1) { fLen = len; } | virtual void SetLen(Int_t len = 1) { fLen = len; } | |||
virtual void SetOffset(Int_t offset = 0) { fOffset = offset; } | virtual void SetOffset(Int_t offset = 0) { fOffset = offset; } | |||
virtual void SetRange(Bool_t range = kTRUE) { fIsRange = range; } | virtual void SetRange(Bool_t range = kTRUE) { fIsRange = range; } | |||
virtual void SetUnsigned() { fIsUnsigned = kTRUE; } | virtual void SetUnsigned() { fIsUnsigned = kTRUE; } | |||
ClassDef(TLeaf,2); //Leaf: description of a Branch data type | ClassDef(TLeaf,2); //Leaf: description of a Branch data type | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TLeafB.h | TLeafB.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TLeafB.h 32525 2010-03-10 13:56:16Z pcanal $ | // @(#)root/tree:$Id: TLeafB.h 36407 2010-10-22 02:04:08Z pcanal $ | |||
// 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 51 | skipping to change at line 51 | |||
virtual void FillBasket(TBuffer& b); | virtual void FillBasket(TBuffer& b); | |||
virtual Int_t GetMaximum() const { return fMaximum; } | virtual Int_t GetMaximum() const { return fMaximum; } | |||
virtual Int_t GetMinimum() const { return fMinimum; } | virtual Int_t GetMinimum() const { return fMinimum; } | |||
const char *GetTypeName() const; | const char *GetTypeName() const; | |||
Double_t GetValue(Int_t i = 0) const { return IsUnsigned() ? (Dou ble_t)((UChar_t) fValue[i]) : (Double_t)fValue[i]; } | Double_t GetValue(Int_t i = 0) const { return IsUnsigned() ? (Dou ble_t)((UChar_t) fValue[i]) : (Double_t)fValue[i]; } | |||
virtual void *GetValuePointer() const { return fValue; } | virtual void *GetValuePointer() const { return fValue; } | |||
virtual void Import(TClonesArray* list, Int_t n); | virtual void Import(TClonesArray* list, Int_t n); | |||
virtual void PrintValue(Int_t i = 0) const; | virtual void PrintValue(Int_t i = 0) const; | |||
virtual void ReadBasket(TBuffer&); | virtual void ReadBasket(TBuffer&); | |||
virtual void ReadBasketExport(TBuffer&, TClonesArray* list, Int_t n); | virtual void ReadBasketExport(TBuffer&, TClonesArray* list, Int_t n); | |||
virtual void ReadValue(ifstream&); | virtual void ReadValue(istream&); | |||
virtual void SetAddress(void* addr = 0); | virtual void SetAddress(void* addr = 0); | |||
virtual void SetMaximum(Char_t max) { fMaximum = max; } | virtual void SetMaximum(Char_t max) { fMaximum = max; } | |||
virtual void SetMinimum(Char_t min) { fMinimum = min; } | virtual void SetMinimum(Char_t min) { fMinimum = min; } | |||
ClassDef(TLeafB,1); //A TLeaf for an 8 bit Integer data type. | ClassDef(TLeafB,1); //A TLeaf for an 8 bit Integer data type. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TLeafC.h | TLeafC.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TLeafC.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/tree:$Id: TLeafC.h 36407 2010-10-22 02:04:08Z pcanal $ | |||
// Author: Rene Brun 17/03/97 | // Author: Rene Brun 17/03/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 52 | skipping to change at line 52 | |||
virtual Int_t GetMaximum() const {return fMaximum;} | virtual Int_t GetMaximum() const {return fMaximum;} | |||
virtual Int_t GetMinimum() const {return fMinimum;} | virtual Int_t GetMinimum() const {return fMinimum;} | |||
const char *GetTypeName() const; | const char *GetTypeName() const; | |||
Double_t GetValue(Int_t i=0) const; | Double_t GetValue(Int_t i=0) const; | |||
virtual void *GetValuePointer() const {return fValue;} | virtual void *GetValuePointer() const {return fValue;} | |||
char *GetValueString() const {return fValue;} | char *GetValueString() const {return fValue;} | |||
virtual void Import(TClonesArray *list, Int_t n); | virtual void Import(TClonesArray *list, Int_t n); | |||
virtual void PrintValue(Int_t i=0) const; | virtual void PrintValue(Int_t i=0) const; | |||
virtual void ReadBasket(TBuffer &b); | virtual void ReadBasket(TBuffer &b); | |||
virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | |||
virtual void ReadValue(ifstream & s); | virtual void ReadValue(istream & s); | |||
virtual void SetAddress(void *add=0); | virtual void SetAddress(void *add=0); | |||
ClassDef(TLeafC,1); //A TLeaf for a variable length string. | ClassDef(TLeafC,1); //A TLeaf for a variable length string. | |||
}; | }; | |||
inline Double_t TLeafC::GetValue(Int_t i) const { return fValue[i]; } | inline Double_t TLeafC::GetValue(Int_t i) const { return fValue[i]; } | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TLeafD.h | TLeafD.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TLeafD.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/tree:$Id: TLeafD.h 36407 2010-10-22 02:04:08Z pcanal $ | |||
// 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 49 | skipping to change at line 49 | |||
virtual void Export(TClonesArray *list, Int_t n); | virtual void Export(TClonesArray *list, Int_t n); | |||
virtual void FillBasket(TBuffer &b); | virtual void FillBasket(TBuffer &b); | |||
const char *GetTypeName() const {return "Double_t";} | const char *GetTypeName() const {return "Double_t";} | |||
Double_t GetValue(Int_t i=0) const; | Double_t GetValue(Int_t i=0) const; | |||
virtual void *GetValuePointer() const {return fValue;} | virtual void *GetValuePointer() const {return fValue;} | |||
virtual void Import(TClonesArray *list, Int_t n); | virtual void Import(TClonesArray *list, Int_t n); | |||
virtual void PrintValue(Int_t i=0) const; | virtual void PrintValue(Int_t i=0) const; | |||
virtual void ReadBasket(TBuffer &b); | virtual void ReadBasket(TBuffer &b); | |||
virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | |||
virtual void ReadValue(ifstream & s); | virtual void ReadValue(istream & s); | |||
virtual void SetAddress(void *add=0); | virtual void SetAddress(void *add=0); | |||
ClassDef(TLeafD,1); //A TLeaf for a 64 bit floating point data type. | ClassDef(TLeafD,1); //A TLeaf for a 64 bit floating point data type. | |||
}; | }; | |||
// if leaf is a simple type, i must be set to 0 | // if leaf is a simple type, i must be set to 0 | |||
// if leaf is an array, i is the array element number to be returned | // if leaf is an array, i is the array element number to be returned | |||
inline Double_t TLeafD::GetValue(Int_t i) const { return fValue[i]; } | inline Double_t TLeafD::GetValue(Int_t i) const { return fValue[i]; } | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TLeafF.h | TLeafF.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TLeafF.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/tree:$Id: TLeafF.h 36407 2010-10-22 02:04:08Z pcanal $ | |||
// 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 49 | skipping to change at line 49 | |||
virtual void Export(TClonesArray *list, Int_t n); | virtual void Export(TClonesArray *list, Int_t n); | |||
virtual void FillBasket(TBuffer &b); | virtual void FillBasket(TBuffer &b); | |||
const char *GetTypeName() const {return "Float_t";} | const char *GetTypeName() const {return "Float_t";} | |||
Double_t GetValue(Int_t i=0) const; | Double_t GetValue(Int_t i=0) const; | |||
virtual void *GetValuePointer() const {return fValue;} | virtual void *GetValuePointer() const {return fValue;} | |||
virtual void Import(TClonesArray *list, Int_t n); | virtual void Import(TClonesArray *list, Int_t n); | |||
virtual void PrintValue(Int_t i=0) const; | virtual void PrintValue(Int_t i=0) const; | |||
virtual void ReadBasket(TBuffer &b); | virtual void ReadBasket(TBuffer &b); | |||
virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | |||
virtual void ReadValue(ifstream & s); | virtual void ReadValue(istream & s); | |||
virtual void SetAddress(void *add=0); | virtual void SetAddress(void *add=0); | |||
ClassDef(TLeafF,1); //A TLeaf for a 32 bit floating point data type. | ClassDef(TLeafF,1); //A TLeaf for a 32 bit floating point data type. | |||
}; | }; | |||
// if leaf is a simple type, i must be set to 0 | // if leaf is a simple type, i must be set to 0 | |||
// if leaf is an array, i is the array element number to be returned | // if leaf is an array, i is the array element number to be returned | |||
inline Double_t TLeafF::GetValue(Int_t i) const { return fValue[i]; } | inline Double_t TLeafF::GetValue(Int_t i) const { return fValue[i]; } | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TLeafI.h | TLeafI.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TLeafI.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/tree:$Id: TLeafI.h 36407 2010-10-22 02:04:08Z pcanal $ | |||
// 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 51 | skipping to change at line 51 | |||
virtual void FillBasket(TBuffer &b); | virtual void FillBasket(TBuffer &b); | |||
const char *GetTypeName() const; | const char *GetTypeName() const; | |||
virtual Int_t GetMaximum() const {return fMaximum;} | virtual Int_t GetMaximum() const {return fMaximum;} | |||
virtual Int_t GetMinimum() const {return fMinimum;} | virtual Int_t GetMinimum() const {return fMinimum;} | |||
Double_t GetValue(Int_t i=0) const; | Double_t GetValue(Int_t i=0) const; | |||
virtual void *GetValuePointer() const {return fValue;} | virtual void *GetValuePointer() const {return fValue;} | |||
virtual void Import(TClonesArray *list, Int_t n); | virtual void Import(TClonesArray *list, Int_t n); | |||
virtual void PrintValue(Int_t i=0) const; | virtual void PrintValue(Int_t i=0) const; | |||
virtual void ReadBasket(TBuffer &b); | virtual void ReadBasket(TBuffer &b); | |||
virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | |||
virtual void ReadValue(ifstream & s); | virtual void ReadValue(istream & s); | |||
virtual void SetAddress(void *add=0); | virtual void SetAddress(void *add=0); | |||
virtual void SetMaximum(Int_t max) {fMaximum = max;} | virtual void SetMaximum(Int_t max) {fMaximum = max;} | |||
virtual void SetMinimum(Int_t min) {fMinimum = min;} | virtual void SetMinimum(Int_t min) {fMinimum = min;} | |||
ClassDef(TLeafI,1); //A TLeaf for an Integer data type. | ClassDef(TLeafI,1); //A TLeaf for an Integer data type. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TLeafL.h | TLeafL.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TLeafL.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/tree:$Id: TLeafL.h 36407 2010-10-22 02:04:08Z pcanal $ | |||
// Author: Rene Brun 19/12/2003 | // Author: Rene Brun 19/12/2003 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 51 | skipping to change at line 51 | |||
virtual void FillBasket(TBuffer &b); | virtual void FillBasket(TBuffer &b); | |||
const char *GetTypeName() const; | const char *GetTypeName() const; | |||
virtual Int_t GetMaximum() const {return (Int_t)fMaximum;} | virtual Int_t GetMaximum() const {return (Int_t)fMaximum;} | |||
virtual Int_t GetMinimum() const {return (Int_t)fMinimum;} | virtual Int_t GetMinimum() const {return (Int_t)fMinimum;} | |||
Double_t GetValue(Int_t i=0) const; | Double_t GetValue(Int_t i=0) const; | |||
virtual void *GetValuePointer() const {return fValue;} | virtual void *GetValuePointer() const {return fValue;} | |||
virtual void Import(TClonesArray *list, Int_t n); | virtual void Import(TClonesArray *list, Int_t n); | |||
virtual void PrintValue(Int_t i=0) const; | virtual void PrintValue(Int_t i=0) const; | |||
virtual void ReadBasket(TBuffer &b); | virtual void ReadBasket(TBuffer &b); | |||
virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | |||
virtual void ReadValue(ifstream & s); | virtual void ReadValue(istream & s); | |||
virtual void SetAddress(void *add=0); | virtual void SetAddress(void *add=0); | |||
virtual void SetMaximum(Long64_t max) {fMaximum = max;} | virtual void SetMaximum(Long64_t max) {fMaximum = max;} | |||
virtual void SetMinimum(Long64_t min) {fMinimum = min;} | virtual void SetMinimum(Long64_t min) {fMinimum = min;} | |||
ClassDef(TLeafL,1); //A TLeaf for a 64 bit Integer data type. | ClassDef(TLeafL,1); //A TLeaf for a 64 bit Integer data type. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TLeafO.h | TLeafO.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TLeafO.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/tree:$Id: TLeafO.h 36407 2010-10-22 02:04:08Z pcanal $ | |||
// Author: Philippe Canal 20/1/05 | // Author: Philippe Canal 20/1/05 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 49 | skipping to change at line 49 | |||
virtual void Export(TClonesArray *list, Int_t n); | virtual void Export(TClonesArray *list, Int_t n); | |||
virtual void FillBasket(TBuffer &b); | virtual void FillBasket(TBuffer &b); | |||
const char *GetTypeName() const; | const char *GetTypeName() const; | |||
Double_t GetValue(Int_t i=0) const; | Double_t GetValue(Int_t i=0) const; | |||
virtual void *GetValuePointer() const {return fValue;} | virtual void *GetValuePointer() const {return fValue;} | |||
virtual void Import(TClonesArray *list, Int_t n); | virtual void Import(TClonesArray *list, Int_t n); | |||
virtual void PrintValue(Int_t i=0) const; | virtual void PrintValue(Int_t i=0) const; | |||
virtual void ReadBasket(TBuffer &b); | virtual void ReadBasket(TBuffer &b); | |||
virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | |||
virtual void ReadValue(ifstream & s); | virtual void ReadValue(istream & s); | |||
virtual void SetAddress(void *add=0); | virtual void SetAddress(void *add=0); | |||
ClassDef(TLeafO,1); //A TLeaf for an 8 bit Integer data type. | ClassDef(TLeafO,1); //A TLeaf for an 8 bit Integer data type. | |||
}; | }; | |||
inline Double_t TLeafO::GetValue(Int_t i) const { return fValue[i]; } | inline Double_t TLeafO::GetValue(Int_t i) const { return fValue[i]; } | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TLeafS.h | TLeafS.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TLeafS.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/tree:$Id: TLeafS.h 36407 2010-10-22 02:04:08Z pcanal $ | |||
// 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 49 | skipping to change at line 49 | |||
virtual void Export(TClonesArray *list, Int_t n); | virtual void Export(TClonesArray *list, Int_t n); | |||
virtual void FillBasket(TBuffer &b); | virtual void FillBasket(TBuffer &b); | |||
const char *GetTypeName() const; | const char *GetTypeName() const; | |||
Double_t GetValue(Int_t i=0) const; | Double_t GetValue(Int_t i=0) const; | |||
virtual void *GetValuePointer() const {return fValue;} | virtual void *GetValuePointer() const {return fValue;} | |||
virtual void Import(TClonesArray *list, Int_t n); | virtual void Import(TClonesArray *list, Int_t n); | |||
virtual void PrintValue(Int_t i=0) const; | virtual void PrintValue(Int_t i=0) const; | |||
virtual void ReadBasket(TBuffer &b); | virtual void ReadBasket(TBuffer &b); | |||
virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | virtual void ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n ); | |||
virtual void ReadValue(ifstream & s); | virtual void ReadValue(istream & s); | |||
virtual void SetAddress(void *add=0); | virtual void SetAddress(void *add=0); | |||
ClassDef(TLeafS,1); //A TLeaf for a 16 bit Integer data type. | ClassDef(TLeafS,1); //A TLeaf for a 16 bit Integer data type. | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TLockFile.h | TLockFile.h | |||
---|---|---|---|---|
// @(#)root/thread:$Id: TLockFile.h 28363 2009-04-27 15:12:11Z rdm $ | // @(#)root/io:$Id: TLockFile.h 36484 2010-11-02 16:00:10Z rdm $ | |||
// Author: Jan Fiete Grosse-Oetringhaus, 04.06.07 | // Author: Jan Fiete Grosse-Oetringhaus, 04.06.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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
TMakeProject.h | TMakeProject.h | |||
---|---|---|---|---|
// @(#)root/io:$Id: TMakeProject.h 32336 2010-02-12 15:03:23Z pcanal $ | // @(#)root/io:$Id: TMakeProject.h 36707 2010-11-16 20:00:58Z 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 29 | skipping to change at line 29 | |||
// Helper class implementing the TFile::MakeProject. // | // Helper class implementing the TFile::MakeProject. // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#include <stdio.h> | #include <stdio.h> | |||
#ifndef ROOT_TOBJECT_H | #ifndef ROOT_TOBJECT_H | |||
#include "TString.h" | #include "TString.h" | |||
#endif | #endif | |||
class TList; | class TList; | |||
class TVirtualStreamerInfo; | ||||
class TStreamerElement; | class TStreamerElement; | |||
class TMakeProject | class TMakeProject | |||
{ | { | |||
private: | private: | |||
static void GenerateMissingStreamerInfo(TList *extrainfos, const char *c lname, Bool_t iscope); | static void GenerateMissingStreamerInfo(TList *extrainfos, const char *c lname, Bool_t iscope); | |||
public: | public: | |||
static void AddUniqueStatement(FILE *fp, const char *statement, char *in clist); | static void AddUniqueStatement(FILE *fp, const char *statement, char *in clist); | |||
static void AddInclude(FILE *fp, const char *header, Bool_t system, char *inclist); | static void AddInclude(FILE *fp, const char *header, Bool_t system, char *inclist); | |||
static void ChopFileName(TString &name, Int_t limit); | static void ChopFileName(TString &name, Int_t limit); | |||
static TString GetHeaderName(const char *name, const TList *extrainfos, Bool_t includeNested = kFALSE); | static TString GetHeaderName(const char *name, const TList *extrainfos, Bool_t includeNested = kFALSE); | |||
static UInt_t GenerateClassPrefix(FILE *fp, const char *clname, Bool_t t op, TString &protoname, UInt_t *numberOfClasses, Int_t implementEmptyClass = kFALSE, Bool_t needGenericTemplate = kFALSE); | static UInt_t GenerateClassPrefix(FILE *fp, const char *clname, Bool_t t op, TString &protoname, UInt_t *numberOfClasses, Int_t implementEmptyClass = kFALSE, Bool_t needGenericTemplate = kFALSE); | |||
static void GenerateMissingStreamerInfos(TList *extrainfos, TStreamerEle ment *element); | static void GenerateMissingStreamerInfos(TList *extrainfos, TStreamerEle ment *element); | |||
static void GenerateMissingStreamerInfos(TList *extrainfos, const char * clname); | static void GenerateMissingStreamerInfos(TList *extrainfos, const char * clname); | |||
static UInt_t GenerateForwardDeclaration(FILE *fp, const char *clname, c har *inclist, Bool_t implementEmptyClass, Bool_t needGenericTemplate, const TList *extrainfos); | static UInt_t GenerateForwardDeclaration(FILE *fp, const char *clname, c har *inclist, Bool_t implementEmptyClass, Bool_t needGenericTemplate, const TList *extrainfos); | |||
static UInt_t GenerateIncludeForTemplate(FILE *fp, const char *clname, c har *inclist, Bool_t forward, const TList *extrainfos); | static UInt_t GenerateIncludeForTemplate(FILE *fp, const char *clname, c har *inclist, Bool_t forward, const TList *extrainfos); | |||
static TString UpdateAssociativeToVector(const char *name); | static TString UpdateAssociativeToVector(const char *name); | |||
static void GeneratePostDeclaration(FILE *fp, const TVirtualStreamerInfo *info, char *inclist); | ||||
}; | }; | |||
#endif // ROOT_TMakeProject | #endif // ROOT_TMakeProject | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 3 lines changed or added | |||
TMath.h | TMath.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: TMath.h 34992 2010-08-25 10:36:11Z moneta $ | // @(#)root/mathcore:$Id: TMath.h 36792 2010-11-19 16:53:42Z rdm $ | |||
// Authors: Rene Brun, Anna Kreshuk, Eddy Offermann, Fons Rademakers 29/0 7/95 | // Authors: Rene Brun, Anna Kreshuk, Eddy Offermann, Fons Rademakers 29/0 7/95 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 344 | skipping to change at line 344 | |||
#include <float.h> | #include <float.h> | |||
#if defined(R__WIN32) && !defined(__CINT__) | #if defined(R__WIN32) && !defined(__CINT__) | |||
# ifndef finite | # ifndef finite | |||
# define finite _finite | # define finite _finite | |||
# define isnan _isnan | # define isnan _isnan | |||
# endif | # endif | |||
#endif | #endif | |||
#if defined(R__AIX) || defined(R__SOLARIS_CC50) || \ | #if defined(R__AIX) || defined(R__SOLARIS_CC50) || \ | |||
defined(R__HPUX11) || defined(R__GLIBC) || \ | defined(R__HPUX11) || defined(R__GLIBC) || \ | |||
(defined(R__MACOSX) && defined(__INTEL_COMPILER)) | (defined(R__MACOSX) && (defined(__INTEL_COMPILER) || defined(__arm__))) | |||
// math functions are defined inline so we have to include them here | // math functions are defined inline so we have to include them here | |||
# include <math.h> | # include <math.h> | |||
# ifdef R__SOLARIS_CC50 | # ifdef R__SOLARIS_CC50 | |||
extern "C" { int finite(double); } | extern "C" { int finite(double); } | |||
# endif | # endif | |||
# if defined(R__GLIBC) && defined(__STRICT_ANSI__) | # if defined(R__GLIBC) && defined(__STRICT_ANSI__) | |||
# ifndef finite | # ifndef finite | |||
# define finite __finite | # define finite __finite | |||
# endif | # endif | |||
# ifndef isnan | # ifndef isnan | |||
skipping to change at line 465 | skipping to change at line 465 | |||
inline Double_t TMath::Power(Double_t x, Double_t y) | inline Double_t TMath::Power(Double_t x, Double_t y) | |||
{ return pow(x, y); } | { return pow(x, y); } | |||
inline Double_t TMath::Log(Double_t x) | inline Double_t TMath::Log(Double_t x) | |||
{ return log(x); } | { return log(x); } | |||
inline Double_t TMath::Log10(Double_t x) | inline Double_t TMath::Log10(Double_t x) | |||
{ return log10(x); } | { return log10(x); } | |||
inline Int_t TMath::Finite(Double_t x) | inline Int_t TMath::Finite(Double_t x) | |||
#ifdef R__HPUX11 | #if defined(R__HPUX11) | |||
{ return isfinite(x); } | { return isfinite(x); } | |||
#elif defined(R__MACOSX) && defined(__arm__) | ||||
#ifdef isfinite | ||||
// from math.h | ||||
{ return isfinite(x); } | ||||
#else | ||||
// from cmath | ||||
{ return std::isfinite(x); } | ||||
#endif | ||||
#else | #else | |||
{ return finite(x); } | { return finite(x); } | |||
#endif | #endif | |||
inline Int_t TMath::IsNaN(Double_t x) | inline Int_t TMath::IsNaN(Double_t x) | |||
#if defined(R__MACOSX) && defined(__arm__) | ||||
#ifdef isnan | ||||
// from math.h | ||||
{ return isnan(x); } | ||||
#else | ||||
// from cmath | ||||
{ return std::isnan(x); } | ||||
#endif | ||||
#else | ||||
{ return isnan(x); } | { return isnan(x); } | |||
#endif | ||||
//-------- Advanced ------------- | //-------- Advanced ------------- | |||
template <typename T> inline T TMath::NormCross(const T v1[3],const T v2[3] ,T out[3]) | template <typename T> inline T TMath::NormCross(const T v1[3],const T v2[3] ,T out[3]) | |||
{ | { | |||
// Calculate the Normalized Cross Product of two vectors | // Calculate the Normalized Cross Product of two vectors | |||
return Normalize(Cross(v1,v2,out)); | return Normalize(Cross(v1,v2,out)); | |||
} | } | |||
template <typename T> | template <typename T> | |||
skipping to change at line 830 | skipping to change at line 848 | |||
v2[1] = p3[1] - p1[1]; | v2[1] = p3[1] - p1[1]; | |||
v2[2] = p3[2] - p1[2]; | v2[2] = p3[2] - p1[2]; | |||
NormCross(v1,v2,normal); | NormCross(v1,v2,normal); | |||
return normal; | return normal; | |||
} | } | |||
template <typename T> Bool_t TMath::IsInside(T xp, T yp, Int_t np, T *x, T *y) | template <typename T> Bool_t TMath::IsInside(T xp, T yp, Int_t np, T *x, T *y) | |||
{ | { | |||
// Function which returns kTRUE if point xp,yp lies inside the | // Function which returns kTRUE if point xp,yp lies inside the | |||
// polygon defined by the np points in arrays x and y, kFALSE otherwise | // polygon defined by the np points in arrays x and y, kFALSE otherwise. | |||
// NOTE that the polygon must be a closed polygon (1st and last point | // Note that the polygon may be open or closed. | |||
// must be identical). | ||||
Int_t i, j = np-1 ; | ||||
Double_t xint; | Bool_t oddNodes = kFALSE; | |||
Int_t i; | ||||
Int_t inter = 0; | for (i=0; i<np; i++) { | |||
for (i=0;i<np-1;i++) { | if ((y[i]<yp && y[j]>=yp) || (y[j]<yp && y[i]>=yp)) { | |||
if (y[i] == y[i+1]) continue; | if (x[i]+(yp-y[i])/(y[j]-y[i])*(x[j]-x[i])<xp) { | |||
if (yp <= y[i] && yp <= y[i+1]) continue; | oddNodes = !oddNodes; | |||
if (y[i] < yp && y[i+1] < yp) continue; | } | |||
xint = x[i] + (yp-y[i])*(x[i+1]-x[i])/(y[i+1]-y[i]); | } | |||
if ((Double_t)xp < xint) inter++; | j=i; | |||
} | } | |||
if (inter%2) return kTRUE; | ||||
return kFALSE; | return oddNodes; | |||
} | } | |||
template <typename T> Double_t TMath::Median(Long64_t n, const T *a, const Double_t *w, Long64_t *work) | template <typename T> Double_t TMath::Median(Long64_t n, const T *a, const Double_t *w, Long64_t *work) | |||
{ | { | |||
// Return the median of the array a where each entry i has weight w[i] . | // Return the median of the array a where each entry i has weight w[i] . | |||
// Both arrays have a length of at least n . The median is a number obta ined | // Both arrays have a length of at least n . The median is a number obta ined | |||
// from the sorted array a through | // from the sorted array a through | |||
// | // | |||
// median = (a[jl]+a[jh])/2. where (using also the sorted index on the array w) | // median = (a[jl]+a[jh])/2. where (using also the sorted index on the array w) | |||
// | // | |||
End of changes. 8 change blocks. | ||||
18 lines changed or deleted | 36 lines changed or added | |||
TMatrixTUtils.h | TMatrixTUtils.h | |||
---|---|---|---|---|
// @(#)root/matrix:$Id: TMatrixTUtils.h 34913 2010-08-20 19:18:35Z pcanal $ | // @(#)root/matrix:$Id: TMatrixTUtils.h 36047 2010-10-04 06:43:15Z brun $ | |||
/************************************************************************* | /************************************************************************* | |||
* 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_TMatrixTUtils | #ifndef ROOT_TMatrixTUtils | |||
#define ROOT_TMatrixTUtils | #define ROOT_TMatrixTUtils | |||
skipping to change at line 269 | skipping to change at line 269 | |||
return (this->fPtr)[arown*this->fInc]; | return (this->fPtr)[arown*this->fInc]; | |||
else { | else { | |||
Error("operator()","Request row(%d) outside matrix range of %d - % d", | Error("operator()","Request row(%d) outside matrix range of %d - % d", | |||
i,this->fMatrix->GetRowLwb(),this->fMatrix->Get RowLwb()+this->fMatrix->GetNrows()); | i,this->fMatrix->GetRowLwb(),this->fMatrix->Get RowLwb()+this->fMatrix->GetNrows()); | |||
return (this->fPtr)[0]; | return (this->fPtr)[0]; | |||
} | } | |||
} | } | |||
inline Element &operator()(Int_t i) { | inline Element &operator()(Int_t i) { | |||
R__ASSERT(this->fMatrix->IsValid()); | R__ASSERT(this->fMatrix->IsValid()); | |||
const Int_t arown = i-this->fMatrix->GetRowLwb(); | const Int_t arown = i-this->fMatrix->GetRowLwb(); | |||
R__ASSERT(arown < this->fMatrix->GetNrows() && arown >= 0); | ||||
return (const_cast<Element *>(this->fPtr))[arown*this->fInc]; | ||||
if (arown < this->fMatrix->GetNrows() && arown >= 0) | if (arown < this->fMatrix->GetNrows() && arown >= 0) | |||
return (const_cast<Element *>(this->fPtr))[arown*this->fInc]; | return (const_cast<Element *>(this->fPtr))[arown*this->fInc]; | |||
else { | else { | |||
Error("operator()","Request row(%d) outside matrix range of %d - % d", | Error("operator()","Request row(%d) outside matrix range of %d - % d", | |||
i,this->fMatrix->GetRowLwb(),this->fMatrix->Get RowLwb()+this->fMatrix->GetNrows()); | i,this->fMatrix->GetRowLwb(),this->fMatrix->Get RowLwb()+this->fMatrix->GetNrows()); | |||
return (const_cast<Element *>(this->fPtr))[0]; | return (const_cast<Element *>(this->fPtr))[0]; | |||
} | } | |||
} | } | |||
inline const Element &operator[](Int_t i) const { return (*(const TMatri xTColumn<Element> *)this)(i); } | inline const Element &operator[](Int_t i) const { return (*(const TMatri xTColumn<Element> *)this)(i); } | |||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 1 lines changed or added | |||
TMemStat.h | TMemStat.h | |||
---|---|---|---|---|
// @(#)root/memstat:$Id: TMemStat.h 35660 2010-09-23 14:02:09Z brun $ | // @(#)root/memstat:$Id: TMemStat.h 36382 2010-10-20 12:27:40Z brun $ | |||
// Author: Anar Manafov (A.Manafov@gsi.de) 2008-03-02 | // Author: Anar Manafov (A.Manafov@gsi.de) 2008-03-02 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2010, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2010, 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_TMemStat | #ifndef ROOT_TMemStat | |||
#define ROOT_TMemStat | #define ROOT_TMemStat | |||
class TMemStat: public TObject { | class TMemStat: public TObject { | |||
private: | private: | |||
Bool_t fIsActive; // is object attached to MemStat | Bool_t fIsActive; // is object attached to MemStat | |||
public: | public: | |||
TMemStat(Option_t* option = "read", Long64_t maxcalls=5000000); | TMemStat(Option_t* option = "read", Int_t buffersize=10000, Int_t maxcal ls=5000000); | |||
virtual ~TMemStat(); | virtual ~TMemStat(); | |||
static void Close(); | static void Close(); | |||
virtual void Disable(); | virtual void Disable(); | |||
virtual void Enable(); | virtual void Enable(); | |||
static void Show(Double_t update=0.01, const char* fname="*"); | static void Show(Double_t update=0.1, Int_t nbigleaks=20, const char* f name="*"); | |||
ClassDef(TMemStat, 0) // a user interface class of MemStat | ClassDef(TMemStat, 0) // a user interface class of MemStat | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
TMemStatMng.h | TMemStatMng.h | |||
---|---|---|---|---|
// @(#)root/memstat:$Id: TMemStatMng.h 35660 2010-09-23 14:02:09Z brun $ | // @(#)root/memstat:$Id: TMemStatMng.h 36382 2010-10-20 12:27:40Z brun $ | |||
// Author: Anar Manafov (A.Manafov@gsi.de) 2008-03-02 | // Author: Anar Manafov (A.Manafov@gsi.de) 2008-03-02 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2010, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2010, 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_TMemStatMng | #ifndef ROOT_TMemStatMng | |||
skipping to change at line 84 | skipping to change at line 84 | |||
private: | private: | |||
TMemStatMng(); | TMemStatMng(); | |||
virtual ~TMemStatMng(); | virtual ~TMemStatMng(); | |||
public: | public: | |||
void Enable(); //enable memory statistic | void Enable(); //enable memory statistic | |||
void Disable(); //Disable memory statistic | void Disable(); //Disable memory statistic | |||
static TMemStatMng* GetInstance(); //get instance of class - ONLY O NE INSTANCE | static TMemStatMng* GetInstance(); //get instance of class - ONLY O NE INSTANCE | |||
static void Close(); //close MemStatManager | static void Close(); //close MemStatManager | |||
void SetMaxcalls(Long64_t maxcalls); | void SetBufferSize(Int_t buffersize); | |||
void SetMaxCalls(Int_t maxcalls); | ||||
public: | public: | |||
//stack data members | //stack data members | |||
void SetUseGNUBuiltinBacktrace(Bool_t newVal) { | void SetUseGNUBuiltinBacktrace(Bool_t newVal) { | |||
fUseGNUBuiltinBacktrace = newVal; | fUseGNUBuiltinBacktrace = newVal; | |||
} | } | |||
protected: | protected: | |||
#if !defined(__APPLE__) | #if !defined(__APPLE__) | |||
TMemStatHook::MallocHookFunc_t fPreviousMallocHook; //!old malloc function | TMemStatHook::MallocHookFunc_t fPreviousMallocHook; //!old malloc function | |||
TMemStatHook::FreeHookFunc_t fPreviousFreeHook; //!old free fu nction | TMemStatHook::FreeHookFunc_t fPreviousFreeHook; //!old free fu nction | |||
#endif | #endif | |||
void Init(); | void Init(); | |||
void AddPointer(void *ptr, Int_t size); //add pointer to the table | void AddPointer(void *ptr, Int_t size); //add pointer to the table | |||
void FillTree(); | ||||
static void *AllocHook(size_t size, const void* /*caller*/); | static void *AllocHook(size_t size, const void* /*caller*/); | |||
static void FreeHook(void* ptr, const void* /*caller*/); | static void FreeHook(void* ptr, const void* /*caller*/); | |||
static void MacAllocHook(void *ptr, size_t size); | static void MacAllocHook(void *ptr, size_t size); | |||
static void MacFreeHook(void *ptr); | static void MacFreeHook(void *ptr); | |||
Int_t generateBTID(UChar_t *CRCdigest, Int_t stackEntries, | Int_t generateBTID(UChar_t *CRCdigest, Int_t stackEntries, | |||
void **stackPointers); | void **stackPointers); | |||
// memory information | // memory information | |||
TFile* fDumpFile; //!file to dump current information | TFile* fDumpFile; //!file to dump current information | |||
TTree *fDumpTree; //!tree to dump information | TTree *fDumpTree; //!tree to dump information | |||
static TMemStatMng *fgInstance; // pointer to instance | static TMemStatMng *fgInstance; // pointer to instance | |||
static void *fgStackTop; // stack top pointer | static void *fgStackTop; // stack top pointer | |||
Bool_t fUseGNUBuiltinBacktrace; | Bool_t fUseGNUBuiltinBacktrace; | |||
TTimeStamp fTimeStamp; | TTimeStamp fTimeStamp; | |||
Double_t fBeginTime; //time when monitoring starts | Double_t fBeginTime; //time when monitoring starts | |||
ULong64_t fPos; //position in memory where alloc/free happens | ULong64_t fPos; //position in memory where alloc/free happens | |||
Int_t fTimems; //10000*(current time - begin time) | Int_t fTimems; //10000*(current time - begin time) | |||
Int_t fNBytes; //number of bytes allocated/freed | Int_t fNBytes; //number of bytes allocated/freed | |||
UInt_t fN; | Int_t fBtID; //back trace identifier | |||
Int_t fBtID; //back trace identifier | Int_t fMaxCalls; //max number of malloc/frees to register in t | |||
Long64_t fMaxCalls; //max number of malloc/frees to register in t | he output Tree | |||
he output Tree | Int_t fBufferSize; //max number of malloc/free to keep in the bu | |||
ffer | ||||
Int_t fBufN; //current number of alloc or free in the buff | ||||
er | ||||
ULong64_t *fBufPos; //position in memory where alloc/free happens | ||||
Int_t *fBufTimems; //10000*(current time - begin time) | ||||
Int_t *fBufNBytes; //number of bytes allocated/freed | ||||
Int_t *fBufBtID; //back trace identifier | ||||
Int_t *fIndex; //array to sort fBufPos | ||||
Bool_t *fMustWrite; //flag to write or not the entry | ||||
private: | private: | |||
TMemStatFAddrContainer fFAddrs; | TMemStatFAddrContainer fFAddrs; | |||
TObjArray *fFAddrsList; | TObjArray *fFAddrsList; | |||
TH1I *fHbtids; | TH1I *fHbtids; | |||
CRCSet_t fBTChecksums; | CRCSet_t fBTChecksums; | |||
Int_t fBTCount; | Int_t fBTCount; | |||
// for Debug. A counter of all (de)allacations. | // for Debug. A counter of all (de)allacations. | |||
UInt_t fBTIDCount; | UInt_t fBTIDCount; | |||
TNamed *fSysInfo; | TNamed *fSysInfo; | |||
End of changes. 4 change blocks. | ||||
10 lines changed or deleted | 21 lines changed or added | |||
TMemStatShow.h | TMemStatShow.h | |||
---|---|---|---|---|
// @(#)root/treeviewer:$Id: TMemStatShow.h 35621 2010-09-23 07:55:59Z brun $ | // @(#)root/treeviewer:$Id: TMemStatShow.h 37300 2010-12-05 17:25:20Z brun $ | |||
// Author: Rene Brun 21/09/2010 | // Author: Rene Brun 21/09/2010 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2010, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2010, 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 27 | skipping to change at line 27 | |||
// TMemStatShow // | // TMemStatShow // | |||
// // | // // | |||
// class to visualize the results of TMemStat // | // class to visualize the results of TMemStat // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#ifndef ROOT_TObject | #ifndef ROOT_TObject | |||
#include "TObject.h" | #include "TObject.h" | |||
#endif | #endif | |||
class TTree; | ||||
class TH1D; | ||||
class TH1I; | ||||
class TGToolTip; | ||||
class TObjArray; | ||||
class TCanvas; | ||||
class TMemStatShow : public TObject { | class TMemStatShow : public TObject { | |||
protected: | ||||
static TTree *fgT; //TMemStat Tree | ||||
static TH1D *fgHalloc; //histogram with allocations | ||||
static TH1D *fgHfree; //histogram with frees | ||||
static TH1D *fgH; //histogram with allocations - frees | ||||
static TH1I *fgHleaks; //histogram with leaks | ||||
static TH1I *fgHentry; //histogram with entry numbers in the TObj | ||||
Array | ||||
static TH1I *fgHdiff; //histogram with diff of entry number betw | ||||
een alloc/free | ||||
static TGToolTip *fgTip1; //pointer to tool tip for canvas 1 | ||||
static TGToolTip *fgTip2; //pointer to tool tip for canvas 2 | ||||
static TObjArray *fgBtidlist; //list of back trace ids | ||||
static Double_t *fgV1; //pointer to V1 array of TTree::Draw (pos) | ||||
static Double_t *fgV2; //pointer to V2 array of TTree::Draw (nbyt | ||||
es) | ||||
static Double_t *fgV3; //pointer to V3 array of TTree::Draw (time | ||||
) | ||||
static Double_t *fgV4; //pointer to V4 array of TTree::Draw (btid | ||||
) | ||||
static TCanvas *fgC1; //pointer to canvas showing allocs/dealloc | ||||
s vs time | ||||
static TCanvas *fgC2; //pointer to canvas with leaks in decreasi | ||||
ng order | ||||
static TCanvas *fgC3; //pointer to canvas showing the main leaks | ||||
static Long64_t fgAddressFirst; //first address to process | ||||
static Long64_t fgAddressN; //number of addresses in bytes to proces | ||||
s | ||||
static Long64_t fgEntryFirst; //first entry to process | ||||
static Long64_t fgEntryN; //number of entries to process | ||||
public: | public: | |||
TMemStatShow() {;} | TMemStatShow() {;} | |||
virtual ~TMemStatShow() {;} | virtual ~TMemStatShow() {;} | |||
static void EventInfo(Int_t event, Int_t px, Int_t py, TObject *selected | static void EventInfo1(Int_t event, Int_t px, Int_t py, TObject *selecte | |||
); | d); | |||
static void EventInfo2(Int_t event, Int_t px, Int_t py, TObject *selecte | ||||
static void Show(Double_t update=0.01, const char* fname="*"); | d); | |||
static void FillBTString(Int_t bin, Int_t mode, TString &btstring); | ||||
static void SetAddressRange(Long64_t nbytes=0, Long64_t first=0); | ||||
static void SetEntryRange(Long64_t nentries=0, Long64_t first=0); | ||||
static void Show(Double_t update=0.1, Int_t nbigleaks=20, const char* fn | ||||
ame="*"); | ||||
ClassDef(TMemStatShow,0) //class to visualize the results of TMemStat | ClassDef(TMemStatShow,0) //class to visualize the results of TMemStat | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
5 lines changed or deleted | 51 lines changed or added | |||
TMultiGraph.h | TMultiGraph.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: TMultiGraph.h 31491 2009-12-01 18:11:55Z moneta $ | // @(#)root/hist:$Id: TMultiGraph.h 36493 2010-11-03 13:01:36Z couet $ | |||
// 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 67 | skipping to change at line 67 | |||
virtual void Draw(Option_t *chopt=""); | virtual void Draw(Option_t *chopt=""); | |||
virtual TFitResultPtr Fit(const char *formula ,Option_t *option="" ,Opti on_t *goption="", Axis_t xmin=0, Axis_t xmax=0); | virtual TFitResultPtr Fit(const char *formula ,Option_t *option="" ,Opti on_t *goption="", Axis_t xmin=0, Axis_t xmax=0); | |||
virtual TFitResultPtr Fit(TF1 *f1 ,Option_t *option="" ,Option_t *goptio n="", Axis_t rxmin=0, Axis_t rxmax=0); | virtual TFitResultPtr Fit(TF1 *f1 ,Option_t *option="" ,Option_t *goptio 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); | |||
virtual Int_t IsInside(Double_t x, Double_t y) const; | ||||
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; } | |||
TList *GetListOfFunctions(); // non const method (create lis t if empty) | TList *GetListOfFunctions(); // non const method (create lis t if empty) | |||
const TList *GetListOfFunctions() const { return fFunctions; } | const TList *GetListOfFunctions() const { return fFunctions; } | |||
TAxis *GetXaxis() const; | TAxis *GetXaxis() const; | |||
TAxis *GetYaxis() const; | TAxis *GetYaxis() const; | |||
virtual void Paint(Option_t *chopt=""); | virtual void Paint(Option_t *chopt=""); | |||
virtual void Print(Option_t *chopt="") const; | virtual void Print(Option_t *chopt="") const; | |||
virtual void RecursiveRemove(TObject *obj); | virtual void RecursiveRemove(TObject *obj); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TMultiLayerPerceptron.h | TMultiLayerPerceptron.h | |||
---|---|---|---|---|
// @(#)root/mlp:$Id: TMultiLayerPerceptron.h 29964 2009-08-28 11:59:08Z mon eta $ | // @(#)root/mlp:$Id: TMultiLayerPerceptron.h 36832 2010-11-22 08:53:49Z bru n $ | |||
// Author: Christophe.Delaere@cern.ch 20/07/03 | // Author: Christophe.Delaere@cern.ch 20/07/03 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2003, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2003, 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 96 | skipping to change at line 96 | |||
TNeuron::ENeuronType type = TNeuron::kSigmoid, | TNeuron::ENeuronType type = TNeuron::kSigmoid, | |||
const char* extF = "", const char* extD = ""); | const char* extF = "", const char* extD = ""); | |||
virtual ~TMultiLayerPerceptron(); | virtual ~TMultiLayerPerceptron(); | |||
void SetData(TTree*); | void SetData(TTree*); | |||
void SetTrainingDataSet(TEventList* train); | void SetTrainingDataSet(TEventList* train); | |||
void SetTestDataSet(TEventList* test); | void SetTestDataSet(TEventList* test); | |||
void SetTrainingDataSet(const char* train); | void SetTrainingDataSet(const char* train); | |||
void SetTestDataSet(const char* test); | void SetTestDataSet(const char* test); | |||
void SetLearningMethod(TMultiLayerPerceptron::ELearningMethod method); | void SetLearningMethod(TMultiLayerPerceptron::ELearningMethod method); | |||
void SetEventWeight(const char*); | void SetEventWeight(const char*); | |||
void Train(Int_t nEpoch, Option_t* option = "text"); | void Train(Int_t nEpoch, Option_t* option = "text", Double_t minE=0); | |||
Double_t Result(Int_t event, Int_t index = 0) const; | Double_t Result(Int_t event, Int_t index = 0) const; | |||
Double_t GetError(Int_t event) const; | Double_t GetError(Int_t event) const; | |||
Double_t GetError(TMultiLayerPerceptron::EDataSet set) const; | Double_t GetError(TMultiLayerPerceptron::EDataSet set) const; | |||
void ComputeDEDw() const; | void ComputeDEDw() const; | |||
void Randomize() const; | void Randomize() const; | |||
void SetEta(Double_t eta); | void SetEta(Double_t eta); | |||
void SetEpsilon(Double_t eps); | void SetEpsilon(Double_t eps); | |||
void SetDelta(Double_t delta); | void SetDelta(Double_t delta); | |||
void SetEtaDecay(Double_t ed); | void SetEtaDecay(Double_t ed); | |||
void SetTau(Double_t tau); | void SetTau(Double_t tau); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TPacketizerFile.h | TPacketizerFile.h | |||
---|---|---|---|---|
// @(#)root/proofplayer:$Id: TPacketizerFile.h 33642 2010-05-28 14:12:11Z g anis $ | // @(#)root/proofplayer:$Id: TPacketizerFile.h 36876 2010-11-23 11:45:47Z g anis $ | |||
// Author: G. Ganis 2009 | // Author: G. Ganis 2009 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 46 | skipping to change at line 46 | |||
class TPacketizerFile : public TVirtualPacketizer { | class TPacketizerFile : public TVirtualPacketizer { | |||
public: // This is always needed | public: // This is always needed | |||
class TSlaveStat; | class TSlaveStat; | |||
class TIterObj; | class TIterObj; | |||
private: | private: | |||
TMap *fFiles; // Files to be produced/processed per node | TMap *fFiles; // Files to be produced/processed per node | |||
TList *fNotAssigned; // List of files not assigned to a specifi c node | TList *fNotAssigned; // List of files not assigned to a specifi c node | |||
TList *fIters; // Iterators on the file lists per node | TList *fIters; // Iterators on the file lists per node | |||
Long64_t fAssigned; // no. files processed or being processed. | Long64_t fAssigned; // No.files processed or being processed. | |||
Bool_t fProcNotAssigned; // Whether to process files not asdigned t | ||||
o a worker | ||||
TStopwatch *fStopwatch; // For measuring the start time of each pa cket | TStopwatch *fStopwatch; // For measuring the start time of each pa cket | |||
TPacketizerFile(); | TPacketizerFile(); | |||
// : fFiles(0), fIters(0), fAssigned(0), fStopwatch(0) { } | // : fFiles(0), fIters(0), fAssigned(0), fStopwatch(0) { } | |||
TPacketizerFile(const TPacketizerFile&); // no implementation, will generate | TPacketizerFile(const TPacketizerFile&); // no implementation, will generate | |||
void operator=(const TPacketizerFile&); // error on accidental usage | void operator=(const TPacketizerFile&); // error on accidental usage | |||
public: | public: | |||
TPacketizerFile(TList *workers, Long64_t, TList *input, TProofProgressSt atus *st = 0); | TPacketizerFile(TList *workers, Long64_t, TList *input, TProofProgressSt atus *st = 0); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 4 lines changed or added | |||
TPluginManager.h | TPluginManager.h | |||
---|---|---|---|---|
// @(#)root/base:$Id: TPluginManager.h 32284 2010-02-08 15:57:44Z rdm $ | // @(#)root/base:$Id: TPluginManager.h 37497 2010-12-10 12:22:54Z rdm $ | |||
// Author: Fons Rademakers 26/1/2002 | // Author: Fons Rademakers 26/1/2002 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 175 | skipping to change at line 175 | |||
void LoadHandlersFromPluginDirs(const char *base = 0); | void LoadHandlersFromPluginDirs(const char *base = 0); | |||
void AddHandler(const char *base, const char *regexp, | void AddHandler(const char *base, const char *regexp, | |||
const char *className, const char *pluginName, | const char *className, const char *pluginName, | |||
const char *ctor = 0, const char *origin = 0); | const char *ctor = 0, const char *origin = 0); | |||
void RemoveHandler(const char *base, const char *regexp = 0); | void RemoveHandler(const char *base, const char *regexp = 0); | |||
TPluginHandler *FindHandler(const char *base, const char *uri = 0); | TPluginHandler *FindHandler(const char *base, const char *uri = 0); | |||
void Print(Option_t *opt = "") const; | void Print(Option_t *opt = "") const; | |||
Int_t WritePluginMacros(const char *dir, const char *plugin = 0) const; | Int_t WritePluginMacros(const char *dir, const char *plugin = 0) const; | |||
Int_t WritePluginRecords(const char *envFile, const char *plugin = 0) c onst; | ||||
ClassDef(TPluginManager,1) // Manager for plugin handlers | ClassDef(TPluginManager,1) // Manager for plugin handlers | |||
}; | }; | |||
R__EXTERN TPluginManager *gPluginMgr; | R__EXTERN TPluginManager *gPluginMgr; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TProof.h | TProof.h | |||
---|---|---|---|---|
// @(#)root/proof:$Id: TProof.h 34101 2010-06-24 12:12:59Z ganis $ | // @(#)root/proof:$Id: TProof.h 37396 2010-12-08 13:12:00Z rdm $ | |||
// 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 126 | skipping to change at line 126 | |||
// 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 | // 26 -> 27: Use new file for updating the session status | |||
// 27 -> 28: Support for multi-datasets, fix global pack dirs, fix AskStati stics, | // 27 -> 28: Support for multi-datasets, fix global pack dirs, fix AskStati stics, | |||
// package download, dataset caching | // package download, dataset caching | |||
// 28 -> 29: Support for config parameters in EnablePackage, idle-timeout | // 28 -> 29: Support for config parameters in EnablePackage, idle-timeout | |||
// 29 -> 30: Add information about data dir in TSlaveInfo | ||||
// PROOF magic constants | // PROOF magic constants | |||
const Int_t kPROOF_Protocol = 29; // protocol versi on number | const Int_t kPROOF_Protocol = 30; // 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_PackDownloadDir = "downloaded"; // subdir with do wnloaded PARs, under PackDir | const char* const kPROOF_PackDownloadDir = "downloaded"; // subdir with do wnloaded PARs, under PackDir | |||
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 | |||
skipping to change at line 166 | skipping to change at line 167 | |||
const char* const kRM = "delete"; | const char* const kRM = "delete"; | |||
const char* const kLS = "dir"; | const char* const kLS = "dir"; | |||
const char* const kUNTAR = "..."; | const char* const kUNTAR = "..."; | |||
const char* const kUNTAR2 = "..."; | const char* const kUNTAR2 = "..."; | |||
const char* const kUNTAR3 = "..."; | const char* const kUNTAR3 = "..."; | |||
const char* const kGUNZIP = "gunzip"; | const char* const kGUNZIP = "gunzip"; | |||
#endif | #endif | |||
R__EXTERN TVirtualMutex *gProofMutex; | R__EXTERN TVirtualMutex *gProofMutex; | |||
typedef void (*PrintProgress_t)(Long64_t tot, Long64_t proc, Float_t procti me); | typedef void (*PrintProgress_t)(Long64_t tot, Long64_t proc, Float_t procti me, Long64_t bytes); | |||
// Structure for the progress information | // Structure for the progress information | |||
class TProofProgressInfo : public TObject { | class TProofProgressInfo : public TObject { | |||
public: | public: | |||
Long64_t fTotal; // Total number of events to process | Long64_t fTotal; // Total number of events to process | |||
Long64_t fProcessed; // Number of events processed | Long64_t fProcessed; // Number of events processed | |||
Long64_t fBytesRead; // Number of bytes read | Long64_t fBytesRead; // Number of bytes read | |||
Float_t fInitTime; // Time for initialization | Float_t fInitTime; // Time for initialization | |||
Float_t fProcTime; // Time for processing | Float_t fProcTime; // Time for processing | |||
Float_t fEvtRateI; // Instantaneous event rate | Float_t fEvtRateI; // Instantaneous event rate | |||
skipping to change at line 227 | skipping to change at line 228 | |||
}; | }; | |||
// Slaves info class | // Slaves info class | |||
class TSlaveInfo : public TObject { | class TSlaveInfo : public TObject { | |||
public: | public: | |||
enum ESlaveStatus { kActive, kNotActive, kBad }; | enum ESlaveStatus { kActive, kNotActive, kBad }; | |||
TString fOrdinal; //slave ordinal | TString fOrdinal; //slave ordinal | |||
TString fHostName; //hostname this slave is running on | TString fHostName; //hostname this slave is running on | |||
TString fMsd; //mass storage domain slave is in | TString fMsd; //mass storage domain slave is in | |||
TString fDataDir; //directory for user data | ||||
Int_t fPerfIndex; //relative performance of this slave | Int_t fPerfIndex; //relative performance of this slave | |||
SysInfo_t fSysInfo; //Infomation about its hardware | SysInfo_t fSysInfo; //Infomation about its hardware | |||
ESlaveStatus fStatus; //slave status | ESlaveStatus fStatus; //slave status | |||
TSlaveInfo(const char *ordinal = "", const char *host = "", Int_t perfid x = 0, | TSlaveInfo(const char *ordinal = "", const char *host = "", Int_t perfid x = 0, | |||
const char *msd = "") : | const char *msd = "", const char *datadir = "") : | |||
fOrdinal(ordinal), fHostName(host), fMsd(msd), | fOrdinal(ordinal), fHostName(host), fMsd(msd), fDataDir(datad | |||
ir), | ||||
fPerfIndex(perfidx), fSysInfo(), fStatus(kNotActive) { } | fPerfIndex(perfidx), fSysInfo(), fStatus(kNotActive) { } | |||
const char *GetDataDir() const { return fDataDir; } | ||||
const char *GetMsd() const { return fMsd; } | const char *GetMsd() const { return fMsd; } | |||
const char *GetName() const { return fHostName; } | const char *GetName() const { return fHostName; } | |||
const char *GetOrdinal() const { return fOrdinal; } | const char *GetOrdinal() const { return fOrdinal; } | |||
SysInfo_t GetSysInfo() const { return fSysInfo; } | SysInfo_t GetSysInfo() const { return fSysInfo; } | |||
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,4) //basic info on workers | |||
}; | }; | |||
// Merger info class | // Merger info class | |||
class TMergerInfo : public TObject { | class TMergerInfo : public TObject { | |||
private: | private: | |||
TSlave *fMerger; // Slave that acts as merger | TSlave *fMerger; // Slave that acts as merger | |||
Int_t fPort; // Port number, on which it accepts output s from other workers | 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 | Int_t fMergedObjects; // Total number of objects it must accept from other workers | |||
// (-1 == not set yet) | // (-1 == not set yet) | |||
skipping to change at line 629 | skipping to change at line 632 | |||
Int_t Broadcast(Int_t kind, TList *slaves) { return Broadcast(0, kind , slaves); } | Int_t Broadcast(Int_t kind, TList *slaves) { return Broadcast(0, kind , slaves); } | |||
Int_t Broadcast(Int_t kind, ESlaves list = kActive) { return Broadcas t(0, kind, list); } | Int_t Broadcast(Int_t kind, ESlaves list = kActive) { return Broadcas t(0, kind, list); } | |||
Int_t BroadcastFile(const char *file, Int_t opt, const char *rfile, T List *wrks); | Int_t BroadcastFile(const char *file, Int_t opt, const char *rfile, T List *wrks); | |||
Int_t BroadcastFile(const char *file, Int_t opt, const char *rfile = 0, ESlaves list = kAllUnique); | Int_t BroadcastFile(const char *file, Int_t opt, const char *rfile = 0, ESlaves list = kAllUnique); | |||
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 = | Int_t Collect(const TSlave *sl, Long_t timeout = -1, Int_t endtype = | |||
-1); | -1, Bool_t deactonfail = kFALSE); | |||
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, | |||
; | Bool_t deactonfail = kFALSE); | |||
Int_t CollectInputFrom(TSocket *s, Int_t endtype = -1); | Int_t CollectInputFrom(TSocket *s, Int_t endtype = -1, Bool_t deacton | |||
Int_t HandleInputMessage(TSlave *wrk, TMessage *m); | fail = kFALSE); | |||
Int_t HandleInputMessage(TSlave *wrk, TMessage *m, Bool_t deactonfail | ||||
= kFALSE); | ||||
void HandleSubmerger(TMessage *mess, TSlave *sl); | 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; } | |||
skipping to change at line 667 | skipping to change at line 670 | |||
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 | void PrintProgress(Long64_t total, Long64_t processed, | |||
ime = -1.); | Float_t procTime = -1., Long64_t bytesread = -1) | |||
; | ||||
// Managing mergers | // Managing mergers | |||
Bool_t CreateMerger(TSlave *sl, Int_t port); | Bool_t CreateMerger(TSlave *sl, Int_t port); | |||
void RedirectWorker(TSocket *s, TSlave * sl, Int_t output_size); | void RedirectWorker(TSocket *s, TSlave * sl, Int_t output_size); | |||
Int_t GetActiveMergersCount(); | Int_t GetActiveMergersCount(); | |||
Int_t FindNextFreeMerger(); | Int_t FindNextFreeMerger(); | |||
void ResetMergers() { fMergersSet = kFALSE; } | void ResetMergers() { fMergersSet = kFALSE; } | |||
void AskForOutput(TSlave *sl); | void AskForOutput(TSlave *sl); | |||
void FinalizationDone() { fFinalizationRunning = kFALSE; } | void FinalizationDone() { fFinalizationRunning = kFALSE; } | |||
skipping to change at line 713 | skipping to change at line 717 | |||
void HandleLibIncPath(const char *what, Bool_t add, const char *dirs) ; | void HandleLibIncPath(const char *what, Bool_t add, const char *dirs) ; | |||
TList *GetListOfActiveSlaves() const { return fActiveSlaves; } | TList *GetListOfActiveSlaves() const { return fActiveSlaves; } | |||
TSlave *CreateSlave(const char *url, const char *ord, | TSlave *CreateSlave(const char *url, const char *ord, | |||
Int_t perf, const char *image, const char *workdir); | Int_t perf, const char *image, const char *workdir); | |||
TSlave *CreateSubmaster(const char *url, const char *ord, | TSlave *CreateSubmaster(const char *url, const char *ord, | |||
const char *image, const char *msd); | const char *image, const char *msd); | |||
virtual void SaveWorkerInfo(); | virtual void SaveWorkerInfo(); | |||
Int_t Collect(ESlaves list = kActive, Long_t timeout = -1, Int_t endt | Int_t Collect(ESlaves list = kActive, Long_t timeout = -1, Int_t endt | |||
ype = -1); | ype = -1, Bool_t deactonfail = kFALSE); | |||
Int_t Collect(TList *slaves, Long_t timeout = -1, Int_t endtype = -1) | Int_t Collect(TList *slaves, Long_t timeout = -1, Int_t endtype = -1, | |||
; | Bool_t deactonfail = kFALSE); | |||
void SetDSet(TDSet *dset) { fDSet = dset; } | void SetDSet(TDSet *dset) { fDSet = dset; } | |||
virtual void ValidateDSet(TDSet *dset); | virtual void ValidateDSet(TDSet *dset); | |||
TPluginHandler *GetProgressDialog() const { return fProgressDialog; } | TPluginHandler *GetProgressDialog() const { return fProgressDialog; } | |||
Int_t AssertPath(const char *path, Bool_t writable); | Int_t AssertPath(const char *path, Bool_t writable); | |||
void PrepareInputDataFile(TString &dataFile); | void PrepareInputDataFile(TString &dataFile); | |||
virtual void SendInputDataFile(); | virtual void SendInputDataFile(); | |||
skipping to change at line 917 | skipping to change at line 921 | |||
TObject *GetParameter(const char *par) const; | TObject *GetParameter(const char *par) const; | |||
void DeleteParameters(const char *wildcard); | void DeleteParameters(const char *wildcard); | |||
void ShowParameters(const char *wildcard = "PROOF_*") const; | void ShowParameters(const char *wildcard = "PROOF_*") const; | |||
void AddInput(TObject *obj); | void AddInput(TObject *obj); | |||
void ClearInput(); | void ClearInput(); | |||
TList *GetInputList(); | TList *GetInputList(); | |||
TObject *GetOutput(const char *name); | TObject *GetOutput(const char *name); | |||
TList *GetOutputList(); | TList *GetOutputList(); | |||
void ShowMissingFiles(TQueryResult *qr = 0); | ||||
TFileCollection *GetMissingFiles(TQueryResult *qr = 0); | ||||
void AddInputData(TObject *obj, Bool_t push = kFALSE); | void AddInputData(TObject *obj, Bool_t push = kFALSE); | |||
void SetInputDataFile(const char *datafile); | void SetInputDataFile(const char *datafile); | |||
void ClearInputData(TObject *obj = 0); | void ClearInputData(TObject *obj = 0); | |||
void ClearInputData(const char *name); | void ClearInputData(const char *name); | |||
void AddFeedback(const char *name); | void AddFeedback(const char *name); | |||
void RemoveFeedback(const char *name); | void RemoveFeedback(const char *name); | |||
void ClearFeedback(); | void ClearFeedback(); | |||
void ShowFeedback() const; | void ShowFeedback() const; | |||
TList *GetFeedbackList() const; | TList *GetFeedbackList() const; | |||
End of changes. 12 change blocks. | ||||
18 lines changed or deleted | 28 lines changed or added | |||
TProofPlayer.h | TProofPlayer.h | |||
---|---|---|---|---|
// @(#)root/proofplayer:$Id: TProofPlayer.h 34081 2010-06-23 10:59:01Z gani s $ | // @(#)root/proofplayer:$Id: TProofPlayer.h 36592 2010-11-11 10:43:17Z gani s $ | |||
// 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 124 | skipping to change at line 124 | |||
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(); } | |||
}; | }; | |||
Bool_t CheckMemUsage(Long64_t &mfreq, Bool_t &w80r, Bool_t &w80v, TStrin | ||||
g &wmsg); | ||||
void MapOutputListToDataMembers() const; | void MapOutputListToDataMembers() const; | |||
public: | public: | |||
enum EStatusBits { kDispatchOneEvent = BIT(15), kIsProcessing = BIT(16) }; | enum EStatusBits { kDispatchOneEvent = BIT(15), kIsProcessing = BIT(16) }; | |||
TProofPlayer(TProof *proof = 0); | TProofPlayer(TProof *proof = 0); | |||
virtual ~TProofPlayer(); | virtual ~TProofPlayer(); | |||
Long64_t Process(TDSet *set, | Long64_t Process(TDSet *set, | |||
const char *selector, Option_t *option = "", | const char *selector, Option_t *option = "", | |||
skipping to change at line 268 | skipping to change at line 270 | |||
TDSet *fDSet; //!tdset for current processing | TDSet *fDSet; //!tdset for current processing | |||
ErrorHandlerFunc_t fErrorHandler; // Store previous handler when redir ecting output | ErrorHandlerFunc_t fErrorHandler; // Store previous handler when redir ecting output | |||
virtual Bool_t HandleTimer(TTimer *timer); | virtual Bool_t HandleTimer(TTimer *timer); | |||
Int_t InitPacketizer(TDSet *dset, Long64_t nentries, | Int_t InitPacketizer(TDSet *dset, Long64_t nentries, | |||
Long64_t first, const char *defpackunit, | Long64_t first, const char *defpackunit, | |||
const char *defpackdata); | const char *defpackdata); | |||
TList *MergeFeedback(); | TList *MergeFeedback(); | |||
Bool_t MergeOutputFiles(); | Bool_t MergeOutputFiles(); | |||
void NotifyMemory(TObject *obj); | void NotifyMemory(TObject *obj); | |||
void SetLastMergingMsg(TObject *obj); | ||||
virtual Bool_t SendSelector(const char *selector_file); //send selector to slaves | virtual Bool_t SendSelector(const char *selector_file); //send selector to slaves | |||
TProof *GetProof() const { return fProof; } | TProof *GetProof() const { return fProof; } | |||
void SetupFeedback(); // specialized setup | void SetupFeedback(); // specialized setup | |||
void StopFeedback(); // specialized teardown | void StopFeedback(); // specialized teardown | |||
void SetSelectorDataMembersFromOutputList(); | void SetSelectorDataMembersFromOutputList(); | |||
public: | public: | |||
TProofPlayerRemote(TProof *proof = 0) : fProof(proof), fOutputLists(0), fFeedback(0), | TProofPlayerRemote(TProof *proof = 0) : fProof(proof), fOutputLists(0), fFeedback(0), | |||
fFeedbackLists(0), fPacketizer(0 ), | fFeedbackLists(0), fPacketizer(0 ), | |||
fMergeFiles(kFALSE), fDSet(0), f ErrorHandler(0) | fMergeFiles(kFALSE), fDSet(0), f ErrorHandler(0) | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 5 lines changed or added | |||
TProofProgressDialog.h | TProofProgressDialog.h | |||
---|---|---|---|---|
// @(#)root/sessionviewer:$Id: TProofProgressDialog.h 30862 2009-10-25 08:2 6:46Z ganis $ | // @(#)root/sessionviewer:$Id: TProofProgressDialog.h 36073 2010-10-05 08:1 4:21Z ganis $ | |||
// Author: Fons Rademakers 21/03/03 | // Author: Fons Rademakers 21/03/03 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2003, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2003, 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 | |||
TGTransientFrame *fDialog; // transient frame, main dialog window | TGTransientFrame *fDialog; // transient frame, main dialog window | |||
TGProgressBar *fBar; // progress bar | TGProgressBar *fBar; // progress bar | |||
TGTextButton *fClose; | TGTextButton *fClose; | |||
TGTextButton *fStop; | TGTextButton *fStop; | |||
TGTextButton *fAbort; | TGTextButton *fAbort; | |||
TGTextButton *fAsyn; | TGTextButton *fAsyn; | |||
TGTextButton *fLog; | TGTextButton *fLog; | |||
TGTextButton *fRatePlot; | TGTextButton *fRatePlot; | |||
TGTextButton *fMemPlot; | TGTextButton *fMemPlot; | |||
TGTextButton *fUpdtSpeedo; | ||||
TGCheckButton *fKeepToggle; | TGCheckButton *fKeepToggle; | |||
TGCheckButton *fLogQueryToggle; | TGCheckButton *fLogQueryToggle; | |||
TGTextBuffer *fTextQuery; | TGTextBuffer *fTextQuery; | |||
TGTextEntry *fEntry; | TGTextEntry *fEntry; | |||
TGLabel *fTitleLab; | TGLabel *fTitleLab; | |||
TGLabel *fFilesEvents; | TGLabel *fFilesEvents; | |||
TGLabel *fTimeLab; | TGLabel *fTimeLab; | |||
TGLabel *fProcessed; | TGLabel *fProcessed; | |||
TGLabel *fEstim; | TGLabel *fEstim; | |||
TGLabel *fTotal; | TGLabel *fTotal; | |||
TGLabel *fRate; | TGLabel *fRate; | |||
TGLabel *fInit; | TGLabel *fInit; | |||
TGLabel *fSelector; | TGLabel *fSelector; | |||
Bool_t fSpeedoEnabled; // whether to enable the speedome ter | ||||
TGSpeedo *fSpeedo; // speedometer | TGSpeedo *fSpeedo; // speedometer | |||
TGCheckButton *fSmoothSpeedo; // use smooth speedometer update | TGCheckButton *fSmoothSpeedo; // use smooth speedometer update | |||
TProofProgressLog *fLogWindow; // transient frame for logs | TProofProgressLog *fLogWindow; // transient frame for logs | |||
TProofProgressMemoryPlot *fMemWindow; // transient frame for memory plo ts | TProofProgressMemoryPlot *fMemWindow; // transient frame for memory plo ts | |||
TProof *fProof; | TProof *fProof; | |||
TTime fStartTime; | TTime fStartTime; | |||
TTime fEndTime; | TTime fEndTime; | |||
Long64_t fPrevProcessed; | Long64_t fPrevProcessed; | |||
Long64_t fPrevTotal; | Long64_t fPrevTotal; | |||
Long64_t fFirst; | Long64_t fFirst; | |||
skipping to change at line 139 | skipping to change at line 141 | |||
void CloseWindow(); | void CloseWindow(); | |||
void DoClose(); | void DoClose(); | |||
void DoLog(); | void DoLog(); | |||
void DoKeep(Bool_t on); | void DoKeep(Bool_t on); | |||
void DoSetLogQuery(Bool_t on); | void DoSetLogQuery(Bool_t on); | |||
void DoStop(); | void DoStop(); | |||
void DoAbort(); | void DoAbort(); | |||
void DoAsyn(); | void DoAsyn(); | |||
void DoPlotRateGraph(); | void DoPlotRateGraph(); | |||
void DoMemoryPlot(); | void DoMemoryPlot(); | |||
void DoEnableSpeedo(); | ||||
void ToggleOdometerInfos(); | void ToggleOdometerInfos(); | |||
void ToggleThreshold(); | void ToggleThreshold(); | |||
ClassDef(TProofProgressDialog,0) //PROOF progress dialog | ClassDef(TProofProgressDialog,0) //PROOF progress dialog | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 4 change blocks. | ||||
1 lines changed or deleted | 4 lines changed or added | |||
TProofServ.h | TProofServ.h | |||
---|---|---|---|---|
// @(#)root/proof:$Id: TProofServ.h 34101 2010-06-24 12:12:59Z ganis $ | // @(#)root/proof:$Id: TProofServ.h 36592 2010-11-11 10:43:17Z 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 77 | skipping to change at line 77 | |||
// 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; | |||
friend class TXProofServ; | friend class TXProofServ; | |||
public: | public: | |||
enum EStatusBits { kHighMemory = BIT(16) }; | ||||
enum EQueryAction { kQueryOK, kQueryModify, kQueryStop, kQueryEnqueued } ; | enum EQueryAction { kQueryOK, kQueryModify, kQueryStop, kQueryEnqueued } ; | |||
private: | private: | |||
TString fService; //service we are running, either "proof serv" or "proofslave" | TString fService; //service we are running, either "proof serv" or "proofslave" | |||
TString fUser; //user as which we run | TString fUser; //user as which we run | |||
TString fGroup; //group the user belongs to | TString fGroup; //group the user belongs to | |||
TString fConfDir; //directory containing cluster config i nformation | TString fConfDir; //directory containing cluster config i nformation | |||
TString fConfFile; //file containing config information | TString fConfFile; //file containing config information | |||
TString fWorkDir; //directory containing all proof relate d info | TString fWorkDir; //directory containing all proof relate d info | |||
TString fImage; //image name of the session | TString fImage; //image name of the session | |||
skipping to change at line 162 | skipping to change at line 163 | |||
TServerSocket *fMergingSocket; // Socket used for merging outputs if su bmerger | TServerSocket *fMergingSocket; // Socket used for merging outputs if su bmerger | |||
TMonitor *fMergingMonitor; // Monitor for merging sockets | TMonitor *fMergingMonitor; // Monitor for merging sockets | |||
Int_t fMergedWorkers; // Number of workers merged | 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 | // Memory limits (-1 to disable) set by envs ROOTPROFOASHARD, PROOF_VIRT | |||
FOASHARD | MEMMAX, PROOF_RESMEMMAX | |||
Long_t fVirtMemHWM; //Above this we terminate gently (in kB | static Long_t fgVirtMemMax; //Hard limit enforced by the system (i | |||
) | n kB) | |||
Long_t fVirtMemMax; //Hard limit enforced by the system (in | static Long_t fgResMemMax; //Hard limit on the resident memory ch | |||
kB) | ecked | |||
//in TProofPlayer::Process (in kB) | ||||
static Float_t fgMemHWM; // Threshold fraction of max for warni | ||||
ng and finer monitoring | ||||
static Float_t fgMemStop; // Fraction of max for stop processing | ||||
// In bytes; default is 1MB | // In bytes; default is 1MB | |||
Long64_t fMsgSizeHWM; //High-Water-Mark on the size of messag es with results | Long64_t fMsgSizeHWM; //High-Water-Mark on the size of messag es with results | |||
static FILE *fgErrorHandlerFile; // File where to log | static FILE *fgErrorHandlerFile; // File where to log | |||
static Int_t fgRecursive; // Keep track of recursive inputs durin g processing | static Int_t fgRecursive; // Keep track of recursive inputs durin g processing | |||
// Control sending information to syslog | // Control sending information to syslog | |||
static Int_t fgLogToSysLog; // >0 sent to syslog too | static Int_t fgLogToSysLog; // >0 sent to syslog too | |||
static TString fgSysLogService; // name of the syslog service (eg: pro ofm-0, proofw-0.67) | static TString fgSysLogService; // name of the syslog service (eg: pro ofm-0, proofw-0.67) | |||
skipping to change at line 229 | skipping to change at line 233 | |||
virtual Int_t Setup(); | virtual Int_t Setup(); | |||
Int_t SetupCommon(); | Int_t SetupCommon(); | |||
virtual void MakePlayer(); | virtual void MakePlayer(); | |||
virtual void DeletePlayer(); | virtual void DeletePlayer(); | |||
virtual Int_t Fork(); | virtual Int_t Fork(); | |||
Int_t GetSessionStatus(); | Int_t GetSessionStatus(); | |||
Bool_t IsIdle(); | Bool_t IsIdle(); | |||
Bool_t UnlinkDataDir(const char *path); | Bool_t UnlinkDataDir(const char *path); | |||
static TString fgLastMsg; // Message about status before exception | ||||
public: | public: | |||
TProofServ(Int_t *argc, char **argv, FILE *flog = 0); | TProofServ(Int_t *argc, char **argv, FILE *flog = 0); | |||
virtual ~TProofServ(); | virtual ~TProofServ(); | |||
virtual Int_t CreateServer(); | virtual Int_t CreateServer(); | |||
TProof *GetProof() const { return fProof; } | TProof *GetProof() const { return fProof; } | |||
const char *GetService() const { return fService; } | const char *GetService() const { return fService; } | |||
const char *GetConfDir() const { return fConfDir; } | const char *GetConfDir() const { return fConfDir; } | |||
const char *GetConfFile() const { return fConfFile; } | const char *GetConfFile() const { return fConfFile; } | |||
skipping to change at line 266 | skipping to change at line 272 | |||
Int_t GetTotSessions() const { return fTotSessions; } | Int_t GetTotSessions() const { return fTotSessions; } | |||
Int_t GetActSessions() const { return fActSessions; } | Int_t GetActSessions() const { return fActSessions; } | |||
Float_t GetEffSessions() const { return fEffSessions; } | Float_t GetEffSessions() const { return fEffSessions; } | |||
void GetOptions(Int_t *argc, char **argv); | void GetOptions(Int_t *argc, char **argv); | |||
TList *GetEnabledPackages() const { return fEnabledPackages; } | TList *GetEnabledPackages() const { return fEnabledPackages; } | |||
Int_t GetInflateFactor() const { return fInflateFactor; } | Int_t GetInflateFactor() const { return fInflateFactor; } | |||
Long_t GetVirtMemHWM() const { return fVirtMemHWM; } | static Long_t GetVirtMemMax(); | |||
static Long_t GetResMemMax(); | ||||
static Float_t GetMemHWM(); | ||||
static Float_t GetMemStop(); | ||||
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 | 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); | |||
skipping to change at line 325 | skipping to change at line 334 | |||
// Log control | // Log control | |||
void LogToMaster(Bool_t on = kTRUE) { fSendLogToMaster = on; } | void LogToMaster(Bool_t on = kTRUE) { fSendLogToMaster = on; } | |||
static FILE *SetErrorHandlerFile(FILE *ferr); | static FILE *SetErrorHandlerFile(FILE *ferr); | |||
static void ErrorHandler(Int_t level, Bool_t abort, const char *locat ion, | static void ErrorHandler(Int_t level, Bool_t abort, const char *locat ion, | |||
const char *msg); | const char *msg); | |||
static void ResolveKeywords(TString &fname, const char *path = 0); | static void ResolveKeywords(TString &fname, const char *path = 0); | |||
static void SetLastMsg(const char *lastmsg); | ||||
static Bool_t IsActive(); | static Bool_t IsActive(); | |||
static TProofServ *This(); | static TProofServ *This(); | |||
ClassDef(TProofServ,0) //PROOF Server Application Interface | ClassDef(TProofServ,0) //PROOF Server Application Interface | |||
}; | }; | |||
R__EXTERN TProofServ *gProofServ; | R__EXTERN TProofServ *gProofServ; | |||
class TProofLockPath : public TNamed { | class TProofLockPath : public TNamed { | |||
private: | private: | |||
End of changes. 6 change blocks. | ||||
8 lines changed or deleted | 20 lines changed or added | |||
TPySelector.h | TPySelector.h | |||
---|---|---|---|---|
skipping to change at line 27 | skipping to change at line 27 | |||
#ifndef ROOT_TTree | #ifndef ROOT_TTree | |||
#include "TTree.h" | #include "TTree.h" | |||
#endif | #endif | |||
// Python | // Python | |||
struct _object; | struct _object; | |||
typedef _object PyObject; | typedef _object PyObject; | |||
class TPySelector : public TSelector { | class TPySelector : public TSelector { | |||
public: | public: | |||
using TSelector::fStatus; | ||||
// using TSelector::fAbort; | ||||
using TSelector::fOption; | ||||
using TSelector::fObject; | ||||
using TSelector::fInput; | ||||
using TSelector::fOutput; | ||||
public: | ||||
TTree* fChain; | TTree* fChain; | |||
public: | public: | |||
// ctor/dtor ... cctor and assignment are private in base class | // ctor/dtor ... cctor and assignment are private in base class | |||
TPySelector( TTree* /* tree */ = 0, PyObject* self = 0 ); | TPySelector( TTree* /* tree */ = 0, PyObject* self = 0 ); | |||
virtual ~TPySelector(); | virtual ~TPySelector(); | |||
// TSelector set of forwarded (overridden) methods | // TSelector set of forwarded (overridden) methods | |||
virtual Int_t Version() const; | virtual Int_t Version() const; | |||
virtual Int_t GetEntry( Long64_t entry, Int_t getall = 0 ); | virtual Int_t GetEntry( Long64_t entry, Int_t getall = 0 ); | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 8 lines changed or added | |||
TQtApplication.h | TQtApplication.h | |||
---|---|---|---|---|
// @(#)root/qt:$Id: TQtApplication.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/qt:$Id: TQtApplication.h 35874 2010-09-30 07:56:02Z brun $ | |||
// Author: Valeri Fine 21/01/2002 | // Author: Valeri Fine 21/01/2002 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | |||
* Copyright (C) 2002 by Valeri Fine. * | * Copyright (C) 2002 by Valeri Fine. * | |||
* 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 47 | skipping to change at line 47 | |||
static void CreateQApplication(int &argc, char ** argv, bool GUIenabled); | static void CreateQApplication(int &argc, char ** argv, bool GUIenabled); | |||
void operator=(const TQtApplication&); | void operator=(const TQtApplication&); | |||
TQtApplication(const TQtApplication&); | TQtApplication(const TQtApplication&); | |||
protected: | protected: | |||
static TQtApplication *fgQtApplication; | static TQtApplication *fgQtApplication; | |||
public: | public: | |||
TQtApplication() {}; | TQtApplication() {fGUIThread=0;}; | |||
TQtApplication(const char *appClassName, int &argc, char **argv); | TQtApplication(const char *appClassName, int &argc, char **argv); | |||
virtual ~TQtApplication(); | virtual ~TQtApplication(); | |||
static bool Terminate(); | static bool Terminate(); | |||
static TQtApplication *GetQtApplication(); | static TQtApplication *GetQtApplication(); | |||
static bool IsThisGuiThread(); | static bool IsThisGuiThread(); | |||
static Int_t QtVersion(); | static Int_t QtVersion(); | |||
ClassDef(TQtApplication,0) // Instantiate the Qt system within ROOT envi ronment | ClassDef(TQtApplication,0) // Instantiate the Qt system within ROOT envi ronment | |||
}; | }; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TQtBrush.h | TQtBrush.h | |||
---|---|---|---|---|
// @(#)root/qt:$Id: TQtBrush.h 30386 2009-09-23 19:06:28Z brun $ | // @(#)root/qt:$Id: TQtBrush.h 36066 2010-10-04 19:41:50Z brun $ | |||
// Author: Valeri Fine 21/01/2002 | // Author: Valeri Fine 21/01/2002 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | |||
* Copyright (C) 2002 by Valeri Fine. * | * Copyright (C) 2002 by Valeri Fine. * | |||
* 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 47 | skipping to change at line 47 | |||
protected: | protected: | |||
QColor fBackground; | QColor fBackground; | |||
int fStyle; | int fStyle; | |||
int fFasi; | int fFasi; | |||
int fAlpha; // transparency | int fAlpha; // transparency | |||
void SetColorOwn(); | void SetColorOwn(); | |||
public: | public: | |||
TQtBrush(); | TQtBrush(); | |||
TQtBrush(const TQtBrush &src):QBrush(src) | TQtBrush(const TQtBrush &src):QBrush(src) | |||
{ | ,fBackground(src.fBackground) | |||
fBackground=src.fBackground; | ,fStyle(src.fStyle) | |||
fStyle=src.fStyle; | ,fFasi(src.fFasi) | |||
fFasi=src.fFasi; | ,fAlpha(src.fFasi) | |||
} | { } | |||
TQtBrush(const TAttFill &rootFillAttributes); | TQtBrush(const TAttFill &rootFillAttributes); | |||
virtual ~TQtBrush(); | virtual ~TQtBrush(); | |||
TQtBrush &operator=(const TAttFill &rootFillAttributes); | TQtBrush &operator=(const TAttFill &rootFillAttributes); | |||
void SetFillAttributes(const TAttFill &rootFillAttributes); | void SetFillAttributes(const TAttFill &rootFillAttributes); | |||
Bool_t IsTransparent() const; | Bool_t IsTransparent() const; | |||
void SetStyle(int newStyle=1000){ if (newStyle < 0) fStyle = fFasi = -1; | void SetStyle(int newStyle=1000){ if (newStyle < 0) fStyle = fFasi = -1; | |||
else SetStyle(newStyle/1000,newStyle% 1000); | else SetStyle(newStyle/1000,newStyle% 1000); | |||
}; | }; | |||
void SetStyle(int style, int fasi); | void SetStyle(int style, int fasi); | |||
void SetColor(const QColor &qtcolor); | void SetColor(const QColor &qtcolor); | |||
End of changes. 2 change blocks. | ||||
6 lines changed or deleted | 6 lines changed or added | |||
TQtClientFilter.h | TQtClientFilter.h | |||
---|---|---|---|---|
// @(#)root/qt:$Id: TQtClientFilter.h 33707 2010-06-02 06:27:34Z brun $ | // @(#)root/qt:$Id: TQtClientFilter.h 36066 2010-10-04 19:41:50Z brun $ | |||
// Author: Valeri Fine 21/01/2002 | // Author: Valeri Fine 21/01/2002 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | |||
* Copyright (C) 2002 by Valeri Fine. * | * Copyright (C) 2002 by Valeri Fine. * | |||
* 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 77 | skipping to change at line 77 | |||
protected: | protected: | |||
bool eventFilter( QObject *o, QEvent *e ); | bool eventFilter( QObject *o, QEvent *e ); | |||
void AddKeyEvent( const QKeyEvent &event, TQtClientWidget *widget); | void AddKeyEvent( const QKeyEvent &event, TQtClientWidget *widget); | |||
TQtEventQueue *Queue(); | TQtEventQueue *Queue(); | |||
void SetKeyGrabber(TQtClientWidget *grabber) { fKeyGrabber = grabber ;} | void SetKeyGrabber(TQtClientWidget *grabber) { fKeyGrabber = grabber ;} | |||
void UnSetKeyGrabber(TQtClientWidget *grabber) { if (fKeyGrabber == gr abber) fKeyGrabber = 0; } | void UnSetKeyGrabber(TQtClientWidget *grabber) { if (fKeyGrabber == gr abber) fKeyGrabber = 0; } | |||
void RestoreLostGrabbing(Event_t &event); | void RestoreLostGrabbing(Event_t &event); | |||
static Bool_t IsGrabSelected(UInt_t selectEventMask); | static Bool_t IsGrabSelected(UInt_t selectEventMask); | |||
static Bool_t SelectGrab(Event_t &event, UInt_t selectEventMask, QMouseE vent &me); | static Bool_t SelectGrab(Event_t &event, UInt_t selectEventMask, QMouseE vent &me); | |||
public: | public: | |||
TQtClientFilter():fRootEventQueue(0),fNotifyClient(0),fKeyGrabber(0){;} | TQtClientFilter():fRootEventQueue(0),fNotifyClient(0),fKeyGrabber(0),fIn putEventMask(0){;} | |||
virtual ~TQtClientFilter(); | virtual ~TQtClientFilter(); | |||
static TQtClientWidget *GetPointerGrabber(); | static TQtClientWidget *GetPointerGrabber(); | |||
static TQtClientWidget *GetButtonGrabber(); | static TQtClientWidget *GetButtonGrabber(); | |||
static void SetButtonGrabber(TQtClientWidget *grabber); | static void SetButtonGrabber(TQtClientWidget *grabber); | |||
static void GrabPointer(TQtClientWidget *grabber, UInt_t evmask, Window_ t confine, | static void GrabPointer(TQtClientWidget *grabber, UInt_t evmask, Window_ t confine, | |||
QCursor *cursor, Bool_t grab = kTRUE, | QCursor *cursor, Bool_t grab = kTRUE, | |||
Bool_t owner_events = kTRUE); | Bool_t owner_events = kTRUE); | |||
static TQtPointerGrabber *PointerGrabber(); | static TQtPointerGrabber *PointerGrabber(); | |||
public slots: | public slots: | |||
void AppendButtonGrab (TQtClientWidget *); | void AppendButtonGrab (TQtClientWidget *); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TQtMarker.h | TQtMarker.h | |||
---|---|---|---|---|
// @(#)root/qt:$Id: TQtMarker.h 33707 2010-06-02 06:27:34Z brun $ | // @(#)root/qt:$Id: TQtMarker.h 36066 2010-10-04 19:41:50Z brun $ | |||
// Author: Valeri Fine 21/01/2002 | // Author: Valeri Fine 21/01/2002 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. * | |||
* Copyright (C) 2002 by Valeri Fine. * | * Copyright (C) 2002 by Valeri Fine. * | |||
* 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 83 | skipping to change at line 83 | |||
fNumNode = m.fNumNode; | fNumNode = m.fNumNode; | |||
fChain = m.fChain; | fChain = m.fChain; | |||
fCindex = m.fCindex; | fCindex = m.fCindex; | |||
fMarkerType=m.fMarkerType; | fMarkerType=m.fMarkerType; | |||
fLineWidth =m.fLineWidth; | fLineWidth =m.fLineWidth; | |||
return *this; | return *this; | |||
} | } | |||
//_________________________________________________________ | //_________________________________________________________ | |||
inline TQtMarker::TQtMarker(const TQtMarker&m) : fNumNode(m.fNumNode), | inline TQtMarker::TQtMarker(const TQtMarker&m) : fNumNode(m.fNumNode), | |||
fChain(m.fChain), fCindex(m.fCindex),fMarkerType(m.fMarkerType),fLineWidth( m.fLineWidth) | fChain(m.fChain), fCindex(m.fCindex),fMarkerType(m.fMarkerType),fLineWidth( m.fLineWidth) | |||
, fLineOption() | ||||
{} | {} | |||
//_________________________________________________________ | //_________________________________________________________ | |||
inline void TQtMarker::SetColor(Color_t mcolor) { fCindex = mcolor; } | inline void TQtMarker::SetColor(Color_t mcolor) { fCindex = mcolor; } | |||
//_________________________________________________________ | //_________________________________________________________ | |||
inline Color_t TQtMarker::GetColor() const { return fCindex; } | inline Color_t TQtMarker::GetColor() const { return fCindex; } | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TRefTable.h | TRefTable.h | |||
---|---|---|---|---|
// @(#)root/cont:$Id: TRefTable.h 27262 2009-01-27 18:35:12Z pcanal $ | // @(#)root/cont:$Id: TRefTable.h 37274 2010-12-04 21:31:29Z pcanal $ | |||
// Author: Rene Brun 17/08/2004 | // Author: Rene Brun 17/08/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 85 | skipping to change at line 85 | |||
Int_t GetSize(Int_t pid) const {return fAllocSize[GetIntern alIdxForPID(pid)];} | Int_t GetSize(Int_t pid) const {return fAllocSize[GetIntern alIdxForPID(pid)];} | |||
Int_t GetN(Int_t pid) const {return fN[GetInternalIdxForPID (pid)];} | Int_t GetN(Int_t pid) const {return fN[GetInternalIdxForPID (pid)];} | |||
TObject *GetOwner() const {return fOwner;} | TObject *GetOwner() const {return fOwner;} | |||
TObject *GetParent(Int_t uid, TProcessID* context = 0) const; | TObject *GetParent(Int_t uid, TProcessID* context = 0) const; | |||
TObjArray *GetParents() const {return fParents;} | TObjArray *GetParents() const {return fParents;} | |||
UInt_t GetUID() const {return fUID;} | UInt_t GetUID() const {return fUID;} | |||
TProcessID *GetUIDContext() const {return fUIDContext;} | TProcessID *GetUIDContext() const {return fUIDContext;} | |||
virtual Bool_t Notify(); | virtual Bool_t Notify(); | |||
virtual void ReadBuffer(TBuffer &b); | virtual void ReadBuffer(TBuffer &b); | |||
virtual void Reset(Option_t * /* option */ =""); | virtual void Reset(Option_t * /* option */ =""); | |||
virtual Int_t SetParent(const TObject* parent, const Int_t branchID ); | virtual Int_t SetParent(const TObject* parent, Int_t branchID); | |||
static void SetRefTable(TRefTable *table); | static void SetRefTable(TRefTable *table); | |||
virtual void SetUID(UInt_t uid, TProcessID* context = 0) {fUID=uid ; fUIDContext = context;} | virtual void SetUID(UInt_t uid, TProcessID* context = 0) {fUID=uid ; fUIDContext = context;} | |||
ClassDef(TRefTable,3) //Table of referenced objects during an I/O opera tion | ClassDef(TRefTable,3) //Table of referenced objects during an I/O opera tion | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TStreamerElement.h | TStreamerElement.h | |||
---|---|---|---|---|
// @(#)root/meta:$Id: TStreamerElement.h 32586 2010-03-12 14:00:16Z pcanal $ | // @(#)root/meta:$Id: TStreamerElement.h 36543 2010-11-08 17:51:01Z 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 50 | skipping to change at line 50 | |||
Int_t fArrayLength; //cumulative size of all array dims | Int_t fArrayLength; //cumulative size of all array dims | |||
Int_t fArrayDim; //number of array dimensions | Int_t fArrayDim; //number of array dimensions | |||
Int_t fMaxIndex[5]; //Maximum array index for array dimen sion "dim" | Int_t fMaxIndex[5]; //Maximum array index for array dimen sion "dim" | |||
Int_t fOffset; //!element offset in class | Int_t fOffset; //!element offset in class | |||
Int_t fTObjectOffset; //!base offset for TObject if the ele ment inherits from it | Int_t fTObjectOffset; //!base offset for TObject if the ele ment inherits from it | |||
Int_t fNewType; //!new element type when reading | Int_t fNewType; //!new element type when reading | |||
TString fTypeName; //Data type name of data member | TString fTypeName; //Data type name of data member | |||
TClass *fClassObject; //!pointer to class of object | TClass *fClassObject; //!pointer to class of object | |||
TClass *fNewClass; //!new element class when reading | TClass *fNewClass; //!new element class when reading | |||
TMemberStreamer *fStreamer; //!pointer to element Streamer | TMemberStreamer *fStreamer; //!pointer to element Streamer | |||
TMethodCall *fMethod; //!pointer to TMethodCall | ||||
Double_t fXmin; //!Minimum of data member if a range is specified [xmin,xmax,nbits] | Double_t fXmin; //!Minimum of data member if a range is specified [xmin,xmax,nbits] | |||
Double_t fXmax; //!Maximum of data member if a range is specified [xmin,xmax,nbits] | Double_t fXmax; //!Maximum of data member if a range is specified [xmin,xmax,nbits] | |||
Double_t fFactor; //!Conversion factor if a range is sp ecified fFactor = (1<<nbits/(xmax-xmin) | Double_t fFactor; //!Conversion factor if a range is sp ecified fFactor = (1<<nbits/(xmax-xmin) | |||
public: | public: | |||
enum ESTLtype { kSTL = 300 /* TVirtualStreamerInfo::kSTL */, | enum ESTLtype { kSTL = 300 /* TVirtualStreamerInfo::kSTL */, | |||
kSTLstring = 365 /* TVirtualStreamerInfo::kSTLstring */, | kSTLstring = 365 /* TVirtualStreamerInfo::kSTLstring */, | |||
kSTLvector = 1, | kSTLvector = 1, | |||
kSTLlist = 2, kSTLdeque = 3, kSTLmap = 4, | kSTLlist = 2, kSTLdeque = 3, kSTLmap = 4, | |||
skipping to change at line 128 | skipping to change at line 127 | |||
}; | }; | |||
//________________________________________________________________________ | //________________________________________________________________________ | |||
class TStreamerBase : public TStreamerElement { | class TStreamerBase : public TStreamerElement { | |||
private: | private: | |||
TStreamerBase(const TStreamerBase &); // Not implemented | TStreamerBase(const TStreamerBase &); // Not implemented | |||
TStreamerBase&operator=(const TStreamerBase&); // Not implemented | TStreamerBase&operator=(const TStreamerBase&); // Not implemented | |||
protected: | protected: | |||
Int_t fBaseVersion; //version number of the base clas | Int_t fBaseVersion; //version number of the base class FI | |||
s FIXME: What for? What about the schema evolution issues? | XME: What for? What about the schema evolution issues? | |||
TClass *fBaseClass; //!pointer to base class | TClass *fBaseClass; //!pointer to base class | |||
TClass *fNewBaseClass; //!pointer to new base class if r | TClass *fNewBaseClass; //!pointer to new base class if renam | |||
enamed | ed | |||
ClassStreamerFunc_t fStreamerFunc; //!Pointer to a wrapper around a cust | ||||
om streamer member function. | ||||
public: | public: | |||
TStreamerBase(); | TStreamerBase(); | |||
TStreamerBase(const char *name, const char *title, Int_t offset); | TStreamerBase(const char *name, const char *title, Int_t offset); | |||
virtual ~TStreamerBase(); | virtual ~TStreamerBase(); | |||
Int_t GetBaseVersion() {return fBaseVersion;} | Int_t GetBaseVersion() {return fBaseVersion;} | |||
virtual TClass *GetClassPointer() const; | virtual TClass *GetClassPointer() const; | |||
const char *GetInclude() const; | const char *GetInclude() const; | |||
TClass *GetNewBaseClass() { return fNewBaseClass; } | TClass *GetNewBaseClass() { return fNewBaseClass; } | |||
ULong_t GetMethod() const {return ULong_t(fMethod);} | ULong_t GetMethod() const {return 0;} | |||
Int_t GetSize() const; | Int_t GetSize() const; | |||
virtual void Init(TObject *obj=0); | virtual void Init(TObject *obj=0); | |||
Bool_t IsBase() const; | Bool_t IsBase() const; | |||
virtual void ls(Option_t *option="") const; | virtual void ls(Option_t *option="") const; | |||
Int_t ReadBuffer (TBuffer &b, char *pointer); | Int_t ReadBuffer (TBuffer &b, char *pointer); | |||
void SetNewBaseClass( TClass* cl ) { fNewBaseClass = cl; } | void SetNewBaseClass( TClass* cl ) { fNewBaseClass = cl; } | |||
void SetBaseVersion(Int_t v) {fBaseVersion = v;} | void SetBaseVersion(Int_t v) {fBaseVersion = v;} | |||
virtual void Update(const TClass *oldClass, TClass *newClass); | virtual void Update(const TClass *oldClass, TClass *newClass); | |||
Int_t WriteBuffer(TBuffer &b, char *pointer); | Int_t WriteBuffer(TBuffer &b, char *pointer); | |||
End of changes. 4 change blocks. | ||||
8 lines changed or deleted | 9 lines changed or added | |||
TStreamerInfo.h | TStreamerInfo.h | |||
---|---|---|---|---|
// @(#)root/io:$Id: TStreamerInfo.h 35394 2010-09-17 19:40:12Z pcanal $ | // @(#)root/io:$Id: TStreamerInfo.h 36061 2010-10-04 16:05:51Z 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 46 | skipping to change at line 46 | |||
class TClass; | class TClass; | |||
class TClonesArray; | class TClonesArray; | |||
class TDataMember; | class TDataMember; | |||
class TMemberStreamer; | class TMemberStreamer; | |||
class TStreamerElement; | class TStreamerElement; | |||
class TStreamerBasicType; | class TStreamerBasicType; | |||
class TClassStreamer; | class TClassStreamer; | |||
class TVirtualArray; | class TVirtualArray; | |||
namespace ROOT { class TCollectionProxyInfo; } | namespace ROOT { class TCollectionProxyInfo; } | |||
namespace TStreamerInfoActions { class TActionSequence; } | ||||
class TStreamerInfo : public TVirtualStreamerInfo { | class TStreamerInfo : public TVirtualStreamerInfo { | |||
#ifdef R__BROKEN_FUNCTION_TEMPLATES | #ifdef R__BROKEN_FUNCTION_TEMPLATES | |||
public: | public: | |||
#endif | #endif | |||
class TCompInfo { | class TCompInfo { | |||
// Class used to cache information (see fComp) | // Class used to cache information (see fComp) | |||
private: | private: | |||
TCompInfo(const TCompInfo&); // Not implemented | TCompInfo(const TCompInfo&); // Not implemented | |||
TCompInfo& operator=(const TCompInfo&); // Not implemented | TCompInfo& operator=(const TCompInfo&); // Not implemented | |||
skipping to change at line 82 | skipping to change at line 84 | |||
public: | public: | |||
TPointerCollectionAdapter( TVirtualCollectionProxy *proxy ): | TPointerCollectionAdapter( TVirtualCollectionProxy *proxy ): | |||
fProxy( proxy ) {} | fProxy( proxy ) {} | |||
char* operator[]( UInt_t idx ) const | char* operator[]( UInt_t idx ) const | |||
{ | { | |||
char **el = (char**)fProxy->At(idx); | char **el = (char**)fProxy->At(idx); | |||
return *el; | return *el; | |||
} | } | |||
private: | private: | |||
TVirtualCollectionProxy *fProxy; | TVirtualCollectionProxy *fProxy; | |||
}; | }; | |||
private: | private: | |||
UInt_t fCheckSum; //checksum of original class | UInt_t fCheckSum; //checksum of original class | |||
Int_t fClassVersion; //Class version identifier | Int_t fClassVersion; //Class version identifier | |||
Int_t fOnFileClassVersion;//!Class version identifier as sto red on file. | Int_t fOnFileClassVersion;//!Class version identifier as sto red on file. | |||
Int_t fNumber; //!Unique identifier | Int_t fNumber; //!Unique identifier | |||
Int_t fNdata; //!number of optmized types | Int_t fNdata; //!number of optmized types | |||
Int_t fSize; //!size of the persistent class | Int_t fSize; //!size of the persistent class | |||
Int_t *fType; //![fNdata] | Int_t *fType; //![fNdata] | |||
skipping to change at line 106 | skipping to change at line 108 | |||
ULong_t *fElem; //![fNdata] | ULong_t *fElem; //![fNdata] | |||
ULong_t *fMethod; //![fNdata] | ULong_t *fMethod; //![fNdata] | |||
TCompInfo *fComp; //![fNdata] additional info | TCompInfo *fComp; //![fNdata] additional info | |||
TClass *fClass; //!pointer to class | TClass *fClass; //!pointer to class | |||
TObjArray *fElements; //Array of TStreamerElements | TObjArray *fElements; //Array of TStreamerElements | |||
Version_t fOldVersion; //! Version of the TStreamerInfo o bject read from the file | Version_t fOldVersion; //! Version of the TStreamerInfo o bject read from the file | |||
Int_t fNVirtualInfoLoc; //! Number of virtual info locatio n to update. | Int_t fNVirtualInfoLoc; //! Number of virtual info locatio n to update. | |||
ULong_t *fVirtualInfoLoc; //![fNVirtualInfoLoc] Location of the pointer to the TStreamerInfo inside the object (when emulated) | ULong_t *fVirtualInfoLoc; //![fNVirtualInfoLoc] Location of the pointer to the TStreamerInfo inside the object (when emulated) | |||
ULong_t fLiveCount; //! Number of outstanding pointer to this StreamerInfo. | ULong_t fLiveCount; //! Number of outstanding pointer to this StreamerInfo. | |||
TStreamerInfoActions::TActionSequence *fReadObjectWise; //! List of | ||||
action resulting from the compilation. | ||||
TStreamerInfoActions::TActionSequence *fReadMemberWise; //! List of | ||||
action resulting from the compilation for use in member wise streaming. | ||||
static Int_t fgCount; //Number of TStreamerInfo instance s | static Int_t fgCount; //Number of TStreamerInfo instance s | |||
static TStreamerElement *fgElement; //Pointer to current TStreamerElem ent | static TStreamerElement *fgElement; //Pointer to current TStreamerElem ent | |||
static Double_t GetValueAux(Int_t type, void *ladd, int k, Int_t len); | static Double_t GetValueAux(Int_t type, void *ladd, int k, Int_t len); | |||
static void PrintValueAux(char *ladd, Int_t atype, TStreamerElemen t * aElement, Int_t aleng, Int_t *count); | static void PrintValueAux(char *ladd, Int_t atype, TStreamerElemen t * aElement, Int_t aleng, Int_t *count); | |||
UInt_t GenerateIncludes(FILE *fp, char *inclist, const TList *extrainfos); | UInt_t GenerateIncludes(FILE *fp, char *inclist, const TList *extrainfos); | |||
void GenerateDeclaration(FILE *fp, FILE *sfp, const TList * subClasses, Bool_t top = kTRUE); | void GenerateDeclaration(FILE *fp, FILE *sfp, const TList * subClasses, Bool_t top = kTRUE); | |||
void InsertArtificialElements(const TObjArray *rules); | void InsertArtificialElements(const TObjArray *rules); | |||
void DestructorImpl(void* p, Bool_t dtorOnly); | void DestructorImpl(void* p, Bool_t dtorOnly); | |||
skipping to change at line 193 | skipping to change at line 198 | |||
void ForceWriteInfo(TFile *file, Bool_t force=kFALSE); | void ForceWriteInfo(TFile *file, Bool_t force=kFALSE); | |||
Int_t GenerateHeaderFile(const char *dirname, const TList *subClasses = 0, const TList *extrainfos = 0); | Int_t GenerateHeaderFile(const char *dirname, const TList *subClasses = 0, const TList *extrainfos = 0); | |||
TClass *GetActualClass(const void *obj) const; | TClass *GetActualClass(const void *obj) const; | |||
TClass *GetClass() const {return fClass;} | TClass *GetClass() const {return fClass;} | |||
UInt_t GetCheckSum() const {return fCheckSum;} | UInt_t GetCheckSum() const {return fCheckSum;} | |||
UInt_t GetCheckSum(UInt_t code) const; | UInt_t GetCheckSum(UInt_t code) const; | |||
Int_t GetClassVersion() const {return fClassVersion;} | Int_t GetClassVersion() const {return fClassVersion;} | |||
Int_t GetDataMemberOffset(TDataMember *dm, TMemberStreamer *&streamer) const; | Int_t GetDataMemberOffset(TDataMember *dm, TMemberStreamer *&streamer) const; | |||
TObjArray *GetElements() const {return fElements;} | TObjArray *GetElements() const {return fElements;} | |||
ULong_t *GetElems() const {return fElem;} | ULong_t *GetElems() const {return fElem;} | |||
TStreamerInfoActions::TActionSequence *GetReadMemberWiseActions(Bool_t f | ||||
orCollection) { return forCollection ? fReadMemberWise : fReadObjectWise; } | ||||
TStreamerInfoActions::TActionSequence *GetReadObjectWiseActions() { retu | ||||
rn fReadObjectWise; } | ||||
Int_t GetNdata() const {return fNdata;} | Int_t GetNdata() const {return fNdata;} | |||
Int_t GetNumber() const {return fNumber;} | Int_t GetNumber() const {return fNumber;} | |||
Int_t *GetLengths() const {return fLength;} | Int_t *GetLengths() const {return fLength;} | |||
ULong_t *GetMethods() const {return fMethod;} | ULong_t *GetMethods() const {return fMethod;} | |||
Int_t *GetNewTypes() const {return fNewType;} | Int_t *GetNewTypes() const {return fNewType;} | |||
Int_t GetOffset(const char *) const; | Int_t GetOffset(const char *) const; | |||
Int_t *GetOffsets() const {return fOffset;} | Int_t *GetOffsets() const {return fOffset;} | |||
Version_t GetOldVersion() const {return fOldVersion;} | Version_t GetOldVersion() const {return fOldVersion;} | |||
Int_t GetOnFileClassVersion() const {return fOnFileClassVe rsion;} | Int_t GetOnFileClassVersion() const {return fOnFileClassVe rsion;} | |||
Int_t GetSize() const; | Int_t GetSize() const; | |||
skipping to change at line 231 | skipping to change at line 238 | |||
#ifdef R__BROKEN_FUNCTION_TEMPLATES | #ifdef R__BROKEN_FUNCTION_TEMPLATES | |||
// Support for non standard compilers | // Support for non standard compilers | |||
Int_t ReadBuffer(TBuffer &b, char** const &arrptr, Int_t first,Int_t narr=1,Int_t eoffset=0,Int_t mode=0); | Int_t ReadBuffer(TBuffer &b, char** const &arrptr, Int_t first,Int_t narr=1,Int_t eoffset=0,Int_t mode=0); | |||
Int_t ReadBufferSkip(TBuffer &b, char** const &arrptr, Int _t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | Int_t ReadBufferSkip(TBuffer &b, char** const &arrptr, Int _t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | |||
Int_t ReadBufferConv(TBuffer &b, char** const &arrptr, Int _t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | Int_t ReadBufferConv(TBuffer &b, char** const &arrptr, Int _t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | |||
Int_t ReadBufferArtificial(TBuffer &b, char** const &arrpt r, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffse t); | Int_t ReadBufferArtificial(TBuffer &b, char** const &arrpt r, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffse t); | |||
Int_t ReadBuffer(TBuffer &b, const TVirtualCollectionProxy &arrptr, Int_t first,Int_t narr=1,Int_t eoffset=0,Int_t mode=0); | Int_t ReadBuffer(TBuffer &b, const TVirtualCollectionProxy &arrptr, Int_t first,Int_t narr=1,Int_t eoffset=0,Int_t mode=0); | |||
Int_t ReadBufferSkip(TBuffer &b, const TVirtualCollectionP roxy &arrptr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, I nt_t eoffset); | Int_t ReadBufferSkip(TBuffer &b, const TVirtualCollectionP roxy &arrptr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, I nt_t eoffset); | |||
Int_t ReadBufferConv(TBuffer &b, const TVirtualCollectionP roxy &arrptr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, I nt_t eoffset); | Int_t ReadBufferConv(TBuffer &b, const TVirtualCollectionP roxy &arrptr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, I nt_t eoffset); | |||
Int_t ReadBufferArtificial(TBuffer &b, const TVirtualColle ctionProxy &arrptr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t n arr, Int_t eoffset); | Int_t ReadBufferArtificial(TBuffer &b, const TVirtualColle ctionProxy &arrptr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t n arr, Int_t eoffset); | |||
Int_t ReadBuffer(TBuffer &b, const TPointerCollectionAdapt | ||||
er &arrptr, Int_t first,Int_t narr=1,Int_t eoffset=0,Int_t mode=0); | ||||
Int_t ReadBufferSkip(TBuffer &b, const TPointerCollectionA | ||||
dapter &arrptr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, | ||||
Int_t eoffset); | ||||
Int_t ReadBufferConv(TBuffer &b, const TPointerCollectionA | ||||
dapter &arrptr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, | ||||
Int_t eoffset); | ||||
Int_t ReadBufferArtificial(TBuffer &b, const TPointerColle | ||||
ctionAdapter &arrptr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t | ||||
narr, Int_t eoffset); | ||||
Int_t ReadBuffer(TBuffer &b, const TVirtualArray &arrptr, Int_t first,Int_t narr=1,Int_t eoffset=0,Int_t mode=0); | Int_t ReadBuffer(TBuffer &b, const TVirtualArray &arrptr, Int_t first,Int_t narr=1,Int_t eoffset=0,Int_t mode=0); | |||
Int_t ReadBufferSkip(TBuffer &b, const TVirtualArray &arrp tr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffs et); | Int_t ReadBufferSkip(TBuffer &b, const TVirtualArray &arrp tr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffs et); | |||
Int_t ReadBufferConv(TBuffer &b, const TVirtualArray &arrp tr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffs et); | Int_t ReadBufferConv(TBuffer &b, const TVirtualArray &arrp tr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffs et); | |||
Int_t ReadBufferArtificial(TBuffer &b, const TVirtualArray &arrptr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | Int_t ReadBufferArtificial(TBuffer &b, const TVirtualArray &arrptr, Int_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | |||
#else | #else | |||
template <class T> | template <class T> | |||
Int_t ReadBuffer(TBuffer &b, const T &arrptr, Int_t first, Int_t narr=1,Int_t eoffset=0,Int_t mode=0); | Int_t ReadBuffer(TBuffer &b, const T &arrptr, Int_t first, Int_t narr=1,Int_t eoffset=0,Int_t mode=0); | |||
template <class T> | template <class T> | |||
Int_t ReadBufferSkip(TBuffer &b, const T &arrptr, Int_t i, Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | Int_t ReadBufferSkip(TBuffer &b, const T &arrptr, Int_t i, Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | |||
template <class T> | template <class T> | |||
Int_t ReadBufferConv(TBuffer &b, const T &arrptr, Int_t i, Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | Int_t ReadBufferConv(TBuffer &b, const T &arrptr, Int_t i, Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | |||
template <class T> | template <class T> | |||
Int_t ReadBufferArtificial(TBuffer &b, const T &arrptr, In t_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | Int_t ReadBufferArtificial(TBuffer &b, const T &arrptr, In t_t i,Int_t kase, TStreamerElement *aElement, Int_t narr, Int_t eoffset); | |||
#endif | #endif | |||
Int_t ReadBufferClones(TBuffer &b, TClonesArray *clones, I nt_t nc, Int_t first, Int_t eoffset); | Int_t ReadBufferClones(TBuffer &b, TClonesArray *clones, I nt_t nc, Int_t first, Int_t eoffset); | |||
Int_t ReadBufferSTL(TBuffer &b, TVirtualCollectionProxy *c ont, Int_t nc, Int_t first, Int_t eoffset ); | Int_t ReadBufferSTL(TBuffer &b, TVirtualCollectionProxy *c ont, Int_t nc, Int_t first, Int_t eoffset ); | |||
Int_t ReadBufferSTLPtrs(TBuffer &b, TVirtualCollectionProx y *cont, Int_t nc, Int_t first, Int_t eoffset ); | ||||
void SetCheckSum(UInt_t checksum) {fCheckSum = checksum;} | void SetCheckSum(UInt_t checksum) {fCheckSum = checksum;} | |||
void SetClass(TClass *cl) {fClass = cl;} | void SetClass(TClass *cl) {fClass = cl;} | |||
void SetClassVersion(Int_t vers) {fClassVersion=vers;} | void SetClassVersion(Int_t vers) {fClassVersion=vers;} | |||
void TagFile(TFile *fFile); | void TagFile(TFile *fFile); | |||
Int_t WriteBuffer(TBuffer &b, char *pointer, Int_t first); | Int_t WriteBuffer(TBuffer &b, char *pointer, Int_t first); | |||
Int_t WriteBufferClones(TBuffer &b, TClonesArray *clones, Int_t nc, Int_t first, Int_t eoffset); | Int_t WriteBufferClones(TBuffer &b, TClonesArray *clones, Int_t nc, Int_t first, Int_t eoffset); | |||
Int_t WriteBufferSTL (TBuffer &b, TVirtualCollectionProx y *cont, Int_t nc, Int_t first, Int_t eoffset ); | Int_t WriteBufferSTL (TBuffer &b, TVirtualCollectionProx y *cont, Int_t nc, Int_t first, Int_t eoffset ); | |||
Int_t WriteBufferSTLPtrs( TBuffer &b, TVirtualCollectionPr oxy *cont, Int_t nc, Int_t first, Int_t eoffset ); | Int_t WriteBufferSTLPtrs( TBuffer &b, TVirtualCollectionPr oxy *cont, Int_t nc, Int_t first, Int_t eoffset ); | |||
virtual void Update(const TClass *oldClass, TClass *newClass); | virtual void Update(const TClass *oldClass, TClass *newClass); | |||
End of changes. 7 change blocks. | ||||
14 lines changed or deleted | 13 lines changed or added | |||
TSystem.h | TSystem.h | |||
---|---|---|---|---|
// @(#)root/base:$Id: TSystem.h 32406 2010-02-25 12:50:14Z pcanal $ | // @(#)root/base:$Id: TSystem.h 37109 2010-11-30 16:30:58Z pcanal $ | |||
// Author: Fons Rademakers 15/09/95 | // Author: Fons Rademakers 15/09/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 147 | skipping to change at line 147 | |||
struct FileStat_t { | struct FileStat_t { | |||
Long_t fDev; // device id | Long_t fDev; // device id | |||
Long_t fIno; // inode | Long_t fIno; // inode | |||
Int_t fMode; // protection (combination of EFileModeMask bits ) | Int_t fMode; // protection (combination of EFileModeMask bits ) | |||
Int_t fUid; // user id of owner | Int_t fUid; // user id of owner | |||
Int_t fGid; // group id of owner | Int_t fGid; // group id of owner | |||
Long64_t fSize; // total size in bytes | Long64_t fSize; // total size in bytes | |||
Long_t fMtime; // modification date | Long_t fMtime; // modification date | |||
Bool_t fIsLink; // symbolic link | Bool_t fIsLink; // symbolic link | |||
TString fUrl; // end point url of file | ||||
FileStat_t() : fDev(0), fIno(0), fMode(0), fUid(0), fGid(0), fSize(0), | FileStat_t() : fDev(0), fIno(0), fMode(0), fUid(0), fGid(0), fSize(0), | |||
fMtime(0), fIsLink(kFALSE) { } | fMtime(0), fIsLink(kFALSE), fUrl("") { } | |||
}; | }; | |||
struct UserGroup_t { | struct UserGroup_t { | |||
Int_t fUid; // user id | Int_t fUid; // user id | |||
Int_t fGid; // group id | Int_t fGid; // group id | |||
TString fUser; // user name | TString fUser; // user name | |||
TString fGroup; // group name | TString fGroup; // group name | |||
TString fPasswd; // password | TString fPasswd; // password | |||
TString fRealName; // user full name | TString fRealName; // user full name | |||
TString fShell; // user preferred shell | TString fShell; // user preferred shell | |||
skipping to change at line 465 | skipping to change at line 466 | |||
//---- System Logging | //---- System Logging | |||
virtual void Openlog(const char *name, Int_t options, ELogFac ility facility); | virtual void Openlog(const char *name, Int_t options, ELogFac ility facility); | |||
virtual void Syslog(ELogLevel level, const char *mess); | virtual void Syslog(ELogLevel level, const char *mess); | |||
virtual void Closelog(); | virtual void Closelog(); | |||
//---- Standard Output redirection | //---- Standard Output redirection | |||
virtual Int_t RedirectOutput(const char *name, const char *mod e = "a", RedirectHandle_t *h = 0); | virtual Int_t RedirectOutput(const char *name, const char *mod e = "a", RedirectHandle_t *h = 0); | |||
virtual void ShowOutput(RedirectHandle_t *h); | virtual void ShowOutput(RedirectHandle_t *h); | |||
//---- Dynamic Loading | //---- Dynamic Loading | |||
virtual void AddDynamicPath(const char *pathname); | ||||
virtual const char *GetDynamicPath(); | virtual const char *GetDynamicPath(); | |||
virtual void SetDynamicPath(const char *pathname); | virtual void SetDynamicPath(const char *pathname); | |||
virtual char *DynamicPathName(const char *lib, Bool_t quiet = kFALSE); | virtual char *DynamicPathName(const char *lib, Bool_t quiet = kFALSE); | |||
virtual Func_t DynFindSymbol(const char *module, const char *en try); | virtual Func_t DynFindSymbol(const char *module, const char *en try); | |||
virtual int Load(const char *module, const char *entry = "", Bool_t system = kFALSE); | virtual int Load(const char *module, const char *entry = "", Bool_t system = kFALSE); | |||
virtual void Unload(const char *module); | virtual void Unload(const char *module); | |||
virtual void ListSymbols(const char *module, const char *re = ""); | virtual void ListSymbols(const char *module, const char *re = ""); | |||
virtual void ListLibraries(const char *regexp = ""); | virtual void ListLibraries(const char *regexp = ""); | |||
virtual const char *GetLibraries(const char *regexp = "", | virtual const char *GetLibraries(const char *regexp = "", | |||
const char *option = "", | const char *option = "", | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 4 lines changed or added | |||
TTree.h | TTree.h | |||
---|---|---|---|---|
// @(#)root/tree:$Id: TTree.h 34969 2010-08-24 19:01:19Z pcanal $ | // @(#)root/tree:$Id: TTree.h 37444 2010-12-09 18:12:26Z pcanal $ | |||
// 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 185 | skipping to change at line 185 | |||
kFindLeaf = BIT(1), | kFindLeaf = BIT(1), | |||
kGetAlias = BIT(2), | kGetAlias = BIT(2), | |||
kGetBranch = BIT(3), | kGetBranch = BIT(3), | |||
kGetEntry = BIT(4), | kGetEntry = BIT(4), | |||
kGetEntryWithIndex = BIT(5), | kGetEntryWithIndex = BIT(5), | |||
kGetFriend = BIT(6), | kGetFriend = BIT(6), | |||
kGetFriendAlias = BIT(7), | kGetFriendAlias = BIT(7), | |||
kGetLeaf = BIT(8), | kGetLeaf = BIT(8), | |||
kLoadTree = BIT(9), | kLoadTree = BIT(9), | |||
kPrint = BIT(10), | kPrint = BIT(10), | |||
kRemoveFriend = BIT(12), | kRemoveFriend = BIT(11), | |||
kSetBranchStatus = BIT(12) | kSetBranchStatus = BIT(12) | |||
}; | }; | |||
enum SetBranchAddressStatus { | enum SetBranchAddressStatus { | |||
kMissingBranch = -5, | kMissingBranch = -5, | |||
kInternalError = -4, | kInternalError = -4, | |||
kMissingCompiledCollectionProxy = -3, | kMissingCompiledCollectionProxy = -3, | |||
kMismatch = -2, | kMismatch = -2, | |||
kClassMismatch = -1, | kClassMismatch = -1, | |||
kMatch = 0, | kMatch = 0, | |||
skipping to change at line 387 | skipping to change at line 387 | |||
virtual Long64_t LoadTree(Long64_t entry); | virtual Long64_t LoadTree(Long64_t entry); | |||
virtual Long64_t LoadTreeFriend(Long64_t entry, TTree* T); | virtual Long64_t LoadTreeFriend(Long64_t entry, TTree* T); | |||
virtual Int_t MakeClass(const char* classname = 0, Option_t* o ption = ""); | virtual Int_t MakeClass(const char* classname = 0, Option_t* o ption = ""); | |||
virtual Int_t MakeCode(const char* filename = 0); | virtual Int_t MakeCode(const char* filename = 0); | |||
virtual Int_t MakeProxy(const char* classname, const char* mac rofilename = 0, const char* cutfilename = 0, const char* option = 0, Int_t maxUnrolling = 3); | virtual Int_t MakeProxy(const char* classname, const char* mac rofilename = 0, const char* cutfilename = 0, const char* option = 0, Int_t maxUnrolling = 3); | |||
virtual Int_t MakeSelector(const char* selector = 0); | virtual Int_t MakeSelector(const char* selector = 0); | |||
Bool_t MemoryFull(Int_t nbytes); | Bool_t MemoryFull(Int_t nbytes); | |||
virtual Long64_t Merge(TCollection* list, Option_t* option = ""); | virtual Long64_t Merge(TCollection* list, Option_t* option = ""); | |||
static TTree *MergeTrees(TList* list, Option_t* option = ""); | static TTree *MergeTrees(TList* list, Option_t* option = ""); | |||
virtual Bool_t Notify(); | virtual Bool_t Notify(); | |||
virtual void OptimizeBaskets(Int_t maxMemory=10000000, Float_ t minComp=1.1, Option_t *option=""); | virtual void OptimizeBaskets(ULong64_t maxMemory=10000000, Fl oat_t minComp=1.1, Option_t *option=""); | |||
TPrincipal *Principal(const char* varexp = "", const char* s election = "", Option_t* option = "np", Long64_t nentries = 1000000000, Lon g64_t firstentry = 0); | TPrincipal *Principal(const char* varexp = "", const char* s election = "", Option_t* option = "np", Long64_t nentries = 1000000000, Lon g64_t firstentry = 0); | |||
virtual void Print(Option_t* option = "") const; // *MENU* | virtual void Print(Option_t* option = "") const; // *MENU* | |||
virtual void PrintCacheStats(Option_t* option = "") const; | virtual void PrintCacheStats(Option_t* option = "") const; | |||
virtual Long64_t Process(const char* filename, Option_t* option = "", Long64_t nentries = 1000000000, Long64_t firstentry = 0); // *MENU* | virtual Long64_t Process(const char* filename, Option_t* option = "", Long64_t nentries = 1000000000, Long64_t firstentry = 0); // *MENU* | |||
#if defined(__CINT__) | #if defined(__CINT__) | |||
#if defined(R__MANUAL_DICT) | #if defined(R__MANUAL_DICT) | |||
virtual Long64_t Process(void* selector, Option_t* option = "", L ong64_t nentries = 1000000000, Long64_t firstentry = 0); | virtual Long64_t Process(void* selector, Option_t* option = "", L ong64_t nentries = 1000000000, Long64_t firstentry = 0); | |||
#endif | #endif | |||
#else | #else | |||
virtual Long64_t Process(TSelector* selector, Option_t* option = "", Long64_t nentries = 1000000000, Long64_t firstentry = 0); | virtual Long64_t Process(TSelector* selector, Option_t* option = "", Long64_t nentries = 1000000000, Long64_t firstentry = 0); | |||
#endif | #endif | |||
virtual Long64_t Project(const char* hname, const char* varexp, c onst char* selection = "", Option_t* option = "", Long64_t nentries = 10000 00000, Long64_t firstentry = 0); | virtual Long64_t Project(const char* hname, const char* varexp, c onst char* selection = "", Option_t* option = "", Long64_t nentries = 10000 00000, Long64_t firstentry = 0); | |||
virtual TSQLResult *Query(const char* varexp = "", const char* selec tion = "", Option_t* option = "", Long64_t nentries = 1000000000, Long64_t firstentry = 0); | virtual TSQLResult *Query(const char* varexp = "", const char* selec tion = "", Option_t* option = "", Long64_t nentries = 1000000000, Long64_t firstentry = 0); | |||
virtual Long64_t ReadFile(const char* filename, const char* branc hDescriptor = ""); | virtual Long64_t ReadFile(const char* filename, const char* branc hDescriptor = ""); | |||
virtual Long64_t ReadStream(istream& inputStream, const char* bra nchDescriptor = ""); | ||||
virtual void Refresh(); | virtual void Refresh(); | |||
virtual void RecursiveRemove(TObject *obj); | virtual void RecursiveRemove(TObject *obj); | |||
virtual void RemoveFriend(TTree*); | virtual void RemoveFriend(TTree*); | |||
virtual void Reset(Option_t* option = ""); | virtual void Reset(Option_t* option = ""); | |||
virtual void ResetBranchAddress(TBranch *); | virtual void ResetBranchAddress(TBranch *); | |||
virtual void ResetBranchAddresses(); | virtual void ResetBranchAddresses(); | |||
virtual Long64_t Scan(const char* varexp = "", const char* select ion = "", Option_t* option = "", Long64_t nentries = 1000000000, Long64_t f irstentry = 0); // *MENU* | virtual Long64_t Scan(const char* varexp = "", const char* select ion = "", Option_t* option = "", Long64_t nentries = 1000000000, Long64_t f irstentry = 0); // *MENU* | |||
virtual Bool_t SetAlias(const char* aliasName, const char* alia sFormula); | virtual Bool_t SetAlias(const char* aliasName, const char* alia sFormula); | |||
virtual void SetAutoSave(Long64_t autos = 300000000); | virtual void SetAutoSave(Long64_t autos = 300000000); | |||
virtual void SetAutoFlush(Long64_t autof = 30000000); | virtual void SetAutoFlush(Long64_t autof = 30000000); | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 4 lines changed or added | |||
TUnfold.h | TUnfold.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: TUnfold.h 37440 2010-12-09 15:13:46Z moneta $ | ||||
// Author: Stefan Schmitt | // Author: Stefan Schmitt | |||
// DESY, 13/10/08 | // DESY, 13/10/08 | |||
// Version 15, simplified L-curve scan, new tau definition, new eror calc. | // Version 16, some cleanup, more getter functions, query version number | |||
// | // | |||
// History: | // History: | |||
// Version 15, simplified L-curve scan, new tau definition, new eror cal c. | ||||
// Version 14, with changes in TUnfoldSys.cxx | // Version 14, with changes in TUnfoldSys.cxx | |||
// Version 13, new methods for derived classes | // Version 13, new methods for derived classes | |||
// Version 12, with support for preconditioned matrix inversion | // Version 12, with support for preconditioned matrix inversion | |||
// Version 11, regularisation methods have return values | // Version 11, regularisation methods have return values | |||
// Version 10, with bug-fix in TUnfold.cxx | // Version 10, with bug-fix in TUnfold.cxx | |||
// Version 9, implements method for optimized inversion of sparse matrix | // Version 9, implements method for optimized inversion of sparse matrix | |||
// Version 8, replace all TMatrixSparse matrix operations by private cod e | // Version 8, replace all TMatrixSparse matrix operations by private cod e | |||
// Version 7, fix problem with TMatrixDSparse,TMatrixD multiplication | // Version 7, fix problem with TMatrixDSparse,TMatrixD multiplication | |||
// Version 6, completely remove definition of class XY | // Version 6, completely remove definition of class XY | |||
// Version 5, move definition of class XY from TUnfold.C to this file | // Version 5, move definition of class XY from TUnfold.C to this file | |||
skipping to change at line 65 | skipping to change at line 67 | |||
#include <TH1D.h> | #include <TH1D.h> | |||
#include <TH2D.h> | #include <TH2D.h> | |||
#include <TObject.h> | #include <TObject.h> | |||
#include <TArrayI.h> | #include <TArrayI.h> | |||
#include <TSpline.h> | #include <TSpline.h> | |||
#include <TMatrixDSparse.h> | #include <TMatrixDSparse.h> | |||
#include <TMatrixD.h> | #include <TMatrixD.h> | |||
#include <TObjArray.h> | #include <TObjArray.h> | |||
#define TUnfold_VERSION "V16.0" | ||||
class TUnfold : public TObject { | class TUnfold : public TObject { | |||
private: | private: | |||
void InitTUnfold(void); // initialize all data members | void InitTUnfold(void); // initialize all data members | |||
public: | public: | |||
enum EConstraint { | enum EConstraint { | |||
kEConstraintNone =0, // use no extra constraint | kEConstraintNone =0, // use no extra constraint | |||
kEConstraintArea =1 // enforce preservation of the area | kEConstraintArea =1 // enforce preservation of the area | |||
}; | }; | |||
enum ERegMode { // regularisation scheme | enum ERegMode { // regularisation scheme | |||
kRegModeNone = 0, // no regularisation | kRegModeNone = 0, // no regularisation | |||
skipping to change at line 96 | skipping to change at line 100 | |||
Double_t fTauSquared; // Input: regularisation parameter | Double_t fTauSquared; // Input: regularisation parameter | |||
Double_t fBiasScale; // Input: scale factor for the bias | Double_t fBiasScale; // Input: scale factor for the bias | |||
TArrayI fXToHist; // Input: matrix indices -> histogram bins | TArrayI fXToHist; // Input: matrix indices -> histogram bins | |||
TArrayI fHistToX; // Input: histogram bins -> matrix indices | TArrayI fHistToX; // Input: histogram bins -> matrix indices | |||
TArrayD fSumOverY; // Input: sum of all columns | TArrayD fSumOverY; // Input: sum of all columns | |||
EConstraint fConstraint; // Input: type of constraint to use | EConstraint fConstraint; // Input: type of constraint to use | |||
ERegMode fRegMode; // Input: type of regularisation | ERegMode fRegMode; // Input: type of regularisation | |||
private: | private: | |||
TMatrixD *fX; // Result: x | TMatrixD *fX; // Result: x | |||
TMatrixDSparse *fVxx; // Result: covariance matrix on x | TMatrixDSparse *fVxx; // Result: covariance matrix on x | |||
TMatrixDSparse *fVxxInv; // Result: inverse of covariance matrix on x | ||||
TMatrixDSparse *fAx; // Result: Ax | TMatrixDSparse *fAx; // Result: Ax | |||
Double_t fChi2A; // Result: chi**2 contribution from (y-Ax)V (y-Ax) | Double_t fChi2A; // Result: chi**2 contribution from (y-Ax)V (y-Ax) | |||
Double_t fLXsquared; // Result: chi**2 contribution from (x-s*x0 )Lsquared(x-s*x0) | Double_t fLXsquared; // Result: chi**2 contribution from (x-s*x0 )Lsquared(x-s*x0) | |||
Double_t fRhoMax; // Result: maximum global correlation | Double_t fRhoMax; // Result: maximum global correlation | |||
Double_t fRhoAvg; // Result: average global correlation | Double_t fRhoAvg; // Result: average global correlation | |||
Int_t fNdf; // Result: number of degrees of freedom | Int_t fNdf; // Result: number of degrees of freedom | |||
TMatrixDSparse *fDXDAM[2]; // Result: part of derivative dx_k/dA_ij | TMatrixDSparse *fDXDAM[2]; // Result: part of derivative dx_k/dA_ij | |||
TMatrixDSparse *fDXDAZ[2]; // Result: part of derivative dx_k/dA_ij | TMatrixDSparse *fDXDAZ[2]; // Result: part of derivative dx_k/dA_ij | |||
TMatrixDSparse *fDXDtauSquared; // Result: derivative dx/dtau | TMatrixDSparse *fDXDtauSquared; // Result: derivative dx/dtau | |||
TMatrixDSparse *fDXDY; // Result: derivative dx/dy | TMatrixDSparse *fDXDY; // Result: derivative dx/dy | |||
TMatrixDSparse *fEinv; // Result: matrix E^(-1) | ||||
TMatrixDSparse *fE; // Result: matrix E | ||||
protected: | protected: | |||
TUnfold(void); // for derived classes | TUnfold(void); // for derived classes | |||
virtual Double_t DoUnfold(void); // the unfolding algorithm | virtual Double_t DoUnfold(void); // the unfolding algorithm | |||
virtual void ClearResults(void); // clear all results | virtual void ClearResults(void); // clear all results | |||
TMatrixDSparse *MultiplyMSparseM(TMatrixDSparse const *a,TMatrixD const | TMatrixDSparse *MultiplyMSparseM(const TMatrixDSparse *a,const TMatrixD | |||
*b) const; // multiply sparse and non-sparse matrix | *b) const; // multiply sparse and non-sparse matrix | |||
TMatrixDSparse *MultiplyMSparseMSparse(TMatrixDSparse const *a,TMatrixDS | TMatrixDSparse *MultiplyMSparseMSparse(const TMatrixDSparse *a,const TMa | |||
parse const *b) const; // multiply sparse and sparse matrix | trixDSparse *b) const; // multiply sparse and sparse matrix | |||
TMatrixDSparse *MultiplyMSparseTranspMSparse(TMatrixDSparse const *a,TMa | TMatrixDSparse *MultiplyMSparseTranspMSparse(const TMatrixDSparse *a,con | |||
trixDSparse const *b) const; // multiply transposed sparse and sparse matri | st TMatrixDSparse *b) const; // multiply transposed sparse and sparse matri | |||
x | x | |||
TMatrixDSparse *MultiplyMSparseMSparseTranspVector | TMatrixDSparse *MultiplyMSparseMSparseTranspVector | |||
(TMatrixDSparse const *m1,TMatrixDSparse const *m2, | (const TMatrixDSparse *m1,const TMatrixDSparse *m2, | |||
TMatrixTBase<Double_t> const *v) const; // calculate M_ij = sum_k [m | const TMatrixTBase<Double_t> *v) const; // calculate M_ij = sum_k [m | |||
1_ik*m2_jk*v[k] ]. the pointer v may be zero (means no scaling). | 1_ik*m2_jk*v[k] ]. the pointer v may be zero (means no scaling). | |||
TMatrixD *InvertMSparse(TMatrixDSparse const *A) const; // invert sparse | TMatrixD *InvertMSparse(const TMatrixDSparse *A) const; // invert sparse | |||
matrix | matrix | |||
static Bool_t InvertMConditioned(TMatrixD *A); // invert matrix includin g preconditioning | static Bool_t InvertMConditioned(TMatrixD *A); // invert matrix includin g preconditioning | |||
void AddMSparse(TMatrixDSparse *dest,Double_t const &f,TMatrixDSparse co nst *src); // replacement for dest += f*src | void AddMSparse(TMatrixDSparse *dest,Double_t f,const TMatrixDSparse *sr c); // replacement for dest += f*src | |||
TMatrixDSparse *CreateSparseMatrix(Int_t nrow,Int_t ncol,Int_t nele,Int_ t *row,Int_t *col,Double_t *data) const; // create a TMatrixDSparse from an array | TMatrixDSparse *CreateSparseMatrix(Int_t nrow,Int_t ncol,Int_t nele,Int_ t *row,Int_t *col,Double_t *data) const; // create a TMatrixDSparse from an array | |||
inline Int_t GetNx(void) const { | inline Int_t GetNx(void) const { | |||
return fA->GetNcols(); | return fA->GetNcols(); | |||
} // number of non-zero output bins | } // number of non-zero output bins | |||
inline Int_t GetNy(void) const { | inline Int_t GetNy(void) const { | |||
return fA->GetNrows(); | return fA->GetNrows(); | |||
} // number of input bins | } // number of input bins | |||
void ErrorMatrixToHist(TH2 *ematrix,TMatrixDSparse const *emat,Int_t con st *binMap, | void ErrorMatrixToHist(TH2 *ematrix,const TMatrixDSparse *emat,const Int _t *binMap, | |||
Bool_t doClear) const; // return an error matrix as histogram | Bool_t doClear) const; // return an error matrix as histogram | |||
inline TMatrixDSparse const *GetDXDY(void) { return fDXDY; } // access d | inline const TMatrixDSparse *GetDXDY(void) const { return fDXDY; } // ac | |||
erivative dx/dy | cess derivative dx/dy | |||
inline TMatrixDSparse const *GetDXDAM(int i) { return fDXDAM[i]; } // ac | inline const TMatrixDSparse *GetDXDAM(int i) const { return fDXDAM[i]; } | |||
cess matrix parts of the derivative dx/dA | // access matrix parts of the derivative dx/dA | |||
inline TMatrixDSparse const *GetDXDAZ(int i) { return fDXDAZ[i]; } // ac | inline const TMatrixDSparse *GetDXDAZ(int i) const { return fDXDAZ[i]; } | |||
cess vector parts of the derivative dx/dA | // access vector parts of the derivative dx/dA | |||
inline TMatrixDSparse const *GetDXDtauSquared(void) { return fDXDtauSqua | inline const TMatrixDSparse *GetDXDtauSquared(void) const { return fDXDt | |||
red; } // get derivative dx/dtauSquared | auSquared; } // get derivative dx/dtauSquared | |||
inline TMatrixDSparse const *GetAx(void) { return fAx; } // get vector A | inline const TMatrixDSparse *GetAx(void) const { return fAx; } // get ve | |||
x | ctor Ax | |||
inline const TMatrixDSparse *GetEinv(void) const { return fEinv; } // ge | ||||
t matrix E^-1 | ||||
inline const TMatrixDSparse *GetE(void) const { return fE; } // get matr | ||||
ix E | ||||
inline const TMatrixDSparse *GetVxx(void) const { return fVxx; } // get | ||||
covariance matrix of x | ||||
inline const TMatrixDSparse *GetVxxInv(void) const { return fVxxInv; } / | ||||
/ get inverse of covariance matrix of x | ||||
inline const TMatrixD *GetX(void) const { return fX; } // get result vec | ||||
tor x | ||||
static void DeleteMatrix(TMatrixD **m); // delete and invalidate pointer | ||||
static void DeleteMatrix(TMatrixDSparse **m); // delete and invalidate p | ||||
ointer | ||||
public: | public: | |||
enum EHistMap { // mapping between unfolding matrix and TH2 axes | enum EHistMap { // mapping between unfolding matrix and TH2 axes | |||
kHistMapOutputHoriz = 0, // map unfolding output to x-axis of TH2 ma trix | kHistMapOutputHoriz = 0, // map unfolding output to x-axis of TH2 ma trix | |||
kHistMapOutputVert = 1 // map unfolding output to y-axis of TH2 ma trix | kHistMapOutputVert = 1 // map unfolding output to y-axis of TH2 ma trix | |||
}; | }; | |||
TUnfold(TH2 const *hist_A, EHistMap histmap, | TUnfold(const TH2 *hist_A, EHistMap histmap, | |||
ERegMode regmode = kRegModeSize, | ERegMode regmode = kRegModeSize, | |||
EConstraint constraint=kEConstraintArea); // constructor | EConstraint constraint=kEConstraintArea); // constructor | |||
virtual ~ TUnfold(void); // delete data members | virtual ~ TUnfold(void); // delete data members | |||
static void DeleteMatrix(TMatrixD **m); // delete and invalidate pointer | static const char*GetTUnfoldVersion(void); | |||
static void DeleteMatrix(TMatrixDSparse **m); // delete and invalidate p | void SetBias(const TH1 *bias); // set alternative bias | |||
ointer | ||||
void SetBias(TH1 const *bias); // set alternative bias | ||||
void SetConstraint(EConstraint constraint); // set type of constraint fo r the next unfolding | void SetConstraint(EConstraint constraint); // set type of constraint fo r the next unfolding | |||
Int_t RegularizeSize(int bin, Double_t const &scale = 1.0); // regular | Int_t RegularizeSize(int bin, Double_t scale = 1.0); // regularise the | |||
ise the size of one output bin | size of one output bin | |||
Int_t RegularizeDerivative(int left_bin, int right_bin, Double_t const & | Int_t RegularizeDerivative(int left_bin, int right_bin, Double_t scale = | |||
scale = 1.0); // regularize difference of two output bins (1st derivative) | 1.0); // regularize difference of two output bins (1st derivative) | |||
Int_t RegularizeCurvature(int left_bin, int center_bin, int right_bin, D | Int_t RegularizeCurvature(int left_bin, int center_bin, int right_bin, D | |||
ouble_t const &scale_left = 1.0, Double_t const &scale_right = 1.0); // re | ouble_t scale_left = 1.0, Double_t scale_right = 1.0); // regularize curva | |||
gularize curvature of three output bins (2nd derivative) | ture of three output bins (2nd derivative) | |||
Int_t RegularizeBins(int start, int step, int nbin, ERegMode regmode); // regularize a 1-dimensional curve | Int_t RegularizeBins(int start, int step, int nbin, ERegMode regmode); // regularize a 1-dimensional curve | |||
Int_t RegularizeBins2D(int start_bin, int step1, int nbin1, int step2, i nt nbin2, ERegMode regmode); // regularize a 2-dimensional grid | Int_t RegularizeBins2D(int start_bin, int step1, int nbin1, int step2, i nt nbin2, ERegMode regmode); // regularize a 2-dimensional grid | |||
Double_t DoUnfold(Double_t const &tau, | Double_t DoUnfold(Double_t tau, | |||
TH1 const *hist_y, Double_t const &scaleBias=0.0); // | const TH1 *hist_y, Double_t scaleBias=0.0); // do the | |||
do the unfolding | unfolding | |||
virtual Int_t SetInput(TH1 const *hist_y, Double_t const &scaleBias=0.0, | virtual Int_t SetInput(const TH1 *hist_y, Double_t scaleBias=0.0,Double_ | |||
Double_t oneOverZeroError=0.0); // define input distribution for ScanLCurve | t oneOverZeroError=0.0); // define input distribution for ScanLCurve | |||
virtual Double_t DoUnfold(Double_t const &tau); // Unfold with given cho | virtual Double_t DoUnfold(Double_t tau); // Unfold with given choice of | |||
ice of tau | tau | |||
virtual Int_t ScanLcurve(Int_t nPoint,Double_t const &tauMin, | virtual Int_t ScanLcurve(Int_t nPoint,Double_t tauMin, | |||
Double_t const &tauMax,TGraph **lCurve, | Double_t tauMax,TGraph **lCurve, | |||
TSpline **logTauX=0,TSpline **logTauY=0); // sca n the L curve using successive calls to DoUnfold(Double_t) | TSpline **logTauX=0,TSpline **logTauY=0); // sca n the L curve using successive calls to DoUnfold(Double_t) | |||
TH1D *GetOutput(char const *name, char const *title, Double_t x0 = 0.0, | TH1D *GetOutput(const char *name,const char *title, Double_t x0 = 0.0, D | |||
Double_t x1 = 0.0) const; // get unfolding result | ouble_t x1 = 0.0) const; // get unfolding result | |||
TH1D *GetBias(char const *name, char const *title, Double_t x0 = 0.0, Do | TH1D *GetBias(const char *name,const char *title, Double_t x0 = 0.0, Dou | |||
uble_t x1 = 0.0) const; // get bias | ble_t x1 = 0.0) const; // get bias | |||
TH1D *GetFoldedOutput(char const *name, char const *title, Double_t y0 = | TH1D *GetFoldedOutput(const char *name,const char *title, Double_t y0 = | |||
0.0, Double_t y1 = 0.0) const; // get folded unfolding result | 0.0, Double_t y1 = 0.0) const; // get folded unfolding result | |||
TH1D *GetInput(char const *name, char const *title, Double_t y0 = 0.0, D | TH1D *GetInput(const char *name,const char *title, Double_t y0 = 0.0, Do | |||
ouble_t y1 = 0.0) const; // get unfolding input | uble_t y1 = 0.0) const; // get unfolding input | |||
TH2D *GetRhoIJ(char const *name, char const *title, Double_t x0 = 0.0, D | TH2D *GetRhoIJ(const char *name,const char *title, Double_t x0 = 0.0, Do | |||
ouble_t x1 = 0.0) const; // get correlation coefficients | uble_t x1 = 0.0) const; // get correlation coefficients | |||
TH2D *GetEmatrix(char const *name, char const *title, Double_t x0 = 0.0, | TH2D *GetEmatrix(const char*name,const char *title, Double_t x0 = 0.0, D | |||
Double_t x1 = 0.0) const; // get error matrix | ouble_t x1 = 0.0) const; // get error matrix | |||
TH1D *GetRhoI(char const *name, char const *title, Double_t x0 = 0.0, Do | TH1D *GetRhoI(const char*name,const char *title, Double_t x0 = 0.0, Doub | |||
uble_t x1 = 0.0) const; // get global correlation coefficients | le_t x1 = 0.0) const; // get global correlation coefficients | |||
TH2D *GetLsquared(char const *name, char const *title, Double_t x0 = 0.0 | TH2D *GetLsquared(const char*name,const char *title, Double_t x0 = 0.0, | |||
, Double_t x1 = 0.0) const; // get regularisation conditions squared | Double_t x1 = 0.0) const; // get regularisation conditions squared | |||
void GetOutput(TH1 *output,Int_t const *binMap=0) const; // get output d | void GetOutput(TH1 *output,const Int_t *binMap=0) const; // get output d | |||
istribution, averaged over bins | istribution, averaged over bins | |||
void GetEmatrix(TH2 *ematrix,Int_t const *binMap=0) const; // get error | void GetEmatrix(TH2 *ematrix,const Int_t *binMap=0) const; // get error | |||
matrix, averaged over bins | matrix, averaged over bins | |||
Double_t GetRhoI(TH1 *rhoi,TH2 *ematrixinv=0,Int_t const *binMap=0) cons | Double_t GetRhoI(TH1 *rhoi,TH2 *ematrixinv=0,const Int_t *binMap=0) cons | |||
t; // get global correlation coefficients and inverse of error matrix, aver | t; // get global correlation coefficients and inverse of error matrix, aver | |||
aged over bins | aged over bins | |||
void GetRhoIJ(TH2 *rhoij,Int_t const *binMap=0) const; // get correlatio | void GetRhoIJ(TH2 *rhoij,const Int_t *binMap=0) const; // get correlatio | |||
n coefficients, averaged over bins | n coefficients, averaged over bins | |||
Double_t GetTau(void) const; // regularisation parameter | Double_t GetTau(void) const; // regularisation parameter | |||
Double_t GetRhoMax(void) const; // maximum global correlation | inline Double_t GetRhoMax(void) const { return fRhoMax; } // maximum glo | |||
Double_t GetRhoAvg(void) const; // average global correlation | bal correlation | |||
Double_t GetChi2A(void) const; // chi**2 contribution from A | inline Double_t GetRhoAvg(void) const { return fRhoAvg; } // average gl | |||
obal correlation | ||||
inline Double_t GetChi2A(void) const { return fChi2A; } // chi**2 contr | ||||
ibution from A | ||||
Double_t GetChi2L(void) const; // chi**2 contribution from L | Double_t GetChi2L(void) const; // chi**2 contribution from L | |||
virtual Double_t GetLcurveX(void) const; // x axis of L curve | virtual Double_t GetLcurveX(void) const; // x axis of L curve | |||
virtual Double_t GetLcurveY(void) const; // y axis of L curve | virtual Double_t GetLcurveY(void) const; // y axis of L curve | |||
Int_t GetNdf(void) const; // number of degrees of freedom | inline Int_t GetNdf(void) const { return fNdf; } // number of degrees of freedom | |||
Int_t GetNpar(void) const; // number of parameters | Int_t GetNpar(void) const; // number of parameters | |||
ClassDef(TUnfold, 0) //Unfolding with support for L-curve analysis | ClassDef(TUnfold, 0) //Unfolding with support for L-curve analysis | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 18 change blocks. | ||||
76 lines changed or deleted | 97 lines changed or added | |||
TUnfoldSys.h | TUnfoldSys.h | |||
---|---|---|---|---|
// @(#)root/hist:$Id: TUnfoldSys.h 37440 2010-12-09 15:13:46Z moneta $ | ||||
// Author: Stefan Schmitt | // Author: Stefan Schmitt | |||
// DESY, 23/01/09 | // DESY, 23/01/09 | |||
// Version 15, fix bugs with uncorr. uncertainties, add backgnd subtraction | // Version 16, parallel to changes in TUnfold | |||
// | // | |||
// History: | // History: | |||
// Version 15, fix bugs with uncorr. uncertainties, add backgnd subtrac tion | ||||
// Version 14, with changes in TUnfoldSys.cxx | // Version 14, with changes in TUnfoldSys.cxx | |||
// Version 13, support for systematic errors | // Version 13, support for systematic errors | |||
#ifndef ROOT_TUnfoldSys | #ifndef ROOT_TUnfoldSys | |||
#define ROOT_TUnfoldSys | #define ROOT_TUnfoldSys | |||
#include <TUnfold.h> | #include <TUnfold.h> | |||
class TMap; | class TMap; | |||
skipping to change at line 40 | skipping to change at line 42 | |||
TMatrixDSparse *fVyyData; // Input: error on fY prior to bgr subtract ion | TMatrixDSparse *fVyyData; // Input: error on fY prior to bgr subtract ion | |||
TMatrixDSparse *fEmatUncorrX; // Result: syst.error from fDA2 on fX | TMatrixDSparse *fEmatUncorrX; // Result: syst.error from fDA2 on fX | |||
TMatrixDSparse *fEmatUncorrAx; // Result: syst.error from fDA2 on fA x | TMatrixDSparse *fEmatUncorrAx; // Result: syst.error from fDA2 on fA x | |||
TMap *fDeltaCorrX; // Result: syst.shift from fSysIn on fX | TMap *fDeltaCorrX; // Result: syst.shift from fSysIn on fX | |||
TMap *fDeltaCorrAx; // Result: syst.shift from fSysIn on fAx | TMap *fDeltaCorrAx; // Result: syst.shift from fSysIn on fAx | |||
TMatrixDSparse *fDeltaSysTau; // Result: systematic shift from tau | TMatrixDSparse *fDeltaSysTau; // Result: systematic shift from tau | |||
protected: | protected: | |||
TUnfoldSys(void); // for derived classes | TUnfoldSys(void); // for derived classes | |||
virtual void ClearResults(void); // clear all results | virtual void ClearResults(void); // clear all results | |||
virtual void PrepareSysError(void); // common calculations for syst.erro rs | virtual void PrepareSysError(void); // common calculations for syst.erro rs | |||
virtual TMatrixDSparse *PrepareUncorrEmat(TMatrixDSparse const *m1,TMatr | virtual TMatrixDSparse *PrepareUncorrEmat(const TMatrixDSparse *m1,const | |||
ixDSparse const *m2); // calculate uncorrelated error matrix | TMatrixDSparse *m2); // calculate uncorrelated error matrix | |||
virtual TMatrixDSparse *PrepareCorrEmat(TMatrixDSparse const *m1,TMatrix | virtual TMatrixDSparse *PrepareCorrEmat(const TMatrixDSparse *m1,const T | |||
DSparse const *m2,TMatrixDSparse const *dsys); // calculate correlated erro | MatrixDSparse *m2,const TMatrixDSparse *dsys); // calculate correlated erro | |||
r matrix | r matrix | |||
void ScaleColumnsByVector(TMatrixDSparse *m,TMatrixTBase<Double_t> const | void ScaleColumnsByVector(TMatrixDSparse *m,const TMatrixTBase<Double_t> | |||
*v) const; // scale columns of m by the corresponding rows of v | *v) const; // scale columns of m by the corresponding rows of v | |||
void VectorMapToHist(TH1 *hist_delta,TMatrixDSparse const *delta,Int_t c | void VectorMapToHist(TH1 *hist_delta,const TMatrixDSparse *delta,const I | |||
onst *binMap); // map and sum vector delta, save in hist_delta | nt_t *binMap); // map and sum vector delta, save in hist_delta | |||
void GetEmatrixFromVyy(TMatrixDSparse const *vyy,TH2 *ematrix,Int_t cons | void GetEmatrixFromVyy(const TMatrixDSparse *vyy,TH2 *ematrix,const Int_ | |||
t *binMap,Bool_t clearEmat); // propagate error matrix vyy to the result | t *binMap,Bool_t clearEmat); // propagate error matrix vyy to the result | |||
void DoBackgroundSubtraction(void); | void DoBackgroundSubtraction(void); | |||
public: | public: | |||
enum ESysErrMode { // meaning of the argument to AddSysError() | enum ESysErrMode { // meaning of the argument to AddSysError() | |||
kSysErrModeMatrix=0, // matrix is an alternative to the default matrix , the errors are the difference to the original matrix | kSysErrModeMatrix=0, // matrix is an alternative to the default matrix , the errors are the difference to the original matrix | |||
kSysErrModeShift=1, // matrix gives the absolute shifts | kSysErrModeShift=1, // matrix gives the absolute shifts | |||
kSysErrModeRelative=2 // matrix gives the relative shifts | kSysErrModeRelative=2 // matrix gives the relative shifts | |||
}; | }; | |||
TUnfoldSys(TH2 const *hist_A, EHistMap histmap, ERegMode regmode = kRegM odeSize, | TUnfoldSys(const TH2 *hist_A, EHistMap histmap, ERegMode regmode = kRegM odeSize, | |||
EConstraint constraint=kEConstraintNone); // constructor | EConstraint constraint=kEConstraintNone); // constructor | |||
virtual ~ TUnfoldSys(void); // delete data members | virtual ~ TUnfoldSys(void); // delete data members | |||
void AddSysError(TH2 const *sysError,char const *name, EHistMap histmap, | void AddSysError(const TH2 *sysError,const char *name, EHistMap histmap, | |||
ESysErrMode mode); // add a systematic error source | ESysErrMode mode); // add a systematic error source | |||
void GetDeltaSysSource(TH1 *hist_delta,char const *source, | void GetDeltaSysSource(TH1 *hist_delta,const char *source, | |||
Int_t const *binMap=0); // get systematic shifts | const Int_t *binMap=0); // get systematic shifts | |||
from one systematic source | from one systematic source | |||
void SubtractBackground(TH1 const *hist_bgr,char const *name, | void SubtractBackground(const TH1 *hist_bgr,const char *name, | |||
Double_t const &scale=1.0, | Double_t scale=1.0, | |||
Double_t const &scale_error=0.0); // subtract ba | Double_t scale_error=0.0); // subtract backgroun | |||
ckground prior to unfolding | d prior to unfolding | |||
virtual Int_t SetInput(TH1 const *hist_y, Double_t const &scaleBias=0.0, | virtual Int_t SetInput(const TH1 *hist_y,Double_t scaleBias=0.0,Double_t | |||
Double_t oneOverZeroError=0.0); // define input consistently in case of bac | oneOverZeroError=0.0); // define input consistently in case of background | |||
kground subtraction | subtraction | |||
void GetDeltaSysBackgroundScale(TH1 *delta,char const *source, | void GetDeltaSysBackgroundScale(TH1 *delta,const char *source, | |||
Int_t const *binMap=0); // get correlated u | const Int_t *binMap=0); // get correlated u | |||
ncertainty induced by the scale uncertainty of a background source | ncertainty induced by the scale uncertainty of a background source | |||
void SetTauError(Double_t const &delta_tau); // set uncertainty on tau | void SetTauError(Double_t delta_tau); // set uncertainty on tau | |||
void GetDeltaSysTau(TH1 *delta,Int_t const *binMap=0); // get correlated | void GetDeltaSysTau(TH1 *delta,const Int_t *binMap=0); // get correlated | |||
uncertainty from varying tau | uncertainty from varying tau | |||
void GetEmatrixSysUncorr(TH2 *ematrix,Int_t const *binMap=0,Bool_t clear | void GetEmatrixSysUncorr(TH2 *ematrix,const Int_t *binMap=0,Bool_t clear | |||
Emat=kTRUE); // get error matrix contribution from uncorrelated errors on t | Emat=kTRUE); // get error matrix contribution from uncorrelated errors on t | |||
he matrix A | he matrix A | |||
void GetEmatrixSysSource(TH2 *ematrix,char const *source, | void GetEmatrixSysSource(TH2 *ematrix,const char *source, | |||
Int_t const *binMap=0,Bool_t clearEmat=kTRUE); | const Int_t *binMap=0,Bool_t clearEmat=kTRUE); | |||
// get error matrix from one systematic source | // get error matrix from one systematic source | |||
void GetEmatrixSysBackgroundUncorr(TH2 *ematrix,char const *source, | void GetEmatrixSysBackgroundUncorr(TH2 *ematrix,const char *source, | |||
Int_t const *binMap=0,Bool_t clearEmat=k | const Int_t *binMap=0,Bool_t clearEmat=k | |||
TRUE); // get error matrix from uncorrelated error of one background source | TRUE); // get error matrix from uncorrelated error of one background source | |||
void GetEmatrixSysBackgroundScale(TH2 *ematrix,char const *source, | void GetEmatrixSysBackgroundScale(TH2 *ematrix,const char *source, | |||
Int_t const *binMap=0,Bool_t clearEmat=kT | const Int_t *binMap=0,Bool_t clearEmat=kT | |||
RUE); // get error matrix from the scale error of one background source | RUE); // get error matrix from the scale error of one background source | |||
void GetEmatrixSysTau(TH2 *ematrix, | void GetEmatrixSysTau(TH2 *ematrix, | |||
Int_t const *binMap=0,Bool_t clearEmat=kTRUE); // get | const Int_t *binMap=0,Bool_t clearEmat=kTRUE); // get | |||
error matrix from tau variation | error matrix from tau variation | |||
void GetEmatrixInput(TH2 *ematrix,Int_t const *binMap=0,Bool_t clearEmat | void GetEmatrixInput(TH2 *ematrix,const Int_t *binMap=0,Bool_t clearEmat | |||
=kTRUE); // get error contribution from input vector | =kTRUE); // get error contribution from input vector | |||
void GetEmatrixTotal(TH2 *ematrix,Int_t const *binMap=0); // get total e | void GetEmatrixTotal(TH2 *ematrix,const Int_t *binMap=0); // get total e | |||
rror including systematic,statistical,background,tau errors | rror including systematic,statistical,background,tau errors | |||
Double_t GetChi2Sys(void); // get total chi**2 including all systematic errors | Double_t GetChi2Sys(void); // get total chi**2 including all systematic errors | |||
ClassDef(TUnfoldSys, 0) //Unfolding with support for systematic error pr opagation | ClassDef(TUnfoldSys, 0) //Unfolding with support for systematic error pr opagation | |||
}; | }; | |||
#endif | #endif | |||
End of changes. 8 change blocks. | ||||
48 lines changed or deleted | 50 lines changed or added | |||
TUnixSystem.h | TUnixSystem.h | |||
---|---|---|---|---|
// @(#)root/unix:$Id: TUnixSystem.h 34557 2010-07-22 15:12:01Z rdm $ | // @(#)root/unix:$Id: TUnixSystem.h 37109 2010-11-30 16:30:58Z pcanal $ | |||
// Author: Fons Rademakers 15/09/95 | // Author: Fons Rademakers 15/09/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 184 | skipping to change at line 184 | |||
//---- System Logging --------------------------------------- | //---- System Logging --------------------------------------- | |||
void Openlog(const char *name, Int_t options, ELogFacility facility); | void Openlog(const char *name, Int_t options, ELogFacility facility); | |||
void Syslog(ELogLevel level, const char *mess); | void Syslog(ELogLevel level, const char *mess); | |||
void Closelog(); | void Closelog(); | |||
//---- Standard Output redirection -------------------------- | //---- Standard Output redirection -------------------------- | |||
Int_t RedirectOutput(const char *name, const char *mode = "a ", | Int_t RedirectOutput(const char *name, const char *mode = "a ", | |||
RedirectHandle_t *h = 0); | RedirectHandle_t *h = 0); | |||
//---- Dynamic Loading -------------------------------------- | //---- Dynamic Loading -------------------------------------- | |||
void AddDynamicPath(const char *lib); | ||||
const char *GetDynamicPath(); | const char *GetDynamicPath(); | |||
void SetDynamicPath(const char *lib); | void SetDynamicPath(const char *lib); | |||
Func_t DynFindSymbol(const char *module, const char *entry); | Func_t DynFindSymbol(const char *module, const char *entry); | |||
int Load(const char *module, const char *entry = "", Bool_ t system = kFALSE); | int Load(const char *module, const char *entry = "", Bool_ t system = kFALSE); | |||
void Unload(const char *module); | void Unload(const char *module); | |||
void ListSymbols(const char *module, const char *re = ""); | void ListSymbols(const char *module, const char *re = ""); | |||
void ListLibraries(const char *regexp = ""); | void ListLibraries(const char *regexp = ""); | |||
//---- RPC -------------------------------------------------- | //---- RPC -------------------------------------------------- | |||
TInetAddress GetHostByName(const char *server); | TInetAddress GetHostByName(const char *server); | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TUnuran.h | TUnuran.h | |||
---|---|---|---|---|
// @(#)root/unuran:$Id: TUnuran.h 35423 2010-09-20 08:15:23Z moneta $ | // @(#)root/unuran:$Id: TUnuran.h 36306 2010-10-11 18:55:19Z moneta $ | |||
// Author: L. Moneta Tue Sep 26 16:25:09 2006 | // Author: L. Moneta Tue Sep 26 16:25:09 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 TUnuran | // Header file for class TUnuran | |||
skipping to change at line 50 | skipping to change at line 50 | |||
- using a multi-dimensional distribution object defined by TUnuranMultiC ontDist | - using a multi-dimensional distribution object defined by TUnuranMultiC ontDist | |||
- using a discrete one-dimensional distribution object defined by TUnura nDiscrDist | - using a discrete one-dimensional distribution object defined by TUnura nDiscrDist | |||
- using an empirical distribution defined by TUnuranEmpDist | - using an empirical distribution defined by TUnuranEmpDist | |||
- using pre-defined distributions. Presently only support for Poisson (T Unuran::InitPoisson) | - using pre-defined distributions. Presently only support for Poisson (T Unuran::InitPoisson) | |||
and Binomial (TUnuran::InitBinomial) are provided. Other distributions can however be generated | and Binomial (TUnuran::InitBinomial) are provided. Other distributions can however be generated | |||
using the previous methods (in particular via the string API) | using the previous methods (in particular via the string API) | |||
The sampling is provided via these methods: | The sampling is provided via these methods: | |||
- TUnuran::Sample() returns a double for all one-dimensional distribu tion | - TUnuran::Sample() returns a double for all one-dimensional distribu tion | |||
- TUnuran::SampleDiscr() returns an integer for one-dimensional discre te distribution | - TUnuran::SampleDiscr() returns an integer for one-dimensional discre te distribution | |||
- TUnuran::Sample(double *) sample a multi-dimensional distribution. A | - TUnuran::Sample(double *) sample a multi-dimensional distribution. A | |||
pointer to a vector of | pointer to a vector with | |||
size as the distribution dimension must be passed | size at least equal to the distribution dimension must be passed | |||
In addition is possible to set the random number generator in the constr uctor of the class, its seed | In addition is possible to set the random number generator in the constr uctor of the class, its seed | |||
via the TUnuran::SetSeed() method. | via the TUnuran::SetSeed() method. | |||
*/ | */ | |||
/////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////// | |||
//class TUnuranGenerator; | //class TUnuranGenerator; | |||
struct unur_gen; | struct unur_gen; | |||
typedef struct unur_gen UNUR_GEN; | typedef struct unur_gen UNUR_GEN; | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 4 lines changed or added | |||
TUnuranSampler.h | TUnuranSampler.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: TUnuranSampler.h 34077 2010-06-23 10:09:18Z monet a $ | // @(#)root/mathcore:$Id: TUnuranSampler.h 37419 2010-12-08 21:19:45Z monet a $ | |||
// 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 TUnuranSampler | // Header file for class TUnuranSampler | |||
skipping to change at line 69 | skipping to change at line 69 | |||
SetFunction<const ROOT::Math::IGenFunction>(func, 1); | SetFunction<const ROOT::Math::IGenFunction>(func, 1); | |||
} | } | |||
/// set the Function using a TF1 pointer | /// set the Function using a TF1 pointer | |||
void SetFunction(TF1 * pdf); | void SetFunction(TF1 * pdf); | |||
/** | /** | |||
initialize the generators with the given algorithm | initialize the generators with the given algorithm | |||
If no algorithm is passed used the default one for the type of distri bution | If no algorithm is passed used the default one for the type of distri bution | |||
*/ | */ | |||
bool Init(const char * algo =0); | bool Init(const char * algo =""); | |||
/** | ||||
initialize the generators with the given algorithm | ||||
If no algorithm is passed used the default one for the type of distri | ||||
bution | ||||
*/ | ||||
bool Init(const ROOT::Math::DistSamplerOptions & opt ); | ||||
/** | /** | |||
Set the random engine to be used | Set the random engine to be used | |||
Needs to be called before Init to have effect | Needs to be called before Init to have effect | |||
*/ | */ | |||
void SetRandom(TRandom * r); | void SetRandom(TRandom * r); | |||
/** | /** | |||
Set the random seed for the TRandom instances used by the sampler | Set the random seed for the TRandom instances used by the sampler | |||
classes | classes | |||
Needs to be called before Init to have effect | Needs to be called before Init to have effect | |||
*/ | */ | |||
void SetSeed(unsigned int seed); | void SetSeed(unsigned int seed); | |||
/** | ||||
Set the print level | ||||
(if level=-1 use default) | ||||
*/ | ||||
void SetPrintLevel(int level) {fLevel = level;} | ||||
/* | /* | |||
set the mode | set the mode | |||
*/ | */ | |||
void SetMode(double mode) { | void SetMode(double mode) { | |||
fMode = mode; | fMode = mode; | |||
fHasMode = true; | fHasMode = true; | |||
} | } | |||
/* | /* | |||
set the area | set the area | |||
skipping to change at line 148 | skipping to change at line 160 | |||
//initialization for multi-dim distributions | //initialization for multi-dim distributions | |||
bool DoInitND(const char * algo); | bool DoInitND(const char * algo); | |||
private: | private: | |||
// private member | // private member | |||
bool fOneDim; // flag to indicate if t he function is 1 dimension | bool fOneDim; // flag to indicate if t he function is 1 dimension | |||
bool fDiscrete; // flag to indicate if t he function is discrete | bool fDiscrete; // flag to indicate if t he function is discrete | |||
bool fHasMode; // flag to indicate if a mode is set | bool fHasMode; // flag to indicate if a mode is set | |||
bool fHasArea; // flag to indicate if a area is set | bool fHasArea; // flag to indicate if a area is set | |||
int fLevel; // debug level | ||||
double fMode; // mode of dist | double fMode; // mode of dist | |||
double fArea; // area of dist | double fArea; // area of dist | |||
const ROOT::Math::IGenFunction * fFunc1D; // 1D function pointer | const ROOT::Math::IGenFunction * fFunc1D; // 1D function pointer | |||
TUnuran * fUnuran; // unuran engine class | TUnuran * fUnuran; // unuran engine class | |||
//ClassDef(TUnuranSampler,1) //Distribution sampler class based on UNU. RAN | //ClassDef(TUnuranSampler,1) //Distribution sampler class based on UNU. RAN | |||
}; | }; | |||
#endif /* ROOT_TUnuranSampler */ | #endif /* ROOT_TUnuranSampler */ | |||
End of changes. 4 change blocks. | ||||
2 lines changed or deleted | 16 lines changed or added | |||
TVirtualCollectionProxy.h | TVirtualCollectionProxy.h | |||
---|---|---|---|---|
// @(#)root/cont:$Id: TVirtualCollectionProxy.h 35298 2010-09-15 12:29:16Z pcanal $ | // @(#)root/cont:$Id: TVirtualCollectionProxy.h 36061 2010-10-04 16:05:51Z pcanal $ | |||
// Author: Philippe Canal 20/08/2003 | // Author: Philippe Canal 20/08/2003 | |||
/************************************************************************* | /************************************************************************* | |||
* Copyright (C) 1995-2003, Rene Brun, Fons Rademakers and al. * | * Copyright (C) 1995-2003, Rene Brun, Fons Rademakers and al. * | |||
* 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_TVirtualCollectionProxy | #ifndef ROOT_TVirtualCollectionProxy | |||
#define Root_TVirtualCollectionProxy | #define ROOT_TVirtualCollectionProxy | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
// // | // // | |||
// TVirtualCollectionProxy // | // TVirtualCollectionProxy // | |||
// // | // // | |||
// Virtual interface of a proxy object for a collection class // | // Virtual interface of a proxy object for a collection class // | |||
// In particular this is used to implement splitting, emulation, // | // In particular this is used to implement splitting, emulation, // | |||
// and TTreeFormula access to STL containers. // | // and TTreeFormula access to STL containers. // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#ifndef ROOT_TObject | ||||
#include "TObject.h" | ||||
#endif | ||||
#include "TClassRef.h" | #include "TClassRef.h" | |||
#include "TDataType.h" | #include "TDataType.h" | |||
// Macro indicating the version of the Collection Proxy interface followed | // Macro indicating the version of the Collection Proxy interface followed | |||
// by this ROOT build (See also Reflex/Builder/CollectionProxy.h). | // by this ROOT build (See also Reflex/Builder/CollectionProxy.h). | |||
#define ROOT_COLLECTIONPROXY_VERSION 2 | #define ROOT_COLLECTIONPROXY_VERSION 3 | |||
class TClass; | class TClass; | |||
namespace TStreamerInfoActions { | ||||
class TActionSequence; | ||||
} | ||||
class TVirtualCollectionProxy { | class TVirtualCollectionProxy { | |||
private: | private: | |||
TVirtualCollectionProxy(const TVirtualCollectionProxy&); // Not implemen ted | TVirtualCollectionProxy(const TVirtualCollectionProxy&); // Not implemen ted | |||
TVirtualCollectionProxy& operator=(const TVirtualCollectionProxy&); // N ot implemented | TVirtualCollectionProxy& operator=(const TVirtualCollectionProxy&); // N ot implemented | |||
protected: | protected: | |||
TClassRef fClass; | TClassRef fClass; | |||
UInt_t fProperties; | ||||
virtual void SetValueClass(TClass *newcl) = 0; | virtual void SetValueClass(TClass *newcl) = 0; | |||
friend class TClass; | friend class TClass; | |||
public: | public: | |||
enum EProperty { | ||||
kIsInitialized = BIT(1), | ||||
kIsAssociative = BIT(2), | ||||
kIsEmulated = BIT(3) | ||||
}; | ||||
class TPushPop { | class TPushPop { | |||
// Helper class that insures that push and pop are done when entering | // Helper class that insures that push and pop are done when entering | |||
// and leaving a C++ context (even in the presence of exceptions) | // and leaving a C++ context (even in the presence of exceptions) | |||
public: | public: | |||
TVirtualCollectionProxy *fProxy; | TVirtualCollectionProxy *fProxy; | |||
inline TPushPop(TVirtualCollectionProxy *proxy, | inline TPushPop(TVirtualCollectionProxy *proxy, | |||
void *objectstart) : fProxy(proxy) { fProxy->PushProxy(objectstart ); } | void *objectstart) : fProxy(proxy) { fProxy->PushProxy(objectstart ); } | |||
inline ~TPushPop() { fProxy->PopProxy(); } | inline ~TPushPop() { fProxy->PopProxy(); } | |||
private: | private: | |||
TPushPop(const TPushPop&); // Not implemented | TPushPop(const TPushPop&); // Not implemented | |||
TPushPop& operator=(const TPushPop&); // Not implemented | TPushPop& operator=(const TPushPop&); // Not implemented | |||
}; | }; | |||
TVirtualCollectionProxy() : fClass() {}; | TVirtualCollectionProxy() : fClass(), fProperties(0) {}; | |||
TVirtualCollectionProxy(TClass *cl) : fClass(cl) {}; | TVirtualCollectionProxy(TClass *cl) : fClass(cl), fProperties(0) {}; | |||
virtual TVirtualCollectionProxy* Generate() const = 0; // Returns an obj ect of the actual CollectionProxy class | virtual TVirtualCollectionProxy* Generate() const = 0; // Returns an obj ect of the actual CollectionProxy class | |||
virtual ~TVirtualCollectionProxy() {}; | virtual ~TVirtualCollectionProxy() {}; | |||
virtual TClass *GetCollectionClass() { return fClass; } // Return a po inter to the TClass representing the container | ||||
virtual void *New() const { // Return a new container | virtual TClass *GetCollectionClass() { return fClass; } | |||
object | // Return a pointer to the TClass representing the container | |||
return fClass.GetClass()==0 ? 0 : fClass->New(); | ||||
virtual Int_t GetCollectionType() = 0; | ||||
// Return the type of collection see TClassEdit::ESTLType | ||||
virtual ULong_t GetIncrement() = 0; | ||||
// Return the offset between two consecutive value_types (memory layout) | ||||
. | ||||
virtual Int_t GetProperties() { return fProperties; } | ||||
// Return miscallenous properties of the proxy see TVirtualCollectionPro | ||||
xy::EProperty | ||||
virtual void *New() const { | ||||
// Return a new container object | ||||
return fClass.GetClass()==0 ? 0 : fClass->New(); | ||||
} | } | |||
virtual void *New(void *arena) const { // Execute the container | virtual void *New(void *arena) const { | |||
constructor | // Execute the container constructor | |||
return fClass.GetClass()==0 ? 0 : fClass->New(arena); | return fClass.GetClass()==0 ? 0 : fClass->New(arena); | |||
} | } | |||
virtual void *NewArray(Int_t nElements) const { // Re | virtual void *NewArray(Int_t nElements) const { | |||
turn a new container object | // Return a new container object | |||
return fClass.GetClass()==0 ? 0 : fClass->NewArray(nElements); | return fClass.GetClass()==0 ? 0 : fClass->NewArray(nElements); | |||
} | } | |||
virtual void *NewArray(Int_t nElements, void *arena) const { // | virtual void *NewArray(Int_t nElements, void *arena) const { | |||
Execute the container constructor | // Execute the container constructor | |||
return fClass.GetClass()==0 ? 0 : fClass->NewArray(nElements, arena); | return fClass.GetClass()==0 ? 0 : fClass->NewArray(nElements, arena); | |||
} | } | |||
virtual void Destructor(void *p, Bool_t dtorOnly = kFALSE) { // Exe | virtual void Destructor(void *p, Bool_t dtorOnly = kFALSE) { | |||
cute the container destructor | // Execute the container destructor | |||
TClass* cl = fClass.GetClass(); | TClass* cl = fClass.GetClass(); | |||
if (cl) cl->Destructor(p, dtorOnly); | if (cl) cl->Destructor(p, dtorOnly); | |||
} | } | |||
virtual void DeleteArray(void *p, Bool_t dtorOnly = kFALSE) { // Ex | virtual void DeleteArray(void *p, Bool_t dtorOnly = kFALSE) { | |||
ecute the container array destructor | // Execute the container array destructor | |||
TClass* cl = fClass.GetClass(); | TClass* cl = fClass.GetClass(); | |||
if (cl) cl->DeleteArray(p, dtorOnly); | if (cl) cl->DeleteArray(p, dtorOnly); | |||
} | } | |||
virtual UInt_t Sizeof() const = 0; // Return the sizeof the collectio | virtual UInt_t Sizeof() const = 0; | |||
n object. | // Return the sizeof the collection object. | |||
virtual void PushProxy(void *objectstart) = 0; | ||||
// Set the address of the container being proxied and keep track of the | ||||
previous one. | ||||
virtual void PopProxy() = 0; | ||||
// Reset the address of the container being proxied to the previous cont | ||||
ainer | ||||
virtual void PushProxy(void *objectstart) = 0; // Set the address o | virtual Bool_t HasPointers() const = 0; | |||
f the container being proxied and keep track of the previous one. | // Return true if the content is of type 'pointer to' | |||
virtual void PopProxy() = 0; // Reset the address | ||||
of the container being proxied to the previous container | ||||
virtual Bool_t HasPointers() const = 0; // Return true if the content | virtual TClass *GetValueClass() = 0; | |||
is of type 'pointer to' | // Return a pointer to the TClass representing the content. | |||
virtual EDataType GetType() = 0; | ||||
// If the content is a simple numerical value, return its type (see TDat | ||||
aType) | ||||
virtual void *At(UInt_t idx) = 0; | ||||
// Return the address of the value at index 'idx' | ||||
virtual void Clear(const char *opt = "") = 0; | ||||
// Clear the container | ||||
virtual UInt_t Size() const = 0; | ||||
// Return the current size of the container | ||||
virtual TClass *GetValueClass() = 0; // Return a pointer to the TC | ||||
lass representing the content. | ||||
virtual EDataType GetType() = 0; // If the content is a simple | ||||
numerical value, return its type (see TDataType) | ||||
virtual void *At(UInt_t idx) = 0; // Return th | ||||
e address of the value at index 'idx' | ||||
virtual void Clear(const char *opt = "") = 0; // Clear the | ||||
container | ||||
virtual UInt_t Size() const = 0; // Return th | ||||
e current size of the container | ||||
virtual void* Allocate(UInt_t n, Bool_t forceDelete) = 0; | virtual void* Allocate(UInt_t n, Bool_t forceDelete) = 0; | |||
virtual void Commit(void*) = 0; | virtual void Commit(void*) = 0; | |||
char *operator[](UInt_t idx) const { return (char*)(const_ca st<TVirtualCollectionProxy*>(this))->At(idx); } | char *operator[](UInt_t idx) const { return (char*)(const_ca st<TVirtualCollectionProxy*>(this))->At(idx); } | |||
// MemberWise actions | ||||
virtual TStreamerInfoActions::TActionSequence *GetConversionReadMemberWi | ||||
seActions(TClass *oldClass, Int_t version) = 0; | ||||
virtual TStreamerInfoActions::TActionSequence *GetReadMemberWiseActions( | ||||
Int_t version) = 0; | ||||
virtual TStreamerInfoActions::TActionSequence *GetWriteMemberWiseActions | ||||
() = 0; | ||||
// Set of functions to iterate easily throught the collection | ||||
static const Int_t fgIteratorArenaSize = 16; // greater than sizeof(void | ||||
*) + sizeof(UInt_t) | ||||
typedef void (*CreateIterators_t)(void *collection, void **begin_arena, | ||||
void **end_arena); | ||||
virtual CreateIterators_t GetFunctionCreateIterators(Bool_t read = kTRUE | ||||
) = 0; | ||||
// begin_arena and end_arena should contain the location of a memory are | ||||
na of size fgIteratorSize. | ||||
// If the collection iterator are of that size or less, the iterators wi | ||||
ll be constructed in place in those location (new with placement) | ||||
// Otherwise the iterators will be allocated via a regular new and their | ||||
address returned by modifying the value of begin_arena and end_arena. | ||||
typedef void* (*CopyIterator_t)(void *dest, const void *source); | ||||
virtual CopyIterator_t GetFunctionCopyIterator(Bool_t read = kTRUE) = 0; | ||||
// Copy the iterator source, into dest. dest should contain the locati | ||||
on of a memory arena of size fgIteratorSize. | ||||
// If the collection iterator is of that size or less, the iterator will | ||||
be constructed in place in this location (new with placement) | ||||
// Otherwise the iterator will be allocated via a regular new and its ad | ||||
dress returned by modifying the value of dest. | ||||
typedef void* (*Next_t)(void *iter, const void *end); | ||||
virtual Next_t GetFunctionNext(Bool_t read = kTRUE) = 0; | ||||
// iter and end should be pointers to respectively an iterator to be inc | ||||
remented and the result of collection.end() | ||||
// If the iterator has not reached the end of the collection, 'Next' inc | ||||
rement the iterator 'iter' and return 0 if | ||||
// the iterator reached the end. | ||||
// If the end was not reached, 'Next' returns the address of the content | ||||
pointed to by the iterator before the | ||||
// incrementation ; if the collection contains pointers, 'Next' will ret | ||||
urn the value of the pointer. | ||||
typedef void (*DeleteIterator_t)(void *iter); | ||||
typedef void (*DeleteTwoIterators_t)(void *begin, void *end); | ||||
virtual DeleteIterator_t GetFunctionDeleteIterator(Bool_t read = kTRUE) | ||||
= 0; | ||||
virtual DeleteTwoIterators_t GetFunctionDeleteTwoIterators(Bool_t read = | ||||
kTRUE) = 0; | ||||
// If the size of the iterator is greater than fgIteratorArenaSize, call | ||||
delete on the addresses, | ||||
// Otherwise just call the iterator's destructor. | ||||
}; | }; | |||
#endif | #endif | |||
End of changes. 22 change blocks. | ||||
45 lines changed or deleted | 138 lines changed or added | |||
TVirtualPacketizer.h | TVirtualPacketizer.h | |||
---|---|---|---|---|
// @(#)root/proofplayer:$Id: TVirtualPacketizer.h 34748 2010-08-09 10:18:05 Z ganis $ | // @(#)root/proofplayer:$Id: TVirtualPacketizer.h 37396 2010-12-08 13:12:00 Z rdm $ | |||
// Author: Maarten Ballintijn 9/7/2002 | // Author: Maarten Ballintijn 9/7/2002 | |||
/************************************************************************* | /************************************************************************* | |||
* 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 119 | skipping to change at line 119 | |||
TVirtualPacketizer(TList *input, TProofProgressStatus *st = 0); | TVirtualPacketizer(TList *input, TProofProgressStatus *st = 0); | |||
TVirtualPacketizer(const TVirtualPacketizer &); // no implementation, w ill generate | TVirtualPacketizer(const TVirtualPacketizer &); // no implementation, w ill generate | |||
void operator=(const TVirtualPacketizer &); // error on accidental usage | void operator=(const TVirtualPacketizer &); // error on accidental usage | |||
TDSetElement *CreateNewPacket(TDSetElement* base, Long64_t first, Long6 4_t num); | TDSetElement *CreateNewPacket(TDSetElement* base, Long64_t first, Long6 4_t num); | |||
Long64_t GetEntries(Bool_t tree, TDSetElement *e); // Num of entri es or objects | Long64_t GetEntries(Bool_t tree, TDSetElement *e); // Num of entri es or objects | |||
virtual Bool_t HandleTimer(TTimer *timer); | virtual Bool_t HandleTimer(TTimer *timer); | |||
public: | public: | |||
enum EStatusBits { kIsInitializing = BIT(16), kIsDone = BIT(17) }; | enum EStatusBits { kIsInitializing = BIT(16), kIsDone = BIT(17), kIsTree = BIT(18) }; | |||
virtual ~TVirtualPacketizer(); | virtual ~TVirtualPacketizer(); | |||
Bool_t IsValid() const { return fValid; } | Bool_t IsValid() const { return fValid; } | |||
Long64_t GetEntriesProcessed() const { return (fProgressS tatus? fProgressStatus->GetEntries() : 0); } | Long64_t GetEntriesProcessed() const { return (fProgressS tatus? fProgressStatus->GetEntries() : 0); } | |||
virtual Int_t GetEstEntriesProcessed(Float_t, Long64_t &ent, L ong64_t &bytes, Long64_t &calls) | virtual Int_t GetEstEntriesProcessed(Float_t, Long64_t &ent, L ong64_t &bytes, Long64_t &calls) | |||
{ ent = GetEntriesProcessed(); bytes = GetBytesR ead(); calls = GetReadCalls(); return 0; } | { ent = GetEntriesProcessed(); bytes = GetBytesR ead(); calls = GetReadCalls(); return 0; } | |||
virtual Float_t GetCurrentRate(Bool_t &all) { all = kTRUE; retur n (fProgressStatus? fProgressStatus->GetCurrentRate() : 0.); } | virtual Float_t GetCurrentRate(Bool_t &all) { all = kTRUE; retur n (fProgressStatus? fProgressStatus->GetCurrentRate() : 0.); } | |||
Long64_t GetTotalEntries() const { return fTotalEntries; } | Long64_t GetTotalEntries() const { return fTotalEntries; } | |||
virtual TDSetElement *GetNextPacket(TSlave *sl, TMessage *r); | virtual TDSetElement *GetNextPacket(TSlave *sl, TMessage *r); | |||
virtual void SetInitTime(); | virtual void SetInitTime(); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
TVirtualProofPlayer.h | TVirtualProofPlayer.h | |||
---|---|---|---|---|
// @(#)root/proof:$Id: TVirtualProofPlayer.h 33638 2010-05-28 13:13:46Z rdm $ | // @(#)root/proof:$Id: TVirtualProofPlayer.h 36592 2010-11-11 10:43:17Z gan is $ | |||
// 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 48 | skipping to change at line 48 | |||
class TMessage; | class TMessage; | |||
class TProof; | class TProof; | |||
class TSocket; | class TSocket; | |||
class TVirtualPacketizer; | class TVirtualPacketizer; | |||
class TProofProgressStatus; | class TProofProgressStatus; | |||
class TProofProgressInfo; | class TProofProgressInfo; | |||
class TVirtualProofPlayer : public TObject, public TQObject { | class TVirtualProofPlayer : public TObject, public TQObject { | |||
public: | public: | |||
// TDSet status bits | ||||
enum EExitStatus { kFinished, kStopped, kAborted }; | enum EExitStatus { kFinished, kStopped, kAborted }; | |||
TVirtualProofPlayer() { } | TVirtualProofPlayer() { } | |||
virtual ~TVirtualProofPlayer() { } | virtual ~TVirtualProofPlayer() { } | |||
virtual Long64_t Process(TDSet *set, | virtual Long64_t Process(TDSet *set, | |||
const char *selector, Option_t *option = "", | const char *selector, Option_t *option = "", | |||
Long64_t nentries = -1, Long64_t firstentry = 0) = 0; | Long64_t nentries = -1, Long64_t firstentry = 0) = 0; | |||
virtual Long64_t Finalize(Bool_t force = kFALSE, Bool_t sync = kFALSE) = 0; | virtual Long64_t Finalize(Bool_t force = kFALSE, Bool_t sync = kFALSE) = 0; | |||
virtual Long64_t Finalize(TQueryResult *qr) = 0; | virtual Long64_t Finalize(TQueryResult *qr) = 0; | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
TXMLEngine.h | TXMLEngine.h | |||
---|---|---|---|---|
// @(#)root/xml:$Id: TXMLEngine.h 32188 2010-02-02 17:41:23Z pcanal $ | // @(#)root/xml:$Id: TXMLEngine.h 36517 2010-11-05 14:43:58Z pcanal $ | |||
// 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(const char *name, XMLNodePointer_t parent | XMLNodePointer_t AllocateNode(int namelen, XMLNodePointer_t parent); | |||
); | XMLAttrPointer_t AllocateAttr(int namelen, int valuelen, XMLNodePointer | |||
XMLAttrPointer_t AllocateAttr(const char *name, const char *value, XMLN | _t xmlnode); | |||
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); | |||
XMLDocPointer_t ParseStream(TXMLInputStream* input); | XMLDocPointer_t ParseStream(TXMLInputStream* input); | |||
Bool_t fSkipComments; //! if true, do not create comments nodes in document during parsing | Bool_t fSkipComments; //! if true, do not create comments nodes in document during parsing | |||
End of changes. 2 change blocks. | ||||
7 lines changed or deleted | 4 lines changed or added | |||
Token.h | Token.h | |||
---|---|---|---|---|
skipping to change at line 19 | skipping to change at line 19 | |||
************************************************************************ | ************************************************************************ | |||
* Copyright(c) 1995~1999 Masaharu Goto | * Copyright(c) 1995~1999 Masaharu Goto | |||
* | * | |||
* For the licensing terms see the file COPYING | * For the licensing terms see the file COPYING | |||
* | * | |||
************************************************************************/ | ************************************************************************/ | |||
#ifndef G__TOKENINFO_H | #ifndef G__TOKENINFO_H | |||
#define G__TOKENINFO_H | #define G__TOKENINFO_H | |||
#ifndef G__API_H | ||||
#include "Api.h" | #include "Api.h" | |||
#endif | ||||
namespace Cint { | namespace Cint { | |||
class G__ClassInfo; | class G__ClassInfo; | |||
class G__MethodInfo; | class G__MethodInfo; | |||
/********************************************************************* | /********************************************************************* | |||
* class G__TokenInfo | * class G__TokenInfo | |||
* | * | |||
* Outcome of discussion between Nenad Buncic of CERN. 15 Mar 1997 | * Outcome of discussion between Nenad Buncic of CERN. 15 Mar 1997 | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
Tools.h | Tools.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Tools.h 35742 2010-09-26 15:56:38Z stelzer $ | // @(#)root/tmva $Id: Tools.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 126 | skipping to change at line 126 | |||
// parser for TString phrase with items separated by a character | // parser for TString phrase with items separated by a character | |||
TList* ParseFormatLine( TString theString, const char * sep = ":" ); | TList* ParseFormatLine( TString theString, const char * sep = ":" ); | |||
// parse option string for ANN methods | // parse option string for ANN methods | |||
std::vector<Int_t>* ParseANNOptionString( TString theOptions, Int_t n var, | std::vector<Int_t>* ParseANNOptionString( TString theOptions, Int_t n var, | |||
std::vector<Int_t>* nodes ) ; | std::vector<Int_t>* nodes ) ; | |||
// returns the square-root of a symmetric matrix: symMat = sqrtMat*sq rtMat | // returns the square-root of a symmetric matrix: symMat = sqrtMat*sq rtMat | |||
TMatrixD* GetSQRootMatrix( TMatrixDSym* symMat ); | TMatrixD* GetSQRootMatrix( TMatrixDSym* symMat ); | |||
// returns the covariance matrix of of the different classes (and the | ||||
sum) | ||||
// given the event sample | ||||
std::vector<TMatrixDSym*>* CalcCovarianceMatrices( const std::vector< | ||||
Event*>& events, Int_t maxCls ); | ||||
// turns covariance into correlation matrix | // turns covariance into correlation matrix | |||
const TMatrixD* GetCorrelationMatrix( const TMatrixD* covMat ); | const TMatrixD* GetCorrelationMatrix( const TMatrixD* covMat ); | |||
// check spline quality by comparison with initial histogram | // check spline quality by comparison with initial histogram | |||
Bool_t CheckSplines( const TH1*, const TSpline* ); | Bool_t CheckSplines( const TH1*, const TSpline* ); | |||
// normalization of variable output | // normalization of variable output | |||
Double_t NormVariable( Double_t x, Double_t xmin, Double_t xmax ); | Double_t NormVariable( Double_t x, Double_t xmin, Double_t xmax ); | |||
// return separation of two histograms | // return separation of two histograms | |||
skipping to change at line 201 | skipping to change at line 205 | |||
enum EWelcomeMessage { kStandardWelcomeMsg = 1, | enum EWelcomeMessage { kStandardWelcomeMsg = 1, | |||
kIsometricWelcomeMsg, | kIsometricWelcomeMsg, | |||
kBlockWelcomeMsg, | kBlockWelcomeMsg, | |||
kLeanWelcomeMsg, | kLeanWelcomeMsg, | |||
kLogoWelcomeMsg, | kLogoWelcomeMsg, | |||
kSmall1WelcomeMsg, | kSmall1WelcomeMsg, | |||
kSmall2WelcomeMsg, | kSmall2WelcomeMsg, | |||
kOriginalWelcomeMsgColor, | kOriginalWelcomeMsgColor, | |||
kOriginalWelcomeMsgBW }; | kOriginalWelcomeMsgBW }; | |||
// print TMVA citation (to be called from, eg, .TMVAlogon) | ||||
enum ECitation { kPlainText = 1, | ||||
kBibTeX, | ||||
kLaTeX, | ||||
kHtmlLink }; | ||||
void TMVAWelcomeMessage(); | void TMVAWelcomeMessage(); | |||
void TMVAWelcomeMessage( MsgLogger& logger, EWelcomeMessage m = kStan dardWelcomeMsg ); | void TMVAWelcomeMessage( MsgLogger& logger, EWelcomeMessage m = kStan dardWelcomeMsg ); | |||
void TMVAVersionMessage( MsgLogger& logger ); | void TMVAVersionMessage( MsgLogger& logger ); | |||
void ROOTVersionMessage( MsgLogger& logger ); | void ROOTVersionMessage( MsgLogger& logger ); | |||
void TMVACitation( MsgLogger& logger, ECitation citType = kPlainText | ||||
); | ||||
// string tools | // string tools | |||
std::vector<TString> SplitString( const TString& theOpt, const char s eparator ) const; | std::vector<TString> SplitString( const TString& theOpt, const char s eparator ) const; | |||
// variables | // variables | |||
const TString fRegexp; | const TString fRegexp; | |||
mutable MsgLogger* fLogger; | mutable MsgLogger* fLogger; | |||
MsgLogger& Log() const { return *fLogger; } | MsgLogger& Log() const { return *fLogger; } | |||
static Tools* fgTools; | static Tools* fgTools; | |||
skipping to change at line 237 | skipping to change at line 249 | |||
template<typename T> | template<typename T> | |||
inline void ReadAttr ( void* node, const char* , T& value ); | inline void ReadAttr ( void* node, const char* , T& value ); | |||
void ReadAttr ( void* node, const char* attrname, TString& value ); | void ReadAttr ( void* node, const char* attrname, TString& value ); | |||
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 AddAttr ( void* node, const char* attrname, const cha r* value ); | void AddAttr ( void* node, const char* attrname, const cha r* value ); | |||
void* AddChild ( void* parent, const char* childname, const char* content = 0, bool isRootNode = false ); | void* AddChild ( void* parent, const char* childname, const char* content = 0, bool isRootNode = false ); | |||
Bool_t AddRawLine ( void* node, const char * raw ); | Bool_t AddRawLine ( void* node, const char * raw ); | |||
Bool_t AddComment ( void* node, const char* comment ); | Bool_t AddComment ( void* node, const char* comment ); | |||
void* GetParent( void* child); | ||||
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 ); | |||
const char* GetName ( void* node ); | const char* GetName ( void* node ); | |||
TXMLEngine& xmlengine() { return *fXMLEngine; } | TXMLEngine& xmlengine() { return *fXMLEngine; } | |||
TXMLEngine* fXMLEngine; | TXMLEngine* fXMLEngine; | |||
private: | private: | |||
// utilities for correlation ratio | // utilities for correlation ratio | |||
Double_t GetYMean_binX( const TH2& , Int_t bin_x ); | Double_t GetYMean_binX( const TH2& , Int_t bin_x ); | |||
}; // Common tools | }; // Common tools | |||
Tools& gTools(); // global accessor | Tools& gTools(); // global accessor | |||
} // namespace TMVA | } // namespace TMVA | |||
//_______________________________________________________________________ | //_______________________________________________________________________ | |||
// coverity[ -tainted_data_argument : arg-2 ] | template<typename T> void TMVA::Tools::ReadAttr( void* node, const char* at | |||
template<typename T> | trname, T& value ) | |||
void TMVA::Tools::ReadAttr( void* node, const char* attrname, T& value ) | ||||
{ | { | |||
// read attribute from xml | // read attribute from xml | |||
TString val; | TString val; | |||
ReadAttr( node, attrname, val ); | ReadAttr( node, attrname, val ); | |||
std::stringstream s(val.Data()); | std::stringstream s(val.Data()); | |||
// coverity[tainted_data_argument] | ||||
s >> value; | s >> value; | |||
} | } | |||
//_______________________________________________________________________ | //_______________________________________________________________________ | |||
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 ); | |||
End of changes. 7 change blocks. | ||||
4 lines changed or deleted | 20 lines changed or added | |||
ToyMCSampler.h | ToyMCSampler.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: ToyMCSampler.h 34109 2010-06-24 15:00:16Z moneta $ | // @(#)root/roostats:$Id: ToyMCSampler.h 37084 2010-11-29 21:37:13Z moneta $ | |||
// Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | // Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | |||
// Additions and modifications by Mario Pelliccioni | // Additions and modifications by Mario Pelliccioni | |||
/************************************************************************* | /************************************************************************* | |||
* 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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
skipping to change at line 23 | skipping to change at line 23 | |||
#define ROOSTATS_ToyMCSampler | #define ROOSTATS_ToyMCSampler | |||
//_________________________________________________ | //_________________________________________________ | |||
/* | /* | |||
BEGIN_HTML | BEGIN_HTML | |||
<p> | <p> | |||
ToyMCSampler is an implementation of the TestStatSampler interface. | ToyMCSampler is an implementation of the TestStatSampler interface. | |||
It generates Toy Monte Carlo for a given parameter point and evaluates a | It generates Toy Monte Carlo for a given parameter point and evaluates a | |||
TestStatistic. | TestStatistic. | |||
</p> | </p> | |||
<p> | ||||
For parallel runs, ToyMCSampler can be given an instance of ProofConfig | ||||
and then run in parallel using proof or proof-lite. Internally, it uses | ||||
ToyMCStudy with the RooStudyManager. | ||||
</p> | ||||
END_HTML | END_HTML | |||
*/ | */ | |||
// | // | |||
#ifndef ROOT_Rtypes | #ifndef ROOT_Rtypes | |||
#include "Rtypes.h" | #include "Rtypes.h" | |||
#endif | #endif | |||
#include <vector> | #include <vector> | |||
#include <sstream> | #include <sstream> | |||
#include "RooStats/TestStatSampler.h" | #include "RooStats/TestStatSampler.h" | |||
#include "RooStats/SamplingDistribution.h" | #include "RooStats/SamplingDistribution.h" | |||
#include "RooStats/TestStatistic.h" | #include "RooStats/TestStatistic.h" | |||
#include "RooStats/ModelConfig.h" | #include "RooStats/ModelConfig.h" | |||
#include "RooStats/ProofConfig.h" | ||||
#include "RooWorkspace.h" | #include "RooWorkspace.h" | |||
#include "RooMsgService.h" | #include "RooMsgService.h" | |||
#include "RooAbsPdf.h" | #include "RooAbsPdf.h" | |||
#include "RooRealVar.h" | ||||
#include "RooDataSet.h" | #include "RooDataSet.h" | |||
namespace RooStats { | namespace RooStats { | |||
class ToyMCSampler: public TestStatSampler { | class ToyMCSampler: public TestStatSampler { | |||
public: | public: | |||
ToyMCSampler() : | ||||
fTestStat(NULL), fSamplingDistName("temp"), fNToys(1) | ||||
{ | ||||
// Proof constructor. Do not use. | ||||
fPdf = NULL; | ||||
fPriorNuisance = NULL; | ||||
fNullPOI = NULL; | ||||
fNuisancePars = NULL; | ||||
fObservables = NULL; | ||||
fGlobalObservables = NULL; | ||||
fSize = 0.05; | ||||
fNEvents = 0; | ||||
fGenerateBinned = kFALSE; | ||||
fExpectedNuisancePar = kFALSE; | ||||
fToysInTails = 0.0; | ||||
fMaxToys = RooNumber::infinity(); | ||||
fAdaptiveLowLimit = -RooNumber::infinity(); | ||||
fAdaptiveHighLimit = RooNumber::infinity(); | ||||
fImportanceDensity = NULL; | ||||
fImportanceSnapshot = NULL; | ||||
fProtoData = NULL; | ||||
fProofConfig = NULL; | ||||
} | ||||
ToyMCSampler(TestStatistic &ts, Int_t ntoys) : | ToyMCSampler(TestStatistic &ts, Int_t ntoys) : | |||
fTestStat(&ts), fSamplingDistName("temp"), fNToys(ntoys) | fTestStat(&ts), fSamplingDistName(ts.GetVarName()), fNToys(ntoys) | |||
{ | { | |||
fPdf = NULL; | fPdf = NULL; | |||
fPriorNuisance = NULL; | fPriorNuisance = NULL; | |||
fNullPOI = NULL; | fNullPOI = NULL; | |||
fNuisancePars = NULL; | fNuisancePars = NULL; | |||
fObservables = NULL; | fObservables = NULL; | |||
fGlobalObservables = NULL; | fGlobalObservables = NULL; | |||
fSize = 0.05; | fSize = 0.05; | |||
fNEvents = 0; | fNEvents = 0; | |||
fGenerateBinned = kFALSE; | fGenerateBinned = kFALSE; | |||
fExpectedNuisancePar = kFALSE; | fExpectedNuisancePar = kFALSE; | |||
fToysInTails = 0.0; | ||||
fMaxToys = RooNumber::infinity(); | ||||
fAdaptiveLowLimit = -RooNumber::infinity(); | ||||
fAdaptiveHighLimit = RooNumber::infinity(); | ||||
fImportanceDensity = NULL; | ||||
fImportanceSnapshot = NULL; | ||||
fProtoData = NULL; | ||||
fProofConfig = NULL; | ||||
} | } | |||
virtual ~ToyMCSampler() { | virtual ~ToyMCSampler() { | |||
} | } | |||
// main interface | // main interface | |||
virtual SamplingDistribution* GetSamplingDistribution(RooArgSet& para mPoint); | virtual SamplingDistribution* GetSamplingDistribution(RooArgSet& para mPoint); | |||
virtual SamplingDistribution* GetSamplingDistributionSingleWorker(Roo | ||||
ArgSet& paramPoint); | ||||
// generates toy data | // generates toy data | |||
virtual RooAbsData* GenerateToyData(RooArgSet& /*paramPoint*/) const; | virtual RooAbsData* GenerateToyData(RooArgSet& /*paramPoint*/) const; | |||
// Extended interface to append to sampling distribution more samples | // Extended interface to append to sampling distribution more samples | |||
virtual SamplingDistribution* AppendSamplingDistribution(RooArgSet& a llParameters, | virtual SamplingDistribution* AppendSamplingDistribution(RooArgSet& a llParameters, | |||
SamplingDistr ibution* last, | SamplingDistr ibution* last, | |||
Int_t additio nalMC) { | Int_t additio nalMC) { | |||
Int_t tmp = fNToys; | Int_t tmp = fNToys; | |||
fNToys = additionalMC; | fNToys = additionalMC; | |||
skipping to change at line 107 | skipping to change at line 156 | |||
} | } | |||
virtual TestStatistic* GetTestStatistic() const { return fTestStat; } | virtual TestStatistic* GetTestStatistic() const { return fTestStat; } | |||
virtual Double_t ConfidenceLevel() const { return 1. - fSize; } | virtual Double_t ConfidenceLevel() const { return 1. - fSize; } | |||
virtual void Initialize( | virtual void Initialize( | |||
RooAbsArg& /*testStatistic*/, | RooAbsArg& /*testStatistic*/, | |||
RooArgSet& /*paramsOfInterest*/, | RooArgSet& /*paramsOfInterest*/, | |||
RooArgSet& /*nuisanceParameters*/ | RooArgSet& /*nuisanceParameters*/ | |||
) {} | ) {} | |||
virtual Int_t GetNToys(void) { return fNToys; } | ||||
virtual void SetNToys(const Int_t ntoy) { fNToys = ntoy; } | virtual void SetNToys(const Int_t ntoy) { fNToys = ntoy; } | |||
virtual void SetNEventsPerToy(const Int_t nevents) { | virtual void SetNEventsPerToy(const Int_t nevents) { | |||
// Forces n events even for extended PDFs. Set NEvents=0 to | // Forces n events even for extended PDFs. Set NEvents=0 to | |||
// use the Poisson distributed events from the extended PDF. | // use the Poisson distributed events from the extended PDF. | |||
fNEvents = nevents; | fNEvents = nevents; | |||
} | } | |||
// specify the values of parameters used when evaluating test statist ic | // specify the values of parameters used when evaluating test statist ic | |||
virtual void SetParametersForTestStat(const RooArgSet& nullpoi) { fNu llPOI = (RooArgSet*)nullpoi.snapshot(); } | virtual void SetParametersForTestStat(const RooArgSet& nullpoi) { fNu llPOI = (RooArgSet*)nullpoi.snapshot(); } | |||
// Set the Pdf, add to the the workspace if not already there | // Set the Pdf, add to the the workspace if not already there | |||
skipping to change at line 135 | skipping to change at line 185 | |||
virtual void SetGlobalObservables(const RooArgSet& o) { fGlobalObserv ables = &o; } | virtual void SetGlobalObservables(const RooArgSet& o) { fGlobalObserv ables = &o; } | |||
// 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) { fSize = size; } | virtual void SetTestSize(Double_t size) { fSize = size; } | |||
// 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) { fSize = 1. - cl; } | virtual void SetConfidenceLevel(Double_t cl) { fSize = 1. - cl; } | |||
// Set the TestStatistic (want the argument to be a function of the d ata & parameter points | // Set the TestStatistic (want the argument to be a function of the d ata & parameter points | |||
virtual void SetTestStatistic(TestStatistic *testStatistic) { fTestSt at = testStatistic; } | virtual void SetTestStatistic(TestStatistic *testStatistic) { fTestSt at = testStatistic; } | |||
// SetModel does not load the snapshot. Use LoadSnapshot if necessary | virtual void SetExpectedNuisancePar(Bool_t i = kTRUE) { fExpectedNuis | |||
. | ancePar = i; } | |||
virtual void SetExpectedNuisancePar(Bool_t i) { fExpectedNuisancePar | virtual void SetAsimovNuisancePar(Bool_t i = kTRUE) { fExpectedNuisan | |||
= i; cout << "WILL NOT WORK YET" << endl; } // TODO | cePar = i; } | |||
virtual void SetAsimovNuisancePar(Bool_t i) { fExpectedNuisancePar = | ||||
i; cout << "WILL NOT WORK YET" << endl; } // TODO | ||||
// Checks for sufficient information to do a GetSamplingDistribution( ...). | // Checks for sufficient information to do a GetSamplingDistribution( ...). | |||
Bool_t CheckConfig(void); | Bool_t CheckConfig(void); | |||
// control to use bin data generation | // control to use bin data generation | |||
void SetGenerateBinned(bool binned = true) { fGenerateBinned = binned ; } | void SetGenerateBinned(bool binned = true) { fGenerateBinned = binned ; } | |||
// Set the name of the sampling distribution used for plotting | // Set the name of the sampling distribution used for plotting | |||
void SetSamplingDistName(const char* name) { if(name) fSamplingDistNa me = name; } | void SetSamplingDistName(const char* name) { if(name) fSamplingDistNa me = name; } | |||
string GetSamplingDistName(void) { return fSamplingDistName; } | ||||
// This option forces a maximum number of total toys. | ||||
void SetMaxToys(Double_t t) { fMaxToys = t; } | ||||
void SetToysLeftTail(Double_t toys, Double_t threshold) { | ||||
fToysInTails = toys; | ||||
fAdaptiveLowLimit = threshold; | ||||
fAdaptiveHighLimit = RooNumber::infinity(); | ||||
} | ||||
void SetToysRightTail(Double_t toys, Double_t threshold) { | ||||
fToysInTails = toys; | ||||
fAdaptiveHighLimit = threshold; | ||||
fAdaptiveLowLimit = -RooNumber::infinity(); | ||||
} | ||||
void SetToysBothTails(Double_t toys, Double_t low_threshold, Double_t | ||||
high_threshold) { | ||||
fToysInTails = toys; | ||||
fAdaptiveHighLimit = high_threshold; | ||||
fAdaptiveLowLimit = low_threshold; | ||||
} | ||||
// for importance sampling, specifies the pdf to sample from | ||||
void SetImportanceDensity(RooAbsPdf *p) { fImportanceDensity = p; } | ||||
// for importance sampling, a snapshot of the parameters used in impo | ||||
rtance density | ||||
void SetImportanceSnapshot(const RooArgSet &s) { fImportanceSnapshot | ||||
= &s; } | ||||
// calling with argument or NULL deactivates proof | ||||
void SetProofConfig(ProofConfig *pc = NULL) { fProofConfig = pc; } | ||||
void SetProtoData(const RooDataSet* d) { fProtoData = d; } | ||||
protected: | protected: | |||
// helper for GenerateToyData | ||||
RooAbsData* Generate(RooAbsPdf &pdf, RooArgSet &observables, const Ro | ||||
oDataSet *protoData=NULL, int forceEvents=0) const; | ||||
TestStatistic *fTestStat; // test statistic that is being sampled | TestStatistic *fTestStat; // test statistic that is being sampled | |||
RooAbsPdf *fPdf; // model | RooAbsPdf *fPdf; // model | |||
string fSamplingDistName; // name of the model | string fSamplingDistName; // name of the model | |||
RooAbsPdf *fPriorNuisance; // prior pdf for nuisance parameters | RooAbsPdf *fPriorNuisance; // prior pdf for nuisance parameters | |||
RooArgSet *fNullPOI; // parameters of interest | RooArgSet *fNullPOI; // parameters of interest | |||
const RooArgSet *fNuisancePars; | const RooArgSet *fNuisancePars; | |||
const RooArgSet *fObservables; | const RooArgSet *fObservables; | |||
const RooArgSet *fGlobalObservables; | const RooArgSet *fGlobalObservables; | |||
Int_t fNToys; // number of toys to generate | Int_t fNToys; // number of toys to generate | |||
Int_t fNEvents; // number of events per toy (may be ignored depending on settings) | Int_t fNEvents; // number of events per toy (may be ignored depending on settings) | |||
Double_t fSize; | Double_t fSize; | |||
Bool_t fExpectedNuisancePar; // whether to use expectation values for nuisance parameters (ie Asimov data set) | Bool_t fExpectedNuisancePar; // whether to use expectation values for nuisance parameters (ie Asimov data set) | |||
Bool_t fGenerateBinned; | Bool_t fGenerateBinned; | |||
// minimum no of toys in tails for adaptive sampling | ||||
// (taking weights into account, therefore double) | ||||
// Default: 0.0 which means no adaptive sampling | ||||
Double_t fToysInTails; | ||||
// maximum no of toys | ||||
// (taking weights into account, therefore double) | ||||
Double_t fMaxToys; | ||||
// tails | ||||
Double_t fAdaptiveLowLimit; | ||||
Double_t fAdaptiveHighLimit; | ||||
RooAbsPdf *fImportanceDensity; // in dev | ||||
const RooArgSet *fImportanceSnapshot; // in dev | ||||
const RooDataSet *fProtoData; // in dev | ||||
ProofConfig *fProofConfig; //! | ||||
protected: | protected: | |||
ClassDef(ToyMCSampler,1) // A simple implementation of the TestStatSampl er interface | ClassDef(ToyMCSampler,1) // A simple implementation of the TestStatSampl er interface | |||
}; | }; | |||
} | } | |||
#endif | #endif | |||
End of changes. 13 change blocks. | ||||
8 lines changed or deleted | 112 lines changed or added | |||
ToyMCSamplerOld.h | ToyMCSamplerOld.h | |||
---|---|---|---|---|
// @(#)root/roostats:$Id: ToyMCSamplerOld.h 35821 2010-09-28 08:18:13Z mone ta $ | // @(#)root/roostats:$Id: ToyMCSamplerOld.h 37403 2010-12-08 15:59:22Z mone ta $ | |||
// Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | // Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke | |||
// Additions and modifications by Mario Pelliccioni | // Additions and modifications by Mario Pelliccioni | |||
/************************************************************************* | /************************************************************************* | |||
* 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. * | |||
*************************************************************************/ | *************************************************************************/ | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
Type.h | Type.h | |||
---|---|---|---|---|
skipping to change at line 19 | skipping to change at line 19 | |||
************************************************************************ | ************************************************************************ | |||
* Copyright(c) 1995~2003 Masaharu Goto | * Copyright(c) 1995~2003 Masaharu Goto | |||
* | * | |||
* For the licensing terms see the file COPYING | * For the licensing terms see the file COPYING | |||
* | * | |||
************************************************************************/ | ************************************************************************/ | |||
#ifndef G__TYPEINFOX_H | #ifndef G__TYPEINFOX_H | |||
#define G__TYPEINFOX_H | #define G__TYPEINFOX_H | |||
#ifndef G__API_H | ||||
#include "Api.h" | #include "Api.h" | |||
#endif | ||||
namespace Cint { | namespace Cint { | |||
/********************************************************************* | /********************************************************************* | |||
* class G__TypeInfo | * class G__TypeInfo | |||
* | * | |||
*********************************************************************/ | *********************************************************************/ | |||
class | class | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
G__EXPORT | G__EXPORT | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
Typedf.h | Typedf.h | |||
---|---|---|---|---|
skipping to change at line 19 | skipping to change at line 19 | |||
************************************************************************ | ************************************************************************ | |||
* Copyright(c) 1995~1999 Masaharu Goto | * Copyright(c) 1995~1999 Masaharu Goto | |||
* | * | |||
* For the licensing terms see the file COPYING | * For the licensing terms see the file COPYING | |||
* | * | |||
************************************************************************/ | ************************************************************************/ | |||
#ifndef G__TYPEDEFINFO_H | #ifndef G__TYPEDEFINFO_H | |||
#define G__TYPEDEFINFO_H | #define G__TYPEDEFINFO_H | |||
#ifndef G__API_H | ||||
#include "Api.h" | #include "Api.h" | |||
#endif | ||||
namespace Cint { | namespace Cint { | |||
/********************************************************************* | /********************************************************************* | |||
* class G__TypedefInfo | * class G__TypedefInfo | |||
* | * | |||
* | * | |||
*********************************************************************/ | *********************************************************************/ | |||
class | class | |||
#ifndef __CINT__ | #ifndef __CINT__ | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
Types.h | Types.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Types.h 35738 2010-09-26 09:17:57Z stelzer $ | // @(#)root/tmva $Id: Types.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 106 | skipping to change at line 106 | |||
kMaxMethod | kMaxMethod | |||
}; | }; | |||
// available variable transformations | // available variable transformations | |||
enum EVariableTransform { | enum EVariableTransform { | |||
kIdentity = 0, | kIdentity = 0, | |||
kDecorrelated, | kDecorrelated, | |||
kNormalized, | kNormalized, | |||
kPCA, | kPCA, | |||
kGaussDecorr, | kGaussDecorr, | |||
kGauss, | ||||
kUniform, | ||||
kMaxVariableTransform | kMaxVariableTransform | |||
}; | }; | |||
// type of analysis | // type of analysis | |||
enum EAnalysisType { | enum EAnalysisType { | |||
kClassification = 0, | kClassification = 0, | |||
kRegression, | kRegression, | |||
kMulticlass, | kMulticlass, | |||
kNoAnalysisType, | kNoAnalysisType, | |||
kMaxAnalysisType | kMaxAnalysisType | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
VariableDecorrTransform.h | VariableDecorrTransform.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: VariableDecorrTransform.h 31574 2009-12-05 18:23:21Z stelzer $ | // @(#)root/tmva $Id: VariableDecorrTransform.h 37399 2010-12-08 15:22:07Z evt $ | |||
// 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 87 | skipping to change at line 87 | |||
// provides string vector giving explicit transformation | // provides string vector giving explicit transformation | |||
std::vector<TString>* GetTransformationStrings( Int_t cls ) const; | std::vector<TString>* GetTransformationStrings( Int_t cls ) const; | |||
private: | private: | |||
// mutable Event* fTransformedEvent; //! local event copy | // mutable Event* fTransformedEvent; //! local event copy | |||
std::vector<TMatrixD*> fDecorrMatrices; //! Decorrelation matrix [class0/class1/.../all classes] | std::vector<TMatrixD*> fDecorrMatrices; //! Decorrelation matrix [class0/class1/.../all classes] | |||
void CalcSQRMats( const std::vector<Event*>&, Int_t maxCls ); | void CalcSQRMats( const std::vector<Event*>&, Int_t maxCls ); | |||
std::vector<TMatrixDSym*>* CalcCovarianceMatrices( const std::vector< Event*>& events, Int_t maxCls ); | ||||
ClassDef(VariableDecorrTransform,0) // Variable transformation: decor relation | ClassDef(VariableDecorrTransform,0) // Variable transformation: decor relation | |||
}; | }; | |||
} // namespace TMVA | } // namespace TMVA | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 1 lines changed or added | |||
VariableGaussTransform.h | VariableGaussTransform.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: VariableGaussTransform.h 31458 2009-11-30 13:58:20Z s telzer $ | // @(#)root/tmva $Id: VariableGaussTransform.h 37399 2010-12-08 15:22:07Z e vt $ | |||
// 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 89 | skipping to change at line 89 | |||
private: | private: | |||
Float_t fF; // the float | Float_t fF; // the float | |||
Float_t fW; // the event weight | Float_t fW; // the event weight | |||
}; | }; | |||
class VariableGaussTransform : public VariableTransformBase { | class VariableGaussTransform : public VariableTransformBase { | |||
public: | public: | |||
VariableGaussTransform( DataSetInfo& dsi ); | VariableGaussTransform( DataSetInfo& dsi, TString strcor="" ); | |||
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&, const TString& ); | void ReadTransformationFromStream( std::istream&, const TString& ); | |||
skipping to change at line 111 | skipping to change at line 111 | |||
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 fFlatNotGauss; | |||
Int_t fPdfMinSmooth; | Int_t fPdfMinSmooth; | |||
Int_t fPdfMaxSmooth; | Int_t fPdfMaxSmooth; | |||
// 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*>& ); | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
Version.h | Version.h | |||
---|---|---|---|---|
// @(#)root/tmva $Id: Version.h 33928 2010-06-15 16:19:31Z stelzer $ | // @(#)root/tmva $Id: Version.h 37512 2010-12-10 14:19:02Z stelzer $ | |||
// Author: Andreas Hoecker, Joerg Stelzer, Fredrik Tegenfeldt, Helge Voss | // Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Jan Therhaag, | |||
Eckhard von Toerne, 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 * | |||
* by python script development/tmvaTag.py * | * by python script development/tmvaTag.py * | |||
* * | * * | |||
* Authors (alphabetical): * | * Authors (alphabetical): * | |||
* Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland | * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerlan | |||
* | d * | |||
* Joerg Stelzer <Joerg.Stelzer@cern.ch> - CERN, Switzerland | * Peter Speckmayer <Peter.Speckmayer@cern.ch> - CERN, Switzerlan | |||
* | d * | |||
* Fredrik Tegenfeldt <Fredrik.Tegenfeldt@cern.ch> - Iowa State U., US | * Joerg Stelzer <Joerg.Stelzer@cern.ch> - CERN, Switzerlan | |||
A * | d * | |||
* Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, | * Jan Therhaag <therhaag@physik.uni-bonn.de> - U of Bonn, Germa | |||
GER * | ny * | |||
* Eckhard v. Toerne <evt@uni-bonn.de> - U of Bonn, Germa | ||||
ny * | ||||
* Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg | ||||
, GER * | ||||
* * | * * | |||
* Copyright (c) 2007: | * Copyright (c) 2005-2010, | |||
* | * | |||
* CERN, Switzerland | * Regents of CERN (Switzerland), | |||
* | * | |||
* Iowa State U., USA | * University of Bonn (Germany), | |||
* | * | |||
* MPI-K Heidelberg, Germany | * University of Heidelberg (Germany), | |||
* | * | |||
* University of Victoria (Canada) | ||||
* | ||||
* * | * * | |||
* 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://mva.sourceforge.net/license.txt) * | * (http://tmva.sourceforge.net/LICENSE) * | |||
************************************************************************** ********/ | ************************************************************************** ********/ | |||
#ifndef ROOT_TMVA_Version | #ifndef ROOT_TMVA_Version | |||
#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.7" | #define TMVA_RELEASE "4.1.0" | |||
#define TMVA_RELEASE_DATE "Jun 14, 2010" | #define TMVA_RELEASE_DATE "Dec 10, 2010" | |||
#define TMVA_RELEASE_TIME "17:20:00" | #define TMVA_RELEASE_TIME "15:15:00" | |||
#define TMVA_VERSION_CODE 262151 | #define TMVA_VERSION_CODE 262400 | |||
#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. 5 change blocks. | ||||
23 lines changed or deleted | 30 lines changed or added | |||
VirtualIntegrator.h | VirtualIntegrator.h | |||
---|---|---|---|---|
skipping to change at line 24 | skipping to change at line 24 | |||
#define ROOT_Math_VirtualIntegrator | #define ROOT_Math_VirtualIntegrator | |||
#ifndef ROOT_Math_IFunctionfwd | #ifndef ROOT_Math_IFunctionfwd | |||
#include "Math/IFunctionfwd.h" | #include "Math/IFunctionfwd.h" | |||
#endif | #endif | |||
#ifndef ROOT_Math_Error | #ifndef ROOT_Math_Error | |||
#include "Math/Error.h" | #include "Math/Error.h" | |||
#endif | #endif | |||
#ifndef ROOT_Math_IntegratorOptions | ||||
#include "Math/IntegratorOptions.h" | ||||
#endif | ||||
#include <vector> | #include <vector> | |||
namespace ROOT { | namespace ROOT { | |||
namespace Math { | namespace Math { | |||
//___________________________________________________________________ | //___________________________________________________________________ | |||
/** | /** | |||
Abstract class for all numerical integration methods (1D and multi-dim) | Abstract class for all numerical integration methods (1D and multi-dim) | |||
Interface defining the common methods for the | Interface defining the common methods for the | |||
numerical integrator classes of one and multi dimensions | numerical integrator classes of one and multi dimensions | |||
skipping to change at line 79 | skipping to change at line 83 | |||
/** | /** | |||
return the estimate of the absolute Error of the last Integral calcul ation | return the estimate of the absolute Error of the last Integral calcul ation | |||
*/ | */ | |||
virtual double Error() const = 0; | virtual double Error() const = 0; | |||
/** | /** | |||
return the Error Status of the last Integral calculation | return the Error Status of the last Integral calculation | |||
*/ | */ | |||
virtual int Status() const = 0; | virtual int Status() const = 0; | |||
/** | ||||
return number of function evaluations in calculating the integral | ||||
(if integrator do not implement this function returns -1) | ||||
*/ | ||||
virtual int NEval() const { return -1; } | ||||
}; | }; | |||
//___________________________________________________________________ | //___________________________________________________________________ | |||
/** | /** | |||
Interface (abstract) class for 1D numerical integration | Interface (abstract) class for 1D numerical integration | |||
It must be implemented by the concrate Integrator classes like | It must be implemented by the concrate Integrator classes like | |||
ROOT::Math::GSLIntegrator. | ROOT::Math::GSLIntegrator. | |||
Plug-in's exist in ROOT to be able to instantiate the derived classes vi a the | Plug-in's exist in ROOT to be able to instantiate the derived classes vi a the | |||
plug-in manager. | plug-in manager. | |||
Users should not use directly this class but the concrete classes ROOT:: Math::IntegratorOneDim. | Users should not use directly this class but the concrete classes ROOT:: Math::IntegratorOneDim. | |||
skipping to change at line 121 | skipping to change at line 131 | |||
/// evaluate integral over the (-inf, b) | /// evaluate integral over the (-inf, b) | |||
virtual double IntegralLow(double b) = 0; | virtual double IntegralLow(double b) = 0; | |||
/// evaluate integral with singular points | /// evaluate integral with singular points | |||
virtual double Integral( const std::vector<double> & pts) = 0; | virtual double Integral( const std::vector<double> & pts) = 0; | |||
/// evaluate Cauchy integral | /// evaluate Cauchy integral | |||
virtual double IntegralCauchy(double a, double b, double c) = 0; | virtual double IntegralCauchy(double a, double b, double c) = 0; | |||
/// get the option used for the integration | ||||
/// must be implemented by derived class | ||||
virtual ROOT::Math::IntegratorOneDimOptions Options() const = 0; | ||||
// return type of integrator | ||||
virtual ROOT::Math::IntegrationOneDim::Type Type() const { | ||||
return Options().IntegratorType(); | ||||
} | ||||
/// set the options | ||||
/// (should be re-implemented by derived classes -if more options than t | ||||
olerance exist | ||||
virtual void SetOptions(const ROOT::Math::IntegratorOneDimOptions & opt) | ||||
{ | ||||
SetRelTolerance(opt.RelTolerance() ); | ||||
SetAbsTolerance(opt.AbsTolerance() ); | ||||
} | ||||
}; | }; | |||
//___________________________________________________________________ | //___________________________________________________________________ | |||
/** | /** | |||
Interface (abstract) class for multi numerical integration | Interface (abstract) class for multi numerical integration | |||
It must be implemented by the concrete Integrator classes like | It must be implemented by the concrete Integrator classes like | |||
ROOT::Math::GSLMCIntegrator. | ROOT::Math::GSLMCIntegrator. | |||
Plug-in's exist in ROOT to be able to instantiate the derived classes vi a the | Plug-in's exist in ROOT to be able to instantiate the derived classes vi a the | |||
plug-in manager. | plug-in manager. | |||
Users should not use directly this class but the concrete classes ROOT:: Math::IntegratorMultiDim. | Users should not use directly this class but the concrete classes ROOT:: Math::IntegratorMultiDim. | |||
skipping to change at line 148 | skipping to change at line 174 | |||
/// destructor: no operation | /// destructor: no operation | |||
virtual ~VirtualIntegratorMultiDim() {} | virtual ~VirtualIntegratorMultiDim() {} | |||
/// evaluate multi-dim integral | /// evaluate multi-dim integral | |||
virtual double Integral(const double*, const double*) = 0; | virtual double Integral(const double*, const double*) = 0; | |||
/// setting a multi-dim function | /// setting a multi-dim function | |||
virtual void SetFunction(const IMultiGenFunction &) = 0; | virtual void SetFunction(const IMultiGenFunction &) = 0; | |||
/// get the option used for the integration | ||||
/// impelement by derived class otherwise return default ones | ||||
virtual ROOT::Math::IntegratorMultiDimOptions Options() const = 0; | ||||
// return type of integrator | ||||
virtual ROOT::Math::IntegrationMultiDim::Type Type() const { | ||||
return Options().IntegratorType(); | ||||
} | ||||
/// set the options (if needed must be re-implemented by derived classes | ||||
) | ||||
virtual void SetOptions(const ROOT::Math::IntegratorMultiDimOptions & op | ||||
t) { | ||||
SetRelTolerance(opt.RelTolerance() ); | ||||
SetAbsTolerance(opt.AbsTolerance() ); | ||||
} | ||||
}; | }; | |||
}//namespace Math | }//namespace Math | |||
}//namespace ROOT | }//namespace ROOT | |||
#endif /* ROOT_Math_VirtualIntegrator */ | #endif /* ROOT_Math_VirtualIntegrator */ | |||
End of changes. 4 change blocks. | ||||
0 lines changed or deleted | 45 lines changed or added | |||
WrappedFunction.h | WrappedFunction.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: WrappedFunction.h 33180 2010-04-25 10:14:07Z mone ta $ | // @(#)root/mathcore:$Id: WrappedFunction.h 36369 2010-10-19 16:14:31Z mone ta $ | |||
// Authors: L. Moneta, A. Zsenei 08/2005 | // Authors: 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 37 | skipping to change at line 37 | |||
#ifndef ROOT_Math_IFunction | #ifndef ROOT_Math_IFunction | |||
#include "IFunction.h" | #include "IFunction.h" | |||
#endif | #endif | |||
namespace ROOT { | namespace ROOT { | |||
namespace Math { | namespace Math { | |||
struct NullTypeFunc1D {}; | struct NullTypeFunc1D {}; | |||
typedef double( * FreeFunctionPtr ) (double ); | typedef double(*FreeFunctionPtr)(double); | |||
typedef double( * FreeMultiFunctionPtr ) (const double *); | typedef double(*FreeMultiFunctionPtr)(const double*); | |||
/** | /** | |||
Template class to wrap any C++ callable object which takes one argument | Template class to wrap any C++ callable object which takes one argument | |||
i.e. implementing operator() (double x) in a One-dimensional function in terface. | i.e. implementing operator() (double x) in a One-dimensional function in terface. | |||
It provides a ROOT::Math::IGenFunction-like signature | It provides a ROOT::Math::IGenFunction-like signature | |||
Note: If you want to wrap just the reference (to avoid copying) you need to use | Note: If you want to wrap just the reference (to avoid copying) you need to use | |||
Func& or const Func & as template parameter. The former should be used when the | Func& or const Func & as template parameter. The former should be used when the | |||
operator() is not a const method of Func | operator() is not a const method of Func | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
WrappedParamFunction.h | WrappedParamFunction.h | |||
---|---|---|---|---|
// @(#)root/mathcore:$Id: WrappedParamFunction.h 24482 2008-06-23 15:33:08Z moneta $ | // @(#)root/mathcore:$Id: WrappedParamFunction.h 36185 2010-10-08 10:12:18Z rdm $ | |||
// Author: L. Moneta Thu Nov 23 10:38:32 2006 | // Author: L. Moneta Thu Nov 23 10:38:32 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 WrappedParamFunction | // Header file for class WrappedParamFunction | |||
skipping to change at line 175 | skipping to change at line 175 | |||
DoInit(); | DoInit(); | |||
} | } | |||
/// clone the function | /// clone the function | |||
IMultiGenFunction * Clone() const { | IMultiGenFunction * Clone() const { | |||
return new WrappedParamFunctionGen(fFunc, fDim, fParams.size() , &fPa rams.front(), &fParIndices.front()); | return new WrappedParamFunctionGen(fFunc, fDim, fParams.size() , &fPa rams.front(), &fParIndices.front()); | |||
} | } | |||
private: | private: | |||
// copy ctor | // copy ctor | |||
WrappedParamFunctionGen(const WrappedParamFunctionGen & rhs) {} | WrappedParamFunctionGen(const WrappedParamFunctionGen &); // not impl | |||
WrappedParamFunctionGen & operator=(const WrappedParamFunctionGen & rhs | emented | |||
) { return *this;} | WrappedParamFunctionGen & operator=(const WrappedParamFunctionGen &); / | |||
/ not implemented | ||||
public: | public: | |||
const double * Parameters() const { | const double * Parameters() const { | |||
return &(fParams.front()); | return &(fParams.front()); | |||
} | } | |||
void SetParameters(const double * p) { | void SetParameters(const double * p) { | |||
unsigned int npar = NPar(); | unsigned int npar = NPar(); | |||
std::copy(p, p+ npar, fParams.begin() ); | std::copy(p, p+ npar, fParams.begin() ); | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 5 lines changed or added | |||
compiledata.h | compiledata.h | |||
---|---|---|---|---|
/* This is file is automatically generated */ | /* This is file is automatically generated */ | |||
#define BUILD_ARCH "linux" | #define BUILD_ARCH "linux" | |||
#define BUILD_NODE "Linux lxbuild147.cern.ch 2.6.18-164.11.1.el5 #1 SMP Wed Jan 20 13:19:07 CET 2010 i686 i686 i386 GNU/Linux" | #define BUILD_NODE "Linux vm-slc5-i686 2.6.18-194.3.1.el5 #1 SMP Fri May 7 16:14:10 CEST 2010 i686 i686 i386 GNU/Linux" | |||
#define COMPILER "/afs/cern.ch/sw/lcg/contrib/gcc/4.3.2/i686-slc5-gcc34-opt /bin/g++" | #define COMPILER "/afs/cern.ch/sw/lcg/contrib/gcc/4.3.2/i686-slc5-gcc34-opt /bin/g++" | |||
#define COMPILERVERS "gcc432" | #define COMPILERVERS "gcc432" | |||
#define MAKESHAREDLIB "cd $BuildDir ; g++ -c $Opt -pipe -m32 -Wall -W -Wov erloaded-virtual -fPIC -pthread $IncludePath $SourceFiles ; g++ $ObjectFil es -shared -Wl,-soname,$LibName.so -m32 -O2 $LinkedLibs -o $SharedLib" | #define MAKESHAREDLIB "cd $BuildDir ; g++ -c $Opt -pipe -m32 -Wall -W -Wov erloaded-virtual -fPIC -pthread $IncludePath $SourceFiles ; g++ $ObjectFile s -shared -Wl,-soname,$LibName.so -m32 -O2 $LinkedLibs -o $SharedLib" | |||
#define MAKEEXE "cd $BuildDir ; g++ -c -pipe -m32 -Wall -W -Woverloaded-vi rtual -fPIC -pthread $IncludePath $SourceFiles; g++ $ObjectFiles -m32 -O2 -o $ExeName $LinkedLibs -lm -ldl -pthread -rdynamic" | #define MAKEEXE "cd $BuildDir ; g++ -c -pipe -m32 -Wall -W -Woverloaded-vi rtual -fPIC -pthread $IncludePath $SourceFiles; g++ $ObjectFiles -m32 -O2 -o $ExeName $LinkedLibs -lm -ldl -pthread -rdynamic" | |||
#define CXXOPT "-O2" | #define CXXOPT "-O2" | |||
#define CXXDEBUG "-g" | #define CXXDEBUG "-g" | |||
#define ROOTBUILD "" | #define ROOTBUILD "" | |||
#define LINKEDLIBS "-L$ROOTSYS/lib -lCore -lCint -lMathCore -lRint " | #define LINKEDLIBS "-L$ROOTSYS/lib -lCore -lCint -lMathCore -lRint " | |||
#define INCLUDEPATH "-I$ROOTSYS/include" | #define INCLUDEPATH "-I$ROOTSYS/include" | |||
#define OBJEXT "o" | #define OBJEXT "o" | |||
#define SOEXT "so" | #define SOEXT "so" | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
rpderr.h | rpderr.h | |||
---|---|---|---|---|
// @(#)root/rpdutils:$Id: rpderr.h 20882 2007-11-19 11:31:26Z rdm $ | // @(#)root/rpdutils:$Id: rpderr.h 36126 2010-10-06 15:14:52Z ganis $ | |||
// Author: Fons Rademakers 11/08/97 | // Author: Fons Rademakers 11/08/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 28 | skipping to change at line 28 | |||
// // | // // | |||
// This header file defines error codes generated by rootd/proofd. // | // This header file defines error codes generated by rootd/proofd. // | |||
// NB: In case of change update also strings in net/inc/ErrStr.h // | // NB: In case of change update also strings in net/inc/ErrStr.h // | |||
// // | // // | |||
////////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////////// | |||
#ifndef ROOT_NetErrors | #ifndef ROOT_NetErrors | |||
#include "NetErrors.h" | #include "NetErrors.h" | |||
#endif | #endif | |||
typedef void (*ErrorHandler_t)(int level, const char *msg); | typedef void (*ErrorHandler_t)(int level, const char *msg, int size); | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
snprintf.h | snprintf.h | |||
---|---|---|---|---|
/* @(#)root/clib:$Id: snprintf.h 35692 2010-09-23 22:14:05Z rdm $ */ | /* @(#)root/clib:$Id: snprintf.h 36336 2010-10-13 13:42:06Z rdm $ */ | |||
/* Author: Fons Rademakers 10/12/2000 */ | /* Author: Fons Rademakers 10/12/2000 */ | |||
/* | /* | |||
Write formatted text to buffer 'string', using format string 'format'. | Write formatted text to buffer 'string', using format string 'format'. | |||
Returns number of characters written, or -1 if truncated. | Returns number of characters written, or -1 if truncated. | |||
Format string is understood as defined in ANSI C. | Format string is understood as defined in ANSI C. | |||
*/ | */ | |||
#ifndef ROOT_snprintf | #ifndef ROOT_snprintf | |||
#define ROOT_snprintf | #define ROOT_snprintf | |||
#ifndef ROOT_RConfig | #ifndef ROOT_RConfig | |||
#include "RConfig.h" | #include "RConfig.h" | |||
#endif | #endif | |||
#ifndef __CINT__ | ||||
#ifdef NEED_SNPRINTF | #ifdef NEED_SNPRINTF | |||
#include <stdio.h> | #include <stdio.h> | |||
#include <stdarg.h> | #include <stdarg.h> | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" { | extern "C" { | |||
#endif | #endif | |||
#ifdef WIN32 | #ifdef WIN32 | |||
skipping to change at line 46 | skipping to change at line 48 | |||
#ifdef WIN32 | #ifdef WIN32 | |||
#pragma warning( pop ) | #pragma warning( pop ) | |||
#endif | #endif | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif /* NEED_SNPRINTF */ | #endif /* NEED_SNPRINTF */ | |||
#else | ||||
int snprintf(char *string, size_t length, const char *format, ...); | ||||
#endif /* __CINT__ */ | ||||
#endif /* ROOT_snprintf */ | #endif /* ROOT_snprintf */ | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 9 lines changed or added | |||
strlcpy.h | strlcpy.h | |||
---|---|---|---|---|
/* @(#)root/clib:$Id: strlcpy.h 35487 2010-09-20 19:50:18Z pcanal $ */ | /* @(#)root/clib:$Id: strlcpy.h 36336 2010-10-13 13:42:06Z rdm $ */ | |||
/* Author: Fons Rademakers 20/9/2010 */ | /* Author: Fons Rademakers 20/9/2010 */ | |||
/* | /* | |||
Inlcude file for strlcpy and strlcat. They are in string.h on systems | Inlcude file for strlcpy and strlcat. They are in string.h on systems | |||
that have these function (BSD based systems). | that have these function (BSD based systems). | |||
*/ | */ | |||
#ifndef ROOT_strlcpy | #ifndef ROOT_strlcpy | |||
#define ROOT_strlcpy | #define ROOT_strlcpy | |||
#ifndef ROOT_RConfig | #ifndef ROOT_RConfig | |||
#include "RConfig.h" | #include "RConfig.h" | |||
#endif | #endif | |||
#if !defined(__CINT__) | ||||
#ifndef HAS_STRLCPY | #ifndef HAS_STRLCPY | |||
#ifndef WIN32 | #ifndef WIN32 | |||
# include <unistd.h> | # include <unistd.h> | |||
#elif !defined(__CINT__) | #elif !defined(__CINT__) | |||
# include <sys/types.h> | # include <sys/types.h> | |||
#endif | #endif | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" { | extern "C" { | |||
skipping to change at line 37 | skipping to change at line 39 | |||
size_t strlcpy(char *dst, const char *src, size_t siz); | size_t strlcpy(char *dst, const char *src, size_t siz); | |||
size_t strlcat(char *dst, const char *src, size_t siz); | size_t strlcat(char *dst, const char *src, size_t siz); | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif /* HAS_STRLCPY */ | #endif /* HAS_STRLCPY */ | |||
#else | ||||
size_t strlcpy(char *dst, const char *src, size_t siz); | ||||
size_t strlcat(char *dst, const char *src, size_t siz); | ||||
#endif /* __CINT__ */ | ||||
#endif /* ROOT_strlcpy */ | #endif /* ROOT_strlcpy */ | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 10 lines changed or added | |||