ThePEG
1.8.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
PDT
Matcher.h
1
// -*- C++ -*-
2
//
3
// Matcher.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_Matcher_H
10
#define ThePEG_Matcher_H
11
// This is the declaration of the Matcher class.
12
13
#include "MatcherBase.h"
14
15
namespace
ThePEG {
16
26
template
<
class
T>
27
class
Matcher
:
public
MatcherBase
{
28
29
public
:
30
36
virtual
~Matcher
();
38
44
static
PMPtr
Create
(
const
string
& newName,
string
antiName);
48
virtual
PMPtr
pmclone
()
const
;
50
51
52
protected
:
53
60
virtual
IBPtr
clone
()
const
;
61
66
virtual
IBPtr
fullclone
()
const
;
68
69
76
virtual
bool
check
(
const
ParticleData
& pd)
const
{
return
T::Check
(pd); }
77
83
static
bool
Check
(
const
ParticleData
& pd) {
return
T::Check
(pd); }
85
86
protected
:
87
91
static
void
setCC
(
tPMPtr
pm,
tPMPtr
apm) {
MatcherBase::setCC
(pm,apm); }
92
93
private
:
94
99
static
NoPIOClassDescription< Matcher<T>
>
initMatcher
;
100
101
};
102
107
struct
MatcherType
{};
108
113
template
<
typename
T>
114
struct
BaseClassTrait
<
Matcher
<T>,1>:
public
ClassTraitsType
{
116
typedef
MatcherBase
NthBase
;
117
};
118
122
template
<
typename
T>
123
struct
ClassTraits< Matcher<T> >:
public
ClassTraitsBase< Matcher<T> > {
125
static
string
className
() {
126
return
"ThePEG::Matcher<"
+
T::className
() +
">"
;
127
}
128
};
129
132
}
133
134
#ifndef ThePEG_TEMPLATES_IN_CC_FILE
135
#include "Matcher.tcc"
136
#endif
137
138
#endif
/* ThePEG_Matcher_H */
Generated on Mon Jul 2 2012 16:06:47 for ThePEG by
1.8.1.1