laura is hosted by Hepforge, IPPP Durham
Laura++  v3r5
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauLASSBWRes.hh
Go to the documentation of this file.
1 
2 /*
3 Copyright 2008 University of Warwick
4 
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8 
9  http://www.apache.org/licenses/LICENSE-2.0
10 
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16 */
17 
18 /*
19 Laura++ package authors:
20 John Back
21 Paul Harrison
22 Thomas Latham
23 */
24 
36 #ifndef LAU_LASS_BW_RES
37 #define LAU_LASS_BW_RES
38 
39 #include "TString.h"
40 
41 #include "LauComplex.hh"
42 #include "LauAbsResonance.hh"
43 
44 
45 class LauLASSBWRes : public LauAbsResonance {
46 
47  public:
49 
54  LauLASSBWRes(LauResonanceInfo* resInfo, const Int_t resPairAmpInt, const LauDaughters* daughters);
55 
56  // Destructor
57  virtual ~LauLASSBWRes();
58 
60  virtual void initialise();
61 
63 
67 
69 
73  virtual void setResonanceParameter(const TString& name, const Double_t value);
74 
76 
79  virtual void floatResonanceParameter(const TString& name);
80 
82 
86  virtual LauParameter* getResonanceParameter(const TString& name);
87 
89 
92  virtual const std::vector<LauParameter*>& getFloatingParameters();
93 
94  protected:
96 
99  void setEffectiveRange(const Double_t r);
100 
102 
105  void setScatteringLength(const Double_t a);
106 
108 
111  Double_t getEffectiveRange() const {return (r_!=0) ? r_->unblindValue() : 0.0;}
112 
114 
117  Double_t getScatteringLength() const {return (a_!=0) ? a_->unblindValue() : 0.0;}
118 
120 
123  Bool_t fixEffectiveRange() const {return (r_!=0) ? r_->fixed() : kTRUE;}
124 
126 
129  Bool_t fixScatteringLength() const {return (a_!=0) ? a_->fixed() : kTRUE;}
130 
132  void calcQ0();
133 
135 
139  virtual LauComplex resAmp(Double_t mass, Double_t spinTerm);
140 
141  private:
143  LauLASSBWRes(const LauLASSBWRes& rhs);
144 
146  LauLASSBWRes& operator=(const LauLASSBWRes& rhs);
147 
149  Double_t q0_;
151  Double_t mDaugSum_;
153  Double_t mDaugSumSq_;
155  Double_t mDaugDiff_;
157  Double_t mDaugDiffSq_;
159  Double_t resMass_;
161  Double_t resMassSq_;
162 
167 
168  ClassDef(LauLASSBWRes,0)
169 };
170 
171 #endif
Bool_t fixed() const
Check whether the parameter is fixed or floated.
virtual ~LauLASSBWRes()
Definition: LauLASSBWRes.cc:74
Double_t mDaugDiff_
Difference between the daughter masses.
LauLASSBWRes(LauResonanceInfo *resInfo, const Int_t resPairAmpInt, const LauDaughters *daughters)
Constructor.
Definition: LauLASSBWRes.cc:38
virtual void setResonanceParameter(const TString &name, const Double_t value)
Set value of a resonance parameter.
Double_t getScatteringLength() const
Get the scattering length range parameter.
Class for defining the properties of a resonant particle.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:47
LauParameter * r_
LASS effective range parameter.
void setEffectiveRange(const Double_t r)
Set the effective range parameter value.
Double_t resMassSq_
Square of the resonance mass.
virtual LauParameter * getResonanceParameter(const TString &name)
Access the given resonance parameter.
Double_t mDaugDiffSq_
Square of mDaugDiff.
virtual const std::vector< LauParameter * > & getFloatingParameters()
Retrieve the resonance parameters, e.g. so that they can be loaded into a fit.
LauLASSBWRes & operator=(const LauLASSBWRes &rhs)
Copy assignment operator (not implemented)
LauParameter * a_
LASS scattering length parameter.
virtual void initialise()
Initialise the model.
Definition: LauLASSBWRes.cc:78
Bool_t fixScatteringLength() const
See if the scattering length parameter is fixed or floating.
File containing declaration of LauComplex class.
Double_t q0_
Decay momentum of either daughter in the resonance rest frame.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:49
Bool_t fixEffectiveRange() const
See if the effective range parameter is fixed or floating.
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)
Complex resonant amplitude.
LauResonanceModel
Define the allowed resonance types.
Double_t resMass_
The resonance mass.
void setScatteringLength(const Double_t a)
Set the scattering length parameter value.
Double_t mDaugSum_
Sum of the daughter masses.
Double_t mDaugSumSq_
Square of mDaugSum.
Class for defining the resonant part of the LASS model.
Definition: LauLASSBWRes.hh:45
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
virtual LauAbsResonance::LauResonanceModel getResonanceModel() const
Get the resonance model type.
Definition: LauLASSBWRes.hh:66
File containing declaration of LauAbsResonance class.
Double_t unblindValue() const
The unblinded value of the parameter.
Class for defining a complex number.
Definition: LauComplex.hh:61
Double_t getEffectiveRange() const
Get the effective range parameter.
virtual void floatResonanceParameter(const TString &name)
Allow the various parameters to float in the fit.
void calcQ0()
Utility function to calculate the q0 value.