ATLAS Offline Software
Loading...
Searching...
No Matches
TruthClosureCheck.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 TRUTHCLOSURECHECK_H
6#define TRUTHCLOSURECHECK_H
7
8// Base class include
10
11// Athena includes
14
16
17public:
18 using AthReentrantAlgorithm::AthReentrantAlgorithm;
19 virtual StatusCode initialize() override final;
20 virtual StatusCode execute(const EventContext& ctx) const override final;
21
22private:
23 StatusCode sanityCheck(const HepMC::GenEvent& event) const;
24#ifdef HEPMC3
25 StatusCode compareGenVertex(const HepMC::ConstGenVertexPtr& origVertex,
26 const HepMC::ConstGenVertexPtr& resetVertex) const;
27 StatusCode compareGenParticle(const HepMC::ConstGenParticlePtr& origParticle,
28 const HepMC::ConstGenParticlePtr& resetParticle) const;
29 void printGenVertex(const HepMC::ConstGenVertexPtr& origVertex,
30 const HepMC::ConstGenVertexPtr& resetVertex) const;
31#else
32 StatusCode compareGenVertex(const HepMC::GenVertex& origVertex,
33 const HepMC::GenVertex& resetVertex) const;
34 StatusCode compareGenParticle(const HepMC::GenParticle& origParticle,
35 const HepMC::GenParticle& resetParticle) const;
36 void printGenVertex(const HepMC::GenVertex& origVertex,
37 const HepMC::GenVertex& resetVertex) const;
38#endif
39 StatusCode compareMomenta(const HepMC::FourVector& origMomenta,
40 const HepMC::FourVector& resetMomenta) const;
41
42 SG::ReadHandleKey<McEventCollection> m_originalMcEventCollection{this, "OriginalMcEventCollection" , "BeamTruthEvent"};
43 SG::ReadHandleKey<McEventCollection> m_resetMcEventCollection{this, "ResetMcEventCollection" , "NewTruthEvent"};
44 Gaudi::Property<bool> m_compareMomenta{this, "CompareMomenta", true};
45 double m_momentaLimit{0.000000000001};
46 Gaudi::Property<bool> m_postSimulation{this, "PostSimulation", false};
47};
48#endif
Property holding a SG store/key/clid from which a ReadHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
Property holding a SG store/key/clid from which a ReadHandle is made.
SG::ReadHandleKey< McEventCollection > m_originalMcEventCollection
virtual StatusCode execute(const EventContext &ctx) const override final
StatusCode compareMomenta(const HepMC::FourVector &origMomenta, const HepMC::FourVector &resetMomenta) const
StatusCode compareGenVertex(const HepMC::GenVertex &origVertex, const HepMC::GenVertex &resetVertex) const
StatusCode sanityCheck(const HepMC::GenEvent &event) const
StatusCode compareGenParticle(const HepMC::GenParticle &origParticle, const HepMC::GenParticle &resetParticle) const
void printGenVertex(const HepMC::GenVertex &origVertex, const HepMC::GenVertex &resetVertex) const
virtual StatusCode initialize() override final
Gaudi::Property< bool > m_compareMomenta
Gaudi::Property< bool > m_postSimulation
SG::ReadHandleKey< McEventCollection > m_resetMcEventCollection
const GenParticle * ConstGenParticlePtr
Definition GenParticle.h:38
const HepMC::GenVertex * ConstGenVertexPtr
Definition GenVertex.h:60