laura is hosted by Hepforge, IPPP Durham
Laura++  3.6.0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauDaughters.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 
36 #ifndef LAU_DAUGHTERS
37 #define LAU_DAUGHTERS
38 
39 #include "LauKinematics.hh"
40 
41 #include "TString.h"
42 
43 #include <vector>
44 
45 class LauParticlePDG;
46 
47 class LauDaughters {
48 
49  public:
51 
58  LauDaughters( Int_t codeParent, Int_t code1, Int_t code2, Int_t code3, Bool_t useSquareDP = kFALSE );
59 
61 
68  LauDaughters( const TString& nameParent,
69  const TString& name1,
70  const TString& name2,
71  const TString& name3,
72  Bool_t useSquareDP = kFALSE );
73 
75  virtual ~LauDaughters();
76 
78  LauDaughters( const LauDaughters& rhs );
79 
81 
84  Bool_t gotSymmetricalDP() const { return symmetricalDP_; }
85 
87 
90  Bool_t gotFullySymmetricDP() const { return fullySymmetricDP_; }
91 
93 
96  Bool_t gotFlavourConjugateDP() const { return flavourConjugateDP_; }
97 
99 
102  Bool_t squareDP() const { return kinematics_->squareDP(); }
103 
105  Double_t getMassDaug1() const;
107  Double_t getMassDaug2() const;
109  Double_t getMassDaug3() const;
111  Double_t getMassParent() const;
112 
114  TString getNameDaug1() const;
116  TString getNameDaug2() const;
118  TString getNameDaug3() const;
120  TString getNameParent() const;
121 
123  TString getSanitisedNameDaug1() const;
125  TString getSanitisedNameDaug2() const;
127  TString getSanitisedNameDaug3() const;
129  TString getSanitisedNameParent() const;
130 
132  Int_t getTypeDaug1() const;
134  Int_t getTypeDaug2() const;
136  Int_t getTypeDaug3() const;
138  Int_t getTypeParent() const;
139 
141  Int_t getChargeDaug1() const;
143  Int_t getChargeDaug2() const;
145  Int_t getChargeDaug3() const;
147  Int_t getChargeParent() const;
149 
153  Int_t getCharge( Int_t resPairAmpInt ) const;
154 
156 
160 
162 
165  const LauKinematics* getKinematics() const { return kinematics_; }
166 
167  protected:
169  void createParticleLists();
170 
172 
175  void setParentType( const TString& nameParent );
176 
178 
183  void setDaugType( const TString& name1, const TString& name2, const TString& name3 );
184 
186  void testDPSymmetry();
187 
189  void sanityCheck();
190 
191  private:
194 
197 
199  std::vector<const LauParticlePDG*> allowedDaughters_;
200 
202  std::vector<const LauParticlePDG*> allowedParents_;
203 
206 
208  std::vector<const LauParticlePDG*> daughters_;
209 
212 
215 
218 
219  ClassDef( LauDaughters, 0 )
220 };
221 
222 #endif
TString getNameDaug3() const
Get name of the third daughter particle.
std::vector< const LauParticlePDG * > allowedDaughters_
All possible daughter types.
Int_t getChargeDaug1() const
Get charge of the first daughter particle.
Int_t getCharge(Int_t resPairAmpInt) const
Get charge of a particular two-daughter combination.
const LauKinematics * getKinematics() const
Retrieve the Dalitz plot kinematics.
Bool_t symmetricalDP_
Boolean flag for symmetrical Dalitz plot.
TString getNameDaug2() const
Get name of the second daughter particle.
void sanityCheck()
Check masses and charges of daughters.
Bool_t gotFullySymmetricDP() const
Is Dalitz plot fully symmetric, i.e. 3 identical particles.
Definition: LauDaughters.hh:90
Bool_t flavourConjugateDP_
Flavour-conjugate Dalitz plot.
void setParentType(const TString &nameParent)
Set the parent particle type.
TString getNameParent() const
Get name of the parent particle.
Bool_t squareDP() const
Determine to use or not the square Dalitz plot.
std::vector< const LauParticlePDG * > allowedParents_
All possible parent types.
Bool_t gotFlavourConjugateDP() const
Is Dalitz plot flavour-conjugate, i.e. CP(d1) = d2 and CP(d3) = d3.
Definition: LauDaughters.hh:96
Int_t getTypeDaug2() const
Get PDG code of the second daughter particle.
LauKinematics * getKinematics()
Retrieve the Dalitz plot kinematics.
Int_t getTypeParent() const
Get PDG code of the parent particle.
TString getNameDaug1() const
Get name of the first daughter particle.
void testDPSymmetry()
Check whether there is a symmetrical Dalitz plot.
TString getSanitisedNameParent() const
Get sanitised name of the parent particle.
TString getSanitisedNameDaug2() const
Get sanitised name of the second daughter particle.
void setDaugType(const TString &name1, const TString &name2, const TString &name3)
Set the three daughter types.
void squareDP(const Bool_t calcSquareDPCoords)
Enable/disable the calculation of square Dalitz plot co-ordinates.
Class for storing particle properties.
Bool_t fullySymmetricDP_
Boolean flag for fully symmetric Dalitz plot.
void createParticleLists()
Create list of all the allowed parent/daughter particles.
LauDaughters & operator=(const LauDaughters &rhs)
Copy assignment operator (not implemented)
Int_t getChargeDaug3() const
Get charge of the third daughter particle.
Double_t getMassParent() const
Get mass of the parent particle.
LauDaughters(Int_t codeParent, Int_t code1, Int_t code2, Int_t code3, Bool_t useSquareDP=kFALSE)
Constructor from PDG codes.
Definition: LauDaughters.cc:39
std::vector< const LauParticlePDG * > daughters_
The daughter particles.
virtual ~LauDaughters()
Destructor.
Definition: LauDaughters.cc:91
Int_t getChargeDaug2() const
Get charge of the second daughter particle.
Class for calculating 3-body kinematic quantities.
LauKinematics * kinematics_
Dalitz plot kinematics.
Int_t getTypeDaug1() const
Get PDG code of the first daughter particle.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:47
Double_t getMassDaug2() const
Get mass of second daughter particle.
Double_t getMassDaug3() const
Get mass of third daughter particle.
TString getSanitisedNameDaug3() const
Get sanitised name of the third daughter particle.
TString getSanitisedNameDaug1() const
Get sanitised name of the first daughter particle.
Int_t getChargeParent() const
Get charge of the parent particle.
const LauParticlePDG * parent_
The parent particle.
Bool_t gotSymmetricalDP() const
Is Dalitz plot symmetric, i.e. 2 identical particles.
Definition: LauDaughters.hh:84
Int_t getTypeDaug3() const
Get PDG code of the third daughter particle.
Double_t getMassDaug1() const
Get mass of first daughter particle.
File containing declaration of LauKinematics class.