Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 
7  ATH_MSG_INFO( "Initialisation of " << name() << " was successful" );
8  return StatusCode::SUCCESS;
9  }
10 
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(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 
38  ATH_MSG_INFO( "Finalize" << name());
39  return StatusCode::SUCCESS;
40  }
41 
42 
44  return StatusCode::SUCCESS;
45  }
46 
48  ATH_MSG_INFO( "CrossSectionScaleFactor" << name());
49  return 1.0;
50  }
51 
52 
53 
UserPhotonFlux::finalize
StatusCode finalize() override
AlgTool finalize method.
Definition: UserPhotonFlux.cxx:37
UserPhotonFlux::ModifyPythiaEvent
StatusCode ModifyPythiaEvent(Pythia8::Pythia &pythia) const override
Update the pythia event Probably not used for this application.
Definition: UserPhotonFlux.cxx:43
Nucleus2gamma2::setMinX
void setMinX(double in_min_x)
Definition: UserPhotonFlux.h:64
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Lepton2gamma2
Definition: UserPhotonFlux.h:21
bTosllAli.Pythia
Pythia
Definition: bTosllAli.py:46
PDFPtr
Pythia8::PDF * PDFPtr
Definition: UserPhotonFlux.h:125
UserPhotonFlux::CrossSectionScaleFactor
virtual double CrossSectionScaleFactor() const override
Return how much the cross section is modified.
Definition: UserPhotonFlux.cxx:47
Nucleus2gamma2::setMinB
void setMinB(double in_min_b)
Definition: UserPhotonFlux.h:63
UserPhotonFlux::m_flux_min_x
Gaudi::Property< double > m_flux_min_x
Definition: UserPhotonFlux.h:110
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Nucleus2gamma2::setZ
void setZ(double in_Z)
Definition: UserPhotonFlux.h:62
UserPhotonFlux::InitializePythiaInfo
StatusCode InitializePythiaInfo(Pythia8::Pythia &) const override
Definition: UserPhotonFlux.cxx:11
UserPhotonFlux::initialize
StatusCode initialize() override
AlgTool initialize method.
Definition: UserPhotonFlux.cxx:6
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
UserPhotonFlux::m_flux_Z
Gaudi::Property< double > m_flux_Z
Definition: UserPhotonFlux.h:108
Nucleus2gamma2
Definition: UserPhotonFlux.h:34
UserPhotonFlux.h
UserPhotonFlux::m_flux_min_b
Gaudi::Property< double > m_flux_min_b
Definition: UserPhotonFlux.h:109
UserPhotonFlux::m_process
Gaudi::Property< int > m_process
Definition: UserPhotonFlux.h:107
PNEW
#define PNEW(X, Y)
Definition: UserPhotonFlux.h:126