The Gaudi Framework  master (82fdf313)
Loading...
Searching...
No Matches
HepRndmEngine.h
Go to the documentation of this file.
1/***********************************************************************************\
2* (c) Copyright 1998-2025 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// CLHEP Random Engine definition file
13//--------------------------------------------------------------------
14//
15// Package : HepRndm ( The LHCb Offline System)
16// Author : M.Frank
17// History :
18// +---------+----------------------------------------------+---------
19// | Date | Comment | Who
20// +---------+----------------------------------------------+---------
21// | 29/10/99| Initial version | MF
22// +---------+----------------------------------------------+---------
23//
24//====================================================================
25#pragma once
26
27// Framework include files
28#include "HepRndmBaseEngine.h"
29#include <vector>
30
31namespace HepRndm {
32
33 template <class TYPE>
34 class Engine : public BaseEngine {
35 protected:
36 mutable Gaudi::Property<std::vector<long>> m_seeds{ this, "Seeds", {}, "seed table" };
37
38 Gaudi::Property<int> m_col{ this, "Column", 0 };
39 Gaudi::Property<int> m_row{ this, "Row", 1 };
40 Gaudi::Property<int> m_lux{ this, "Luxury", 3 };
41 Gaudi::Property<bool> m_useTable{ this, "UseTable", false };
42 Gaudi::Property<bool> m_setSingleton{ this, "SetSingleton", false };
43
44 public:
50 StatusCode finalize() override;
52 StatusCode setSeeds( const std::vector<long>& seed ) override;
54 StatusCode seeds( std::vector<long>& seed ) const override;
55
56 private:
58 std::unique_ptr<CLHEP::HepRandomEngine> createEngine() override;
59 };
60} // namespace HepRndm
Implementation of property with value of concrete type.
Definition PropertyFwd.h:27
BaseEngine(const std::string &name, ISvcLocator *loc)
StatusCode finalize() override
Finalize the Engine.
Gaudi::Property< std::vector< long > > m_seeds
Gaudi::Property< int > m_lux
StatusCode initialize() override
Initialize the Engine.
Gaudi::Property< int > m_row
Gaudi::Property< bool > m_setSingleton
Gaudi::Property< int > m_col
StatusCode setSeeds(const std::vector< long > &seed) override
Set seeds.
std::unique_ptr< CLHEP::HepRandomEngine > createEngine() override
Create new HepEngine....
StatusCode seeds(std::vector< long > &seed) const override
Retrieve seeds.
Gaudi::Property< bool > m_useTable
BaseEngine(const std::string &name, ISvcLocator *loc)
Standard Constructor.
This class is used for returning status codes from appropriate routines.
Definition StatusCode.h:64