ATLAS Offline Software
Loading...
Searching...
No Matches
LongBeamspotVertexPositioner.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef BEAMEFFECTS_LONGBEAMSPOTVERTEXPOSITIONER_H
6#define BEAMEFFECTS_LONGBEAMSPOTVERTEXPOSITIONER_H 1
7
8// STL includes
9#include <string>
10#include <utility>
11#include <vector>
12#include <map>
13// FrameWork includes
14#include "GaudiKernel/ServiceHandle.h"
20namespace ATHRNG {
21 class RNGWrapper;
22}
23namespace CLHEP {
24 class HepRandomEngine;
25}
26
27namespace Simulation {
28
37 class LongBeamspotVertexPositioner : public extends<AthAlgTool, ILorentzVectorGenerator> {
38
39 public:
40
42 LongBeamspotVertexPositioner( const std::string& t, const std::string& n,
43 const IInterface* p );
44
46 virtual ~LongBeamspotVertexPositioner() = default;
47
49 StatusCode initialize() override final;
50 StatusCode finalize() override final;
51
53 CLHEP::HepLorentzVector *generate(const EventContext& ctx) const override final;
54
55 private:
56
57 inline double heaviside(double val) const {return (val >= 0.0) ? 1.0 : 0.0;};
58 double getZpos(CLHEP::HepRandomEngine*) const;
59 double beamspotFunction(double z) const;
60 Gaudi::Property<double> m_L{this, "LParameter", 150.};
61 SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
62 ServiceHandle<IAthRNGSvc> m_rndGenSvc{this, "RandomSvc", "AthRNGSvc"};
64
65 Gaudi::Property<std::string> m_randomEngineName{this, "RandomStream", "VERTEX"};
66 Gaudi::Property<bool> m_timeSmearing{this, "SimpleTimeSmearing", false};
67
68 };
69
70}
71
72#endif //> !BEAMEFFECTS_LONGBEAMSPOTVERTEXPOSITIONER_H
#define z
Define macros for attributes used to control the static checker.
A wrapper class for event-slot-local random engines.
Definition RNGWrapper.h:56
StatusCode finalize() override final
Athena algtool's Hooks.
LongBeamspotVertexPositioner(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
double getZpos(CLHEP::HepRandomEngine *) const
Gaudi::Property< std::string > m_randomEngineName
Name of the random number stream.
virtual ~LongBeamspotVertexPositioner()=default
Destructor.
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Gaudi::Property< double > m_L
Parameter in the Z distribution of the beamspot - default 150.0 mm.
Gaudi::Property< bool > m_timeSmearing
Do time smearing.
ATHRNG::RNGWrapper *m_randomEngine ATLAS_THREAD_SAFE
Slot-local RNG.
StatusCode initialize() override final
Athena algtool's Hooks.
#define private