]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenBase/EvtMassAmp.hh
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenBase / EvtMassAmp.hh
1 //-----------------------------------------------------------------------
2 // File and Version Information: 
3 //      $Id: EvtMassAmp.hh,v 1.2 2009-03-16 16:42:03 robbep Exp $
4 // 
5 // Environment:
6 //      This software is part of the EvtGen package developed jointly
7 //      for the BaBar and CLEO collaborations. If you use all or part
8 //      of it, please give an appropriate acknowledgement.
9 //
10 // Copyright Information:
11 //      Copyright (C) 1998 Caltech, UCSB
12 //
13 // Module creator:
14 //      Alexei Dvoretskii, Caltech, 2001-2002.
15 //-----------------------------------------------------------------------
16
17 // Relativistic lineshape for a two-body decay of a resonance to two 
18 // pseudoscalars. The mass dependence of the width and the vertex factors
19 // are included in the calculation.
20
21 #ifndef EVT_MASSAMP_HH
22 #define EVT_MASSAMP_HH
23
24 #include "EvtGenBase/EvtPoint1D.hh"
25 #include "EvtGenBase/EvtAmplitude.hh"
26 #include "EvtGenBase/EvtPropBreitWignerRel.hh"
27 #include "EvtGenBase/EvtTwoBodyVertex.hh"
28
29 class EvtMassAmp : public EvtAmplitude<EvtPoint1D> {
30 public:
31
32   EvtMassAmp(const EvtPropBreitWignerRel& prop, const EvtTwoBodyVertex& vd);
33   EvtMassAmp(const EvtMassAmp& other); 
34   virtual ~EvtMassAmp(); 
35
36   virtual EvtComplex amplitude(const EvtPoint1D& p) const;
37
38   virtual EvtAmplitude<EvtPoint1D>* clone() const
39   { return new EvtMassAmp(*this); }
40   
41   void setBirthVtx(const EvtTwoBodyVertex& vb)
42   {
43     _vb = new EvtTwoBodyVertex(vb);
44   }
45
46   void addBirthFact() { _useBirthFact = true; }
47   void addDeathFact() { _useDeathFact = true; }
48   void addBirthFactFF() { _useBirthFactFF = true; }
49   void addDeathFactFF() { _useDeathFactFF = true; }
50
51 private:
52   
53   EvtPropBreitWignerRel _prop;
54   EvtTwoBodyVertex  _vd;
55   EvtTwoBodyVertex* _vb;
56
57   bool _useBirthFact;
58   bool _useDeathFact;
59   bool _useBirthFactFF;
60   bool _useDeathFactFF;
61 };
62
63
64 #endif