thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
MultiCutBase.h
1// -*- C++ -*-
2//
3// MultiCutBase.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_MultiCutBase_H
10#define THEPEG_MultiCutBase_H
11//
12// This is the declaration of the MultiCutBase class.
13//
14
15#include "ThePEG/Interface/Interfaced.h"
16#include "MultiCutBase.fh"
17#include "Cuts.fh"
18
19namespace ThePEG {
20
34class MultiCutBase: public Interfaced {
35
36public:
37
45 virtual Energy2 minS(const tcPDVector & pv) const;
46
52 virtual Energy2 maxS(const tcPDVector & pv) const;
53
58 virtual bool passCuts(tcCutsPtr parent, const tcPDVector & ptype,
59 const vector<LorentzMomentum> & p) const;
60
64 bool passCuts(tcCutsPtr parent, const tcPVector & p) const;
66
70 virtual void describe() const;
71
72public:
73
80 static void Init();
81
82private:
83
89
94 MultiCutBase & operator=(const MultiCutBase &) = delete;
95
96};
97
98}
99
100#include "ThePEG/Utilities/ClassTraits.h"
101
102namespace ThePEG {
103
108template <>
109struct BaseClassTrait<MultiCutBase,1> {
111 typedef Interfaced NthBase;
112};
113
116template <>
117struct ClassTraits<MultiCutBase>
118 : public ClassTraitsBase<MultiCutBase> {
120 static string className() { return "ThePEG::MultiCutBase"; }
121};
122
125}
126
127#endif /* THEPEG_MultiCutBase_H */
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
The Interfaced class is derived from the InterfacedBase class adding a couple of things particular to...
Definition: Interfaced.h:38
This class corresponds to a kinematical cut to be made on a set of outgoing particles from a hard sub...
Definition: MultiCutBase.h:34
bool passCuts(tcCutsPtr parent, const tcPVector &p) const
Return true if the given vector of particles passes the cuts.
static AbstractNoPIOClassDescription< MultiCutBase > initMultiCutBase
The static object used to initialize the description of this class.
Definition: MultiCutBase.h:88
virtual Energy2 minS(const tcPDVector &pv) const
Return the minimum allowed value of the squared invariant mass of a set of outgoing partons of the gi...
static void Init()
The standard Init function used to initialize the interfaces.
MultiCutBase & operator=(const MultiCutBase &)=delete
The assignment operator is private and must never be called.
virtual bool passCuts(tcCutsPtr parent, const tcPDVector &ptype, const vector< LorentzMomentum > &p) const
Return true if a set of outgoing particles with typea ptype and corresponding momenta p passes the cu...
virtual void describe() const
Describe the currently active cuts in the log file.
virtual Energy2 maxS(const tcPDVector &pv) const
Return the maximum allowed value of the squared invariant mass of a set of outgoing partons of the gi...
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
vector< tcPPtr > tcPVector
A vector of transient pointers to const Particle objects.
Definition: Containers.h:85
vector< tcPDPtr > tcPDVector
A vector of transient pointers to const ParticleData objects.
Definition: Containers.h:42
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