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
src
EvtGenModels
EvtPhspDecaytimeCut.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
21
#include "
EvtGenModels/EvtPhspDecaytimeCut.hh
"
22
23
#include "
EvtGenBase/EvtGenKine.hh
"
24
#include "
EvtGenBase/EvtPDL.hh
"
25
#include "
EvtGenBase/EvtParticle.hh
"
26
#include "
EvtGenBase/EvtReport.hh
"
27
28
#include <iostream>
29
#include <stdlib.h>
30
#include <string>
31
32
std::string
EvtPhspDecaytimeCut::getName
()
const
33
{
34
return
"PHSPDECAYTIMECUT"
;
35
}
36
37
EvtDecayBase
*
EvtPhspDecaytimeCut::clone
()
const
38
{
39
return
new
EvtPhspDecaytimeCut
;
40
}
41
42
void
EvtPhspDecaytimeCut::init
()
43
{
44
// check that there are 1 arguments
45
checkNArg
( 1 );
46
// This argument is minimum decay time in ps converted here to EvtGen
47
// units in which c=1
48
m_minDecayTime
=
getArg
( 0 ) *
EvtConst::c
* 1.e-12;
49
}
50
51
void
EvtPhspDecaytimeCut::initProbMax
()
52
{
53
noProbMax
();
54
}
55
56
void
EvtPhspDecaytimeCut::decay
(
EvtParticle
* p )
57
{
58
p->
initializePhaseSpace
(
getNDaug
(),
getDaugs
() );
59
60
// Shift generated decay time by minimum we require
61
const
double
currentDecaytime = p->
getLifetime
();
62
p->
setLifetime
( currentDecaytime +
m_minDecayTime
);
63
64
return
;
65
}
EvtGenKine.hh
EvtPDL.hh
EvtParticle.hh
EvtPhspDecaytimeCut.hh
EvtReport.hh
EvtConst::c
static const double c
Definition
EvtConst.hh:30
EvtDecayBase::EvtDecayBase
EvtDecayBase()=default
EvtDecayBase::getNDaug
int getNDaug() const
Definition
EvtDecayBase.hh:64
EvtDecayBase::getArg
double getArg(unsigned int j)
Definition
EvtDecayBase.cpp:578
EvtDecayBase::noProbMax
void noProbMax()
Definition
EvtDecayBase.cpp:301
EvtDecayBase::checkNArg
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
Definition
EvtDecayBase.cpp:492
EvtDecayBase::getDaugs
const EvtId * getDaugs() const
Definition
EvtDecayBase.hh:65
EvtParticle
Definition
EvtParticle.hh:45
EvtParticle::initializePhaseSpace
double initializePhaseSpace(size_t numdaughter, const EvtId *daughters, bool forceResetMasses=false, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
Definition
EvtParticle.cpp:1100
EvtParticle::setLifetime
void setLifetime(double tau)
Definition
EvtParticle.cpp:95
EvtParticle::getLifetime
double getLifetime() const
Definition
EvtParticle.cpp:107
EvtPhspDecaytimeCut
Definition
EvtPhspDecaytimeCut.hh:32
EvtPhspDecaytimeCut::init
void init() override
Definition
EvtPhspDecaytimeCut.cpp:42
EvtPhspDecaytimeCut::m_minDecayTime
double m_minDecayTime
Definition
EvtPhspDecaytimeCut.hh:46
EvtPhspDecaytimeCut::clone
EvtDecayBase * clone() const override
Definition
EvtPhspDecaytimeCut.cpp:37
EvtPhspDecaytimeCut::getName
std::string getName() const override
Definition
EvtPhspDecaytimeCut.cpp:32
EvtPhspDecaytimeCut::decay
void decay(EvtParticle *p) override
Definition
EvtPhspDecaytimeCut.cpp:56
EvtPhspDecaytimeCut::initProbMax
void initProbMax() override
Definition
EvtPhspDecaytimeCut.cpp:51
Generated by
1.16.1