ATLAS Offline Software
Loading...
Searching...
No Matches
IBeamIntensity.h
Go to the documentation of this file.
1/* -*- C++ -*- */
2
3/*
4 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef PILEUPTOOLS_IBEAMINTENSITY_H
8#define PILEUPTOOLS_IBEAMINTENSITY_H
14
15#include "GaudiKernel/IService.h"
16
17class EventContext;
18
19class IBeamIntensity : virtual public IService {
20public:
23 virtual float normFactor(int bunchXing) const = 0;
24
27 virtual float largestElementInPattern() const = 0;
28
31 virtual void selectT0(const EventContext& ctx) =0;
32
34 virtual unsigned int getCurrentT0BunchCrossing() const =0;
35
37 virtual unsigned int getBeamPatternLength() const =0;
38
41};
42#endif // PILEUPTOOLS_IBEAMINTENSITY_H
virtual unsigned int getCurrentT0BunchCrossing() const =0
return the bunch crossing selected to be the current t0 bunch crossing
DeclareInterfaceID(IBeamIntensity, 1, 0)
Creates the InterfaceID and interfaceID() method.
virtual void selectT0(const EventContext &ctx)=0
randomly select in which bunch the current t0 is wrto the beam intensity distribution.
virtual unsigned int getBeamPatternLength() const =0
return the length of the beam pattern
virtual float largestElementInPattern() const =0
the largest element in the beam intensity pattern.
virtual float normFactor(int bunchXing) const =0
a scale factor (average value 1.0) for the beam intensity at a given xing.