|
|
|||
File indexing completed on 2026-08-06 09:38:28
0001 // -*- C++ -*- 0002 // 0003 // PolarizedBeamParticleData.h is a part of ThePEG - Toolkit for HEP Event Generation 0004 // Copyright (C) 1999-2019 Leif Lonnblad 0005 // 0006 // ThePEG is licenced under version 3 of the GPL, see COPYING for details. 0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 0008 // 0009 #ifndef ThePEG_PolarizedPolarizedBeamParticleData_H 0010 #define ThePEG_PolarizedPolarizedBeamParticleData_H 0011 // This is the declaration of the PolarizedBeamParticleData class. 0012 0013 #include "BeamParticleData.h" 0014 #include "ThePEG/EventRecord/RhoDMatrix.h" 0015 #include "PolarizedBeamParticleData.fh" 0016 0017 namespace ThePEG { 0018 0019 /** 0020 * PolarizedBeamParticleData inherits from the BeamParticleData class and is used 0021 * for polarized beam particles 0022 * 0023 * @see \ref PolarizedBeamParticleDataInterfaces "The interfaces" 0024 * defined for PolarizedBeamParticleData. 0025 * @see BeamParticleData 0026 * @see PDFBase 0027 */ 0028 class PolarizedBeamParticleData: public virtual BeamParticleData { 0029 0030 public: 0031 0032 /** @name Standard constructors and destructors. */ 0033 //@{ 0034 /** 0035 * Default constructor. 0036 */ 0037 PolarizedBeamParticleData() : theLongPolarization(0.0) {} 0038 //@} 0039 0040 /** @name The Create methods are special interfaces for ParticleData 0041 classes. */ 0042 //@{ 0043 /** 0044 * Create a Particle which is its own anti-particle. 0045 */ 0046 static PDPtr Create(long newId, string newPDGName); 0047 0048 /** 0049 * Create a particle - anti particle pair. Note that setting the 0050 * parton density object on this particle does not change the parton 0051 * density of the anti particle iven if synchronized() is true. 0052 */ 0053 static PDPair Create(long newId, string newPDGName, string newAntiPDGName); 0054 //@} 0055 0056 /** 0057 * Set-up the spin density matrix 0058 */ 0059 RhoDMatrix rhoMatrix() const; 0060 0061 /** 0062 * The longitudinal polarization 0063 */ 0064 double longitudinalPolarization() const {return theLongPolarization;} 0065 0066 public: 0067 0068 /** @name Functions used by the persistent I/O system. */ 0069 //@{ 0070 /** 0071 * Function used to write out object persistently. 0072 * @param os the persistent output stream written to. 0073 */ 0074 void persistentOutput(PersistentOStream & os) const; 0075 0076 /** 0077 * Function used to read in object persistently. 0078 * @param is the persistent input stream read from. 0079 * @param version the version number of the object when written. 0080 */ 0081 void persistentInput(PersistentIStream & is, int version); 0082 //@} 0083 0084 /** 0085 * Standard Init function used to initialize the interface. 0086 */ 0087 static void Init(); 0088 0089 protected: 0090 0091 /** 0092 * Protected constructor only to be used by subclasses or by the 0093 * Create method. 0094 */ 0095 PolarizedBeamParticleData(long newId, string newPDGName); 0096 0097 /** 0098 * ParticleData clone method 0099 */ 0100 virtual PDPtr pdclone() const; 0101 0102 private: 0103 0104 /** 0105 * The longitudinal polarization 0106 */ 0107 double theLongPolarization; 0108 0109 private: 0110 0111 /** 0112 * Describe a concrete class with persistent data. 0113 */ 0114 static ClassDescription<PolarizedBeamParticleData> initPolarizedBeamParticleData; 0115 0116 /** 0117 * Private and non-existent assignment operator. 0118 */ 0119 PolarizedBeamParticleData & operator=(const PolarizedBeamParticleData &) = delete; 0120 0121 }; 0122 0123 /** @cond TRAITSPECIALIZATIONS */ 0124 0125 /** This template specialization informs ThePEG about the 0126 * base classes of PolarizedBeamParticleData. */ 0127 template <> 0128 struct BaseClassTrait<PolarizedBeamParticleData,1>: public ClassTraitsType { 0129 /** Typedef of the first base class of PolarizedBeamParticleData. */ 0130 typedef BeamParticleData NthBase; 0131 }; 0132 0133 /** This template specialization informs ThePEG about the name of the 0134 * PolarizedBeamParticleData class. */ 0135 template <> 0136 struct ClassTraits<PolarizedBeamParticleData>: 0137 public ClassTraitsBase<PolarizedBeamParticleData> { 0138 /** Return a platform-independent class name */ 0139 static string className() { return "ThePEG::PolarizedBeamParticleData"; } 0140 }; 0141 0142 /** @endcond */ 0143 0144 } 0145 0146 #endif /* ThePEG_PolarizedBeamParticleData_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|