YAP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Flatte.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_Flatte_h
22 #define yap_Flatte_h
23 
24 #include "fwd/Flatte.h"
25 
26 #include "fwd/DataPartition.h"
27 #include "fwd/DataPoint.h"
28 #include "fwd/FinalStateParticle.h"
29 #include "fwd/Parameter.h"
30 #include "fwd/ParticleCombination.h"
31 #include "fwd/StatusManager.h"
32 
34 
35 #include <array>
36 #include <complex>
37 #include <memory>
38 
39 namespace yap {
40 
49 {
50 public:
51 
54  Flatte(double m = -1) : MassShapeWithNominalMass(m) {}
55 
57  void add(FlatteChannel fc);
58 
60  const std::vector<FlatteChannel>& channels() const
61  { return FlatteChannels_; }
62 
65  virtual void checkDecayChannel(const DecayChannel& c) const override;
66 
68  virtual bool consistent() const override;
69 
70 protected:
71 
76  virtual void calculateT(DataPartition& D, const std::shared_ptr<ParticleCombination>& pc, unsigned si) const override;
77 
78 private:
79 
81  std::vector<FlatteChannel> FlatteChannels_;
82 
83 };
84 
89 struct FlatteChannel {
91  std::shared_ptr<RealParameter> Coupling;
92 
94  std::array<std::shared_ptr<FinalStateParticle>, 2> Particles;
95 
97  FlatteChannel(std::shared_ptr<RealParameter> coupling, FinalStateParticle& A, FinalStateParticle& B);
98 
101  FlatteChannel(std::make_shared<RealParameter>(coupling), A, B) {}
102 };
103 
104 }
105 
106 #endif
void add(FlatteChannel fc)
Add FlatteChannel.
std::array< std::shared_ptr< FinalStateParticle >, 2 > Particles
Particles of the channel.
Definition: Flatte.h:94
FlatteChannel(double coupling, FinalStateParticle &A, FinalStateParticle &B)
constructor
Definition: Flatte.h:100
virtual bool consistent() const override
Check consistency of object.
Class for Flatte resonance shape.
Definition: Flatte.h:48
Class representing a final-state particle.
Definition: FinalStateParticle.h:43
const std::vector< FlatteChannel > & channels() const
Get FlatteChannel's.
Definition: Flatte.h:60
Class defining a partition of the DataSet.
Definition: DataPartition.h:158
Class for MassShape that gets its nominal mass from its owning resonance.
Definition: MassShapeWithNominalMass.h:39
FlatteChannel(std::shared_ptr< RealParameter > coupling, FinalStateParticle &A, FinalStateParticle &B)
constructor
Definition: Flatte.cxx:21
Flatte(double m=-1)
Definition: Flatte.h:54
virtual void checkDecayChannel(const DecayChannel &c) const override
Definition: Parameter.h:149
std::vector< FlatteChannel > FlatteChannels_
Flatte channels for width calculation.
Definition: Flatte.h:81
std::shared_ptr< RealParameter > Coupling
coupling constant [GeV^2]
Definition: Flatte.h:91
virtual void calculateT(DataPartition &D, const std::shared_ptr< ParticleCombination > &pc, unsigned si) const override
Class implementing a decay channel.
Definition: DecayChannel.h:40
Stores information on channel used in calculating Flatte mass shape.
Definition: Flatte.h:89