17 #ifndef ROO_RANDOMIZE_PARAM_MCS_MODULE
18 #define ROO_RANDOMIZE_PARAM_MCS_MODULE
24 class RooRandomizeParamMCSModule :
public RooAbsMCStudyModule {
27 RooRandomizeParamMCSModule() ;
28 RooRandomizeParamMCSModule(
const RooRandomizeParamMCSModule& other) ;
29 virtual ~RooRandomizeParamMCSModule() ;
31 void sampleUniform(RooRealVar& param, Double_t lo, Double_t hi) ;
32 void sampleGaussian(RooRealVar& param, Double_t mean, Double_t sigma) ;
34 void sampleSumUniform(
const RooArgSet& paramSet, Double_t lo, Double_t hi) ;
35 void sampleSumGauss(
const RooArgSet& paramSet, Double_t lo, Double_t hi) ;
37 Bool_t initializeInstance() ;
39 Bool_t initializeRun(Int_t ) ;
40 RooDataSet* finalizeRun() ;
42 Bool_t processBeforeGen(Int_t ) ;
48 UniParam(RooRealVar* p, Double_t lo, Double_t hi) : _param(p), _lo(lo), _hi(hi) {}
49 bool operator==(
const UniParam& other) {
return (_param==other._param) ; }
50 bool operator<(
const UniParam& other) {
return (_lo<other._lo) ; }
58 UniParamSet(
const RooArgSet& pset, Double_t lo, Double_t hi) : _pset(pset), _lo(lo), _hi(hi) {}
59 bool operator==(
const UniParamSet& other) {
return (_lo==other._lo) ; }
60 bool operator<(
const UniParamSet& other) {
return (_lo<other._lo) ; }
68 GausParam(RooRealVar* p, Double_t mean, Double_t sigma) : _param(p), _mean(mean), _sigma(sigma) {}
69 bool operator==(
const GausParam& other) {
return (_param==other._param) ; }
70 bool operator<(
const GausParam& other) {
return (_mean<other._mean) ; }
78 GausParamSet(
const RooArgSet& pset, Double_t mean, Double_t sigma) : _pset(pset), _mean(mean), _sigma(sigma) {}
79 bool operator==(
const GausParamSet& other) {
return (_mean==other._mean) ; }
80 bool operator<(
const GausParamSet& other) {
return (_mean<other._mean) ; }
86 std::list<UniParam> _unifParams ;
87 std::list<UniParamSet> _unifParamSets ;
88 std::list<GausParam> _gausParams ;
89 std::list<GausParamSet> _gausParamSets ;
91 RooArgSet _genParSet ;
94 ClassDef(RooRandomizeParamMCSModule,0)