Belle II Software  release-08-01-10
EvtGenDatabasePDG.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 #include <framework/particledb/EvtGenParticlePDG.h>
12 #include <TDatabasePDG.h>
13 #include <iosfwd>
14 
15 namespace Belle2 {
21  class EvtGenDatabasePDG : public TDatabasePDG {
22  public:
24  static EvtGenDatabasePDG* Instance();
26  void ReadEvtGenTable(const char* filename = nullptr);
28  void WriteEvtGenTable(std::ostream& out);
30  void WriteEvtGenTable(const char* filename);
32  TParticlePDG* AddParticle(const char* name, const char* title, Double_t mass, Bool_t stable, Double_t width,
33  Double_t charge, const char* ParticleClass, Int_t PDGcode, Int_t Anti, Int_t TrackingCode) override
34  {
35  return AddParticle(name, title, mass, stable, width, charge, ParticleClass, PDGcode, Anti, TrackingCode, 0, 0, 0, 0);
36  }
38  EvtGenParticlePDG* AddParticle(const char* name, const char* title, Double_t mass, Bool_t stable, Double_t width,
39  Double_t charge, const char* ParticleClass, Int_t PDGcode, Int_t Anti, Int_t TrackingCode,
40  Double_t Lifetime, Double_t Spin, Double_t maxWidth, Int_t pythiaID);
41 
42  private:
49 
51  };
53 } //Belle2 namespace
Replacement for TDatabasePDG that is filled from EvtGen's evt.pdl.
static EvtGenDatabasePDG * Instance()
Instance method that loads the EvtGen table.
EvtGenDatabasePDG(const EvtGenDatabasePDG &)=delete
singleton, make sure there's no copy constructor
EvtGenDatabasePDG & operator=(const EvtGenDatabasePDG &)=delete
singleton, make sure there's no assignment operator
TParticlePDG * AddParticle(const char *name, const char *title, Double_t mass, Bool_t stable, Double_t width, Double_t charge, const char *ParticleClass, Int_t PDGcode, Int_t Anti, Int_t TrackingCode) override
override old AddParticle
void WriteEvtGenTable(std::ostream &out)
Write current database as EvtGen table to a stream.
ClassDefOverride(EvtGenDatabasePDG, 1)
Replacement for TDatabasePDG that is filled from EvtGen's evt.pdl.
void ReadEvtGenTable(const char *filename=nullptr)
Read EvtGen table.
Helper class for setting additional TParticlePDG members and storing the ones it doesn't have yet.
Abstract base class for different kinds of events.