C++ Interface to Tauola
DecayList.cxx
1#include "DecayList.h"
2#include "Log.h"
3
4using namespace std;
5
6namespace Tauolapp
7{
8
9vector<TauolaParticle*> DecayList::m_particle_list;
10
12 return getAbsoluteIndex(index, m_particle_list.size()+1);
13}
14
16 int neg_index_relative_to){
17 int absIndex;
18
19 if(index > 0) //absolute position
20 absIndex = index;
21 else //relative to fixed
22 absIndex = index + neg_index_relative_to;
23 //Some error checking
24 if(absIndex < 1 || absIndex > (int)m_particle_list.size()+1){
25 Log::Error()<<"Index outside range: "<< absIndex << ". Range: 1 to "
26 << m_particle_list.size()+1 << endl;
27 Log::Fatal(4);
28 }
29 // cout << "Final call in getAbsoluteIndex().. "<< absIndex << endl;
30 return absIndex; //account for vectors starting at index 0
31}
32
33// NOTE: Not executed by release examples
35 for(int i=0; i < (int) m_particle_list.size(); i++){
36 if(m_particle_list.at(i)==particle)
37 return i+1;
38 }
39 Log::Warning()<<"Could not find particle in particle_list" << endl;
40 return 0;
41}
42
44 return m_particle_list.at(index-1);
45}
46
48 int index){
49
50 if(index > (int) m_particle_list.size())
51 //Add new particle to end
52 addToEnd(new_particle);
53 else{
54 // NOTE: Not executed by release examples
55
56 TauolaParticle * old_particle = getParticle(index);
57 //Add new particle
58 m_particle_list.at(index - 1) = new_particle;
59
60 //Remove old particle at same index in event record
61 /** if(old_particle->production_vertex())
62 old_particle->production_vertex()->remove_particle(old_particle);
63 if(old_particle->end_vertex())
64 old_particle->end_vertex()->remove_particle(old_particle);
65 delete old_particle;**/
66 delete old_particle;
67
68 }
69}
70
72 m_particle_list.push_back(new_particle);
73}
74
76 for(int index=0; index < (int) m_particle_list.size(); index++){
77 Log::Info()<< "Index: "<< index+1<<" Object: "<< m_particle_list.at(index)<<endl;
78 }
79}
80
82 m_particle_list.clear();
83}
84
85} // namespace Tauolapp
static void print()
Definition DecayList.cxx:75
static int getAbsoluteIndex(int index)
Definition DecayList.cxx:11
static void updateList(TauolaParticle *new_particle, int index)
Definition DecayList.cxx:47
static void clear()
Definition DecayList.cxx:81
static void addToEnd(TauolaParticle *new_particle)
Definition DecayList.cxx:71
static TauolaParticle * getParticle(int index)
Definition DecayList.cxx:43
static vector< TauolaParticle * > m_particle_list
static void Fatal(string text, unsigned short int code=0)