JetDetailedTrackSelectorTool.h 1.33 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/

// JetDetailedTrackSelectorTool.h

#ifndef JetDetailedTrackSelectorTool_H
#define JetDetailedTrackSelectorTool_H

#include "AthenaBaseComps/AthAlgTool.h"
#include "GaudiKernel/ToolHandle.h"
#include "GaudiKernel/ServiceHandle.h"
#include "TrkToolInterfaces/ITrackSelectorTool.h"
#include "xAODTracking/TrackParticle.h"
#include "xAODTracking/TrackParticle.h"
#include "xAODTracking/VertexFwd.h"

/**
 * @brief TrackSelector that pases all tracks.
 *
 * Replacement for InDetDetailedTrackSelectorTool that does
 * not use track propagation and so does not require magnetic
 * field or any other Athena-specific service.
 *
 * @author David Adams
 */

namespace Trk {
  class Track;
  class TrackParticleBase;
  class Vertex;
}

class JetDetailedTrackSelectorTool : virtual public Trk::ITrackSelectorTool, public AthAlgTool {

public:

  StatusCode initialize();

  StatusCode finalize();

  JetDetailedTrackSelectorTool(const std::string& t, const std::string& n, const IInterface*  p);

  ~JetDetailedTrackSelectorTool();

  bool decision(const Trk::Track& track,const Trk::Vertex* vertex) const;

  bool decision(const Trk::TrackParticleBase& track,const Trk::Vertex* vertex) const;

  bool decision(const xAOD::TrackParticle& track,const xAOD::Vertex* vertex) const;

};

#endif