Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // SU2Helper.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_SU2Helper_H
0010 #define HERWIG_SU2Helper_H
0011 
0012 #include "ThePEG/PDT/ParticleData.h"
0013 
0014 namespace Herwig {
0015 
0016 using namespace ThePEG;
0017 
0018 /**
0019  * \ingroup Matchbox
0020  * \author Ken Arnold, Simon Platzer
0021  *
0022  * \brief Helpers for book keeping in electroweak processes.
0023  *
0024  * @see \ref MatchboxMEBaseInterfaces "The interfaces"
0025  * defined for MatchboxMEBase.
0026  */
0027 struct SU2Helper {
0028 
0029   /**
0030    * Return true, if the left-(right-)handed projection of 
0031    * this particle (antiparticle) belongs to a weak 
0032    * SU(2) doublet.
0033    */
0034   static bool isInSU2Doublet(tcPDPtr p) {
0035     return abs(p->id()) < 9 || (abs(p->id()) >= 11 && abs(p->id()) < 19);
0036   }
0037 
0038   /**
0039    * Return true, if the left-(right-)handed projection of 
0040    * this particle (antiparticle) is the up component of a weak 
0041    * SU(2) doublet.
0042    */
0043   static bool isSU2Up(tcPDPtr p) { return abs(p->id())%2==0 && isInSU2Doublet(p); }
0044 
0045   /**
0046    * Return true, if the left-(right-)handed projection of 
0047    * this particle (antiparticle) is the down component of a weak 
0048    * SU(2) doublet.
0049    */
0050   static bool isSU2Down(tcPDPtr p) { return abs(p->id())%2!=0 && isInSU2Doublet(p); }
0051 
0052   /**
0053    * Return the conjugate component in the same weak SU(2) 
0054    * doublet, or a null pointer if the left-(right-)handed
0055    * projection of this particle (antiparticle) does not belong 
0056    * to a weak SU(2) doublet.
0057    */
0058   static tcPDPtr SU2CC(tcPDPtr p, int familyShift = 0);
0059 
0060   /**
0061    * Return the family
0062    */
0063   static int family(tcPDPtr p);
0064 
0065 };
0066 
0067 
0068 }
0069 
0070 #endif // HERWIG_SU2Helper_H