ThePEG  1.8.0
PolarizedBeamParticleData.h
1 // -*- C++ -*-
2 //
3 // PolarizedBeamParticleData.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2011 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 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...
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...
PolarizedBeamParticleData & operator=(const PolarizedBeamParticleData &)
Private and non-existent assignment operator.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
RhoDMatrix rhoMatrix() const
Set-up the spin density matrix.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
double longitudinalPolarization() const
The longitudinal polarization.
virtual PDPtr pdclone() const
ParticleData clone method.
double theLongPolarization
The longitudinal polarization.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
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
PolarizedBeamParticleData()
Default constructor.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
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:27
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
static void Init()
Standard Init function used to initialize the interface.