File indexing completed on 2026-08-06 09:24:25
0001
0002 #ifndef HERWIG_HardTree_H
0003 #define HERWIG_HardTree_H
0004
0005
0006
0007
0008 #include "ThePEG/Config/ThePEG.h"
0009 #include "Herwig/Shower/QTilde/Base/ShowerProgenitor.h"
0010 #include "Herwig/Shower/QTilde/Base/ShowerTree.h"
0011 #include "Herwig/Shower/QTilde/SplittingFunctions/SudakovFormFactor.h"
0012 #include "Herwig/Shower/RealEmissionProcess.fh"
0013 #include "HardBranching.h"
0014 #include "HardTree.fh"
0015
0016 namespace Herwig {
0017
0018 using namespace ThePEG;
0019
0020
0021
0022
0023 class HardTree : public Base {
0024
0025
0026
0027
0028 friend ostream & operator << (ostream &, const HardTree & );
0029
0030 public:
0031
0032
0033
0034
0035 HardTree(vector<HardBranchingPtr>, vector<HardBranchingPtr>, ShowerInteraction);
0036
0037
0038
0039
0040 HardTree(RealEmissionProcessPtr real);
0041
0042
0043
0044
0045 bool connect(ShowerParticlePtr particle, HardBranchingPtr branching) {
0046 if(branchings_.find(branching)==branchings_.end()) return false;
0047 particles_[particle]=branching;
0048 return true;
0049 }
0050
0051
0052
0053
0054 bool connect(ShowerTreePtr);
0055
0056
0057
0058
0059 map<ShowerParticlePtr,tHardBranchingPtr> & particles()
0060 {return particles_;}
0061
0062
0063
0064
0065 set<HardBranchingPtr> & branchings() {return branchings_;}
0066
0067
0068
0069
0070 set<HardBranchingPtr> & incoming() {return spacelike_;}
0071
0072
0073
0074
0075 ShowerInteraction interaction() {return interaction_;}
0076
0077
0078
0079
0080 LorentzRotation showerRot() { return showerRot_; }
0081
0082
0083
0084
0085 void showerRot( LorentzRotation r ) { showerRot_ = r; }
0086
0087
0088
0089
0090 bool partnersSet() const {return partnersSet_;}
0091
0092
0093
0094
0095 void partnersSet(bool in) {partnersSet_=in;}
0096
0097 private:
0098
0099
0100
0101
0102 ShowerInteraction interaction_;
0103
0104
0105
0106
0107 ShowerTreePtr _tree;
0108
0109
0110
0111
0112 map<ShowerParticlePtr,tHardBranchingPtr> particles_;
0113
0114
0115
0116
0117 set<HardBranchingPtr> branchings_;
0118
0119
0120
0121
0122 set<HardBranchingPtr> spacelike_;
0123
0124
0125
0126
0127 LorentzRotation showerRot_;
0128
0129
0130
0131
0132 bool partnersSet_;
0133
0134 };
0135
0136
0137
0138
0139 ostream & operator << (ostream &, const HardTree & );
0140
0141 }
0142
0143 #endif