herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
SemiLeptonicBaryonDecayer.h
1 // -*- C++ -*-
2 #ifndef HERWIG_SemiLeptonicBaryonDecayer_H
3 #define HERWIG_SemiLeptonicBaryonDecayer_H
4 //
5 // This is the declaration of the SemiLeptonicBaryonDecayer class.
6 //
7 #include "Herwig/Decay/DecayIntegrator.h"
8 #include "Herwig/Decay/WeakCurrents/LeptonNeutrinoCurrent.h"
9 #include "Herwig/Decay/FormFactors/BaryonFormFactor.h"
10 #include "Herwig/Decay/DecayPhaseSpaceMode.h"
11 #include "ThePEG/Helicity/LorentzRSSpinorBar.h"
12 
13 namespace Herwig {
14 using namespace ThePEG;
15 
31 
32 public:
33 
38 
44  virtual bool accept(tcPDPtr parent, const tPDVector & children) const;
45 
52  virtual int modeNumber(bool & cc, tcPDPtr parent,
53  const tPDVector & children) const;
54 
60  virtual void dataBaseOutput(ofstream & os,bool header) const;
61 
70  double me2(const int ichan,const Particle & part,
71  const ParticleVector & decay,MEOption meopt) const;
72 
73 public:
74 
81  void persistentOutput(PersistentOStream & os) const;
82 
88  void persistentInput(PersistentIStream & is, int version);
90 
94  static void Init();
95 
96 protected:
97 
104  virtual IBPtr clone() const {return new_ptr(*this);}
105 
110  virtual IBPtr fullclone() const {return new_ptr(*this);}
112 
113 protected:
114 
122  virtual void doinit();
123 
127  virtual void doinitrun();
129 
130 protected:
131 
140  double halfHalf(const int ichan,const Particle & inpart,
141  const ParticleVector & decay,MEOption meopt) const;
142 
151  double halfThreeHalf(const int ichan,const Particle & inpart,
152  const ParticleVector & decay,MEOption meopt) const;
153 
154 private:
155 
159  SemiLeptonicBaryonDecayer & operator=(const SemiLeptonicBaryonDecayer &) = delete;
160 
161 private:
162 
166  LeptonNeutrinoCurrentPtr _current;
167 
171  BaryonFormFactorPtr _form;
172 
176  vector<double> _maxwgt;
177 
181  vector<int> _modemap;
182 
186  mutable RhoDMatrix _rho;
187 
191  mutable vector<LorentzSpinor<SqrtEnergy> > _inHalf;
192 
196  mutable vector<LorentzSpinorBar<SqrtEnergy> > _inHalfBar;
197 
201  mutable vector<LorentzRSSpinor<SqrtEnergy> > _inThreeHalf;
202 
206  mutable vector<LorentzRSSpinorBar<SqrtEnergy> > _inThreeHalfBar;
207 
211  mutable vector<unsigned int> _constants;
212 
216  mutable vector<PDT::Spin> _ispin;
217 
221  mutable unsigned int _ibar;
222 };
223 
224 }
225 
226 
227 #endif /* HERWIG_SemiLeptonicBaryonDecayer_H */
vector< LorentzRSSpinorBar< SqrtEnergy > > _inThreeHalfBar
Spin- barred spinors.
vector< double > _maxwgt
the maximum weight
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< PDT::Spin > _ispin
Spins of the particles.
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
BaryonFormFactorPtr _form
form-factor
MEOption
Enum for the matrix element option.
vector< unsigned int > _constants
Constants for the mapping of the leptonic vector.
LeptonNeutrinoCurrentPtr _current
The current for the leptons.
vector< tPDPtr > tPDVector
unsigned int _ibar
Location of the outgoing baryon.
Main class for Decayers implementing multi-channel phase space integration.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
vector< int > _modemap
mapping of the mode to the form-factor
vector< LorentzRSSpinor< SqrtEnergy > > _inThreeHalf
Spin- spinors.
-*- C++ -*-
The SemiLeptonicBaryonDecayer class is designed for the semi-leptonic decay of the baryons...
vector< LorentzSpinorBar< SqrtEnergy > > _inHalfBar
Spin- barred spinors.
RhoDMatrix _rho
Spin density matrix.
vector< LorentzSpinor< SqrtEnergy > > _inHalf
Spin- spinors.
vector< PPtr > ParticleVector