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
EvtIncoherentMixing.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 EVTINCOHERENTMIXING_HH
22#define EVTINCOHERENTMIXING_HH 1
23
24// Include files
25
27
35 public:
38
40
41 // activate or desactivate the Bs mixing
42 static void setB0Mixing();
43 static void unsetB0Mixing();
44
45 // activate or desactivate the B0 mixing
46 static void setBsMixing();
47 static void unsetBsMixing();
48
49 // is mixing activated ?
50 static bool doB0Mixing();
51 static bool doBsMixing();
52
53 // set values for the mixing
54 static void setdGammad( double value );
55 static void setdeltamd( double value );
56 static void setdGammas( double value );
57 static void setdeltams( double value );
58
59 // get parameters for mixing
60 static double getdGammad();
61 static double getdeltamd();
62 static double getdGammas();
63 static double getdeltams();
64
65 // Functions to obtain time and type of the mixing ( 1 mix, 0 unmix )
66 static void incoherentB0Mix( const EvtId id, double& t, int& mix );
67 static void incoherentBsMix( const EvtId id, double& t, int& mix );
68
69 // Functions to check if a B has mixed (comes from a B)
70 static bool isB0Mixed( EvtParticle* );
71 static bool isBsMixed( EvtParticle* );
72
73 // Functions for CP models
74 // returns for particle p the decay time t , the flavour of the tag
75 // side (B0, anti-B0, B_s0, anti-B_s0). The flavour of p can flip
76 // with probability probB
77 static void OtherB( EvtParticle* p, double& t, EvtId& otherb, double probB );
78 static void OtherB( EvtParticle* p, double& t, EvtId& otherb );
79
80 static bool flipIsEnabled();
81 static void enableFlip();
82 static void disableFlip();
83
84 protected:
85 private:
86 static bool m_doB0Mixing;
87 static bool m_doBsMixing;
88 static double m_dGammad;
89 static double m_deltamd;
90 static double m_dGammas;
91 static double m_deltams;
92 static bool m_enableFlip;
93};
94#endif // EVTGENBASE_EVTINCOHERENTMIXING_HH
Definition EvtId.hh:27
static void setdeltams(double value)
static void setdGammad(double value)
static bool isB0Mixed(EvtParticle *)
static void setdGammas(double value)
static void setdeltamd(double value)
static bool isBsMixed(EvtParticle *)
static void OtherB(EvtParticle *p, double &t, EvtId &otherb, double probB)
static void incoherentBsMix(const EvtId id, double &t, int &mix)
~EvtIncoherentMixing()
Destructor.
EvtIncoherentMixing()
Standard constructor.
static void incoherentB0Mix(const EvtId id, double &t, int &mix)