133 if (quickJump < 0.0) quickJump = 0.0;
135 for(i = iLower+1; i <=
fNMuStep; i++) {
165 for(i = 0; i <
fNMax; i++) {
167 if(muBest[i]<0.0) muBest[i] = 0.0;
170 if(probMuBest[i] == 0.0)
r[i] = 0.0;
171 else r[i] = p[i]/probMuBest[i];
179 Int_t iMax = rank[0];
180 Int_t iMin = rank[0];
181 for(i = 0; i <
fNMax; i++) {
183 if(iMax < rank[i]) iMax = rank[i];
184 if(iMin > rank[i]) iMin = rank[i];
192 delete [] probMuBest;
221 if(newMuStep == 0.0) {
222 std::cout <<
"TFeldmanCousins::SetMuStep ERROR New step size is zero - unable to change value"<< std::endl;
Class to calculate the CL upper limit using the Feldman-Cousins method as described in PRD V57 #7,...
void SetMuMin(Double_t newMin=0.0)
Double_t CalculateLowerLimit(Double_t Nobserved, Double_t Nbackground)
given Nobserved and Nbackground, try different values of mu that give lower limits that are consisten...
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.
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...
void SetMuStep(Double_t newMuStep=0.005)
Set the step in signal to use when generating tables.
void SetMuMax(Double_t newMax=50.0)
Set maximum value of signal to use in calculating the tables.
Double_t CalculateUpperLimit(Double_t Nobserved, Double_t Nbackground)
given Nobserved and Nbackground, try different values of mu that give upper limits that are consisten...
TFeldmanCousins(Double_t newCL=0.9, TString options="")
Constructor.
virtual ~TFeldmanCousins()
void ToLower()
Change string to lower-case.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Double_t Poisson(Double_t x, Double_t par)
Compute the Poisson distribution function for (x,par).
void Sort(Index n, const Element *a, Index *index, Bool_t down=kTRUE)
static uint64_t sum(uint64_t i)