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
39
40namespace ADD_CMODE(TauAnalysisTools)
41{
42class TauTruthTrackMatchingTool
43 : public ITauTruthTrackMatchingTool
44 , public asg::AsgTool
45{
47 ASG_TOOL_CLASS( TauTruthTrackMatchingTool,
48 ITauTruthTrackMatchingTool )
49
50public:
51
52 TauTruthTrackMatchingTool( const std::string& name );
53
54 virtual ~TauTruthTrackMatchingTool();
55
56 virtual StatusCode initialize() override;
57
58 // classify vector of tracks
59 virtual StatusCode classifyTracks(std::vector<const xAOD::TauTrack*>& vTracks) const override;
60
61 // classify a single track
62 virtual StatusCode classifyTrack(const xAOD::TauTrack& xTrackParticle) const override;
63
64private:
65
66 StatusCode classifyConversion(const xAOD::TauTrack& xTrackParticle, const xAOD::TruthParticle& xTruthParticle) const;
67 StatusCode checkTrackType(const xAOD::TauTrack& xTrackParticle) const;
68 StatusCode checkTrackIsTauInheritant(const xAOD::TauTrack& xTrackParticle) const;
69 bool checkTruthParent(const xAOD::TruthParticle& xTruthParticle, int& iDepth, std::string& sHistory) const;
70 const xAOD::TruthParticle* getTruthParticle(const xAOD::TauTrack& xTrackParticle) const;
71
72private:
73 CxxUtils::CachedValue<bool> m_bIsHadronicTrackAvailable;
74
75}; // class TauTruthTrackMatchingTool
76
77}
78#endif // TAUANALYSISTOOLS_TAUTRUTHTRACKMATCHINGTOOL_H
79
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Cached value with atomic update.
::StatusCode StatusCode
StatusCode definition for legacy code.
const xAOD::TruthParticle * getTruthParticle(const xAOD::IParticle *, bool debug=false)
return the truthParticle associated to the given IParticle (if any)
TauTrack_v1 TauTrack
Definition of the current version.
Definition TauTrack.h:16
TruthParticle_v1 TruthParticle
Typedef to implementation.
void initialize()