herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
12 #include "ThePEG/Config/ThePEG.h"
13 #include "ThePEG/EventRecord/Particle.h"
14 #include "ThePEG/EventRecord/SubProcess.h"
15 #include "ThePEG/Handlers/XComb.h"
16 #include "ThePEG/Config/Pointers.h"
17 #include "RealEmissionProcess.fh"
18 #include "Herwig/Shower/ShowerInteraction.h"
19 
20 namespace Herwig {
21 using namespace ThePEG;
22 
26 class RealEmissionProcess : public Base {
27 
28  friend ostream & operator<<(ostream & os, const RealEmissionProcess & proc);
29 
30 public:
31 
36  return incoming_;
37  }
38 
43  return outgoing_;
44  }
45 
46 public:
47 
52  return bornIncoming_;
53  }
54 
59  return bornOutgoing_;
60  }
61 
66  return hadrons_;
67  }
68 
69 public:
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 
101 public:
102 
106  LorentzRotation transformation() const { return trans_;}
107 
111  void transformation(LorentzRotation in) {trans_=in;}
112 
113 public:
114 
118  pair<double,double> x() const {return x_;}
119 
123  void x(pair<double,double> in) {x_=in;}
124 
125 public:
126 
130  ShowerInteraction interaction() {return interaction_;}
131 
135  void interaction(ShowerInteraction in) {interaction_ = in;}
136 
140  map<ShowerInteraction,Energy> & pT() {return pT_;}
141 
142 private:
143 
147  unsigned int emitter_;
148 
152  unsigned int spectator_;
156  unsigned int emitted_;
157 
158 private:
159 
164 
165  /*
166  * The outgoing particles
167  */
168  ParticleVector outgoing_;
169 
170 private:
171 
176 
177 private:
178 
183 
188 
189 private:
190 
195 
199  pair<double,double> x_;
200 
201 private:
202 
207 
211  map<ShowerInteraction,Energy> pT_;
212 };
213 
217 inline 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
pair< double, double > x_
x values
void spectator(unsigned int in)
The spectator.
Simple struct for hard processes and decays.
ShowerInteraction interaction_
Type of interaction.
ParticleVector & bornOutgoing()
The outgoing particles.
ShowerInteraction
Handy header file to be included in all Shower classes.
ParticleVector & hadrons()
The hadrons.
unsigned int emitted_
The emitter.
ParticleVector & incoming()
The incoming particles.
void transformation(LorentzRotation in)
Lorentz Rotation to final-state for II dipoles.
ostream & operator<<(ostream &, const DecayIntegrator &)
Output information on the DecayIntegrator for debugging purposes.
ParticleVector bornOutgoing_
Outgoing for the Born process.
ParticleVector incoming_
The incoming particles.
unsigned int emitter() const
The emitter.
map< ShowerInteraction, Energy > pT_
Emission scales.
ParticleVector & bornIncoming()
The incoming particles.
LorentzRotation trans_
Lorentz transformation for spectators in II.
unsigned int emitter_
The emitter.
void emitted(unsigned int in)
The emitted.
unsigned int spectator_
The spectator.
ShowerInteraction interaction()
Type of interaction.
void interaction(ShowerInteraction in)
Type of interaction.
pair< double, double > x() const
Get the x values.
unsigned int spectator() const
The spectator.
LorentzRotation transformation() const
Lorentz Rotation to final-state for II dipoles.
ParticleVector bornIncoming_
Incoming for the Born process.
ParticleVector hadrons_
The hadrons.
ParticleVector & outgoing()
The outgoing particles.
-*- C++ -*-
map< ShowerInteraction, Energy > & pT()
Emission scales.
vector< PPtr > ParticleVector
void x(pair< double, double > in)
Set the x values.
void emitter(unsigned int in)
The emitter.
unsigned int emitted() const
The emitted.