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 */
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
const PDF & secondPDF() const
Return references to the PDF used by the first incoming particle.
const PDF & firstPDF() const
Return references to the PDF used by the first incoming particle.
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
const tPVector & tagged() const
Return the vector of tagged particles which should be showered.
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().
const Hint & hint() const
Return the int provided in the current call 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.
StepHandler is the base class for implementing any model for a step in the event generation chain...
Definition: StepHandler.h:41
const pair< PDF, PDF > & pdfs() const
Return references to the currently used PDF&#39;s.
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 ...
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
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
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.