ATLAS Offline Software
Loading...
Searching...
No Matches
EGammaAmbiguityTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5// Dear emacs, this is -*-c++-*-
6#ifndef __EGammaAmbiguityTool__
7#define __EGammaAmbiguityTool__
8
15
16// Atlas includes
17#include "AsgTools/AsgTool.h"
20
22 virtual public IEGammaAmbiguityTool
23{
25
26public:
28 EGammaAmbiguityTool(const std::string& myname);
29
30
32 virtual ~EGammaAmbiguityTool() = default;
33
34
35public:
37 virtual StatusCode initialize() override final;
38
40
41 virtual unsigned int ambiguityResolve(
42 const xAOD::CaloCluster* cluster,
43 const xAOD::Vertex* vx,
44 const xAOD::TrackParticle* tp,
45 xAOD::AmbiguityTool::AmbiguityType& type) const override final;
46
51 virtual unsigned int ambiguityResolve(
52 const xAOD::CaloCluster* cluster,
53 const xAOD::Vertex* vx,
54 const xAOD::TrackParticle* tp) const override final;
55
59 virtual unsigned int ambiguityResolve(const xAOD::Egamma& egamma) const override final;
60
64 virtual bool accept( const xAOD::Egamma& egamma) const override final;
65
70 bool hasInnermostPixelHit(const xAOD::TrackParticle& tp) const;
71
75
77 bool isInVertex(const xAOD::TrackParticle&, const xAOD::Vertex&) const;
78
81
83
98}; // End: class definition
99
100#endif
#define ASG_TOOL_CLASS2(CLASSNAME, INT1, INT2)
boost::graph_traits< boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS > >::vertex_descriptor Vertex
Principal data class for CaloCell clusters.
EGammaAmbiguityTool(const std::string &myname)
Standard constructor.
bool m_noVertexNoInnermostAsAmb
no vertex && no innermost hit -> amb.
int m_MinNoSiHits
Minimum number of silicon hits to be an electron and not a photon.
float m_maxEoverPCut
Maximum EoverP, more that this is ambiguous.
size_t nTrkWithInnermostPixelHits(const xAOD::Vertex &vx) const
Return the number of tracks with "innermost pixel hits" (see above) in the given vertex.
virtual ~EGammaAmbiguityTool()=default
Standard destructor.
bool isInVertex(const xAOD::TrackParticle &, const xAOD::Vertex &) const
Return true if the given TrackParticle is part of the vertex.
virtual unsigned int ambiguityResolve(const xAOD::CaloCluster *cluster, const xAOD::Vertex *vx, const xAOD::TrackParticle *tp, xAOD::AmbiguityTool::AmbiguityType &type) const override final
Return value: AuthorElectron, AuthorPhoton, AuthorAmbiguous, AuthorUnknown.
float m_maxDeltaR_innermost
Maximum value for Rconv - RfirstHit for Si+Si conversions where both tracks have innermost hits.
float m_minPtCut
Minimum Pt, less that this is ambiguous.
bool hasInnermostPixelHit(const xAOD::TrackParticle &tp) const
Return true if track has innermost pixel hit or next-to-innermost in case innermost is not expected o...
int m_MinNoPixHits
Minimum number of pixel hits to be an electron and not a photon.
virtual bool accept(const xAOD::Egamma &egamma) const override final
Accept or reject egamma object based on ambiguity resolution (e.g.
virtual StatusCode initialize() override final
Gaudi Service Interface method implementations.
bool passDeltaR_innermost(const xAOD::Vertex &vx) const
Return true if the vertex passes the requirement on Rconv - RfirstHit.
bool m_acceptAmbiguous
@When used as a selector reject/accpet ambiguous cases
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
elec/gamma data class.
Definition egamma.h:58
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
#define private