Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

NuMultiRunXFitAnalysis Class Reference

#include <NuMultiRunXFitAnalysis.h>

List of all members.

Public Member Functions

 NuMultiRunXFitAnalysis (std::vector< NuFDXFitConfig > &vFDConfig)
virtual ~NuMultiRunXFitAnalysis ()
virtual double operator() (const std::vector< double > &x) const
virtual double Up () const
virtual void PerformFit ()

Private Member Functions

virtual void ConfigureExtrapolators ()
virtual void SetupPars ()
virtual void SetupCPTPars ()
virtual void SetupTransitionPars ()

Private Attributes

NuXFit::NuXAnalysis_t fanalysisSetting
std::vector< NuXFitAnalysis * > fvExtrapolators
std::vector< NuFDXFitConfigfvFDConfig
TFitterMinuit * fFitter


Constructor & Destructor Documentation

NuMultiRunXFitAnalysis::NuMultiRunXFitAnalysis std::vector< NuFDXFitConfig > &  vFDConfig  )  [explicit]
 

Definition at line 29 of file NuMultiRunXFitAnalysis.cxx.

00030 {
00031   fanalysisSetting = NuXFit::kUnknown;
00032 
00033   fvFDConfig = vFDConfig;
00034 
00035   fFitter = new TFitterMinuit();
00036   fFitter->CreateMinimizer();
00037   fFitter->SetMinuitFCN(this);
00038 }

NuMultiRunXFitAnalysis::~NuMultiRunXFitAnalysis  )  [virtual]
 

Definition at line 77 of file NuMultiRunXFitAnalysis.cxx.

00078 {
00079 }


Member Function Documentation

void NuMultiRunXFitAnalysis::ConfigureExtrapolators  )  [private, virtual]
 

Definition at line 90 of file NuMultiRunXFitAnalysis.cxx.

References NuXFitAnalysis::ConfigureForExternalFit(), fanalysisSetting, NuXFitAnalysis::FDDataPoT(), NuXFitAnalysis::FDMC(), NuXFitAnalysis::FDNuMuBarCCData(), NuXFitAnalysis::FDNuMuCCData(), fvExtrapolators, fvFDConfig, NuXFitAnalysis::NDFitBinningNuMuBarCC(), NuXFitAnalysis::NDFitBinningNuMuCC(), NuXFitAnalysis::NDFitResults(), and NuXFitAnalysis::WriteOutput().

Referenced by PerformFit().

00091 {
00092   for (vector<NuFDXFitConfig>::iterator it = fvFDConfig.begin();
00093        it != fvFDConfig.end();
00094        ++it){
00095     NuXFitAnalysis* xAnal = new NuXFitAnalysis((*it).xmlConfig);
00096     xAnal->WriteOutput(false);
00097     xAnal->NDFitResults((*it).ndFitResults);
00098     xAnal->NDFitBinningNuMuCC((*it).ndFitBinsNuMuCC);
00099     xAnal->NDFitBinningNuMuBarCC((*it).ndFitBinsNuMuBarCC);
00100     xAnal->FDNuMuCCData(*(*it).fdNuMuCCData);
00101     xAnal->FDNuMuBarCCData(*(*it).fdNuMuBarCCData);
00102     xAnal->FDDataPoT((*it).fdDataPoT);
00103     xAnal->FDMC((*it).fdMCFileName);
00104     xAnal->ConfigureForExternalFit((*it).analSetting);
00105     fvExtrapolators.push_back(xAnal);
00106 
00107     fanalysisSetting = (*it).analSetting;
00108   }
00109 }

double NuMultiRunXFitAnalysis::operator() const std::vector< double > &  x  )  const [virtual]
 

Definition at line 42 of file NuMultiRunXFitAnalysis.cxx.

References MSG.

00043 {
00044   static Int_t fitcounter = 0;
00045   if (!(fitcounter%50)){
00046     cout << "Minuit FD XFit call " << fitcounter << endl;
00047   }
00048   ++fitcounter;
00049   if (NuXFit::kCPT == fanalysisSetting){
00050     Double_t like = 0;
00051     for (vector<NuXFitAnalysis*>::const_iterator it = fvExtrapolators.begin();
00052          it != fvExtrapolators.end();
00053          ++it){
00054       (*it)->FillCPTFDPrediction(pars);
00055       like += (*it)->CalculateLikelihood();
00056     }
00057     return like;
00058   }
00059   else if(NuXFit::kTransition == fanalysisSetting){
00060     Double_t like = 0;
00061     for (vector<NuXFitAnalysis*>::const_iterator it = fvExtrapolators.begin();
00062          it != fvExtrapolators.end();
00063          ++it){
00064       (*it)->FillTransitionFDPrediction(pars);
00065       like += (*it)->CalculateLikelihood();
00066     }
00067     return like;
00068   }
00069   else{
00070     MSG("NuXFitAnalysis.cxx",Msg::kFatal)
00071       << "Incorrect analysis setting" << endl;
00072     return -1.0;
00073   }
00074 }

void NuMultiRunXFitAnalysis::PerformFit  )  [virtual]
 

Definition at line 82 of file NuMultiRunXFitAnalysis.cxx.

References ConfigureExtrapolators(), and fFitter.

00083 {
00084   this->ConfigureExtrapolators();
00085   fFitter->Minimize();
00086   fFitter->PrintResults(0,0);
00087 }

void NuMultiRunXFitAnalysis::SetupCPTPars  )  [private, virtual]
 

Definition at line 130 of file NuMultiRunXFitAnalysis.cxx.

References fFitter.

Referenced by SetupPars().

00131 {
00132   fFitter->SetParameter(0,
00133                         "Dm2",
00134                         0.003,0.2,1.0,0.0);
00135   fFitter->SetParameter(1,
00136                         "Sn2",
00137                         1.0,0.2,1.0,0.0);
00138   fFitter->SetParameter(2,
00139                         "Dm2Bar",
00140                         0.003,0.2,1.0,0.0);
00141   fFitter->SetParameter(3,
00142                         "Sn2Bar",
00143                         1.0,0.2,1.0,0.0);
00144 }

void NuMultiRunXFitAnalysis::SetupPars  )  [private, virtual]
 

Definition at line 112 of file NuMultiRunXFitAnalysis.cxx.

References MSG, SetupCPTPars(), and SetupTransitionPars().

00113 {
00114   if (NuXFit::kCPT == fanalysisSetting){
00115     this->SetupCPTPars();
00116     return;
00117   }
00118   else if (NuXFit::kTransition == fanalysisSetting){
00119     this->SetupTransitionPars();
00120     return;
00121   }
00122   else{
00123     MSG("NuXFitAnalysis.cxx",Msg::kFatal)
00124       << "Incorrect analysis setting" << endl;
00125     return;
00126   }
00127 }

void NuMultiRunXFitAnalysis::SetupTransitionPars  )  [private, virtual]
 

Definition at line 147 of file NuMultiRunXFitAnalysis.cxx.

References fFitter.

Referenced by SetupPars().

00148 {
00149   //Setup fit parameters
00150   fFitter->SetParameter(0,
00151                         "transitionProb",
00152                         0.0,0.2,1.0,0.0);
00153 }

virtual double NuMultiRunXFitAnalysis::Up  )  const [inline, virtual]
 

Definition at line 55 of file NuMultiRunXFitAnalysis.h.

00055 {return 1.0;}//Chi2 errors; 0.5 for likelihood


Member Data Documentation

NuXFit::NuXAnalysis_t NuMultiRunXFitAnalysis::fanalysisSetting [private]
 

Definition at line 60 of file NuMultiRunXFitAnalysis.h.

Referenced by ConfigureExtrapolators().

TFitterMinuit* NuMultiRunXFitAnalysis::fFitter [private]
 

Definition at line 63 of file NuMultiRunXFitAnalysis.h.

Referenced by PerformFit(), SetupCPTPars(), and SetupTransitionPars().

std::vector<NuXFitAnalysis*> NuMultiRunXFitAnalysis::fvExtrapolators [private]
 

Definition at line 61 of file NuMultiRunXFitAnalysis.h.

Referenced by ConfigureExtrapolators().

std::vector<NuFDXFitConfig> NuMultiRunXFitAnalysis::fvFDConfig [private]
 

Definition at line 62 of file NuMultiRunXFitAnalysis.h.

Referenced by ConfigureExtrapolators().


The documentation for this class was generated from the following files:
Generated on Mon Feb 15 11:09:55 2010 for loon by  doxygen 1.3.9.1