herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
UnderlyingEvent
MPIHandler.h
1
// -*- C++ -*-
2
//
3
// MPIHandler.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4
// Copyright (C) 2002-2019 The Herwig Collaboration
5
//
6
// Herwig 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 HERWIG_MPIHandler_H
10
#define HERWIG_MPIHandler_H
11
//
12
// This is the declaration of the MPIHandler class.
13
//
14
#include "ThePEG/Interface/Interfaced.h"
15
#include "ThePEG/Handlers/StandardEventHandler.h"
16
#include "ThePEG/Repository/EventGenerator.h"
17
#include "Herwig/PDT/StandardMatchers.h"
18
#include "Herwig/Utilities/GSLBisection.h"
19
//#include "Herwig/Utilities/GSLMultiRoot.h"
20
#include "Herwig/Utilities/GSLIntegrator.h"
21
#include "Herwig/Shower/UEBase.h"
22
23
#include <cassert>
24
#include "ProcessHandler.h"
25
#include "MPIHandler.fh"
26
27
28
namespace
Herwig
{
29
using namespace
ThePEG
;
30
45
class
MPIHandler
:
public
UEBase
{
46
50
static
const
unsigned
int
maxScatters_
= 99;
51
55
friend
struct
Eikonalization
;
56
friend
struct
TotalXSecBisection
;
57
friend
struct
slopeAndTotalXSec
;
58
friend
struct
slopeInt
;
59
friend
struct
slopeBisection
;
60
61
public
:
62
64
typedef
vector<SubHdlPtr>
SubHandlerList
;
65
67
typedef
vector<CutsPtr>
CutsList
;
68
70
typedef
vector<ProHdlPtr>
ProcessHandlerList
;
71
73
typedef
vector<CrossSection>
XSVector
;
74
76
typedef
pair<unsigned int, unsigned int>
MPair
;
77
81
MPIHandler
():
softMult_
(0),
identicalToUE_
(-1),
82
PtOfQCDProc_
(-1.0*GeV),
Ptmin_
(-1.0*GeV),
83
hardXSec_
(0*millibarn),
softXSec_
(0*millibarn),
84
totalXSecExp_
(0*millibarn),
85
softMu2_
(
ZERO
),
beta_
(100.0/GeV2),
86
algorithm_
(2),
numSubProcs_
(0),
87
colourDisrupt_
(0.0),
softInt_
(true),
twoComp_
(true),
88
DLmode_
(2),
avgNhard_
(0.0),
avgNsoft_
(0.0),
89
energyExtrapolation_
(3),
EEparamA_
(0.6*GeV),
90
EEparamB_(37.5*GeV), refScale_(7000.*GeV),
91
pT0_(2.875*GeV), b_(0.3101), offset_(622.204*GeV) {}
92
93
public
:
94
97
98
/*
99
* @return true if for this beam setup MPI can be generated
100
*/
101
virtual
bool
beamOK
()
const
;
102
106
virtual
bool
softInt
()
const
{
return
softInt_
;}
107
113
virtual
unsigned
int
softMultiplicity
()
const
{
return
softMult_
;}
114
119
virtual
unsigned
int
multiplicity
(
unsigned
int
sel=0);
120
127
virtual
tStdXCombPtr
generate
(
unsigned
int
sel=0);
129
130
137
void
persistentOutput
(
PersistentOStream
& os)
const
;
138
144
void
persistentInput
(
PersistentIStream
& is,
int
version);
146
153
static
void
Init
();
154
159
virtual
void
initialize
();
160
165
virtual
void
finalize
();
166
171
virtual
void
clean
();
172
176
void
statistics
()
const
;
177
183
int
statLevel
()
const
{
return
eventHandler
()->statLevel();}
184
188
CrossSection
hardXSec
()
const
{
return
hardXSec_
; }
189
193
CrossSection
softXSec
()
const
{
return
softXSec_
; }
194
198
CrossSection
inelasticXSec
()
const
{
return
inelXSec_
; }
199
204
CrossSection
nonDiffractiveXSec
()
const
{
205
return
(1.-
diffratio_
)*
inelXSec_
;
206
}
207
214
CrossSection
diffractiveXSec
()
const
{
215
return
diffratio_
*
inelXSec_
;
216
}
217
218
221
230
tEHPtr
eventHandler
()
const
{
return
theHandler
;}
231
235
static
const
MPIHandler
*
currentHandler
() {
236
return
currentHandler_
;
237
}
238
242
virtual
int
Algorithm
()
const
{
return
algorithm_
;}
243
247
virtual
Energy
Ptmin
()
const
{
248
if
(
Ptmin_
>
ZERO
)
249
return
Ptmin_
;
250
else
251
throw
Exception
() <<
"MPIHandler::Ptmin called without initialize before"
252
<<
Exception::runerror
;
253
}
254
258
virtual
InvEnergy2
beta
()
const
{
259
if
(
beta_
!= 100.0/GeV2)
260
return
beta_
;
261
else
262
throw
Exception
() <<
"MPIHandler::beta called without initialization"
263
<<
Exception::runerror
;
264
}
265
270
virtual
Energy
PtForVeto
()
const
{
return
PtOfQCDProc_
;}
271
276
virtual
unsigned
int
additionalHardProcs
()
const
{
return
numSubProcs_
-1;}
277
282
virtual
double
colourDisrupt
()
const
{
return
colourDisrupt_
;}
283
284
protected
:
285
292
virtual
IBPtr
clone
()
const
;
293
298
virtual
IBPtr
fullclone
()
const
;
300
301
private
:
302
306
const
SubHandlerList
&
subProcesses
()
307
const
{
return
theSubProcesses
;}
308
312
SubHandlerList
&
subProcesses
() {
return
theSubProcesses
;}
313
317
const
CutsList
&
cuts
()
const
{
return
theCuts
;}
318
322
CutsList
&
cuts
() {
return
theCuts
;}
323
327
const
ProcessHandlerList
&
processHandlers
()
328
const
{
return
theProcessHandlers
;}
329
333
ProcessHandlerList
&
processHandlers
() {
return
theProcessHandlers
;}
334
335
340
void
Probs
(
XSVector
UEXSecs);
341
346
void
MultDistribution
(
string
filename)
const
;
347
356
InvArea
OverlapFunction
(Length b, Energy2 mu2=
ZERO
)
const
;
357
362
double
poisson
(Length b, CrossSection sigma,
363
unsigned
int
N, Energy2 mu2=
ZERO
)
const
;
364
370
CrossSection
totalXSecExp
()
const
;
371
378
CrossSection
totalXSecDiff
(CrossSection
softXSec
,
379
Energy2 softMu2=
ZERO
)
const
;
380
387
InvEnergy2
slopeDiff
(CrossSection
softXSec
,
388
Energy2 softMu2=
ZERO
)
const
;
389
395
InvEnergy2
slopeExp
()
const
;
396
397
401
void
overrideUECuts
();
402
403
404
private
:
405
410
MPIHandler
&
operator=
(
const
MPIHandler
&) =
delete
;
411
418
tEHPtr
theHandler
;
419
423
SubHandlerList
theSubProcesses
;
424
428
CutsList
theCuts
;
429
433
ProcessHandlerList
theProcessHandlers
;
434
439
Selector<MPair>
theMultiplicities
;
440
446
unsigned
int
softMult_
;
447
451
vector<int>
additionalMultiplicities_
;
452
460
int
identicalToUE_
;
461
467
Energy
PtOfQCDProc_
;
468
472
Energy
Ptmin_
;
473
477
CrossSection
hardXSec_
;
478
482
CrossSection
softXSec_
;
483
487
CrossSection
inelXSec_
;
488
495
CrossSection
totalXSecExp_
;
496
501
Energy2
softMu2_
;
502
507
InvEnergy2
beta_
;
512
int
algorithm_
;
513
517
Energy2
invRadius_
;
518
522
unsigned
int
numSubProcs_
;
523
530
double
colourDisrupt_
;
531
536
bool
softInt_
;
537
542
bool
twoComp_
;
543
548
unsigned
int
DLmode_
;
549
553
double
avgNhard_
;
554
558
double
avgNsoft_
;
559
563
static
MPIHandler
*
currentHandler_
;
564
569
unsigned
int
energyExtrapolation_
;
570
574
Energy
EEparamA_
;
575
Energy EEparamB_;
576
Energy refScale_;
577
Energy pT0_;
578
double
b_;
579
Energy offset_;
580
584
double
diffratio_
=0.2;
585
586
protected
:
587
595
class
InitError:
public
Exception
{};
596
599
};
600
601
}
602
603
namespace
Herwig
{
604
611
struct
slopeAndTotalXSec
:
public
GSLHelper
<CrossSection, CrossSection> {
612
613
public
:
614
618
slopeAndTotalXSec
(tcMPIHPtr handler):
handler_
(handler) {}
619
621
typedef
Energy2
ArgType2
;
622
624
typedef
InvEnergy2
ValType2
;
625
630
CrossSection
f1
(
ArgType
softXSec,
ArgType2
softMu2)
const
{
631
return
handler_
->totalXSecDiff(softXSec, softMu2);
632
}
633
638
InvEnergy2
f2
(
ArgType
softXSec,
ArgType2
softMu2)
const
{
639
return
handler_
->slopeDiff(softXSec, softMu2);
640
}
641
643
virtual
ValType
vUnit
()
const
{
return
1.0*millibarn;}
644
646
virtual
ArgType
aUnit
()
const
{
return
1.0*millibarn;}
647
649
ValType2
vUnit2
()
const
{
return
1.0/GeV2;}
650
652
ArgType2
aUnit2
()
const
{
return
GeV2;}
653
654
private
:
655
659
tcMPIHPtr
handler_
;
660
661
};
662
667
struct
betaBisection
:
public
GSLHelper
<Energy2, InvEnergy2>{
668
public
:
676
betaBisection
(CrossSection soft, DiffXSec dsig, Energy ptmin)
677
:
softXSec_
(soft),
dsig_
(dsig),
ptmin_
(ptmin) {}
678
682
virtual
Energy2
operator ()
(InvEnergy2 beta)
const
683
{
684
if
( fabs(beta*GeV2) < 1.E-4 )
685
beta = (beta >
ZERO
) ? 1.E-4/GeV2 : -1.E-4/GeV2;
686
687
return
(exp(beta*
sqr
(
ptmin_
)) - 1.0)/beta -
softXSec_
/
dsig_
;
688
}
689
691
virtual
ValType
vUnit
()
const
{
return
1.0*GeV2;}
692
694
virtual
ArgType
aUnit
()
const
{
return
1.0/GeV2;}
695
696
private
:
697
699
CrossSection
softXSec_
;
700
702
DiffXSec
dsig_
;
703
705
Energy
ptmin_
;
706
};
707
713
struct
slopeBisection
:
public
GSLHelper
<InvEnergy2, Energy2> {
714
public
:
716
slopeBisection
(tcMPIHPtr handler) :
handler_
(handler) {}
717
723
InvEnergy2
operator ()
(Energy2 arg)
const
;
724
726
CrossSection
softXSec
()
const
{
return
softXSec_
;}
727
728
private
:
730
tcMPIHPtr
handler_
;
732
mutable
CrossSection
softXSec_
;
733
};
734
740
struct
TotalXSecBisection
:
public
GSLHelper
<CrossSection, CrossSection> {
741
public
:
742
748
TotalXSecBisection
(tcMPIHPtr handler, Energy2 softMu2=
ZERO
):
749
handler_
(handler),
softMu2_
(softMu2) {}
750
755
CrossSection
operator ()
(CrossSection argument)
const
{
756
return
handler_
->totalXSecDiff(argument,
softMu2_
);
757
}
758
760
virtual
ValType
vUnit
()
const
{
return
1.0*millibarn;}
761
763
virtual
ArgType
aUnit
()
const
{
return
1.0*millibarn;}
764
765
private
:
766
770
tcMPIHPtr
handler_
;
771
775
Energy2
softMu2_
;
776
777
};
778
782
typedef
decltype
(mm/GeV2)
LengthDiff
;
783
787
struct
slopeInt
:
public
GSLHelper
<LengthDiff, Length>{
788
789
public
:
796
slopeInt
(tcMPIHPtr handler, CrossSection hard,
797
CrossSection soft=0*millibarn, Energy2 softMu2=
ZERO
)
798
:
handler_
(handler),
hardXSec_
(hard),
799
softXSec_
(soft),
softMu2_
(softMu2) {}
800
805
ValType
operator ()
(
ArgType
arg)
const
;
806
807
private
:
808
812
tcMPIHPtr
handler_
;
813
817
CrossSection
hardXSec_
;
818
822
CrossSection
softXSec_
;
823
827
Energy2
softMu2_
;
828
829
};
830
834
struct
Eikonalization
:
public
GSLHelper
<Length, Length>{
835
850
Eikonalization
(tcMPIHPtr handler,
int
option, CrossSection hard,
851
CrossSection soft=0*millibarn, Energy2 softMu2=
ZERO
)
852
:
theHandler
(handler),
theoption
(option),
hardXSec_
(hard),
853
softXSec_
(soft),
softMu2_
(softMu2) {}
854
858
Length
operator ()
(Length argument)
const
;
859
860
private
:
864
tcMPIHPtr
theHandler
;
865
870
int
theoption
;
871
875
CrossSection
hardXSec_
;
876
880
CrossSection
softXSec_
;
881
885
Energy2
softMu2_
;
886
887
};
888
}
889
890
#endif
/* HERWIG_MPIHandler_H */
Herwig::MPIHandler
This class is responsible for generating additional semi hard partonic interactions.
Definition:
MPIHandler.h:45
Herwig::MPIHandler::nonDiffractiveXSec
CrossSection nonDiffractiveXSec() const
Return the non-diffractive cross section assumed by the model.
Definition:
MPIHandler.h:204
Herwig::MPIHandler::avgNsoft_
double avgNsoft_
Variable to store the average soft multiplicity.
Definition:
MPIHandler.h:558
Herwig::MPIHandler::subProcesses
const SubHandlerList & subProcesses() const
Access the list of sub-process handlers.
Definition:
MPIHandler.h:306
Herwig::MPIHandler::beta_
InvEnergy2 beta_
slope to the non-perturbative pt spectrum: .
Definition:
MPIHandler.h:507
Herwig::MPIHandler::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::MPIHandler::EEparamA_
Energy EEparamA_
Parameters for the energy extrapolation formula.
Definition:
MPIHandler.h:574
Herwig::MPIHandler::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::MPIHandler::currentHandler
static const MPIHandler * currentHandler()
Return the current handler.
Definition:
MPIHandler.h:235
Herwig::MPIHandler::operator=
MPIHandler & operator=(const MPIHandler &)=delete
The assignment operator is private and must never be called.
Herwig::MPIHandler::initialize
virtual void initialize()
Initialize this Multiple Interaction handler and all related objects needed to generate additional ev...
Herwig::MPIHandler::ProcessHandlerList
vector< ProHdlPtr > ProcessHandlerList
A vector of ProcessHandlers.
Definition:
MPIHandler.h:70
Herwig::MPIHandler::beamOK
virtual bool beamOK() const
Return true or false depending on the generator setup.
Herwig::MPIHandler::theCuts
CutsList theCuts
The kinematical cuts used for this collision handler.
Definition:
MPIHandler.h:428
Herwig::MPIHandler::MPair
pair< unsigned int, unsigned int > MPair
A pair of multiplicities: hard, soft.
Definition:
MPIHandler.h:76
Herwig::MPIHandler::slopeExp
InvEnergy2 slopeExp() const
Returns the value of the elastic slope for the current CMenergy.
Herwig::MPIHandler::theHandler
tEHPtr theHandler
A pointer to the EventHandler that calls us.
Definition:
MPIHandler.h:418
Herwig::MPIHandler::additionalMultiplicities_
vector< int > additionalMultiplicities_
Variable to store the multiplicity of the second hard process.
Definition:
MPIHandler.h:451
Herwig::MPIHandler::beta
virtual InvEnergy2 beta() const
Return the slope of the soft pt spectrum as calculated.
Definition:
MPIHandler.h:258
Herwig::MPIHandler::invRadius_
Energy2 invRadius_
Inverse hadron Radius squared .
Definition:
MPIHandler.h:517
Herwig::MPIHandler::subProcesses
SubHandlerList & subProcesses()
Access the list of sub-process handlers.
Definition:
MPIHandler.h:312
Herwig::MPIHandler::theProcessHandlers
ProcessHandlerList theProcessHandlers
List of ProcessHandler used to sample different processes independently.
Definition:
MPIHandler.h:433
Herwig::MPIHandler::softInt
virtual bool softInt() const
Return true or false depending on whether soft interactions are enabled.
Definition:
MPIHandler.h:106
Herwig::MPIHandler::Probs
void Probs(XSVector UEXSecs)
Method to calculate the individual probabilities for N scatters in the event.
Herwig::MPIHandler::multiplicity
virtual unsigned int multiplicity(unsigned int sel=0)
Sample from the pretabulated multiplicity distribution.
Herwig::MPIHandler::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::MPIHandler::algorithm_
int algorithm_
Switch to be set from outside to determine the algorithm used for UE activity.
Definition:
MPIHandler.h:512
Herwig::MPIHandler::Ptmin
virtual Energy Ptmin() const
Return the ptmin parameter of the model.
Definition:
MPIHandler.h:247
Herwig::MPIHandler::processHandlers
ProcessHandlerList & processHandlers()
Access the list of sub-process handlers.
Definition:
MPIHandler.h:333
Herwig::MPIHandler::processHandlers
const ProcessHandlerList & processHandlers() const
Access the list of sub-process handlers.
Definition:
MPIHandler.h:327
Herwig::MPIHandler::clean
virtual void clean()
Clean up the XCombs from our subprocesses after each event.
Herwig::MPIHandler::inelasticXSec
CrossSection inelasticXSec() const
Return the inelastic cross section.
Definition:
MPIHandler.h:198
Herwig::MPIHandler::totalXSecExp_
CrossSection totalXSecExp_
Variable to store the total pp cross section (assuming rho=0!) as measured at LHC.
Definition:
MPIHandler.h:495
Herwig::MPIHandler::theMultiplicities
Selector< MPair > theMultiplicities
A ThePEG::Selector where the individual Probabilities P_N are stored and the actual Multiplicities ca...
Definition:
MPIHandler.h:439
Herwig::MPIHandler::totalXSecExp
CrossSection totalXSecExp() const
Returns the total cross section for the current CMenergy.
Herwig::MPIHandler::maxScatters_
static const unsigned int maxScatters_
Maximum number of scatters.
Definition:
MPIHandler.h:50
Herwig::MPIHandler::XSVector
vector< CrossSection > XSVector
A vector of cross sections.
Definition:
MPIHandler.h:73
Herwig::MPIHandler::softMultiplicity
virtual unsigned int softMultiplicity() const
Get the soft multiplicity from the pretabulated multiplicity distribution.
Definition:
MPIHandler.h:113
Herwig::MPIHandler::identicalToUE_
int identicalToUE_
Variable to store the information, which process is identical to the UE one (QCD dijets).
Definition:
MPIHandler.h:460
Herwig::MPIHandler::Algorithm
virtual int Algorithm() const
Return theAlgorithm.
Definition:
MPIHandler.h:242
Herwig::MPIHandler::cuts
CutsList & cuts()
Access the list of cuts.
Definition:
MPIHandler.h:322
Herwig::MPIHandler::DLmode_
unsigned int DLmode_
Switch to determine which Donnachie & Landshoff parametrization should be used.
Definition:
MPIHandler.h:548
Herwig::MPIHandler::colourDisrupt_
double colourDisrupt_
Variable to store the relative number of colour disrupted connections to additional subprocesses.
Definition:
MPIHandler.h:530
Herwig::MPIHandler::avgNhard_
double avgNhard_
Variable to store the average hard multiplicity.
Definition:
MPIHandler.h:553
Herwig::MPIHandler::generate
virtual tStdXCombPtr generate(unsigned int sel=0)
Select a StandardXComb according to it's weight.
Herwig::MPIHandler::slopeDiff
InvEnergy2 slopeDiff(CrossSection softXSec, Energy2 softMu2=ZERO) const
Difference of the calculated elastic slope and the experimental one from slopeExp.
Herwig::MPIHandler::softMult_
unsigned int softMult_
Variable to store the soft multiplicity generated for a event.
Definition:
MPIHandler.h:446
Herwig::MPIHandler::totalXSecDiff
CrossSection totalXSecDiff(CrossSection softXSec, Energy2 softMu2=ZERO) const
Difference of the calculated total cross section and the experimental one from totalXSecExp.
Herwig::MPIHandler::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::MPIHandler::inelXSec_
CrossSection inelXSec_
Variable to store the inelastic cross section.
Definition:
MPIHandler.h:487
Herwig::MPIHandler::Ptmin_
Energy Ptmin_
Variable to store the parameter ptmin.
Definition:
MPIHandler.h:472
Herwig::MPIHandler::softMu2_
Energy2 softMu2_
Variable to store the soft radius, that is calculated during initialization for the two-component mod...
Definition:
MPIHandler.h:501
Herwig::MPIHandler::numSubProcs_
unsigned int numSubProcs_
Member variable to store the actual number of separate SubProcesses.
Definition:
MPIHandler.h:522
Herwig::MPIHandler::statistics
void statistics() const
Write out accumulated statistics about integrated cross sections.
Herwig::MPIHandler::hardXSec_
CrossSection hardXSec_
Variable to store the hard cross section above ptmin.
Definition:
MPIHandler.h:477
Herwig::MPIHandler::CutsList
vector< CutsPtr > CutsList
A vector of Cuts.
Definition:
MPIHandler.h:67
Herwig::MPIHandler::eventHandler
tEHPtr eventHandler() const
Return the ThePEG::EventHandler assigned to this handler.
Definition:
MPIHandler.h:230
Herwig::MPIHandler::theSubProcesses
SubHandlerList theSubProcesses
The list of SubProcessHandlers.
Definition:
MPIHandler.h:423
Herwig::MPIHandler::diffractiveXSec
CrossSection diffractiveXSec() const
Return the diffractive cross section assumed by the model.
Definition:
MPIHandler.h:214
Herwig::MPIHandler::energyExtrapolation_
unsigned int energyExtrapolation_
Flag to store whether to calculate the minimal UE pt according to an extrapolation formula or whether...
Definition:
MPIHandler.h:569
Herwig::MPIHandler::softXSec_
CrossSection softXSec_
Variable to store the final soft cross section below ptmin.
Definition:
MPIHandler.h:482
Herwig::MPIHandler::PtOfQCDProc_
Energy PtOfQCDProc_
Variable to store the minimal pt of the process that is identical to the UE one.
Definition:
MPIHandler.h:467
Herwig::MPIHandler::MultDistribution
void MultDistribution(string filename) const
Debug method to check the individual probabilities.
Herwig::MPIHandler::additionalHardProcs
virtual unsigned int additionalHardProcs() const
Return the number of additional "hard" processes ( = multiple parton scattering)
Definition:
MPIHandler.h:276
Herwig::MPIHandler::softXSec
CrossSection softXSec() const
Return the soft cross section below ptmin.
Definition:
MPIHandler.h:193
Herwig::MPIHandler::poisson
double poisson(Length b, CrossSection sigma, unsigned int N, Energy2 mu2=ZERO) const
Method to calculate the poisson probability for expectation value , and multiplicity N.
Herwig::MPIHandler::OverlapFunction
InvArea OverlapFunction(Length b, Energy2 mu2=ZERO) const
Return the value of the Overlap function A(b) for a given impact parameter b.
Herwig::MPIHandler::PtForVeto
virtual Energy PtForVeto() const
Return the pt Cutoff of the Interaction that is identical to the UE one.
Definition:
MPIHandler.h:270
Herwig::MPIHandler::diffratio_
double diffratio_
Parameters to set the fraction of diffractive cross section in the inelastic cross section.
Definition:
MPIHandler.h:584
Herwig::MPIHandler::SubHandlerList
vector< SubHdlPtr > SubHandlerList
A vector of SubProcessHandlers.
Definition:
MPIHandler.h:64
Herwig::MPIHandler::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::MPIHandler::softInt_
bool softInt_
Flag to store whether soft interactions, i.e.
Definition:
MPIHandler.h:536
Herwig::MPIHandler::overrideUECuts
void overrideUECuts()
Calculate the minimal transverse momentum from the extrapolation.
Herwig::MPIHandler::currentHandler_
static MPIHandler * currentHandler_
The current handler.
Definition:
MPIHandler.h:563
Herwig::MPIHandler::statLevel
int statLevel() const
The level of statistics.
Definition:
MPIHandler.h:183
Herwig::MPIHandler::finalize
virtual void finalize()
Finalize this Multiple Interaction handler and all related objects needed to generate additional even...
Herwig::MPIHandler::MPIHandler
MPIHandler()
The default constructor.
Definition:
MPIHandler.h:81
Herwig::MPIHandler::hardXSec
CrossSection hardXSec() const
Return the hard cross section above ptmin.
Definition:
MPIHandler.h:188
Herwig::MPIHandler::cuts
const CutsList & cuts() const
Access the list of cuts.
Definition:
MPIHandler.h:317
Herwig::MPIHandler::colourDisrupt
virtual double colourDisrupt() const
Return the fraction of colour disrupted connections to the suprocesses.
Definition:
MPIHandler.h:282
Herwig::MPIHandler::twoComp_
bool twoComp_
Flag to steer wheather the soft part has a different radius, that will be dynamically fixed.
Definition:
MPIHandler.h:542
Herwig::UEBase
Abstract base class used to minimize the dependence between MPIHandler and all Shower classes.
Definition:
UEBase.h:25
ThePEG::Exception
ThePEG::Exception::runerror
runerror
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::Selector
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::LengthDiff
decltype(mm/GeV2) LengthDiff
Typedef for derivative of the length.
Definition:
MPIHandler.h:782
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::ZERO
constexpr ZeroUnit ZERO
ThePEG::tEHPtr
ThePEG::Ptr< EventHandler >::transient_pointer tEHPtr
ThePEG::sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
Herwig::Eikonalization
A struct for the eikonalization of the inclusive cross section.
Definition:
MPIHandler.h:834
Herwig::Eikonalization::softMu2_
Energy2 softMu2_
The inv radius^2 of the soft interactions.
Definition:
MPIHandler.h:885
Herwig::Eikonalization::Eikonalization
Eikonalization(tcMPIHPtr handler, int option, CrossSection hard, CrossSection soft=0 *millibarn, Energy2 softMu2=ZERO)
The constructor.
Definition:
MPIHandler.h:850
Herwig::Eikonalization::hardXSec_
CrossSection hardXSec_
The hard cross section to be eikonalized.
Definition:
MPIHandler.h:875
Herwig::Eikonalization::theoption
int theoption
A flag to switch between the calculation of total and inelastic cross section or calculations for the...
Definition:
MPIHandler.h:870
Herwig::Eikonalization::softXSec_
CrossSection softXSec_
The soft cross section to be eikonalized.
Definition:
MPIHandler.h:880
Herwig::Eikonalization::operator()
Length operator()(Length argument) const
Get the function value.
Herwig::Eikonalization::theHandler
tcMPIHPtr theHandler
Pointer to the Handler that calls this integrand.
Definition:
MPIHandler.h:864
Herwig::GSLHelper
from, which can then be used by the GSL algorithms that need a pointer to a function and don't know a...
Definition:
GSLHelper.h:32
Herwig::GSLHelper< CrossSection, CrossSection >::ArgType
CrossSection ArgType
Typedef for Agrument type.
Definition:
GSLHelper.h:49
Herwig::GSLHelper< CrossSection, CrossSection >::ValType
CrossSection ValType
Typedef for Value type.
Definition:
GSLHelper.h:54
Herwig::TotalXSecBisection
A struct for the root finding that is necessary to determine the soft cross section that is needed to...
Definition:
MPIHandler.h:740
Herwig::TotalXSecBisection::handler_
tcMPIHPtr handler_
The handler.
Definition:
MPIHandler.h:770
Herwig::TotalXSecBisection::softMu2_
Energy2 softMu2_
Definition:
MPIHandler.h:775
Herwig::TotalXSecBisection::vUnit
virtual ValType vUnit() const
provide the actual units of use
Definition:
MPIHandler.h:760
Herwig::TotalXSecBisection::TotalXSecBisection
TotalXSecBisection(tcMPIHPtr handler, Energy2 softMu2=ZERO)
Constructor.
Definition:
MPIHandler.h:748
Herwig::TotalXSecBisection::aUnit
virtual ArgType aUnit() const
otherwise rounding errors may get significant
Definition:
MPIHandler.h:763
Herwig::TotalXSecBisection::operator()
CrossSection operator()(CrossSection argument) const
operator to return the cross section
Definition:
MPIHandler.h:755
Herwig::betaBisection
A struct for the root finding that is necessary to determine the slope of the soft pt spectrum to mat...
Definition:
MPIHandler.h:667
Herwig::betaBisection::ptmin_
Energy ptmin_
pt cutoff
Definition:
MPIHandler.h:705
Herwig::betaBisection::operator()
virtual Energy2 operator()(InvEnergy2 beta) const
Operator that is used inside the GSLBisection class.
Definition:
MPIHandler.h:682
Herwig::betaBisection::softXSec_
CrossSection softXSec_
soft cross section
Definition:
MPIHandler.h:699
Herwig::betaBisection::vUnit
virtual ValType vUnit() const
provide the actual units of use
Definition:
MPIHandler.h:691
Herwig::betaBisection::aUnit
virtual ArgType aUnit() const
provide the actual units of use
Definition:
MPIHandler.h:694
Herwig::betaBisection::betaBisection
betaBisection(CrossSection soft, DiffXSec dsig, Energy ptmin)
Constructor.
Definition:
MPIHandler.h:676
Herwig::betaBisection::dsig_
DiffXSec dsig_
dsigma/dp_T^2 at ptmin
Definition:
MPIHandler.h:702
Herwig::slopeAndTotalXSec
A struct for the 2D root finding that is necessary to determine the soft cross section and the soft r...
Definition:
MPIHandler.h:611
Herwig::slopeAndTotalXSec::handler_
tcMPIHPtr handler_
Pointer to the handler.
Definition:
MPIHandler.h:659
Herwig::slopeAndTotalXSec::aUnit
virtual ArgType aUnit() const
otherwise rounding errors may get significant
Definition:
MPIHandler.h:646
Herwig::slopeAndTotalXSec::vUnit2
ValType2 vUnit2() const
provide the actual units of use
Definition:
MPIHandler.h:649
Herwig::slopeAndTotalXSec::vUnit
virtual ValType vUnit() const
provide the actual units of use
Definition:
MPIHandler.h:643
Herwig::slopeAndTotalXSec::slopeAndTotalXSec
slopeAndTotalXSec(tcMPIHPtr handler)
Constructor.
Definition:
MPIHandler.h:618
Herwig::slopeAndTotalXSec::ValType2
InvEnergy2 ValType2
second value type
Definition:
MPIHandler.h:624
Herwig::slopeAndTotalXSec::f2
InvEnergy2 f2(ArgType softXSec, ArgType2 softMu2) const
second element of the vector like function to find root for
Definition:
MPIHandler.h:638
Herwig::slopeAndTotalXSec::f1
CrossSection f1(ArgType softXSec, ArgType2 softMu2) const
first element of the vector like function to find root for
Definition:
MPIHandler.h:630
Herwig::slopeAndTotalXSec::ArgType2
Energy2 ArgType2
second argument type
Definition:
MPIHandler.h:621
Herwig::slopeAndTotalXSec::aUnit2
ArgType2 aUnit2() const
otherwise rounding errors may get significant
Definition:
MPIHandler.h:652
Herwig::slopeBisection
A struct for the root finding that is necessary to determine the soft cross section and soft mu2 that...
Definition:
MPIHandler.h:713
Herwig::slopeBisection::softXSec
CrossSection softXSec() const
Return the soft cross section that has been calculated.
Definition:
MPIHandler.h:726
Herwig::slopeBisection::operator()
InvEnergy2 operator()(Energy2 arg) const
Return the difference of the calculated elastic slope to the experimental one for a given value of th...
Herwig::slopeBisection::slopeBisection
slopeBisection(tcMPIHPtr handler)
Constructor.
Definition:
MPIHandler.h:716
Herwig::slopeBisection::handler_
tcMPIHPtr handler_
const pointer to the MPIHandler to give access to member functions.
Definition:
MPIHandler.h:730
Herwig::slopeBisection::softXSec_
CrossSection softXSec_
soft cross section that is determined on the fly.
Definition:
MPIHandler.h:732
Herwig::slopeInt
A struct for the integrand for the slope.
Definition:
MPIHandler.h:787
Herwig::slopeInt::handler_
tcMPIHPtr handler_
Pointer to the Handler that calls this integrand.
Definition:
MPIHandler.h:812
Herwig::slopeInt::slopeInt
slopeInt(tcMPIHPtr handler, CrossSection hard, CrossSection soft=0 *millibarn, Energy2 softMu2=ZERO)
Constructor.
Definition:
MPIHandler.h:796
Herwig::slopeInt::softXSec_
CrossSection softXSec_
The soft cross section to be eikonalized.
Definition:
MPIHandler.h:822
Herwig::slopeInt::operator()
ValType operator()(ArgType arg) const
Operator to return the answer.
Herwig::slopeInt::hardXSec_
CrossSection hardXSec_
The hard cross section to be eikonalized.
Definition:
MPIHandler.h:817
Herwig::slopeInt::softMu2_
Energy2 softMu2_
The inv radius^2 of the soft interactions.
Definition:
MPIHandler.h:827
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6