laura is hosted by Hepforge, IPPP Durham
Laura++  v2r2p1
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauAbsResonance.hh
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2004 - 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 
24 #ifndef LAU_ABS_RESONANCE
25 #define LAU_ABS_RESONANCE
26 
27 #include "TString.h"
28 
29 #include "LauComplex.hh"
30 
31 class LauDaughters;
32 class LauKinematics;
33 
35 
36  public:
39  BW,
41  GS,
46  LASS,
57  };
58 
60  enum BarrierType {
64  };
65 
67 
76  LauAbsResonance(const TString& resName, Double_t resMass, Double_t resWidth,
77  Int_t resSpin, Int_t resCharge, Int_t resPairAmpInt,
78  const LauDaughters* daughters);
79 
81  virtual ~LauAbsResonance();
82 
84  virtual void initialise() = 0;
85 
87 
91  virtual LauComplex amplitude(const LauKinematics* kinematics);
92 
94 
97  virtual LauResonanceModel getResonanceModel() const = 0;
98 
100 
103  const TString& getResonanceName() const {return resName_;}
104 
106 
109  Int_t getPairInt() const {return resPairAmpInt_;}
110 
112 
115  Int_t getSpin() const {return resSpin_;}
116 
118 
121  Int_t getCharge() const {return resCharge_;}
122 
124 
127  Double_t getMass() const {return resMass_;}
128 
130 
133  Double_t getWidth() const {return resWidth_;}
134 
136 
139  Bool_t flipHelicity() const {return flipHelicity_;}
140 
142 
145  void flipHelicity(Bool_t boolean) {flipHelicity_ = boolean;}
146 
148 
151  Bool_t ignoreMomenta() const {return ignoreMomenta_;}
152 
154 
157  void ignoreMomenta(Bool_t boolean) {ignoreMomenta_ = boolean;}
158 
160 
169  void changeResonance(const Double_t newMass, const Double_t newWidth, const Int_t newSpin);
170 
172 
176  virtual void setResonanceParameter(const TString& name, const Double_t value);
177 
179 
184  virtual void setBarrierRadii(const Double_t resRadius, const Double_t parRadius, const BarrierType type)
185  {
186  resR_ = resRadius;
187  parR_ = parRadius;
188  barrierType_ = type;
189  }
190 
191  protected:
193  TString getNameParent() const;
195  TString getNameDaug1() const;
197  TString getNameDaug2() const;
199  TString getNameBachelor() const;
201  Double_t getMassParent() const;
203  Double_t getMassDaug1() const;
205  Double_t getMassDaug2() const;
207  Double_t getMassBachelor() const;
209  Int_t getChargeParent() const;
211  Int_t getChargeDaug1() const;
213  Int_t getChargeDaug2() const;
215  Int_t getChargeBachelor() const;
216 
218  Double_t getQ() const {return q_;}
220  Double_t getP() const {return p_;}
222  Double_t getPstar() const {return pstar_;}
223 
225  Double_t getParBWRadius() const {return parR_;}
227  Double_t getResBWRadius() const {return resR_;}
230 
232  const LauDaughters* getDaughters() const {return daughters_;}
233 
235 
239  virtual LauComplex resAmp(Double_t mass, Double_t spinTerm) = 0;
240 
241  private:
244 
246  TString nameParent_;
248  TString nameDaug1_;
250  TString nameDaug2_;
252  TString nameBachelor_;
253 
257  Int_t chargeDaug1_;
259  Int_t chargeDaug2_;
262 
264  Double_t massParent_;
266  Double_t massDaug1_;
268  Double_t massDaug2_;
269  // Bachelor mass
270  Double_t massBachelor_;
271 
273  TString resName_;
275  Double_t resMass_;
277  Double_t resWidth_;
279  Int_t resSpin_;
281  Int_t resCharge_;
285  Double_t parR_;
287  Double_t resR_;
290 
295 
297  Double_t q_;
299  Double_t p_;
301  Double_t pstar_;
302 
303  ClassDef(LauAbsResonance,0) // Abstract resonance class
304 
305 };
306 
307 #endif
virtual void initialise()=0
Initialise the model.
Double_t getQ() const
Get the current value of the daughter momentum in the resonance rest frame.
Int_t getChargeBachelor() const
Get the charge of the bachelor daughter.
Double_t massDaug2_
Daughter 2 mass.
Double_t resMass_
Resonance mass.
Double_t getMassBachelor() const
Get the mass of the bachelor daughter.
Double_t getParBWRadius() const
Get the radius of the centrifugal barrier for the parent decay.
BarrierType getBarrierType() const
Get the form factor model.
Bool_t ignoreMomenta_
Boolean to ignore q_ and p_ in spinTerm.
Double_t getMass() const
Get the mass of the resonance.
const TString & getResonanceName() const
Get the name of the resonance.
Double_t getResBWRadius() const
Get the radius of the centrifugal barrier for the resonance decay.
void changeResonance(const Double_t newMass, const Double_t newWidth, const Int_t newSpin)
Allow the mass, width and spin of the resonance to be changed.
Double_t getMassParent() const
Get the parent particle mass.
Double_t massDaug1_
Daughter 1 mass.
void ignoreMomenta(Bool_t boolean)
Set the ignore p_ and q_ flag.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
TString nameDaug2_
Daughter 2 name.
Double_t getPstar() const
Get the current value of the bachelor momentum in the parent rest frame.
Double_t getP() const
Get the current value of the bachelor momentum in the resonance rest frame.
TString getNameDaug2() const
Get the name of the second daughter of the resonance.
Double_t resWidth_
Resonance width.
Double_t massParent_
Parent mass.
Double_t getMassDaug1() const
Get the mass of daughter 1.
const LauDaughters * getDaughters() const
Access the daughters object.
Int_t getPairInt() const
Get the integer to identify which DP axis the resonance belongs to.
Double_t resR_
Radius of the barrier for resonance decay.
Bool_t flipHelicity() const
Get the helicity flip flag.
Double_t getMassDaug2() const
Get the mass of daughter 2.
Int_t chargeBachelor_
Bachelor charge.
Int_t getChargeDaug1() const
Get the charge of daughter 1.
const LauDaughters * daughters_
Information on the particles.
virtual LauResonanceModel getResonanceModel() const =0
Get the resonance model type.
virtual void setResonanceParameter(const TString &name, const Double_t value)
Set value of the various parameters.
Int_t getChargeParent() const
Get the Charge of the parent particle.
File containing declaration of LauComplex class.
Double_t parR_
Radius of the barrier for parent decay.
virtual ~LauAbsResonance()
Destructor.
void flipHelicity(Bool_t boolean)
Set the helicity flip flag.
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm)=0
Complex resonant amplitude.
TString getNameParent() const
Get the name of the parent particle.
Int_t getCharge() const
Get the charge of the resonance.
BarrierType barrierType_
Model to be used for the form factor.
TString nameBachelor_
Bachelor name.
Int_t chargeDaug2_
Daughter 2 charge.
Bool_t flipHelicity_
Boolean to flip helicity.
Bool_t ignoreMomenta() const
Get the ignore momenta flag.
Int_t resCharge_
Resonance charge.
TString nameParent_
Parent name.
Int_t chargeParent_
Parent charge.
TString getNameBachelor() const
Get the name of the daughter that does not originate form the resonance.
Int_t getChargeDaug2() const
Get the charge of daughter 2.
LauResonanceModel
Define the allowed resonance types.
Double_t getWidth() const
Get the width of the resonance.
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
TString resName_
Resonance name.
Int_t resPairAmpInt_
DP axis identifier.
LauAbsResonance(const TString &resName, Double_t resMass, Double_t resWidth, Int_t resSpin, Int_t resCharge, Int_t resPairAmpInt, const LauDaughters *daughters)
Constructor.
Int_t chargeDaug1_
Daughter 1 charge.
Class for defining a complex number.
Definition: LauComplex.hh:47
BarrierType
Define the allowed types of barrier factors.
TString getNameDaug1() const
Get the name of the first daughter of the resonance.
Class for calculating 3-body kinematic quantities.
Int_t resSpin_
Resonance spin.
TString nameDaug1_
Daughter 1 name.
virtual LauComplex amplitude(const LauKinematics *kinematics)
Calculate the complex amplitude.
Int_t getSpin() const
Get the spin of the resonance.
Double_t p_
Bachelor momentum in resonance rest frame.
Double_t pstar_
Bachelor momentum in parent rest frame.
Double_t q_
Daughter momentum in resonance rest frame.
virtual void setBarrierRadii(const Double_t resRadius, const Double_t parRadius, const BarrierType type)
Set the form factor model and parameters.