#ifndef ROO_RANDOMIZE_PARAM_MCS_MODULE
#define ROO_RANDOMIZE_PARAM_MCS_MODULE
#include "RooAbsMCStudyModule.h"
#include "RooRealVar.h"
#include <list>
#include <string>
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
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.