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.
EvtEvalHelAmp.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 EVTEVALHELAMP_HH
22 #define EVTEVALHELAMP_HH
23 
25 #include "EvtGenBase/EvtId.hh"
27 
28 class EvtParticle;
29 class EvtAmp;
30 
32  public:
33  EvtEvalHelAmp( EvtId idA, EvtId idB, EvtId idC, EvtComplexPtrPtr HBC );
34 
35  virtual ~EvtEvalHelAmp();
36 
37  double probMax();
38 
39  void evalAmp( EvtParticle* p, EvtAmp& amp );
40 
41  private:
42  void fillHelicity( int* lambda2, int n, int J2, EvtId id );
43  void setUpRotationMatrices( EvtParticle* p, double theta, double phi );
44  void applyRotationMatrices();
45 
46  //spins states available for particle A, B, and C.
47  int _nA, _nB, _nC;
48 
49  //helicity amplitudes
51 
52  //2 times spin for each of the particles
53  int _JA2, _JB2, _JC2;
54 
55  //2 times the helicity for the states
57 
58  //Rotation matrices
60 
61  //temporary array for amplitudes
63 };
64 
65 #endif
void fillHelicity(int *lambda2, int n, int J2, EvtId id)
EvtComplexPtrPtr _HBC
virtual ~EvtEvalHelAmp()
EvtComplexPtrPtrPtr _amp1
EvtComplexPtrPtr _RB
EvtComplexPtrPtrPtr _amp
EvtEvalHelAmp(EvtId idA, EvtId idB, EvtId idC, EvtComplexPtrPtr HBC)
Definition: EvtId.hh:27
EvtComplexPtrPtr _RA
EvtComplexPtrPtr _RC
Definition: EvtAmp.hh:30
void evalAmp(EvtParticle *p, EvtAmp &amp)
EvtComplexPtrPtrPtr _amp3
void setUpRotationMatrices(EvtParticle *p, double theta, double phi)
void applyRotationMatrices()