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.
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 _doB0Mixing;
87  static bool _doBsMixing;
88  static double _dGammad;
89  static double _deltamd;
90  static double _dGammas;
91  static double _deltams;
92  static bool _enableFlip;
93 };
94 #endif // EVTGENBASE_EVTINCOHERENTMIXING_HH
static void setdeltamd(double value)
static void setdeltams(double value)
EvtIncoherentMixing()
Standard constructor.
static void incoherentB0Mix(const EvtId id, double &t, int &mix)
static bool isBsMixed(EvtParticle *)
Definition: EvtId.hh:27
static bool isB0Mixed(EvtParticle *)
static void setdGammad(double value)
static void setdGammas(double value)
~EvtIncoherentMixing()
Destructor.
static void incoherentBsMix(const EvtId id, double &t, int &mix)
static void OtherB(EvtParticle *p, double &t, EvtId &otherb, double probB)