File indexing completed on 2026-08-06 09:38:22
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef ThePEG_StdXCombGroup_H
0011 #define ThePEG_StdXCombGroup_H
0012
0013
0014 #include "StandardXComb.h"
0015 #include "StdXCombGroup.fh"
0016 #include "ThePEG/MatrixElement/MEGroup.fh"
0017
0018 namespace ThePEG {
0019
0020
0021
0022
0023
0024
0025
0026 class StdXCombGroup: public StandardXComb {
0027
0028
0029 friend class MEBase;
0030
0031 public:
0032
0033
0034
0035
0036
0037
0038 StdXCombGroup(Energy newMaxEnergy, const cPDPair & inc,
0039 tEHPtr newEventHandler,tSubHdlPtr newSubProcessHandler,
0040 tPExtrPtr newExtractor, tCascHdlPtr newCKKW,
0041 const PBPair & newPartonBins, tCutsPtr newCuts, tMEGroupPtr newME,
0042 const DiagramVector & newDiagrams, bool mir,
0043 tStdXCombPtr newHead = tStdXCombPtr());
0044
0045
0046
0047
0048 StdXCombGroup();
0049
0050
0051
0052
0053 virtual ~StdXCombGroup();
0054
0055 public:
0056
0057
0058
0059
0060 virtual void clean();
0061
0062
0063
0064
0065
0066 virtual int nDim() const;
0067
0068
0069
0070
0071
0072
0073 virtual CrossSection dSigDR(const pair<double,double> ll, int nr, const double * r);
0074
0075
0076
0077
0078 CrossSection lastHeadCrossSection() const { return theLastHeadCrossSection; }
0079
0080
0081
0082
0083 const vector<StdXCombPtr>& dependent() const { return theDependent; }
0084
0085
0086
0087
0088
0089 tcMEGroupPtr meGroup() const { return theMEGroup; }
0090
0091
0092
0093
0094 void build(const PartonPairVec& allPBins);
0095
0096
0097
0098
0099 virtual tSubProPtr construct();
0100
0101
0102
0103
0104
0105 virtual void newSubProcess(bool);
0106
0107
0108
0109
0110 void lastHeadCrossSection(CrossSection xs) { theLastHeadCrossSection = xs; }
0111
0112 public:
0113
0114
0115
0116
0117
0118
0119
0120 void persistentOutput(PersistentOStream & os) const;
0121
0122
0123
0124
0125
0126
0127 void persistentInput(PersistentIStream & is, int version);
0128
0129
0130
0131
0132
0133 static void Init();
0134
0135 private:
0136
0137
0138
0139
0140 MEGroupPtr theMEGroup;
0141
0142
0143
0144
0145 vector<StdXCombPtr> theDependent;
0146
0147
0148
0149
0150 CrossSection theLastHeadCrossSection;
0151
0152 private:
0153
0154
0155
0156
0157 static ClassDescription<StdXCombGroup> initStdXCombGroup;
0158
0159
0160
0161
0162 StdXCombGroup & operator=(const StdXCombGroup &) = delete;
0163
0164 };
0165
0166
0167
0168
0169
0170
0171
0172 template <>
0173 struct BaseClassTrait<StdXCombGroup,1> {
0174
0175 typedef StandardXComb NthBase;
0176 };
0177
0178
0179
0180
0181
0182 template <>
0183 struct ClassTraits<StdXCombGroup>:
0184 public ClassTraitsBase<StdXCombGroup> {
0185
0186 static string className() { return "ThePEG::StdXCombGroup"; }
0187 };
0188
0189
0190
0191 }
0192
0193 #endif