|
ATLAS Offline Software
|
Go to the documentation of this file.
7 #ifndef ISF_HEPMC_GENEVENTBEAMEFFECTBOOSTER_H
8 #define ISF_HEPMC_GENEVENTBEAMEFFECTBOOSTER_H 1
17 #include "GaudiKernel/ServiceHandle.h"
19 #include "CLHEP/Geometry/Transform3D.h"
20 #include "CLHEP/Vector/LorentzRotation.h"
66 Gaudi::Property<double>
m_sigma_px_b1{
this,
"Sigma_px_b1", 20.e-6,
"angular divergence in x of beam 1 [rad]"};
67 Gaudi::Property<double>
m_sigma_px_b2{
this,
"Sigma_px_b2", 21.e-6,
"angular divergence in x of beam 2 [rad]"};
68 Gaudi::Property<double>
m_sigma_py_b1{
this,
"Sigma_py_b1", 22.e-6,
"angular divergence in y of beam 1 [rad]"};
69 Gaudi::Property<double>
m_sigma_py_b2{
this,
"Sigma_py_b2", 23.e-6,
"angular divergence in y of beam 2 [rad]"};
71 Gaudi::Property<double>
m_xing_x_b1{
this,
"HalfXing_x_b1", 19.e-6,
"half-crossing in x for beam 1 at IP1, i.e. angle between beam 1 and z-axis"};
72 Gaudi::Property<double>
m_xing_x_b2{
this,
"HalfXing_x_b2", 1.e-6,
"half-crossing in x for beam 2 at IP1, i.e. angle between beam 2 and z-axis"};
73 Gaudi::Property<double>
m_xing_y_b1{
this,
"HalfXing_y_b1", 150.e-6,
"half-crossing in y for beam 1 at IP1, i.e. angle between beam 1 and z-axis"};
74 Gaudi::Property<double>
m_xing_y_b2{
this,
"HalfXing_y_b2", -152.e-6,
"half-crossing in y for beam 2 at IP1, i.e. angle between beam 2 and z-axis"};
75 Gaudi::Property<double>
m_dE{
this,
"deltaEOverE", 1.1E-4,
"Delta_E/E theoretical value"};
76 Gaudi::Property<double>
m_pbeam1{
this,
"pbeam1", 3500.0E3,
"Beam 1 Momentum / MeV"};
77 Gaudi::Property<double>
m_pbeam2{
this,
"pbeam2", 3500.0E3,
"Beam 2 Momentum / MeV"};
84 #endif //> !ISF_HEPMC_GENEVENTBEAMEFFECTBOOSTER_H
Gaudi::Property< double > m_pbeam1
Gaudi::Property< double > m_xing_x_b2
GenParticle * GenParticlePtr
StatusCode initializeAthenaEvent()
StatusCode initializeGenEvent(CLHEP::HepLorentzRotation &transform, const EventContext &ctx) const
calculate the transformations that we want to apply to the particles in the current GenEvent
Gaudi::Property< double > m_dE
Gaudi::Property< double > m_xing_x_b1
Gaudi::Property< double > m_sigma_px_b1
Gaudi::Property< double > m_beam1ParticleMass
Gaudi::Property< double > m_xing_y_b1
StatusCode initialize() override final
Athena algtool's Hooks.
::StatusCode StatusCode
StatusCode definition for legacy code.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Gaudi::Property< double > m_xing_y_b2
Gaudi::Property< double > m_sigma_py_b2
ATHRNG::RNGWrapper *m_randomEngine ATLAS_THREAD_SAFE
Slot-local RNG.
void boostParticle(HepMC::GenParticlePtr &p, const CLHEP::HepLorentzRotation &transform) const
apply boost to individual GenParticles
A wrapper class for event-slot-local random engines.
GenEventBeamEffectBooster(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
ServiceHandle< IAthRNGSvc > m_rndGenSvc
StatusCode finalize() override final
Athena algtool's Hooks.
Gaudi::Property< double > m_pbeam2
Gaudi::Property< std::string > m_randomEngineName
Name of the random number stream.
Gaudi::Property< double > m_sigma_px_b2
Gaudi::Property< double > m_sigma_py_b1
Gaudi::Property< bool > m_applyDivergence
Gaudi::Property< double > m_beam2ParticleMass
Define macros for attributes used to control the static checker.
Gaudi::Property< bool > m_applyBoost
StatusCode manipulate(HepMC::GenEvent &ge, const EventContext &ctx) const override final
modifies the given GenEvent