ATLAS Offline Software
Loading...
Searching...
No Matches
GenEventRotator.h
Go to the documentation of this file.
1// Dear emacs, this is -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef ISF_HEPMC_GENEVENTROTATOR_H
8#define ISF_HEPMC_GENEVENTROTATOR_H 1
9
10// Base class headers
13// Gaudi headers
14#include "GaudiKernel/ServiceHandle.h"
15// CLHEP headers
16#include "CLHEP/Geometry/Transform3D.h"
17#include "CLHEP/Vector/LorentzRotation.h"
18
20
21namespace Simulation {
22
28 class GenEventRotator : public extends<AthAlgTool, IGenEventManipulator>
29 {
30
31 public:
33 GenEventRotator( const std::string& t, const std::string& n, const IInterface* p );
34
36 StatusCode initialize() override final;
37 StatusCode finalize() override final;
38
39 StatusCode initializeAthenaEvent();// override final;
40
42 StatusCode manipulate(HepMC::GenEvent& ge, const EventContext& ctx) const override final;
43 private:
45 StatusCode initializeGenEvent(CLHEP::HepLorentzRotation& transform, const EventContext& ctx) const;
47 void rotateParticle(HepMC::GenParticlePtr& p, const CLHEP::HepLorentzRotation& transform) const;
48
49 Gaudi::Property<double> m_xangle{this, "xAngle", 0.0, "rotation about x-axis"};
50 Gaudi::Property<double> m_yangle{this, "yAngle", 0.0, "rotation about y-axis"};
51 Gaudi::Property<double> m_zangle{this, "zAngle", 0.0, "rotation about z-axis"};
52 };
53
54}
55
56#endif //> !ISF_HEPMC_GENEVENTROTATOR_H
Gaudi::Property< double > m_zangle
Gaudi::Property< double > m_xangle
StatusCode manipulate(HepMC::GenEvent &ge, const EventContext &ctx) const override final
modifies the given GenEvent
StatusCode finalize() override final
Athena algtool's Hooks.
void rotateParticle(HepMC::GenParticlePtr &p, const CLHEP::HepLorentzRotation &transform) const
apply rotations to individual GenParticles
GenEventRotator(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
Gaudi::Property< double > m_yangle
StatusCode initialize() override final
Athena algtool's Hooks.
StatusCode initializeGenEvent(CLHEP::HepLorentzRotation &transform, const EventContext &ctx) const
calculate the transformations that we want to apply to the particles in the current GenEvent
GenParticle * GenParticlePtr
Definition GenParticle.h:37