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

NuMMRunCCTutorial Class Reference

#include <NuMMRunCCTutorial.h>

Inheritance diagram for NuMMRunCCTutorial:

NuMMRun List of all members.

Public Member Functions

 NuMMRunCCTutorial (NuMMHelperPRL *helper, NuMatrixSpectrum *ndData, NuMatrixSpectrum *fdData)
virtual const Double_t ComparePredWithData (const NuMMParameters &pars)
virtual const NuMatrixSpectrum MakeFDPred (const NuMMParameters &pars)
virtual const std::vector<
TH1D > 
WriteFDPredHistos (const NuMMParameters &pars) const

Private Attributes

NuMatrixSpectrumfNDData
NuMatrixSpectrumfFDData
NuMMHelperPRLfHelper

Constructor & Destructor Documentation

NuMMRunCCTutorial::NuMMRunCCTutorial NuMMHelperPRL helper,
NuMatrixSpectrum ndData,
NuMatrixSpectrum fdData
 

Definition at line 16 of file NuMMRunCCTutorial.cxx.

00019   : NuMMRun()
00020 {
00021   fHelper = helper;
00022   fNDData = ndData;
00023   fFDData = fdData;
00024 }


Member Function Documentation

const Double_t NuMMRunCCTutorial::ComparePredWithData const NuMMParameters pars  )  [virtual]
 

Implements NuMMRun.

Definition at line 188 of file NuMMRunCCTutorial.cxx.

00189 {
00190   NuMatrixSpectrum prediction(this->MakeFDPred(pars));
00191   return this->StatsLikelihood(prediction.Spectrum(),
00192                                fFDData->Spectrum());
00193 }

const NuMatrixSpectrum NuMMRunCCTutorial::MakeFDPred const NuMMParameters pars  )  [virtual]
 

Definition at line 112 of file NuMMRunCCTutorial.cxx.

References NuMatrixSpectrum::Add(), NuMMHelperPRL::BeamMatrix(), count, NuMatrixSpectrum::DecayCC(), NuMatrixSpectrum::Decohere(), NuMatrixSpectrum::Divide(), NuMMParameters::Dm2(), NuMatrixSpectrum::ExtrapolateNDToFD(), NuMMHelperPRL::FDEfficiency(), NuMMHelperPRL::FDPurity(), NuMMHelperPRL::FDRecoVsTrue(), NuMMHelperPRL::FDTauEfficiency(), NuMMHelperPRL::FDTauRecoVsTrue(), fFDData, fHelper, fNDData, NuMatrixSpectrum::InverseOscillate(), NuMatrixSpectrum::Multiply(), NuMMParameters::NCBackgroundScale(), NuMMHelperPRL::NDEfficiency(), NuMMHelperPRL::NDPurity(), NuMMHelperPRL::NDRecoVsTrue(), NuMMParameters::Normalisation(), NuMatrixSpectrum::Oscillate(), NuMatrixSpectrum::PoT(), NuMatrixSpectrum::RecoToTrue(), NuMMParameters::ShwEnScale(), NuMMParameters::Sn2(), NuMatrixSpectrum::Subtract(), NuMatrixSpectrum::TrueToReco(), NuMMHelperPRL::XSecGraph(), and NuMMHelperPRL::XSecGraphTaus().

00113 {
00114   static Int_t count=0;
00115   if ((!(count%3)) && (!fQuietMode)){
00116     cout << "8sn2: " << pars.Sn2() << "; dm2: " << pars.Dm2() 
00117          << "; norm: " << pars.Normalisation() 
00118          << "; NCBack: " << pars.NCBackgroundScale()
00119          << "; ShwEn: " << pars.ShwEnScale() << endl;
00120   }
00121   
00122   NuMatrixSpectrum prediction(*fNDData);
00123 
00124   NuMatrixSpectrum signal(prediction);
00125   signal.Multiply(fHelper->NDPurity());
00126   NuMatrixSpectrum background(prediction);
00127   background.Subtract(signal);
00128   background.Multiply(pars.NCBackgroundScale());
00129   prediction.Subtract(background);
00130 
00131   prediction.RecoToTrue(fHelper->NDRecoVsTrue());
00132   prediction.Divide(fHelper->NDEfficiency());
00133   prediction.Divide(fHelper->XSecGraph());
00134   prediction.Divide(fNDData->PoT());
00135   prediction.Divide(fNDFidMass);
00136   prediction.ExtrapolateNDToFD(fHelper->BeamMatrix());
00137   prediction.Multiply(fFDFidMass);
00138   prediction.Multiply(fFDData->PoT());
00139 
00140   NuMatrixSpectrum potentialTaus(prediction);
00141   potentialTaus.Multiply(fHelper->XSecGraphTaus());
00142   potentialTaus.Multiply(fHelper->FDTauEfficiency());
00143 
00144   prediction.Multiply(fHelper->XSecGraph());
00145   prediction.Multiply(fHelper->FDEfficiency());
00146 
00147   NuMatrixSpectrum unoscTrueSpectrum(prediction);
00148   unoscTrueSpectrum.TrueToReco(fHelper->FDRecoVsTrue());
00149   NuMatrixSpectrum ncBackground(unoscTrueSpectrum);
00150   ncBackground.Divide(fHelper->FDPurity());
00151   ncBackground.Subtract(unoscTrueSpectrum);
00152   ncBackground.Multiply(pars.NCBackgroundScale());
00153 
00154   potentialTaus.InverseOscillate(pars.Dm2(),pars.Sn2());
00155   potentialTaus.TrueToReco(fHelper->FDTauRecoVsTrue());
00156 
00157 
00158   if (0==fDisappearanceModel){
00159     prediction.Oscillate(pars.Dm2(),pars.Sn2());
00160   }
00161   else if (1==fDisappearanceModel){
00162     prediction.DecayCC(pars.Dm2(),pars.Sn2());
00163   }
00164   else if (2==fDisappearanceModel){
00165     prediction.Decohere(pars.Dm2(),pars.Sn2());
00166   }
00167   else{
00168     cout << "Badly configured disappearance model. "
00169          << "Oscillating as that's probably what you want, "
00170          << "but not including taus."
00171          << endl;
00172     prediction.Oscillate(pars.Dm2(),pars.Sn2());
00173   }
00174   prediction.TrueToReco(fHelper->FDRecoVsTrue());
00175   prediction.Add(ncBackground);
00176   if (0==fDisappearanceModel){
00177     prediction.Add(potentialTaus);
00178   }
00179   
00180   ++count;
00181   
00182   return prediction;
00183   
00184 }

const std::vector< TH1D > NuMMRunCCTutorial::WriteFDPredHistos const NuMMParameters pars  )  const [virtual]
 

Implements NuMMRun.

Definition at line 28 of file NuMMRunCCTutorial.cxx.

References NuMatrixSpectrum::Add(), NuMatrixSpectrum::DecayCC(), NuMatrixSpectrum::Decohere(), NuMatrixSpectrum::Divide(), NuMMParameters::Dm2(), NuMatrixSpectrum::ExtrapolateNDToFD(), NuMatrixSpectrum::InverseOscillate(), NuMatrixSpectrum::Multiply(), NuMMParameters::NCBackgroundScale(), NuMatrixSpectrum::Oscillate(), NuMatrixSpectrum::RecoToTrue(), NuMatrixSpectrum::SetName(), NuMMParameters::Sn2(), NuMatrixSpectrum::Spectrum(), NuMatrixSpectrum::Subtract(), and NuMatrixSpectrum::TrueToReco().

00029 {
00030   vector<TH1D> vHistos;
00031   TH1D hNDData(*(fNDData->Spectrum()));
00032   hNDData.SetName("ndData");
00033   hNDData.SetTitle("ndData");
00034   vHistos.push_back(*(new TH1D(hNDData)));
00035 
00036   NuMatrixSpectrum prediction(*(fNDData->Spectrum()));
00037 
00038   NuMatrixSpectrum signal(prediction);
00039   signal.Multiply(fHelper->NDPurity());
00040   NuMatrixSpectrum background(prediction);
00041   background.Subtract(signal);
00042   background.Multiply(pars.NCBackgroundScale());
00043   prediction.Subtract(background);
00044 
00045   prediction.RecoToTrue(fHelper->NDRecoVsTrue());
00046   prediction.Divide(fHelper->NDEfficiency());
00047   prediction.Divide(fHelper->XSecGraph());
00048   prediction.Divide(fNDData->PoT());
00049   prediction.Divide(fNDFidMass);
00050   prediction.ExtrapolateNDToFD(fHelper->BeamMatrix());
00051   prediction.Multiply(fFDFidMass);
00052   prediction.Multiply(fFDData->PoT());
00053 
00054   NuMatrixSpectrum potentialTaus(prediction);
00055   potentialTaus.Multiply(fHelper->XSecGraphTaus());
00056   potentialTaus.Multiply(fHelper->FDTauEfficiency());
00057 
00058   prediction.Multiply(fHelper->XSecGraph());
00059   prediction.Multiply(fHelper->FDEfficiency());
00060 
00061   NuMatrixSpectrum unoscTrueSpectrum(prediction);
00062   unoscTrueSpectrum.TrueToReco(fHelper->FDRecoVsTrue());
00063   NuMatrixSpectrum ncBackground(unoscTrueSpectrum);
00064   ncBackground.Divide(fHelper->FDPurity());
00065   ncBackground.Subtract(unoscTrueSpectrum);
00066   ncBackground.Multiply(pars.NCBackgroundScale());
00067 
00068   potentialTaus.InverseOscillate(pars.Dm2(),pars.Sn2());
00069   potentialTaus.TrueToReco(fHelper->FDTauRecoVsTrue());
00070 
00071   if (0==fDisappearanceModel){
00072     prediction.Oscillate(pars.Dm2(),pars.Sn2());
00073   }
00074   else if (1==fDisappearanceModel){
00075     prediction.DecayCC(pars.Dm2(),pars.Sn2());
00076   }
00077   else if (2==fDisappearanceModel){
00078     prediction.Decohere(pars.Dm2(),pars.Sn2());
00079   }
00080   else{
00081     cout << "Badly configured disappearance model. "
00082          << "Oscillating as that's probably what you want."
00083          << endl;
00084     prediction.Oscillate(pars.Dm2(),pars.Sn2());
00085   }
00086   prediction.TrueToReco(fHelper->FDRecoVsTrue());
00087   prediction.Add(ncBackground);
00088   if (0==fDisappearanceModel && (!fFakeDataStudy)){
00089     prediction.Add(potentialTaus);
00090   }
00091 
00092   TH1D hFDPrediction(*(prediction.Spectrum()));  
00093   hFDPrediction.SetName("fdPrediction");
00094   vHistos.push_back(hFDPrediction);
00095   
00096   TH1D hFDTaus(*(potentialTaus.Spectrum()));
00097   hFDTaus.SetName("fdTaus");
00098   vHistos.push_back(hFDTaus);
00099 
00100   TH1D hFDNCBackground(*(ncBackground.Spectrum()));
00101   hFDNCBackground.SetName("fdNCBackground");
00102   vHistos.push_back(hFDNCBackground);
00103 
00104   TH1D fdData(*(fFDData->Spectrum()));
00105   hFDNCBackground.SetName("fdData");
00106   vHistos.push_back(fdData);
00107 
00108   return vHistos;
00109 }


Member Data Documentation

NuMatrixSpectrum* NuMMRunCCTutorial::fFDData [private]
 

Reimplemented from NuMMRun.

Definition at line 26 of file NuMMRunCCTutorial.h.

Referenced by MakeFDPred().

NuMMHelperPRL* NuMMRunCCTutorial::fHelper [private]
 

Reimplemented from NuMMRun.

Definition at line 27 of file NuMMRunCCTutorial.h.

Referenced by MakeFDPred().

NuMatrixSpectrum* NuMMRunCCTutorial::fNDData [private]
 

Reimplemented from NuMMRun.

Definition at line 25 of file NuMMRunCCTutorial.h.

Referenced by MakeFDPred().


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