ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Generators
EvgenProdTools
EvgenProdTools
FixHepMC.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef XAOD_ANALYSIS
6
7
#ifndef FIX_HEPMC
8
#define FIX_HEPMC
9
10
#include "
GeneratorModules/GenBase.h
"
11
#include "
AtlasHepMC/GenParticle.h
"
12
#include "
TruthUtils/Loops.h
"
13
#include <set>
14
#include <memory>
15
16
31
class
FixHepMC
:
public
GenBase
{
32
public
:
33
34
FixHepMC
(
const
std::string& name, ISvcLocator* pSvcLocator);
35
StatusCode
execute
(
const
EventContext& ctx);
36
StatusCode
finalize
();
37
38
39
private
:
40
42
43
bool
isPID0
(
const
HepMC::ConstGenParticlePtr
& p)
const
;
44
bool
isNonTransportableInDecayChain
(
const
HepMC::ConstGenParticlePtr
& p)
const
;
45
bool
isSimpleLoop
(
const
HepMC::ConstGenParticlePtr
& p)
const
;
46
bool
fromDecay
(
const
HepMC::ConstGenParticlePtr
& p, std::shared_ptr<std::set<int> >& storage)
const
;
48
50
51
bool
m_killLoops
;
// Kill loops?
52
bool
m_killPDG0
;
// Kill PDG0 particles?
53
bool
m_cleanDecays
;
// Clean decays?
54
bool
m_purgeUnstableWithoutEndVtx
;
// Remove unstable particles without decay vertex?
55
bool
m_ignoreSemiDisconnected
;
// Ignore semi-disconnected particles (normal in Sherpa)
56
std::string
m_forced_momentum
{
""
};
// Force momentum unit for the event
57
std::string
m_forced_length
{
""
};
// Force length unit for the event
58
bool
m_unitsFix
;
// Attempt to identify and fix momentum units problems
59
bool
m_setHasCycles
;
61
63
64
long
m_loopKilled
;
65
long
m_pdg0Killed
;
66
long
m_decayCleaned
;
67
long
m_unstablePurged
;
68
long
m_totalSeen
;
69
long
m_replacedPIDs
;
71
72
std::map<int,int>
m_pidmap
;
73
std::map<int,int>
m_replacedpid_counts
;
74
75
76
MC::Loops<HepMC::GenEvent,HepMC::ConstGenParticlePtr,HepMC::ConstGenVertexPtr>
m_looper
;
77
78
79
};
80
81
82
#endif
83
84
#endif
GenBase.h
GenParticle.h
Loops.h
FixHepMC::isPID0
bool isPID0(const HepMC::ConstGenParticlePtr &p) const
Definition
FixHepMC.cxx:316
FixHepMC::m_setHasCycles
bool m_setHasCycles
Definition
FixHepMC.h:59
FixHepMC::FixHepMC
FixHepMC(const std::string &name, ISvcLocator *pSvcLocator)
Definition
FixHepMC.cxx:15
FixHepMC::m_purgeUnstableWithoutEndVtx
bool m_purgeUnstableWithoutEndVtx
Definition
FixHepMC.h:54
FixHepMC::m_replacedPIDs
long m_replacedPIDs
Definition
FixHepMC.h:69
FixHepMC::m_killPDG0
bool m_killPDG0
Definition
FixHepMC.h:52
FixHepMC::execute
StatusCode execute(const EventContext &ctx)
Execute method.
Definition
FixHepMC.cxx:36
FixHepMC::isNonTransportableInDecayChain
bool isNonTransportableInDecayChain(const HepMC::ConstGenParticlePtr &p) const
Definition
FixHepMC.cxx:337
FixHepMC::m_forced_momentum
std::string m_forced_momentum
Definition
FixHepMC.h:56
FixHepMC::m_unitsFix
bool m_unitsFix
Definition
FixHepMC.h:58
FixHepMC::fromDecay
bool fromDecay(const HepMC::ConstGenParticlePtr &p, std::shared_ptr< std::set< int > > &storage) const
Definition
FixHepMC.cxx:321
FixHepMC::m_totalSeen
long m_totalSeen
Definition
FixHepMC.h:68
FixHepMC::finalize
StatusCode finalize()
Definition
FixHepMC.cxx:299
FixHepMC::m_pdg0Killed
long m_pdg0Killed
Definition
FixHepMC.h:65
FixHepMC::m_decayCleaned
long m_decayCleaned
Definition
FixHepMC.h:66
FixHepMC::m_ignoreSemiDisconnected
bool m_ignoreSemiDisconnected
Definition
FixHepMC.h:55
FixHepMC::m_cleanDecays
bool m_cleanDecays
Definition
FixHepMC.h:53
FixHepMC::m_killLoops
bool m_killLoops
Definition
FixHepMC.h:51
FixHepMC::m_unstablePurged
long m_unstablePurged
Definition
FixHepMC.h:67
FixHepMC::m_replacedpid_counts
std::map< int, int > m_replacedpid_counts
map of counters of replacements.
Definition
FixHepMC.h:73
FixHepMC::m_loopKilled
long m_loopKilled
Definition
FixHepMC.h:64
FixHepMC::m_pidmap
std::map< int, int > m_pidmap
map of pids to change.
Definition
FixHepMC.h:72
FixHepMC::m_looper
MC::Loops< HepMC::GenEvent, HepMC::ConstGenParticlePtr, HepMC::ConstGenVertexPtr > m_looper
member to detect loops
Definition
FixHepMC.h:76
FixHepMC::isSimpleLoop
bool isSimpleLoop(const HepMC::ConstGenParticlePtr &p) const
Definition
FixHepMC.cxx:343
FixHepMC::m_forced_length
std::string m_forced_length
Definition
FixHepMC.h:57
GenBase::GenBase
GenBase(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition
GenBase.cxx:11
MC::Loops
Definition
Loops.h:14
HepMC::ConstGenParticlePtr
HepMC3::ConstGenParticlePtr ConstGenParticlePtr
Definition
GenParticle.h:20
Generated on
for ATLAS Offline Software by
1.17.0