ThePEG  1.8.0
StdXCombGroup.h
1 // -*- C++ -*-
2 //
3 // StdXCombGroup.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2007 Leif Lonnblad
5 // Copyright (C) 2009-2010 Simon Platzer
6 //
7 // ThePEG is licenced under version 2 of the GPL, see COPYING for details.
8 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
9 //
10 #ifndef ThePEG_StdXCombGroup_H
11 #define ThePEG_StdXCombGroup_H
12 // This is the declaration of the StdXCombGroup class.
13 
14 #include "StandardXComb.h"
15 #include "StdDependentXComb.h"
16 #include "StdXCombGroup.fh"
17 #include "ThePEG/MatrixElement/MEGroup.fh"
18 
19 namespace ThePEG {
20 
29 
31  friend class MEBase;
32 
33 public:
34 
40  StdXCombGroup(Energy newMaxEnergy, const cPDPair & inc,
41  tEHPtr newEventHandler,tSubHdlPtr newSubProcessHandler,
42  tPExtrPtr newExtractor, tCascHdlPtr newCKKW,
43  const PBPair & newPartonBins, tCutsPtr newCuts, tMEGroupPtr newME,
44  const DiagramVector & newDiagrams, bool mir);
45 
49  StdXCombGroup();
50 
54  virtual ~StdXCombGroup();
55 
56 public:
57 
63  virtual CrossSection dSigDR(const pair<double,double> ll, int nr, const double * r);
64 
69 
73  const StdDepXCVector& dependent() const { return theDependent; }
74 
79  tcMEGroupPtr meGroup() const { return theMEGroup; }
80 
84  void build(const PartonPairVec& allPBins);
85 
89  virtual tSubProPtr construct();
90 
91 protected:
92 
97  virtual void newSubProcess(bool);
98 
99 public:
100 
107  void persistentOutput(PersistentOStream & os) const;
108 
114  void persistentInput(PersistentIStream & is, int version);
116 
120  static void Init();
121 
122 protected:
123 
128 
129 private:
130 
135 
139  StdDepXCVector theDependent;
140 
145 
146 private:
147 
152 
157 
158 };
159 
166 template <>
167 struct BaseClassTrait<StdXCombGroup,1> {
169  typedef StandardXComb NthBase;
170 };
171 
176 template <>
177 struct ClassTraits<StdXCombGroup>:
178  public ClassTraitsBase<StdXCombGroup> {
180  static string className() { return "ThePEG::StdXCombGroup"; }
181 };
182 
185 }
186 
187 #endif /* ThePEG_StdXCombGroup_H */