herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
RealEmissionProcess.h
1// -*- C++ -*-
2//
3// RealEmissionProcess.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_RealEmissionProcess_H
10#define HERWIG_RealEmissionProcess_H
11
13#include "ThePEG/EventRecord/Particle.h"
14#include "ThePEG/EventRecord/SubProcess.h"
15#include "ThePEG/Handlers/XComb.h"
17#include "RealEmissionProcess.fh"
18#include "Herwig/Shower/ShowerInteraction.h"
19
20namespace Herwig {
21using namespace ThePEG;
22
26class RealEmissionProcess : public Base {
27
28 friend ostream & operator<<(ostream & os, const RealEmissionProcess & proc);
29
30public:
31
36 return incoming_;
37 }
38
43 return outgoing_;
44 }
45
46public:
47
52 return bornIncoming_;
53 }
54
59 return bornOutgoing_;
60 }
61
66 return hadrons_;
67 }
68
69public:
70
74 unsigned int emitter () const {return emitter_;}
75
79 unsigned int spectator() const {return spectator_;}
80
84 unsigned int emitted () const {return emitted_;}
85
89 void emitter (unsigned int in) {emitter_=in;}
90
94 void spectator(unsigned int in) {spectator_=in;}
95
99 void emitted (unsigned int in) {emitted_=in;}
100
101public:
102
107
112
113public:
114
118 pair<double,double> x() const {return x_;}
119
123 void x(pair<double,double> in) {x_=in;}
124
125public:
126
131
136
140 map<ShowerInteraction,Energy> & pT() {return pT_;}
141
142private:
143
147 unsigned int emitter_;
148
152 unsigned int spectator_;
156 unsigned int emitted_;
157
158private:
159
164
165 /*
166 * The outgoing particles
167 */
168 ParticleVector outgoing_;
169
170private:
171
176
177private:
178
183
188
189private:
190
195
199 pair<double,double> x_;
200
201private:
202
207
211 map<ShowerInteraction,Energy> pT_;
212};
213
217inline ostream & operator<<(ostream & os, const RealEmissionProcess & proc) {
218 os << "REAL EMISSION "
219 << proc.emitter_ << " "
220 << proc.spectator_ << " "
221 << proc.emitted_ << "\n";
222 os << "BORN\n";
223 for(unsigned int ix=0;ix<proc.bornIncoming_.size();++ix)
224 os << proc.bornIncoming_[ix]->colourLine() << " "
225 << proc.bornIncoming_[ix]->antiColourLine() << " "
226 << *proc.bornIncoming_[ix] << "\n";
227 for(unsigned int ix=0;ix<proc.bornOutgoing_.size();++ix)
228 os << proc.bornOutgoing_[ix]->colourLine() << " "
229 << proc.bornOutgoing_[ix]->antiColourLine() << " "
230 << *proc.bornOutgoing_[ix] << "\n";
231 os << "REAL\n";
232 for(unsigned int ix=0;ix<proc.incoming_.size();++ix)
233 os << proc.incoming_[ix]->colourLine() << " "
234 << proc.incoming_[ix]->antiColourLine() << " "
235 << *proc.incoming_[ix] << "\n";
236 for(unsigned int ix=0;ix<proc.outgoing_.size();++ix)
237 os << proc.outgoing_[ix]->colourLine() << " "
238 << proc.outgoing_[ix]->antiColourLine() << " "
239 << *proc.outgoing_[ix] << "\n";
240 return os;
241}
242
243}
244
245#endif
Simple struct for hard processes and decays.
ShowerInteraction interaction_
Type of interaction.
void x(pair< double, double > in)
Set the x values.
void spectator(unsigned int in)
The spectator.
void transformation(LorentzRotation in)
Lorentz Rotation to final-state for II dipoles.
ParticleVector & incoming()
The incoming particles.
pair< double, double > x() const
Get the x values.
void emitter(unsigned int in)
The emitter.
ParticleVector hadrons_
The hadrons.
unsigned int emitter() const
The emitter.
map< ShowerInteraction, Energy > & pT()
Emission scales.
LorentzRotation transformation() const
Lorentz Rotation to final-state for II dipoles.
ParticleVector & outgoing()
The outgoing particles.
ParticleVector incoming_
The incoming particles.
ParticleVector & bornOutgoing()
The outgoing particles.
friend ostream & operator<<(ostream &os, const RealEmissionProcess &proc)
Output to a stream.
void emitted(unsigned int in)
The emitted.
ParticleVector & hadrons()
The hadrons.
unsigned int spectator_
The spectator.
void interaction(ShowerInteraction in)
Type of interaction.
ParticleVector bornOutgoing_
Outgoing for the Born process.
unsigned int emitted() const
The emitted.
pair< double, double > x_
x values
LorentzRotation trans_
Lorentz transformation for spectators in II.
ParticleVector bornIncoming_
Incoming for the Born process.
map< ShowerInteraction, Energy > pT_
Emission scales.
unsigned int spectator() const
The spectator.
ShowerInteraction interaction()
Type of interaction.
unsigned int emitter_
The emitter.
unsigned int emitted_
The emitter.
ParticleVector & bornIncoming()
The incoming particles.
ShowerInteraction
Handy header file to be included in all Shower classes.
-*- C++ -*-
vector< PPtr > ParticleVector
ostream & operator<<(ostream &, const Collision &)