ATLAS Offline Software
PhysicsAnalysis
DerivationFramework
DerivationFrameworkMCTruth
DerivationFrameworkMCTruth
CompactHardTruth.h
Go to the documentation of this file.
1
3
/*
4
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
// CompactHardTruth.h
8
// Header file for class CompactHardTruth
9
// Author: Frank Paige <paige@bnl.gov>
10
//
11
// Algorithm to construct small, consistent hard-scattering HepMC truth
12
// record from GEN_EVENT. Only final partons have physical momenta, so
13
// must recluster them. Main steps:
14
// (1) Identify hadronization vertices with partons in, hadrons out.
15
// (2) Detach their incoming partons and delete their descendants.
16
// (3) Iteratively recombine 1->2 branchings of final partons with
17
// mass M < Mcut. Split 2->1 nonperturbative color recombinations.
18
// (4) Remove partons not connected to hard process. May make apparent
19
// anomalies, e.g., dropping soft q from incoming g -> g q.
20
//
21
// New final partons have correct momenta and ancestors/descendants.
22
// CompactHardTruth changes particles/vertices, so it cannot be used directly
23
// with thinning, but it can be used in parallel.
24
//
26
#ifndef DERIVATIONFRAMEWORK_COMPACTHARDTRUTH_H
27
#define DERIVATIONFRAMEWORK_COMPACTHARDTRUTH_H 1
28
29
// STL includes
30
#include <string>
31
32
// FrameWork includes
33
#include "
AthenaBaseComps/AthAlgorithm.h
"
34
#include "GaudiKernel/ToolHandle.h"
35
36
#include "
AtlasHepMC/GenEvent.h
"
37
#include "
AtlasHepMC/GenParticle.h
"
38
#include "
AtlasHepMC/GenVertex.h
"
39
40
// fwd declares
41
class
IMcVtxFilterTool
;
42
43
44
namespace
DerivationFramework
{
45
46
class
CompactHardTruth
47
:
public
::AthAlgorithm
48
{
49
51
// Public methods:
53
public
:
54
55
// Copy constructor:
56
58
CompactHardTruth
(
const
std::string&
name
, ISvcLocator* pSvcLocator );
59
61
virtual
~CompactHardTruth
();
62
63
// Athena algorithm Hooks
64
virtual
StatusCode
initialize
();
65
virtual
StatusCode
execute
();
66
virtual
StatusCode
finalize
();
67
68
// Total in/out FourVector for vertex
69
virtual
HepMC::FourVector
vtxInMom
(
HepMC::ConstGenVertexPtr
);
70
virtual
HepMC::FourVector
vtxOutMom
(
HepMC::ConstGenVertexPtr
);
71
72
private
:
73
75
CompactHardTruth
();
76
78
std::string
m_mcEventsName
;
79
std::string
m_thinnedMcEventsName
;
80
81
// Variables
82
int
m_evtCount
= 0;
83
int
m_missCount
= 0;
84
float
m_partonCut
;
85
float
m_hardCut
;
86
87
int
m_dangleFound
= 0;
88
int
m_dangleRemoved
= 0;
89
float
m_danglePtMax
= 0.0F;
90
float
m_danglePtCut
;
91
92
int
m_maxCount
;
93
94
int
m_thinParticles
= 0;
95
int
m_thinVertices
= 0;
96
97
};
98
99
100
}
//> end namespace DerivationFramework
101
#endif //> !DERIVATIONFRAMEWORK_COMPACTHARDTRUTH_H
DerivationFramework::CompactHardTruth::m_maxCount
int m_maxCount
Definition:
CompactHardTruth.h:92
DerivationFramework::CompactHardTruth::m_missCount
int m_missCount
Definition:
CompactHardTruth.h:83
DerivationFramework::CompactHardTruth::execute
virtual StatusCode execute()
Definition:
CompactHardTruth.cxx:107
GenEvent.h
GenVertex.h
DerivationFramework::CompactHardTruth
Definition:
CompactHardTruth.h:48
GenParticle.h
DerivationFramework::CompactHardTruth::m_dangleFound
int m_dangleFound
Definition:
CompactHardTruth.h:87
AthAlgorithm.h
DerivationFramework::CompactHardTruth::m_danglePtCut
float m_danglePtCut
Definition:
CompactHardTruth.h:90
IMcVtxFilterTool
Definition:
IMcVtxFilterTool.h:27
DerivationFramework::CompactHardTruth::initialize
virtual StatusCode initialize()
Definition:
CompactHardTruth.cxx:67
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework
THE reconstruction tool.
Definition:
ParticleSortingAlg.h:24
DerivationFramework::CompactHardTruth::~CompactHardTruth
virtual ~CompactHardTruth()
Destructor:
Definition:
CompactHardTruth.cxx:63
AthAlgorithm
Definition:
AthAlgorithm.h:47
DerivationFramework::CompactHardTruth::finalize
virtual StatusCode finalize()
Definition:
CompactHardTruth.cxx:91
DerivationFramework::CompactHardTruth::m_thinVertices
int m_thinVertices
Definition:
CompactHardTruth.h:95
DerivationFramework::CompactHardTruth::m_mcEventsName
std::string m_mcEventsName
Containers.
Definition:
CompactHardTruth.h:78
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:240
DerivationFramework::CompactHardTruth::m_partonCut
float m_partonCut
Definition:
CompactHardTruth.h:84
DerivationFramework::CompactHardTruth::m_hardCut
float m_hardCut
Definition:
CompactHardTruth.h:85
DerivationFramework::CompactHardTruth::vtxInMom
virtual HepMC::FourVector vtxInMom(HepMC::ConstGenVertexPtr)
Definition:
CompactHardTruth.cxx:1383
DerivationFramework::CompactHardTruth::m_danglePtMax
float m_danglePtMax
Definition:
CompactHardTruth.h:89
DerivationFramework::CompactHardTruth::m_evtCount
int m_evtCount
Definition:
CompactHardTruth.h:82
DerivationFramework::CompactHardTruth::m_thinnedMcEventsName
std::string m_thinnedMcEventsName
Definition:
CompactHardTruth.h:79
DerivationFramework::CompactHardTruth::CompactHardTruth
CompactHardTruth()
Default constructor:
HepMC::ConstGenVertexPtr
const HepMC::GenVertex * ConstGenVertexPtr
Definition:
GenVertex.h:60
DerivationFramework::CompactHardTruth::m_dangleRemoved
int m_dangleRemoved
Definition:
CompactHardTruth.h:88
DerivationFramework::CompactHardTruth::vtxOutMom
virtual HepMC::FourVector vtxOutMom(HepMC::ConstGenVertexPtr)
Definition:
CompactHardTruth.cxx:1405
DerivationFramework::CompactHardTruth::m_thinParticles
int m_thinParticles
Definition:
CompactHardTruth.h:94
Generated on Mon Sep 29 2025 21:08:04 for ATLAS Offline Software by
1.8.18