laura is hosted by Hepforge, IPPP Durham
Laura++  v3r4
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauRhoOmegaMix.hh
Go to the documentation of this file.
1 
2 /*
3 Copyright 2016 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_RHO_OMEGA_MIX
37 #define LAU_RHO_OMEGA_MIX
38 
39 #include "TString.h"
40 
41 #include "LauAbsResonance.hh"
42 #include "LauComplex.hh"
43 
44 #include <vector>
45 
46 class LauResonanceInfo;
47 class LauDaughters;
48 class LauParameter;
49 
51 
52 public:
54 
61  const Int_t resPairAmpInt, const LauDaughters* daughters);
62 
64  virtual ~LauRhoOmegaMix();
65 
67  virtual void initialise();
68 
70  void initialiseRho();
71 
73  void initialiseOmega();
74 
76 
80  virtual LauComplex amplitude(const LauKinematics* kinematics);
81 
83 
87 
89 
93  virtual void setResonanceParameter(const TString& name, const Double_t value);
94 
96 
99  virtual void floatResonanceParameter(const TString& name);
100 
102 
106  virtual LauParameter* getResonanceParameter(const TString& name);
107 
109 
112  virtual const std::vector<LauParameter*>& getFloatingParameters();
113 
114 protected:
115 
117 
120  void setmOmegaValue(const Double_t mOmega);
121 
123 
126  Double_t getmOmegaValue() const { return (mOmega_!=0) ? mOmega_->unblindValue() : 0.0; }
127 
129 
132  Bool_t fixmOmegaValue() const { return (mOmega_!=0) ? mOmega_->fixed() : 0.0; }
133 
134 
136 
139  void setwOmegaValue(const Double_t wOmega);
140 
142 
145  Double_t getwOmegaValue() const { return (wOmega_!=0) ? wOmega_->unblindValue() : 0.0; }
146 
148 
151  Bool_t fixwOmegaValue() const { return (wOmega_!=0) ? wOmega_->fixed() : 0.0; }
152 
153 
155 
158  void setmagBValue(const Double_t magB);
159 
161 
164  Double_t getmagBValue() const { return (magB_!=0) ? magB_->unblindValue() : 0.0; }
165 
167 
170  Bool_t fixmagBValue() const { return (magB_!=0) ? magB_->fixed() : 0.0; }
171 
172 
174 
177  void setphiBValue(const Double_t phiB);
178 
180 
183  Double_t getphiBValue() const { return (phiB_!=0) ? phiB_->unblindValue() : 0.0; }
184 
186 
189  Bool_t fixphiBValue() const { return (phiB_!=0) ? phiB_->fixed() : 0.0; }
190 
191 
193 
196  void setdeltaValue(const Double_t delta);
197 
199 
202  Double_t getdeltaValue() const { return (delta_!=0) ? delta_->unblindValue() : 0.0; }
203 
205 
208  Bool_t fixdeltaValue() const { return (delta_!=0) ? delta_->fixed() : 0.0; }
209 
211  virtual LauComplex resAmp(Double_t mass, Double_t spinTerm);
212 
214  void checkDaughterTypes() const;
215 
216 private:
217 
219  LauRhoOmegaMix(const LauRhoOmegaMix& rhs);
220 
223 
226 
228  Double_t rhoMass_;
229 
231  Double_t rhoResRadius_;
232 
234  Double_t rhoParRadius_;
235 
238 
240  Double_t mOmega0_;
241 
243  Double_t mOmegaCur_;
244 
247 
249  Double_t wOmega0_;
250 
252  Double_t wOmegaCur_;
253 
256 
259 
262 
264  Bool_t useDenom_;
265 
268 
271 
274 
275  ClassDef(LauRhoOmegaMix,0) // Rho-omega mixing model
276 
277 };
278 
279 #endif
virtual const std::vector< LauParameter * > & getFloatingParameters()
Retrieve the resonance parameters, e.g. so that they can be loaded into a fit.
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)
This is not called, amplitude is used directly instead.
Bool_t fixed() const
Check whether the parameter is fixed or floated.
void initialiseOmega()
Initialise the omega resonance.
Double_t mOmega0_
Initial default value of the omega pole mass from LauResonanceMaker.
Bool_t fixwOmegaValue() const
Fix the omega pole width parameter value.
Bool_t fixmOmegaValue() const
Fix the omega pole mass parameter value.
Class for defining the properties of a resonant particle.
void checkDaughterTypes() const
Check that both daughters are the same type of particle.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:47
LauParameter * delta_
delta parameter of the omega mixing contribution
virtual LauAbsResonance::LauResonanceModel getResonanceModel() const
Get the resonance model type.
void setwOmegaValue(const Double_t wOmega)
Set the omega pole width parameter.
LauParameter * wOmega_
Pole width of the omega contribution.
Double_t rhoParRadius_
Previous value of the parents barrier radius of the rho resonance.
LauParameter * mOmega_
Pole mass of the omega contribution.
void setmagBValue(const Double_t magB)
Set the omega B magnitude mixing parameter.
Double_t mOmegaCur_
Current value of the omega pole mass (floating or fixed)
Bool_t fixdeltaValue() const
Fix the omega mixing parameter delta value.
Double_t rhoMass_
Previous value of the pole mass of the rho resonance.
Bool_t fixmagBValue() const
Fix the omega B magnitude mixing parameter value.
LauRhoOmegaMix & operator=(const LauRhoOmegaMix &rhs)
Copy assignment operator (not implemented)
LauParameter * phiB_
B phase parameter of the omega mixing contribution.
Double_t rhoResRadius_
Previous value of the barrier radius of the rho resonance.
virtual LauParameter * getResonanceParameter(const TString &name)
Access the given resonance parameter.
LauAbsResonance::LauResonanceModel model_
The model to use.
Bool_t fixphiBValue() const
Fix the omega B phase mixing parameter value.
Double_t getdeltaValue() const
Get the omega mixing parameter delta.
Double_t wOmegaCur_
Current value of the omega pole mass (floating or fixed)
Double_t getwOmegaValue() const
Get the omega pole width parameter value.
virtual LauComplex amplitude(const LauKinematics *kinematics)
Get the complex dynamical amplitude.
File containing declaration of LauComplex class.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:49
virtual ~LauRhoOmegaMix()
Destructor.
Class for defining the rho-omega resonance mixing model.
Double_t getmOmegaValue() const
Get the omega pole mass parameter value.
void setdeltaValue(const Double_t delta)
Set the omega mixing parameter delta.
LauAbsResonance * omegaRes_
Pointer to the omega (second) resonance lineshape.
LauResonanceModel
Define the allowed resonance types.
Bool_t useDenom_
Boolean to specify if we want to use the denominator factor.
void initialiseRho()
Initialise the rho resonance.
void setmOmegaValue(const Double_t mOmega)
Set the omega pole mass parameter.
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
virtual void setResonanceParameter(const TString &name, const Double_t value)
Set value of the various parameters.
Bool_t doneFirstInit_
Boolean to specify if we have performed the first initialisation.
LauParameter * magB_
B magnitude parameter of the omega mixing contribution.
File containing declaration of LauAbsResonance class.
LauAbsResonance * rhoRes_
Pointer to the rho (or first) resonance lineshape.
Double_t unblindValue() const
The unblinded value of the parameter.
void setphiBValue(const Double_t phiB)
Set the omega B phase mixing parameter.
Class for defining a complex number.
Definition: LauComplex.hh:61
LauRhoOmegaMix(LauResonanceInfo *resInfo, const LauAbsResonance::LauResonanceModel resType, const Int_t resPairAmpInt, const LauDaughters *daughters)
Constructor.
Class for calculating 3-body kinematic quantities.
Double_t wOmega0_
Initial default value of the omega pole width from LauResonanceMaker.
Double_t getmagBValue() const
Get the omega B magnitude mixing parameter.
virtual void initialise()
Initialise the model.
virtual void floatResonanceParameter(const TString &name)
Allow the various parameters to float in the fit.
Double_t getphiBValue() const
Get the omega B phase mixing parameter.