herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
17namespace Herwig {
18using namespace ThePEG;
19
43
44public:
45
53
59 void persistentInput(PersistentIStream & is, int version);
61
65 static void Init();
66
67public:
68
75 virtual double weight(Energy mass,int shape) const;
76
80 virtual void dataBaseOutput(ofstream &,bool);
81
82protected:
83
87 virtual InvEnergy2 BreitWignerWeight(Energy q, int shape) const;
88
89protected:
90
97 virtual IBPtr clone() const {return new_ptr(*this);}
98
103 virtual IBPtr fullclone() const {return new_ptr(*this);}
105
106protected:
107
115 virtual void doinit();
117
118private:
119
124
125private:
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 */
The GenericMassGenerator class is a simple class for the generation of particle masses in Herwig.
Energy mass(const ParticleData &part) const
Generate a mass using the default limits.
The ScalarMassGenerator class is designed for the generation of the masses of the and mesons which ...
vector< Energy > _mass1
The first outgoing mass for the channels.
virtual InvEnergy2 BreitWignerWeight(Energy q, int shape) const
Return the full weight.
virtual double weight(Energy mass, int shape) const
Weight for the factor for an off-shell mass.
ScalarMassGenerator & operator=(const ScalarMassGenerator &)=delete
Private and non-existent assignment operator.
vector< Energy > _mass2
The second outgoing mass for the channels.
virtual IBPtr clone() const
Make a simple clone of this object.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
vector< Energy2 > _m2minus
Minimum mass squared.
virtual void dataBaseOutput(ofstream &, bool)
output for the database
static void Init()
Standard Init function used to initialize the interfaces.
virtual void doinit()
Initialize this object after the setup phase before saving and EventGenerator to disk.
vector< Energy2 > _m2plus
calculated values to speed things up
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< Energy > _coupling
couplings for the decay channels
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr