// @(#)root/roostats:$Id$
// Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke
/*************************************************************************
 * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOSTATS_TestStatistic
#define ROOSTATS_TestStatistic

//_________________________________________________
/*
BEGIN_HTML
<p>
TestStatistic is an interface class to provide a facility for construction test statistics
distributions to the NeymanConstruction class. All the actual samplers inherit from this class.
</p>
END_HTML
*/
//

#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif

class RooArgSet; 
class RooAbsData; 

namespace RooStats {

class TestStatistic {

   public:
      //TestStatistic();
      virtual ~TestStatistic() {
      }

      // Main interface to evaluate the test statistic on a dataset given the
      // values for the Null Parameters Of Interest.
      virtual Double_t Evaluate(RooAbsData& data, RooArgSet& nullPOI) = 0;

      virtual const TString GetVarName() const = 0;

      // Defines the sign convention of the test statistic. Overwrite function if necessary.
      virtual  bool PValueIsRightTail(void) const { return true; }

      // return detailed output: for fits this can be pulls, processing time, ... The returned pointer will not loose validity until another call to Evaluate.
      virtual const RooArgSet* GetDetailedOutput() const { return NULL; }

   protected:
   ClassDef(TestStatistic,1) // Interface for a TestStatistic
};

} // end namespace RooStats


#endif
 TestStatistic.h:1
 TestStatistic.h:2
 TestStatistic.h:3
 TestStatistic.h:4
 TestStatistic.h:5
 TestStatistic.h:6
 TestStatistic.h:7
 TestStatistic.h:8
 TestStatistic.h:9
 TestStatistic.h:10
 TestStatistic.h:11
 TestStatistic.h:12
 TestStatistic.h:13
 TestStatistic.h:14
 TestStatistic.h:15
 TestStatistic.h:16
 TestStatistic.h:17
 TestStatistic.h:18
 TestStatistic.h:19
 TestStatistic.h:20
 TestStatistic.h:21
 TestStatistic.h:22
 TestStatistic.h:23
 TestStatistic.h:24
 TestStatistic.h:25
 TestStatistic.h:26
 TestStatistic.h:27
 TestStatistic.h:28
 TestStatistic.h:29
 TestStatistic.h:30
 TestStatistic.h:31
 TestStatistic.h:32
 TestStatistic.h:33
 TestStatistic.h:34
 TestStatistic.h:35
 TestStatistic.h:36
 TestStatistic.h:37
 TestStatistic.h:38
 TestStatistic.h:39
 TestStatistic.h:40
 TestStatistic.h:41
 TestStatistic.h:42
 TestStatistic.h:43
 TestStatistic.h:44
 TestStatistic.h:45
 TestStatistic.h:46
 TestStatistic.h:47
 TestStatistic.h:48
 TestStatistic.h:49
 TestStatistic.h:50
 TestStatistic.h:51
 TestStatistic.h:52
 TestStatistic.h:53
 TestStatistic.h:54
 TestStatistic.h:55
 TestStatistic.h:56
 TestStatistic.h:57
 TestStatistic.h:58
 TestStatistic.h:59
 TestStatistic.h:60