evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
EvtMRes.hh
Go to the documentation of this file.
1 
2 /***********************************************************************
3 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4 * *
5 * This file is part of EvtGen. *
6 * *
7 * EvtGen is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * EvtGen is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19 ***********************************************************************/
20 
21 #ifndef __EVTMRES_HH__
22 #define __EVTMRES_HH__
23 
24 #include "EvtGenBase/EvtMNode.hh"
25 
26 class EvtMRes;
27 
29  public:
30  virtual ~EvtMLineShape(){};
31 
32  void setres( EvtMRes* n ) { _node = n; }
33  virtual EvtComplex shape( const vector<EvtVector4R>& product ) const = 0;
34 
35  virtual EvtMLineShape* duplicate() const = 0;
36 
37  protected:
39 };
40 
41 class EvtMRes : public EvtMNode {
42  public:
43  ~EvtMRes();
44 
45  int getnchild() const override { return _children.size(); }
46 
47  EvtComplex line( const vector<EvtVector4R>& product ) const override
48  {
49  return _lineshape->shape( product );
50  }
51 
52  protected:
53  // store the child nodes
54  vector<EvtMNode*> _children;
55 
56  // store the parametrization amplitudes in some kind
58 
59  // store the lineshape of the resonance
61 };
62 
63 #endif
EvtMRes * _node
Definition: EvtMRes.hh:38
EvtSpinAmp _amp
Definition: EvtMRes.hh:57
vector< EvtMNode * > _children
Definition: EvtMRes.hh:54
EvtComplex line(const vector< EvtVector4R > &product) const override
Definition: EvtMRes.hh:47
virtual EvtComplex shape(const vector< EvtVector4R > &product) const =0
virtual EvtMLineShape * duplicate() const =0
~EvtMRes()
Definition: EvtMRes.cpp:25
void setres(EvtMRes *n)
Definition: EvtMRes.hh:32
virtual ~EvtMLineShape()
Definition: EvtMRes.hh:30
int getnchild() const override
Definition: EvtMRes.hh:45
EvtMLineShape * _lineshape
Definition: EvtMRes.hh:60