ThePEG  1.8.0
StdDependentXComb.h
1 // -*- C++ -*-
2 //
3 // StdDependentXComb.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_StdDependentXComb_H
11 #define ThePEG_StdDependentXComb_H
12 // This is the declaration of the StdDependentXComb class.
13 
14 #include "StandardXComb.h"
15 #include "StdDependentXComb.fh"
16 
17 namespace ThePEG {
18 
31 
33  friend class MEBase;
34 
35 public:
36 
43  const PBPair & newPartonBins, tMEPtr newME,
44  const DiagramVector & newDiagrams);
45 
50 
54  virtual ~StdDependentXComb();
55 
56 public:
57 
64 
73  void setIncomingPartons();
74 
79  void remakeIncoming() { resetIncoming = true; }
80 
84  void setProcess();
85 
89  virtual tSubProPtr construct();
90 
96  void setPartonBinInstances(Energy2 scale = ZERO);
97 
103  virtual const XSecStat & stats() const { return head()->stats(); }
104 
109  virtual void select(double weight) { head()->select(weight); }
110 
114  virtual void accept() { head()->accept(); }
115 
121  virtual void reject(double weight = 1.0) { head()->reject(weight); }
122 
126  virtual void reset() { head()->reset(); }
128 
129 public:
130 
137  void persistentOutput(PersistentOStream & os) const;
138 
144  void persistentInput(PersistentIStream & is, int version);
146 
150  static void Init();
151 
152 private:
153 
158 
159 private:
160 
165 
170 
171 };
172 
179 template <>
182  typedef StandardXComb NthBase;
183 };
184 
189 template <>
190 struct ClassTraits<StdDependentXComb>:
191  public ClassTraitsBase<StdDependentXComb> {
193  static string className() { return "ThePEG::StdDependentXComb"; }
194 };
195 
198 }
199 
200 #endif /* ThePEG_StdDependentXComb_H */