herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
ShowerEventRecord.h
1 // -*- C++ -*-
2 #ifndef Herwig_ShowerEventRecord_H
3 #define Herwig_ShowerEventRecord_H
4 //
5 // This is the declaration of the ShowerEventRecord class.
6 //
7 
8 #include "ThePEG/Config/ThePEG.h"
9 #include "ThePEG/Handlers/StandardXComb.h"
10 #include "ThePEG/PDF/PDF.h"
11 #include "Herwig/MatrixElement/Matchbox/Matching/ShowerApproximation.h"
12 
13 namespace Herwig {
14 
15 using namespace ThePEG;
16 
20 class ShowerEventRecord: public Base {
21 
22 public:
23 
30 
34  virtual ~ShowerEventRecord();
36 
37 public:
38 
42  tSubProPtr subProcess() const { return subProcess_; }
43 
47  tStdXCombPtr xcombPtr() const { return XComb_; }
48 
52  void xcombPtr(tStdXCombPtr in) { XComb_ = in; }
53 
57  const StandardXComb& xcomb() const { return *XComb_; }
58 
59 public:
60 
65  PPair& incoming() { return incoming_; }
66 
71  const PPair& incoming() const { return incoming_; }
72 
77  PList& outgoing() { return outgoing_; }
78 
83  const PList& outgoing() const { return outgoing_; }
84 
89  PList& intermediates() { return intermediates_; }
90 
95  const PList& intermediates() const { return intermediates_; }
96 
100  const pair<double,double>& fractions() const { return fractions_; }
101 
105  pair<double,double>& fractions() { return fractions_; }
106 
110  const pair<PDF,PDF>& pdfs() const { return PDFs_; }
111 
112 public:
113 
119  bool isMCatNLOSEvent() const { return isMCatNLOSEvent_; }
120 
124  bool isMCatNLOHEvent() const { return isMCatNLOHEvent_; }
125 
129  bool isPowhegSEvent() const { return isPowhegSEvent_; }
130 
134  bool isPowhegHEvent() const { return isPowhegHEvent_; }
135 
139  void isMCatNLOSEvent(bool in) { isMCatNLOSEvent_ = in; }
140 
144  void isMCatNLOHEvent(bool in) { isMCatNLOHEvent_ = in; }
145 
149  Ptr<ShowerApproximation>::tptr showerApproximation() {
150  return showerApproximation_;
151  }
152 
156  bool truncatedShower() const { return truncatedShower_; }
157 
161  void truncatedShower(bool in) { truncatedShower_=in; }
163 
164 public:
165 
170  virtual void clear();
171 
172 protected:
173 
177  void subProcess(tSubProPtr in) { subProcess_ = in; }
178 
182  pair<PDF,PDF>& pdfs() { return PDFs_; }
183 
184 public:
185 
189  void identifyEventType();
190 
191 protected:
192 
196  map<ColinePtr,ColinePtr> & colourLines() {return colourLines_;}
197 
202  void colourIsolate(const vector<PPtr> & original, const vector<PPtr> & copy);
203 
208  void updateColour(PPtr particle, bool recursive);
209 
213  void mapColour(PPtr original, PPtr copy);
214 
215 private:
216 
220  void isolateLine(vector<PPair>::const_iterator cit,
221  vector<PPair> & particles,
222  tcColinePtr oldline,
223  tColinePtr newline);
224 
225 private:
226 
231  ShowerEventRecord & operator=(const ShowerEventRecord &) = delete;
232 
233 
234 private:
235 
240 
244  StdXCombPtr XComb_;
245 
251 
256 
262 
266  pair<PDF,PDF> PDFs_;
267 
271  pair<double,double> fractions_;
272 
273 private:
274 
283 
288 
293 
298 
302  Ptr<ShowerApproximation>::tptr showerApproximation_;
303 
307  map<ColinePtr,ColinePtr> colourLines_;
308 
314 
315 };
316 
317 }
318 
319 #endif /* Herwig_ShowerEventRecord_H */
ThePEG::Ptr< Particle >::pointer PPtr
void isMCatNLOSEvent(bool in)
True, if Matchbox MC S-event.
ThePEG::Ptr< SubProcess >::pointer SubProPtr
ThePEG::Ptr< ColourLine >::transient_const_pointer tcColinePtr
pair< PDF, PDF > & pdfs()
Return the PDFs.
bool isMCatNLOHEvent_
True, if matchbox MC H-event.
bool isPowhegSEvent() const
True, if Matchbox MC S-event.
Ptr< ShowerApproximation >::tptr showerApproximation_
The shower approximation to provide the hard scale profile.
bool isMCatNLOHEvent() const
True, if matchbox MC H-event.
tSubProPtr subProcess() const
Return the subprocess currently showered.
const pair< PDF, PDF > & pdfs() const
Return the PDFs.
void xcombPtr(tStdXCombPtr in)
Set the XComb describing the hard process.
bool truncatedShower_
Whether or ont needs truncated shower.
PList & intermediates()
Return the intermediate particles at the current stage of the evolution.
const StandardXComb & xcomb() const
Return the XComb describing the hard process.
void isMCatNLOHEvent(bool in)
True, if matchbox MC H-event.
pair< double, double > fractions_
Momentum fractions of the incoming partons.
const pair< double, double > & fractions() const
Return the momentum fractions.
Ptr< ShowerApproximation >::tptr showerApproximation()
Access to the shower approximation.
PPair incoming_
The incoming partons at the current stage of the evolution.
void subProcess(tSubProPtr in)
Set the subprocess.
bool isMCatNLOSEvent_
Type of event.
const PList & intermediates() const
Return the intermediate particles at the current stage of the evolution.
map< ColinePtr, ColinePtr > colourLines_
Map of colour lines used to reset colours when inserted into the event.
pair< double, double > & fractions()
Return the momentum fractions.
const PPair & incoming() const
Return the incoming partons at the current stage of the evolution.
ThePEG::Ptr< ColourLine >::transient_pointer tColinePtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
pair< PPtr, PPtr > PPair
PPair & incoming()
Return the incoming partons at the current stage of the evolution.
SubProPtr subProcess_
The subprocess currently showered.
Here is the documentation of the ShowerEventRecord class.
bool isPowhegSEvent_
True, if Matchbox Powheg S-event.
const PList & outgoing() const
Return the outgoing partons at the current stage of the evolution.
tStdXCombPtr xcombPtr() const
Return the XComb describing the hard process.
-*- C++ -*-
void truncatedShower(bool in)
True if truncated shower required.
bool truncatedShower() const
True if truncated shower required.
bool isMCatNLOSEvent() const
True, if Matchbox MC S-event.
bool isPowhegHEvent_
True, if matchbox Powheg H-event.
StdXCombPtr XComb_
Pointer to the XComb which generated the hard process.
map< ColinePtr, ColinePtr > & colourLines()
Map of colour lines used to reset colours when inserted into the event.
pair< PDF, PDF > PDFs_
The PDFs to be considered.
PList outgoing_
The outgoing partons at the current stage of the evolution.
PList intermediates_
The intermediate particles at the current stage of the evolution.
PList & outgoing()
Return the outgoing partons at the current stage of the evolution.
list< PPtr > PList
bool isPowhegHEvent() const
True, if matchbox MC H-event.