ROOT logo
ROOT » MATH » PHYSICS » TFeldmanCousins

class TFeldmanCousins: public TObject

 TFeldmanCousins

 class to calculate the CL upper limit using
 the Feldman-Cousins method as described in PRD V57 #7, p3873-3889

 The default confidence interval calvculated using this method is 90%
 This is set either by having a default the constructor, or using the
 appropriate fraction when instantiating an object of this class (e.g. 0.9)

 The simple extension to a gaussian resolution function bounded at zero
 has not been addressed as yet -> `time is of the essence' as they write
 on the wall of the maze in that classic game ...

    VARIABLES THAT CAN BE ALTERED

 => depending on your desired precision: The intial values of fMuMin,
 fMuMax, fMuStep and fNMax are those used in the PRD:
   fMuMin = 0.0
   fMuMax = 50.0
   fMuStep= 0.005
 but there is total flexibility in changing this should you desire.


 see example of use in $ROOTSYS/tutorials/math/FeldmanCousins.C

 see note about: "Should I use TRolke, TFeldmanCousins, TLimit?"
  in the TRolke class description.

 Author: Adrian Bevan, Liverpool University

 Copyright Liverpool University 2001       bevan@slac.stanford.edu

Function Members (Methods)

public:
TFeldmanCousins(const TFeldmanCousins&)
TFeldmanCousins(Double_t newCL = 0.9, TString options = "")
virtual~TFeldmanCousins()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
Double_tCalculateLowerLimit(Double_t Nobserved, Double_t Nbackground)
Double_tCalculateUpperLimit(Double_t Nobserved, Double_t Nbackground)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tGetCL() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
Double_tGetLowerLimit() const
Double_tGetMuMax() const
Double_tGetMuMin() const
Double_tGetMuStep() const
virtual const char*TObject::GetName() const
Double_tGetNbackground() const
Double_tGetNMax() const
Double_tGetNobserved() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Double_tGetUpperLimit() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TFeldmanCousins&operator=(const TFeldmanCousins&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCL(Double_t newCL)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetMuMax(Double_t newMax = 50.0)
voidSetMuMin(Double_t newMin = 0.0)
voidSetMuStep(Double_t newMuStep = 0.005)
voidSetNbackground(Double_t Nbg)
voidSetNobserved(Double_t NObs)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Int_tFindLimitsFromTable(Double_t mu)
voidTObject::MakeZombie()
Double_tProb(Int_t N, Double_t mu, Double_t B)

Data Members

protected:
Double_tfCLconfidence level as a fraction [e.g. 90% = 0.9]
Double_tfLowerLimitthe calculated lower limit
Double_tfMuMaxmaximum value of signal to use in calculating the tables
Double_tfMuMinminimum value of signal to use in calculating the tables
Double_tfMuStepthe step in signal to use when generating tables
Int_tfNMax= (int)(fMuMax)
Int_tfNMuStep= (int)(fMuStep)
Double_tfNbackgroundinput number of background events
Double_tfNobservedinput number of observed events
Int_tfQUICKtake a short cut to speed up the process of generating a
Double_tfUpperLimitthe calculated upper limit

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TFeldmanCousins(Double_t newCL = 0.9, TString options = "")
constructor
~TFeldmanCousins()
Double_t CalculateLowerLimit(Double_t Nobserved, Double_t Nbackground)
 given Nobserved and Nbackground, try different values of mu that give lower limits that
are consistent with Nobserved.  The closed interval (plus any stragglers) corresponds
to the F&C interval

Double_t CalculateUpperLimit(Double_t Nobserved, Double_t Nbackground)
 given Nobserved and Nbackground, try different values of mu that give upper limits that
are consistent with Nobserved.  The closed interval (plus any stragglers) corresponds
to the F&C interval

Int_t FindLimitsFromTable(Double_t mu)
 calculate the probability table for a given mu for n = 0, NMAX
and return 1 if the number of observed events is consistent
with the CL bad

Double_t Prob(Int_t N, Double_t mu, Double_t B)
calculate the poissonian probability for
a mean of mu+B events with a variance of N

void SetMuMax(Double_t newMax = 50.0)
set maximum value of signal to use in calculating the tables
void SetMuStep(Double_t newMuStep = 0.005)
set the step in signal to use when generating tables
TFeldmanCousins(Double_t newCL = 0.9, TString options = "")
Double_t GetUpperLimit(void)
{ return fUpperLimit; }
Double_t GetLowerLimit(void)
{ return fLowerLimit; }
Double_t GetNobserved(void)
{ return fNobserved; }
Double_t GetNbackground(void)
{ return fNbackground; }
Double_t GetCL(void)
{ return fCL; }
Double_t GetMuMin(void)
{ return fMuMin; }
Double_t GetMuMax(void)
{ return fMuMax; }
Double_t GetMuStep(void)
{ return fMuStep; }
Double_t GetNMax(void)
{ return fNMax; }
void SetNobserved(Double_t NObs)
{ fNobserved = NObs; }
void SetNbackground(Double_t Nbg)
{ fNbackground = Nbg; }
void SetCL(Double_t newCL)
{ fCL = newCL; }
void SetMuMin(Double_t newMin = 0.0)
{ fMuMin = newMin; }