herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Shower
QTilde
Base
PartnerFinder.h
1
// -*- C++ -*-
2
//
3
// PartnerFinder.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_PartnerFinder_H
10
#define HERWIG_PartnerFinder_H
11
//
12
// This is the declaration of the PartnerFinder class.
13
//
14
#include "Herwig/Shower/QTilde/ShowerConfig.h"
15
#include "ThePEG/Interface/Interfaced.h"
16
#include "PartnerFinder.fh"
17
18
namespace
Herwig
{
19
20
using namespace
ThePEG
;
21
25
typedef
pair<tShowerParticlePtr,tShowerParticlePtr>
ShowerPPair
;
26
45
class
PartnerFinder
:
public
Interfaced
{
46
47
public
:
48
52
PartnerFinder
() :
partnerMethod_
(0),
QEDPartner_
(0),
scaleChoice_
(0) {}
53
77
virtual
void
setInitialEvolutionScales
(
const
ShowerParticleVector
&particles,
78
const
bool
isDecayCase,
79
ShowerInteraction
,
80
const
bool
setPartners=
true
);
82
protected
:
83
90
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
91
96
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
98
99
100
public
:
101
108
void
persistentOutput
(
PersistentOStream
& os)
const
;
109
115
void
persistentInput
(
PersistentIStream
& is,
int
version);
117
124
static
void
Init
();
125
126
protected
:
127
135
virtual
void
setInitialQCDEvolutionScales
(
const
ShowerParticleVector
&particles,
136
const
bool
isDecayCase,
137
const
bool
setPartners=
true
);
138
142
virtual
void
setInitialQEDEvolutionScales
(
const
ShowerParticleVector
&particles,
143
const
bool
isDecayCase,
144
const
bool
setPartners=
true
);
145
149
virtual
void
setInitialEWEvolutionScales
(
const
ShowerParticleVector
&particles,
150
const
bool
isDecayCase,
151
const
bool
setPartners=
true
);
153
159
vector< pair<ShowerPartnerType, tShowerParticlePtr> >
160
findQCDPartners
(tShowerParticlePtr particle,
const
ShowerParticleVector
&particles);
161
167
vector< pair<double, tShowerParticlePtr> >
168
findQEDPartners
(tShowerParticlePtr particle,
const
ShowerParticleVector
&particles,
169
const
bool
isDecayCase);
170
171
public
:
177
vector< pair<double, tShowerParticlePtr> >
178
findEWPartners
(tShowerParticlePtr particle,
const
ShowerParticleVector
&particles,
179
const
bool
isDecayCase);
180
193
pair<Energy,Energy>
calculateInitialEvolutionScales
(
const
ShowerPPair
&,
194
const
bool
isDecayCase,
int
key=0);
195
199
pair<Energy,Energy>
calculateFinalFinalScales
(
const
Lorentz5Momentum & p1,
200
const
Lorentz5Momentum & p2,
int
key=0);
201
205
pair<Energy,Energy>
calculateInitialInitialScales
(
const
Lorentz5Momentum& p1,
206
const
Lorentz5Momentum& p2);
207
211
pair<Energy,Energy>
calculateInitialFinalScales
(
const
Lorentz5Momentum& pb,
const
Lorentz5Momentum& pc,
212
const
bool
isDecayCase);
213
214
216
217
protected
:
218
222
bool
weaklyInteracting
(
tcPDPtr
pd) {
223
long
id
= abs(pd->id());
224
return
(
id
==
ParticleID::Wplus
||
id
==
ParticleID::Z0
|| (
id
>=1 &&
id
<=6 ) || (
id
>=11 &&
id
<=16));
225
}
226
227
private
:
228
233
PartnerFinder
&
operator=
(
const
PartnerFinder
&) =
delete
;
234
235
private
:
236
240
int
partnerMethod_
;
241
245
int
QEDPartner_
;
246
250
int
scaleChoice_
;
251
252
};
253
254
}
255
256
#endif
/* HERWIG_PartnerFinder_H */
Herwig::PartnerFinder
This class is responsible of two related tasks:
Definition:
PartnerFinder.h:45
Herwig::PartnerFinder::calculateInitialInitialScales
pair< Energy, Energy > calculateInitialInitialScales(const Lorentz5Momentum &p1, const Lorentz5Momentum &p2)
Calculate the initial evolution scales given momenta.
Herwig::PartnerFinder::setInitialEWEvolutionScales
virtual void setInitialEWEvolutionScales(const ShowerParticleVector &particles, const bool isDecayCase, const bool setPartners=true)
Set initial scales for a EW interaction.
Herwig::PartnerFinder::setInitialQCDEvolutionScales
virtual void setInitialQCDEvolutionScales(const ShowerParticleVector &particles, const bool isDecayCase, const bool setPartners=true)
Members to set the scales for different interactions.
Herwig::PartnerFinder::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
PartnerFinder.h:90
Herwig::PartnerFinder::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::PartnerFinder::findQEDPartners
vector< pair< double, tShowerParticlePtr > > findQEDPartners(tShowerParticlePtr particle, const ShowerParticleVector &particles, const bool isDecayCase)
Find the QED partners.
Herwig::PartnerFinder::weaklyInteracting
bool weaklyInteracting(tcPDPtr pd)
Find weakling interacting particles.
Definition:
PartnerFinder.h:222
Herwig::PartnerFinder::scaleChoice_
int scaleChoice_
Choice of the scale.
Definition:
PartnerFinder.h:250
Herwig::PartnerFinder::setInitialQEDEvolutionScales
virtual void setInitialQEDEvolutionScales(const ShowerParticleVector &particles, const bool isDecayCase, const bool setPartners=true)
Set initial scales for a QED interaction.
Herwig::PartnerFinder::calculateInitialFinalScales
pair< Energy, Energy > calculateInitialFinalScales(const Lorentz5Momentum &pb, const Lorentz5Momentum &pc, const bool isDecayCase)
Calculate the initial evolution scales given momenta.
Herwig::PartnerFinder::setInitialEvolutionScales
virtual void setInitialEvolutionScales(const ShowerParticleVector &particles, const bool isDecayCase, ShowerInteraction, const bool setPartners=true)
Given in input a collection of particles (ShowerParticle objects), each of these methods set the init...
Herwig::PartnerFinder::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::PartnerFinder::partnerMethod_
int partnerMethod_
Method for choosing colour partner.
Definition:
PartnerFinder.h:240
Herwig::PartnerFinder::calculateFinalFinalScales
pair< Energy, Energy > calculateFinalFinalScales(const Lorentz5Momentum &p1, const Lorentz5Momentum &p2, int key=0)
Calculate the initial evolution scales given momenta.
Herwig::PartnerFinder::findEWPartners
vector< pair< double, tShowerParticlePtr > > findEWPartners(tShowerParticlePtr particle, const ShowerParticleVector &particles, const bool isDecayCase)
Find the EW partners.
Herwig::PartnerFinder::calculateInitialEvolutionScales
pair< Energy, Energy > calculateInitialEvolutionScales(const ShowerPPair &, const bool isDecayCase, int key=0)
Given a pair of particles, supposedly partners w.r.t.
Herwig::PartnerFinder::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
PartnerFinder.h:96
Herwig::PartnerFinder::QEDPartner_
int QEDPartner_
Choice for the QED radiation partner.
Definition:
PartnerFinder.h:245
Herwig::PartnerFinder::PartnerFinder
PartnerFinder()
The default constructor.
Definition:
PartnerFinder.h:52
Herwig::PartnerFinder::operator=
PartnerFinder & operator=(const PartnerFinder &)=delete
The assignment operator is private and must never be called.
Herwig::PartnerFinder::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::PartnerFinder::findQCDPartners
vector< pair< ShowerPartnerType, tShowerParticlePtr > > findQCDPartners(tShowerParticlePtr particle, const ShowerParticleVector &particles)
Find the QCD partners.
ThePEG::Interfaced
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig::ShowerInteraction
ShowerInteraction
Handy header file to be included in all Shower classes.
Definition:
ShowerInteraction.h:23
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::ShowerParticleVector
vector< ShowerParticlePtr > ShowerParticleVector
A Vector of ShowerParticle pointers.
Definition:
ShowerConfig.h:54
Herwig::ShowerPPair
pair< tShowerParticlePtr, tShowerParticlePtr > ShowerPPair
typedef of a pair of particle for calculating the evolution scales
Definition:
PartnerFinder.h:25
ThePEG::ParticleID::Z0
Z0
ThePEG::ParticleID::Wplus
Wplus
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6