thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
LuminosityFunction.h
1// -*- C++ -*-
2//
3// LuminosityFunction.h is a part of ThePEG - Toolkit for HEP Event Generation
4// Copyright (C) 1999-2019 Leif Lonnblad
5//
6// ThePEG is licenced under version 3 of the GPL, see COPYING for details.
7// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8//
9#ifndef ThePEG_LuminosityFunction_H
10#define ThePEG_LuminosityFunction_H
11// This is the declaration of the LuminosityFunction class.
12
13#include "ThePEG/Handlers/HandlerBase.h"
14#include "ThePEG/Handlers/LastXCombInfo.h"
15#include "ThePEG/Vectors/LorentzRotation.fh"
16#include "ThePEG/Utilities/Interval.h"
17
18namespace ThePEG {
19
40
42 friend class EventHandler;
43
44public:
45
52 LuminosityFunction(Energy a = 45.6*GeV, Energy b = 45.6*GeV);
54
61 virtual bool canHandle(const cPDPair &) const;
62
66 virtual Energy maximumCMEnergy() const;
67
73 virtual LorentzRotation getBoost() const;
74
80 virtual double Y() const;
81
87 virtual int nDim(const cPDPair &) const;
88
94 virtual double value(const cPDPair &, double l1, double l2) const;
95
103 virtual pair<double,double>
104 generateLL(const double * r, double & jacobian) const;
106
107public:
108
114 Energy beamEMaxA() const { return theBeamEMaxA; }
115
119 Energy beamEMaxB() const { return theBeamEMaxB; }
121
122protected:
123
128
133
134public:
135
143
149 void persistentInput(PersistentIStream & is, int version);
151
155 static void Init();
156
161
162protected:
163
170 virtual IBPtr clone() const;
171
176 virtual IBPtr fullclone() const;
178
179private:
180
185
190
191private:
192
197
202
203};
204
211template <>
214 typedef HandlerBase NthBase;
215};
216
221template <>
222struct ClassTraits<LuminosityFunction>:
223 public ClassTraitsBase<LuminosityFunction> {
225 static string className() { return "ThePEG::LuminosityFunction"; }
226};
227
230}
231
232#endif /* ThePEG_LuminosityFunction_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
The EventHandler is the base class used to implement event handlers in ThePEG.
Definition: EventHandler.h:63
HandlerBase is an abstract base class derived from the Interfaced class via the HandlerBaseT class ad...
Definition: HandlerBase.h:151
LastXCombInfo is a templated class giving easy access to the information in an XComb object.
Definition: LastXCombInfo.h:32
double jacobian() const
Get the last jacobian obtained when generating the kinematics for the call to dSigHatDR.
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
The LuminosityFunction describes the momentum distribution of the incoming beams in an experiment.
static void Init()
Standard Init function used to initialize the interface.
Energy theBeamEMaxA
The maximum energy of the beam entering along the positive z-axis.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
LuminosityFunction(Energy a=45.6 *GeV, Energy b=45.6 *GeV)
Default constructor.
void beamEMaxA(Energy x)
The maximum energy of the beam entering along the positive z-axis.
virtual bool canHandle(const cPDPair &) const
Return true if this luminosity function can actually handle a given pair of incoming particles.
Energy beamEMaxA() const
The maximum energy of the beam entering along the positive z-axis.
Energy theBeamEMaxB
The maximum energy of the beam entering along the negative z-axis.
virtual double value(const cPDPair &, double l1, double l2) const
The value of the luminosity function for the given particle types for the given energy fractions l1 a...
virtual pair< double, double > generateLL(const double *r, double &jacobian) const
Generate energy fractions l1 and l2 ( ) given 'nDim()' random numbers in the range ]0,...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
void select(tXCombPtr)
Set information about the selected XComb.
virtual IBPtr clone() const
Make a simple clone of this object.
LuminosityFunction & operator=(const LuminosityFunction &)=delete
Private and non-existent assignment operator.
Energy beamEMaxB() const
The maximum energy of the beam entering along the negative z-axis.
virtual LorentzRotation getBoost() const
Return the rotation needed to transform from the collision cm system to the labotatory system.
virtual Energy maximumCMEnergy() const
Return the maximum possible center of mass energy for an event.
void beamEMaxB(Energy x)
The maximum energy of the beam entering along the negative z-axis.
static ClassDescription< LuminosityFunction > initLuminosityFunction
Describe an abstract class with persistent data.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual int nDim(const cPDPair &) const
How many random numbers are needed to generate a phase space point? Default is zero in which means th...
virtual double Y() const
Return the rapidity of the colliding particles (at the maximum energy) in the laboratory system.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:519
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
pair< cPDPtr, cPDPtr > cPDPair
A pair of pointers to const ParticleData objects.
Definition: Containers.h:118
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30