laura is hosted by Hepforge, IPPP Durham
Laura++  v3r5
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 <vector>
40 
41 #include "TString.h"
42 
43 #include "LauKinematics.hh"
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, const TString& name1, const TString& name2, const TString& name3, Bool_t useSquareDP = kFALSE);
69 
71  virtual ~LauDaughters();
72 
74  LauDaughters( const LauDaughters& rhs );
75 
77 
80  Bool_t gotSymmetricalDP() const {return symmetricalDP_;}
81 
83 
86  Bool_t gotFullySymmetricDP() const {return fullySymmetricDP_;}
87 
89 
92  Bool_t gotFlavourConjugateDP() const {return flavourConjugateDP_;}
93 
95 
98  Bool_t squareDP() const {return kinematics_->squareDP();}
99 
101  Double_t getMassDaug1() const;
103  Double_t getMassDaug2() const;
105  Double_t getMassDaug3() const;
107  Double_t getMassParent() const;
108 
110  TString getNameDaug1() const;
112  TString getNameDaug2() const;
114  TString getNameDaug3() const;
116  TString getNameParent() const;
117 
119  TString getSanitisedNameDaug1() const;
121  TString getSanitisedNameDaug2() const;
123  TString getSanitisedNameDaug3() const;
125  TString getSanitisedNameParent() const;
126 
128  Int_t getTypeDaug1() const;
130  Int_t getTypeDaug2() const;
132  Int_t getTypeDaug3() const;
134  Int_t getTypeParent() const;
135 
137  Int_t getChargeDaug1() const;
139  Int_t getChargeDaug2() const;
141  Int_t getChargeDaug3() const;
143  Int_t getChargeParent() const;
145 
149  Int_t getCharge(Int_t resPairAmpInt) const;
150 
152 
156 
158 
161  const LauKinematics* getKinematics() const {return kinematics_;}
162 
163  protected:
165  void createParticleLists();
166 
168 
171  void setParentType(const TString& nameParent);
172 
174 
179  void setDaugType(const TString& name1, const TString& name2, const TString& name3);
180 
182  void testDPSymmetry();
183 
185  void sanityCheck();
186 
187  private:
189  LauDaughters& operator=( const LauDaughters& rhs );
190 
193 
195  std::vector<const LauParticlePDG*> allowedDaughters_;
196 
198  std::vector<const LauParticlePDG*> allowedParents_;
199 
202 
204  std::vector<const LauParticlePDG*> daughters_;
205 
208 
211 
214 
215  ClassDef(LauDaughters, 0)
216 
217 };
218 
219 #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.
TString getSanitisedNameParent() const
Get sanitised name of the parent 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:77
LauDaughters(Int_t codeParent, Int_t code1, Int_t code2, Int_t code3, Bool_t useSquareDP=kFALSE)
Constructor from PDG codes.
Definition: LauDaughters.cc:41
TString getSanitisedNameDaug3() const
Get sanitised name of the third daughter particle.
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:98
const LauParticlePDG * parent_
The parent particle.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:47
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:98
Double_t getMassDaug2() const
Get mass of second daughter particle.
File containing declaration of LauKinematics class.
TString getSanitisedNameDaug1() const
Get sanitised name of the first daughter particle.
TString getSanitisedNameDaug2() const
Get sanitised name of the second daughter particle.
Bool_t gotSymmetricalDP() const
Is Dalitz plot symmetric, i.e. 2 identical particles.
Definition: LauDaughters.hh:80
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:92
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:86
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.