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.
EvtFlatLineShape.cpp
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 
22 
24 #include "EvtGenBase/EvtPDL.hh"
25 #include "EvtGenBase/EvtPatches.hh"
28 #include "EvtGenBase/EvtRandom.hh"
31 
32 EvtFlatLineShape::EvtFlatLineShape( double mass, double width, double maxRange,
34 {
35  _mass = mass;
36  _width = width;
37  _spin = sp;
38  _maxRange = maxRange;
39 
40  double maxdelta = width;
41 
42  _massMax = mass + maxdelta;
43  _massMin = mass - maxdelta;
44 
45  if ( _massMin < 0. )
46  _massMin = 0.;
47 }
48 
50  EvtAbsLineShape( x )
51 {
52  _mass = x._mass;
53  _width = x._width;
54  _spin = x._spin;
55  _massMax = x._massMax;
56  _massMin = x._massMin;
57  _maxRange = x._maxRange;
58 }
59 
61 {
62  _mass = x._mass;
63  _massMax = x._massMax;
64  _massMin = x._massMin;
65  _width = x._width;
66  _maxRange = x._maxRange;
67  _spin = x._spin;
68  return *this;
69 }
70 
72 {
73  return new EvtFlatLineShape( *this );
74 }
75 
76 double EvtFlatLineShape::getMassProb( double mass, double massPar, int nDaug,
77  double* massDau )
78 {
79  double dTotMass = 0.;
80 
81  int i;
82  for ( i = 0; i < nDaug; i++ ) {
83  dTotMass += massDau[i];
84  }
85  if ( ( mass < dTotMass ) )
86  return 0.;
87 
88  if ( massPar > 0.0000000001 ) {
89  if ( mass > massPar )
90  return 0.;
91  }
92 
93  return 1.;
94 }
95 
96 double EvtFlatLineShape::getRandMass( EvtId*, int, EvtId*, EvtId*, double,
97  double* )
98 {
100 }
EvtFlatLineShape & operator=(const EvtFlatLineShape &x)
EvtFlatLineShape()=default
EvtAbsLineShape * clone() override
Definition: EvtId.hh:27
static double Flat()
Definition: EvtRandom.cpp:72
EvtSpinType::spintype _spin
double getRandMass(EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId, double maxMass, double *dauMasses) override
double getMassProb(double mass, double massPar, int nDaug, double *massDau) override