ATLAS Offline Software
Loading...
Searching...
No Matches
UserPhotonFlux Class Reference

Tool to implement Pythi8 main70 functionality. More...

#include <UserPhotonFlux.h>

Inheritance diagram for UserPhotonFlux:
Collaboration diagram for UserPhotonFlux:

Public Member Functions

virtual ~UserPhotonFlux ()
 Destructor.
StatusCode initialize () override
 AlgTool initialize method.
StatusCode finalize () override
 AlgTool finalize method.
StatusCode ModifyPythiaEvent (Pythia8::Pythia &pythia) const override
 Update the pythia event Probably not used for this application.
virtual double CrossSectionScaleFactor () const override
 Return how much the cross section is modified.
StatusCode InitializePythiaInfo (Pythia8::Pythia &) const override

Private Attributes

Gaudi::Property< int > m_process {this, "Process", 1}
Gaudi::Property< double > m_flux_Z {this, "NuclearCharge", 82.}
Gaudi::Property< double > m_flux_min_b {this, "MinimumB", 13.24}
Gaudi::Property< double > m_flux_min_x {this, "MinimumX", -1}

Detailed Description

Tool to implement Pythi8 main70 functionality.

Definition at line 79 of file UserPhotonFlux.h.

Constructor & Destructor Documentation

◆ ~UserPhotonFlux()

virtual UserPhotonFlux::~UserPhotonFlux ( )
inlinevirtual

Destructor.

Definition at line 87 of file UserPhotonFlux.h.

87{};

Member Function Documentation

◆ CrossSectionScaleFactor()

double UserPhotonFlux::CrossSectionScaleFactor ( ) const
overridevirtual

Return how much the cross section is modified.

Probably not used for this application

Definition at line 47 of file UserPhotonFlux.cxx.

47 {
48 ATH_MSG_INFO( "CrossSectionScaleFactor" << name());
49 return 1.0;
50 }
#define ATH_MSG_INFO(x)

◆ finalize()

StatusCode UserPhotonFlux::finalize ( )
override

AlgTool finalize method.

Definition at line 37 of file UserPhotonFlux.cxx.

37 {
38 ATH_MSG_INFO( "Finalize" << name());
39 return StatusCode::SUCCESS;
40 }

◆ initialize()

StatusCode UserPhotonFlux::initialize ( )
override

AlgTool initialize method.

Definition at line 6 of file UserPhotonFlux.cxx.

6 {
7 ATH_MSG_INFO( "Initialisation of " << name() << " was successful" );
8 return StatusCode::SUCCESS;
9 }

◆ InitializePythiaInfo()

StatusCode UserPhotonFlux::InitializePythiaInfo ( Pythia8::Pythia & pythia) const
override

Definition at line 11 of file UserPhotonFlux.cxx.

11 {
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 }
#define ATH_MSG_ERROR(x)
Pythia8::PDF * PDFPtr
#define PNEW(X, Y)
Nucleus2gamma2 * Nucleus2gammaPtr
void setMinB(double in_min_b)
void setMinX(double in_min_x)
void setZ(double in_Z)
Gaudi::Property< double > m_flux_Z
Gaudi::Property< int > m_process
Gaudi::Property< double > m_flux_min_b
Gaudi::Property< double > m_flux_min_x

◆ ModifyPythiaEvent()

StatusCode UserPhotonFlux::ModifyPythiaEvent ( Pythia8::Pythia & pythia) const
override

Update the pythia event Probably not used for this application.

Definition at line 43 of file UserPhotonFlux.cxx.

43 {
44 return StatusCode::SUCCESS;
45 }

Member Data Documentation

◆ m_flux_min_b

Gaudi::Property<double> UserPhotonFlux::m_flux_min_b {this, "MinimumB", 13.24}
private

Definition at line 109 of file UserPhotonFlux.h.

109{this, "MinimumB", 13.24};

◆ m_flux_min_x

Gaudi::Property<double> UserPhotonFlux::m_flux_min_x {this, "MinimumX", -1}
private

Definition at line 110 of file UserPhotonFlux.h.

110{this, "MinimumX", -1};//default applies no cut since sampled x's always >0.

◆ m_flux_Z

Gaudi::Property<double> UserPhotonFlux::m_flux_Z {this, "NuclearCharge", 82.}
private

Definition at line 108 of file UserPhotonFlux.h.

108{this, "NuclearCharge", 82.};

◆ m_process

Gaudi::Property<int> UserPhotonFlux::m_process {this, "Process", 1}
private

Definition at line 107 of file UserPhotonFlux.h.

107{this, "Process", 1};

The documentation for this class was generated from the following files: