| Factory.h | | Factory.h | |
|
| // @(#)root/tmva $Id: Factory.h 40005 2011-06-27 15:29:10Z stelzer $ | | // @(#)root/mathcore:$Id: Factory.h 37448 2010-12-09 20:20:56Z moneta $ | |
| // Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss, Ka | | // Author: L. Moneta Fri Dec 22 14:43:33 2006 | |
| i Voss, Eckhard von Toerne, Jan Therhaag | | | |
| | | | |
|
| /************************************************************************** | | /********************************************************************** | |
| ******** | | * * | |
| * Project: TMVA - a Root-integrated toolkit for multivariate data analysis | | * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT * | |
| * | | * * | |
| * 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 | | | |
| * | | | |
| * Jan Therhaag <Jan.Therhaag@cern.ch> - U of Bonn, Germany | | | |
| * | | | |
| * Eckhard v. Toerne <evt@uni-bonn.de> - U of Bonn, Germany | | | |
| * | | | |
| * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, German | | | |
| y * | | | |
| * Kai Voss <Kai.Voss@cern.ch> - U. of Victoria, Canada | | | |
| * | | | |
| * | | | |
| * | | | |
| * Copyright (c) 2005-2011: | | | |
| * | | | |
| * CERN, Switzerland | | | |
| * | | | |
| * U. of Victoria, Canada | | | |
| * | | | |
| * MPI-K Heidelberg, Germany | | | |
| * | | | |
| * U. of Bonn, Germany | | | |
| * | | | |
| * | | | |
| * | | | |
| * Redistribution and use in source and binary forms, with or without | | | |
| * | | | |
| * modification, are permitted according to the terms listed in LICENSE | | | |
| * | | | |
| * (http://tmva.sourceforge.net/LICENSE) | | | |
| * | | | |
| ************************************************************************** | | | |
| ********/ | | | |
| | | | |
| #ifndef ROOT_TMVA_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 | | | |
| | | | |
|
| protected: | | namespace ROOT { | |
| | | | |
| | | 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 | |
| | | If no name is given use default values defined in MinimizerOptions | |
| | | */ | |
| | | static ROOT::Math::Minimizer * CreateMinimizer(const std::string & minim | |
| | | izerType = "", const std::string & algoType = ""); | |
| | | | |
| | | /** | |
| | | static method to create the distribution sampler class given a string | |
| | | specifying the type | |
| | | Supported sampler types are: | |
| | | Unuran, Foam | |
| | | If no name is given use default values defined in DistSamplerOptions | |
| | | */ | |
| | | static ROOT::Math::DistSampler * CreateDistSampler(const std::string & s | |
| | | amplerType =""); | |
| | | | |
| | | }; | |
| | | | |
|
| ClassDef(Factory,0) // The factory creates all MVA methods, and perf | | } // end namespace Fit | |
| orms their training and testing | | | |
| }; | | | |
| | | | |
|
| } // namespace TMVA | | } // end namespace ROOT | |
| | | | |
|
| #endif | | #endif /* ROOT_Fit_MinimizerFactory */ | |
| | | | |
End of changes. 7 change blocks. |
| 360 lines changed or deleted | | 53 lines changed or added | |
|
| RooAbsPdf.h | | RooAbsPdf.h | |
| | | | |
| skipping to change at line 60 | | skipping to change at line 60 | |
| | | | |
| // Toy MC generation | | // Toy MC generation | |
| RooDataSet *generate(const RooArgSet &whatVars, Int_t nEvents, const RooC
mdArg& arg1, | | RooDataSet *generate(const RooArgSet &whatVars, Int_t nEvents, const RooC
mdArg& arg1, | |
| const RooCmdArg& arg2=RooCmdArg::none(), const RooCm
dArg& arg3=RooCmdArg::none(), | | const RooCmdArg& arg2=RooCmdArg::none(), const RooCm
dArg& arg3=RooCmdArg::none(), | |
| const RooCmdArg& arg4=RooCmdArg::none(), const RooCm
dArg& arg5=RooCmdArg::none()) ; | | const RooCmdArg& arg4=RooCmdArg::none(), const RooCm
dArg& arg5=RooCmdArg::none()) ; | |
| RooDataSet *generate(const RooArgSet &whatVars, | | RooDataSet *generate(const RooArgSet &whatVars, | |
| const RooCmdArg& arg1=RooCmdArg::none(),const RooCmd
Arg& arg2=RooCmdArg::none(), | | const RooCmdArg& arg1=RooCmdArg::none(),const RooCmd
Arg& arg2=RooCmdArg::none(), | |
| const RooCmdArg& arg3=RooCmdArg::none(),const RooCmd
Arg& arg4=RooCmdArg::none(), | | const RooCmdArg& arg3=RooCmdArg::none(),const RooCmd
Arg& arg4=RooCmdArg::none(), | |
| const RooCmdArg& arg5=RooCmdArg::none(),const RooCmd
Arg& arg6=RooCmdArg::none()) ; | | const RooCmdArg& arg5=RooCmdArg::none(),const RooCmd
Arg& arg6=RooCmdArg::none()) ; | |
| RooDataSet *generate(const RooArgSet &whatVars, Int_t nEvents = 0, Bool_t
verbose=kFALSE, Bool_t autoBinned=kTRUE, | | RooDataSet *generate(const RooArgSet &whatVars, Int_t nEvents = 0, Bool_t
verbose=kFALSE, Bool_t autoBinned=kTRUE, | |
|
| const char* binnedTag="", Bool_t expectedData=kFALSE)
const; | | const char* binnedTag="", Bool_t expectedData=kFALSE,
Bool_t extended = kFALSE) const; | |
| RooDataSet *generate(const RooArgSet &whatVars, const RooDataSet &prototy
pe, Int_t nEvents= 0, | | RooDataSet *generate(const RooArgSet &whatVars, const RooDataSet &prototy
pe, Int_t nEvents= 0, | |
| Bool_t verbose=kFALSE, Bool_t randProtoOrder=kFALSE,
Bool_t resampleProto=kFALSE) const; | | Bool_t verbose=kFALSE, Bool_t randProtoOrder=kFALSE,
Bool_t resampleProto=kFALSE) const; | |
| | | | |
| class GenSpec { | | class GenSpec { | |
| public: | | public: | |
| virtual ~GenSpec() ; | | virtual ~GenSpec() ; | |
| GenSpec() { _genContext = 0 ; _protoData = 0 ; _init = kFALSE ; _extend
ed=kFALSE, _nGen=0 ; _randProto = kFALSE ; _resampleProto=kFALSE ; } | | GenSpec() { _genContext = 0 ; _protoData = 0 ; _init = kFALSE ; _extend
ed=kFALSE, _nGen=0 ; _randProto = kFALSE ; _resampleProto=kFALSE ; } | |
| private: | | private: | |
| GenSpec(RooAbsGenContext* context, const RooArgSet& whatVars, RooDataSe
t* protoData, Int_t nGen, Bool_t extended, | | GenSpec(RooAbsGenContext* context, const RooArgSet& whatVars, RooDataSe
t* protoData, Int_t nGen, Bool_t extended, | |
| Bool_t randProto, Bool_t resampleProto, TString dsetName, Bool_t
init=kFALSE) ; | | Bool_t randProto, Bool_t resampleProto, TString dsetName, Bool_t
init=kFALSE) ; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| RooBinnedGenContext.h | | RooBinnedGenContext.h | |
| /**************************************************************************
*** | | /**************************************************************************
*** | |
| * Project: RooFit
* | | * Project: RooFit
* | |
| * Package: RooFitCore
* | | * Package: RooFitCore
* | |
|
| * File: $Id: RooBinnedGenContext.h 42232 2011-11-24 23:23:30Z wouter $ | | * File: $Id: RooBinnedGenContext.h 44632 2012-06-08 14:47:15Z moneta $ | |
| * 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 36 | | skipping to change at line 36 | |
| class RooDataHist ; | | class RooDataHist ; | |
| class TRandom; | | class TRandom; | |
| class TIterator; | | class TIterator; | |
| | | | |
| class RooBinnedGenContext : public RooAbsGenContext { | | class RooBinnedGenContext : public RooAbsGenContext { | |
| public: | | public: | |
| RooBinnedGenContext(const RooAbsPdf &model, const RooArgSet &vars, const
RooDataSet *prototype= 0, | | RooBinnedGenContext(const RooAbsPdf &model, const RooArgSet &vars, const
RooDataSet *prototype= 0, | |
| const RooArgSet* auxProto=0, Bool_t _verbose= kFALSE); | | const RooArgSet* auxProto=0, Bool_t _verbose= kFALSE); | |
| virtual ~RooBinnedGenContext(); | | virtual ~RooBinnedGenContext(); | |
| | | | |
|
| RooDataSet* generate(Int_t nEvents=0, Bool_t skipInit=kFALSE, Bool_t exte
ndedMode=kFALSE) ; | | RooDataSet* generate(Double_t nEvents=0, Bool_t skipInit=kFALSE, Bool_t e
xtendedMode=kFALSE) ; | |
| | | | |
| virtual void setProtoDataOrder(Int_t*) {} | | virtual void setProtoDataOrder(Int_t*) {} | |
| | | | |
| virtual void attach(const RooArgSet& params) ; | | virtual void attach(const RooArgSet& params) ; | |
| | | | |
| 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 ; | |
| | | | |
| virtual void setExpectedData(Bool_t) ; | | virtual void setExpectedData(Bool_t) ; | |
| | | | |
| protected: | | protected: | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| RooSimSplitGenContext.h | | RooSimSplitGenContext.h | |
| /**************************************************************************
*** | | /**************************************************************************
*** | |
| * Project: RooFit
* | | * Project: RooFit
* | |
| * Package: RooFitCore
* | | * Package: RooFitCore
* | |
|
| * File: $Id: RooSimSplitGenContext.h 42232 2011-11-24 23:23:30Z wouter
$ | | * File: $Id: RooSimSplitGenContext.h 44632 2012-06-08 14:47:15Z moneta
$ | |
| * 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 38 | | skipping to change at line 38 | |
| class RooSimSplitGenContext : public RooAbsGenContext { | | class RooSimSplitGenContext : public RooAbsGenContext { | |
| public: | | public: | |
| RooSimSplitGenContext(const RooSimultaneous &model, const RooArgSet &vars
, Bool_t _verbose= kFALSE, Bool_t autoBinned=kTRUE, const char* binnedTag="
"); | | RooSimSplitGenContext(const RooSimultaneous &model, const RooArgSet &vars
, Bool_t _verbose= kFALSE, Bool_t autoBinned=kTRUE, const char* binnedTag="
"); | |
| virtual ~RooSimSplitGenContext(); | | virtual ~RooSimSplitGenContext(); | |
| virtual void setProtoDataOrder(Int_t* lut) ; | | virtual void setProtoDataOrder(Int_t* lut) ; | |
| | | | |
| virtual void attach(const RooArgSet& params) ; | | virtual void attach(const RooArgSet& params) ; | |
| | | | |
| 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 ; | |
| | | | |
|
| virtual RooDataSet *generate(Int_t nEvents= 0, Bool_t skipInit=kFALSE, Bo
ol_t extendedMode=kFALSE); | | virtual RooDataSet *generate(Double_t nEvents= 0, Bool_t skipInit=kFALSE,
Bool_t extendedMode=kFALSE); | |
| | | | |
| virtual void setExpectedData(Bool_t) ; | | virtual void setExpectedData(Bool_t) ; | |
| | | | |
| protected: | | protected: | |
| | | | |
| virtual void initGenerator(const RooArgSet &theEvent); | | virtual void initGenerator(const RooArgSet &theEvent); | |
| virtual void generateEvent(RooArgSet &theEvent, Int_t remaining); | | virtual void generateEvent(RooArgSet &theEvent, Int_t remaining); | |
| | | | |
| RooDataSet* createDataSet(const char* name, const char* title, const RooA
rgSet& obs) ; | | RooDataSet* createDataSet(const char* name, const char* title, const RooA
rgSet& obs) ; | |
| | | | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| RootFinder.h | | RootFinder.h | |
|
| // @(#)root/mathmore:$Id: RootFinder.h 33942 2010-06-16 13:12:17Z moneta $ | | // @(#)root/tmva $Id: RootFinder.h 40005 2011-06-27 15:29:10Z stelzer $ | |
| // Authors: L. Moneta, A. Zsenei 08/2005 | | // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss | |
| | | | |
|
| /********************************************************************** | | /************************************************************************** | |
| * * | | ******** | |
| * Copyright (c) 2004 ROOT Foundation, CERN/PH-SFT * | | * Project: TMVA - a Root-integrated toolkit for multivariate data analysis | |
| * * | | * | |
| * This library is free software; you can redistribute it and/or * | | * Package: TMVA | |
| * modify it under the terms of the GNU General Public License * | | * | |
| * as published by the Free Software Foundation; either version 2 * | | * Class : RootFinder | |
| * of the License, or (at your option) any later version. * | | * | |
| * * | | * Web : http://tmva.sourceforge.net | |
| * This library is distributed in the hope that it will be useful, * | | * | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of * | | * | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * | | * | |
| * General Public License for more details. * | | * Description: | |
| * * | | * | |
| * You should have received a copy of the GNU General Public License * | | * Root finding using Brents algorithm | |
| * along with this library (see file COPYING); if not, write * | | * | |
| * to the Free Software Foundation, Inc., 59 Temple Place, Suite * | | * (translated from CERNLIB function RZERO) | |
| * 330, Boston, MA 02111-1307 USA, or contact the author. * | | * | |
| * * | | * | |
| **********************************************************************/ | | * | |
| | | * Authors (alphabetical): | |
| // Header file for class RootFinder | | * | |
| // | | * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland | |
| // Created by: moneta at Sun Nov 14 16:59:55 2004 | | * | |
| // | | * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, German | |
| // Last update: Sun Nov 14 16:59:55 2004 | | y * | |
| // | | * Kai Voss <Kai.Voss@cern.ch> - U. of Victoria, Canada | |
| #ifndef ROOT_Math_RootFinder | | * | |
| #define ROOT_Math_RootFinder | | * | |
| | | * | |
| | | * Copyright (c) 2005: | |
| | | * | |
| | | * CERN, Switzerland | |
| | | * | |
| | | * U. of Victoria, Canada | |
| | | * | |
| | | * MPI-K Heidelberg, Germany | |
| | | * | |
| | | * | |
| | | * | |
| | | * Redistribution and use in source and binary forms, with or without | |
| | | * | |
| | | * modification, are permitted according to the terms listed in LICENSE | |
| | | * | |
| | | * (http://tmva.sourceforge.net/LICENSE) | |
| | | * | |
| | | ************************************************************************** | |
| | | ********/ | |
| | | | |
| | | #ifndef ROOT_TMVA_RootFinder | |
| | | #define ROOT_TMVA_RootFinder | |
| | | | |
| | | ////////////////////////////////////////////////////////////////////////// | |
| | | // // | |
| | | // RootFinder // | |
| | | // // | |
| | | // Root finding using Brents algorithm // | |
| | | // (translated from CERNLIB function RZERO) // | |
| | | // // | |
| | | ////////////////////////////////////////////////////////////////////////// | |
| | | | |
|
| #ifndef ROOT_Math_IFunctionfwd | | #ifndef ROOT_TObject | |
| #include "Math/IFunctionfwd.h" | | #include "TObject.h" | |
| #endif | | #endif | |
| | | | |
|
| #ifndef ROOT_Math_IRootFinderMethod | | namespace TMVA { | |
| #include "Math/IRootFinderMethod.h" | | | |
| #endif | | | |
| | | | |
|
| /** | | class MsgLogger; | |
| @defgroup RootFinders One-dimensional Root-Finding algorithms | | | |
| Various implementation esists in MathCore and MathMore | | | |
| The user interacts with a proxy class ROOT::Math::RootFinder which creat | | | |
| es behing | | | |
| the choosen algorithms which are implemented using the ROOT::Math::IRoot | | | |
| FinderMethod interface | | | |
| | | | |
| @ingroup NumAlgo | | | |
| */ | | | |
| | | | |
| namespace ROOT { | | | |
| namespace Math { | | | |
| | | | |
| //_________________________________________________________________________ | | | |
| ____________ | | | |
| /** | | | |
| User Class to find the Root of one dimensional functions. | | | |
| The GSL Methods are implemented in MathMore and they are loaded au | | | |
| tomatically | | | |
| via the plug-in manager | | | |
| | | | |
| The possible types of Root-finding algorithms are: | | | |
| <ul> | | | |
| <li>Root Bracketing Algorithms which do not require function deriv | | | |
| atives | | | |
| <ol> | | | |
| <li>RootFinder::kBRENT (default method implemented in MathCore) | | | |
| <li>RootFinder::kGSL_BISECTION | | | |
| <li>RootFinder::kGSL_FALSE_POS | | | |
| <li>RootFinder::kGSL_BRENT | | | |
| </ol> | | | |
| <li>Root Finding Algorithms using Derivatives | | | |
| <ol> | | | |
| <li>RootFinder::kGSL_NEWTON | | | |
| <li>RootFinder::kGSL_SECANT | | | |
| <li>RootFinder::kGSL_STEFFENSON | | | |
| </ol> | | | |
| </ul> | | | |
| | | | |
| This class does not cupport copying | | | |
| | | | |
| @ingroup RootFinders | | | |
| | | | |
| */ | | | |
| | | | |
| class RootFinder { | | | |
| | | | |
| public: | | | |
| | | | |
| enum EType { kBRENT, // Methods | | | |
| from MathCore | | | |
| kGSL_BISECTION, kGSL_FALSE_POS, kGSL_BRENT, // GSL Nor | | | |
| mal | | | |
| kGSL_NEWTON, kGSL_SECANT, kGSL_STEFFENSON // GSL Der | | | |
| ivatives | | | |
| }; | | | |
| | | | |
| /** | | | |
| Construct a Root-Finder algorithm | | | |
| */ | | | |
| RootFinder(RootFinder::EType type = RootFinder::kBRENT); | | | |
| virtual ~RootFinder(); | | | |
| | | | |
| private: | | | |
| // usually copying is non trivial, so we make this unaccessible | | | |
| RootFinder(const RootFinder & ) {} | | | |
| RootFinder & operator = (const RootFinder & rhs) | | | |
| { | | | |
| if (this == &rhs) return *this; // time saving self-test | | | |
| return *this; | | | |
| } | | | |
| | | | |
| public: | | | |
| | | | |
| bool SetMethod(RootFinder::EType type = RootFinder::kBRENT); | | | |
| | | | |
| /** | | | |
| Provide to the solver the function and the initial search inter | | | |
| val [xlow, xup] | | | |
| for algorithms not using derivatives (bracketing algorithms) | | | |
| The templated function f must be of a type implementing the \a | | | |
| operator() method, | | | |
| <em> double operator() ( double x ) </em> | | | |
| Returns non zero if interval is not valid (i.e. does not contai | | | |
| ns a root) | | | |
| */ | | | |
| | | | |
| bool SetFunction( const IGenFunction & f, double xlow, double xup) | | | |
| { | | | |
| return fSolver->SetFunction( f, xlow, xup); | | | |
| } | | | |
| | | | |
| /** | | | |
| Provide to the solver the function and an initial estimate of t | | | |
| he root, | | | |
| for algorithms using derivatives. | | | |
| The templated function f must be of a type implementing the \a | | | |
| operator() | | | |
| and the \a Gradient() methods. | | | |
| <em> double operator() ( double x ) </em> | | | |
| Returns non zero if starting point is not valid | | | |
| */ | | | |
| | | | |
| bool SetFunction( const IGradFunction & f, double xstart) { | | | |
| return fSolver->SetFunction( f, xstart); | | | |
| } | | | |
| | | | |
| template<class Function, class Derivative> | | | |
| bool Solve(Function &f, Derivative &d, double start, | | | |
| int maxIter = 100, double absTol = 1E-8, double relTol = | | | |
| 1E-10); | | | |
| | | | |
| template<class Function> | | | |
| bool Solve(Function &f, double min, double max, | | | |
| int maxIter = 100, double absTol = 1E-8, double relTol = | | | |
| 1E-10); | | | |
| | | | |
| /** | | | |
| Compute the roots iterating until the estimate of the Root is | | | |
| within the required tolerance returning | | | |
| the iteration Status | | | |
| */ | | | |
| bool Solve( int maxIter = 100, double absTol = 1E-8, double relTol | | | |
| = 1E-10) { | | | |
| return fSolver->Solve( maxIter, absTol, relTol ); | | | |
| } | | | |
| | | | |
| /** | | | |
| Return the number of iteration performed to find the Root. | | | |
| */ | | | |
| int Iterations() const { | | | |
| return fSolver->Iterations(); | | | |
| } | | | |
| | | | |
| /** | | | |
| Perform a single iteration and return the Status | | | |
| */ | | | |
| int Iterate() { | | | |
| return fSolver->Iterate(); | | | |
| } | | | |
| | | | |
| /** | | | |
| Return the current and latest estimate of the Root | | | |
| */ | | | |
| double Root() const { | | | |
| return fSolver->Root(); | | | |
| } | | | |
| | | | |
| /** | | | |
| Return the status of the last estimate of the Root | | | |
| = 0 OK, not zero failure | | | |
| */ | | | |
| int Status() const { | | | |
| return fSolver->Status(); | | | |
| } | | | |
| | | | |
| /** | | | |
| Return the current and latest estimate of the lower value of th | | | |
| e Root-finding interval (for bracketing algorithms) | | | |
| */ | | | |
| /* double XLower() const { */ | | | |
| /* return fSolver->XLower(); */ | | | |
| /* } */ | | | |
| | | | |
| /** | | | |
| Return the current and latest estimate of the upper value of th | | | |
| e Root-finding interval (for bracketing algorithms) | | | |
| */ | | | |
| /* double XUpper() const { */ | | | |
| /* return fSolver->XUpper(); */ | | | |
| /* } */ | | | |
| | | | |
| /** | | | |
| Get Name of the Root-finding solver algorithm | | | |
| */ | | | |
| const char * Name() const { | | | |
| return fSolver->Name(); | | | |
| } | | | |
| | | | |
| protected: | | | |
| | | | |
| private: | | | |
| | | | |
| IRootFinderMethod* fSolver; // type of algorithm to be used | | | |
| | | | |
|
| }; | | class RootFinder : public TObject { | |
| | | | |
|
| } // namespace Math | | public: | |
| } // namespace ROOT | | | |
| | | | |
|
| #ifndef ROOT_Math_WrappedFunction | | RootFinder( Double_t (*rootVal)( Double_t ), | |
| #include "Math/WrappedFunction.h" | | Double_t rootMin, Double_t rootMax, | |
| #endif | | Int_t maxIterations = 100, | |
| | | Double_t absTolerance = 0.0 ); | |
| | | virtual ~RootFinder( void ); | |
| | | | |
|
| #ifndef ROOT_Math_Functor | | // returns the root of the function | |
| #include "Math/Functor.h" | | Double_t Root( Double_t refValue ); | |
| #endif | | | |
| | | private: | |
| | | | |
| | | Double_t fRootMin; // minimum root value | |
| | | Double_t fRootMax; // maximum root value | |
| | | Int_t fMaxIter; // maximum number of iterations | |
| | | Double_t fAbsTol; // absolute tolerance deviation | |
| | | | |
|
| template<class Function, class Derivative> | | // function pointer | |
| bool ROOT::Math::RootFinder::Solve(Function &f, Derivative &d, double start | | Double_t (*fGetRootVal)( Double_t ); | |
| , | | | |
| int maxIter, double absTol, double relTol | | | |
| ) | | | |
| { | | | |
| if (!fSolver) return false; | | | |
| ROOT::Math::GradFunctor1D wf(f, d); | | | |
| bool ret = fSolver->SetFunction(wf, start); | | | |
| if (!ret) return false; | | | |
| return Solve(maxIter, absTol, relTol); | | | |
| } | | | |
| | | | |
| template<class Function> | | | |
| bool ROOT::Math::RootFinder::Solve(Function &f, double min, double max, | | | |
| int maxIter, double absTol, double relTol | | | |
| ) | | | |
| { | | | |
| if (!fSolver) return false; | | | |
| ROOT::Math::WrappedFunction<Function &> wf(f); | | | |
| bool ret = fSolver->SetFunction(wf, min, max); | | | |
| if (!ret) return false; | | | |
| return Solve(maxIter, absTol, relTol); | | | |
| } | | | |
| | | | |
|
| #endif /* ROOT_Math_RootFinder */ | | mutable MsgLogger* fLogger; //! message logger | |
| | | MsgLogger& Log() const { return *fLogger; } | |
| | | | |
| | | ClassDef(RootFinder,0) // Root finding using Brents algorithm | |
| | | }; | |
| | | | |
| | | } // namespace TMVA | |
| | | | |
| | | #endif | |
| | | | |
End of changes. 11 change blocks. |
| 254 lines changed or deleted | | 84 lines changed or added | |
|
| TFPBlock.h | | TFPBlock.h | |
|
| // @(#)root/io:$Id: TFPBlock.h 41698 2011-11-01 21:22:54Z pcanal $ | | // @(#)root/io:$Id: TFPBlock.h 44777 2012-06-27 15:09:22Z pcanal $ | |
| // Author: Elvin Sindrilaru 19/05/2011 | | // Author: Elvin Sindrilaru 19/05/2011 | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
| * Copyright (C) 1995-2011, Rene Brun and Fons Rademakers. * | | * Copyright (C) 1995-2011, 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 39 | | skipping to change at line 39 | |
| #endif | | #endif | |
| | | | |
| class TFPBlock : public TObject{ | | class TFPBlock : public TObject{ | |
| | | | |
| private: | | private: | |
| char *fBuffer; // content of the block | | char *fBuffer; // content of the block | |
| Int_t fNblock; // number of segment in the block | | Int_t fNblock; // number of segment in the block | |
| Int_t fFullSize; // total size of segments that make up the bloc
k | | Int_t fFullSize; // total size of segments that make up the bloc
k | |
| Int_t *fLen; // array of lengths of each segment | | Int_t *fLen; // array of lengths of each segment | |
| Long64_t *fPos; // array of positions of each segment | | Long64_t *fPos; // array of positions of each segment | |
|
| | | Long64_t *fRelOffset; // relative offset of piece in the buffer | |
| | | | |
| public: | | public: | |
| TFPBlock(Long64_t*, Int_t*, Int_t); | | TFPBlock(Long64_t*, Int_t*, Int_t); | |
| virtual ~TFPBlock(); | | virtual ~TFPBlock(); | |
| | | | |
| Long64_t GetPos(Int_t) const; | | Long64_t GetPos(Int_t) const; | |
| Int_t GetLen(Int_t) const; | | Int_t GetLen(Int_t) const; | |
| | | | |
| Long64_t *GetPos() const; | | Long64_t *GetPos() const; | |
| Int_t *GetLen() const; | | Int_t *GetLen() const; | |
| Int_t GetFullSize() const; | | Int_t GetFullSize() const; | |
| Int_t GetNoElem() const; | | Int_t GetNoElem() const; | |
| char *GetBuffer() const; | | char *GetBuffer() const; | |
|
| | | char *GetPtrToPiece(Int_t index) const; | |
| | | | |
| void SetBuffer(char*); | | void SetBuffer(char*); | |
| void SetPos(Int_t, Long64_t); | | void SetPos(Int_t, Long64_t); | |
| void ReallocBlock(Long64_t*, Int_t*, Int_t); | | void ReallocBlock(Long64_t*, Int_t*, Int_t); | |
| | | | |
| ClassDef(TFPBlock, 0); // File prefetch block | | ClassDef(TFPBlock, 0); // File prefetch block | |
| }; | | }; | |
| | | | |
|
| | | //__________________________________________________________________ | |
| | | inline Long64_t* TFPBlock::GetPos() const | |
| | | { | |
| | | // Get pointer to the array of postions. | |
| | | | |
| | | return fPos; | |
| | | } | |
| | | | |
| | | //__________________________________________________________________ | |
| | | inline Int_t* TFPBlock::GetLen() const | |
| | | { | |
| | | // Get pointer to the array of lengths. | |
| | | | |
| | | return fLen; | |
| | | } | |
| | | | |
| | | //__________________________________________________________________ | |
| | | inline Int_t TFPBlock::GetFullSize() const | |
| | | { | |
| | | // Return size of the block. | |
| | | | |
| | | return fFullSize; | |
| | | } | |
| | | | |
| | | //__________________________________________________________________ | |
| | | inline Int_t TFPBlock::GetNoElem() const | |
| | | { | |
| | | // Return number of elements in the block. | |
| | | | |
| | | return fNblock; | |
| | | } | |
| | | | |
| | | //__________________________________________________________________ | |
| | | inline Long64_t TFPBlock::GetPos(Int_t i) const | |
| | | { | |
| | | // Get position of the element at index i. | |
| | | | |
| | | return fPos[i]; | |
| | | } | |
| | | | |
| | | //__________________________________________________________________ | |
| | | inline Int_t TFPBlock::GetLen(Int_t i) const | |
| | | { | |
| | | // Get length of the element at index i. | |
| | | | |
| | | return fLen[i]; | |
| | | } | |
| | | | |
| | | //__________________________________________________________________ | |
| | | inline char* TFPBlock::GetBuffer() const | |
| | | { | |
| | | // Get block buffer. | |
| | | | |
| | | return fBuffer; | |
| | | } | |
| | | | |
| | | //__________________________________________________________________ | |
| | | inline char* TFPBlock::GetPtrToPiece(Int_t index) const | |
| | | { | |
| | | // Get block buffer. | |
| | | | |
| | | return (fBuffer + fRelOffset[index]); | |
| | | } | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 4 change blocks. |
| 1 lines changed or deleted | | 67 lines changed or added | |
|
| TFileCacheRead.h | | TFileCacheRead.h | |
|
| // @(#)root/io:$Id: TFileCacheRead.h 39466 2011-05-27 20:26:23Z pcanal $ | | // @(#)root/io:$Id: TFileCacheRead.h 44847 2012-07-03 13:05:35Z pcanal $ | |
| // Author: Rene Brun 19/05/2006 | | // Author: Rene Brun 19/05/2006 | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
| * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | | * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * | |
| * All rights reserved. * | | * All rights reserved. * | |
| * * | | * * | |
| * For the licensing terms see $ROOTSYS/LICENSE. * | | * For the licensing terms see $ROOTSYS/LICENSE. * | |
| * For the list of contributors see $ROOTSYS/README/CREDITS. * | | * For the list of contributors see $ROOTSYS/README/CREDITS. * | |
| *************************************************************************/ | | *************************************************************************/ | |
| | | | |
| | | | |
| skipping to change at line 76 | | skipping to change at line 76 | |
| Long64_t *fBSeekSort; | | Long64_t *fBSeekSort; | |
| Int_t *fBSeekIndex; | | Int_t *fBSeekIndex; | |
| Long64_t *fBPos; | | Long64_t *fBPos; | |
| Int_t *fBSeekLen; | | Int_t *fBSeekLen; | |
| Int_t *fBSeekSortLen; | | Int_t *fBSeekSortLen; | |
| Int_t *fBSeekPos; | | Int_t *fBSeekPos; | |
| Int_t *fBLen; | | Int_t *fBLen; | |
| Bool_t fBIsSorted; | | Bool_t fBIsSorted; | |
| Bool_t fBIsTransferred; | | Bool_t fBIsTransferred; | |
| | | | |
|
| | | void SetEnablePrefetchingImpl(Bool_t setPrefetching = kFALSE); // Can no | |
| | | t be virtual as it is called from the constructor. | |
| | | | |
| private: | | private: | |
| TFileCacheRead(const TFileCacheRead &); //cannot be copied | | TFileCacheRead(const TFileCacheRead &); //cannot be copied | |
| TFileCacheRead& operator=(const TFileCacheRead &); | | TFileCacheRead& operator=(const TFileCacheRead &); | |
| | | | |
| public: | | public: | |
| TFileCacheRead(); | | TFileCacheRead(); | |
| TFileCacheRead(TFile *file, Int_t buffersize); | | TFileCacheRead(TFile *file, Int_t buffersize); | |
| virtual ~TFileCacheRead(); | | virtual ~TFileCacheRead(); | |
| virtual void AddBranch(TBranch * /*b*/, Bool_t /*subbranches*/ =
kFALSE) {} | | virtual void AddBranch(TBranch * /*b*/, Bool_t /*subbranches*/ =
kFALSE) {} | |
| virtual void AddBranch(const char * /*branch*/, Bool_t /*subbranc
hes*/ = kFALSE) {} | | virtual void AddBranch(const char * /*branch*/, Bool_t /*subbranc
hes*/ = kFALSE) {} | |
|
| | | virtual void Close(Option_t *option=""); | |
| virtual Int_t GetBufferSize() const { return fBufferSize; }; | | virtual Int_t GetBufferSize() const { return fBufferSize; }; | |
| virtual Int_t GetUnzipBuffer(char ** /*buf*/, Long64_t /*pos*/, In
t_t /*len*/, Bool_t * /*free*/) { return -1; } | | virtual Int_t GetUnzipBuffer(char ** /*buf*/, Long64_t /*pos*/, In
t_t /*len*/, Bool_t * /*free*/) { return -1; } | |
| Long64_t GetPrefetchedBlocks() const { return fPrefetchedBloc
ks; } | | Long64_t GetPrefetchedBlocks() const { return fPrefetchedBloc
ks; } | |
| virtual Bool_t IsAsyncReading() const { return fAsyncReading; }; | | virtual Bool_t IsAsyncReading() const { return fAsyncReading; }; | |
|
| virtual void SetEnablePrefetching(Bool_t setPrefetching = kFALSE)
{ fEnablePrefetching = setPrefetching; } | | virtual void SetEnablePrefetching(Bool_t setPrefetching = kFALSE)
; | |
| virtual Bool_t IsEnablePrefetching() const { return fEnablePrefetch
ing; }; | | virtual Bool_t IsEnablePrefetching() const { return fEnablePrefetch
ing; }; | |
| virtual Bool_t IsLearning() const {return kFALSE;} | | virtual Bool_t IsLearning() const {return kFALSE;} | |
| virtual void Prefetch(Long64_t pos, Int_t len); | | virtual void Prefetch(Long64_t pos, Int_t len); | |
| virtual void Print(Option_t *option="") const; | | virtual void Print(Option_t *option="") const; | |
| virtual Int_t ReadBufferExt(char *buf, Long64_t pos, Int_t len, In
t_t &loc); | | virtual Int_t ReadBufferExt(char *buf, Long64_t pos, Int_t len, In
t_t &loc); | |
| virtual Int_t ReadBufferExtNormal(char *buf, Long64_t pos, Int_t l
en, Int_t &loc); | | virtual Int_t ReadBufferExtNormal(char *buf, Long64_t pos, Int_t l
en, Int_t &loc); | |
| virtual Int_t ReadBufferExtPrefetch(char *buf, Long64_t pos, Int_t
len, Int_t &loc); | | virtual Int_t ReadBufferExtPrefetch(char *buf, Long64_t pos, Int_t
len, Int_t &loc); | |
| virtual Int_t ReadBuffer(char *buf, Long64_t pos, Int_t len); | | virtual Int_t ReadBuffer(char *buf, Long64_t pos, Int_t len); | |
| virtual void SetFile(TFile *file); | | virtual void SetFile(TFile *file); | |
| virtual void SetSkipZip(Bool_t /*skip*/ = kTRUE) {} // This funct
ion is only used by TTreeCacheUnzip (ignore it) | | virtual void SetSkipZip(Bool_t /*skip*/ = kTRUE) {} // This funct
ion is only used by TTreeCacheUnzip (ignore it) | |
| | | | |
End of changes. 4 change blocks. |
| 2 lines changed or deleted | | 6 lines changed or added | |
|
| TFilePrefetch.h | | TFilePrefetch.h | |
|
| // @(#)root/io:$Id: TFilePrefetch.h 41698 2011-11-01 21:22:54Z pcanal $ | | // @(#)root/io:$Id: TFilePrefetch.h 44777 2012-06-27 15:09:22Z pcanal $ | |
| // Author: Elvin Sindrilaru 19/05/2011 | | // Author: Elvin Sindrilaru 19/05/2011 | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
| * Copyright (C) 1995-2011, Rene Brun and Fons Rademakers. * | | * Copyright (C) 1995-2011, 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 72 | | skipping to change at line 72 | |
| #include "TObjArray.h" | | #include "TObjArray.h" | |
| #endif | | #endif | |
| #ifndef ROOT_TStopwatch | | #ifndef ROOT_TStopwatch | |
| #include "TStopwatch.h" | | #include "TStopwatch.h" | |
| #endif | | #endif | |
| | | | |
| class TFilePrefetch : public TObject { | | class TFilePrefetch : public TObject { | |
| | | | |
| private: | | private: | |
| TFile *fFile; // reference to the file | | TFile *fFile; // reference to the file | |
|
| TList *fPendingBlocks; // list of pending block to be read | | TList *fPendingBlocks; // list of pending blocks to be read | |
| TList *fReadBlocks; // list of block read | | TList *fReadBlocks; // list of blocks read | |
| TThread *fConsumer; // consumer thread | | TThread *fConsumer; // consumer thread | |
| TMutex *fMutexPendingList; // mutex for the pending list | | TMutex *fMutexPendingList; // mutex for the pending list | |
| TMutex *fMutexReadList; // mutex for the list of read blocks | | TMutex *fMutexReadList; // mutex for the list of read blocks | |
|
| TMutex *fMutexSynch; // mutex for synchronisation between wor | | TCondition *fNewBlockAdded; // signal the addition of a new pending | |
| king and main thread | | block | |
| TCondition *fNewBlockAdded; // condition used to signal the addition | | TCondition *fReadBlockAdded; // signal the addition of a new red bloc | |
| of a new pending block | | k | |
| TCondition *fReadBlockAdded; // condition usd to signal the addition | | TCondition *fCondNextFile; // signal TChain that we can move to the | |
| of a new red block | | next file | |
| TSemaphore *fSem; // semaphore used to kill the consumer t | | TSemaphore *fSemMasterWorker; // semaphore used to kill the consumer t | |
| hread | | hread | |
| | | TSemaphore *fSemWorkerMaster; // semaphore used to notify the master t | |
| | | hat worker is killed | |
| TString fPathCache; // path to the cache directory | | TString fPathCache; // path to the cache directory | |
| TStopwatch fWaitTime; // time wating to prefetch a buffer (in
usec) | | TStopwatch fWaitTime; // time wating to prefetch a buffer (in
usec) | |
| | | | |
| static TThread::VoidRtnFunc_t ThreadProc(void*); //create a joinable wo
rker thread | | static TThread::VoidRtnFunc_t ThreadProc(void*); //create a joinable wo
rker thread | |
| | | | |
| public: | | public: | |
| TFilePrefetch(TFile*); | | TFilePrefetch(TFile*); | |
| virtual ~TFilePrefetch(); | | virtual ~TFilePrefetch(); | |
| | | | |
| void ReadAsync(TFPBlock*, Bool_t&); | | void ReadAsync(TFPBlock*, Bool_t&); | |
| | | | |
| skipping to change at line 115 | | skipping to change at line 116 | |
| Bool_t CheckCachePath(const char*); | | Bool_t CheckCachePath(const char*); | |
| Bool_t CheckBlockInCache(char*&, TFPBlock*); | | Bool_t CheckBlockInCache(char*&, TFPBlock*); | |
| char *GetBlockFromCache(const char*, Int_t); | | char *GetBlockFromCache(const char*, Int_t); | |
| void SaveBlockInCache(TFPBlock*); | | void SaveBlockInCache(TFPBlock*); | |
| | | | |
| Int_t SumHex(const char*); | | Int_t SumHex(const char*); | |
| Bool_t BinarySearchReadList(TFPBlock*, Long64_t, Int_t, Int_t*); | | Bool_t BinarySearchReadList(TFPBlock*, Long64_t, Int_t, Int_t*); | |
| Long64_t GetWaitTime(); | | Long64_t GetWaitTime(); | |
| | | | |
| void SetFile(TFile*); | | void SetFile(TFile*); | |
|
| TMutex* GetMutexSynch() const { return fMutexSynch; }; | | TCondition* GetCondNextFile() const { return fCondNextFile; }; | |
| | | | |
| ClassDef(TFilePrefetch, 0); // File block prefetcher | | ClassDef(TFilePrefetch, 0); // File block prefetcher | |
| }; | | }; | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 4 change blocks. |
| 12 lines changed or deleted | | 14 lines changed or added | |
|
| TProofPlayer.h | | TProofPlayer.h | |
|
| // @(#)root/proofplayer:$Id: TProofPlayer.h 40186 2011-07-11 12:00:50Z gani
s $ | | // @(#)root/proofplayer:$Id: TProofPlayer.h 44400 2012-05-31 13:42:20Z 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 263 | | skipping to change at line 263 | |
| | | | |
| protected: | | protected: | |
| TProof *fProof; // link to associated PROOF session | | TProof *fProof; // link to associated PROOF session | |
| TList *fOutputLists; // results returned by slaves | | TList *fOutputLists; // results returned by slaves | |
| TList *fFeedback; // reference for use on master | | TList *fFeedback; // reference for use on master | |
| TList *fFeedbackLists; // intermediate results | | TList *fFeedbackLists; // intermediate results | |
| TVirtualPacketizer *fPacketizer; // transform TDSet into packets for
slaves | | TVirtualPacketizer *fPacketizer; // transform TDSet into packets for
slaves | |
| Bool_t fMergeFiles; // is True when merging output files
centrally is needed | | Bool_t fMergeFiles; // is True when merging output files
centrally is needed | |
| 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 | |
|
| Bool_t fUseTH1Merge; // If kTRUE forces use of TH1::Merge
[kFALSE] | | Bool_t fMergeTH1OneByOne; // If kTRUE forces TH1 merge one
-by-one [kTRUE] | |
| | | | |
| 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); | | 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), | |
|
| fUseTH1Merge(kFALSE) | | fMergeTH1OneByOne(kTRUE) | |
| { fProgressStatus = new TProofPr
ogressStatus(); } | | { fProgressStatus = new TProofPr
ogressStatus(); } | |
| virtual ~TProofPlayerRemote(); // Owns the fOutput list | | virtual ~TProofPlayerRemote(); // Owns the fOutput list | |
| virtual Long64_t Process(TDSet *set, const char *selector, | | virtual Long64_t Process(TDSet *set, const char *selector, | |
| Option_t *option = "", Long64_t nentries = -1, | | Option_t *option = "", Long64_t nentries = -1, | |
| Long64_t firstentry = 0); | | Long64_t firstentry = 0); | |
| virtual Long64_t Finalize(Bool_t force = kFALSE, Bool_t sync = kFALSE); | | virtual Long64_t Finalize(Bool_t force = kFALSE, Bool_t sync = kFALSE); | |
| virtual Long64_t Finalize(TQueryResult *qr); | | virtual Long64_t Finalize(TQueryResult *qr); | |
| Long64_t DrawSelect(TDSet *set, const char *varexp, | | Long64_t DrawSelect(TDSet *set, const char *varexp, | |
| const char *selection, Option_t *option = "", | | const char *selection, Option_t *option = "", | |
| Long64_t nentries = -1, Long64_t firstentry =
0); | | Long64_t nentries = -1, Long64_t firstentry =
0); | |
| | | | |
End of changes. 3 change blocks. |
| 3 lines changed or deleted | | 3 lines changed or added | |
|
| TTree.h | | TTree.h | |
|
| // @(#)root/tree:$Id: TTree.h 41101 2011-10-03 16:23:48Z pcanal $ | | // @(#)root/tree:$Id: TTree.h 44281 2012-05-18 06:06: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 486 | | skipping to change at line 486 | |
| 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 ResetAfterMerge(TFileMergeInfo *); | | virtual void ResetAfterMerge(TFileMergeInfo *); | |
| 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); | |
| virtual void SetBasketSize(const char* bname, Int_t buffsize
= 16000); | | virtual void SetBasketSize(const char* bname, Int_t buffsize
= 16000); | |
| #if !defined(__CINT__) | | #if !defined(__CINT__) | |
| virtual Int_t SetBranchAddress(const char *bname,void *add, TB
ranch **ptr = 0); | | virtual Int_t SetBranchAddress(const char *bname,void *add, TB
ranch **ptr = 0); | |
| #endif | | #endif | |
| virtual Int_t SetBranchAddress(const char *bname,void *add, TC
lass *realClass, EDataType datatype, Bool_t isptr); | | virtual Int_t SetBranchAddress(const char *bname,void *add, TC
lass *realClass, EDataType datatype, Bool_t isptr); | |
| virtual Int_t SetBranchAddress(const char *bname,void *add, TB
ranch **ptr, TClass *realClass, EDataType datatype, Bool_t isptr); | | virtual Int_t SetBranchAddress(const char *bname,void *add, TB
ranch **ptr, TClass *realClass, EDataType datatype, Bool_t isptr); | |
| template <class T> Int_t SetBranchAddress(const char *bname, T **add, TB
ranch **ptr = 0) { | | template <class T> Int_t SetBranchAddress(const char *bname, T **add, TB
ranch **ptr = 0) { | |
| TClass *cl = TClass::GetClass(typeid(T)); | | TClass *cl = TClass::GetClass(typeid(T)); | |
| EDataType type = kOther_t; | | EDataType type = kOther_t; | |
| if (cl==0) type = TDataType::GetType(typeid(T)); | | if (cl==0) type = TDataType::GetType(typeid(T)); | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|