thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
BeamParticleData.h
1// -*- C++ -*-
2//
3// BeamParticleData.h is a part of ThePEG - Toolkit for HEP Event Generation
4// Copyright (C) 1999-2019 Leif Lonnblad
5//
6// ThePEG is licenced under version 3 of the GPL, see COPYING for details.
7// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8//
9#ifndef ThePEG_BeamParticleData_H
10#define ThePEG_BeamParticleData_H
11// This is the declaration of the BeamParticleData class.
12
13#include "ThePEG/PDT/ParticleData.h"
14#include "ThePEG/PDF/PDFBase.h"
15#include "BeamParticleData.xh"
16
17namespace ThePEG {
18
29class BeamParticleData: public virtual ParticleData {
30
31public:
32
40
47 static PDPtr Create(long newId, string newPDGName);
48
54 static PDPair Create(long newId, string newPDGName, string newAntiPDGName);
56
57public:
58
63 tcPDFPtr pdf() const { return thePDF; }
64
65public:
66
74
80 void persistentInput(PersistentIStream & is, int version);
82
86 static void Init();
87
88protected:
89
94 BeamParticleData(long newId, string newPDGName);
95
99 virtual PDPtr pdclone() const;
100
101private:
102
107
108private:
109
114
115private:
116
121
126
127};
128
133template <>
136 typedef ParticleData NthBase;
137};
138
141template <>
142struct ClassTraits<BeamParticleData>:
143 public ClassTraitsBase<BeamParticleData> {
145 static string className() { return "ThePEG::BeamParticleData"; }
146};
147
150}
151
152#endif /* ThePEG_BeamParticleData_H */
BeamParticleData inherits from the ParticleData class and is used for particles which have informatio...
static void Init()
Standard Init function used to initialize the interface.
virtual PDPtr pdclone() const
ParticleData clone method.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
BeamParticleData & operator=(const BeamParticleData &)=delete
Private and non-existent assignment operator.
BeamParticleData()
Default constructor.
tcPDFPtr pdf() const
Return a pointer to the parton density object describing the sub-structure of this particle type.
static PDPair Create(long newId, string newPDGName, string newAntiPDGName)
Create a particle - anti particle pair.
void setPDF(PDFPtr)
Set the parton density object.
static PDPtr Create(long newId, string newPDGName)
Create a Particle which is its own anti-particle.
static ClassDescription< BeamParticleData > initBeamParticleData
Describe a concrete class with persistent data.
BeamParticleData(long newId, string newPDGName)
Protected constructor only to be used by subclasses or by the Create method.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
PDFPtr thePDF
The pointer to the parton density object.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
ParticleData inherits from InterfacedBase and represents the properties of a particle type.
Definition: ParticleData.h:36
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
pair< PDPtr, PDPtr > PDPair
A pair of pointers to ParticleData objects.
Definition: Containers.h:115
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30