ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
DerivationFramework
DerivationFrameworkMCTruth
DerivationFrameworkMCTruth
HadronOriginClassifier.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
/*
6
7
* @author Mirko Casolino, version w/o barcodes by Andrii Verbytskyi 2024
8
* @date June 2015
9
* @brief tool to compute oring of hadron to flag ttbar+HF
10
*
11
*/
12
13
#ifndef DerivationFrameworkMCTruth_HadronOriginClassifier_H
14
#define DerivationFrameworkMCTruth_HadronOriginClassifier_H
15
16
#include "
AthenaBaseComps/AthAlgTool.h
"
17
#include "
StoreGate/ReadHandleKey.h
"
18
#include "
xAODTruth/TruthEventContainer.h
"
19
#include "
xAODEventInfo/EventInfo.h
"
20
21
#include <map>
22
#include <set>
23
#include <string>
24
25
namespace
DerivationFramework
{
26
27
28
class
HadronOriginClassifier
:
public
AthAlgTool
{
29
30
31
public
:
32
HadronOriginClassifier
(
const
std::string& t,
const
std::string& n,
const
IInterface* p);
33
virtual
~HadronOriginClassifier
();
34
35
virtual
StatusCode
initialize
()
override
;
36
37
typedef
enum
{
extrajet
=0,
38
c_MPI
=-1,
b_MPI
=1,
39
c_FSR
=-2,
b_FSR
=2,
40
c_from_W
=-3,
b_from_W
=3,
41
c_from_top
=-4,
b_from_top
=4,
42
c_from_H
=-5,
b_from_H
=5}
HF_id
;
43
44
enum class
GEN_id
{
Pythia6
=0,
Pythia8
=1,
HerwigPP
=2,
Sherpa
=3 };
45
46
std::map<const xAOD::TruthParticle*, HF_id>
GetOriginMap
(
const
EventContext& ctx)
const
;
47
48
private
:
49
50
void
fillHadronMap
(std::set<const xAOD::TruthParticle*>& usedHadron, std::map<const xAOD::TruthParticle*,int>& mainHadronMap,
const
xAOD::TruthParticle
* mainhad,
const
xAOD::TruthParticle
* ihad,
bool
decayed=
false
)
const
;
51
52
void
buildPartonsHadronsMaps
(
const
EventContext& ctx,
53
std::map<const xAOD::TruthParticle*,int>& mainHadronMap,
54
std::map<const xAOD::TruthParticle*,HF_id>& partonsOrigin)
const
;
55
56
bool
isCHadronFromB
(
const
xAOD::TruthParticle
* part, std::shared_ptr<std::set<const xAOD::TruthParticle*>> checked =
nullptr
)
const
;
57
58
const
xAOD::TruthParticle
*
findInitial
(
const
xAOD::TruthParticle
* part, std::shared_ptr<std::set<const xAOD::TruthParticle*>> checked =
nullptr
)
const
;
59
60
bool
isFromTop
(
const
xAOD::TruthParticle
* part)
const
;
61
static
bool
isDirectlyFromTop
(
const
xAOD::TruthParticle
* part) ;
62
bool
isDirectlyFromWTop
(
const
xAOD::TruthParticle
* part)
const
;
63
64
static
bool
isDirectlyFromGluonQuark
(
const
xAOD::TruthParticle
* part) ;
65
bool
isFromGluonQuark
(
const
xAOD::TruthParticle
* part)
const
;
66
bool
isDirectlyFSRPythia6
(
const
xAOD::TruthParticle
* part)
const
;
67
68
bool
isDirectlyFromQuarkTop
(
const
xAOD::TruthParticle
* part)
const
;
69
bool
isFromQuarkTop
(
const
xAOD::TruthParticle
* part)
const
;
70
bool
isDirectlyFSR
(
const
xAOD::TruthParticle
* part)
const
;
71
bool
isFromWTop
(
const
xAOD::TruthParticle
* part)
const
;
72
73
static
bool
isDirectlyMPIPythia6
(
const
xAOD::TruthParticle
* part) ;
74
75
bool
isDirectlyMPIPythia8
(
const
xAOD::TruthParticle
* part)
const
;
76
bool
isDirectlyFromQuarkTopPythia8
(
const
xAOD::TruthParticle
* part)
const
;
77
bool
isFromQuarkTopPythia8
(
const
xAOD::TruthParticle
* part)
const
;
78
bool
isDirectlyFSRPythia8
(
const
xAOD::TruthParticle
* part)
const
;
79
80
static
bool
isDirectlyMPISherpa
(
const
xAOD::TruthParticle
* part) ;
81
82
83
inline
bool
IsHerwigPP
()
const
{
return
m_GenUsed
==
GEN_id::HerwigPP
;};
84
inline
bool
IsPythia8
()
const
{
return
m_GenUsed
==
GEN_id::Pythia8
;};
85
inline
bool
IsPythia6
()
const
{
return
m_GenUsed
==
GEN_id::Pythia6
;};
86
inline
bool
IsSherpa
()
const
{
return
m_GenUsed
==
GEN_id::Sherpa
;};
87
88
SG::ReadHandleKey<xAOD::TruthEventContainer>
m_mcName
{
this
,
"MCCollectionName"
,
"TruthEvents"
,
"TruthEventContainer key"
};
89
Gaudi::Property<double>
m_HadronPtMinCut
{
this
,
"HadronpTMinCut"
, 5000.};
90
Gaudi::Property<double>
m_HadronEtaMaxCut
{
this
,
"HadronetaMaxCut"
, 2.5};
91
Gaudi::Property<int>
m_DSID
{
this
,
"DSID"
, 410000};
92
GEN_id
m_GenUsed
{};
93
94
};
95
96
}
//namespace
97
98
99
#endif
//DerivationFrameworkMCTruth_HadronOriginClassifier_H
100
AthAlgTool.h
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
TruthEventContainer.h
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
DerivationFramework::HadronOriginClassifier::buildPartonsHadronsMaps
void buildPartonsHadronsMaps(const EventContext &ctx, std::map< const xAOD::TruthParticle *, int > &mainHadronMap, std::map< const xAOD::TruthParticle *, HF_id > &partonsOrigin) const
Definition
HadronOriginClassifier.cxx:431
DerivationFramework::HadronOriginClassifier::isDirectlyMPIPythia6
static bool isDirectlyMPIPythia6(const xAOD::TruthParticle *part)
Definition
HadronOriginClassifier.cxx:784
DerivationFramework::HadronOriginClassifier::m_DSID
Gaudi::Property< int > m_DSID
Definition
HadronOriginClassifier.h:91
DerivationFramework::HadronOriginClassifier::isDirectlyFromQuarkTop
bool isDirectlyFromQuarkTop(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:707
DerivationFramework::HadronOriginClassifier::isDirectlyFromTop
static bool isDirectlyFromTop(const xAOD::TruthParticle *part)
Definition
HadronOriginClassifier.cxx:618
DerivationFramework::HadronOriginClassifier::initialize
virtual StatusCode initialize() override
Definition
HadronOriginClassifier.cxx:36
DerivationFramework::HadronOriginClassifier::HadronOriginClassifier
HadronOriginClassifier(const std::string &t, const std::string &n, const IInterface *p)
Definition
HadronOriginClassifier.cxx:29
DerivationFramework::HadronOriginClassifier::isFromGluonQuark
bool isFromGluonQuark(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:671
DerivationFramework::HadronOriginClassifier::isCHadronFromB
bool isCHadronFromB(const xAOD::TruthParticle *part, std::shared_ptr< std::set< const xAOD::TruthParticle * > > checked=nullptr) const
Definition
HadronOriginClassifier.cxx:541
DerivationFramework::HadronOriginClassifier::isFromQuarkTop
bool isFromQuarkTop(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:725
DerivationFramework::HadronOriginClassifier::findInitial
const xAOD::TruthParticle * findInitial(const xAOD::TruthParticle *part, std::shared_ptr< std::set< const xAOD::TruthParticle * > > checked=nullptr) const
Definition
HadronOriginClassifier.cxx:812
DerivationFramework::HadronOriginClassifier::isDirectlyMPIPythia8
bool isDirectlyMPIPythia8(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:794
DerivationFramework::HadronOriginClassifier::~HadronOriginClassifier
virtual ~HadronOriginClassifier()
Definition
HadronOriginClassifier.cxx:34
DerivationFramework::HadronOriginClassifier::m_HadronEtaMaxCut
Gaudi::Property< double > m_HadronEtaMaxCut
MeV.
Definition
HadronOriginClassifier.h:90
DerivationFramework::HadronOriginClassifier::IsHerwigPP
bool IsHerwigPP() const
Definition
HadronOriginClassifier.h:83
DerivationFramework::HadronOriginClassifier::GEN_id
GEN_id
Definition
HadronOriginClassifier.h:44
DerivationFramework::HadronOriginClassifier::GEN_id::HerwigPP
@ HerwigPP
Definition
HadronOriginClassifier.h:44
DerivationFramework::HadronOriginClassifier::GEN_id::Sherpa
@ Sherpa
Definition
HadronOriginClassifier.h:44
DerivationFramework::HadronOriginClassifier::GEN_id::Pythia8
@ Pythia8
Definition
HadronOriginClassifier.h:44
DerivationFramework::HadronOriginClassifier::GEN_id::Pythia6
@ Pythia6
Definition
HadronOriginClassifier.h:44
DerivationFramework::HadronOriginClassifier::IsPythia6
bool IsPythia6() const
Definition
HadronOriginClassifier.h:85
DerivationFramework::HadronOriginClassifier::isFromTop
bool isFromTop(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:610
DerivationFramework::HadronOriginClassifier::isDirectlyFSRPythia8
bool isDirectlyFSRPythia8(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:732
DerivationFramework::HadronOriginClassifier::isDirectlyFromGluonQuark
static bool isDirectlyFromGluonQuark(const xAOD::TruthParticle *part)
Definition
HadronOriginClassifier.cxx:661
DerivationFramework::HadronOriginClassifier::isFromQuarkTopPythia8
bool isFromQuarkTopPythia8(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:777
DerivationFramework::HadronOriginClassifier::GetOriginMap
std::map< const xAOD::TruthParticle *, HF_id > GetOriginMap(const EventContext &ctx) const
Definition
HadronOriginClassifier.cxx:363
DerivationFramework::HadronOriginClassifier::HF_id
HF_id
Definition
HadronOriginClassifier.h:37
DerivationFramework::HadronOriginClassifier::b_FSR
@ b_FSR
Definition
HadronOriginClassifier.h:39
DerivationFramework::HadronOriginClassifier::b_MPI
@ b_MPI
Definition
HadronOriginClassifier.h:38
DerivationFramework::HadronOriginClassifier::b_from_H
@ b_from_H
Definition
HadronOriginClassifier.h:42
DerivationFramework::HadronOriginClassifier::b_from_top
@ b_from_top
Definition
HadronOriginClassifier.h:41
DerivationFramework::HadronOriginClassifier::c_from_W
@ c_from_W
Definition
HadronOriginClassifier.h:40
DerivationFramework::HadronOriginClassifier::b_from_W
@ b_from_W
Definition
HadronOriginClassifier.h:40
DerivationFramework::HadronOriginClassifier::c_from_top
@ c_from_top
Definition
HadronOriginClassifier.h:41
DerivationFramework::HadronOriginClassifier::c_from_H
@ c_from_H
Definition
HadronOriginClassifier.h:42
DerivationFramework::HadronOriginClassifier::extrajet
@ extrajet
Definition
HadronOriginClassifier.h:37
DerivationFramework::HadronOriginClassifier::c_FSR
@ c_FSR
Definition
HadronOriginClassifier.h:39
DerivationFramework::HadronOriginClassifier::c_MPI
@ c_MPI
Definition
HadronOriginClassifier.h:38
DerivationFramework::HadronOriginClassifier::m_HadronPtMinCut
Gaudi::Property< double > m_HadronPtMinCut
Definition
HadronOriginClassifier.h:89
DerivationFramework::HadronOriginClassifier::isDirectlyFromWTop
bool isDirectlyFromWTop(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:643
DerivationFramework::HadronOriginClassifier::IsPythia8
bool IsPythia8() const
Definition
HadronOriginClassifier.h:84
DerivationFramework::HadronOriginClassifier::isDirectlyFSR
bool isDirectlyFSR(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:695
DerivationFramework::HadronOriginClassifier::IsSherpa
bool IsSherpa() const
Definition
HadronOriginClassifier.h:86
DerivationFramework::HadronOriginClassifier::m_GenUsed
GEN_id m_GenUsed
Definition
HadronOriginClassifier.h:92
DerivationFramework::HadronOriginClassifier::m_mcName
SG::ReadHandleKey< xAOD::TruthEventContainer > m_mcName
Definition
HadronOriginClassifier.h:88
DerivationFramework::HadronOriginClassifier::isDirectlyFSRPythia6
bool isDirectlyFSRPythia6(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:676
DerivationFramework::HadronOriginClassifier::isFromWTop
bool isFromWTop(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:636
DerivationFramework::HadronOriginClassifier::fillHadronMap
void fillHadronMap(std::set< const xAOD::TruthParticle * > &usedHadron, std::map< const xAOD::TruthParticle *, int > &mainHadronMap, const xAOD::TruthParticle *mainhad, const xAOD::TruthParticle *ihad, bool decayed=false) const
Definition
HadronOriginClassifier.cxx:563
DerivationFramework::HadronOriginClassifier::isDirectlyFromQuarkTopPythia8
bool isDirectlyFromQuarkTopPythia8(const xAOD::TruthParticle *part) const
Definition
HadronOriginClassifier.cxx:752
DerivationFramework::HadronOriginClassifier::isDirectlyMPISherpa
static bool isDirectlyMPISherpa(const xAOD::TruthParticle *part)
Definition
HadronOriginClassifier.cxx:799
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
DerivationFramework
THE reconstruction tool.
Definition
CascadeTools.h:16
Pythia8
Author: James Monk (jmonk@cern.ch).
Definition
IPythia8Custom.h:10
xAOD::TruthParticle
TruthParticle_v1 TruthParticle
Typedef to implementation.
Definition
Event/xAOD/xAODTruth/xAODTruth/TruthParticle.h:15
EventInfo.h
Generated on
for ATLAS Offline Software by
1.17.0