ThePEG
1.8.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
Handlers
XComb.h
1
// -*- C++ -*-
2
//
3
// XComb.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_XComb_H
10
#define ThePEG_XComb_H
11
// This is the declaration of the XComb class.
12
13
#include "ThePEG/Config/ThePEG.h"
14
#include "ThePEG/PDF/PartonExtractor.fh"
15
#include "ThePEG/PDF/PartonBin.h"
16
#include "ThePEG/PDF/PartonBinInstance.h"
17
#include "ThePEG/Utilities/AnyReference.h"
18
#include "ThePEG/Utilities/VSelector.h"
19
#include "ThePEG/Utilities/ClassDescription.h"
20
#include "ThePEG/Utilities/Maths.h"
21
#include "ThePEG/EventRecord/Particle.h"
22
#include "ThePEG/Handlers/EventHandler.fh"
23
#include "ThePEG/Cuts/Cuts.fh"
24
25
namespace
ThePEG {
26
43
class
XComb
:
public
Base
{
44
45
public
:
46
52
XComb
(
Energy
newMaxEnergy,
const
cPDPair
& inc,
53
tEHPtr
newEventHandler,
tPExtrPtr
newExtractor,
tCascHdlPtr
newCKKW,
54
const
PBPair
& newPartonBins,
tCutsPtr
newCuts);
55
59
XComb
();
60
64
virtual
~XComb
();
66
67
68
74
const
EventHandler
&
eventHandler
()
const
{
return
*
theEventHandler
; }
75
79
tEHPtr
eventHandlerPtr
()
const
{
return
theEventHandler
; }
80
84
tPExtrPtr
pExtractor
()
const
{
return
thePartonExtractor
; }
85
89
tCutsPtr
cuts
()
const
{
return
theCuts
; }
90
95
tCascHdlPtr
CKKWHandler
()
const
{
return
theCKKW
; }
97
103
const
cPDPair
&
particles
()
const
{
return
theParticles
; }
104
108
const
cPDPair
&
partons
()
const
{
return
thePartons
; }
109
113
const
PBPair
&
partonBins
()
const
{
return
thePartonBins
; }
114
118
Energy
maxEnergy
()
const
{
return
theMaxEnergy
; }
119
126
bool
empty
()
const
{
return
!
theEventHandler
; }
128
132
136
void
clean
();
137
141
void
setPartonBinInstances
(
PBIPair
pbis, Energy2 scale);
142
146
void
prepare
(
const
PPair
&);
147
151
const
PPair
&
lastParticles
()
const
{
return
theLastParticles
; }
152
156
const
PPair
&
lastPartons
()
const
{
return
theLastPartons
; }
157
161
void
lastPartons
(
PPair
pp) {
theLastPartons
= pp; }
162
167
tSubProPtr
subProcess
()
const
{
return
theSub
; }
168
173
void
subProcess
(
tSubProPtr
);
174
178
const
PBIPair
&
partonBinInstances
()
const
{
return
thePartonBinInstances
; }
179
183
PBIPair
&
partonBinInstances
() {
return
thePartonBinInstances
; }
184
189
tPBIPtr
partonBinInstance
(
tcPPtr
)
const
;
190
194
Energy2
lastS
()
const
{
return
theLastS
; }
195
200
void
lastS
(Energy2 s) {
theLastS
= s; }
201
205
Energy2
lastSHat
()
const
{
return
theLastSHat
; }
206
211
void
lastSHat
(Energy2 sh) {
theLastSHat
= sh; }
212
216
double
lastTau
()
const
{
return
lastSHat
()/
lastS
(); }
217
221
double
lastY
()
const
{
return
theLastY
; }
222
226
void
lastY
(
double
y) {
theLastY
= y; }
227
232
double
lastP1
()
const
{
return
theLastP1P2
.first; }
233
238
double
lastP2
()
const
{
return
theLastP1P2
.second; }
239
244
void
lastP1P2
(pair<double,double> pp) {
theLastP1P2
= pp; }
245
250
double
lastL1
()
const
{
return
theLastL1L2
.first; }
251
256
double
lastL2
()
const
{
return
theLastL1L2
.second; }
257
262
void
lastL1L2
(pair<double,double>);
263
268
double
lastX1
()
const
{
return
theLastX1X2
.first; }
269
274
double
lastX2
()
const
{
return
theLastX1X2
.second; }
275
280
void
lastX1X2
(pair<double,double>);
281
286
double
lastE1
()
const
{
return
theLastE1E2
.first; }
287
292
double
lastE2
()
const
{
return
theLastE1E2
.second; }
293
298
void
lastE1E2
(pair<double,double>);
299
303
Energy2
lastScale
()
const
{
return
theLastScale
; }
304
308
void
lastScale
(Energy2 Q2) {
theLastScale
= Q2; }
309
314
double
lastAlphaS
()
const
{
return
theLastAlphaS
; }
315
319
void
lastAlphaS
(
double
a) {
theLastAlphaS
= a; }
320
325
double
lastAlphaEM
()
const
{
return
theLastAlphaEM
; }
326
330
void
lastAlphaEM
(
double
a) {
theLastAlphaEM
= a; }
332
333
public
:
334
338
bool
hasMeta
(
int
id
)
const
{
339
return
theMeta
.find(
id
) !=
theMeta
.end();
340
}
341
345
template
<
class
T>
346
void
meta
(
int
id
, T& ref) {
347
theMeta
[id] =
AnyReference
(ref);
348
}
349
353
void
eraseMeta
(
int
id
) {
354
theMeta
.erase(
id
);
355
}
356
360
template
<
class
T>
361
T&
meta
(
int
id
)
const
{
362
return
theMeta
.find(
id
)->second.cast<T>();
363
}
364
365
protected
:
366
370
void
setPartonBinInfo
();
371
375
void
createPartonBinInstances
();
376
377
public
:
378
385
void
persistentOutput
(
PersistentOStream
& os)
const
;
386
392
void
persistentInput
(
PersistentIStream
& is,
int
version);
394
398
static
void
Init
();
399
400
protected
:
401
405
void
lastParticles
(
const
PPair
& p) {
theLastParticles
= p; }
406
410
void
resetPartonBinInstances
(
const
PBIPair
& newBins) {
thePartonBinInstances
= newBins; }
411
412
private
:
413
417
tEHPtr
theEventHandler
;
418
422
tPExtrPtr
thePartonExtractor
;
423
427
tCascHdlPtr
theCKKW
;
428
432
tCutsPtr
theCuts
;
433
437
cPDPair
theParticles
;
438
442
cPDPair
thePartons
;
443
447
PBPair
thePartonBins
;
448
452
PBPair
theParticleBins
;
453
457
PBIPair
thePartonBinInstances
;
458
462
PPair
theLastParticles
;
463
467
PPair
theLastPartons
;
468
472
Energy2
theLastS
;
473
477
Energy2
theLastSHat
;
478
482
double
theLastY
;
483
487
DPair
theLastP1P2
;
488
493
DPair
theLastL1L2
;
494
499
DPair
theLastX1X2
;
500
505
DPair
theLastE1E2
;
506
510
Energy2
theLastScale
;
511
515
double
theLastAlphaS
;
516
520
double
theLastAlphaEM
;
521
525
Energy
theMaxEnergy
;
526
532
DVector
theMEInfo
;
533
538
SubProPtr
theSub
;
539
543
map<int,AnyReference>
theMeta
;
544
545
private
:
546
550
static
ClassDescription<XComb>
initXComb
;
551
555
XComb
&
operator=
(
const
XComb
&);
556
557
};
558
565
template
<>
566
struct
BaseClassTrait
<
XComb
,1>:
public
ClassTraitsType
{
568
typedef
Base
NthBase
;
569
};
570
575
template
<>
576
struct
ClassTraits<XComb>:
577
public
ClassTraitsBase<XComb> {
579
static
string
className
() {
return
"ThePEG::XComb"
; }
580
};
581
584
}
585
586
#endif
/* ThePEG_XComb_H */
Generated on Sat Jun 16 2012 16:51:05 for ThePEG by
1.8.1.1