Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:38:26

0001 // -*- C++ -*-
0002 //
0003 // ScalarSpinInfo.h is a part of ThePEG - Toolkit for HEP Event Generation
0004 // Copyright (C) 2003-2019 Peter Richardson, 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_ScalarSpinInfo_H
0010 #define ThePEG_ScalarSpinInfo_H
0011 // This is the declaration of the ScalarSpinInfo class.
0012 
0013 #include "ThePEG/EventRecord/SpinInfo.h"
0014 #include "ScalarSpinInfo.fh"
0015 
0016 namespace ThePEG {
0017 namespace Helicity {
0018 
0019 /**
0020  * The ScalarSpinInfo class is designed to be the implementation of
0021  * the spin information for a scalar particle. Obviously it is pretty
0022  * trival in this case.
0023  *
0024  * @author Peter Richardson
0025  *
0026  */
0027 class ScalarSpinInfo: public SpinInfo {
0028 
0029 public:
0030 
0031   /** @name Standard constructors and destructors. */
0032   //@{
0033   /**
0034    * Default constructor.
0035    */
0036   ScalarSpinInfo() : SpinInfo(PDT::Spin0) {}
0037 
0038   /**
0039    * Standard Constructor.
0040    * @param p the production momentum.
0041    * @param time true if the particle is time-like.
0042    */
0043   ScalarSpinInfo(const Lorentz5Momentum & p, bool time) 
0044     : SpinInfo(PDT::Spin0, p, time) {}
0045   //@}
0046 
0047 public:
0048 
0049   /**
0050    * Standard Init function.
0051    */
0052   static void Init();
0053 
0054   /**
0055    * Standard clone methods.
0056    */
0057   virtual EIPtr clone() const
0058   {
0059     tcSpinPtr temp = this;
0060     return const_ptr_cast<SpinPtr>(temp);
0061   }
0062   
0063   /**
0064    * Perform a lorentz rotation of the spin information
0065    */
0066   virtual void transform(const LorentzMomentum &,const LorentzRotation &);
0067 
0068 private:
0069 
0070   /**
0071    * Private and non-existent assignment operator.
0072    */
0073   ScalarSpinInfo & operator=(const ScalarSpinInfo &) = delete;
0074 
0075 };
0076 
0077 }
0078 }
0079 
0080 
0081 namespace ThePEG {
0082 
0083 }
0084 #endif /* ThePEG_ScalarSpinInfo_H */