EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
EvtPhspFlatLifetime.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"
28
29#include <stdlib.h>
30#include <string>
31
32//==============================================================================
33// Return the name of the model
34//==============================================================================
36{
37 return "PHSPFLATLIFETIME";
38}
39
40//==============================================================================
41// Copy the model
42//==============================================================================
47
48//==============================================================================
49// Initialize the model
50//==============================================================================
52{
53 // check that there is 1 argument in the decay file
54 checkNArg( 1 );
55 // this argument is the lifetime upper edge (in ps)
56 m_maxLifetime = getArg( 0 ) * EvtConst::c * 1.e-12;
57}
58
59//==============================================================================
60// Compute the maximum probability (max of the pdf)
61//==============================================================================
66
67//==============================================================================
68// Decay the particle according to the model
69//==============================================================================
71{
73 // generate the lifetime flat between 0 and max
74 double l = EvtRandom::Flat( 0., m_maxLifetime );
75 // modify the lifetime of the particle (in mm)
76 p->setLifetime( l );
77}
static const double c
Definition EvtConst.hh:30
EvtDecayBase()=default
int getNDaug() const
double getArg(unsigned int j)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
const EvtId * getDaugs() const
double initializePhaseSpace(size_t numdaughter, const EvtId *daughters, bool forceResetMasses=false, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void setLifetime(double tau)
void init() override
Initialize the model.
double m_maxLifetime
parameter of the model: maximum of the generated lifetime (in ps)
void decay(EvtParticle *p) override
Perform the decay.
void initProbMax() override
Compute maximum weight.
EvtPhspFlatLifetime()
Constructor.
std::string getName() const override
return name of the model
EvtDecayBase * clone() const override
Clone.
static double Flat()
Definition EvtRandom.cpp:95