laura is hosted by Hepforge, IPPP Durham
Laura++  v2r0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauAbsCoeffSet.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 
17 #include "TString.h"
18 
19 #include "LauAbsCoeffSet.hh"
20 #include "LauConstants.hh"
21 #include "LauParameter.hh"
22 
23 ClassImp(LauAbsCoeffSet)
24 
25 Double_t LauAbsCoeffSet::minMagnitude_ = -10.0;
26 Double_t LauAbsCoeffSet::maxMagnitude_ = 10.0;
27 Double_t LauAbsCoeffSet::minPhase_ = -LauConstants::threePi;
28 Double_t LauAbsCoeffSet::maxPhase_ = LauConstants::threePi;
29 Double_t LauAbsCoeffSet::minRealImagPart_ = -10.0;
30 Double_t LauAbsCoeffSet::maxRealImagPart_ = 10.0;
31 Double_t LauAbsCoeffSet::minDelta_ = -2.0;
32 Double_t LauAbsCoeffSet::maxDelta_ = 2.0;
33 
34 LauAbsCoeffSet::LauAbsCoeffSet(const TString& theName, const TString& theBaseName) :
35  name_(theName),
36  basename_(theBaseName),
37  index_(0)
38 {
39 }
40 
41 void LauAbsCoeffSet::index(UInt_t newIndex)
42 {
43  index_ = newIndex;
44 
45  TString basename( this->baseName() );
46  if ( basename.Length() != 1 ) {
47  basename.Remove(1);
48  }
49  basename += newIndex;
50  basename += "_";
51  this->baseName(basename);
52 
53  std::vector<LauParameter*> pars = this->getParameters();
54  for ( std::vector<LauParameter*>::iterator iter = pars.begin(); iter != pars.end(); ++iter ) {
55  this->adjustName( *iter );
56  }
57 }
58 
60 {
61  TString theName(par->name());
62  theName.Remove(0,theName.Index("_")+1);
63  theName.Prepend(this->baseName());
64  par->name(theName);
65 }
66 
67 void LauAbsCoeffSet::setParameterValue(const TString& parName, Double_t value, Bool_t init)
68 {
69  LauParameter* par = this->findParameter( parName );
70  if ( par == 0 ) {
71  std::cerr << "ERROR in LauAbsCoeffSet::setParameterValue : Unable to find parameter \"" << parName << "\"" << std::endl;
72  return;
73  }
74 
75  par->value( value );
76  if ( init ) {
77  par->genValue( value );
78  par->initValue( value );
79  }
80 }
81 
82 void LauAbsCoeffSet::fixParameter(const TString& parName)
83 {
84  LauParameter* par = this->findParameter( parName );
85  if ( par == 0 ) {
86  std::cerr << "ERROR in LauAbsCoeffSet::fixParameter : Unable to find parameter \"" << parName << "\"" << std::endl;
87  return;
88  }
89 
90  par->fixed( kTRUE );
91 }
92 
93 void LauAbsCoeffSet::floatParameter(const TString& parName)
94 {
95  LauParameter* par = this->findParameter( parName );
96  if ( par == 0 ) {
97  std::cerr << "ERROR in LauAbsCoeffSet::floatParameter : Unable to find parameter \"" << parName << "\"" << std::endl;
98  return;
99  }
100 
101  par->fixed( kFALSE );
102 }
103 
105 {
106  std::vector<LauParameter*> pars = this->getParameters();
107  for ( std::vector<LauParameter*>::iterator iter = pars.begin(); iter != pars.end(); ++iter ) {
108 
109  const TString& iName = (*iter)->name();
110 
111  if ( iName.EndsWith( parName ) ) {
112  return (*iter);
113  }
114  }
115 
116  return 0;
117 }
118 
Bool_t fixed() const
Check whether the parameter is fixed or floated.
virtual void setParameterValue(const TString &parName, Double_t value, Bool_t init)
Set the value of the named parameter.
const TString & name() const
The parameter name.
File containing declaration of LauAbsCoeffSet class.
UInt_t index_
The index number of the coefficient set.
virtual void fixParameter(const TString &parName)
Set the named parameter to be fixed in the fit.
LauParameter * findParameter(const TString &parName)
Find the parameter with the given name.
virtual UInt_t index() const
Retrieve the index number of the coefficient set.
const Double_t threePi
Three times Pi.
Definition: LauConstants.hh:95
File containing declaration of LauParameter class.
Class for defining the abstract interface for complex coefficient classes.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:32
TString name_
The parameter name.
Double_t initValue() const
The initial value of the parameter.
File containing LauConstants namespace.
virtual void floatParameter(const TString &parName)
Set the named parameter to float in the fit.
Double_t value() const
The value of the parameter.
virtual std::vector< LauParameter * > getParameters()=0
Retrieve the parameters of the coefficient so that they can be loaded into a fit. ...
virtual const TString & baseName() const
Retrieve the base name of the coefficient set.
void adjustName(LauParameter *par)
Prepend the base name and index to the name of a parameter.
Double_t genValue() const
The value generated for the parameter.