source: HiSusy/trunk/Pythia8/pythia8170/phpdoc/ExternalDecays.php @ 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: 4.0 KB
Line 
1<html>
2<head>
3<title>External Decays</title>
4<link rel="stylesheet" type="text/css" href="pythia.css"/>
5<link rel="shortcut icon" href="pythia32.gif"/>
6</head>
7<body>
8
9<script language=javascript type=text/javascript>
10function stopRKey(evt) {
11var evt = (evt) ? evt : ((event) ? event : null);
12var node = (evt.target) ? evt.target :((evt.srcElement) ? evt.srcElement : null);
13if ((evt.keyCode == 13) && (node.type=="text"))
14{return false;}
15}
16
17document.onkeypress = stopRKey;
18</script>
19<?php
20if($_POST['saved'] == 1) {
21if($_POST['filepath'] != "files/") {
22echo "<font color='red'>SETTINGS SAVED TO FILE</font><br/><br/>"; }
23else {
24echo "<font color='red'>NO FILE SELECTED YET.. PLEASE DO SO </font><a href='SaveSettings.php'>HERE</a><br/><br/>"; }
25}
26?>
27
28<form method='post' action='ExternalDecays.php'>
29
30<h2>External Decays</h2>
31
32<code>DecayHandler</code> is a base class for the external handling of
33decays. It is intended for normal particle decays, primarily
34<i>B</i> mesons and <i>tau</i>, and cannot be used to redirect
35decays of heavy resonances like <i>t</i> or <i>Z^0</i>. 
36The user-written derived class is called if a pointer to it has
37been given with the
38<code><?php $filepath = $_GET["filepath"];
39echo "<a href='ProgramFlow.php?filepath=".$filepath."' target='page'>";?>pythia.decayPtr()</a></code>
40method, where it also is specified which particles it will be called for.
41This particle information is accessible with the
42<code><?php $filepath = $_GET["filepath"];
43echo "<a href='ParticleDataScheme.php?filepath=".$filepath."' target='page'>";?>doExternalDecay()</a></code>
44method.
45
46<p/>
47There is only one pure virtual method in <code>DecayHandler</code>,
48to do the decay:
49<a name="method1"></a>
50<p/><strong>virtual bool DecayHandler::decay(vector&lt;int&gt;&amp; idProd, vector&lt;double&gt;&amp; mProd, vector&lt;Vec4&gt;&amp; pProd, int iDec, const Event&amp; event) &nbsp;</strong> <br/>
51where
52<br/><code>argument</code><strong> idProd </strong>  :  is a list of particle PDG identity codes,
53 
54<br/><code>argument</code><strong> mProd </strong>  :  is a list of their respective masses (in GeV), and
55 
56<br/><code>argument</code><strong> pProd </strong>  :  is a list of their respective four-momenta.
57 
58 
59
60<p/>
61At input, these vectors each have size one, so that <code>idProd[0]</code>,
62<code>mProd[0]</code> and <code>pProd[0]</code> contain information on the
63particle that is to be decayed. At output, the vectors should have
64increased by the addition of all the decay products. Even if initially
65defined in the rest frame of the mother, the products should have been
66boosted so that their four-momenta add up to the <code>pProd[0]</code> of
67the decaying particle.
68
69<p/>
70Should it be of interest to know the prehistory of the decaying
71particle, e.g. to set some helicity information affecting the
72decay angular distribution, the full event record is available
73read-only, with info in which slot <code>iDec</code> the decaying particle
74is stored.
75
76<p/>
77The routine should return <code>true</code> if it managed the decay and
78<code>false</code> otherwise, in which case <code>Pythia</code> will try
79to do the decay itself. This e.g. means you can choose to do some decay
80channels yourself, and leave others to <code>Pythia</code>. To avoid
81doublecounting, the channels you want to handle should be switched off
82in the <code>Pythia</code> particle database. In the beginning of the 
83external <code>decay</code> method you should then return
84<code>false</code> with a probability given by the sum of the branching
85ratios for those channels you do not want to handle yourself.   
86
87<p/>
88Note that the decay vertex is always set by <code>Pythia</code>, and that
89<i>B-Bbar</i> oscillations have already been taken into account,
90if they were switched on. Thus <code>idProd[0]</code> may be the opposite
91of <code>event[iDec].id()</code>, where the latter provides the code at
92production.
93
94<p/>
95A sample test program is available in <code>main17.cc</code>, providing
96a simple example of how to use this facility.
97
98</body>
99</html>
100
101<!-- Copyright (C) 2012 Torbjorn Sjostrand -->
Note: See TracBrowser for help on using the repository browser.