laura is hosted by Hepforge, IPPP Durham
Laura++  v3r5
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauResonanceMaker.hh
Go to the documentation of this file.
1 
2 /*
3 Copyright 2004 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 
35 #ifndef LAU_RESONANCE_MAKER
36 #define LAU_RESONANCE_MAKER
37 
38 #include <iosfwd>
39 #include <vector>
40 
41 #include "TString.h"
42 
43 #include "LauAbsResonance.hh"
44 
45 class LauDaughters;
46 class LauResonanceInfo;
47 
48 
50 
51  public:
53  static LauResonanceMaker& get();
54 
56 
62 
64 
70 
72 
78 
80 
84  void setDefaultBWRadius(const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory, const Double_t bwRadius);
85 
87 
91  void fixBWRadius(const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory, const Bool_t fixRadius);
92 
94 
102  LauAbsResonance* getResonance(const LauDaughters* daughters, const TString& resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory = LauBlattWeisskopfFactor::Default);
103 
105 
109  Int_t resTypeInt(const TString& name) const;
110 
112 
115  UInt_t getNResDefMax() const {return nResDefMax_;}
116 
118 
121  void printAll( std::ostream& stream ) const;
122 
124 
128  LauResonanceInfo* getResInfo(const TString& resName) const;
129 
130  protected:
132  void createResonanceVector();
133 
136 
137  private:
146  Double_t defaultRadius_;
148  Bool_t radiusFixed_;
149  };
150 
152  typedef std::map<LauBlattWeisskopfFactor::BlattWeisskopfCategory,BlattWeisskopfCategoryInfo> BWFactorCategoryMap;
153 
156 
158  virtual ~LauResonanceMaker();
159 
161  LauResonanceMaker( const LauResonanceMaker& other );
162 
165 
168 
170  UInt_t nResDefMax_;
171 
173  std::vector<LauResonanceInfo*> resInfo_;
174 
177 
180 
183 
186 
188  std::vector<LauBlattWeisskopfFactor*> bwIndepFactors_;
189 
192 
193  ClassDef(LauResonanceMaker,0) // Kinematic routines
194 };
195 
196 #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:47
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.