00001
00002
00003
00004
00005
00006
00007 #ifndef SPINSTATE_HH
00008 #define SPINSTATE_HH
00009
00010 namespace HepPDT {
00011
00013
00020 class SpinState {
00021
00022 public:
00023
00024
00025
00027 inline SpinState( double ts = 0., double spin = 0., double oam =0. );
00028
00029
00030
00031 inline SpinState( const SpinState & orig );
00032 inline SpinState& operator = ( const SpinState & rhs );
00033 inline void swap( SpinState & other );
00034
00035
00036
00038 inline bool operator == ( const SpinState & rhs ) const;
00039
00040
00041
00043 double totalSpin() const { return itsTotalSpin; }
00045 double spin() const { return itsSpin; }
00047 double orbAngMom() const { return itsOrbAngMom; }
00048
00049
00050
00052 void setTotalSpin( double spin ) { itsTotalSpin = spin; }
00054 void setSpin( double spin ) { itsSpin = spin; }
00056 void setOrbAngMom( double ang ) { itsOrbAngMom = ang; }
00057
00058 private:
00059
00060
00061
00062 double itsTotalSpin;
00063 double itsSpin;
00064 double itsOrbAngMom;
00065
00066 };
00067
00068 inline
00069 void swap( SpinState & first,SpinState & second ) { first.swap( second ); }
00070
00071 }
00072
00073 #include "HepPDT/SpinState.icc"
00074
00075 #endif // SPINSTATE_HH