84 TPythia8* TPythia8::fgInstance = 0;
95 Fatal(
"TPythia8",
"There's already an instance of TPythia8");
100 fPythia =
new Pythia8::Pythia();
109 fNumberOfParticles(0)
112 Fatal(
"TPythia8",
"There's already an instance of TPythia8");
117 fPythia =
new Pythia8::Pythia(xmlDir);
138 return fgInstance ? fgInstance : (fgInstance =
new TPythia8()) ;
149 fPythia->settings.mode(
"Beams:idA", idAin);
150 fPythia->settings.mode(
"Beams:idB", idBin);
151 fPythia->settings.mode(
"Beams:frameType", 1);
152 fPythia->settings.parm(
"Beams:eCM", ecms);
154 return fPythia->init();
167 fPythia->settings.mode(
"Beams:idA", idAin);
168 fPythia->settings.mode(
"Beams:idB", idBin);
169 fPythia->settings.mode(
"Beams:frameType", 2);
170 fPythia->settings.parm(
"Beams:eA", eAin);
171 fPythia->settings.parm(
"Beams:eB", eBin);
174 return fPythia->init();
185 fNumberOfParticles = fPythia->event.size() - 1;
193 if (particles == 0)
return 0;
195 clonesParticles.
Clear();
199 fNumberOfParticles = fPythia->event.size();
200 if (fPythia->event[0].id() == 90) {
204 if (!strcmp(option,
"") || !strcmp(option,
"Final")) {
206 if (fPythia->event[i].id() == 90)
continue;
207 if (fPythia->event[i].isFinal()) {
209 fPythia->event[i].id(),
210 fPythia->event[i].isFinal(),
211 fPythia->event[i].mother1() + ioff,
212 fPythia->event[i].mother2() + ioff,
213 fPythia->event[i].daughter1() + ioff,
214 fPythia->event[i].daughter2() + ioff,
215 fPythia->event[i].px(),
216 fPythia->event[i].py(),
217 fPythia->event[i].pz(),
218 fPythia->event[i].e(),
219 fPythia->event[i].xProd(),
220 fPythia->event[i].yProd(),
221 fPythia->event[i].zProd(),
222 fPythia->event[i].tProd());
226 }
else if (!strcmp(option,
"All")) {
228 if (fPythia->event[i].id() == 90)
continue;
230 fPythia->event[i].id(),
231 fPythia->event[i].isFinal(),
232 fPythia->event[i].mother1() + ioff,
233 fPythia->event[i].mother2() + ioff,
234 fPythia->event[i].daughter1() + ioff,
235 fPythia->event[i].daughter2() + ioff,
236 fPythia->event[i].px(),
237 fPythia->event[i].py(),
238 fPythia->event[i].pz(),
239 fPythia->event[i].e(),
240 fPythia->event[i].xProd(),
241 fPythia->event[i].yProd(),
242 fPythia->event[i].zProd(),
243 fPythia->event[i].tProd());
247 if(ioff==-1) fNumberOfParticles--;
258 Int_t numpart = fPythia->event.size();
259 if (fPythia->event[0].id() == 90) {
266 for (
Int_t i = 1; i <= numpart; i++) {
268 fPythia->event[i].id(),
269 fPythia->event[i].isFinal(),
270 fPythia->event[i].mother1() + ioff,
271 fPythia->event[i].mother2() + ioff,
272 fPythia->event[i].daughter1() + ioff,
273 fPythia->event[i].daughter2() + ioff,
274 fPythia->event[i].px(),
275 fPythia->event[i].py(),
276 fPythia->event[i].pz(),
277 fPythia->event[i].e(),
278 fPythia->event[i].xProd(),
279 fPythia->event[i].yProd(),
280 fPythia->event[i].zProd(),
281 fPythia->event[i].tProd());
291 return (fPythia->event.size() - 1);
299 fPythia->readString(
string);
307 fPythia->readFile(
string);
315 fPythia->settings.listAll();
323 fPythia->settings.listChanged();
331 fPythia->particleData.list(
id);
339 fPythia->particleData.listAll();
347 fPythia->particleData.listChanged();
363 fPythia->event.list();
373 0, 0,
"QCD string", 90);
375 0, 0,
"QCD diffr. state", 9900110);
377 0, 1,
"QCD diffr. state", 9900210);
379 0, 0,
"QCD diffr. state", 9900220);
381 0, 0,
"QCD diffr. state", 9900330);
383 0, 0,
"QCD diffr. state", 9900440);
385 0, 0,
"QCD diffr. state", 9902110);
387 0, 1,
"QCD diffr. state", 9902210);
void PlistAll() const
Event listing.
void PrintStatistics() const
Print end of run statistics.
virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option="")
Import particles from Pythia stack.
Pythia8::Pythia * fPythia
singleton instance
TPythia8()
Number of particles.
static TPythia8 * Instance()
Return an instance of TPythia8.
void PlistChanged() const
Event listing.
virtual ~TPythia8()
Destructor.
void Fatal(const char *location, const char *msgfmt,...)
virtual void Clear(Option_t *option="")
Remove all objects from the array.
virtual void Delete(Option_t *option="")
Remove all objects from the array AND delete all heap based objects.
Bool_t Initialize(Int_t idAin, Int_t idBin, Double_t ecms)
Initialization.
void ListChanged() const
Event listing.
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
virtual TParticlePDG * AddParticle(const char *Name, const char *Title, Double_t Mass, Bool_t Stable, Double_t DecayWidth, Double_t Charge, const char *ParticleClass, Int_t PdgCode, Int_t Anti=-1, Int_t TrackingCode=0)
Particle definition normal constructor.
friend class TClonesArray
static TDatabasePDG * Instance()
static function
void Plist(Int_t id) const
Event listing.
void ListAll() const
Event listing.
void AddParticlesToPdgDataBase()
Add some pythia specific particle code to the data base.
virtual void Clear(Option_t *option="")
Clear the clones array.
void EventListing() const
Event listing.
TObjArray * fParticles
display neutrons if true
Int_t GetN() const
Initialization.
Int_t fNumberOfParticles
The pythia8 instance.
An array of clone (identical) objects.
virtual void GenerateEvent()
Generate the next event.
void ReadConfigFile(const char *string) const
Configuration.
void ReadString(const char *string) const
Configuration.