Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // FS_QTildeShowerKinematics1to2.h is a part of Herwig - A multi-purpose Monte Carlo event generator
0004 // Copyright (C) 2002-2019 The Herwig Collaboration
0005 //
0006 // Herwig 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 HERWIG_FS_QTildeShowerKinematics1to2_H
0010 #define HERWIG_FS_QTildeShowerKinematics1to2_H
0011 //
0012 // This is the declaration of the FS_QTildeShowerKinematics1to2 class.
0013 //
0014 
0015 #include "Herwig/Shower/QTilde/Kinematics/ShowerKinematics.h"
0016 
0017 namespace Herwig {
0018 
0019 using namespace ThePEG;
0020 
0021 /** \ingroup Shower
0022  *
0023  *  This (concrete) class provides the specific Final State shower
0024  *  kinematics information.
0025  *
0026  *  @see ShowerKinematics
0027  *  @see IS_QTildeShowerKinematics1to2
0028  *  @see Decay_QTildeShowerKinematics1to2
0029  *  @see KinematicsReconstructor
0030  */
0031 class FS_QTildeShowerKinematics1to2: public ShowerKinematics {
0032 
0033 public:
0034 
0035   /**
0036    * Default constructor
0037    */
0038   FS_QTildeShowerKinematics1to2() = default;
0039 
0040   /**
0041    * The constructor.
0042    */
0043   FS_QTildeShowerKinematics1to2(Energy scale, double z, double phi, Energy pt, tSudakovPtr sud) 
0044     : ShowerKinematics(scale,z,phi,pt,sud) {}
0045   
0046 
0047   /**
0048    *  The updateChildren, updateParent and updateLast
0049    *  members to update the values of the \f$\alpha\f$ and 
0050    *  \f$p_\perp\f$ variables during the shower evolution.
0051    */
0052   //@{
0053 
0054   /**
0055    * Along with the showering evolution --- going forward for
0056    * time-like (forward) evolution, and going backward for space-like
0057    * (backward) evolution --- the kinematical variables of the
0058    * branching products are calculated and updated from the knowledge
0059    * of the parent kinematics.  This method is used by the
0060    * ForwardShowerEvolver.  
0061    * @param parent The branching particle
0062    * @param children The particles produced in the branching
0063    * @param partnerType The type of evolution partner
0064    */
0065 private:
0066 
0067   void updateParameters(tShowerParticlePtr theParent,
0068             tShowerParticlePtr theChild0,
0069             tShowerParticlePtr theChild1,
0070             bool setAlpha) const; 
0071 
0072 public:
0073   virtual void updateChildren( const tShowerParticlePtr parent, 
0074                    const ShowerParticleVector & children,
0075                    unsigned int pTscheme,
0076                    ShowerPartnerType partnerType) const;
0077 
0078   virtual void resetChildren( const tShowerParticlePtr parent, 
0079                   const ShowerParticleVector & children) const;
0080 
0081 
0082   /**
0083    * Update the parent Kinematics from the knowledge of the kinematics
0084    * of the children. This method will be used by the KinematicsReconstructor.
0085    * @param parent   The parent
0086    * @param children The children
0087    * @param partnerType The type of evolution partner
0088    */
0089   virtual void updateParent(const tShowerParticlePtr parent,
0090                 const ShowerParticleVector & children,
0091                 unsigned int pTscheme,
0092                 ShowerPartnerType partnerType) const;
0093 
0094   /**
0095    * Update the parent Kinematics from the knowledge of the kinematics
0096    * of the children. This method will be used by the 
0097    * KinematicsReconstructor.
0098    */
0099   virtual void reconstructParent( const tShowerParticlePtr parent, 
0100                   const ParticleVector & children ) const;
0101 
0102   /**
0103    * Update the kinematical data of a particle when a reconstruction
0104    * fixpoint was found. This will highly depend on the kind of
0105    * kinematics chosen and will be defined in the inherited concrete
0106    * classes. This method will be used by the KinematicsReconstructor.
0107    * @param last The particle to update
0108    * @param mass The mass to be used, if less than zero on-shell
0109    */
0110   virtual void reconstructLast(const tShowerParticlePtr last, Energy mass=-1.*GeV) const;
0111   //@}
0112 
0113 private:
0114 
0115   /**
0116    * The assignment operator is private and must never be called.
0117    * In fact, it should not even be implemented.
0118    */
0119   FS_QTildeShowerKinematics1to2 & operator=(const FS_QTildeShowerKinematics1to2 &) = delete;
0120 
0121 };
0122 
0123 }
0124 
0125 #endif /* HERWIG_FS_QTildeShowerKinematics1to2_H */