73using namespace RooFit; 
   74using namespace RooStats; 
   76class BinCountTestStat : public TestStatistic { 
   78   BinCountTestStat(void) : fColumnName("tmp") {} 
   79   BinCountTestStat(string columnName) : fColumnName(columnName) {} 
   81   virtual Double_t Evaluate(RooAbsData &data, RooArgSet & /*nullPOI*/) 
   83      // This is the main method in the interface 
   85      for (int i = 0; i < data.numEntries(); i++) { 
   86         value += data.get(i)->getRealValue(fColumnName.c_str()); 
   90   virtual const TString GetVarName() const { return fColumnName; } 
   96   ClassDef(BinCountTestStat, 1) 
  132w.factory(
"Poisson::px(x[150,0,500],sum::splusb(s[0,0,100],b[100,0.1,300]))")
 
  133w.factory(
"Poisson::py(y[100,0.1,500],prod::taub(tau[1.],b))")
 
  153w.factory(
"PROJ::averagedModel(PROD::foo(px|b,py,prior_b),b)")
 
  158frame = 
w.var(
"x").frame(Range=(50, 230))
 
  159w.pdf(
"averagedModel").plotOn(frame, LineColor=
"r")
 
  160w.pdf(
"px").plotOn(frame, LineColor=
"g")
 
  161w.var(
"s").setVal(50.0)
 
  162w.pdf(
"averagedModel").plotOn(frame, LineColor=
"b")
 
  165w.var(
"s").setVal(0.0)
 
  172w.var(
"y").setVal(100)
 
  173w.var(
"x").setVal(150)
 
  174cdf = 
w.pdf(
"averagedModel").createCdf(
w.var(
"x"))
 
  177print(
"-----------------------------------------")
 
  179print(f
"Hybrid p-value from direct integration = {1 - cdf.getVal()}")
 
  180print(f
"Z_Gamma Significance  = {ROOT.RooStats.PValueToSignificance(1 - cdf.getVal())}")
 
  193print(
"-----------------------------------------")
 
  195print(f
"Z_Bi p-value (analytic): {p_Bi}")
 
  196print(f
"Z_Bi significance (analytic): {Z_Bi}")
 
  234w.var(
"s").setVal(0.0)
 
  243w.var(
"s").setVal(50.0)
 
  277w.factory(
"Gaussian::gauss_prior(b,y, expr::sqrty('sqrt(y)',y))")
 
  281w.factory(
"Lognormal::lognorm_prior(b,y, expr::kappa('1+1./sqrt(y)',y))")
 
  326print(
"-----------------------------------------")
 
  375print(
"-----------------------------------------")
 
  405w.var(
"x").setVal(150.0)
 
  406w.var(
"y").setVal(100.0)
 
  416w.var(
"s").setVal(0.0)
 
  426w.var(
"s").setVal(50.0)
 
  461w.factory(
"Gamma::gamma_y0(b,sum::temp0(y0,1),1,0)")
 
  462w.factory(
"Gaussian::gauss_prior_y0(b,y0, expr::sqrty0('sqrt(y0)',y0))")
 
  488print(
"-----------------------------------------")
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.