ATLAS Offline Software
LRAVertexPositioner.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration.
3 */
4 
5 #ifndef BEAMEFFECTS_LRAVERTEXPOSITIONER_H
6 #define BEAMEFFECTS_LRAVERTEXPOSITIONER_H 1
7 
8 #include <tuple>
9 #include <vector>
10 
11 #include <TFile.h>
12 #include <TH3.h>
13 
16 
18 
19 namespace Simulation
20 {
26  class LRAVertexPositioner : public extends<AthAlgTool, ILorentzVectorGenerator>
27  {
28  public:
30  LRAVertexPositioner(const std::string &t, const std::string &n, const IInterface *p);
31 
33  virtual ~LRAVertexPositioner() = default;
34 
35  //---
36 
38  virtual StatusCode initialize() override final;
39 
41  virtual StatusCode finalize() override final;
42 
44  virtual CLHEP::HepLorentzVector *generate(const EventContext &ctx) const override final;
45 
46 
47  private:
48  Gaudi::Property<std::string> m_FileName{this, "FileName", "<<Unset>>", "LRA input file name."};
49  Gaudi::Property<std::string> m_HistName{this, "HistName", "<<Unset>>", "LRA input histogram name."};
50 
51  std::unique_ptr<TFile> m_LRAFile;
52  const TH3F *m_LRAHist = nullptr;
53 
54  //---
55 
56  ServiceHandle<IAthRNGSvc> m_RNGService{this, "RNGService", "AthRNGSvc"};
57  Gaudi::Property<std::string> m_RNGStream{this, "RNGStream", "LRAVertexPositioner", "Stream name for the RNG service."};
59 
60  //---
61 
62  using IntegralTuple = std::tuple<Int_t, Int_t, Int_t, Double_t>;
63  std::vector<IntegralTuple> m_Integral;
64 
65  const TAxis *m_xAxis = nullptr;
66  const TAxis *m_yAxis = nullptr;
67  const TAxis *m_zAxis = nullptr;
68  };
69 };
70 
71 #endif //> !BEAMEFFECTS_LRAVERTEXPOSITIONER_H
Simulation::LRAVertexPositioner::~LRAVertexPositioner
virtual ~LRAVertexPositioner()=default
Destructor.
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Simulation::LRAVertexPositioner::IntegralTuple
std::tuple< Int_t, Int_t, Int_t, Double_t > IntegralTuple
Tuple for [xBin, yBin, zBin, Integral].
Definition: LRAVertexPositioner.h:62
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Property
Support class for PropertyMgr.
Definition: Property.h:23
Simulation::LRAVertexPositioner::m_yAxis
const TAxis * m_yAxis
Non-owning TAxis * to the histograms y-Axis.
Definition: LRAVertexPositioner.h:66
Simulation::LRAVertexPositioner
Definition: LRAVertexPositioner.h:27
Simulation::LRAVertexPositioner::m_xAxis
const TAxis * m_xAxis
Non-owning TAxis * to the histograms x-Axis.
Definition: LRAVertexPositioner.h:65
ILorentzVectorGenerator.h
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
beamspotman.n
n
Definition: beamspotman.py:729
Simulation::LRAVertexPositioner::ATLAS_THREAD_SAFE
ATHRNG::RNGWrapper *m_RNGEngine ATLAS_THREAD_SAFE
Non-owning RNGWrapper * to the RNG engine.
Definition: LRAVertexPositioner.h:58
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CLHEP
STD'S.
Definition: CaloNoiseCompCondAlg.h:58
AthAlgTool.h
Simulation::LRAVertexPositioner::LRAVertexPositioner
LRAVertexPositioner(const std::string &t, const std::string &n, const IInterface *p)
Constructor.
Definition: LRAVertexPositioner.cxx:19
Simulation::LRAVertexPositioner::m_FileName
Gaudi::Property< std::string > m_FileName
LRA input file name.
Definition: LRAVertexPositioner.h:48
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
Simulation::LRAVertexPositioner::m_HistName
Gaudi::Property< std::string > m_HistName
LRA input histogram name.
Definition: LRAVertexPositioner.h:49
Simulation::LRAVertexPositioner::finalize
virtual StatusCode finalize() override final
AthAlgTool finalization.
Definition: LRAVertexPositioner.cxx:121
Simulation::LRAVertexPositioner::m_LRAFile
std::unique_ptr< TFile > m_LRAFile
Owning TFile * to the LRA file.
Definition: LRAVertexPositioner.h:51
generate
Definition: generate.cxx:28
Simulation::LRAVertexPositioner::m_zAxis
const TAxis * m_zAxis
Non-owning TAxis * to the histograms z-Axis.
Definition: LRAVertexPositioner.h:67
Simulation::LRAVertexPositioner::initialize
virtual StatusCode initialize() override final
AthAlgTool initialization.
Definition: LRAVertexPositioner.cxx:26
Simulation
Definition: BeamEffectsAlg.cxx:21
Simulation::LRAVertexPositioner::m_LRAHist
const TH3F * m_LRAHist
Non-owning TH3F * to the LRA histogram.
Definition: LRAVertexPositioner.h:52
Simulation::LRAVertexPositioner::m_RNGService
ServiceHandle< IAthRNGSvc > m_RNGService
Handle to the Athena RNG service.
Definition: LRAVertexPositioner.h:56
Gaudi
=============================================================================
Definition: CaloGPUClusterAndCellDataMonitorOptions.h:273
private
#define private
Definition: xAODTruthCnvAlg.h:20
Simulation::LRAVertexPositioner::m_RNGStream
Gaudi::Property< std::string > m_RNGStream
Stream name for the RNG service.
Definition: LRAVertexPositioner.h:57
Simulation::LRAVertexPositioner::m_Integral
std::vector< IntegralTuple > m_Integral
Vector to hold the running integral over bins.
Definition: LRAVertexPositioner.h:63
IAthRNGSvc.h
ServiceHandle< IAthRNGSvc >