11 #ifndef ROOSTATS_HypoTestCalculatorGeneric 
   12 #define ROOSTATS_HypoTestCalculatorGeneric 
   34    class HypoTestCalculatorGeneric : 
public HypoTestCalculator {
 
   37       HypoTestCalculatorGeneric(
 
   38                         const RooAbsData &data,
 
   39                         const ModelConfig &altModel,
 
   40                         const ModelConfig &nullModel,
 
   41                         TestStatSampler* sampler=0
 
   45       ~HypoTestCalculatorGeneric();
 
   51       virtual HypoTestResult* GetHypoTest() 
const;
 
   54       virtual void SetNullModel(
const ModelConfig &nullModel) { fNullModel = &nullModel; }
 
   55       const RooAbsData * GetData(
void)
 const { 
return fData; }
 
   56       const ModelConfig* GetNullModel(
void)
 const { 
return fNullModel; }
 
   57       virtual const RooArgSet* GetFitInfo()
 const { 
return NULL; }
 
   59       virtual void SetAlternateModel(
const ModelConfig &altModel) { fAltModel = &altModel; }
 
   60       const ModelConfig* GetAlternateModel(
void)
 const { 
return fAltModel; }
 
   62       virtual void SetData(RooAbsData &data) { fData = &data; }
 
   66       TestStatSampler* GetTestStatSampler(
void)
 const { 
return fTestStatSampler; }
 
   71       void UseSameAltToys();
 
   76       virtual int CheckHook(
void)
 const { 
return 0; }
 
   77       virtual int PreNullHook(RooArgSet* , 
double )
 const { 
return 0; }
 
   78       virtual int PreAltHook(RooArgSet* , 
double )
 const { 
return 0; }
 
   79       virtual void PreHook()
 const { }
 
   80       virtual void PostHook()
 const { }
 
   83       const ModelConfig *fAltModel;
 
   84       const ModelConfig *fNullModel;
 
   85       const RooAbsData *fData;
 
   86       TestStatSampler *fTestStatSampler;
 
   87       TestStatSampler *fDefaultSampler;
 
   88       TestStatistic *fDefaultTestStat;
 
   90       unsigned int fAltToysSeed;   
 
   93       void SetupSampler(
const ModelConfig& model) 
const;
 
   94       void SetAdaptiveLimits(Double_t obsTestStat, Bool_t forNull) 
const;
 
   95       SamplingDistribution* GenerateSamplingDistribution(
 
   96          ModelConfig *thisModel,
 
   98          RooAbsPdf *impDens=NULL,
 
   99          const RooArgSet *impSnapshot=NULL
 
  104    ClassDef(HypoTestCalculatorGeneric,2)