laura is hosted by Hepforge, IPPP Durham
Laura++  3.6.0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauResonanceInfo.hh
Go to the documentation of this file.
1 
2 /*
3 Copyright 2006 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 
33 #ifndef LAU_RESONANCE_INFO
34 #define LAU_RESONANCE_INFO
35 
37 
38 #include "TString.h"
39 
40 #include <iosfwd>
41 #include <set>
42 
43 class LauParameter;
44 
46 
47  public:
49 
58  LauResonanceInfo( const TString& name,
59  const Double_t mass,
60  const Double_t width,
61  const Int_t spin,
62  const Int_t charge,
64  const Double_t bwRadius = 4.0 );
65 
67  virtual ~LauResonanceInfo();
68 
70 
73  TString getName() const { return name_; }
74 
76 
82  TString getSanitisedName() const { return sanitisedName_; }
83 
85 
88  LauParameter* getMass() const { return mass_; }
89 
91 
94  LauParameter* getWidth() const { return width_; }
95 
97 
100  UInt_t getSpin() const { return spin_; }
101 
103 
106  Int_t getCharge() const { return charge_; }
107 
109 
113 
115 
118  Double_t getBWRadius() const { return bwRadius_; }
119 
121 
125 
127 
134  LauResonanceInfo* createSharedParameterRecord( const TString& name );
135 
137 
140  LauParameter* getExtraParameter( const TString& parName );
141 
143 
147  void addExtraParameter( LauParameter* param, const Bool_t independentPar = kFALSE );
148 
149  protected:
151 
155  void addCloneOfExtraParameter( LauParameter* param, const Bool_t copyNotClone = kFALSE );
156 
157  private:
160 
162  LauResonanceInfo( const LauResonanceInfo& other, const TString& newName, const Int_t newCharge );
163 
166 
168  void sanitiseName();
169 
171  TString name_;
172 
174  TString sanitisedName_;
175 
178 
181 
183  UInt_t spin_;
184 
186  Int_t charge_;
187 
190 
192  Double_t bwRadius_;
193 
196 
198  std::vector<LauResonanceInfo*> sharedParRecords_;
199 
201  std::set<LauParameter*> extraPars_;
202 
203  ClassDef( LauResonanceInfo, 0 ) // Specify each allowed resonance
204 };
205 
207 std::ostream& operator<<( std::ostream& stream, const LauResonanceInfo& infoRecord );
208 
209 #endif
Int_t charge_
The charge of the resonant particle.
File containing declaration of LauBlattWeisskopfFactor class.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:49
LauBlattWeisskopfFactor::BlattWeisskopfCategory getBWCategory() const
Retrieve the BW category of the resonant particle.
void sanitiseName()
Create the sanitised name by removing characters that are illegal in TBranch names.
virtual ~LauResonanceInfo()
Destructor.
LauResonanceInfo & operator=(const LauResonanceInfo &other)
Copy assignment operator (not implemented)
LauResonanceInfo * createSharedParameterRecord(const TString &name)
Create another record that will share parameters with this one.
LauParameter * getExtraParameter(const TString &parName)
Retrieve an extra parameter of the resonance.
std::ostream & operator<<(std::ostream &stream, const LauResonanceInfo &infoRecord)
output operator formatting of an info record
void addCloneOfExtraParameter(LauParameter *param, const Bool_t copyNotClone=kFALSE)
Add a clone of an extra parameter of the resonance.
Int_t getCharge() const
Retrieve the charge of the resonant particle.
std::set< LauParameter * > extraPars_
Extra parameters.
LauParameter * getWidth() const
Retrieve the width of the resonant particle.
UInt_t spin_
The spin of the resonant particle.
LauParameter * getMass() const
Retrieve the mass of the resonant particle.
LauResonanceInfo(const LauResonanceInfo &other)
Copy constructor (not implemented)
UInt_t getSpin() const
Retrieve the spin of the resonant particle.
LauResonanceInfo * conjugate_
The conjugate info object.
TString getSanitisedName() const
Retrieve the sanitised name of the resonant particle.
std::vector< LauResonanceInfo * > sharedParRecords_
Other info objects that share parameters with this one.
LauResonanceInfo * createChargeConjugate()
Create the charge conjugate particle info record.
void addExtraParameter(LauParameter *param, const Bool_t independentPar=kFALSE)
Add an extra parameter of the resonance.
Class for defining the properties of a resonant particle.
LauParameter * width_
The width of the resonant particle.
Double_t bwRadius_
The Blatt-Weisskopf radius of the resonant particle.
TString getName() const
Retrieve the name of the resonant particle.
LauResonanceInfo(const TString &name, const Double_t mass, const Double_t width, const Int_t spin, const Int_t charge, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory, const Double_t bwRadius=4.0)
Constructor.
BlattWeisskopfCategory
Define resonance categories that will share common barrier factor radii.
LauParameter * mass_
The mass of the resonant particle.
Double_t getBWRadius() const
Retrieve the BW radius of the resonant particle.
LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory_
The Blatt-Weisskopf barrier factor category.
TString name_
The name of the resonant particle.
TString sanitisedName_
The name of the resonant particle with illegal characters removed.