thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
PolarizedBeamParticleData.h
1 // -*- C++ -*-
2 //
3 // PolarizedBeamParticleData.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_PolarizedPolarizedBeamParticleData_H
10 #define ThePEG_PolarizedPolarizedBeamParticleData_H
11 // This is the declaration of the PolarizedBeamParticleData class.
12 
13 #include "BeamParticleData.h"
14 #include "ThePEG/EventRecord/RhoDMatrix.h"
15 #include "PolarizedBeamParticleData.fh"
16 
17 namespace ThePEG {
18 
29 
30 public:
31 
39 
46  static PDPtr Create(long newId, string newPDGName);
47 
53  static PDPair Create(long newId, string newPDGName, string newAntiPDGName);
55 
59  RhoDMatrix rhoMatrix() const;
60 
65 
66 public:
67 
74  void persistentOutput(PersistentOStream & os) const;
75 
81  void persistentInput(PersistentIStream & is, int version);
83 
87  static void Init();
88 
89 protected:
90 
95  PolarizedBeamParticleData(long newId, string newPDGName);
96 
100  virtual PDPtr pdclone() const;
101 
102 private:
103 
108 
109 private:
110 
115 
120 
121 };
122 
127 template <>
130  typedef BeamParticleData NthBase;
131 };
132 
135 template <>
136 struct ClassTraits<PolarizedBeamParticleData>:
137  public ClassTraitsBase<PolarizedBeamParticleData> {
139  static string className() { return "ThePEG::PolarizedBeamParticleData"; }
140 };
141 
144 }
145 
146 #endif /* ThePEG_PolarizedBeamParticleData_H */
BeamParticleData inherits from the ParticleData class and is used for particles which have informatio...
PolarizedBeamParticleData & operator=(const PolarizedBeamParticleData &)=delete
Private and non-existent assignment operator.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
static ClassDescription< PolarizedBeamParticleData > initPolarizedBeamParticleData
Describe a concrete class with persistent data.
static PDPtr Create(long newId, string newPDGName)
Create a Particle which is its own anti-particle.
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
double theLongPolarization
The longitudinal polarization.
virtual PDPtr pdclone() const
ParticleData clone method.
pair< PDPtr, PDPtr > PDPair
A pair of pointers to ParticleData objects.
Definition: Containers.h:115
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
RhoDMatrix rhoMatrix() const
Set-up the spin density matrix.
PolarizedBeamParticleData()
Default constructor.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
PolarizedBeamParticleData inherits from the BeamParticleData class and is used for polarized beam par...
The RhoDMatrix class is designed to implement the storage of the rho and D matrices which are require...
Definition: RhoDMatrix.h:28
double longitudinalPolarization() const
The longitudinal polarization.
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
static void Init()
Standard Init function used to initialize the interface.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52