laura is hosted by Hepforge, IPPP Durham
Laura++  v3r2
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 gotFlavourConjugateDP() const {return flavourConjugateDP_;}
79 
81 
84  Bool_t squareDP() const {return kinematics_->squareDP();}
85 
87  Double_t getMassDaug1() const;
89  Double_t getMassDaug2() const;
91  Double_t getMassDaug3() const;
93  Double_t getMassParent() const;
94 
96  TString getNameDaug1() const;
98  TString getNameDaug2() const;
100  TString getNameDaug3() const;
102  TString getNameParent() const;
103 
105  Int_t getTypeDaug1() const;
107  Int_t getTypeDaug2() const;
109  Int_t getTypeDaug3() const;
111  Int_t getTypeParent() const;
112 
114  Int_t getChargeDaug1() const;
116  Int_t getChargeDaug2() const;
118  Int_t getChargeDaug3() const;
120  Int_t getChargeParent() const;
122 
126  Int_t getCharge(Int_t resPairAmpInt) const;
127 
129 
133 
135 
138  const LauKinematics* getKinematics() const {return kinematics_;}
139 
140  protected:
142  void createParticleLists();
143 
145 
148  void setParentType(const TString& nameParent);
149 
151 
156  void setDaugType(const TString& name1, const TString& name2, const TString& name3);
157 
159  void testDPSymmetry();
160 
162  void sanityCheck();
163 
164  private:
166  LauDaughters& operator=( const LauDaughters& rhs );
167 
170 
172  std::vector<const LauParticlePDG*> allowedDaughters_;
173 
175  std::vector<const LauParticlePDG*> allowedParents_;
176 
179 
181  std::vector<const LauParticlePDG*> daughters_;
182 
185 
188 
191 
192  ClassDef(LauDaughters, 0)
193 
194 };
195 
196 #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.
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:63
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 squareDP(const Bool_t calcSquareDPCoords)
Enable/disable the calculation of square Dalitz plot co-ordinates.
void createParticleLists()
Create list of all the allowed parent/daughter particles.
Definition: LauDaughters.cc:84
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 flavourConjugateDP_
Flavour-conjugate Dalitz plot.
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:84
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.
Bool_t gotFlavourConjugateDP() const
Is Dalitz plot flavour-conjugate, i.e. CP(d1) = d2 and CP(d3) = d3.
Definition: LauDaughters.hh:78
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.