File indexing completed on 2026-08-06 09:24:26
0001
0002 #ifndef HERWIG_ProtoBranching_H
0003 #define HERWIG_ProtoBranching_H
0004
0005
0006
0007
0008 namespace Herwig {
0009
0010 using namespace ThePEG;
0011
0012
0013
0014
0015 class ProtoBranching;
0016 ThePEG_DECLARE_POINTERS(Herwig::ProtoBranching,ProtoBranchingPtr);
0017
0018
0019
0020
0021 class ProtoBranching : public Base {
0022
0023 public:
0024
0025
0026
0027
0028 ProtoBranching() {}
0029
0030
0031
0032
0033 ProtoBranching(tcPDPtr part, HardBranching::Status status,
0034 const Lorentz5Momentum & momentum,
0035 tSudakovPtr sudakov)
0036 : part_(part), status_(status), momentum_(momentum),
0037 sudakov_(sudakov), type_(ShowerPartnerType::Undefined)
0038 {}
0039
0040
0041
0042
0043 long id() { return part_->id();}
0044
0045
0046
0047
0048 tcPDPtr particle() {return part_;}
0049
0050
0051
0052
0053 HardBranching::Status status() {return status_;}
0054
0055
0056
0057
0058 tProtoBranchingPtr parent() {return parent_;}
0059
0060
0061
0062
0063 void parent(tProtoBranchingPtr in) {parent_=in;}
0064
0065
0066
0067
0068 vector<tProtoBranchingPtr> children() {return children_;}
0069
0070
0071
0072
0073 void addChild(tProtoBranchingPtr in ) {children_.push_back(in);}
0074
0075
0076
0077
0078 vector<tProtoBranchingPtr> backChildren() {return backChildren_;}
0079
0080
0081
0082
0083 void addBackChild(tProtoBranchingPtr in ) {backChildren_.push_back(in);}
0084
0085
0086
0087
0088 const Lorentz5Momentum & momentum() {return momentum_;}
0089
0090
0091
0092
0093 tSudakovPtr sudakov() {return sudakov_;}
0094
0095
0096
0097
0098 void sudakov(tSudakovPtr in) { sudakov_=in; }
0099
0100
0101
0102
0103 ShowerPartnerType type() const {
0104 return type_;
0105 }
0106
0107
0108
0109
0110 void type(ShowerPartnerType in) {
0111 type_ = in;
0112 assert(type_!=ShowerPartnerType::Undefined);
0113 }
0114
0115
0116
0117
0118 tColinePtr colourLine() const {
0119 return colourLine_;
0120 }
0121
0122
0123
0124 tColinePtr antiColourLine() const {
0125 return antiColourLine_;
0126 }
0127
0128
0129
0130
0131 void colourLine(tColinePtr in) {
0132 colourLine_ = in;
0133 }
0134
0135
0136
0137 void antiColourLine(tColinePtr in) {
0138 antiColourLine_ = in;
0139 }
0140
0141 private:
0142
0143
0144
0145
0146 tcPDPtr part_;
0147
0148
0149
0150
0151 HardBranching::Status status_;
0152
0153
0154
0155
0156 Lorentz5Momentum momentum_;
0157
0158
0159
0160
0161 tSudakovPtr sudakov_;
0162
0163
0164
0165
0166 vector<tProtoBranchingPtr> children_;
0167
0168
0169
0170
0171 vector<tProtoBranchingPtr> backChildren_;
0172
0173
0174
0175
0176 tProtoBranchingPtr parent_;
0177
0178
0179
0180
0181 ShowerPartnerType type_;
0182
0183
0184
0185
0186
0187
0188
0189
0190 tColinePtr colourLine_;
0191
0192
0193
0194
0195 tColinePtr antiColourLine_;
0196
0197
0198 };
0199
0200 }
0201
0202 #endif