ThePEG
1.8.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
Cuts
Cuts.h
1
// -*- C++ -*-
2
//
3
// Cuts.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_Cuts_H
10
#define THEPEG_Cuts_H
11
//
12
// This is the declaration of the Cuts class.
13
//
14
15
#include "ThePEG/Interface/Interfaced.h"
16
#include "Cuts.fh"
17
#include "OneCutBase.h"
18
#include "TwoCutBase.h"
19
#include "MultiCutBase.h"
20
#include "JetFinder.h"
21
22
namespace
ThePEG {
23
52
class
Cuts
:
public
Interfaced
{
53
54
public
:
55
59
typedef
vector<OneCutPtr>
OneCutVector
;
60
64
typedef
vector<TwoCutPtr>
TwoCutVector
;
65
69
typedef
vector<MultiCutPtr>
MultiCutVector
;
70
71
public
:
72
78
Cuts
(
Energy
MhatMin=2*GeV);
79
83
virtual
~Cuts
();
85
86
public
:
87
98
virtual
void
initialize
(Energy2 smax,
double
Y
);
99
106
virtual
void
initEvent
();
107
123
virtual
bool
124
initSubProcess
(Energy2 shat,
double
yhat,
bool
mirror =
false
)
const
;
126
136
virtual
bool
passCuts
(
const
tcPDVector
& ptype,
const
vector<LorentzMomentum> & p,
137
tcPDPtr
t1 =
tcPDPtr
(),
tcPDPtr
t2 =
tcPDPtr
())
const
;
138
146
bool
passCuts
(
const
tcPVector
& p,
147
tcPDPtr
t1 =
tcPDPtr
(),
tcPDPtr
t2 =
tcPDPtr
())
const
;
148
154
bool
passCuts
(
const
SubProcess
& sub)
const
;
155
160
bool
passCuts
(
const
Collision
& coll)
const
;
162
172
Energy2
minSij
(
tcPDPtr
pi,
tcPDPtr
pj)
const
;
173
182
Energy2
minTij
(
tcPDPtr
pi,
tcPDPtr
po)
const
;
183
191
double
minDeltaR
(
tcPDPtr
pi,
tcPDPtr
pj)
const
;
192
205
Energy
minKTClus
(
tcPDPtr
pi,
tcPDPtr
pj)
const
;
206
214
double
minDurham
(
tcPDPtr
pi,
tcPDPtr
pj)
const
;
215
222
Energy
minKT
(
tcPDPtr
p)
const
;
223
230
double
minEta
(
tcPDPtr
p)
const
;
231
238
double
maxEta
(
tcPDPtr
p)
const
;
239
246
double
minRapidityMax
(
tcPDPtr
p)
const
;
247
254
double
maxRapidityMin
(
tcPDPtr
p)
const
;
255
261
double
minYStar
(
tcPDPtr
p)
const
;
262
268
double
maxYStar
(
tcPDPtr
p)
const
;
269
277
Energy2
minS
(
const
tcPDVector
& pv)
const
;
278
286
Energy2
maxS
(
const
tcPDVector
& pv)
const
;
288
295
template
<
typename
T>
296
vector<typename Ptr<T>::transient_const_pointer>
297
oneCutObjects
()
const
;
298
303
template
<
typename
T>
304
vector<typename Ptr<T>::transient_const_pointer>
305
twoCutObjects
()
const
;
306
311
template
<
typename
T>
312
vector<typename Ptr<T>::transient_const_pointer>
313
multiCutObjects
()
const
;
314
319
const
OneCutVector
&
oneCuts
()
const
{
return
theOneCuts
; }
320
325
const
TwoCutVector
&
twoCuts
()
const
{
return
theTwoCuts
; }
326
331
const
MultiCutVector
&
multiCuts
()
const
{
return
theMultiCuts
; }
332
336
Ptr<JetFinder>::tptr
jetFinder
()
const
{
return
theJetFinder
; }
337
341
void
add
(
tOneCutPtr
c) {
theOneCuts
.push_back(c); }
342
346
void
add
(
tTwoCutPtr
c) {
theTwoCuts
.push_back(c); }
347
351
void
add
(
tMultiCutPtr
c) {
theMultiCuts
.push_back(c); }
353
354
public
:
355
362
Energy2
SMax
()
const
{
return
theSMax
; }
363
364
369
double
Y
()
const
{
return
theY
; }
370
375
Energy2
currentSHat
()
const
{
return
theCurrentSHat
; }
376
382
double
currentYHat
()
const
{
return
theCurrentYHat
; }
383
385
391
Energy2
sHatMin
()
const
{
return
max(sqr(
theMHatMin
),
theX1Min
*
theX2Min
*
SMax
()); }
392
396
Energy2
sHatMax
()
const
{
return
min(sqr(
theMHatMax
),
theX1Max
*
theX2Max
*
SMax
()); }
397
401
bool
sHat
(Energy2 sh)
const
{
402
return
sh >
sHatMin
() && sh <=
sHatMax
()*(1.0 + 1000.0*
Constants::epsilon
);
403
}
404
408
Energy
mHatMin
()
const
{
return
max(
theMHatMin
, sqrt(
theX1Min
*
theX2Min
*
SMax
())); }
409
413
Energy
mHatMax
()
const
{
return
min(
theMHatMax
, sqrt(
theX1Max
*
theX2Max
*
SMax
())); }
414
419
double
yHatMin
()
const
;
420
425
double
yHatMax
()
const
;
426
430
bool
yHat
(
double
y)
const
;
431
436
double
x1Min
()
const
;
437
442
double
x1Max
()
const
;
443
447
bool
x1
(
double
x)
const
;
448
453
double
x2Min
()
const
;
454
459
double
x2Max
()
const
;
460
464
bool
x2
(
double
x)
const
;
465
470
Energy2
scaleMin
()
const
{
return
theScaleMin
; }
471
476
Energy2
scaleMax
()
const
{
return
theScaleMax
; }
477
481
bool
scale
(Energy2 Q2)
const
{
return
Q2 >
scaleMin
() && Q2 <
scaleMax
(); }
482
487
bool
subMirror
()
const
{
return
theSubMirror
; }
489
490
public
:
491
495
virtual
void
describe
()
const
;
496
497
protected
:
498
505
virtual
void
doinitrun
();
507
508
public
:
509
516
void
persistentOutput
(
PersistentOStream
& os)
const
;
517
523
void
persistentInput
(
PersistentIStream
& is,
int
version);
525
532
static
void
Init
();
533
534
protected
:
535
542
virtual
IBPtr
clone
()
const
;
543
548
virtual
IBPtr
fullclone
()
const
;
550
551
private
:
552
556
Energy
maxMHatMin
()
const
;
557
561
Energy
minMHatMax
()
const
;
562
566
double
maxYHatMin
()
const
;
567
571
double
minYHatMax
()
const
;
572
576
double
maxX1Min
()
const
;
577
581
double
minX1Max
()
const
;
582
586
double
maxX2Min
()
const
;
587
591
double
minX2Max
()
const
;
592
596
Energy2
maxScaleMin
()
const
;
597
601
Energy2
minScaleMax
()
const
;
602
603
private
:
604
609
Energy2
theSMax
;
610
615
double
theY
;
616
621
mutable
Energy2
theCurrentSHat
;
622
628
mutable
double
theCurrentYHat
;
629
633
Energy
theMHatMin
;
634
638
Energy
theMHatMax
;
639
644
double
theYHatMin
;
645
650
double
theYHatMax
;
651
656
double
theX1Min
;
657
662
double
theX1Max
;
663
668
double
theX2Min
;
669
674
double
theX2Max
;
675
680
Energy2
theScaleMin
;
681
686
Energy2
theScaleMax
;
687
692
OneCutVector
theOneCuts
;
693
698
TwoCutVector
theTwoCuts
;
699
704
MultiCutVector
theMultiCuts
;
705
710
Ptr<JetFinder>::ptr
theJetFinder
;
711
716
mutable
bool
theSubMirror
;
717
718
private
:
719
724
static
ClassDescription<Cuts>
initCuts
;
725
730
Cuts
&
operator=
(
const
Cuts
&);
731
732
};
733
734
}
735
736
#include "ThePEG/Utilities/ClassTraits.h"
737
738
namespace
ThePEG {
739
744
template
<>
745
struct
BaseClassTrait<Cuts,1> {
747
typedef
Interfaced
NthBase
;
748
};
749
752
template
<>
753
struct
ClassTraits<Cuts>
754
:
public
ClassTraitsBase<Cuts> {
756
static
string
className
() {
return
"ThePEG::Cuts"
; }
757
};
758
761
}
762
763
#endif
/* THEPEG_Cuts_H */
Generated on Sat Jun 16 2012 16:51:03 for ThePEG by
1.8.1.1