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 
42  StdDependentXComb(tStdXCombPtr newHead,
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 <>
191  public ClassTraitsBase<StdDependentXComb> {
193  static string className() { return "ThePEG::StdDependentXComb"; }
194 };
195 
198 }
199 
200 #endif /* ThePEG_StdDependentXComb_H */
void remakeIncoming()
Indicate that information on incoming partons has to be collected.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual void accept()
Accept the current event assuming it was previously selcted.
bool resetIncoming
Wether or not we have to reset the incoming partons.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
The StdDependentXComb class inherits from the StandardXComb class and represents information on a har...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:509
tStdXCombPtr head() const
Return a pointer to the head XComb this XComb depends on.
virtual tSubProPtr construct()
Construct a sub-process object from the information available.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
StdDependentXComb & operator=(const StdDependentXComb &)
Private and non-existent assignment operator.
static void Init()
Standard Init function used to initialize the interface.
void setPartonBinInstances(Energy2 scale=ZERO)
Properly setup the PartonBinInstance objects provided a sub process has been constructed using this X...
static ClassDescription< StdDependentXComb > initStdDependentXComb
Describe a concrete class with persistent data.
CrossSection dSigDR()
Return the cross section differential in the variables previously supplied.
virtual ~StdDependentXComb()
Destructor.
MEBase::DiagramVector DiagramVector
A vector of DiagramBase objects.
Definition: StandardXComb.h:58
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
void setProcess()
Set the process as selected by the dependent matrix element.
The StandardXComb class inherits from the more general XComb class which stores all information about...
Definition: StandardXComb.h:53
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
StdDependentXComb()
Default constructor.
const ZeroUnit ZERO
ZERO can be used as zero for any unitful quantity.
Definition: PhysicalQty.h:33
virtual void select(double weight)
Select the current event.
virtual void reject(double weight=1.0)
Reject the current event assuming it was previously accepted.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
void setIncomingPartons()
Setup information on incoming partons depending on the information previously supplied through the ch...
virtual const XSecStat & stats() const
The statistics object for this XComb.
This template class allows the compiler to check calculations with physical quantities for dimensiona...
Definition: PhysicalQty.h:81
The MEBase class is the base class of all objects representing hard matrix elements in ThePEG...
Definition: MEBase.h:67
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
XSecStat is a concrete helper class used to collect statistics about the cross section for a specific...
Definition: XSecStat.h:36
virtual void reset()
Reset statistics.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52