ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Generators
Pythia8_i
src
UserProcesses
Sigma2qqbar2lStarlStarBar.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// Double excited lepton production
6
7
#include "
Pythia8_i/UserProcessFactory.h
"
8
9
#include <iostream>
10
#include <vector>
11
12
namespace
Pythia8
{
13
class
Sigma2qqbar2lStarlStarBar
;
14
class
Sigma2qqbar2nueStarnueStarBar
;
15
class
Sigma2qqbar2numuStarnumuStarBar
;
16
class
Sigma2qqbar2nutauStarnutauStarBar
;
17
class
Sigma2qqbar2eStareStarBar
;
18
class
Sigma2qqbar2muStarmuStarBar
;
19
class
Sigma2qqbar2tauStartauStarBar
;
20
}
21
22
// This one line registers this process with the factory
23
// An instance of this process can be created with
24
// UserProcessFactory::create("qqbar2lStarlStarBar")
25
Pythia8_UserProcess::UserProcessFactory::Creator<Pythia8::Sigma2qqbar2nueStarnueStarBar>
qqbar2nueStarlnuetarBarCreator
(
"qqbar2nueStarnueStarBar"
);
26
Pythia8_UserProcess::UserProcessFactory::Creator<Pythia8::Sigma2qqbar2numuStarnumuStarBar>
qqbar2numuStarlnumutarBarCreator
(
"qqbar2numuStarnumuStarBar"
);
27
Pythia8_UserProcess::UserProcessFactory::Creator<Pythia8::Sigma2qqbar2nutauStarnutauStarBar>
qqbar2nutauStarlnutautarBarCreator
(
"qqbar2nutauStarnutauStarBar"
);
28
Pythia8_UserProcess::UserProcessFactory::Creator<Pythia8::Sigma2qqbar2eStareStarBar>
qqbar2eStarletarBarCreator
(
"qqbar2eStareStarBar"
);
29
Pythia8_UserProcess::UserProcessFactory::Creator<Pythia8::Sigma2qqbar2muStarmuStarBar>
qqbar2muStarlmutarBarCreator
(
"qqbar2muStarmuStarBar"
);
30
Pythia8_UserProcess::UserProcessFactory::Creator<Pythia8::Sigma2qqbar2tauStartauStarBar>
qqbar2tauStarltautarBarCreator
(
"qqbar2tauStartauStarBar"
);
31
32
namespace
Pythia8
{
33
34
//**************************************************************************
35
36
// Sigma2qqbar2lStarlStarBar class.
37
// Cross section for q qbar -> lStar lStarBar
38
39
// A derived class for q qbar -> lStar lStarBar
40
41
class
Sigma2qqbar2lStarlStarBar
:
public
Sigma2Process {
42
43
public
:
44
//Constructor.
45
Sigma2qqbar2lStarlStarBar
(
int
idlIn) :
idl
(idlIn),
46
idRes
(0),
codeSave
(0),
47
Lambda
(0.),
preFac
(0.),
openFracPos
(0.),
openFracNeg
(0.),
sigma
(0.),
48
m2ResTimes4
(0.){};
49
50
// Initialize process.
51
52
void
initProc
() {
53
54
// Set up process properties from the chosen lepton flavour.
55
idRes
= 4000000 +
idl
;
56
codeSave
= 4040 +
idl
;
57
if
(
idl
== 11)
nameSave
=
"q qbar -> e^*+- e^*-+"
;
58
else
if
(
idl
== 12)
nameSave
=
"q qbar -> nu_e^* nu_e^*bar"
;
59
else
if
(
idl
== 13)
nameSave
=
"q qbar -> mu^*+- mu^*-+"
;
60
else
if
(
idl
== 14)
nameSave
=
"q qbar -> nu_mu^* nu_mu^*bar"
;
61
else
if
(
idl
== 15)
nameSave
=
"q qbar -> tau^*+- tau^*-+"
;
62
else
nameSave
=
"q qbar -> nu_tau^* nu_tau^*bar"
;
63
64
// Secondary open width fractions.
65
openFracPos
= particleDataPtr->resOpenFrac(
idRes
);
66
openFracNeg
= particleDataPtr->resOpenFrac(-
idRes
);
67
68
// Locally stored properties and couplings.
69
Lambda
= settingsPtr->parm(
"ExcitedFermion:Lambda"
);
70
preFac
= (
M_PI
/ pow4(
Lambda
)) * (
openFracPos
+
openFracNeg
) / 9.;
71
72
double
mRes = particleDataPtr->m0(
idRes
);
73
m2ResTimes4
= mRes*mRes*4.;
74
}
75
76
//*********
77
78
// Evaluate sigmaHat(sHat).
79
virtual
double
sigmaHat
() {
return
sigma
;}
80
81
// Evaluate sigmaHat(sHat), part independent of incoming flavour.
82
83
void
sigmaKin
() {
84
85
// use assumption that sigma is multiplied later with sH*(1-s3/sH)
86
87
//sigma = preFac * sqrtpos( 1.- m2ResTimes4/sH );
88
sigma
=
preFac
* sqrtpos( 1.- 4.*s3/sH );
89
90
}
91
92
//*********
93
94
// Select identity, colour and anticolour.
95
96
void
setIdColAcol
() {
97
98
// Flavours: both lepton and antilepton are excited.
99
setId( id1, id2,
idRes
, -
idRes
);
100
//if (id1 < 0) swapTU = true; // OI how is this used?
101
102
// Colour flow trivial.
103
if
(id1 > 0) setColAcol( 1, 0, 0, 1, 0, 0, 0, 0);
104
else
setColAcol( 0, 1, 1, 0, 0, 0, 0, 0);
105
106
}
107
108
//**************************************************************************
109
110
double
weightDecay
(
Event
&
process
,
int
iResBeg,
111
int
iResEnd) {
112
113
// l* should sit in entry 5. and 6 Sequential Z/W decay assumed isotropic.
114
if
(iResBeg != 5 && iResEnd != 5 && iResBeg != 6 && iResEnd != 6 )
return
1.;
115
116
// Phase space factors.
117
double
mr1 =
pow2
(
process
[7].m() /
process
[5].m());
118
double
mr2 =
pow2
(
process
[8].m() /
process
[5].m());
119
120
// Reconstruct decay angle in l* CoM frame.
121
int
idAbs3 =
process
[7].idAbs();
122
Vec4 pLStarCom = (idAbs3 < 20) ?
process
[8].p() :
process
[7].p();
123
pLStarCom.bstback(
process
[5].p());
124
double
cosThe = costheta(pLStarCom,
process
[5].p());
125
double
wt = 1.;
126
127
// Decay, l* -> l + gamma/Z^0/W^+-).
128
int
idBoson = (idAbs3 < 20) ?
process
[8].idAbs() :
process
[7].idAbs();
129
if
(idBoson == 22) {
130
wt = 0.5 * (1. + cosThe);
131
}
else
if
(idBoson == 23 || idBoson == 24) {
132
double
mrB = (idAbs3 < 20) ? mr2 : mr1;
133
double
kTrm = 0.5 * (mrB * (1. - cosThe));
134
wt = (1. + cosThe + kTrm) / (2 + mrB);
135
}
136
137
// Done.
138
return
wt;
139
}
140
141
// Info on the subprocess.
142
virtual
std::string
name
()
const
{
return
nameSave
;}
143
virtual
int
code
()
const
{
return
codeSave
;}
144
virtual
std::string
inFlux
()
const
{
return
"qqbarSame"
;}
145
virtual
int
id3Mass
()
const
{
return
std::abs(
idRes
);}
146
virtual
int
id4Mass
()
const
{
return
std::abs(
idRes
);}
147
148
virtual
bool
convertM2
()
const
{
return
false
;}
//true is only suitable for resonance production pp->A->ll
149
virtual
bool
convert2mb
()
const
{
return
true
;}
150
151
// Parameters set at initialization or for current kinematics.
152
int
idl
,
idRes
,
codeSave
;
153
std::string
nameSave
;
154
double
Lambda
,
preFac
,
openFracPos
,
openFracNeg
,
sigma
;
155
double
m2ResTimes4
;
156
};
157
158
159
//**************************************************************************
160
class
Sigma2qqbar2nueStarnueStarBar
:
public
Sigma2qqbar2lStarlStarBar
{
161
public
:
162
Sigma2qqbar2nueStarnueStarBar
() :
Sigma2qqbar2lStarlStarBar
(12) {}
163
};
164
class
Sigma2qqbar2numuStarnumuStarBar
:
public
Sigma2qqbar2lStarlStarBar
{
165
public
:
166
Sigma2qqbar2numuStarnumuStarBar
() :
Sigma2qqbar2lStarlStarBar
(14) {}
167
};
168
class
Sigma2qqbar2nutauStarnutauStarBar
:
public
Sigma2qqbar2lStarlStarBar
{
169
public
:
170
Sigma2qqbar2nutauStarnutauStarBar
() :
Sigma2qqbar2lStarlStarBar
(16) {}
171
};
172
class
Sigma2qqbar2eStareStarBar
:
public
Sigma2qqbar2lStarlStarBar
{
173
public
:
174
Sigma2qqbar2eStareStarBar
() :
Sigma2qqbar2lStarlStarBar
(11) {}
175
};
176
class
Sigma2qqbar2muStarmuStarBar
:
public
Sigma2qqbar2lStarlStarBar
{
177
public
:
178
Sigma2qqbar2muStarmuStarBar
() :
Sigma2qqbar2lStarlStarBar
(13) {}
179
};
180
181
class
Sigma2qqbar2tauStartauStarBar
:
public
Sigma2qqbar2lStarlStarBar
{
182
public
:
183
Sigma2qqbar2tauStartauStarBar
() :
Sigma2qqbar2lStarlStarBar
(15) {}
184
};
185
186
}
M_PI
#define M_PI
Definition
ActiveFraction.h:14
qqbar2nutauStarlnutautarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2nutauStarnutauStarBar > qqbar2nutauStarlnutautarBarCreator("qqbar2nutauStarnutauStarBar")
qqbar2muStarlmutarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2muStarmuStarBar > qqbar2muStarlmutarBarCreator("qqbar2muStarmuStarBar")
qqbar2eStarletarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2eStareStarBar > qqbar2eStarletarBarCreator("qqbar2eStareStarBar")
qqbar2tauStarltautarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2tauStartauStarBar > qqbar2tauStarltautarBarCreator("qqbar2tauStartauStarBar")
qqbar2numuStarlnumutarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2numuStarnumuStarBar > qqbar2numuStarlnumutarBarCreator("qqbar2numuStarnumuStarBar")
qqbar2nueStarlnuetarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2nueStarnueStarBar > qqbar2nueStarlnuetarBarCreator("qqbar2nueStarnueStarBar")
pow2
static const std::map< unsigned int, unsigned int > pow2
Definition
TriggerProcessor.cxx:23
UserProcessFactory.h
Pythia8::Sigma2qqbar2eStareStarBar
Definition
Sigma2qqbar2lStarlStarBar.cxx:172
Pythia8::Sigma2qqbar2eStareStarBar::Sigma2qqbar2eStareStarBar
Sigma2qqbar2eStareStarBar()
Definition
Sigma2qqbar2lStarlStarBar.cxx:174
Pythia8::Sigma2qqbar2lStarlStarBar
Definition
Sigma2qqbar2lStarlStarBar.cxx:41
Pythia8::Sigma2qqbar2lStarlStarBar::code
virtual int code() const
Definition
Sigma2qqbar2lStarlStarBar.cxx:143
Pythia8::Sigma2qqbar2lStarlStarBar::convert2mb
virtual bool convert2mb() const
Definition
Sigma2qqbar2lStarlStarBar.cxx:149
Pythia8::Sigma2qqbar2lStarlStarBar::setIdColAcol
void setIdColAcol()
Definition
Sigma2qqbar2lStarlStarBar.cxx:96
Pythia8::Sigma2qqbar2lStarlStarBar::Lambda
double Lambda
Definition
Sigma2qqbar2lStarlStarBar.cxx:154
Pythia8::Sigma2qqbar2lStarlStarBar::codeSave
int codeSave
Definition
Sigma2qqbar2lStarlStarBar.cxx:152
Pythia8::Sigma2qqbar2lStarlStarBar::openFracNeg
double openFracNeg
Definition
Sigma2qqbar2lStarlStarBar.cxx:154
Pythia8::Sigma2qqbar2lStarlStarBar::preFac
double preFac
Definition
Sigma2qqbar2lStarlStarBar.cxx:154
Pythia8::Sigma2qqbar2lStarlStarBar::Sigma2qqbar2lStarlStarBar
Sigma2qqbar2lStarlStarBar(int idlIn)
Definition
Sigma2qqbar2lStarlStarBar.cxx:45
Pythia8::Sigma2qqbar2lStarlStarBar::weightDecay
double weightDecay(Event &process, int iResBeg, int iResEnd)
Definition
Sigma2qqbar2lStarlStarBar.cxx:110
Pythia8::Sigma2qqbar2lStarlStarBar::sigmaKin
void sigmaKin()
Definition
Sigma2qqbar2lStarlStarBar.cxx:83
Pythia8::Sigma2qqbar2lStarlStarBar::m2ResTimes4
double m2ResTimes4
Definition
Sigma2qqbar2lStarlStarBar.cxx:155
Pythia8::Sigma2qqbar2lStarlStarBar::inFlux
virtual std::string inFlux() const
Definition
Sigma2qqbar2lStarlStarBar.cxx:144
Pythia8::Sigma2qqbar2lStarlStarBar::name
virtual std::string name() const
Definition
Sigma2qqbar2lStarlStarBar.cxx:142
Pythia8::Sigma2qqbar2lStarlStarBar::sigma
double sigma
Definition
Sigma2qqbar2lStarlStarBar.cxx:154
Pythia8::Sigma2qqbar2lStarlStarBar::sigmaHat
virtual double sigmaHat()
Definition
Sigma2qqbar2lStarlStarBar.cxx:79
Pythia8::Sigma2qqbar2lStarlStarBar::openFracPos
double openFracPos
Definition
Sigma2qqbar2lStarlStarBar.cxx:154
Pythia8::Sigma2qqbar2lStarlStarBar::convertM2
virtual bool convertM2() const
Definition
Sigma2qqbar2lStarlStarBar.cxx:148
Pythia8::Sigma2qqbar2lStarlStarBar::id4Mass
virtual int id4Mass() const
Definition
Sigma2qqbar2lStarlStarBar.cxx:146
Pythia8::Sigma2qqbar2lStarlStarBar::initProc
void initProc()
Definition
Sigma2qqbar2lStarlStarBar.cxx:52
Pythia8::Sigma2qqbar2lStarlStarBar::nameSave
std::string nameSave
Definition
Sigma2qqbar2lStarlStarBar.cxx:153
Pythia8::Sigma2qqbar2lStarlStarBar::idl
int idl
Definition
Sigma2qqbar2lStarlStarBar.cxx:152
Pythia8::Sigma2qqbar2lStarlStarBar::id3Mass
virtual int id3Mass() const
Definition
Sigma2qqbar2lStarlStarBar.cxx:145
Pythia8::Sigma2qqbar2lStarlStarBar::idRes
int idRes
Definition
Sigma2qqbar2lStarlStarBar.cxx:152
Pythia8::Sigma2qqbar2muStarmuStarBar
Definition
Sigma2qqbar2lStarlStarBar.cxx:176
Pythia8::Sigma2qqbar2muStarmuStarBar::Sigma2qqbar2muStarmuStarBar
Sigma2qqbar2muStarmuStarBar()
Definition
Sigma2qqbar2lStarlStarBar.cxx:178
Pythia8::Sigma2qqbar2nueStarnueStarBar
Definition
Sigma2qqbar2lStarlStarBar.cxx:160
Pythia8::Sigma2qqbar2nueStarnueStarBar::Sigma2qqbar2nueStarnueStarBar
Sigma2qqbar2nueStarnueStarBar()
Definition
Sigma2qqbar2lStarlStarBar.cxx:162
Pythia8::Sigma2qqbar2numuStarnumuStarBar
Definition
Sigma2qqbar2lStarlStarBar.cxx:164
Pythia8::Sigma2qqbar2numuStarnumuStarBar::Sigma2qqbar2numuStarnumuStarBar
Sigma2qqbar2numuStarnumuStarBar()
Definition
Sigma2qqbar2lStarlStarBar.cxx:166
Pythia8::Sigma2qqbar2nutauStarnutauStarBar
Definition
Sigma2qqbar2lStarlStarBar.cxx:168
Pythia8::Sigma2qqbar2nutauStarnutauStarBar::Sigma2qqbar2nutauStarnutauStarBar
Sigma2qqbar2nutauStarnutauStarBar()
Definition
Sigma2qqbar2lStarlStarBar.cxx:170
Pythia8::Sigma2qqbar2tauStartauStarBar
Definition
Sigma2qqbar2lStarlStarBar.cxx:181
Pythia8::Sigma2qqbar2tauStartauStarBar::Sigma2qqbar2tauStartauStarBar
Sigma2qqbar2tauStartauStarBar()
Definition
Sigma2qqbar2lStarlStarBar.cxx:183
Pythia8_UserProcess::UserProcessFactory::Creator
Definition
UserProcessFactory.h:38
process
const std::string process
Definition
fbtTestBasics.cxx:76
Pythia8
Author: James Monk (jmonk@cern.ch).
Definition
IPythia8Custom.h:10
Event
Definition
trigbs_orderedMerge.cxx:42
Generated on
for ATLAS Offline Software by
1.17.0