#include <Cuts.h>
Public Types | |
typedef vector< OneCutPtr > | OneCutVector |
A vector of OneCutBase pointers. | |
typedef vector< TwoCutPtr > | TwoCutVector |
A vector of TwoCutBase pointers. | |
typedef vector< MultiCutPtr > | MultiCutVector |
A vector of MultiCutBase pointers. | |
Public Member Functions | |
virtual void | describe () const |
Describe the currently active cuts in the log file. | |
Standard constructors and destructors. | |
Cuts (Energy MhatMin=2 *GeV) | |
The default constructor. | |
virtual | ~Cuts () |
The destructor. | |
Initialization functions. | |
virtual void | initialize (Energy2 smax, double Y) |
Initialize this object specifying the maximum total invariant mass squared, smax, and the total rapidity, Y, of the colliding particles (for the maximum invariant mass). | |
virtual void | initEvent () |
Initialize this object for a new event. | |
virtual bool | initSubProcess (Energy2 shat, double yhat, bool mirror=false) const |
Set information about the invariant mass squared, shat, and rapidity, yhat, of the hard sub-process. | |
Check functions to see if a state has passed the cuts or not. | |
bool | passCuts (const tcPDVector &ptype, const vector< LorentzMomentum > &p, tcPDPtr t1=tcPDPtr(), tcPDPtr t2=tcPDPtr()) const |
Check if the outgoing particles, with the given types and momenta, from a sub-process passes the cuts. | |
bool | passCuts (const tcPVector &p, tcPDPtr t1=tcPDPtr(), tcPDPtr t2=tcPDPtr()) const |
Check if the outgoing particles from a sub-process passes the cuts. | |
bool | passCuts (const SubProcess &sub) const |
Check if the incoming and outgoing particles in the given sub-process passes the cuts. | |
bool | passCuts (const Collision &coll) const |
Check if the given collision passes the cuts. | |
Access to cuts of the underlying cut objects. | |
Energy2 | minSij (tcPDPtr pi, tcPDPtr pj) const |
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj. | |
Energy2 | minTij (tcPDPtr pi, tcPDPtr po) const |
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton of type pi and an outgoing parton of type po. | |
double | minDeltaR (tcPDPtr pi, tcPDPtr pj) const |
Return the minimum allowed value of of two outgoing partons of type pi and pj. | |
Energy | minKTClus (tcPDPtr pi, tcPDPtr pj) const |
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure. | |
double | minDurham (tcPDPtr pi, tcPDPtr pj) const |
Return the minimum allowed value of the Durham -algorithms distance measure. | |
Energy | minKT (tcPDPtr p) const |
Return the minimum allowed value of the transverse momentum of an outgoing parton. | |
double | minEta (tcPDPtr p) const |
Return the minimum allowed pseudo-rapidity of an outgoing parton of the given type. | |
double | maxEta (tcPDPtr p) const |
Return the maximum allowed pseudo-rapidity of an outgoing parton of the given type. | |
double | minYStar (tcPDPtr p) const |
Return the minimum allowed rapidity of an outgoing parton of the given type in the center-of-mass system of the hard sub-process. | |
double | maxYStar (tcPDPtr p) const |
Return the minimum allowed rapidity of an outgoing parton of the given type in the center-of-mass system of the hard sub-process. | |
Energy2 | minS (const tcPDVector &pv) const |
Return the minimum allowed value of the squared invariant mass of a set of outgoing partons of the given types. | |
Energy2 | maxS (const tcPDVector &pv) const |
Return the maximum allowed value of the squared invariant mass of a set of outgoing partons of the given types. | |
Direct access to underlying cut objects. | |
template<typename T> | |
vector< typename Ptr< T > ::transient_const_pointer > | oneCutObjects () const |
Return a vector of pointers to objects of the given class (with base class OneCutBase). | |
template<typename T> | |
vector< typename Ptr< T > ::transient_const_pointer > | twoCutObjects () const |
Return a vector of pointers to objects of the given class (with base class TwoCutBase). | |
template<typename T> | |
vector< typename Ptr< T > ::transient_const_pointer > | multiCutObjects () const |
Return a vector of pointers to objects of the given class (with base class MultiCutBase). | |
void | add (tOneCutPtr c) |
Add a OneCutBase object. | |
void | add (tTwoCutPtr c) |
Add a TwoCutBase object. | |
void | add (tMultiCutPtr c) |
Add a MultiCutBase object. | |
Simple access functions. | |
Energy2 | SMax () const |
The maximum allowed total invariant mass squared allowed for events to be considered. | |
double | Y () const |
The total rapidity of the colliding particles corresponding to the maximum invariant mass squared, SMax(). | |
Energy2 | currentSHat () const |
The invariant mass squared of the hard sub-process of the event being considered. | |
double | currentYHat () const |
The total rapidity of hard sub-process (wrt. | |
Functions to inquire about specific cuts. | |
Energy2 | sHatMin () const |
The minimum allowed value of . | |
Energy2 | sHatMax () const |
The maximum allowed value of . | |
bool | sHat (Energy2 sh) const |
Check if the given is within the cuts. | |
Energy | mHatMin () const |
The minimum allowed value of . | |
Energy | mHatMax () const |
The maximum allowed value of . | |
double | yHatMin () const |
The minimum value of the rapidity of the hard sub-process (wrt. | |
double | yHatMax () const |
The maximum value of the rapidity of the hard sub-process (wrt. | |
bool | yHat (double y) const |
Check if the given is within the cuts. | |
double | x1Min () const |
The minimum value of the positive light-cone fraction of the hard sub-process. | |
double | x1Max () const |
The maximum value of the positive light-cone fraction of the hard sub-process. | |
bool | x1 (double x) const |
Check if the given is within the cuts. | |
double | x2Min () const |
The minimum value of the negative light-cone fraction of the hard sub-process. | |
double | x2Max () const |
The maximum value of the negative light-cone fraction of the hard sub-process. | |
bool | x2 (double x) const |
Check if the given is within the cuts. | |
Energy2 | scaleMin () const |
The minimum allowed value of the scale to be used in PDF's and coupling constants. | |
Energy2 | scaleMax () const |
The maximum allowed value of the scale to be used in PDF's and coupling constants. | |
bool | scale (Energy2 Q2) const |
Check if the given scale is within the cuts. | |
bool | subMirror () const |
Set true if a matrix element is should be using this cut and is mirrored along the z-axis . | |
Functions used by the persistent I/O system. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
Static Public Member Functions | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
Protected Member Functions | |
Standard Interfaced functions. | |
virtual void | doinitrun () |
Initialize this object. | |
Clone Methods. | |
virtual IBPtr | clone () const |
Make a simple clone of this object. | |
virtual IBPtr | fullclone () const |
Make a clone of this object, possibly modifying the cloned object to make it sane. | |
Private Member Functions | |
Energy | maxMHatMin () const |
Helper function used by the interface. | |
Energy | minMHatMax () const |
Helper function used by the interface. | |
double | maxYHatMin () const |
Helper function used by the interface. | |
double | minYHatMax () const |
Helper function used by the interface. | |
double | maxX1Min () const |
Helper function used by the interface. | |
double | minX1Max () const |
Helper function used by the interface. | |
double | maxX2Min () const |
Helper function used by the interface. | |
double | minX2Max () const |
Helper function used by the interface. | |
Energy2 | maxScaleMin () const |
Helper function used by the interface. | |
Energy2 | minScaleMax () const |
Helper function used by the interface. | |
Cuts & | operator= (const Cuts &) |
The assignment operator is private and must never be called. | |
Private Attributes | |
Energy2 | theSMax |
The maximum allowed total invariant mass squared allowed for events to be considered. | |
double | theY |
The total rapidity of the colliding particles corresponding to the maximum invariant mass squared, SMax(). | |
Energy2 | theCurrentSHat |
The invariant mass squared of the hard sub-process of the event being considered. | |
double | theCurrentYHat |
The total rapidity of hard sub-process (wrt. | |
Energy | theMHatMin |
The minimum allowed value of . | |
Energy | theMHatMax |
The maximum allowed value of . | |
double | theYHatMin |
The minimum value of the rapidity of the hard sub-process (wrt. | |
double | theYHatMax |
The maximum value of the rapidity of the hard sub-process (wrt. | |
double | theX1Min |
The minimum value of the positive light-cone fraction of the hard sub-process. | |
double | theX1Max |
The maximum value of the positive light-cone fraction of the hard sub-process. | |
double | theX2Min |
The minimum value of the negative light-cone fraction of the hard sub-process. | |
double | theX2Max |
The maximum value of the negative light-cone fraction of the hard sub-process. | |
Energy2 | theScaleMin |
The minimum allowed value of the scale to be used in PDF's and coupling constants. | |
Energy2 | theScaleMax |
The maximum allowed value of the scale to be used in PDF's and coupling constants. | |
OneCutVector | theOneCuts |
The objects defining cuts on single outgoing partons from the hard sub-process. | |
TwoCutVector | theTwoCuts |
The objects defining cuts on pairs of particles in the hard sub-process. | |
MultiCutVector | theMultiCuts |
The objects defining cuts on sets of outgoing particles from the hard sub-process. | |
bool | theSubMirror |
Set to true if a matrix element is should be using this cut and is mirrored along the z-axis . | |
Static Private Attributes | |
static ClassDescription< Cuts > | initCuts |
The static object used to initialize the description of this class. |
The class itself only implements cuts on the total momentum of the hard sub-process, implemented as minimum and maximum values of and (or and . Further cuts can be implemented either by inheriting from this base class, in which the virtual cut() function should be overridden, or by assigning objects of class OneCutBase, TwoCutBase and MultiCutBase defining cuts on single particles, pairs of particles and groups of particles in the hard sub-process respectively.
The Cuts object must be initialized specifying the overall laboratory frame, giving the total squared invariant mass, , and the rapidity, , of the colliding particles in this frame. The colliding particles are thus assumed to be directed along the -axis.
For each event, the Cuts object must also be initialized giving the squared invarint mass, , and the total rapidity, , of the hard sub-process in the center-of-mass frame of the colliding particles. Note that this means that the transformation between the lab frame and the rest frame of the hard sub-process is assumed to be a simple boost along the z-axis.
Definition at line 51 of file Cuts.h.
virtual void ThePEG::Cuts::initialize | ( | Energy2 | smax, | |
double | Y | |||
) | [virtual] |
Initialize this object specifying the maximum total invariant mass squared, smax, and the total rapidity, Y, of the colliding particles (for the maximum invariant mass).
A sub-class overriding this function must make sure the base-class function is called. This function should be called once in the beginning of a run.
virtual void ThePEG::Cuts::initEvent | ( | ) | [virtual] |
Initialize this object for a new event.
A sub-class overriding this function must make sure the base-class function is called. This function is called before the generation of a new sub-process, before the incoming partons have been generated.
virtual bool ThePEG::Cuts::initSubProcess | ( | Energy2 | shat, | |
double | yhat, | |||
bool | mirror = false | |||
) | const [virtual] |
Set information about the invariant mass squared, shat, and rapidity, yhat, of the hard sub-process.
The rapidity should be given wrt. the center of mass of the colliding particles. A sub-class overriding this function must make sure the base-class function is called. This function is called before the generation of a new sub-process, after the incoming partons have been generated. If mirror is true any questions regarding cuts on the sub-process in the functions minYStar(tcPDPtr), maxYStar(tcPDPtr p), passCuts(const tcPDVector &, const vector<LorentzMomentum> &, tcPDPtr, tcPDPtr) and passCuts(const tcPVector &, tcPDPtr t1, tcPDPtr) will assume that the z-axis is reversed in the sub-process rest frame. Returns false if the given values were outside of the cuts.
bool ThePEG::Cuts::passCuts | ( | const tcPDVector & | ptype, | |
const vector< LorentzMomentum > & | p, | |||
tcPDPtr | t1 = tcPDPtr() , |
|||
tcPDPtr | t2 = tcPDPtr() | |||
) | const |
Check if the outgoing particles, with the given types and momenta, from a sub-process passes the cuts.
The particles must be given in the rest frame of tha hard sub-process, and the initSubProcess must have been called before. Also the types of the incoming partons, t1 and t2, may be given if availible.
bool ThePEG::Cuts::passCuts | ( | const tcPVector & | p, | |
tcPDPtr | t1 = tcPDPtr() , |
|||
tcPDPtr | t2 = tcPDPtr() | |||
) | const |
Check if the outgoing particles from a sub-process passes the cuts.
The particles must be given in the rest frame of tha hard sub-process, and the initSubProcess must have been called before. Also the types of the incoming partons, t1 and t2, may be given if availible.
bool ThePEG::Cuts::passCuts | ( | const SubProcess & | sub | ) | const |
Check if the incoming and outgoing particles in the given sub-process passes the cuts.
The sub-process must be given in its rest frame, and the initSubProcess must have been called before.
bool ThePEG::Cuts::passCuts | ( | const Collision & | coll | ) | const |
Check if the given collision passes the cuts.
The collision must be given in its rest frame.
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj.
This function first determines the minimum from the corresponding function from in TwoCutBase objects. If no minimum was found, one is derived from minKTClus(), minDurham(), minKT() and minDeltaR(), if possible.
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton of type pi and an outgoing parton of type po.
This function first determines the minimum from the corresponding function from in TwoCutBase objects. If no minimum was found, one is derived from minKT(), if possible.
Return the minimum allowed value of of two outgoing partons of type pi and pj.
Simply returns the maximum of the results from calling the corresponding function in the TwoCutBase objects.
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure.
This is defined as for two outgoing partons, or simply or for a single outgoing parton. Returns 0 if both partons are incoming. A null pointer indicates an incoming parton, hence the type of the incoming parton is irrelevant. Simply returns the maximum of the results from calling the corresponding function in the TwoCutBase objects.
Return the minimum allowed value of the Durham -algorithms distance measure.
This is defined as for two outgoing partons. Simply returns the maximum of the results from calling the corresponding function in the TwoCutBase objects.
Energy ThePEG::Cuts::minKT | ( | tcPDPtr | p | ) | const |
Return the minimum allowed value of the transverse momentum of an outgoing parton.
This function first determines the minimum from the corresponding function from in OneCutBase objects. If no minimum was found, one is derived from minKTClus(), if possible.
double ThePEG::Cuts::minEta | ( | tcPDPtr | p | ) | const |
Return the minimum allowed pseudo-rapidity of an outgoing parton of the given type.
The pseudo-rapidity is measured in the lab system. Simply returns the maximum of the results from calling the corresponding function in the OneCutBase objects.
double ThePEG::Cuts::maxEta | ( | tcPDPtr | p | ) | const |
Return the maximum allowed pseudo-rapidity of an outgoing parton of the given type.
The pseudo-rapidity is measured in the lab system. Simply returns the minimum of the results from calling the corresponding function in the OneCutBase objects.
double ThePEG::Cuts::minYStar | ( | tcPDPtr | p | ) | const |
Return the minimum allowed rapidity of an outgoing parton of the given type in the center-of-mass system of the hard sub-process.
Only available after initSubProcess() has been called.
double ThePEG::Cuts::maxYStar | ( | tcPDPtr | p | ) | const |
Return the minimum allowed rapidity of an outgoing parton of the given type in the center-of-mass system of the hard sub-process.
Only available after initSubProcess() has been called.
Energy2 ThePEG::Cuts::minS | ( | const tcPDVector & | pv | ) | const |
Return the minimum allowed value of the squared invariant mass of a set of outgoing partons of the given types.
Typically used to cut off the tails of the mass of a resonance for efficiency. Simply returns the maximum of the results from calling the corresponding function in the MultiCutBase objects.
Energy2 ThePEG::Cuts::maxS | ( | const tcPDVector & | pv | ) | const |
Return the maximum allowed value of the squared invariant mass of a set of outgoing partons of the given types.
Typically used to cut off the tails of the mass of a resonance for efficiency. Simply returns the minimum of the results from calling the corresponding function in the MultiCutBase objects.
double ThePEG::Cuts::currentYHat | ( | ) | const [inline] |
The total rapidity of hard sub-process (wrt.
the rest system of the colliding particles so that currentYHat() + Y() gives the true rapidity) of the event being considered.
Definition at line 342 of file Cuts.h.
References theCurrentYHat.
double ThePEG::Cuts::yHatMin | ( | ) | const |
The minimum value of the rapidity of the hard sub-process (wrt.
the rest system of the colliding particles).
double ThePEG::Cuts::yHatMax | ( | ) | const |
The maximum value of the rapidity of the hard sub-process (wrt.
the rest system of the colliding particles).
virtual void ThePEG::Cuts::doinitrun | ( | ) | [protected, virtual] |
Initialize this object.
Called in the run phase just before a run begins.
Reimplemented from ThePEG::InterfacedBase.
void ThePEG::Cuts::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
Reimplemented from ThePEG::Interfaced.
void ThePEG::Cuts::persistentInput | ( | PersistentIStream & | is, | |
int | version | |||
) |
Function used to read in object persistently.
is | the persistent input stream read from. | |
version | the version number of the object when written. |
Reimplemented from ThePEG::Interfaced.
static void ThePEG::Cuts::Init | ( | ) | [static] |
The standard Init function used to initialize the interfaces.
Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.
Reimplemented from ThePEG::Interfaced.
virtual IBPtr ThePEG::Cuts::clone | ( | ) | const [protected, virtual] |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
virtual IBPtr ThePEG::Cuts::fullclone | ( | ) | const [protected, virtual] |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
double ThePEG::Cuts::theCurrentYHat [mutable, private] |
The total rapidity of hard sub-process (wrt.
the rest system of the colliding particles so that currentYHat() + Y() gives the true rapidity) of the event being considered.
Definition at line 588 of file Cuts.h.
Referenced by currentYHat().
double ThePEG::Cuts::theYHatMin [private] |
double ThePEG::Cuts::theYHatMax [private] |
ClassDescription<Cuts> ThePEG::Cuts::initCuts [static, private] |