herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
HardTree.h
1 // -*- C++ -*-
2 #ifndef HERWIG_HardTree_H
3 #define HERWIG_HardTree_H
4 //
5 // This is the declaration of the HardTree class.
6 //
7 
8 #include "ThePEG/Config/ThePEG.h"
9 #include "Herwig/Shower/QTilde/Base/ShowerProgenitor.h"
10 #include "Herwig/Shower/QTilde/Base/ShowerTree.h"
11 #include "Herwig/Shower/QTilde/SplittingFunctions/SudakovFormFactor.h"
12 #include "Herwig/Shower/RealEmissionProcess.fh"
13 #include "HardBranching.h"
14 #include "HardTree.fh"
15 
16 namespace Herwig {
17 
18 using namespace ThePEG;
23 class HardTree : public Base {
24 
28  friend ostream & operator << (ostream &, const HardTree & );
29 
30 public:
31 
35  HardTree(vector<HardBranchingPtr>, vector<HardBranchingPtr>, ShowerInteraction);
36 
40  HardTree(RealEmissionProcessPtr real);
41 
45  bool connect(ShowerParticlePtr particle, HardBranchingPtr branching) {
46  if(branchings_.find(branching)==branchings_.end()) return false;
47  particles_[particle]=branching;
48  return true;
49  }
50 
54  bool connect(ShowerTreePtr);
55 
59  map<ShowerParticlePtr,tHardBranchingPtr> & particles()
60  {return particles_;}
61 
65  set<HardBranchingPtr> & branchings() {return branchings_;}
66 
70  set<HardBranchingPtr> & incoming() {return spacelike_;}
71 
75  ShowerInteraction interaction() {return interaction_;}
76 
80  LorentzRotation showerRot() { return showerRot_; }
81 
85  void showerRot( LorentzRotation r ) { showerRot_ = r; }
86 
90  bool partnersSet() const {return partnersSet_;}
91 
95  void partnersSet(bool in) {partnersSet_=in;}
96 
97 private:
98 
103 
107  ShowerTreePtr _tree;
108 
112  map<ShowerParticlePtr,tHardBranchingPtr> particles_;
113 
117  set<HardBranchingPtr> branchings_;
118 
122  set<HardBranchingPtr> spacelike_;
123 
128 
133 
134 };
135 
139  ostream & operator << (ostream &, const HardTree & );
140 
141 }
142 
143 #endif /* HERWIG_HardTree_H */
void showerRot(LorentzRotation r)
Set the Rotation to be applied to the tree.
Definition: HardTree.h:85
void partnersSet(bool in)
Whether or not the evolution partners are set.
Definition: HardTree.h:95
ShowerInteraction
Handy header file to be included in all Shower classes.
LorentzRotation showerRot_
Rotation to shower frame.
Definition: HardTree.h:127
bool partnersSet() const
Whether or not the evolution partners are set.
Definition: HardTree.h:90
ShowerTreePtr _tree
The ShowerTree.
Definition: HardTree.h:107
set< HardBranchingPtr > & incoming()
Access the incoming branchings.
Definition: HardTree.h:70
bool connect(ShowerParticlePtr particle, HardBranchingPtr branching)
Match particles in the ShowerTree to branchings in the HardTree.
Definition: HardTree.h:45
ostream & operator<<(ostream &, const DecayIntegrator &)
Output information on the DecayIntegrator for debugging purposes.
LorentzRotation showerRot()
Get the Rotation to be applied to the tree.
Definition: HardTree.h:80
map< ShowerParticlePtr, tHardBranchingPtr > particles_
Map from the particles in the ShowerTree to the HardBranchings.
Definition: HardTree.h:112
bool partnersSet_
Whether or not partners are set.
Definition: HardTree.h:132
The HardTree class is designed to contain the information required to implement the POWHEG approach f...
Definition: HardTree.h:23
set< HardBranchingPtr > spacelike_
The HardBranchings which initiate the space-like showers.
Definition: HardTree.h:122
set< HardBranchingPtr > branchings_
The HardBranchings in the hard process.
Definition: HardTree.h:117
-*- C++ -*-
set< HardBranchingPtr > & branchings()
Access the set of branchings.
Definition: HardTree.h:65
map< ShowerParticlePtr, tHardBranchingPtr > & particles()
Access the map between the ShowerParticle and the HardBranching.
Definition: HardTree.h:59
ShowerInteraction interaction()
Type of interaction.
Definition: HardTree.h:75
ShowerInteraction interaction_
Type of interaction.
Definition: HardTree.h:102