source: HiSusy/trunk/Pythia8/pythia8170/xmldoc/ExternalDecays.xml @ 1

Last change on this file since 1 was 1, checked in by zerwas, 11 years ago

first import of structure, PYTHIA8 and DELPHES

File size: 3.0 KB
Line 
1<chapter name="External Decays">
2
3<h2>External Decays</h2>
4
5<code>DecayHandler</code> is a base class for the external handling of
6decays. It is intended for normal particle decays, primarily
7<ei>B</ei> mesons and <ei>tau</ei>, and cannot be used to redirect
8decays of heavy resonances like <ei>t</ei> or <ei>Z^0</ei>
9The user-written derived class is called if a pointer to it has
10been given with the
11<code><aloc href="ProgramFlow">pythia.decayPtr()</aloc></code> 
12method, where it also is specified which particles it will be called for.
13This particle information is accessible with the
14<code><aloc href="ParticleDataScheme">doExternalDecay()</aloc></code>
15method.
16
17<p/>
18There is only one pure virtual method in <code>DecayHandler</code>,
19to do the decay:
20<method name="virtual bool DecayHandler::decay(vector&lt;int&gt;&amp; idProd, v
21ector&lt;double&gt;&amp; mProd, vector&lt;Vec4&gt;&amp; pProd, int iDec,
22const Event&amp; event)">
23where
24<argument name="idProd"> is a list of particle PDG identity codes,
25</argument>
26<argument name="mProd"> is a list of their respective masses (in GeV), and
27</argument>
28<argument name="pProd"> is a list of their respective four-momenta.
29</argument>
30</method>
31
32<p/>
33At input, these vectors each have size one, so that <code>idProd[0]</code>,
34<code>mProd[0]</code> and <code>pProd[0]</code> contain information on the
35particle that is to be decayed. At output, the vectors should have
36increased by the addition of all the decay products. Even if initially
37defined in the rest frame of the mother, the products should have been
38boosted so that their four-momenta add up to the <code>pProd[0]</code> of
39the decaying particle.
40
41<p/>
42Should it be of interest to know the prehistory of the decaying
43particle, e.g. to set some helicity information affecting the
44decay angular distribution, the full event record is available
45read-only, with info in which slot <code>iDec</code> the decaying particle
46is stored.
47
48<p/>
49The routine should return <code>true</code> if it managed the decay and
50<code>false</code> otherwise, in which case <code>Pythia</code> will try
51to do the decay itself. This e.g. means you can choose to do some decay
52channels yourself, and leave others to <code>Pythia</code>. To avoid
53doublecounting, the channels you want to handle should be switched off
54in the <code>Pythia</code> particle database. In the beginning of the 
55external <code>decay</code> method you should then return
56<code>false</code> with a probability given by the sum of the branching
57ratios for those channels you do not want to handle yourself.   
58
59<p/>
60Note that the decay vertex is always set by <code>Pythia</code>, and that
61<ei>B-Bbar</ei> oscillations have already been taken into account,
62if they were switched on. Thus <code>idProd[0]</code> may be the opposite
63of <code>event[iDec].id()</code>, where the latter provides the code at
64production.
65
66<p/>
67A sample test program is available in <code>main17.cc</code>, providing
68a simple example of how to use this facility.
69
70</chapter>
71
72<!-- Copyright (C) 2012 Torbjorn Sjostrand -->
Note: See TracBrowser for help on using the repository browser.