ATLAS Offline Software
Loading...
Searching...
No Matches
TauTruthTrackMatchingTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TAUANALYSISTOOLS_TAUTRUTHTRACKMATCHINGTOOL_H
6#define TAUANALYSISTOOLS_TAUTRUTHTRACKMATCHINGTOOL_H
7
8/*
9 author: Dirk Duschinger
10 mail: dirk.duschinger@cern.ch
11 documentation in: ../README.rst
12*/
13
14// Framework include(s):
15#include "AsgTools/AsgTool.h"
18
19// Local include(s)
21
23#include "xAODTau/TauTrack.h"
24
25namespace TauAnalysisTools
26{
28{
29 UnclassifiedTrack = 0, // Track is unclassified
30 TauTrack = 1, // Track is from direct tau decay
31 ConversionTrack = 2, // Track is from conversion
32 UnderlyingEventTrack = 3, // Track is from underlying event
33 SecondaryTrack = 4, // Track is a secondary track
34 PileupTrack = 5, // Track is from pileup
35 FakeTrack = 6 // Track is a fake
36};
37
38
41 , public asg::AsgTool
42{
46
47public:
48
49 TauTruthTrackMatchingTool( const std::string& name );
50
52
53 virtual StatusCode initialize() override;
54
55 // classify vector of tracks
56 virtual StatusCode classifyTracks(std::vector<const xAOD::TauTrack*>& vTracks) const override;
57
58 // classify a single track
59 virtual StatusCode classifyTrack(const xAOD::TauTrack& xTrackParticle) const override;
60
61private:
62
63 StatusCode classifyConversion(const xAOD::TauTrack& xTrackParticle, const xAOD::TruthParticle& xTruthParticle) const;
64 StatusCode checkTrackType(const xAOD::TauTrack& xTrackParticle) const;
65 StatusCode checkTrackIsTauInheritant(const xAOD::TauTrack& xTrackParticle) const;
66 bool checkTruthParent(const xAOD::TruthParticle& xTruthParticle, int& iDepth, std::string& sHistory) const;
67 const xAOD::TruthParticle* getTruthParticle(const xAOD::TauTrack& xTrackParticle) const;
68
69private:
71
72}; // class TauTruthTrackMatchingTool
73
74}
75#endif // TAUANALYSISTOOLS_TAUTRUTHTRACKMATCHINGTOOL_H
76
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Cached value with atomic update.
Cached value with atomic update.
Definition CachedValue.h:55
const xAOD::TruthParticle * getTruthParticle(const xAOD::TauTrack &xTrackParticle) const
virtual StatusCode classifyTrack(const xAOD::TauTrack &xTrackParticle) const override
CxxUtils::CachedValue< bool > m_bIsHadronicTrackAvailable
virtual StatusCode classifyTracks(std::vector< const xAOD::TauTrack * > &vTracks) const override
StatusCode checkTrackIsTauInheritant(const xAOD::TauTrack &xTrackParticle) const
bool checkTruthParent(const xAOD::TruthParticle &xTruthParticle, int &iDepth, std::string &sHistory) const
StatusCode classifyConversion(const xAOD::TauTrack &xTrackParticle, const xAOD::TruthParticle &xTruthParticle) const
virtual StatusCode initialize() override
Declare the interface that the class provides.
virtual ASG_TOOL_CLASS(TauTruthTrackMatchingTool, TauAnalysisTools::ITauTruthTrackMatchingTool) public ~TauTruthTrackMatchingTool()
Create a proper constructor for Athena.
StatusCode checkTrackType(const xAOD::TauTrack &xTrackParticle) const
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
TauTrack_v1 TauTrack
Definition of the current version.
Definition TauTrack.h:16
TruthParticle_v1 TruthParticle
Typedef to implementation.