herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
ScalarMassGenerator.h
1 // -*- C++ -*-
2 //
3 // ScalarMassGenerator.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef HERWIG_ScalarMassGenerator_H
10 #define HERWIG_ScalarMassGenerator_H
11 // This is the declaration of the ScalarMassGenerator class.
12 
13 #include "GenericMassGenerator.h"
14 #include "ScalarMassGenerator.fh"
15 #include "ThePEG/Config/Complex.h"
16 
17 namespace Herwig {
18 using namespace ThePEG;
19 
43 
44 public:
45 
52  void persistentOutput(PersistentOStream & os) const;
53 
59  void persistentInput(PersistentIStream & is, int version);
61 
65  static void Init();
66 
67 public:
68 
75  virtual double weight(Energy mass,int shape) const;
76 
80  virtual void dataBaseOutput(ofstream &,bool);
81 
82 protected:
83 
87  virtual InvEnergy2 BreitWignerWeight(Energy q, int shape) const;
88 
89 protected:
90 
97  virtual IBPtr clone() const {return new_ptr(*this);}
98 
103  virtual IBPtr fullclone() const {return new_ptr(*this);}
105 
106 protected:
107 
115  virtual void doinit();
117 
118 private:
119 
123  ScalarMassGenerator & operator=(const ScalarMassGenerator &) = delete;
124 
125 private:
126 
130  vector<Energy> _coupling;
131 
135  vector<Energy> _mass1;
136 
140  vector<Energy> _mass2;
141 
149  vector<Energy2> _m2plus;
150 
154  vector<Energy2> _m2minus;
156 
157 };
158 
159 }
160 
161 
162 #endif /* HERWIG_ScalarMassGenerator_H */
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
The ScalarMassGenerator class is designed for the generation of the masses of the and mesons which ...
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< Energy2 > _m2minus
Minimum mass squared.
virtual IBPtr clone() const
Make a simple clone of this object.
vector< Energy > _mass1
The first outgoing mass for the channels.
vector< Energy > _coupling
couplings for the decay channels
vector< Energy > _mass2
The second outgoing mass for the channels.
-*- C++ -*-
vector< Energy2 > _m2plus
calculated values to speed things up
The GenericMassGenerator class is a simple class for the generation of particle masses in Herwig...