84 oocoutW(
nullptr,InputArguments) <<
"RooRandomizeParamMCSModule::initializeInstance: variable " << param.
GetName() <<
" is not a parameter of RooMCStudy model and is ignored!" << std::endl ;
105 oocoutW(
nullptr,InputArguments) <<
"RooRandomizeParamMCSModule::initializeInstance: variable " << param.
GetName() <<
" is not a parameter of RooMCStudy model and is ignored!" << std::endl ;
131 oocoutW(
nullptr,InputArguments) <<
"RooRandomizeParamMCSModule::sampleSumUniform() ERROR: input parameter " << arg->GetName() <<
" is not a RooRealVar and is ignored" << std::endl ;
144 oocoutW(
nullptr,InputArguments) <<
"RooRandomizeParamMCSModule::sampleSumUniform: variable " << arg2->GetName() <<
" is not a parameter of RooMCStudy model and is ignored!" << std::endl ;
146 okset2.
add(*actualVar) ;
180 oocoutW(
nullptr,InputArguments) <<
"RooRandomizeParamMCSModule::sampleSumGauss() ERROR: input parameter " << arg->GetName() <<
" is not a RooRealVar and is ignored" << std::endl ;
193 oocoutW(
nullptr,InputArguments) <<
"RooRandomizeParamMCSModule::sampleSumUniform: variable " << arg2->GetName() <<
" is not a parameter of RooMCStudy model and is ignored!" << std::endl ;
195 okset2.
add(*actualVar) ;
218 std::list<UniParam>::iterator uiter ;
224 oocoutW(
nullptr,InputArguments) <<
"RooRandomizeParamMCSModule::initializeInstance: variable " << uiter->_param->GetName() <<
" is not a parameter of RooMCStudy model and is ignored!" << std::endl ;
228 uiter->_param = actualPar ;
231 std::string parName = std::string(uiter->_param->GetName()) +
"_gen";
232 std::string parTitle = std::string(uiter->_param->GetTitle()) +
" as generated";
233 _genParSet.addOwned(std::make_unique<RooRealVar>(parName.c_str(),parTitle.c_str(),0));
237 std::list<GausParam>::iterator giter ;
243 oocoutW(
nullptr,InputArguments) <<
"RooRandomizeParamMCSModule::initializeInstance: variable " << giter->_param->GetName() <<
" is not a parameter of RooMCStudy model and is ignored!" << std::endl ;
247 giter->_param = actualPar ;
250 std::string parName = std::string(giter->_param->GetName()) +
"_gen";
251 std::string parTitle = std::string(giter->_param->GetTitle()) +
" as generated";
252 _genParSet.addOwned(std::make_unique<RooRealVar>(parName.c_str(),parTitle.c_str(),0));
257 std::list<UniParamSet>::iterator usiter ;
265 oocoutW(
nullptr,InputArguments) <<
"RooRandomizeParamMCSModule::initializeInstance: variable " << arg->
GetName() <<
" is not a parameter of RooMCStudy model and is ignored!" << std::endl ;
267 actualPSet.
add(*actualVar) ;
270 usiter->_pset.removeAll() ;
271 usiter->_pset.add(actualPSet) ;
275 std::string parName = std::string(param->GetName()) +
"_gen";
276 std::string parTitle = std::string(param->GetTitle()) +
" as generated";
277 _genParSet.addOwned(std::make_unique<RooRealVar>(parName.c_str(),parTitle.c_str(),0));
282 std::list<GausParamSet>::iterator ugiter ;
290 oocoutW(
nullptr,InputArguments) <<
"RooRandomizeParamMCSModule::initializeInstance: variable " << arg->
GetName() <<
" is not a parameter of RooMCStudy model and is ignored!" << std::endl ;
292 actualPSet.
add(*actualVar) ;
296 ugiter->_pset.removeAll() ;
297 ugiter->_pset.add(actualPSet) ;
301 std::string parName = std::string(param->GetName()) +
"_gen";
302 std::string parTitle = std::string(param->GetTitle()) +
" as generated";
303 _genParSet.addOwned(std::make_unique<RooRealVar>(parName.c_str(),parTitle.c_str(),0));
308 _data = std::make_unique<RooDataSet>(
"DeltaLLSigData",
"Additional data for Delta(-log(L)) study",
_genParSet) ;
333 std::list<UniParam>::iterator uiter ;
336 oocoutE(
nullptr,Generation) <<
"RooRandomizeParamMCSModule::processBeforeGen: applying uniform smearing to generator parameter "
337 << uiter->_param->GetName() <<
" in range [" << uiter->_lo <<
"," << uiter->_hi <<
"], chosen value for this sample is " << newVal << std::endl ;
338 uiter->_param->setVal(newVal) ;
345 std::list<GausParam>::iterator giter ;
348 oocoutI(
nullptr,Generation) <<
"RooRandomizeParamMCSModule::processBeforeGen: applying gaussian smearing to generator parameter "
349 << giter->_param->GetName() <<
" with a mean of " << giter->_mean <<
" and a width of " << giter->_sigma <<
", chosen value for this sample is " << newVal << std::endl ;
350 giter->_param->setVal(newVal) ;
357 std::list<UniParamSet>::iterator usiter ;
362 oocoutI(
nullptr,Generation) <<
"RooRandomizeParamMCSModule::processBeforeGen: applying uniform smearing to sum of set of generator parameters "
364 <<
" in range [" << usiter->_lo <<
"," << usiter->_hi <<
"], chosen sum value for this sample is " << newVal << std::endl ;
367 RooAddition sumVal(
"sumVal",
"sumVal",usiter->_pset) ;
368 double compScaleFactor = newVal/sumVal.
getVal() ;
372 param->setVal(param->getVal()*compScaleFactor) ;
374 genpar->
setVal(param->getVal()) ;
379 std::list<GausParamSet>::iterator gsiter ;
384 oocoutI(
nullptr,Generation) <<
"RooRandomizeParamMCSModule::processBeforeGen: applying gaussian smearing to sum of set of generator parameters "
386 <<
" with a mean of " << gsiter->_mean <<
" and a width of " << gsiter->_sigma
387 <<
", chosen value for this sample is " << newVal << std::endl ;
390 RooAddition sumVal(
"sumVal",
"sumVal",gsiter->_pset) ;
391 double compScaleFactor = newVal/sumVal.
getVal() ;
395 param->setVal(param->getVal()*compScaleFactor) ;
397 genpar->
setVal(param->getVal()) ;
ROOT::RRangeCast< T, false, Range_t > static_range_cast(Range_t &&coll)
int Int_t
Signed integer 4 bytes (int).
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
Common abstract base class for objects that represent a value and a "shape" in RooFit.
virtual bool add(const RooAbsArg &var, bool silent=false)
Add the specified argument to list.
RooAbsArg * find(const char *name) const
Find object with given name in list.
RooAbsMCStudyModule(const char *name, const char *title)
Constructor.
RooArgSet * genParams()
Return current value of generator model parameters.
double getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
Calculates the sum of a set of RooAbsReal terms, or when constructed with two sets,...
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Container class to hold unbinned data.
static TRandom * randomGenerator()
Return a pointer to a singleton random-number generator implementation.
void sampleSumGauss(const RooArgSet ¶mSet, double lo, double hi)
Request gaussian smearing of sum of parameters in paramSet uniform smearing with mean 'mean' and widt...
std::unique_ptr< RooDataSet > _data
bool initializeRun(Int_t) override
Initialize module at beginning of RooCMStudy run.
std::list< GausParam > _gausParams
!
void sampleSumUniform(const RooArgSet ¶mSet, double lo, double hi)
Request uniform smearing of sum of parameters in paramSet uniform smearing in range [lo,...
std::list< UniParamSet > _unifParamSets
!
void sampleGaussian(RooRealVar ¶m, double mean, double sigma)
Request Gaussian smearing of param in with mean 'mean' and width 'sigma' in RooMCStudy generation cyc...
bool processBeforeGen(Int_t) override
Apply all smearings to generator parameters.
~RooRandomizeParamMCSModule() override
RooRandomizeParamMCSModule()
Constructor.
RooDataSet * finalizeRun() override
Return auxiliary data of this module so that it is merged with RooMCStudy::fitParDataSet().
bool initializeInstance() override
Initialize module after attachment to RooMCStudy object.
void sampleUniform(RooRealVar ¶m, double lo, double hi)
Request uniform smearing of param in range [lo,hi] in RooMCStudy generation cycle.
std::list< GausParamSet > _gausParamSets
!
bool processAfterFit(bool fitOk) override
Method called after fit has been performed.
std::list< UniParam > _unifParams
!
Variable that can be changed from the outside.
void setVal(double value) override
Set value of variable to 'value'.
const char * GetName() const override
Returns name of object.
virtual Double_t Gaus(Double_t mean=0, Double_t sigma=1)
Samples a random number from the standard Normal (Gaussian) Distribution with the given mean and sigm...
virtual Double_t Uniform(Double_t x1=1)
Returns a uniform deviate on the interval (0, x1).