laura is hosted by Hepforge, IPPP Durham
Laura++  v2r0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauFormulaPar.cc
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2006 - 2013.
3 // Distributed under the Boost Software License, Version 1.0.
4 // (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 // Authors:
7 // Thomas Latham
8 // John Back
9 // Paul Harrison
10 
15 #include <iostream>
16 #include <iomanip>
17 #include <vector>
18 #include <cstdlib>
19 
20 using std::cout;
21 using std::cerr;
22 using std::endl;
23 using std::vector;
24 
25 #include "TRandom.h"
26 #include "TMessage.h"
27 #include "TSystem.h"
28 
29 #include "LauFormulaPar.hh"
30 #include "LauParameter.hh"
31 #include "LauRandom.hh"
32 
33 ClassImp(LauFormulaPar)
34 
35 
36 LauFormulaPar::LauFormulaPar(const TString& forName, const TString& formula, const std::vector<LauParameter*>& params) :
37  name_(forName),
38  formula_(forName,formula),
39  paramVec_(params),
40  dummy_(0),
41  paramArray_(0)
42 
43 {
44  // Dummy array for TFormula
45  dummy_ = new Double_t[1];
46 
47  // Array of input parameters
48  Int_t pars = paramVec_.size();
49 
50  // Check length of vector matches number of parameter in the formula
51  if (formula_.GetNpar()!=pars){
52  cerr<<"ERROR in LauFormulaPar::evaluate : Number of parameters in the formula is : "<<formula_.GetNpar()<< " and the number of LauParameters is : "<<pars<<endl;
53  gSystem->Exit(EXIT_FAILURE);
54  }
55 
56  paramArray_ = new Double_t[pars];
57 
58  if (formula_.GetNdim()!=1){
59  cerr<<"ERROR in LauFormulaPar::evaluate : Given formula of dimension: "<<formula_.GetNdim()<<" and not 1"<<endl;
60  gSystem->Exit(EXIT_FAILURE);
61  }
62 
63 }
64 
66 {
67  delete[] dummy_;
68  delete[] paramArray_;
69 }
70 
71 Double_t LauFormulaPar::value() const
72 {
73 
74  //Assign vector values to array
75  Int_t pars = paramVec_.size();
76 
77  for(Int_t i=0; i<pars; ++i){
78  paramArray_[i] = paramVec_[i]->value();
79  }
80 
81  return formula_.EvalPar(dummy_,paramArray_);
82 }
83 
File containing declaration of LauFormulaPar class.
Class for defining combinations of fit parameter objects.
virtual ~LauFormulaPar()
std::vector< LauParameter * > paramVec_
Vector of LauParameters in the formula.
TFormula formula_
The parameter name.
Double_t * dummy_
Array.
File containing declaration of LauParameter class.
Double_t * paramArray_
Array.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:32
File containing LauRandom namespace.
TString name_
The parameter name.
Double_t value() const