#ifndef ROO_RANDOMIZE_PARAM_MCS_MODULE
#define ROO_RANDOMIZE_PARAM_MCS_MODULE
#include "RooAbsMCStudyModule.h"
#include "RooRealVar.h"
#include <list>
class RooRandomizeParamMCSModule : public RooAbsMCStudyModule {
public:
RooRandomizeParamMCSModule() ;
RooRandomizeParamMCSModule(const RooRandomizeParamMCSModule& other) ;
virtual ~RooRandomizeParamMCSModule() ;
void sampleUniform(RooRealVar& param, Double_t lo, Double_t hi) ;
void sampleGaussian(RooRealVar& param, Double_t mean, Double_t sigma) ;
void sampleSumUniform(const RooArgSet& paramSet, Double_t lo, Double_t hi) ;
void sampleSumGauss(const RooArgSet& paramSet, Double_t lo, Double_t hi) ;
Bool_t initializeInstance() ;
Bool_t initializeRun(Int_t ) ;
RooDataSet* finalizeRun() ;
Bool_t processBeforeGen(Int_t ) ;
private:
struct UniParam {
UniParam() {}
UniParam(RooRealVar* p, Double_t lo, Double_t hi) : _param(p), _lo(lo), _hi(hi) {}
bool operator==(const UniParam& other) { return (_param==other._param) ; }
bool operator<(const UniParam& other) { return (_lo<other._lo) ; }
RooRealVar* _param ;
Double_t _lo ;
Double_t _hi ;
} ;
struct UniParamSet {
UniParamSet() {}
UniParamSet(const RooArgSet& pset, Double_t lo, Double_t hi) : _pset(pset), _lo(lo), _hi(hi) {}
bool operator==(const UniParamSet& other) { return (_lo==other._lo) ; }
bool operator<(const UniParamSet& other) { return (_lo<other._lo) ; }
RooArgSet _pset ;
Double_t _lo ;
Double_t _hi ;
} ;
struct GausParam {
GausParam() {}
GausParam(RooRealVar* p, Double_t mean, Double_t sigma) : _param(p), _mean(mean), _sigma(sigma) {}
bool operator==(const GausParam& other) { return (_param==other._param) ; }
bool operator<(const GausParam& other) { return (_mean<other._mean) ; }
RooRealVar* _param ;
Double_t _mean ;
Double_t _sigma ;
} ;
struct GausParamSet {
GausParamSet() {}
GausParamSet(const RooArgSet& pset, Double_t mean, Double_t sigma) : _pset(pset), _mean(mean), _sigma(sigma) {}
bool operator==(const GausParamSet& other) { return (_mean==other._mean) ; }
bool operator<(const GausParamSet& other) { return (_mean<other._mean) ; }
RooArgSet _pset ;
Double_t _mean ;
Double_t _sigma ;
} ;
std::list<UniParam> _unifParams ;
std::list<UniParamSet> _unifParamSets ;
std::list<GausParam> _gausParams ;
std::list<GausParamSet> _gausParamSets ;
RooArgSet _genParSet ;
RooDataSet* _data ;
ClassDef(RooRandomizeParamMCSModule,0)
} ;
#endif
Last change: Thu Nov 13 09:42:46 2008
Last generated: 2008-11-13 09:42
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.