NuABFitter Class Reference

Fits a AB experiment. More...

#include <NuABFitter.h>

Inheritance diagram for NuABFitter:
NuSystFitter

List of all members.

Public Member Functions

 NuABFitter (const NuMMParameters &trueparams)
virtual ~NuABFitter ()
double Fit ()
const NuMMParametersBestFit () const
 Look at the best fit point.
void AlwaysArchive (std::string filename)
 Call if you want to write out every experiment.
void ArchiveTo (std::string filename)
void Archive (std::string filename)
void SetSilent (bool _silent=true)

Private Member Functions

const TH2D * FirstSurface ()
const TH2D * RefineSurface (const TH2D *coarseSurface, double sn2prec, double dm2prec, int minXor=-2, int minYor=-2)
double FillLikelihoodSurfaceAB (TH2D *surface)
NuMMParameters ReadSurface (const TH2D *surface)
double Dm2Min ()
double Dm2Max ()
double Sn2Min ()
double Sn2Max ()
double DeltaChi (const NuMMParameters &bestfit)
 Calculates the Delta chi2 value.
NuMMParameters RecoverNegativeDeltaChi (const NuMMParameters &bestfit, const TH2D *firstSurface)
 Recovers a negative delta chi2 value.
void DoOutput (const NuMMParameters &mmFit, double deltachi)
 Dos the summary output form the fitting.
 ClassDef (NuABFitter, 0)

Private Attributes

NuSystFitter fsystFitter
 Fitter object.
NuMMParametersfBestFit
 Copy of the best fit point.
double alpha
double beta
double sininterval
double massinterval
Bool_t fFineGridSearch
Bool_t fNegativeDeltaChi
Bool_t fEdge
Bool_t fHighFitPoint
Bool_t fZeroFitPoint
Bool_t fArchive
std::string fArchiveFilename
const NuMMParameters fTrueParams
bool silent

Static Private Attributes

static int expno = -1

Detailed Description

Fits a AB experiment.

Author:
Nick Devenish, Last checkin
Author
ahimmel
Version:
Revision
1.1
Date:
Date
2010/09/11 15:37:55

Created on: Sun Aug 17, 2008

Definition at line 31 of file NuABFitter.h.


Constructor & Destructor Documentation

NuABFitter::NuABFitter ( const NuMMParameters trueparams  ) 

Creates the fitter object. We have to accept pointers here, as everything else we want to use only accepts them, and we can't easily change without possibly breaking large amounts of existing code.

Parameters:
experiment The experiment (i.e. far data) that we are fitting.
helper The NuMMHelperCPT object that contains the helper data
ndNQData The near detector neutrino data
ndPQData The enar detector antineutrino data

Definition at line 25 of file NuABFitter.cxx.

References alpha, beta, NuMMParameters::Dm2(), NuMMParameters::Dm2Bar(), fTrueParams, Msg::kInfo, MSG, NuMMParameters::Sn2(), and NuMMParameters::Sn2Bar().

00026   : NuSystFitter(),
00027     fBestFit(0),
00028     sininterval(0.006),
00029     massinterval(0.016e-3),
00030     fFineGridSearch(false),
00031     fNegativeDeltaChi(false),
00032     fEdge(false),
00033     fHighFitPoint(false),
00034     fZeroFitPoint(false),
00035     fArchive(false),
00036     fArchiveFilename("archive.root"),
00037     fTrueParams(trueparams),
00038     silent(false)
00039 {
00040   alpha = fTrueParams.Dm2Bar() - fTrueParams.Dm2();
00041   beta = fTrueParams.Sn2Bar() - fTrueParams.Sn2();
00042   MSG("NuABFitter",Msg::kInfo) << "Creating alpha-beta fitter at alpha=" << alpha 
00043                                << " and beta=" << beta << endl;
00044 }

NuABFitter::~NuABFitter (  )  [virtual]

Definition at line 48 of file NuABFitter.cxx.

References fBestFit.

00049 {
00050   // Delete the copy of the best fit point
00051   if (fBestFit) delete fBestFit;
00052   fBestFit = 0;
00053 }


Member Function Documentation

void NuABFitter::AlwaysArchive ( std::string  filename  )  [inline]

Call if you want to write out every experiment.

Definition at line 57 of file NuABFitter.h.

References fArchive, and fArchiveFilename.

00057                                          {
00058     fArchiveFilename = filename;
00059     fArchive = true;
00060   }

void NuABFitter::Archive ( std::string  filename  ) 

Definition at line 420 of file NuABFitter.cxx.

References expno, fBestFit, Plot::Format(), NuSystFitter::fRuns, NuMMRunNuBar::GetFDBarData(), NuMMRunNuBar::GetFDNuData(), NuMMRunNuBar::GetNDBarData(), NuMMRunNuBar::GetNDNuData(), Msg::kError, Msg::kInfo, MSG, and NuMatrixSpectrum::Spectrum().

Referenced by Fit().

00421 {
00422   //MSG("NuABFitter",Msg::kInfo) << "Disabled all archiving." << endl;
00423   //return;
00424 
00425   if (!fBestFit) {
00426     MSG("NuABFitter", Msg::kError)
00427       << "Error: Trying to archive before fit" << endl;
00428     return;
00429   }
00430   
00431   MSG("NuABFitter", Msg::kInfo)
00432     << "    Archiving to file " << filename << "..." << endl;
00433 
00434   TString ndNu  = "RecoEnergy_ND";
00435   TString ndBar = "RecoEnergyPQ_ND";
00436   TString fdNu  = "RecoEnergy_FD";
00437   TString fdBar = "RecoEnergyPQ_FD";
00438   
00439   TFile tf(filename.c_str(), "UPDATE");
00440   for (unsigned int r = 0; r < fRuns->size(); r++) {
00441         TString suffix = TString::Format("_Run%i_Exp%i", r, expno);
00442         NuMMRunFC *tmp = dynamic_cast<NuMMRunFC*>((*fRuns)[r]);
00443         tmp->GetNDNuData()->Spectrum()->Write(ndNu+suffix);
00444         tmp->GetNDBarData()->Spectrum()->Write(ndBar+suffix);
00445         tmp->GetFDNuData()->Spectrum()->Write(fdNu+suffix);
00446         tmp->GetFDBarData()->Spectrum()->Write(fdBar+suffix);
00447   }
00448   
00449   tf.Close();
00450 }

void NuABFitter::ArchiveTo ( std::string  filename  )  [inline]

Definition at line 62 of file NuABFitter.h.

References fArchiveFilename.

00062                                      {
00063     fArchiveFilename = filename;
00064   }

const NuMMParameters * NuABFitter::BestFit (  )  const

Look at the best fit point.

Definition at line 106 of file NuABFitter.cxx.

References fBestFit, Msg::kError, and MSG.

00106                                                 {
00107   
00108   if (!fBestFit) {
00109     MSG("NuABFitter", Msg::kError)
00110     << "Error: Trying to see the best fit before the fit" << endl;
00111     return 0;
00112   }
00113   
00114   return fBestFit;
00115 }

NuABFitter::ClassDef ( NuABFitter  ,
 
) [private]
double NuABFitter::DeltaChi ( const NuMMParameters bestfit  )  [private]

Calculates the Delta chi2 value.

Definition at line 348 of file NuABFitter.cxx.

References fTrueParams, and NuSystFitter::Likelihood().

Referenced by Fit().

00349 {
00350   // Calculate the two likelihood points
00351   double fitlike = Likelihood(bestfit);
00352   double truelikelihood = Likelihood(fTrueParams);
00353   return truelikelihood - fitlike;
00354 }

double NuABFitter::Dm2Max (  )  [private]

Definition at line 327 of file NuABFitter.cxx.

Referenced by FirstSurface(), and RefineSurface().

00328 {
00329   return 1.0;
00330 }

double NuABFitter::Dm2Min (  )  [private]

Definition at line 320 of file NuABFitter.cxx.

References alpha.

Referenced by FirstSurface(), and RefineSurface().

00321 {
00322   return TMath::Max(0., -alpha);
00323 }

void NuABFitter::DoOutput ( const NuMMParameters mmFit,
double  deltachi 
) [private]

Dos the summary output form the fitting.

Definition at line 400 of file NuABFitter.cxx.

References NuMMParameters::Dm2Bar(), fFineGridSearch, fNegativeDeltaChi, Msg::kInfo, NuSystFitter::Likelihood(), MSG, and NuMMParameters::Sn2Bar().

Referenced by Fit().

00401 {
00402   // Output the fit results
00403   double fitlike = Likelihood(mmFit);
00404   MSG("NuABFitter", Msg::kInfo)
00405   << "    Minimum is dm2bar: " << mmFit.Dm2Bar()
00406   << " sn2bar: " << mmFit.Sn2Bar() << '\n'
00407   << "    Fit Likelihood: " << fitlike << '\n'
00408   << "    Delta Chi2:     " << deltachi << '\n';
00409   
00410   // Did we want to ask the control script to log this?
00411   if (fFineGridSearch || fNegativeDeltaChi) {
00412     MSG("NuABFitter", Msg::kInfo) << "    Please Log this experiment." << endl;
00413   }
00414   
00415 }

double NuABFitter::FillLikelihoodSurfaceAB ( TH2D *  surface  )  [private]

Definition at line 260 of file NuABFitter.cxx.

References alpha, beta, NuMMParameters::Dm2(), NuMMParameters::Dm2Bar(), NuSystFitter::Likelihood(), minimum, NuMMParameters::Sn2(), and NuMMParameters::Sn2Bar().

Referenced by FirstSurface(), and RefineSurface().

00261 {
00262   const int Nx = surface->GetNbinsX();
00263   const int Ny = surface->GetNbinsY();
00264   
00265   TAxis* xax = surface->GetXaxis();
00266   TAxis* yax = surface->GetYaxis();
00267   
00268   Double_t minimum = -1;
00269   
00270   NuMMParameters mmPars;
00271   
00272   // Order loops so same-dmsq go sequentially for usual osc contours. This
00273   // takes full advantage of the cacheing in the oscillation functions
00274   for(int y = 1; y <= Ny; y++){
00275     for(int x = 1; x <= Nx; x++){
00276 //      if(fQuietMode < 2){
00277 //        NuUtilities::ProgressBar((y-1)*Nx+x, Nx*Ny, 1);
00278 //      }
00279       
00280       mmPars.Sn2(xax->GetBinCenter(x));
00281       mmPars.Sn2Bar(xax->GetBinCenter(x)+beta);
00282       mmPars.Dm2(yax->GetBinCenter(y));
00283       mmPars.Dm2Bar(yax->GetBinCenter(y)+alpha);
00284       
00285       const Double_t likelihood = Likelihood(mmPars);
00286       
00287       surface->SetBinContent(x, y, likelihood);
00288       
00289       // Work out if this is the minimum
00290       if (minimum < 0 || minimum > likelihood) minimum = likelihood;
00291     }
00292   }
00293   
00294   return minimum;
00295 }

const TH2D * NuABFitter::FirstSurface (  )  [private]

Definition at line 119 of file NuABFitter.cxx.

References Dm2Max(), Dm2Min(), MuELoss::e, FillLikelihoodSurfaceAB(), Msg::kInfo, MAXMSG, Sn2Max(), and Sn2Min().

Referenced by Fit().

00120 {
00121   double linMax = 30e-3;
00122   double sn2prec = 0.1;
00123   double dm2prec = 2e-3;
00124   
00125   // Do a coarse grid search
00126   int crsSnBins = (int)((Sn2Max()-Sn2Min()) / sn2prec + 0.5);
00127   int crsDmBins = (int)((linMax-Dm2Min()) / dm2prec + 0.5);
00128 
00129   vector<Double_t> bins;
00130   for (double i = Dm2Min(); i < linMax; i += dm2prec) {
00131     bins.push_back(i);
00132   }
00133   
00134   for (double i = -1.5; i <= -0.; i += 0.1) {
00135     bins.push_back(pow(10, i));
00136   }
00137   
00138   Int_t bincount = bins.size()-1;
00139   
00140   TH2D *coarseSurface = new TH2D("coarseSurf", "coarseSurf", 
00141                                  crsSnBins, Sn2Min(), Sn2Max(),
00142                                  bincount, &(bins.front()));
00143   
00144   
00145   MAXMSG("NuABFitter",Msg::kInfo,1) << "Coarse AB search with: "  << endl
00146   << "  sn2: " << crsSnBins << " bins between " << Sn2Min() << " and " << Sn2Max() << endl
00147   << "  dm2: " << crsDmBins << " bins between " << Dm2Min() << " and " << linMax << endl
00148   << "  dm2: " << bincount-crsDmBins  << " log bins btn " << linMax << " and " << Dm2Max() << endl;
00149   
00150   //fQuietMode = 1;
00151   FillLikelihoodSurfaceAB(coarseSurface);
00152   
00153   return coarseSurface;
00154 }

double NuABFitter::Fit ( void   ) 

Fits the previously passed in FC experiment. Returns an std::pair with the delta chi2, and the best fit

Parameters:
fitParameters a parameters object, set to the true value

Definition at line 57 of file NuABFitter.cxx.

References Archive(), DeltaChi(), DoOutput(), MuELoss::e, expno, fArchive, fArchiveFilename, fBestFit, FirstSurface(), massinterval, ReadSurface(), RecoverNegativeDeltaChi(), RefineSurface(), silent, and sininterval.

00058 {
00059   // Increment global counter to make sure experiments are distinct when archiving
00060   ++expno;
00061   
00062   //QuietModeOn();
00063   //BatchModeOn();
00064   
00065   const TH2D *firstSurface = FirstSurface();
00066   const TH2D *secondSurface = RefineSurface(firstSurface, 10.*sininterval, 10.*massinterval);
00067   const TH2D *finalSurface = RefineSurface(secondSurface, sininterval, massinterval);
00068   NuMMParameters mmFit = ReadSurface(finalSurface);
00069   
00070   double dchi = DeltaChi(mmFit);
00071 
00072   // If this gave a negative value, rescue it (allow a tiny gap)
00073   if (dchi < 0) {
00074     if (dchi < -1e-5) {
00075       mmFit = RecoverNegativeDeltaChi(mmFit, firstSurface);
00076       dchi = DeltaChi(mmFit);
00077     } else {
00078       // It is below zero, but within error. Set it to zero!
00079       dchi = 0;
00080     }
00081   }
00082 
00083   // Make a copy of the best fit point
00084   if (fBestFit) delete fBestFit;
00085   fBestFit = new NuMMParameters(mmFit);
00086 
00087   // Do we want to archive?
00088   if (fArchive) { // || fNegativeDeltaChi
00089     Archive(fArchiveFilename);
00090   }
00091 
00092   if (!silent) {
00093     // Do the output
00094     DoOutput(mmFit, dchi);
00095   }
00096   
00097   delete finalSurface;
00098   delete secondSurface;
00099   delete firstSurface;
00100   
00101   return dchi;
00102 }

NuMMParameters NuABFitter::ReadSurface ( const TH2D *  surface  )  [private]

Definition at line 299 of file NuABFitter.cxx.

References alpha, beta, NuMMParameters::Dm2(), NuMMParameters::Dm2Bar(), Msg::kInfo, MSG, NuMMParameters::Sn2(), and NuMMParameters::Sn2Bar().

Referenced by Fit(), and RecoverNegativeDeltaChi().

00300 {
00301   int finebinX, finebinY, finebinZ;
00302   surface->GetMinimumBin(finebinX, finebinY, finebinZ);
00303   double minsin = surface->GetXaxis()->GetBinCenter(finebinX);
00304   double minmass = surface->GetYaxis()->GetBinCenter(finebinY);  
00305  
00306   MSG("NuABFitter",Msg::kInfo) << "Read AB minimum: " 
00307   << minsin << ", " << minmass << " at a,b = " << alpha << ", " << beta << endl;
00308   
00309   NuMMParameters mmFit;
00310   mmFit.Sn2(minsin);
00311   mmFit.Sn2Bar(minsin+beta);
00312   mmFit.Dm2(minmass);
00313   mmFit.Dm2Bar(minmass+alpha);
00314   return mmFit;  
00315 }

NuMMParameters NuABFitter::RecoverNegativeDeltaChi ( const NuMMParameters bestfit,
const TH2D *  firstSurface 
) [private]

Recovers a negative delta chi2 value.

Definition at line 359 of file NuABFitter.cxx.

References NuMMParameters::Dm2(), NuMMParameters::Dm2Bar(), fNegativeDeltaChi, fTrueParams, Msg::kInfo, NuSystFitter::Likelihood(), massinterval, MSG, ReadSurface(), RefineSurface(), sininterval, NuMMParameters::Sn2(), and NuMMParameters::Sn2Bar().

Referenced by Fit().

00360 {
00361   // Set the failure flag
00362   fNegativeDeltaChi = true;
00363 
00364   // Recalculate the likelihoods
00365   double truelike = Likelihood(fTrueParams);
00366   double oldlike = Likelihood(bestfit);
00367 
00368   
00369   MSG("NuABFitter", Msg::kInfo)
00370     << "    Negative delta chi2 likelihood (" << truelike - oldlike
00371     << ") found. Refitting from true (" << truelike << ")" << endl;
00372   
00373   int trueXmin = firstSurface->GetXaxis()->FindBin(fTrueParams.Sn2());
00374   int trueYmin = firstSurface->GetYaxis()->FindBin(fTrueParams.Dm2());
00375   
00376   const TH2D * secondSurface = RefineSurface(firstSurface, 10.*sininterval, 10.*massinterval, trueXmin, trueYmin);
00377   const TH2D * finalSurface = RefineSurface(secondSurface, sininterval, massinterval);
00378   NuMMParameters newFit = ReadSurface(finalSurface);
00379   
00380   
00381   MSG("NuABFitter", Msg::kInfo) << "    Refit passed." << endl;
00382   double newlike = Likelihood(newFit);
00383   if (newlike > oldlike) {
00384           MSG("NuABFitter", Msg::kInfo)
00385                 << "    New fit point ( dm: " << newFit.Dm2Bar() << ", sn: " << newFit.Sn2Bar() << " )\n"
00386                 << "    at " << newlike << " is higher than before ( " << oldlike << " )! strange!\n"
00387                 << "    Returning true fit point, as is lowest we have seen."
00388                 << endl;
00389           newFit = fTrueParams;
00390   }
00391   
00392   delete secondSurface;
00393   delete finalSurface;
00394 
00395   return newFit;
00396 }

const TH2D * NuABFitter::RefineSurface ( const TH2D *  coarseSurface,
double  sn2prec,
double  dm2prec,
int  minXor = -2,
int  minYor = -2 
) [private]

Definition at line 159 of file NuABFitter.cxx.

References alpha, beta, Dm2Max(), Dm2Min(), FillLikelihoodSurfaceAB(), Msg::kInfo, MAXMSG, MSG, Sn2Max(), and Sn2Min().

Referenced by Fit(), and RecoverNegativeDeltaChi().

00162 { 
00163   Int_t minbinX = 0, minbinY = 0, minbinZ = 0;
00164   
00165   // Read minimimum from the coarse surface unless we get recursive overrides
00166   if (minXor == -2 || minYor == -2) {
00167     coarseSurface->GetMinimumBin(minbinX, minbinY, minbinZ);
00168   }
00169   else {
00170     minbinX = minXor;
00171     minbinY = minYor;
00172   }
00173   
00174   double gridL = TMath::Max(coarseSurface->GetXaxis()->GetBinLowEdge(minbinX-1), Sn2Min()) - sn2prec/2.;
00175   double gridR = TMath::Min(coarseSurface->GetXaxis()->GetBinUpEdge(minbinX+1), Sn2Max()) + sn2prec/2.;
00176   double gridB = TMath::Max(coarseSurface->GetYaxis()->GetBinLowEdge(minbinY-1), Dm2Min()) - dm2prec/2.;
00177   double gridT = TMath::Min(coarseSurface->GetYaxis()->GetBinUpEdge(minbinY+1), Dm2Max()) + dm2prec/2.;
00178   
00179   int nbinsX = (int)((gridR-gridL) / sn2prec + 0.5);
00180   int nbinsY = (int)((gridT-gridB) / dm2prec + 0.5);
00181   
00182   
00183   // Ensure that we haven't done anything stupid like set low above high
00184   if (gridL >= gridR || gridT <= gridB) {
00185     cout << "Error: Negative range in fine grid search" << endl;
00186     cout << "gridL = " << gridL << endl;
00187     cout << "gridR = " << gridR << endl;
00188     cout << "gridT = " << gridT << endl;
00189     cout << "gridB = " << gridB << endl;
00190     throw runtime_error("Negative range in fine grid search");
00191   }
00192   
00193   TH2D *fineSurface = new TH2D("fineSurf", "fineSurf",
00194                                nbinsX, gridL, gridR,
00195                                nbinsY, gridB, gridT);
00196     
00197   MAXMSG("NuSystFitter",Msg::kInfo,10) << "Fine AB search with: "  << endl
00198   << "  sn2: " << nbinsX << " bins between " << gridL+sn2prec/2. << " and " << gridR-sn2prec/2.  << endl
00199   << "  dm2: " << nbinsY << " bins between " << gridB+dm2prec/2. << " and " << gridT-dm2prec/2. << endl
00200   << " binw = " << fineSurface->GetXaxis()->GetBinWidth(5) << " x " << fineSurface->GetYaxis()->GetBinWidth(5) << endl;
00201   
00202   int finebinX, finebinY, finebinZ;
00203   FillLikelihoodSurfaceAB(fineSurface);
00204   fineSurface->GetMinimumBin(finebinX, finebinY, finebinZ);
00205   double minsin = fineSurface->GetXaxis()->GetBinCenter(finebinX);
00206   double minmass = fineSurface->GetYaxis()->GetBinCenter(finebinY);
00207   
00208   int binL = 1;
00209   int binR = nbinsX;
00210   int binB = 1;
00211   int binT = nbinsY;
00212   int margin = 2;
00213   
00214   // If we're within 1 bin of the edge, move the grid
00215   
00216   bool redo = false;
00217   if (finebinX - binL < margin) {
00218     if (gridL > Sn2Min()) { // Don't go beyond global limits
00219       minbinX--; 
00220       redo = true;
00221       cout << "Moving grid left for sn2 = " << minsin << endl;
00222     }
00223   }
00224   else if (binR - finebinX < margin) {
00225     if (gridR < Sn2Max()) { // Don't go beyond global limits
00226       minbinX++; 
00227       redo = true;
00228       cout << "Moving grid right for sn2 = " << minsin << endl;
00229     }
00230   }
00231   else if (finebinY - binB < margin) {
00232     if (gridB > Dm2Min()) { // Don't go beyond global limits
00233       minbinY--; 
00234       redo = true;
00235       cout << "Moving grid down for dm2 = " << minmass << endl;
00236     }
00237   }
00238   else if (binT - finebinY < margin) {
00239     if (gridT < Dm2Max()) { // Don't go beyond global limits
00240       minbinY++; 
00241       redo = true;
00242       cout << "Moving grid up for dm2 = " << minmass << endl;
00243     }
00244   }
00245   
00246   // Recursive call to redo with a shifted central point
00247   if (redo) {
00248         delete fineSurface;
00249     return RefineSurface(coarseSurface, sn2prec, dm2prec, minbinX, minbinY);
00250   }
00251   
00252   MSG("NuSystFitter",Msg::kInfo) << "Refined AB minimum: " 
00253   << minsin << ", " << minmass << " at a,b = " << alpha << ", " << beta << endl;
00254   return fineSurface;
00255 }

void NuABFitter::SetSilent ( bool  _silent = true  )  [inline]

Definition at line 68 of file NuABFitter.h.

References silent.

00068 {silent = _silent;}

double NuABFitter::Sn2Max (  )  [private]

Definition at line 341 of file NuABFitter.cxx.

References beta.

Referenced by FirstSurface(), and RefineSurface().

00342 {
00343   return TMath::Min(1.-beta, 1.);
00344 }

double NuABFitter::Sn2Min (  )  [private]

Definition at line 334 of file NuABFitter.cxx.

References beta, and MuELoss::e.

Referenced by FirstSurface(), and RefineSurface().

00335 {
00336   return TMath::Max(1.e-5-beta, 1e-5);
00337 }


Member Data Documentation

double NuABFitter::alpha [private]

Definition at line 104 of file NuABFitter.h.

Referenced by Dm2Min(), FillLikelihoodSurfaceAB(), NuABFitter(), ReadSurface(), and RefineSurface().

double NuABFitter::beta [private]
int NuABFitter::expno = -1 [static, private]

Definition at line 127 of file NuABFitter.h.

Referenced by Archive(), and Fit().

Bool_t NuABFitter::fArchive [private]

Definition at line 120 of file NuABFitter.h.

Referenced by AlwaysArchive(), and Fit().

std::string NuABFitter::fArchiveFilename [private]

Definition at line 121 of file NuABFitter.h.

Referenced by AlwaysArchive(), ArchiveTo(), and Fit().

Copy of the best fit point.

Definition at line 101 of file NuABFitter.h.

Referenced by Archive(), BestFit(), Fit(), and ~NuABFitter().

Bool_t NuABFitter::fEdge [private]

Definition at line 114 of file NuABFitter.h.

Bool_t NuABFitter::fFineGridSearch [private]

Definition at line 112 of file NuABFitter.h.

Referenced by DoOutput().

Bool_t NuABFitter::fHighFitPoint [private]

Definition at line 116 of file NuABFitter.h.

Definition at line 113 of file NuABFitter.h.

Referenced by DoOutput(), and RecoverNegativeDeltaChi().

Fitter object.

Definition at line 98 of file NuABFitter.h.

Definition at line 124 of file NuABFitter.h.

Referenced by DeltaChi(), NuABFitter(), and RecoverNegativeDeltaChi().

Bool_t NuABFitter::fZeroFitPoint [private]

Definition at line 117 of file NuABFitter.h.

double NuABFitter::massinterval [private]

Definition at line 109 of file NuABFitter.h.

Referenced by Fit(), and RecoverNegativeDeltaChi().

bool NuABFitter::silent [private]

Definition at line 126 of file NuABFitter.h.

Referenced by Fit(), and SetSilent().

double NuABFitter::sininterval [private]

Definition at line 108 of file NuABFitter.h.

Referenced by Fit(), and RecoverNegativeDeltaChi().


The documentation for this class was generated from the following files:

Generated on 22 Nov 2017 for loon by  doxygen 1.6.1