C++ Interface to Tauola
src/tauolaCInterfaces/DecayList.h
1 #ifndef _DecayList_h_included_
2 #define _DecayList_h_included_
3 
4 /**
5  * @class DecayList
6  *
7  * @brief Storage class for keeping track of TauolaParticles and
8  * their index (as passed to Tauola).
9  *
10  * This class contains a list of TauolaParticles. The index of the
11  * TauolaParticle in the list is passed to FORTRAN TAUOLA (as we can
12  * not pass TauolaParticles directly). A static copy of the class is
13  * used for any run of Tauola and is cleared after each decay generation.
14  * To be compatible with how indicies are used in Tauola, those that are:
15  * - < 0 are relative to some other given position in the list
16  * - = 0 is the position one greater than some given position in the list.
17  * - > 0 are absolute. 1 is the first item (which should generally be
18  * the tau's position)
19  *
20  * @author Nadia Davidson
21  * @date 17 June 2008
22  */
23 
24 #include <stdio.h>
25 #include <stdlib.h>
26 #include <iostream>
27 
28 #include "TauolaParticle.h"
29 
30 using namespace std;
31 
32 namespace Tauolapp
33 {
34 
35 class TauolaParticle;
36 
37 class DecayList {
38 
39  public:
40  /** Return the TauolaParticle corresponding to the index (absolute)
41  in the list of particle */
42  static TauolaParticle * getParticle(int index);
43 
44  /** Adds the new particle into the list and delete the previous
45  particle at the same position if it exists */
46  static void updateList(TauolaParticle * new_particle,
47  int index);
48 
49  /** Adds the new particle to the end of list */
50  static void addToEnd(TauolaParticle * new_particle);
51 
52  /** clear all entries from the list */
53  static void clear();
54 
55  /** Translates index (absolute and relative) to
56  absolute index. If a relative index is given (negative integer)
57  it is taken relative from the end of the list */
58  static int getAbsoluteIndex(int index);
59 
60  /** Translates index (absolute and relative) to
61  absolute index. If a relative index is given (negative integer)
62  it is taken relative to the parameter "neg_index_relative_to" */
63  static int getAbsoluteIndex(int index,
64  int neg_index_relative_to);
65 
66  /** Return index (absolute) of "particle" */
67  static int getAbsoluteIndex(TauolaParticle * particle);
68 
69  /** Print the contents of the list */
70  static void print();
71 
72  private:
73  /** vector used for TauolaParticle mapping */
74  static vector<TauolaParticle*> m_particle_list;
75 
76 };
77 
78 } // namespace Tauolapp
79 #endif
Storage class for keeping track of TauolaParticles and their index (as passed to Tauola).
Abstract base class for particle in the event. This class also handles boosting.
static int getAbsoluteIndex(int index)
static void clear()
static void updateList(TauolaParticle *new_particle, int index)
static int getAbsoluteIndex(int index, int neg_index_relative_to)
static void addToEnd(TauolaParticle *new_particle)
static void print()
static TauolaParticle * getParticle(int index)
static int getAbsoluteIndex(TauolaParticle *particle)