laura is hosted by Hepforge, IPPP Durham
Laura++  v3r0
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauDaughters.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 
22 #ifndef LAU_DAUGHTERS
23 #define LAU_DAUGHTERS
24 
25 #include <vector>
26 
27 #include "TString.h"
28 
29 #include "LauKinematics.hh"
30 
31 class LauParticlePDG;
32 
33 class LauDaughters {
34 
35  public:
37 
44  LauDaughters(Int_t codeParent, Int_t code1, Int_t code2, Int_t code3, Bool_t useSquareDP = kFALSE);
45 
47 
54  LauDaughters(const TString& nameParent, const TString& name1, const TString& name2, const TString& name3, Bool_t useSquareDP = kFALSE);
55 
57  virtual ~LauDaughters();
58 
60  LauDaughters( const LauDaughters& rhs );
61 
63 
66  Bool_t gotSymmetricalDP() const {return symmetricalDP_;}
67 
69 
72  Bool_t gotFullySymmetricDP() const {return fullySymmetricDP_;}
73 
75 
78  Bool_t squareDP() const {return kinematics_->squareDP();}
79 
81  Double_t getMassDaug1() const;
83  Double_t getMassDaug2() const;
85  Double_t getMassDaug3() const;
87  Double_t getMassParent() const;
88 
90  TString getNameDaug1() const;
92  TString getNameDaug2() const;
94  TString getNameDaug3() const;
96  TString getNameParent() const;
97 
99  Int_t getTypeDaug1() const;
101  Int_t getTypeDaug2() const;
103  Int_t getTypeDaug3() const;
105  Int_t getTypeParent() const;
106 
108  Int_t getChargeDaug1() const;
110  Int_t getChargeDaug2() const;
112  Int_t getChargeDaug3() const;
114  Int_t getChargeParent() const;
116 
120  Int_t getCharge(Int_t resPairAmpInt) const;
121 
123 
127 
129 
132  const LauKinematics* getKinematics() const {return kinematics_;}
133 
134  protected:
136  void createParticleLists();
137 
139 
142  void setParentType(const TString& nameParent);
143 
145 
150  void setDaugType(const TString& name1, const TString& name2, const TString& name3);
151 
153  void testDPSymmetry();
154 
156  void sanityCheck();
157 
158  private:
160  LauDaughters& operator=( const LauDaughters& rhs );
161 
164 
166  std::vector<const LauParticlePDG*> allowedDaughters_;
167 
169  std::vector<const LauParticlePDG*> allowedParents_;
170 
173 
175  std::vector<const LauParticlePDG*> daughters_;
176 
179 
182 
183  ClassDef(LauDaughters, 0)
184 
185 };
186 
187 #endif
Double_t getMassParent() const
Get mass of the parent particle.
Class for storing particle properties.
TString getNameDaug1() const
Get name of the first daughter particle.
Int_t getChargeDaug3() const
Get charge of the third daughter particle.
Bool_t squareDP() const
Are the square Dalitz plot co-ordinates being calculated?
Int_t getTypeDaug1() const
Get PDG code of the first daughter particle.
Bool_t fullySymmetricDP_
Boolean flag for fully symmetric Dalitz plot.
void setParentType(const TString &nameParent)
Set the parent particle type.
virtual ~LauDaughters()
Destructor.
Definition: LauDaughters.cc:61
LauDaughters(Int_t codeParent, Int_t code1, Int_t code2, Int_t code3, Bool_t useSquareDP=kFALSE)
Constructor from PDG codes.
Definition: LauDaughters.cc:27
const LauKinematics * getKinematics() const
Retrieve the Dalitz plot kinematics.
void createParticleLists()
Create list of all the allowed parent/daughter particles.
Definition: LauDaughters.cc:81
const LauParticlePDG * parent_
The parent particle.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
Int_t getTypeParent() const
Get PDG code of the parent particle.
Int_t getCharge(Int_t resPairAmpInt) const
Get charge of a particular two-daughter combination.
void testDPSymmetry()
Check whether there is a symmetrical Dalitz plot.
Int_t getChargeDaug1() const
Get charge of the first daughter particle.
LauKinematics * kinematics_
Dalitz plot kinematics.
Bool_t symmetricalDP_
Boolean flag for symmetrical Dalitz plot.
TString getNameDaug2() const
Get name of the second daughter particle.
Bool_t squareDP() const
Determine to use or not the square Dalitz plot.
Definition: LauDaughters.hh:78
Double_t getMassDaug2() const
Get mass of second daughter particle.
File containing declaration of LauKinematics class.
Bool_t gotSymmetricalDP() const
Is Dalitz plot symmetric, i.e. 2 identical particles.
Definition: LauDaughters.hh:66
std::vector< const LauParticlePDG * > daughters_
The daughter particles.
Int_t getChargeDaug2() const
Get charge of the second daughter particle.
LauKinematics * getKinematics()
Retrieve the Dalitz plot kinematics.
std::vector< const LauParticlePDG * > allowedParents_
All possible parent types.
Int_t getTypeDaug3() const
Get PDG code of the third daughter particle.
Int_t getTypeDaug2() const
Get PDG code of the second daughter particle.
TString getNameParent() const
Get name of the parent particle.
void setDaugType(const TString &name1, const TString &name2, const TString &name3)
Set the three daughter types.
Bool_t gotFullySymmetricDP() const
Is Dalitz plot fully symmetric, i.e. 3 identical particles.
Definition: LauDaughters.hh:72
Int_t getChargeParent() const
Get charge of the parent particle.
Double_t getMassDaug1() const
Get mass of first daughter particle.
LauDaughters & operator=(const LauDaughters &rhs)
Copy assignment operator (not implemented)
Class for calculating 3-body kinematic quantities.
void sanityCheck()
Check masses and charges of daughters.
std::vector< const LauParticlePDG * > allowedDaughters_
All possible daughter types.
Double_t getMassDaug3() const
Get mass of third daughter particle.
TString getNameDaug3() const
Get name of the third daughter particle.