|
ATLAS Offline Software
|
Go to the documentation of this file.
7 #ifndef PILEUPCOMPS_ARRAYBM
8 #define PILEUPCOMPS_ARRAYBM 1
17 #include "GaudiKernel/ContextSpecificPtr.h"
18 #include "GaudiKernel/ServiceHandle.h"
19 #include "Gaudi/Property.h"
26 #include <boost/random.hpp>
33 class ArrayBM :
public extends<AthService, IBeamIntensity>
47 virtual float normFactor(
int iXing)
const override final;
49 virtual void selectT0(
unsigned int run,
unsigned long long event)
override final;
57 Gaudi::Hive::ContextSpecificData<unsigned int>
m_t0Offset;
59 Gaudi::Property<std::uint64_t>
m_seed{
this,
"Seed", 0,
"Seed for FastReseededPRNG. Zero seed switches to AthRNGSvc mode."};
69 std::unique_ptr<const boost::random::discrete_distribution<unsigned int>>
m_t0Dist{
nullptr};
virtual StatusCode initialize() override final
Gaudi::Property< std::uint64_t > m_seed
seed for FastReseededPRNG. Non-zero switches to using FastReseededPRNG.
unsigned int m_maxBunchCrossingPerOrbit
max bunch crossings per orbit
Gaudi::Hive::ContextSpecificData< unsigned int > m_t0Offset
offset of the t0 wrto our intensity pattern
bool const RAWDATA *ch2 const
int m_emptyBunches
Empty bunch option.
double * m_signalPattern
Additional array for keeping the locations we want signal in By default, will match the intensity pat...
virtual float largestElementInPattern() const override final
virtual unsigned int getBeamPatternLength() const override final
POOL::TEvent event(POOL::TEvent::kClassAccess)
::StatusCode StatusCode
StatusCode definition for legacy code.
AthROOTErrorHandlerSvc * svc
Gaudi::Property< std::vector< float > > m_intensityPatternProp
user-defined intensity pattern
ServiceHandle< IAthRNGSvc > m_randomSvc
the service managing our random seeds/sequences
A wrapper class for event-slot-local random engines.
std::unique_ptr< const boost::random::discrete_distribution< unsigned int > > m_t0Dist
as with m_biRandom, but for FastReseededPRNG
unsigned int m_ipLength
length of the intensity pattern
float m_largestElementInPattern
The largest value in the pattern assuming that the pattern has mean value 1.0.
virtual float normFactor(int iXing) const override final
ArrayBM(const std::string &name, ISvcLocator *svc)
virtual unsigned int getCurrentT0BunchCrossing() const override final
provides the relative beam intensity as a function of the bunch xing.
double * m_intensityPattern
normalized intensity pattern. C array to make clhep RandGeneral happy
ATHRNG::RNGWrapper *m_rngWrapper ATLAS_THREAD_SAFE
virtual void selectT0(unsigned int run, unsigned long long event) override final
CLHEP::RandGeneral * m_biRandom
shoot random number proportionally to m_intensityPattern
Define macros for attributes used to control the static checker.