ROOT logo
// @(#)root/hist:$Id: TConfidenceLevel.cxx 27713 2009-03-07 08:12:02Z brun $
// Author: Christophe.Delaere@cern.ch   21/08/2002

///////////////////////////////////////////////////////////////////////////
//
// TConfidenceLevel
//
// Class to compute 95% CL limits
//
///////////////////////////////////////////////////////////////////////////

/*************************************************************************
 * C.Delaere                                                             *
 * adapted from the mclimit code from Tom Junk                           *
 * see http://cern.ch/thomasj/searchlimits/ecl.html                      *
 *************************************************************************/

#include "TConfidenceLevel.h"
#include "TH1F.h"
#include "TMath.h"
#include "Riostream.h"

ClassImp(TConfidenceLevel)

Double_t const TConfidenceLevel::fgMCLM2S = 0.025;
Double_t const TConfidenceLevel::fgMCLM1S = 0.16;
Double_t const TConfidenceLevel::fgMCLMED = 0.5;
Double_t const TConfidenceLevel::fgMCLP1S = 0.84;
Double_t const TConfidenceLevel::fgMCLP2S = 0.975;
// LHWG "one-sided" definition
Double_t const TConfidenceLevel::fgMCL3S1S = 2.6998E-3;
Double_t const TConfidenceLevel::fgMCL5S1S = 5.7330E-7;
// the other definition (not chosen by the LHWG)
Double_t const TConfidenceLevel::fgMCL3S2S = 1.349898E-3;
Double_t const TConfidenceLevel::fgMCL5S2S = 2.866516E-7;


//______________________________________________________________________________
TConfidenceLevel::TConfidenceLevel()
{
   // Default constructor

   fStot = 0;
   fBtot = 0;
   fDtot = 0;
   fTSD  = 0;
   fTSB  = 0;
   fTSS  = 0;
   fLRS  = 0;
   fLRB  = 0;
   fNMC  = 0;
   fNNMC = 0;
   fISS  = 0;
   fISB  = 0;
   fMCL3S = fgMCL3S1S;
   fMCL5S = fgMCL5S1S;
}


//______________________________________________________________________________
TConfidenceLevel::TConfidenceLevel(Int_t mc, bool onesided)
{
   // a constructor that fix some conventions:
   // mc is the number of Monte Carlo experiments
   // while onesided specifies if the intervals are one-sided or not.

   fStot = 0;
   fBtot = 0;
   fDtot = 0;
   fTSD  = 0;
   fTSB  = 0;
   fTSS  = 0;
   fLRS  = 0;
   fLRB  = 0;
   fNMC  = mc;
   fNNMC = mc;
   fISS  = new Int_t[mc];
   fISB  = new Int_t[mc];
   fMCL3S = onesided ? fgMCL3S1S : fgMCL3S2S;
   fMCL5S = onesided ? fgMCL5S1S : fgMCL5S2S;
}


//______________________________________________________________________________
TConfidenceLevel::~TConfidenceLevel()
{
   // The destructor

   if (fISS)
      delete[]fISS;
   if (fISB)
      delete[]fISB;
   if (fTSB)
      delete[]fTSB;
   if (fTSS)
      delete[]fTSS;
   if (fLRS)
      delete[]fLRS;
   if (fLRB)
      delete[]fLRB;
}


//______________________________________________________________________________
Double_t TConfidenceLevel::GetExpectedStatistic_b(Int_t sigma) const
{
   // Get the expected statistic value in the background only hypothesis

   switch (sigma) {
   case -2:
      return (-2 *((fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLP2S)))]]) - fStot));
   case -1:
      return (-2 *((fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLP1S)))]]) - fStot));
   case 0:
      return (-2 *((fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLMED)))]]) - fStot));
   case 1:
      return (-2 *((fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLM1S)))]]) - fStot));
   case 2:
      return (-2 *((fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLM2S)))]]) - fStot));
   default:
      return 0;
   }
}


//______________________________________________________________________________
Double_t TConfidenceLevel::GetExpectedStatistic_sb(Int_t sigma) const
{
   // Get the expected statistic value in the signal plus background hypothesis

   switch (sigma) {
   case -2:
      return (-2 *((fTSS[fISS[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLP2S)))]]) - fStot));
   case -1:
      return (-2 *((fTSS[fISS[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLP1S)))]]) - fStot));
   case 0:
      return (-2 *((fTSS[fISS[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLMED)))]]) - fStot));
   case 1:
      return (-2 *((fTSS[fISS[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLM1S)))]]) - fStot));
   case 2:
      return (-2 *((fTSS[fISS[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLM2S)))]]) - fStot));
   default:
      return 0;
   }
}


//______________________________________________________________________________
Double_t TConfidenceLevel::CLb(bool use_sMC) const
{
   // Get the Confidence Level for the background only

   Double_t result = 0;
   switch (use_sMC) {
   case kFALSE:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] < fTSD)
               result = (Double_t(i + 1)) / fNMC;
         return result;
      }
   case kTRUE:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSS[fISS[i]] < fTSD)
               result += (1 / (fLRS[fISS[i]] * fNMC));
         return result;
      }
   }
   return result;
}


//______________________________________________________________________________
Double_t TConfidenceLevel::CLsb(bool use_sMC) const
{
   // Get the Confidence Level for the signal plus background hypothesis

   Double_t result = 0;
   switch (use_sMC) {
   case kFALSE:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] <= fTSD)
               result += (fLRB[fISB[i]]) / fNMC;
         return result;
      }
   case kTRUE:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSS[fISS[i]] <= fTSD)
               result = i / fNMC;
         return result;
      }
   }
   return result;
}


//______________________________________________________________________________
Double_t TConfidenceLevel::CLs(bool use_sMC) const
{
   // Get the Confidence Level defined by CLs = CLsb/CLb.
   // This quantity is stable w.r.t. background fluctuations.

   Double_t clb = CLb(kFALSE);
   Double_t clsb = CLsb(use_sMC);
   if(clb==0) { cout << "Warning: clb = 0 !" << endl; return 0;}
   else return clsb/clb;
}


//______________________________________________________________________________
Double_t TConfidenceLevel::GetExpectedCLsb_b(Int_t sigma) const
{
   // Get the expected Confidence Level for the signal plus background hypothesis
   // if there is only background.

   Double_t result = 0;
   switch (sigma) {
   case -2:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] <= fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLP2S)))]])
               result += fLRB[fISB[i]] / fNMC;
         return result;
      }
   case -1:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] <= fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLP1S)))]])
               result += fLRB[fISB[i]] / fNMC;
         return result;
      }
   case 0:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] <= fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLMED)))]])
               result += fLRB[fISB[i]] / fNMC;
         return result;
      }
   case 1:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] <= fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLM1S)))]])
               result += fLRB[fISB[i]] / fNMC;
         return result;
      }
   case 2:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] <= fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLM2S)))]])
               result += fLRB[fISB[i]] / fNMC;
         return result;
      }
   default:
      return 0;
   }
}


//______________________________________________________________________________
Double_t TConfidenceLevel::GetExpectedCLb_sb(Int_t sigma) const
{
   // Get the expected Confidence Level for the background only
   // if there is signal and background.

   Double_t result = 0;
   switch (sigma) {
   case 2:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSS[fISS[i]] <= fTSS[fISS[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLP2S)))]])
               result += fLRS[fISS[i]] / fNMC;
         return result;
      }
   case 1:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSS[fISS[i]] <= fTSS[fISS[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLP1S)))]])
               result += fLRS[fISS[i]] / fNMC;
         return result;
      }
   case 0:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSS[fISS[i]] <= fTSS[fISS[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLMED)))]])
               result += fLRS[fISS[i]] / fNMC;
         return result;
      }
   case -1:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSS[fISS[i]] <= fTSS[fISS[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLM1S)))]])
               result += fLRS[fISS[i]] / fNMC;
         return result;
      }
   case -2:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSS[fISS[i]] <= fTSS[fISS[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLM2S)))]])
               result += fLRS[fISS[i]] / fNMC;
         return result;
      }
   default:
      return 0;
   }
}


//______________________________________________________________________________
Double_t TConfidenceLevel::GetExpectedCLb_b(Int_t sigma) const
{
   // Get the expected Confidence Level for the background only
   // if there is only background.

   Double_t result = 0;
   switch (sigma) {
   case 2:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] <= fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLM2S)))]])
               result = (i + 1) / double (fNMC);
         return result;
      }
   case 1:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] <= fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLM1S)))]])
               result = (i + 1) / double (fNMC);
         return result;
      }
   case 0:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] <= fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLMED)))]])
               result = (i + 1) / double (fNMC);
         return result;
      }
   case -1:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] <= fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLP1S)))]])
               result = (i + 1) / double (fNMC);
         return result;
      }
   case -2:
      {
         for (Int_t i = 0; i < fNMC; i++)
            if (fTSB[fISB[i]] <= fTSB[fISB[TMath::Min((Int_t) fNMC,(Int_t) TMath::Max((Int_t) 1,(Int_t) (fNMC * fgMCLP2S)))]])
               result = (i + 1) / double (fNMC);
         return result;
      }
   }
   return result;
}


//______________________________________________________________________________
Double_t TConfidenceLevel::GetAverageCLsb() const
{
   // Get average CLsb.

   Double_t result = 0;
   Double_t psumsb = 0;
   for (Int_t i = 0; i < fNMC; i++) {
      psumsb += fLRB[fISB[i]] / fNMC;
      result += psumsb / fNMC;
   }
   return result;
}


//______________________________________________________________________________
Double_t TConfidenceLevel::GetAverageCLs() const
{
   // Get average CLs.

   Double_t result = 0;
   Double_t psumsb = 0;
   for (Int_t i = 0; i < fNMC; i++) {
      psumsb += fLRB[fISB[i]] / fNMC;
      result += ((psumsb / fNMC) / ((i + 1) / fNMC));
   }
   return result;
}


//______________________________________________________________________________
Double_t TConfidenceLevel::Get3sProbability() const
{
   // Get 3s probability.

   Double_t result = 0;
   Double_t psumbs = 0;
   for (Int_t i = 0; i < fNMC; i++) {
      psumbs += 1 / (Double_t) (fLRS[(fISS[(Int_t) (fNMC - i)])] * fNMC);
      if (psumbs <= fMCL3S)
         result = i / fNMC;
   }
   return result;
}


//______________________________________________________________________________
Double_t TConfidenceLevel::Get5sProbability() const
{
   // Get 5s probability.

   Double_t result = 0;
   Double_t psumbs = 0;
   for (Int_t i = 0; i < fNMC; i++) {
      psumbs += 1 / (Double_t) (fLRS[(fISS[(Int_t) (fNMC - i)])] * fNMC);
      if (psumbs <= fMCL5S)
         result = i / fNMC;
   }
   return result;
}


//______________________________________________________________________________
void  TConfidenceLevel::Draw(const Option_t*)
{
   // Display sort of a "canonical" -2lnQ plot.
   // This results in a plot with 2 elements:
   // - The histogram of -2lnQ for background hypothesis (full)
   // - The histogram of -2lnQ for signal and background hypothesis (dashed)
   // The 2 histograms are respectively named b_hist and sb_hist.

   TH1F h("TConfidenceLevel_Draw","",50,0,0);
   Int_t i;
   for (i=0; i<fNMC; i++) {
      h.Fill(-2*(fTSB[i]-fStot));
      h.Fill(-2*(fTSS[i]-fStot));
   }
   TH1F* b_hist  = new TH1F("b_hist", "-2lnQ",50,h.GetXaxis()->GetXmin(),h.GetXaxis()->GetXmax());
   TH1F* sb_hist = new TH1F("sb_hist","-2lnQ",50,h.GetXaxis()->GetXmin(),h.GetXaxis()->GetXmax());
   for (i=0; i<fNMC; i++) {
      b_hist->Fill(-2*(fTSB[i]-fStot));
      sb_hist->Fill(-2*(fTSS[i]-fStot));
   }
   b_hist->Draw();
   sb_hist->Draw("Same");
   sb_hist->SetLineStyle(3);
}


//______________________________________________________________________________
void  TConfidenceLevel::SetTSB(Double_t * in)
{
   // Set the TSB.
   fTSB = in; 
   TMath::Sort(fNNMC, fTSB, fISB, 0); 
}


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