The Gaudi Framework  master (181af51f)
Loading...
Searching...
No Matches
RandomGenSvc.cpp
Go to the documentation of this file.
1/***********************************************************************************\
2* (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
3* *
4* This software is distributed under the terms of the Apache version 2 licence, *
5* copied verbatim in the file "LICENSE". *
6* *
7* In applying this licence, CERN does not waive the privileges and immunities *
8* granted to it by virtue of its status as an Intergovernmental Organization *
9* or submit itself to any jurisdiction. *
10\***********************************************************************************/
11
12#include "IRandomGenSvc.h"
13
14#include <GaudiKernel/Service.h>
15#include <GaudiKernel/extends.h>
16
18
19 class RandomGenSvc : virtual public extends<Service, IRandomGenSvc> {
20 public:
21 using extends::extends;
22 std::default_random_engine getEngine( unsigned long context ) const override {
23 return std::default_random_engine( m_randomSeed + context );
24 }
25
26 private:
28 };
29
30 DECLARE_COMPONENT_WITH_ID( RandomGenSvc, "RandomGenSvc" )
31
32} // namespace Gaudi::Example::TinyExperiment
#define DECLARE_COMPONENT_WITH_ID(type, id)
Gaudi::Property< unsigned long > m_randomSeed
std::default_random_engine getEngine(unsigned long context) const override
Implementation of property with value of concrete type.
Definition PropertyFwd.h:27
Base class used to extend a class implementing other interfaces.
Definition extends.h:19