ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
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. More...
 
StatusCode initialize () override
 AlgTool initialize method. More...
 
StatusCode finalize () override
 AlgTool finalize method. More...
 
StatusCode ModifyPythiaEvent (Pythia8::Pythia &pythia) const override
 Update the pythia event Probably not used for this application. More...
 
virtual double CrossSectionScaleFactor () const override
 Return how much the cross section is modified. More...
 
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  }

◆ 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(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  }

◆ 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.

◆ m_flux_min_x

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

Definition at line 110 of file UserPhotonFlux.h.

◆ m_flux_Z

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

Definition at line 108 of file UserPhotonFlux.h.

◆ m_process

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

Definition at line 107 of file UserPhotonFlux.h.


The documentation for this class was generated from the following files:
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
PDFPtr
Pythia8::PDF * PDFPtr
Definition: UserPhotonFlux.h:125
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
Nucleus2gamma2::setZ
void setZ(double in_Z)
Definition: UserPhotonFlux.h:62
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::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