ThePEG
1.8.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
Cuts
V2LeptonsCut.h
1
// -*- C++ -*-
2
//
3
// V2LeptonsCut.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_V2LeptonsCut_H
10
#define THEPEG_V2LeptonsCut_H
11
//
12
// This is the declaration of the V2LeptonsCut class.
13
//
14
15
#include "ThePEG/Cuts/MultiCutBase.h"
16
17
namespace
ThePEG {
18
28
class
V2LeptonsCut
:
public
MultiCutBase
{
29
33
enum
Family
{
34
electron
= 1,
35
muon
= 2,
36
tau
= 4
37
};
38
42
enum
CComb
{
43
posneg
,
44
negneu
,
45
posneu
,
46
neuneu
47
};
48
49
public
:
50
56
V2LeptonsCut
() :
theMinM
(70.0*GeV),
theMaxM
(90.0*GeV),
theFamilies
(
electron
|
muon
),
57
theCComb
(
negneu
|
posneu
) {}
58
62
virtual
~V2LeptonsCut
();
64
65
public
:
66
74
virtual
Energy2
minS
(
const
tcPDVector
& pv)
const
;
75
81
virtual
Energy2
maxS
(
const
tcPDVector
& pv)
const
;
82
87
virtual
bool
passCuts
(
tcCutsPtr
parent,
const
tcPDVector
& ptype,
88
const
vector<LorentzMomentum> & p)
const
;
90
94
virtual
void
describe
()
const
;
95
96
protected
:
97
101
bool
checkTypes
(
long
id1,
long
id2)
const
;
102
106
int
family
(
long
id
)
const
;
107
108
public
:
109
116
void
persistentOutput
(
PersistentOStream
& os)
const
;
117
123
void
persistentInput
(
PersistentIStream
& is,
int
version);
125
132
static
void
Init
();
133
134
protected
:
135
142
virtual
IBPtr
clone
()
const
;
143
148
virtual
IBPtr
fullclone
()
const
;
150
151
private
:
152
156
Energy
maxMinM
()
const
;
157
161
Energy
minMaxM
()
const
;
162
163
private
:
164
168
Energy
theMinM
;
169
173
Energy
theMaxM
;
174
178
int
theFamilies
;
179
183
int
theCComb
;
184
185
private
:
186
191
static
ClassDescription<V2LeptonsCut>
initV2LeptonsCut
;
192
197
V2LeptonsCut
&
operator=
(
const
V2LeptonsCut
&);
198
199
};
200
201
}
202
203
#include "ThePEG/Utilities/ClassTraits.h"
204
205
namespace
ThePEG {
206
211
template
<>
212
struct
BaseClassTrait<V2LeptonsCut,1> {
214
typedef
MultiCutBase
NthBase
;
215
};
216
219
template
<>
220
struct
ClassTraits<V2LeptonsCut>
221
:
public
ClassTraitsBase<V2LeptonsCut> {
223
static
string
className
() {
return
"ThePEG::V2LeptonsCut"
; }
227
static
string
library
() {
return
"V2LeptonsCut.so"
; }
228
};
229
232
}
233
234
#endif
/* THEPEG_V2LeptonsCut_H */
Generated on Sat Jun 16 2012 16:51:05 for ThePEG by
1.8.1.1