ROOT logo

From $ROOTSYS/tutorials/roostats/TwoSidedFrequentistUpperLimitWithBands.C

/*
TwoSidedFrequentistUpperLimitWithBands

Author: Kyle Cranmer, 
Contributions from Aaron Armbruster, Haoshuang Ji, Haichen Wang and Daniel Whiteson
date: Dec. 2010 - Feb. 2011
v1. Jan 28, 2010
v2. March, 2010 
v3. May, 2010 (uses 5.29 to fix global obs for simpdf)

This is a standard demo that can be used with any ROOT file 
prepared in the standard way.  You specify:
 - name for input ROOT file
 - name of workspace inside ROOT file that holds model and data
 - name of ModelConfig that specifies details for calculator tools
 - name of dataset 

With default parameters the macro will attempt to run the 
standard hist2workspace example and read the ROOT file
that it produces.  

You may want to control:
  double confidenceLevel=0.95;
  double additionalToysFac = 1.;  
  int nPointsToScan = 30;
  int nToyMC = 500;

This uses a modified version of the profile likelihood ratio as
a test statistic for upper limits (eg. test stat = 0 if muhat>mu).

Based on the observed data, one defines a set of parameter points
to be tested based on the value of the parameter of interest 
and the conditional MLE (eg. profiled) values of the nuisance parameters.

At each parameter point, pseudo-experiments are generated using this
fixed reference model and then the test statistic is evaluated.
The auxiliary measurments (global observables) associated with the 
constraint terms in nuisance parameters are also fluctuated in the
process of generating the pseudo-experiments in a frequentist manner
forming an 'unconditional ensemble'.  One could form a 'conditional' 
ensemble in which these auxiliary measuements are fixed.  Note that the 
nuisance parameters are not randomized, which is a Bayesian procedure.
Note, the nuisance parameters are floating in the fits.  For each point,
the threshold that defines the 95% acceptance region is found.  This
forms a "Confidence Belt".  

After constructing the confidence belt, one can find the confidence
interval for any particular dataset by finding the intersection
of the observed test statistic and the confidence belt.  First
this is done on the observed data to get an observed 1-sided upper limt.

Finally, there expected limit and bands (from background-only) are
formed by generating background-only data and finding the upper limit.
The background-only is defined as such that the nuisance parameters are
fixed to their best fit value based on the data with the signal rate fixed to 0.
The bands are done by hand for now, will later be part of the RooStats tools.

On a technical note, this technique IS the generalization of Feldman-Cousins 
with nuisance parameters.

Building the confidence belt can be computationally expensive.  
Once it is built, one could save it to a file and use it in a separate step.  

We can use PROOF to speed things along in parallel, however, 
the test statistic has to be installed on the workers
so either turn off PROOF or include the modified test statistic
in your $ROOTSYS/roofit/roostats/inc directory,
add the additional line to the LinkDef.h file,
and recompile root.

Note, if you have a boundary on the parameter of interest (eg. cross-section) 
the threshold on the two-sided test statistic starts off at moderate values and plateaus.

[#0] PROGRESS:Generation -- generated toys: 500 / 999
NeymanConstruction: Prog: 12/50 total MC = 39 this test stat = 0
 SigXsecOverSM=0.69 alpha_syst1=0.136515 alpha_syst3=0.425415 beta_syst2=1.08496 [-1e+30, 0.011215]  in interval = 1

this tells you the values of the parameters being used to generate the pseudo-experiments
and the threshold in this case is 0.011215.  One would expect for 95% that the threshold
would be ~1.35 once the cross-section is far enough away from 0 that it is essentially 
unaffected by the boundary.  As one reaches the last points in the scan, the 
theshold starts to get artificially high.  This is because the range of the parameter in 
the fit is the same as the range in the scan.  In the future, these should be independently 
controled, but they are not now.  As a result the ~50% of pseudo-experiments that have an 
upward fluctuation end up with muhat = muMax.  Because of this, the upper range of the 
parameter should be well above the expected upper limit... but not too high or one will 
need a very large value of nPointsToScan to resolve the relevant region.  This can be 
improved, but this is the first version of this script.

Important note: when the model includes external constraint terms, like a Gaussian
constraint to a nuisance parameter centered around some nominal value there is
a subtlety.  The asymptotic results are all based on the assumption that all the
measurements fluctuate... including the nominal values from auxiliary measurements.
If these do not fluctuate, this corresponds to an "conditional ensemble".  The
result is that the distribution of the test statistic can become very non-chi^2.  
This results in thresholds that become very large. 
*/

#include "TFile.h"
#include "TROOT.h"
#include "TH1F.h"
#include "TCanvas.h"
#include "TSystem.h"
#include <iostream>

#include "RooWorkspace.h"
#include "RooSimultaneous.h"
#include "RooAbsData.h"

#include "RooStats/ModelConfig.h"
#include "RooStats/FeldmanCousins.h"
#include "RooStats/ToyMCSampler.h"
#include "RooStats/PointSetInterval.h"
#include "RooStats/ConfidenceBelt.h"

#include "RooStats/RooStatsUtils.h"
#include "RooStats/ProfileLikelihoodTestStat.h"

using namespace RooFit;
using namespace RooStats;
using namespace std; 

bool useProof = true;  // flag to control whether to use Proof
int nworkers = 0;   // number of workers (default use all available cores)

/////////////////////////////////////////////////////////////////////////

void TwoSidedFrequentistUpperLimitWithBands(const char* infile = "",
					    const char* workspaceName = "combined",
					    const char* modelConfigName = "ModelConfig",
					    const char* dataName = "obsData"){


  double confidenceLevel=0.95;
  // degrade/improve number of pseudo-experiments used to define the confidence belt.  
  // value of 1 corresponds to default number of toys in the tail, which is 50/(1-confidenceLevel)
  double additionalToysFac = 0.5;  
  int nPointsToScan = 20; // number of steps in the parameter of interest 
  int nToyMC = 200; // number of toys used to define the expected limit and band

  /////////////////////////////////////////////////////////////
  // First part is just to access a user-defined file 
  // or create the standard example file if it doesn't exist
  ////////////////////////////////////////////////////////////
  const char* filename = "";
   if (!strcmp(infile,"")) {
      filename = "results/example_combined_GaussExample_model.root";
      bool fileExist = !gSystem->AccessPathName(filename); // note opposite return code
      // if file does not exists generate with histfactory
      if (!fileExist) {
#ifdef _WIN32
         cout << "HistFactory file cannot be generated on Windows - exit" << endl;
         return;
#endif
         // Normally this would be run on the command line
         cout <<"will run standard hist2workspace example"<<endl;
         gROOT->ProcessLine(".! prepareHistFactory .");
         gROOT->ProcessLine(".! hist2workspace config/example.xml");
         cout <<"\n\n---------------------"<<endl;
         cout <<"Done creating example input"<<endl;
         cout <<"---------------------\n\n"<<endl;
      }
      
   }
   else
      filename = infile;
   
   // Try to open the file
   TFile *file = TFile::Open(filename);
   
   // if input file was specified byt not found, quit
   if(!file ){
      cout <<"StandardRooStatsDemoMacro: Input file " << filename << " is not found" << endl;
      return;
   }
 
  /////////////////////////////////////////////////////////////
  // Now get the data and workspace
  ////////////////////////////////////////////////////////////

  // get the workspace out of the file
  RooWorkspace* w = (RooWorkspace*) file->Get(workspaceName);
  if(!w){
    cout <<"workspace not found" << endl;
    return;
  }

  // get the modelConfig out of the file
  ModelConfig* mc = (ModelConfig*) w->obj(modelConfigName);

  // get the modelConfig out of the file
  RooAbsData* data = w->data(dataName);

  // make sure ingredients are found
  if(!data || !mc){
    w->Print();
    cout << "data or ModelConfig was not found" <<endl;
    return;
  }

  cout << "Found data and ModelConfig:" <<endl;
  mc->Print();

  /////////////////////////////////////////////////////////////
  // Now get the POI for convenience
  // you may want to adjust the range of your POI
  ////////////////////////////////////////////////////////////
  RooRealVar* firstPOI = (RooRealVar*) mc->GetParametersOfInterest()->first();
  //  firstPOI->setMin(0);
  //  firstPOI->setMax(10);

  /////////////////////////////////////////////
  // create and use the FeldmanCousins tool
  // to find and plot the 95% confidence interval
  // on the parameter of interest as specified
  // in the model config
  // REMEMBER, we will change the test statistic
  // so this is NOT a Feldman-Cousins interval
  FeldmanCousins fc(*data,*mc);
  fc.SetConfidenceLevel(confidenceLevel); 
  fc.AdditionalNToysFactor(additionalToysFac); // improve sampling that defines confidence belt
  //  fc.UseAdaptiveSampling(true); // speed it up a bit, but don't use for expectd limits
  fc.SetNBins(nPointsToScan); // set how many points per parameter of interest to scan
  fc.CreateConfBelt(true); // save the information in the belt for plotting

  /////////////////////////////////////////////
  // Feldman-Cousins is a unified limit by definition
  // but the tool takes care of a few things for us like which values
  // of the nuisance parameters should be used to generate toys.
  // so let's just change the test statistic and realize this is 
  // no longer "Feldman-Cousins" but is a fully frequentist Neyman-Construction.
  //  fc.GetTestStatSampler()->SetTestStatistic(&onesided);
  // ((ToyMCSampler*) fc.GetTestStatSampler())->SetGenerateBinned(true);
  ToyMCSampler*  toymcsampler = (ToyMCSampler*) fc.GetTestStatSampler(); 
  ProfileLikelihoodTestStat* testStat = dynamic_cast<ProfileLikelihoodTestStat*>(toymcsampler->GetTestStatistic());

  // Since this tool needs to throw toy MC the PDF needs to be
  // extended or the tool needs to know how many entries in a dataset
  // per pseudo experiment.  
  // In the 'number counting form' where the entries in the dataset
  // are counts, and not values of discriminating variables, the
  // datasets typically only have one entry and the PDF is not
  // extended.  
  if(!mc->GetPdf()->canBeExtended()){
    if(data->numEntries()==1)     
      fc.FluctuateNumDataEntries(false);
    else
      cout <<"Not sure what to do about this model" <<endl;
  }

  // We can use PROOF to speed things along in parallel
  // However, the test statistic has to be installed on the workers
  // so either turn off PROOF or include the modified test statistic
  // in your $ROOTSYS/roofit/roostats/inc directory,
  // add the additional line to the LinkDef.h file,
  // and recompile root.
  if (useProof) {
     ProofConfig pc(*w, nworkers, "",false); 
     if(mc->GetGlobalObservables()){
        cout << "will use global observables for unconditional ensemble"<<endl;
        mc->GetGlobalObservables()->Print();
        toymcsampler->SetGlobalObservables(*mc->GetGlobalObservables());
     }
     toymcsampler->SetProofConfig(&pc);	// enable proof
  }


  // Now get the interval
  PointSetInterval* interval = fc.GetInterval();
  ConfidenceBelt* belt = fc.GetConfidenceBelt();
 
  // print out the iterval on the first Parameter of Interest
  cout << "\n95% interval on " <<firstPOI->GetName()<<" is : ["<<
    interval->LowerLimit(*firstPOI) << ", "<<
    interval->UpperLimit(*firstPOI) <<"] "<<endl;

  // get observed UL and value of test statistic evaluated there
  RooArgSet tmpPOI(*firstPOI);
  double observedUL = interval->UpperLimit(*firstPOI);
  firstPOI->setVal(observedUL);
  double obsTSatObsUL = fc.GetTestStatSampler()->EvaluateTestStatistic(*data,tmpPOI);


  // Ask the calculator which points were scanned
  RooDataSet* parameterScan = (RooDataSet*) fc.GetPointsToScan();
  RooArgSet* tmpPoint;

  // make a histogram of parameter vs. threshold
  TH1F* histOfThresholds = new TH1F("histOfThresholds","",
				    parameterScan->numEntries(),
				    firstPOI->getMin(),
				    firstPOI->getMax());
  histOfThresholds->GetXaxis()->SetTitle(firstPOI->GetName());
  histOfThresholds->GetYaxis()->SetTitle("Threshold");

  // loop through the points that were tested and ask confidence belt
  // what the upper/lower thresholds were.
  // For FeldmanCousins, the lower cut off is always 0
  for(Int_t i=0; i<parameterScan->numEntries(); ++i){
    tmpPoint = (RooArgSet*) parameterScan->get(i)->clone("temp");
    //cout <<"get threshold"<<endl;
    double arMax = belt->GetAcceptanceRegionMax(*tmpPoint);
    double poiVal = tmpPoint->getRealValue(firstPOI->GetName()) ;
    histOfThresholds->Fill(poiVal,arMax);
  }
  TCanvas* c1 = new TCanvas();
  c1->Divide(2);
  c1->cd(1);
  histOfThresholds->SetMinimum(0);
  histOfThresholds->Draw();
  c1->cd(2);

  /////////////////////////////////////////////////////////////
  // Now we generate the expected bands and power-constriant
  ////////////////////////////////////////////////////////////

  // First: find parameter point for mu=0, with conditional MLEs for nuisance parameters
  RooAbsReal* nll = mc->GetPdf()->createNLL(*data);
  RooAbsReal* profile = nll->createProfile(*mc->GetParametersOfInterest());
  firstPOI->setVal(0.);
  profile->getVal(); // this will do fit and set nuisance parameters to profiled values
  RooArgSet* poiAndNuisance = new RooArgSet();
  if(mc->GetNuisanceParameters())
    poiAndNuisance->add(*mc->GetNuisanceParameters());
  poiAndNuisance->add(*mc->GetParametersOfInterest());
  w->saveSnapshot("paramsToGenerateData",*poiAndNuisance);
  RooArgSet* paramsToGenerateData = (RooArgSet*) poiAndNuisance->snapshot();
  cout << "\nWill use these parameter points to generate pseudo data for bkg only" << endl;
  paramsToGenerateData->Print("v");


  RooArgSet unconditionalObs;
  unconditionalObs.add(*mc->GetObservables());
  unconditionalObs.add(*mc->GetGlobalObservables()); // comment this out for the original conditional ensemble

  double CLb=0;
  double CLbinclusive=0;

  // Now we generate background only and find distribution of upper limits
  TH1F* histOfUL = new TH1F("histOfUL","",100,0,firstPOI->getMax());
  histOfUL->GetXaxis()->SetTitle("Upper Limit (background only)");
  histOfUL->GetYaxis()->SetTitle("Entries");
  for(int imc=0; imc<nToyMC; ++imc){

    // set parameters back to values for generating pseudo data
    //    cout << "\n get current nuis, set vals, print again" << endl;
    w->loadSnapshot("paramsToGenerateData");
    //    poiAndNuisance->Print("v");

    RooDataSet* toyData = 0;
    // now generate a toy dataset for the main measurement
    if(!mc->GetPdf()->canBeExtended()){
      if(data->numEntries()==1)     
	toyData = mc->GetPdf()->generate(*mc->GetObservables(),1);
      else
	cout <<"Not sure what to do about this model" <<endl;
    } else{
      //      cout << "generating extended dataset"<<endl;
      toyData = mc->GetPdf()->generate(*mc->GetObservables(),Extended());
    }

    // generate global observables
    // need to be careful for simpdf.  
    // In ROOT 5.28 there is a problem with generating global observables
    // with a simultaneous PDF.  In 5.29 there is a solution with 
    // RooSimultaneous::generateSimGlobal, but this may change to
    // the standard generate interface in 5.30.

    RooSimultaneous* simPdf = dynamic_cast<RooSimultaneous*>(mc->GetPdf());
    if(!simPdf){
      RooDataSet *one = mc->GetPdf()->generate(*mc->GetGlobalObservables(), 1);
      const RooArgSet *values = one->get();
      RooArgSet *allVars = mc->GetPdf()->getVariables();
      *allVars = *values;
      delete allVars;
      delete one;
    } else {      
      RooDataSet* one = simPdf->generateSimGlobal(*mc->GetGlobalObservables(),1);
      const RooArgSet *values = one->get();
      RooArgSet *allVars = mc->GetPdf()->getVariables();
      *allVars = *values;
      delete allVars;
      delete one;

    }
    

    // get test stat at observed UL in observed data
    firstPOI->setVal(observedUL);
    double toyTSatObsUL = fc.GetTestStatSampler()->EvaluateTestStatistic(*toyData,tmpPOI);
    //    toyData->get()->Print("v");
    //    cout <<"obsTSatObsUL " <<obsTSatObsUL << "toyTS " << toyTSatObsUL << endl;
    if(obsTSatObsUL < toyTSatObsUL) // not sure about <= part yet
      CLb+= (1.)/nToyMC;
    if(obsTSatObsUL <= toyTSatObsUL) // not sure about <= part yet
      CLbinclusive+= (1.)/nToyMC;


    // loop over points in belt to find upper limit for this toy data
    double thisUL = 0;
    for(Int_t i=0; i<parameterScan->numEntries(); ++i){
      tmpPoint = (RooArgSet*) parameterScan->get(i)->clone("temp");
      double arMax = belt->GetAcceptanceRegionMax(*tmpPoint);
      firstPOI->setVal( tmpPoint->getRealValue(firstPOI->GetName()) );
      //   double thisTS = profile->getVal(); 
      double thisTS = fc.GetTestStatSampler()->EvaluateTestStatistic(*toyData,tmpPOI);

      //   cout << "poi = " << firstPOI->getVal() 
      // << " max is " << arMax << " this profile = " << thisTS << endl;
      //      cout << "thisTS = " << thisTS<<endl;
      if(thisTS<=arMax){
	thisUL = firstPOI->getVal();
      } else{
	break;
      }
    }
    

    histOfUL->Fill(thisUL);

    // for few events, data is often the same, and UL is often the same
    //    cout << "thisUL = " << thisUL<<endl;
    
    delete toyData;
  }
  histOfUL->Draw();
  c1->SaveAs("two-sided_upper_limit_output.pdf");

  // if you want to see a plot of the sampling distribution for a particular scan point:
  /*
  SamplingDistPlot sampPlot;
  int indexInScan = 0;
  tmpPoint = (RooArgSet*) parameterScan->get(indexInScan)->clone("temp");
  firstPOI->setVal( tmpPoint->getRealValue(firstPOI->GetName()) );
  toymcsampler->SetParametersForTestStat(tmpPOI);
  SamplingDistribution* samp = toymcsampler->GetSamplingDistribution(*tmpPoint);
  sampPlot.AddSamplingDistribution(samp);
  sampPlot.Draw();
   */

  // Now find bands and power constraint
  Double_t* bins = histOfUL->GetIntegral();
  TH1F* cumulative = (TH1F*) histOfUL->Clone("cumulative");
  cumulative->SetContent(bins);
  double band2sigDown=0, band1sigDown=0, bandMedian=0, band1sigUp=0,band2sigUp=0;
  for(int i=1; i<=cumulative->GetNbinsX(); ++i){
    if(bins[i]<RooStats::SignificanceToPValue(2))
      band2sigDown=cumulative->GetBinCenter(i);
    if(bins[i]<RooStats::SignificanceToPValue(1))
      band1sigDown=cumulative->GetBinCenter(i);
    if(bins[i]<0.5)
      bandMedian=cumulative->GetBinCenter(i);
    if(bins[i]<RooStats::SignificanceToPValue(-1))
      band1sigUp=cumulative->GetBinCenter(i);
    if(bins[i]<RooStats::SignificanceToPValue(-2))
      band2sigUp=cumulative->GetBinCenter(i);
  }
  cout << "-2 sigma  band " << band2sigDown << endl;
  cout << "-1 sigma  band " << band1sigDown << " [Power Constriant)]" << endl;
  cout << "median of band " << bandMedian << endl;
  cout << "+1 sigma  band " << band1sigUp << endl;
  cout << "+2 sigma  band " << band2sigUp << endl;

  // print out the iterval on the first Parameter of Interest
  cout << "\nobserved 95% upper-limit "<< interval->UpperLimit(*firstPOI) <<endl;
  cout << "CLb strict [P(toy>obs|0)] for observed 95% upper-limit "<< CLb <<endl;
  cout << "CLb inclusive [P(toy>=obs|0)] for observed 95% upper-limit "<< CLbinclusive <<endl;

  delete profile;
  delete nll;

}
 TwoSidedFrequentistUpperLimitWithBands.C:1
 TwoSidedFrequentistUpperLimitWithBands.C:2
 TwoSidedFrequentistUpperLimitWithBands.C:3
 TwoSidedFrequentistUpperLimitWithBands.C:4
 TwoSidedFrequentistUpperLimitWithBands.C:5
 TwoSidedFrequentistUpperLimitWithBands.C:6
 TwoSidedFrequentistUpperLimitWithBands.C:7
 TwoSidedFrequentistUpperLimitWithBands.C:8
 TwoSidedFrequentistUpperLimitWithBands.C:9
 TwoSidedFrequentistUpperLimitWithBands.C:10
 TwoSidedFrequentistUpperLimitWithBands.C:11
 TwoSidedFrequentistUpperLimitWithBands.C:12
 TwoSidedFrequentistUpperLimitWithBands.C:13
 TwoSidedFrequentistUpperLimitWithBands.C:14
 TwoSidedFrequentistUpperLimitWithBands.C:15
 TwoSidedFrequentistUpperLimitWithBands.C:16
 TwoSidedFrequentistUpperLimitWithBands.C:17
 TwoSidedFrequentistUpperLimitWithBands.C:18
 TwoSidedFrequentistUpperLimitWithBands.C:19
 TwoSidedFrequentistUpperLimitWithBands.C:20
 TwoSidedFrequentistUpperLimitWithBands.C:21
 TwoSidedFrequentistUpperLimitWithBands.C:22
 TwoSidedFrequentistUpperLimitWithBands.C:23
 TwoSidedFrequentistUpperLimitWithBands.C:24
 TwoSidedFrequentistUpperLimitWithBands.C:25
 TwoSidedFrequentistUpperLimitWithBands.C:26
 TwoSidedFrequentistUpperLimitWithBands.C:27
 TwoSidedFrequentistUpperLimitWithBands.C:28
 TwoSidedFrequentistUpperLimitWithBands.C:29
 TwoSidedFrequentistUpperLimitWithBands.C:30
 TwoSidedFrequentistUpperLimitWithBands.C:31
 TwoSidedFrequentistUpperLimitWithBands.C:32
 TwoSidedFrequentistUpperLimitWithBands.C:33
 TwoSidedFrequentistUpperLimitWithBands.C:34
 TwoSidedFrequentistUpperLimitWithBands.C:35
 TwoSidedFrequentistUpperLimitWithBands.C:36
 TwoSidedFrequentistUpperLimitWithBands.C:37
 TwoSidedFrequentistUpperLimitWithBands.C:38
 TwoSidedFrequentistUpperLimitWithBands.C:39
 TwoSidedFrequentistUpperLimitWithBands.C:40
 TwoSidedFrequentistUpperLimitWithBands.C:41
 TwoSidedFrequentistUpperLimitWithBands.C:42
 TwoSidedFrequentistUpperLimitWithBands.C:43
 TwoSidedFrequentistUpperLimitWithBands.C:44
 TwoSidedFrequentistUpperLimitWithBands.C:45
 TwoSidedFrequentistUpperLimitWithBands.C:46
 TwoSidedFrequentistUpperLimitWithBands.C:47
 TwoSidedFrequentistUpperLimitWithBands.C:48
 TwoSidedFrequentistUpperLimitWithBands.C:49
 TwoSidedFrequentistUpperLimitWithBands.C:50
 TwoSidedFrequentistUpperLimitWithBands.C:51
 TwoSidedFrequentistUpperLimitWithBands.C:52
 TwoSidedFrequentistUpperLimitWithBands.C:53
 TwoSidedFrequentistUpperLimitWithBands.C:54
 TwoSidedFrequentistUpperLimitWithBands.C:55
 TwoSidedFrequentistUpperLimitWithBands.C:56
 TwoSidedFrequentistUpperLimitWithBands.C:57
 TwoSidedFrequentistUpperLimitWithBands.C:58
 TwoSidedFrequentistUpperLimitWithBands.C:59
 TwoSidedFrequentistUpperLimitWithBands.C:60
 TwoSidedFrequentistUpperLimitWithBands.C:61
 TwoSidedFrequentistUpperLimitWithBands.C:62
 TwoSidedFrequentistUpperLimitWithBands.C:63
 TwoSidedFrequentistUpperLimitWithBands.C:64
 TwoSidedFrequentistUpperLimitWithBands.C:65
 TwoSidedFrequentistUpperLimitWithBands.C:66
 TwoSidedFrequentistUpperLimitWithBands.C:67
 TwoSidedFrequentistUpperLimitWithBands.C:68
 TwoSidedFrequentistUpperLimitWithBands.C:69
 TwoSidedFrequentistUpperLimitWithBands.C:70
 TwoSidedFrequentistUpperLimitWithBands.C:71
 TwoSidedFrequentistUpperLimitWithBands.C:72
 TwoSidedFrequentistUpperLimitWithBands.C:73
 TwoSidedFrequentistUpperLimitWithBands.C:74
 TwoSidedFrequentistUpperLimitWithBands.C:75
 TwoSidedFrequentistUpperLimitWithBands.C:76
 TwoSidedFrequentistUpperLimitWithBands.C:77
 TwoSidedFrequentistUpperLimitWithBands.C:78
 TwoSidedFrequentistUpperLimitWithBands.C:79
 TwoSidedFrequentistUpperLimitWithBands.C:80
 TwoSidedFrequentistUpperLimitWithBands.C:81
 TwoSidedFrequentistUpperLimitWithBands.C:82
 TwoSidedFrequentistUpperLimitWithBands.C:83
 TwoSidedFrequentistUpperLimitWithBands.C:84
 TwoSidedFrequentistUpperLimitWithBands.C:85
 TwoSidedFrequentistUpperLimitWithBands.C:86
 TwoSidedFrequentistUpperLimitWithBands.C:87
 TwoSidedFrequentistUpperLimitWithBands.C:88
 TwoSidedFrequentistUpperLimitWithBands.C:89
 TwoSidedFrequentistUpperLimitWithBands.C:90
 TwoSidedFrequentistUpperLimitWithBands.C:91
 TwoSidedFrequentistUpperLimitWithBands.C:92
 TwoSidedFrequentistUpperLimitWithBands.C:93
 TwoSidedFrequentistUpperLimitWithBands.C:94
 TwoSidedFrequentistUpperLimitWithBands.C:95
 TwoSidedFrequentistUpperLimitWithBands.C:96
 TwoSidedFrequentistUpperLimitWithBands.C:97
 TwoSidedFrequentistUpperLimitWithBands.C:98
 TwoSidedFrequentistUpperLimitWithBands.C:99
 TwoSidedFrequentistUpperLimitWithBands.C:100
 TwoSidedFrequentistUpperLimitWithBands.C:101
 TwoSidedFrequentistUpperLimitWithBands.C:102
 TwoSidedFrequentistUpperLimitWithBands.C:103
 TwoSidedFrequentistUpperLimitWithBands.C:104
 TwoSidedFrequentistUpperLimitWithBands.C:105
 TwoSidedFrequentistUpperLimitWithBands.C:106
 TwoSidedFrequentistUpperLimitWithBands.C:107
 TwoSidedFrequentistUpperLimitWithBands.C:108
 TwoSidedFrequentistUpperLimitWithBands.C:109
 TwoSidedFrequentistUpperLimitWithBands.C:110
 TwoSidedFrequentistUpperLimitWithBands.C:111
 TwoSidedFrequentistUpperLimitWithBands.C:112
 TwoSidedFrequentistUpperLimitWithBands.C:113
 TwoSidedFrequentistUpperLimitWithBands.C:114
 TwoSidedFrequentistUpperLimitWithBands.C:115
 TwoSidedFrequentistUpperLimitWithBands.C:116
 TwoSidedFrequentistUpperLimitWithBands.C:117
 TwoSidedFrequentistUpperLimitWithBands.C:118
 TwoSidedFrequentistUpperLimitWithBands.C:119
 TwoSidedFrequentistUpperLimitWithBands.C:120
 TwoSidedFrequentistUpperLimitWithBands.C:121
 TwoSidedFrequentistUpperLimitWithBands.C:122
 TwoSidedFrequentistUpperLimitWithBands.C:123
 TwoSidedFrequentistUpperLimitWithBands.C:124
 TwoSidedFrequentistUpperLimitWithBands.C:125
 TwoSidedFrequentistUpperLimitWithBands.C:126
 TwoSidedFrequentistUpperLimitWithBands.C:127
 TwoSidedFrequentistUpperLimitWithBands.C:128
 TwoSidedFrequentistUpperLimitWithBands.C:129
 TwoSidedFrequentistUpperLimitWithBands.C:130
 TwoSidedFrequentistUpperLimitWithBands.C:131
 TwoSidedFrequentistUpperLimitWithBands.C:132
 TwoSidedFrequentistUpperLimitWithBands.C:133
 TwoSidedFrequentistUpperLimitWithBands.C:134
 TwoSidedFrequentistUpperLimitWithBands.C:135
 TwoSidedFrequentistUpperLimitWithBands.C:136
 TwoSidedFrequentistUpperLimitWithBands.C:137
 TwoSidedFrequentistUpperLimitWithBands.C:138
 TwoSidedFrequentistUpperLimitWithBands.C:139
 TwoSidedFrequentistUpperLimitWithBands.C:140
 TwoSidedFrequentistUpperLimitWithBands.C:141
 TwoSidedFrequentistUpperLimitWithBands.C:142
 TwoSidedFrequentistUpperLimitWithBands.C:143
 TwoSidedFrequentistUpperLimitWithBands.C:144
 TwoSidedFrequentistUpperLimitWithBands.C:145
 TwoSidedFrequentistUpperLimitWithBands.C:146
 TwoSidedFrequentistUpperLimitWithBands.C:147
 TwoSidedFrequentistUpperLimitWithBands.C:148
 TwoSidedFrequentistUpperLimitWithBands.C:149
 TwoSidedFrequentistUpperLimitWithBands.C:150
 TwoSidedFrequentistUpperLimitWithBands.C:151
 TwoSidedFrequentistUpperLimitWithBands.C:152
 TwoSidedFrequentistUpperLimitWithBands.C:153
 TwoSidedFrequentistUpperLimitWithBands.C:154
 TwoSidedFrequentistUpperLimitWithBands.C:155
 TwoSidedFrequentistUpperLimitWithBands.C:156
 TwoSidedFrequentistUpperLimitWithBands.C:157
 TwoSidedFrequentistUpperLimitWithBands.C:158
 TwoSidedFrequentistUpperLimitWithBands.C:159
 TwoSidedFrequentistUpperLimitWithBands.C:160
 TwoSidedFrequentistUpperLimitWithBands.C:161
 TwoSidedFrequentistUpperLimitWithBands.C:162
 TwoSidedFrequentistUpperLimitWithBands.C:163
 TwoSidedFrequentistUpperLimitWithBands.C:164
 TwoSidedFrequentistUpperLimitWithBands.C:165
 TwoSidedFrequentistUpperLimitWithBands.C:166
 TwoSidedFrequentistUpperLimitWithBands.C:167
 TwoSidedFrequentistUpperLimitWithBands.C:168
 TwoSidedFrequentistUpperLimitWithBands.C:169
 TwoSidedFrequentistUpperLimitWithBands.C:170
 TwoSidedFrequentistUpperLimitWithBands.C:171
 TwoSidedFrequentistUpperLimitWithBands.C:172
 TwoSidedFrequentistUpperLimitWithBands.C:173
 TwoSidedFrequentistUpperLimitWithBands.C:174
 TwoSidedFrequentistUpperLimitWithBands.C:175
 TwoSidedFrequentistUpperLimitWithBands.C:176
 TwoSidedFrequentistUpperLimitWithBands.C:177
 TwoSidedFrequentistUpperLimitWithBands.C:178
 TwoSidedFrequentistUpperLimitWithBands.C:179
 TwoSidedFrequentistUpperLimitWithBands.C:180
 TwoSidedFrequentistUpperLimitWithBands.C:181
 TwoSidedFrequentistUpperLimitWithBands.C:182
 TwoSidedFrequentistUpperLimitWithBands.C:183
 TwoSidedFrequentistUpperLimitWithBands.C:184
 TwoSidedFrequentistUpperLimitWithBands.C:185
 TwoSidedFrequentistUpperLimitWithBands.C:186
 TwoSidedFrequentistUpperLimitWithBands.C:187
 TwoSidedFrequentistUpperLimitWithBands.C:188
 TwoSidedFrequentistUpperLimitWithBands.C:189
 TwoSidedFrequentistUpperLimitWithBands.C:190
 TwoSidedFrequentistUpperLimitWithBands.C:191
 TwoSidedFrequentistUpperLimitWithBands.C:192
 TwoSidedFrequentistUpperLimitWithBands.C:193
 TwoSidedFrequentistUpperLimitWithBands.C:194
 TwoSidedFrequentistUpperLimitWithBands.C:195
 TwoSidedFrequentistUpperLimitWithBands.C:196
 TwoSidedFrequentistUpperLimitWithBands.C:197
 TwoSidedFrequentistUpperLimitWithBands.C:198
 TwoSidedFrequentistUpperLimitWithBands.C:199
 TwoSidedFrequentistUpperLimitWithBands.C:200
 TwoSidedFrequentistUpperLimitWithBands.C:201
 TwoSidedFrequentistUpperLimitWithBands.C:202
 TwoSidedFrequentistUpperLimitWithBands.C:203
 TwoSidedFrequentistUpperLimitWithBands.C:204
 TwoSidedFrequentistUpperLimitWithBands.C:205
 TwoSidedFrequentistUpperLimitWithBands.C:206
 TwoSidedFrequentistUpperLimitWithBands.C:207
 TwoSidedFrequentistUpperLimitWithBands.C:208
 TwoSidedFrequentistUpperLimitWithBands.C:209
 TwoSidedFrequentistUpperLimitWithBands.C:210
 TwoSidedFrequentistUpperLimitWithBands.C:211
 TwoSidedFrequentistUpperLimitWithBands.C:212
 TwoSidedFrequentistUpperLimitWithBands.C:213
 TwoSidedFrequentistUpperLimitWithBands.C:214
 TwoSidedFrequentistUpperLimitWithBands.C:215
 TwoSidedFrequentistUpperLimitWithBands.C:216
 TwoSidedFrequentistUpperLimitWithBands.C:217
 TwoSidedFrequentistUpperLimitWithBands.C:218
 TwoSidedFrequentistUpperLimitWithBands.C:219
 TwoSidedFrequentistUpperLimitWithBands.C:220
 TwoSidedFrequentistUpperLimitWithBands.C:221
 TwoSidedFrequentistUpperLimitWithBands.C:222
 TwoSidedFrequentistUpperLimitWithBands.C:223
 TwoSidedFrequentistUpperLimitWithBands.C:224
 TwoSidedFrequentistUpperLimitWithBands.C:225
 TwoSidedFrequentistUpperLimitWithBands.C:226
 TwoSidedFrequentistUpperLimitWithBands.C:227
 TwoSidedFrequentistUpperLimitWithBands.C:228
 TwoSidedFrequentistUpperLimitWithBands.C:229
 TwoSidedFrequentistUpperLimitWithBands.C:230
 TwoSidedFrequentistUpperLimitWithBands.C:231
 TwoSidedFrequentistUpperLimitWithBands.C:232
 TwoSidedFrequentistUpperLimitWithBands.C:233
 TwoSidedFrequentistUpperLimitWithBands.C:234
 TwoSidedFrequentistUpperLimitWithBands.C:235
 TwoSidedFrequentistUpperLimitWithBands.C:236
 TwoSidedFrequentistUpperLimitWithBands.C:237
 TwoSidedFrequentistUpperLimitWithBands.C:238
 TwoSidedFrequentistUpperLimitWithBands.C:239
 TwoSidedFrequentistUpperLimitWithBands.C:240
 TwoSidedFrequentistUpperLimitWithBands.C:241
 TwoSidedFrequentistUpperLimitWithBands.C:242
 TwoSidedFrequentistUpperLimitWithBands.C:243
 TwoSidedFrequentistUpperLimitWithBands.C:244
 TwoSidedFrequentistUpperLimitWithBands.C:245
 TwoSidedFrequentistUpperLimitWithBands.C:246
 TwoSidedFrequentistUpperLimitWithBands.C:247
 TwoSidedFrequentistUpperLimitWithBands.C:248
 TwoSidedFrequentistUpperLimitWithBands.C:249
 TwoSidedFrequentistUpperLimitWithBands.C:250
 TwoSidedFrequentistUpperLimitWithBands.C:251
 TwoSidedFrequentistUpperLimitWithBands.C:252
 TwoSidedFrequentistUpperLimitWithBands.C:253
 TwoSidedFrequentistUpperLimitWithBands.C:254
 TwoSidedFrequentistUpperLimitWithBands.C:255
 TwoSidedFrequentistUpperLimitWithBands.C:256
 TwoSidedFrequentistUpperLimitWithBands.C:257
 TwoSidedFrequentistUpperLimitWithBands.C:258
 TwoSidedFrequentistUpperLimitWithBands.C:259
 TwoSidedFrequentistUpperLimitWithBands.C:260
 TwoSidedFrequentistUpperLimitWithBands.C:261
 TwoSidedFrequentistUpperLimitWithBands.C:262
 TwoSidedFrequentistUpperLimitWithBands.C:263
 TwoSidedFrequentistUpperLimitWithBands.C:264
 TwoSidedFrequentistUpperLimitWithBands.C:265
 TwoSidedFrequentistUpperLimitWithBands.C:266
 TwoSidedFrequentistUpperLimitWithBands.C:267
 TwoSidedFrequentistUpperLimitWithBands.C:268
 TwoSidedFrequentistUpperLimitWithBands.C:269
 TwoSidedFrequentistUpperLimitWithBands.C:270
 TwoSidedFrequentistUpperLimitWithBands.C:271
 TwoSidedFrequentistUpperLimitWithBands.C:272
 TwoSidedFrequentistUpperLimitWithBands.C:273
 TwoSidedFrequentistUpperLimitWithBands.C:274
 TwoSidedFrequentistUpperLimitWithBands.C:275
 TwoSidedFrequentistUpperLimitWithBands.C:276
 TwoSidedFrequentistUpperLimitWithBands.C:277
 TwoSidedFrequentistUpperLimitWithBands.C:278
 TwoSidedFrequentistUpperLimitWithBands.C:279
 TwoSidedFrequentistUpperLimitWithBands.C:280
 TwoSidedFrequentistUpperLimitWithBands.C:281
 TwoSidedFrequentistUpperLimitWithBands.C:282
 TwoSidedFrequentistUpperLimitWithBands.C:283
 TwoSidedFrequentistUpperLimitWithBands.C:284
 TwoSidedFrequentistUpperLimitWithBands.C:285
 TwoSidedFrequentistUpperLimitWithBands.C:286
 TwoSidedFrequentistUpperLimitWithBands.C:287
 TwoSidedFrequentistUpperLimitWithBands.C:288
 TwoSidedFrequentistUpperLimitWithBands.C:289
 TwoSidedFrequentistUpperLimitWithBands.C:290
 TwoSidedFrequentistUpperLimitWithBands.C:291
 TwoSidedFrequentistUpperLimitWithBands.C:292
 TwoSidedFrequentistUpperLimitWithBands.C:293
 TwoSidedFrequentistUpperLimitWithBands.C:294
 TwoSidedFrequentistUpperLimitWithBands.C:295
 TwoSidedFrequentistUpperLimitWithBands.C:296
 TwoSidedFrequentistUpperLimitWithBands.C:297
 TwoSidedFrequentistUpperLimitWithBands.C:298
 TwoSidedFrequentistUpperLimitWithBands.C:299
 TwoSidedFrequentistUpperLimitWithBands.C:300
 TwoSidedFrequentistUpperLimitWithBands.C:301
 TwoSidedFrequentistUpperLimitWithBands.C:302
 TwoSidedFrequentistUpperLimitWithBands.C:303
 TwoSidedFrequentistUpperLimitWithBands.C:304
 TwoSidedFrequentistUpperLimitWithBands.C:305
 TwoSidedFrequentistUpperLimitWithBands.C:306
 TwoSidedFrequentistUpperLimitWithBands.C:307
 TwoSidedFrequentistUpperLimitWithBands.C:308
 TwoSidedFrequentistUpperLimitWithBands.C:309
 TwoSidedFrequentistUpperLimitWithBands.C:310
 TwoSidedFrequentistUpperLimitWithBands.C:311
 TwoSidedFrequentistUpperLimitWithBands.C:312
 TwoSidedFrequentistUpperLimitWithBands.C:313
 TwoSidedFrequentistUpperLimitWithBands.C:314
 TwoSidedFrequentistUpperLimitWithBands.C:315
 TwoSidedFrequentistUpperLimitWithBands.C:316
 TwoSidedFrequentistUpperLimitWithBands.C:317
 TwoSidedFrequentistUpperLimitWithBands.C:318
 TwoSidedFrequentistUpperLimitWithBands.C:319
 TwoSidedFrequentistUpperLimitWithBands.C:320
 TwoSidedFrequentistUpperLimitWithBands.C:321
 TwoSidedFrequentistUpperLimitWithBands.C:322
 TwoSidedFrequentistUpperLimitWithBands.C:323
 TwoSidedFrequentistUpperLimitWithBands.C:324
 TwoSidedFrequentistUpperLimitWithBands.C:325
 TwoSidedFrequentistUpperLimitWithBands.C:326
 TwoSidedFrequentistUpperLimitWithBands.C:327
 TwoSidedFrequentistUpperLimitWithBands.C:328
 TwoSidedFrequentistUpperLimitWithBands.C:329
 TwoSidedFrequentistUpperLimitWithBands.C:330
 TwoSidedFrequentistUpperLimitWithBands.C:331
 TwoSidedFrequentistUpperLimitWithBands.C:332
 TwoSidedFrequentistUpperLimitWithBands.C:333
 TwoSidedFrequentistUpperLimitWithBands.C:334
 TwoSidedFrequentistUpperLimitWithBands.C:335
 TwoSidedFrequentistUpperLimitWithBands.C:336
 TwoSidedFrequentistUpperLimitWithBands.C:337
 TwoSidedFrequentistUpperLimitWithBands.C:338
 TwoSidedFrequentistUpperLimitWithBands.C:339
 TwoSidedFrequentistUpperLimitWithBands.C:340
 TwoSidedFrequentistUpperLimitWithBands.C:341
 TwoSidedFrequentistUpperLimitWithBands.C:342
 TwoSidedFrequentistUpperLimitWithBands.C:343
 TwoSidedFrequentistUpperLimitWithBands.C:344
 TwoSidedFrequentistUpperLimitWithBands.C:345
 TwoSidedFrequentistUpperLimitWithBands.C:346
 TwoSidedFrequentistUpperLimitWithBands.C:347
 TwoSidedFrequentistUpperLimitWithBands.C:348
 TwoSidedFrequentistUpperLimitWithBands.C:349
 TwoSidedFrequentistUpperLimitWithBands.C:350
 TwoSidedFrequentistUpperLimitWithBands.C:351
 TwoSidedFrequentistUpperLimitWithBands.C:352
 TwoSidedFrequentistUpperLimitWithBands.C:353
 TwoSidedFrequentistUpperLimitWithBands.C:354
 TwoSidedFrequentistUpperLimitWithBands.C:355
 TwoSidedFrequentistUpperLimitWithBands.C:356
 TwoSidedFrequentistUpperLimitWithBands.C:357
 TwoSidedFrequentistUpperLimitWithBands.C:358
 TwoSidedFrequentistUpperLimitWithBands.C:359
 TwoSidedFrequentistUpperLimitWithBands.C:360
 TwoSidedFrequentistUpperLimitWithBands.C:361
 TwoSidedFrequentistUpperLimitWithBands.C:362
 TwoSidedFrequentistUpperLimitWithBands.C:363
 TwoSidedFrequentistUpperLimitWithBands.C:364
 TwoSidedFrequentistUpperLimitWithBands.C:365
 TwoSidedFrequentistUpperLimitWithBands.C:366
 TwoSidedFrequentistUpperLimitWithBands.C:367
 TwoSidedFrequentistUpperLimitWithBands.C:368
 TwoSidedFrequentistUpperLimitWithBands.C:369
 TwoSidedFrequentistUpperLimitWithBands.C:370
 TwoSidedFrequentistUpperLimitWithBands.C:371
 TwoSidedFrequentistUpperLimitWithBands.C:372
 TwoSidedFrequentistUpperLimitWithBands.C:373
 TwoSidedFrequentistUpperLimitWithBands.C:374
 TwoSidedFrequentistUpperLimitWithBands.C:375
 TwoSidedFrequentistUpperLimitWithBands.C:376
 TwoSidedFrequentistUpperLimitWithBands.C:377
 TwoSidedFrequentistUpperLimitWithBands.C:378
 TwoSidedFrequentistUpperLimitWithBands.C:379
 TwoSidedFrequentistUpperLimitWithBands.C:380
 TwoSidedFrequentistUpperLimitWithBands.C:381
 TwoSidedFrequentistUpperLimitWithBands.C:382
 TwoSidedFrequentistUpperLimitWithBands.C:383
 TwoSidedFrequentistUpperLimitWithBands.C:384
 TwoSidedFrequentistUpperLimitWithBands.C:385
 TwoSidedFrequentistUpperLimitWithBands.C:386
 TwoSidedFrequentistUpperLimitWithBands.C:387
 TwoSidedFrequentistUpperLimitWithBands.C:388
 TwoSidedFrequentistUpperLimitWithBands.C:389
 TwoSidedFrequentistUpperLimitWithBands.C:390
 TwoSidedFrequentistUpperLimitWithBands.C:391
 TwoSidedFrequentistUpperLimitWithBands.C:392
 TwoSidedFrequentistUpperLimitWithBands.C:393
 TwoSidedFrequentistUpperLimitWithBands.C:394
 TwoSidedFrequentistUpperLimitWithBands.C:395
 TwoSidedFrequentistUpperLimitWithBands.C:396
 TwoSidedFrequentistUpperLimitWithBands.C:397
 TwoSidedFrequentistUpperLimitWithBands.C:398
 TwoSidedFrequentistUpperLimitWithBands.C:399
 TwoSidedFrequentistUpperLimitWithBands.C:400
 TwoSidedFrequentistUpperLimitWithBands.C:401
 TwoSidedFrequentistUpperLimitWithBands.C:402
 TwoSidedFrequentistUpperLimitWithBands.C:403
 TwoSidedFrequentistUpperLimitWithBands.C:404
 TwoSidedFrequentistUpperLimitWithBands.C:405
 TwoSidedFrequentistUpperLimitWithBands.C:406
 TwoSidedFrequentistUpperLimitWithBands.C:407
 TwoSidedFrequentistUpperLimitWithBands.C:408
 TwoSidedFrequentistUpperLimitWithBands.C:409
 TwoSidedFrequentistUpperLimitWithBands.C:410
 TwoSidedFrequentistUpperLimitWithBands.C:411
 TwoSidedFrequentistUpperLimitWithBands.C:412
 TwoSidedFrequentistUpperLimitWithBands.C:413
 TwoSidedFrequentistUpperLimitWithBands.C:414
 TwoSidedFrequentistUpperLimitWithBands.C:415
 TwoSidedFrequentistUpperLimitWithBands.C:416
 TwoSidedFrequentistUpperLimitWithBands.C:417
 TwoSidedFrequentistUpperLimitWithBands.C:418
 TwoSidedFrequentistUpperLimitWithBands.C:419
 TwoSidedFrequentistUpperLimitWithBands.C:420
 TwoSidedFrequentistUpperLimitWithBands.C:421
 TwoSidedFrequentistUpperLimitWithBands.C:422
 TwoSidedFrequentistUpperLimitWithBands.C:423
 TwoSidedFrequentistUpperLimitWithBands.C:424
 TwoSidedFrequentistUpperLimitWithBands.C:425
 TwoSidedFrequentistUpperLimitWithBands.C:426
 TwoSidedFrequentistUpperLimitWithBands.C:427
 TwoSidedFrequentistUpperLimitWithBands.C:428
 TwoSidedFrequentistUpperLimitWithBands.C:429
 TwoSidedFrequentistUpperLimitWithBands.C:430
 TwoSidedFrequentistUpperLimitWithBands.C:431
 TwoSidedFrequentistUpperLimitWithBands.C:432
 TwoSidedFrequentistUpperLimitWithBands.C:433
 TwoSidedFrequentistUpperLimitWithBands.C:434
 TwoSidedFrequentistUpperLimitWithBands.C:435
 TwoSidedFrequentistUpperLimitWithBands.C:436
 TwoSidedFrequentistUpperLimitWithBands.C:437
 TwoSidedFrequentistUpperLimitWithBands.C:438
 TwoSidedFrequentistUpperLimitWithBands.C:439
 TwoSidedFrequentistUpperLimitWithBands.C:440
 TwoSidedFrequentistUpperLimitWithBands.C:441
 TwoSidedFrequentistUpperLimitWithBands.C:442
 TwoSidedFrequentistUpperLimitWithBands.C:443
 TwoSidedFrequentistUpperLimitWithBands.C:444
 TwoSidedFrequentistUpperLimitWithBands.C:445
 TwoSidedFrequentistUpperLimitWithBands.C:446
 TwoSidedFrequentistUpperLimitWithBands.C:447
 TwoSidedFrequentistUpperLimitWithBands.C:448
 TwoSidedFrequentistUpperLimitWithBands.C:449
 TwoSidedFrequentistUpperLimitWithBands.C:450
 TwoSidedFrequentistUpperLimitWithBands.C:451
 TwoSidedFrequentistUpperLimitWithBands.C:452
 TwoSidedFrequentistUpperLimitWithBands.C:453
 TwoSidedFrequentistUpperLimitWithBands.C:454
 TwoSidedFrequentistUpperLimitWithBands.C:455
 TwoSidedFrequentistUpperLimitWithBands.C:456
 TwoSidedFrequentistUpperLimitWithBands.C:457
 TwoSidedFrequentistUpperLimitWithBands.C:458
 TwoSidedFrequentistUpperLimitWithBands.C:459
 TwoSidedFrequentistUpperLimitWithBands.C:460
 TwoSidedFrequentistUpperLimitWithBands.C:461
 TwoSidedFrequentistUpperLimitWithBands.C:462
 TwoSidedFrequentistUpperLimitWithBands.C:463
 TwoSidedFrequentistUpperLimitWithBands.C:464
 TwoSidedFrequentistUpperLimitWithBands.C:465
 TwoSidedFrequentistUpperLimitWithBands.C:466
 TwoSidedFrequentistUpperLimitWithBands.C:467
 TwoSidedFrequentistUpperLimitWithBands.C:468
 TwoSidedFrequentistUpperLimitWithBands.C:469
 TwoSidedFrequentistUpperLimitWithBands.C:470
 TwoSidedFrequentistUpperLimitWithBands.C:471
 TwoSidedFrequentistUpperLimitWithBands.C:472
 TwoSidedFrequentistUpperLimitWithBands.C:473