001
002
003
004
005
006
007
008 #ifndef PYTHIA_HH
009 #define PYTHIA_HH
010
011 #include "pythia_i/Pydat1.hh"
012 #include "pythia_i/Pydat2.hh"
013 #include "pythia_i/Pydat3.hh"
014 #include "pythia_i/Pyint2.hh"
015 #include "pythia_i/Pyint4.hh"
016 #include "pythia_i/Pyjets.hh"
017 #include "pythia_i/Pysubs.hh"
018 #include "pythia_i/Pypars.hh"
019 #include "pythia_i/Pydatr.hh"
020 #include "pythia_i/Pymssm.hh"
021 #include "pythia_i/Pytcsm.hh"
022 #include <string>
023 #include <fstream>
024
025 extern "C" {
026 void* pyjets_address_(void);
027 }
028
029
030 class Pythia {
031
032 public:
033
034 static Pythia* Instance();
035
036
037
038
039
040 Pydat1& pydat1() { return _pydat1; }
041 Pydat2& pydat2() { return _pydat2; }
042 Pydat3& pydat3() { return _pydat3; }
043 Pyint2& pyint2() { return _pyint2; }
044 Pyint4& pyint4() { return _pyint4; }
045 Pysubs& pysubs() { return _pysubs; }
046 Pypars& pypars() { return _pypars; }
047 Pydatr& pydatr() { return _pydatr; }
048 Pymssm& pymssm() { return _pymssm; }
049 Pytcsm& pytcsm() { return _pytcsm; }
050 Pyjets& pyjets() { return _pyjets; }
051
052 const std::string& beam() const { return _beam; }
053 const std::string& frame() const { return _frame; }
054 int events() const { return _events; }
055 void setEvents(int e) { _events =e; }
056 void addEvent() { ++_events; }
057
058
059
060 void Pyinit( std::string,std::string,double* );
061 void Pyevnt();
062 void Pyedit( int* );
063 void Pystat( int* );
064 void Pylist( int* );
065 void Pyofsh();
066 void Pyscat();
067 void Pyupda( int*, int* );
068 void Pyevwt( int*, double* );
069 void Pytune( int );
070 void Upinit();
071 void Upevnt();
072 int Pycomp( int* kf);
073 void Pygive(std::string);
074 bool Pysetini();
075
076
077
078 void Lunhep( int* );
079 int Opdcay(std::string, int*, std::string);
080 void Cldcay( int* );
081 void Stdhepctb( int* );
082 bool findPdgCode( int* code);
083
084
085
086 void setEventListLevel( int n ) { _eventlistlevel = n; }
087 void setFirstListEvent( int n ) { _firstlistevent = n; }
088 void setLastListEvent ( int n ) { _lastlistevent = n; }
089
090 int EventListLevel() const { return _eventlistlevel; }
091 int FirstListEvent() const { return _firstlistevent; }
092 int LastListEvent() const { return _lastlistevent ; }
093
094
095
096 void setPythiaUid( std::string uid ) { _uid = uid; }
097 std::string getPythiaUid() const { return _uid; }
098
099 private:
100
101
102
103 static Pythia* _instance;
104 struct Cleaner { ~Cleaner(); };
105
106 friend struct Cleaner;
107
108 Pythia();
109 ~Pythia();
110
111
112
113 Pydat1 _pydat1;
114 Pydat2 _pydat2;
115 Pydat3 _pydat3;
116 Pyint2 _pyint2;
117 Pyint4 _pyint4;
118 Pysubs _pysubs;
119 Pypars _pypars;
120 Pydatr _pydatr;
121 Pymssm _pymssm;
122 Pytcsm _pytcsm;
123 Pyjets _pyjets;
124
125
126 std::string _frame;
127 std::string _beam;
128
129
130 int _events;
131
132
133 std::string _uid;
134
135
136
137 int _eventlistlevel;
138 int _firstlistevent;
139 int _lastlistevent;
140
141 };
142
143 #endif
144
145
146
147
148
149
150
151
Send problems or questions to cdfcode@fnal.gov