laura is hosted by Hepforge, IPPP Durham
Laura++  v3r2
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauResonanceMaker.hh
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2004 - 2014.
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 
21 #ifndef LAU_RESONANCE_MAKER
22 #define LAU_RESONANCE_MAKER
23 
24 #include <iosfwd>
25 #include <vector>
26 
27 #include "TString.h"
28 
29 #include "LauAbsResonance.hh"
30 
31 class LauDaughters;
32 class LauResonanceInfo;
33 
34 
36 
37  public:
39  static LauResonanceMaker& get();
40 
42 
48 
50 
56 
58 
64 
66 
70  void setDefaultBWRadius(const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory, const Double_t bwRadius);
71 
73 
77  void fixBWRadius(const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory, const Bool_t fixRadius);
78 
80 
88  LauAbsResonance* getResonance(const LauDaughters* daughters, const TString& resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory = LauBlattWeisskopfFactor::Default);
89 
91 
95  Int_t resTypeInt(const TString& name) const;
96 
98 
101  UInt_t getNResDefMax() const {return nResDefMax_;}
102 
104 
107  void printAll( std::ostream& stream ) const;
108 
110 
114  LauResonanceInfo* getResInfo(const TString& resName) const;
115 
116  protected:
118  void createResonanceVector();
119 
122 
123  private:
132  Double_t defaultRadius_;
134  Bool_t radiusFixed_;
135  };
136 
138  typedef std::map<LauBlattWeisskopfFactor::BlattWeisskopfCategory,BlattWeisskopfCategoryInfo> BWFactorCategoryMap;
139 
142 
144  virtual ~LauResonanceMaker();
145 
147  LauResonanceMaker( const LauResonanceMaker& other );
148 
151 
154 
156  UInt_t nResDefMax_;
157 
159  std::vector<LauResonanceInfo*> resInfo_;
160 
163 
166 
169 
172 
174  std::vector<LauBlattWeisskopfFactor*> bwIndepFactors_;
175 
178 
179  ClassDef(LauResonanceMaker,0) // Kinematic routines
180 };
181 
182 #endif
LauBlattWeisskopfFactor * getBWFactor(const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory, const LauResonanceInfo *resInfo)
Retrieve Blatt-Weisskopf factor for the given category.
void setSpinFormalism(const LauAbsResonance::LauSpinType spinType)
Set the spin formalism to be used for all resonances.
LauBlattWeisskopfFactor::RestFrame bwRestFrame_
The rest frame in which the bachelor momentum used in the Blatt-Weisskopf factors should be calculate...
BWFactorCategoryMap bwFactors_
The Blatt-Weisskopf factor objects (and related information) for each category.
Class for defining the properties of a resonant particle.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
static LauResonanceMaker * resonanceMaker_
The singleton instance.
std::vector< LauResonanceInfo * > resInfo_
The known resonances.
void setBWType(const LauBlattWeisskopfFactor::BarrierType bwType)
Set the type of BW factor (for all categories)
UInt_t getNResDefMax() const
Retrieve the number of defined resonances.
void fixBWRadius(const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory, const Bool_t fixRadius)
Fix or release the Blatt-Weisskopf barrier radius for the given category.
LauBlattWeisskopfFactor * bwFactor_
The BW factor object.
std::map< LauBlattWeisskopfFactor::BlattWeisskopfCategory, BlattWeisskopfCategoryInfo > BWFactorCategoryMap
Define a type to hold information on each BW category.
Double_t defaultRadius_
The default value for the radius in this category.
LauSpinType
Define the allowed spin formalisms.
Int_t resTypeInt(const TString &name) const
Retrieve the integer index for the specified resonance.
void setDefaultBWRadius(const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory, const Double_t bwRadius)
Set the BW radius for the given category.
Singleton factory class for creating resonances.
void setBWBachelorRestFrame(const LauBlattWeisskopfFactor::RestFrame restFrame)
Set the rest frame in which the bachelor momentum should be calculated (for all BW categories) ...
void createResonanceVector()
Create the list of known resonances.
Bool_t summaryPrinted_
Boolean flag to control printing a summary of the formalism to be used when the first resonance is cr...
LauBlattWeisskopfFactor::BarrierType bwBarrierType_
The type of the Blatt-Weisskopf barrier to use for all resonances.
void printAll(std::ostream &stream) const
Print the information records, one per line, to the requested stream.
std::vector< LauBlattWeisskopfFactor * > bwIndepFactors_
The Blatt-Weisskopf factor objects for resonances in the independent category.
virtual ~LauResonanceMaker()
Destructor.
LauResonanceModel
Define the allowed resonance types.
LauAbsResonance::LauSpinType spinFormalism_
The spin formalism that should be used for all resonances.
LauResonanceMaker()
Constructor.
BarrierType
Define the allowed types of barrier factors.
LauAbsResonance * getResonance(const LauDaughters *daughters, const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory=LauBlattWeisskopfFactor::Default)
Create a resonance.
Bool_t radiusFixed_
Whether or not the radius value for this category should be fixed in the fit.
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
File containing declaration of LauAbsResonance class.
RestFrame
Define the rest frame in which the momentum should be calculated (only relevant for bachelor) ...
Class that implements the Blatt-Weisskopf barrier factor.
BlattWeisskopfCategory
Define resonance categories that will share common barrier factor radii.
UInt_t nResDefMax_
The number of known resonances.
LauResonanceMaker & operator=(const LauResonanceMaker &other)
Copy assignment (not implemented)
LauResonanceInfo * getResInfo(const TString &resName) const
Get the information for the given resonance name.
Data structure to store information on a given Blatt-Weisskopf category.