YAP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Resonance.h
Go to the documentation of this file.
1 /* YAP - Yet another PWA toolkit
2  Copyright 2015, Technische Universitaet Muenchen,
3  Authors: Daniel Greenwald, Johannes Rauch
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 
20 
21 #ifndef yap_Resonance_h
22 #define yap_Resonance_h
23 
24 #include "fwd/DataPartition.h"
25 #include "fwd/DataPoint.h"
26 #include "fwd/DecayChannel.h"
27 #include "fwd/MassShape.h"
28 #include "fwd/ParticleCombination.h"
29 #include "fwd/PhaseSpaceFactor.h"
30 #include "fwd/QuantumNumbers.h"
31 #include "fwd/SpinAmplitude.h"
32 #include "fwd/StatusManager.h"
33 
34 #include "DecayingParticle.h"
35 
36 #include <complex>
37 #include <memory>
38 #include <string>
39 
40 namespace yap {
41 
46 
48 {
49 protected:
50 
53  Resonance(std::string name, const QuantumNumbers& q, double radialSize, std::shared_ptr<MassShape> massShape, std::shared_ptr<PhaseSpaceFactorFactory> phsp_factory);
54 
55 public:
56 
62  static std::shared_ptr<Resonance> create(std::string name, const QuantumNumbers& q, double radialSize, std::shared_ptr<MassShape> massShape, std::shared_ptr<PhaseSpaceFactorFactory> phsp_factory = DefaultPHSPFactory)
63  { return std::shared_ptr<Resonance>(new Resonance(name, q, radialSize, massShape, phsp_factory)); }
64 
67  virtual void checkDecayChannel(const DecayChannel& c) const override;
68 
70 
74  virtual std::shared_ptr<DecayChannel> addChannel(std::shared_ptr<DecayChannel> c) override;
75 
77  virtual bool consistent() const override;
78 
81 
83  std::shared_ptr<MassShape> massShape()
84  { return MassShape_; }
85 
87  std::shared_ptr<const MassShape> massShape() const
88  { return MassShape_; }
89 
91 
93  friend MassShape;
94 
95 protected:
96 
98  virtual void registerWithModel() override;
99 
102  virtual void addParticleCombination(const std::shared_ptr<ParticleCombination>& c) override;
103 
106  virtual void modifyDecayTree(DecayTree& dt) override;
107 
114  virtual std::shared_ptr<PhaseSpaceFactor> phaseSpaceFactor(const DecayChannel& dc, const SpinAmplitude& sa) override final;
115 
116 private:
117 
120  std::shared_ptr<MassShape> MassShape_;
121 
122 };
123 
124 }
125 
126 #endif
virtual void checkDecayChannel(const DecayChannel &c) const override
Definition: Resonance.cxx:40
virtual bool consistent() const override
Check consistency of object.
Definition: Resonance.cxx:47
virtual void registerWithModel() override
overrides DecayingParticle's function to register MassShape_ with Model
Definition: Resonance.cxx:64
virtual std::shared_ptr< DecayChannel > addChannel(std::shared_ptr< DecayChannel > c)
Definition: DecayingParticle.cxx:74
Class holding vectors of fixed and free amplitudes that define a decay tree.
Definition: DecayTree.h:49
std::shared_ptr< MassShape > MassShape_
Definition: Resonance.h:120
std::shared_ptr< const MassShape > massShape() const
access MassShape (const)
Definition: Resonance.h:87
static std::shared_ptr< Resonance > create(std::string name, const QuantumNumbers &q, double radialSize, std::shared_ptr< MassShape > massShape, std::shared_ptr< PhaseSpaceFactorFactory > phsp_factory=DefaultPHSPFactory)
Definition: Resonance.h:62
std::shared_ptr< MassShape > massShape()
access MassShape
Definition: Resonance.h:83
Resonance(std::string name, const QuantumNumbers &q, double radialSize, std::shared_ptr< MassShape > massShape, std::shared_ptr< PhaseSpaceFactorFactory > phsp_factory)
Definition: Resonance.cxx:13
virtual void modifyDecayTree(DecayTree &dt) override
Definition: Resonance.cxx:78
virtual void addParticleCombination(const std::shared_ptr< ParticleCombination > &c) override
Definition: Resonance.cxx:71
std::shared_ptr< RealParameter > radialSize()
Definition: DecayingParticle.h:107
const std::string & name() const
Get name (const)
Definition: Particle.h:72
virtual std::shared_ptr< PhaseSpaceFactor > phaseSpaceFactor(const DecayChannel &dc, const SpinAmplitude &sa) overridefinal
Definition: Resonance.cxx:24
Definition: DecayingParticle.h:51
Class for a particle that will decay and has a mass shape.
Definition: Resonance.h:47
virtual std::shared_ptr< DecayChannel > addChannel(std::shared_ptr< DecayChannel > c) override
Definition: Resonance.cxx:32
Quantum numbers of a Particle.
Definition: QuantumNumbers.h:35
friend MassShape
grant friend status to MassShape to call DecayingParticle::phaseSpaceFactor
Definition: Resonance.h:93
Class implementing a decay channel.
Definition: DecayChannel.h:40
Abstract base class implementing a spin amplitude.
Definition: SpinAmplitude.h:46