ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Generators
Pythia8_i
src
Pythia8Custom
UserPhotonFlux.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
#include "
UserPhotonFlux.h
"
5
6
StatusCode
UserPhotonFlux::initialize
() {
7
ATH_MSG_INFO
(
"Initialisation of "
<< name() <<
" was successful"
);
8
return
StatusCode::SUCCESS;
9
}
10
11
StatusCode
UserPhotonFlux::InitializePythiaInfo
(Pythia8::Pythia& pythia)
const
{
12
13
ATH_MSG_INFO
(
"InitializePythiaInfo "
<< name() <<
" with process "
<<
m_process
);
14
if
(
m_process
== 1) {
15
PDFPtr
photonFlux =
PNEW
(
Lepton2gamma2
, -11);
16
pythia.setPhotonFluxPtr(std::move(photonFlux), 0);
17
return
StatusCode::SUCCESS;
18
}
19
else
if
(
m_process
==2 ||
m_process
==3) {
20
ATH_MSG_INFO
(
"InitializePythiaInfo "
<< name() <<
" using nuclear photon flux with Z = "
<<
m_flux_Z
<<
", bmin = "
<<
m_flux_min_b
);
21
Nucleus2gammaPtr
photonFlux =
PNEW
(
Nucleus2gamma2
,-11);
22
photonFlux->
setZ
(
m_flux_Z
);
23
photonFlux->
setMinB
(
m_flux_min_b
);
24
photonFlux->
setMinX
(
m_flux_min_x
);
25
Nucleus2gammaPtr
photonFlux2 =
nullptr
;
PNEW
(
Nucleus2gamma2
,-11);
26
if
(
m_process
==3) photonFlux2=photonFlux;
27
pythia.setPhotonFluxPtr(photonFlux, photonFlux2);
28
return
StatusCode::SUCCESS;
29
}
30
else
{
31
ATH_MSG_ERROR
(
"Unknown process: "
<<
m_process
);
32
return
StatusCode::FAILURE;
33
}
34
35
}
36
37
StatusCode
UserPhotonFlux::finalize
(){
38
ATH_MSG_INFO
(
"Finalize"
<< name());
39
return
StatusCode::SUCCESS;
40
}
41
42
43
StatusCode
UserPhotonFlux::ModifyPythiaEvent
(Pythia8::Pythia&
/*pythia*/
)
const
{
44
return
StatusCode::SUCCESS;
45
}
46
47
double
UserPhotonFlux::CrossSectionScaleFactor
()
const
{
48
ATH_MSG_INFO
(
"CrossSectionScaleFactor"
<< name());
49
return
1.0;
50
}
51
52
53
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
UserPhotonFlux.h
PDFPtr
Pythia8::PDF * PDFPtr
Definition
UserPhotonFlux.h:125
PNEW
#define PNEW(X, Y)
Definition
UserPhotonFlux.h:126
Nucleus2gammaPtr
Nucleus2gamma2 * Nucleus2gammaPtr
Definition
UserPhotonFlux.h:124
Lepton2gamma2
Definition
UserPhotonFlux.h:21
Nucleus2gamma2
Definition
UserPhotonFlux.h:34
Nucleus2gamma2::setMinB
void setMinB(double in_min_b)
Definition
UserPhotonFlux.h:63
Nucleus2gamma2::setMinX
void setMinX(double in_min_x)
Definition
UserPhotonFlux.h:64
Nucleus2gamma2::setZ
void setZ(double in_Z)
Definition
UserPhotonFlux.h:62
UserPhotonFlux::m_flux_Z
Gaudi::Property< double > m_flux_Z
Definition
UserPhotonFlux.h:108
UserPhotonFlux::InitializePythiaInfo
StatusCode InitializePythiaInfo(Pythia8::Pythia &) const override
Definition
UserPhotonFlux.cxx:11
UserPhotonFlux::m_process
Gaudi::Property< int > m_process
Definition
UserPhotonFlux.h:107
UserPhotonFlux::ModifyPythiaEvent
StatusCode ModifyPythiaEvent(Pythia8::Pythia &pythia) const override
Update the pythia event Probably not used for this application.
Definition
UserPhotonFlux.cxx:43
UserPhotonFlux::m_flux_min_b
Gaudi::Property< double > m_flux_min_b
Definition
UserPhotonFlux.h:109
UserPhotonFlux::m_flux_min_x
Gaudi::Property< double > m_flux_min_x
Definition
UserPhotonFlux.h:110
UserPhotonFlux::finalize
StatusCode finalize() override
AlgTool finalize method.
Definition
UserPhotonFlux.cxx:37
UserPhotonFlux::CrossSectionScaleFactor
virtual double CrossSectionScaleFactor() const override
Return how much the cross section is modified.
Definition
UserPhotonFlux.cxx:47
UserPhotonFlux::initialize
StatusCode initialize() override
AlgTool initialize method.
Definition
UserPhotonFlux.cxx:6
Generated on
for ATLAS Offline Software by
1.17.0