16 #ifndef ROO_SIM_GEN_CONTEXT
17 #define ROO_SIM_GEN_CONTEXT
24 class RooSimultaneous;
26 class RooAbsCategoryLValue ;
28 class RooSimGenContext :
public RooAbsGenContext {
30 RooSimGenContext(
const RooSimultaneous &model,
const RooArgSet &vars,
const RooDataSet *prototype= 0,
31 const RooArgSet* auxProto=0, Bool_t _verbose= kFALSE);
32 virtual ~RooSimGenContext();
33 virtual void setProtoDataOrder(Int_t* lut) ;
35 virtual void attach(
const RooArgSet& params) ;
37 virtual void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent=
"")
const ;
42 virtual void initGenerator(
const RooArgSet &theEvent);
43 virtual void generateEvent(RooArgSet &theEvent, Int_t remaining);
45 RooDataSet* createDataSet(
const char* name,
const char* title,
const RooArgSet& obs) ;
46 void updateFractions() ;
48 RooSimGenContext(
const RooSimGenContext& other) ;
50 RooAbsCategoryLValue* _idxCat{
nullptr};
51 RooArgSet* _idxCatSet{
nullptr};
52 const RooDataSet *_prototype{
nullptr};
53 const RooSimultaneous *_pdf{
nullptr};
54 std::vector<RooAbsGenContext*> _gcList ;
55 std::vector<int> _gcIndex ;
56 Bool_t _haveIdxProto{
false};
57 TString _idxCatName{};
59 Double_t* _fracThresh{
nullptr};
60 RooDataSet* _protoData{
nullptr};
62 RooArgSet _allVarsPdf{};
63 TIterator* _proxyIter{
nullptr};
65 ClassDef(RooSimGenContext,0)