herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
BaryonFactorizedDecayer.h
1 // -*- C++ -*-
2 #ifndef HERWIG_BaryonFactorizedDecayer_H
3 #define HERWIG_BaryonFactorizedDecayer_H
4 //
5 // This is the declaration of the BaryonFactorizedDecayer class.
6 //
7 
8 #include "Herwig/Decay/DecayIntegrator.h"
9 #include "Herwig/Decay/WeakCurrents/WeakDecayCurrent.h"
10 #include "Herwig/Decay/FormFactors/BaryonFormFactor.h"
11 #include "ThePEG/StandardModel/StandardModelBase.h"
12 #include "ThePEG/Helicity/LorentzPolarizationVector.h"
13 #include "Herwig/Decay/DecayPhaseSpaceMode.h"
14 #include "Herwig/Models/StandardModel/StandardCKM.h"
15 #include "ThePEG/Helicity/LorentzRSSpinorBar.h"
16 
17 namespace Herwig {
18 using namespace ThePEG;
19 
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 
65  virtual double me2(const int ichan, const Particle & part,
66  const ParticleVector & decay, MEOption meopt) const;
67 
73  virtual void dataBaseOutput(ofstream & os,bool header) const;
74 
75 protected:
76 
85  double halfHalf(const int ichan,const Particle & inpart,
86  const ParticleVector & decay,MEOption meopt) const;
87 
96  double halfThreeHalf(const int ichan,const Particle & inpart,
97  const ParticleVector & decay,MEOption meopt) const;
98 
99 public:
100 
107  void persistentOutput(PersistentOStream & os) const;
108 
114  void persistentInput(PersistentIStream & is, int version);
116 
123  static void Init();
124 
125 protected:
126 
133  virtual IBPtr clone() const {return new_ptr(*this);}
134 
139  virtual IBPtr fullclone() const {return new_ptr(*this);}
141 
142 protected:
143 
146 
152  virtual void doinit();
153 
158  virtual void doinitrun();
160 
161 private:
162 
170  void findModes(unsigned int imode,vector<tPDVector> & particles,
171  vector<unsigned int> & loc,vector<bool> & cc);
172 
173 private:
174 
179  BaryonFactorizedDecayer & operator=(const BaryonFactorizedDecayer &) = delete;
180 
181 private:
182 
186  WeakDecayCurrentPtr _current;
187 
191  BaryonFormFactorPtr _form;
192 
200  double _a1b;
201 
205  double _a2b;
206 
210  double _a1c;
211 
215  double _a2c;
217 
221  vector<vector<unsigned int> > _currentmap;
222 
226  vector<vector<unsigned int> > _formmap;
227 
231  vector<vector <Complex> > _factCKM;
232 
236  vector<int> _wgtloc;
237 
241  vector<double> _wgtmax;
242 
246  vector<double> _weights;
247 
251  Ptr<StandardCKM>::pointer _theCKM;
252 
256  mutable RhoDMatrix _rho;
257 
261  mutable vector<LorentzSpinor<SqrtEnergy> > _inHalf;
262 
266  mutable vector<LorentzSpinorBar<SqrtEnergy> > _inHalfBar;
267 
271  mutable vector<LorentzRSSpinor<SqrtEnergy> > _inThreeHalf;
272 
276  mutable vector<LorentzRSSpinorBar<SqrtEnergy> > _inThreeHalfBar;
277 };
278 
279 }
280 
281 #endif /* HERWIG_BaryonFactorizedDecayer_H */
The BaryonFactorizedDecayer class is designed to combine the form factor for a weak baryon transition...
virtual IBPtr clone() const
Make a simple clone of this object.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< LorentzRSSpinorBar< SqrtEnergy > > _inThreeHalfBar
Spin- barred spinors.
vector< int > _wgtloc
location of the weights
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Ptr< StandardCKM >::pointer _theCKM
Pointer to the CKM object.
vector< vector< unsigned int > > _formmap
Mapping of the modes to the form factors.
vector< double > _weights
weights for the different channels
WeakDecayCurrentPtr _current
The weak decay current.
vector< vector< unsigned int > > _currentmap
Mapping of the modes to the currents.
MEOption
Enum for the matrix element option.
double _a2b
The perturbative coefficient for b decays.
vector< double > _wgtmax
the maximum weights
vector< tPDPtr > tPDVector
Main class for Decayers implementing multi-channel phase space integration.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
double _a2c
The perturbative coefficient for c decays.
double _a1c
The perturbative coefficient for c decays.
RhoDMatrix _rho
Spin density matrix.
vector< LorentzSpinor< SqrtEnergy > > _inHalf
Spin- spinors.
-*- C++ -*-
vector< LorentzRSSpinor< SqrtEnergy > > _inThreeHalf
Spin- spinors.
BaryonFormFactorPtr _form
The baryon form factor.
vector< PPtr > ParticleVector
vector< LorentzSpinorBar< SqrtEnergy > > _inHalfBar
Spin- barred spinors.
vector< vector< Complex > > _factCKM
The CKM factors.
double _a1b
The perturbative coefficients.