ThePEG  1.8.0
CascadeHandler.h
1 // -*- C++ -*-
2 //
3 // CascadeHandler.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2011 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef ThePEG_CascadeHandler_H
10 #define ThePEG_CascadeHandler_H
11 // This is the declaration of the CascadeHandler class.
12 
13 #include "StepHandler.h"
14 #include "ThePEG/Handlers/LastXCombInfo.h"
15 #include "ThePEG/PDF/PDF.h"
16 
17 namespace ThePEG {
18 
19 
33 class CascadeHandler: public StepHandler, public LastXCombInfo<> {
34 
35 public:
36 
42  virtual ~CascadeHandler();
44 
45 public:
46 
63  virtual void handle(EventHandler & eh, const tPVector & tagged,
64  const Hint & hint);
66 
72  virtual void cascade() = 0;
73 
91  virtual double reweightCKKW(int minMult, int maxMult);
92 
93 public:
94 
102  const tPVector & tagged() const { return *theTagged; }
103 
107  const Hint & hint() const { return *theHint; }
108 
112  const PDF & firstPDF() const { return pdfs().first; }
113 
117  const PDF & secondPDF() const { return pdfs().second; }
118 
122  const pair<PDF,PDF> & pdfs() const { return thePDFs; }
123 
127  void resetPDFs(const pair<tcPDFPtr,tcPDFPtr> & pdfpair);
128 
133  void setXComb(tXCombPtr xc);
135 
136 public:
137 
141  static void Init();
142 
143 private:
144 
149 
153  const Hint * theHint;
154 
158  pair<PDF,PDF> thePDFs;
159 
160 private:
161 
167 
172 
173 };
174 
179 template <>
182  typedef StepHandler NthBase;
183 };
184 
187 template <>
188 struct ClassTraits<CascadeHandler>: public ClassTraitsBase<CascadeHandler> {
190  static string className() { return "ThePEG::CascadeHandler"; }
191 };
192 
195 }
196 
197 #endif /* ThePEG_CascadeHandler_H */
const Hint & hint() const
Return the int provided in the current call to handle().
void resetPDFs(const pair< tcPDFPtr, tcPDFPtr > &pdfpair)
Set alternative PDFBase objects to be used for cascade.
const tPVector * theTagged
Store the tagged argument given to handle().
The EventHandler is the base class used to implement event handlers in ThePEG.
Definition: EventHandler.h:63
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
static AbstractNoPIOClassDescription< CascadeHandler > initCascadeHandler
The static object used to initialize the description of this class.
LastXCombInfo is a templated class giving easy access to the information in an XComb object...
Definition: LastXCombInfo.h:32
PDF is a simple wrapper class with normal copy-semantics which holds a PDFBase object and a ParticleD...
Definition: PDF.h:22
CascadeHandler & operator=(const CascadeHandler &)
Private and non-existent assignment operator.
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:509
const Hint * theHint
Store the Hint arguments given to handle().
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
pair< PDF, PDF > thePDFs
The pdfs used to extract the incoming partons.
const pair< PDF, PDF > & pdfs() const
Return references to the currently used PDF&#39;s.
StepHandler is the base class for implementing any model for a step in the event generation chain...
Definition: StepHandler.h:41
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
Hint is a base class to be used to pass information between StepHandler s, which cannot be convayed t...
Definition: Hint.h:48
virtual double reweightCKKW(int minMult, int maxMult)
The CascadeHandler can be used inside the process generation to do so-called CKKW reweighting of the ...
const PDF & secondPDF() const
Return references to the PDF used by the first incoming particle.
virtual void cascade()=0
The main function to be overwritten by sub-classes.
virtual void handle(EventHandler &eh, const tPVector &tagged, const Hint &hint)
The main function called by the EventHandler class to perform a step.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
const PDF & firstPDF() const
Return references to the PDF used by the first incoming particle.
The CascadeHandler is the base class of all handlers implementing perturbative partonic cascade model...
void setXComb(tXCombPtr xc)
Set the XComb object with information about the sub-process generation.
vector< tPPtr > tPVector
A vector of transient pointers to Particle objects.
Definition: Containers.h:82
const tPVector & tagged() const
Return the vector of tagged particles which should be showered.
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
virtual ~CascadeHandler()
The destructor.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52
static void Init()
Standard Init function used to initialize the interface.