Back to home page

EIC code displayed by LXR

 
 

    


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

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