laura is hosted by Hepforge, IPPP Durham
Laura++  v3r5
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 
115  void setWhichAmpSq(Int_t which) { whichAmpSq_ = which; }
116 
117 protected:
118 
120 
123  void setmOmegaValue(const Double_t mOmega);
124 
126 
129  Double_t getmOmegaValue() const { return (mOmega_!=0) ? mOmega_->unblindValue() : 0.0; }
130 
132 
135  Bool_t fixmOmegaValue() const { return (mOmega_!=0) ? mOmega_->fixed() : 0.0; }
136 
137 
139 
142  void setwOmegaValue(const Double_t wOmega);
143 
145 
148  Double_t getwOmegaValue() const { return (wOmega_!=0) ? wOmega_->unblindValue() : 0.0; }
149 
151 
154  Bool_t fixwOmegaValue() const { return (wOmega_!=0) ? wOmega_->fixed() : 0.0; }
155 
156 
158 
161  void setmagBValue(const Double_t magB);
162 
164 
167  Double_t getmagBValue() const { return (magB_!=0) ? magB_->unblindValue() : 0.0; }
168 
170 
173  Bool_t fixmagBValue() const { return (magB_!=0) ? magB_->fixed() : 0.0; }
174 
175 
177 
180  void setphiBValue(const Double_t phiB);
181 
183 
186  Double_t getphiBValue() const { return (phiB_!=0) ? phiB_->unblindValue() : 0.0; }
187 
189 
192  Bool_t fixphiBValue() const { return (phiB_!=0) ? phiB_->fixed() : 0.0; }
193 
194 
196 
199  void setdeltaValue(const Double_t delta);
200 
202 
205  Double_t getdeltaValue() const { return (delta_!=0) ? delta_->unblindValue() : 0.0; }
206 
208 
211  Bool_t fixdeltaValue() const { return (delta_!=0) ? delta_->fixed() : 0.0; }
212 
214  virtual LauComplex resAmp(Double_t mass, Double_t spinTerm);
215 
217  void checkDaughterTypes() const;
218 
219 private:
220 
222  LauRhoOmegaMix(const LauRhoOmegaMix& rhs);
223 
226 
229 
231  Double_t rhoMass_;
232 
234  Double_t rhoResRadius_;
235 
237  Double_t rhoParRadius_;
238 
241 
243  Double_t mOmega0_;
244 
246  Double_t mOmegaCur_;
247 
250 
252  Double_t wOmega0_;
253 
255  Double_t wOmegaCur_;
256 
259 
262 
265 
267  Bool_t useDenom_;
268 
271 
274 
277 
279  Int_t whichAmpSq_;
280 
281  ClassDef(LauRhoOmegaMix,0) // Rho-omega mixing model
282 
283 };
284 
285 #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.
Int_t whichAmpSq_
Which amplitude to calculate for rho/omega fit fractions.
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.
void setWhichAmpSq(Int_t which)
Set which rho/omega amplitude to calculate for FF.
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.