The Gaudi Framework  master (37c0b60a)
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:
27  Gaudi::Property<unsigned long> m_randomSeed{ this, "RandomSeed", 0 };
28  };
29 
30  DECLARE_COMPONENT_WITH_ID( RandomGenSvc, "RandomGenSvc" )
31 
32 } // namespace Gaudi::Example::TinyExperiment
Gaudi::Example::TinyExperiment::RandomGenSvc
Definition: RandomGenSvc.cpp:19
IRandomGenSvc.h
std::default_random_engine
extends.h
Gaudi::Example::TinyExperiment::RandomGenSvc::getEngine
std::default_random_engine getEngine(unsigned long context) const override
Definition: RandomGenSvc.cpp:22
DECLARE_COMPONENT_WITH_ID
#define DECLARE_COMPONENT_WITH_ID(type, id)
Definition: PluginServiceV1.h:47
extends
Base class used to extend a class implementing other interfaces.
Definition: extends.h:20
Service.h
Gaudi::Example::TinyExperiment::RandomGenSvc::m_randomSeed
Gaudi::Property< unsigned long > m_randomSeed
Definition: RandomGenSvc.cpp:27
Gaudi::Example::TinyExperiment
Definition: CheckerAlg.cpp:20
Gaudi::Property< unsigned long >