ATLAS Offline Software
Loading...
Searching...
No Matches
CompactHardTruth.h
Go to the documentation of this file.
1
2
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
34#include "AtlasHepMC/GenVertex_fwd.h" //HepMC::ConstGenVertexPtr
35#include "AtlasHepMC/SimpleVector.h" //HepMC::FourVector typedef
36
37
38namespace DerivationFramework {
39
41 : public ::AthAlgorithm
42{
43
45 // Public methods:
47 public:
48
50 CompactHardTruth( const std::string& name, ISvcLocator* pSvcLocator );
51
53 virtual ~CompactHardTruth();
54
55 // Athena algorithm Hooks
56 virtual StatusCode initialize();
57 virtual StatusCode execute();
58 virtual StatusCode finalize();
59
60 // Total in/out FourVector for vertex
61 virtual HepMC::FourVector vtxInMom(HepMC::ConstGenVertexPtr);
62 virtual HepMC::FourVector vtxOutMom(HepMC::ConstGenVertexPtr);
63
64 private:
65
68
70 std::string m_mcEventsName;
72
73 // Variables
74 int m_evtCount = 0;
75 int m_missCount = 0;
76 float m_partonCut{};
77 float m_hardCut{};
78
81 float m_danglePtMax = 0.0F;
83
85
88
89};
90
91
92} //> end namespace DerivationFramework
93#endif //> !DERIVATIONFRAMEWORK_COMPACTHARDTRUTH_H
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
CompactHardTruth(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
virtual HepMC::FourVector vtxOutMom(HepMC::ConstGenVertexPtr)
virtual HepMC::FourVector vtxInMom(HepMC::ConstGenVertexPtr)
CompactHardTruth()
Default constructor:
THE reconstruction tool.
const HepMC::GenVertex * ConstGenVertexPtr
Definition GenVertex.h:60