ATLAS Offline Software
TrackCounting.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef JETTAGTOOLS_TRACKCOUNTING_H
6 #define JETTAGTOOLS_TRACKCOUNTING_H
7 
8 /******************************************************
9  @class TrackCounting
10 
11  b-tagging AlgTool based on counting tracks with an
12  impact parameter significence exceeding a given
13  threshold
14 
15  @author Thomas Goepfert <thomas.goepfert@cern.ch>
16 ********************************************************/
17 
19 #include "GaudiKernel/ToolHandle.h"
20 #include "JetTagTools/ITagTool.h"
21 
22 #include <vector>
23 
24 namespace Reco { class ITrackToVertex; }
25 namespace Trk { class VxCandidate; class ITrackToVertexIPEstimator; }
26 //class Jet;
27 
28 namespace Analysis {
29 
30  class TrackCountingInfo;
31  class TrackSelector;
32  class TrackGrade;
33  class TrackGradePartition;
34  class ITrackGradeFactory;
35  class GradedTrack;
36  class SVForIPTool;
37 
38  class TrackCounting : public AthAlgTool , virtual public ITagTool
39  {
40  public:
41  TrackCounting(const std::string&,const std::string&,const IInterface*);
42 
44  virtual ~TrackCounting();
47  void finalizeHistos(){};
48 
52  void setOrigin(const Trk::VxCandidate* priVtx);
53 
55  void tagJet(xAOD::Jet& jetToTag);
56 
57  private:
58 
60  ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool;
61 
63  ToolHandle< TrackSelector > m_trackSelectorTool;
64 
66  std::vector<GradedTrack> m_tracksInJet;
67 
69  // this pointer does not need to be deleted in the destructor (because it
70  // points to something in storegate)
72 
74  std::vector<std::string> m_trackGradePartitionsDefinition;
75  std::vector<TrackGradePartition*> m_trackGradePartitions;
76 
81 
82  bool m_flipIP;
83 
86 
87  std::string m_truthMatchingName; // name of truthMatchingTool instance to get TruthInfo
88  double m_purificationDeltaR; // skip light jets with heavy flavor in this cone
89 
90  std::vector<std::string> m_jetCollectionList;
91 
92  //GP: use Tool for getting the secondary vertex information
95  ToolHandle< SVForIPTool > m_SVForIPTool;
96 
98  ToolHandle< ITrackGradeFactory > m_trackGradeFactory;
99 
101  ToolHandle< Trk::ITrackToVertexIPEstimator > m_trackToVertexIPEstimator;
104 
106  template <class T> static bool m_greater(T a, T b){
107  return a > b;
108  }
109 
110  }; // End class
111  inline void TrackCounting::setOrigin(const Trk::VxCandidate* priVtx) { m_priVtx=priVtx; }
112 
113 } // End namespace
114 
115 #endif
Analysis::TrackCounting::m_unbiasIPEstimation
bool m_unbiasIPEstimation
option to unbias IP estimation (remove track from vertex)
Definition: TrackCounting.h:103
Analysis::TrackCounting::m_truthMatchingName
std::string m_truthMatchingName
Definition: TrackCounting.h:87
Analysis::TrackCounting::setOrigin
void setOrigin(const Trk::VxCandidate *priVtx)
Set the primary vertex.
Definition: TrackCounting.h:111
Analysis::TrackCounting::m_trackSelectorTool
ToolHandle< TrackSelector > m_trackSelectorTool
Track selection cuts for TrackCounting.
Definition: TrackCounting.h:63
Analysis::ITagTool
Definition: ITagTool.h:33
Analysis::TrackCounting::~TrackCounting
virtual ~TrackCounting()
Implementations of the methods defined in the abstract base class.
Definition: TrackCounting.cxx:72
Analysis::TrackCounting::m_jetCollectionList
std::vector< std::string > m_jetCollectionList
Definition: TrackCounting.h:90
Analysis::TrackCounting::m_SignWithSvx
bool m_SignWithSvx
Definition: TrackCounting.h:80
Analysis::TrackCounting
Definition: TrackCounting.h:39
Analysis::TrackCounting::finalizeHistos
void finalizeHistos()
finalize the histos: Normalize other histos and fill the integratedNegativeIP histos.
Definition: TrackCounting.h:47
Analysis::TrackCounting::m_greater
static bool m_greater(T a, T b)
sort algorithm for vectors
Definition: TrackCounting.h:106
Analysis::TrackCounting::m_trackGradePartitionsDefinition
std::vector< std::string > m_trackGradePartitionsDefinition
track classification.
Definition: TrackCounting.h:74
Analysis::TrackCounting::finalize
StatusCode finalize()
Definition: TrackCounting.cxx:154
Analysis::TrackCounting::m_writeInfo
bool m_writeInfo
write tagging info to info class
Definition: TrackCounting.h:85
Analysis::TrackCounting::m_trackToVertexIPEstimator
ToolHandle< Trk::ITrackToVertexIPEstimator > m_trackToVertexIPEstimator
Tool for the estimation of the IPs to the Vertex.
Definition: TrackCounting.h:101
TrackSelector
Definition: Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h:24
Analysis::TrackCounting::m_secVxFinderNameForV0Removal
std::string m_secVxFinderNameForV0Removal
Definition: TrackCounting.h:93
Analysis::TrackCounting::m_trackGradeFactory
ToolHandle< ITrackGradeFactory > m_trackGradeFactory
ToolHandle for the ITrackGradeFactory tool.
Definition: TrackCounting.h:98
Analysis::TrackCounting::m_SVForIPTool
ToolHandle< SVForIPTool > m_SVForIPTool
Definition: TrackCounting.h:95
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ITagTool.h
Analysis::TrackCounting::m_trackGradePartitions
std::vector< TrackGradePartition * > m_trackGradePartitions
Definition: TrackCounting.h:75
AthAlgTool.h
Analysis::TrackCounting::TrackCounting
TrackCounting(const std::string &, const std::string &, const IInterface *)
Definition: TrackCounting.cxx:33
ITrackGradeFactory
Analysis::TrackCounting::initialize
StatusCode initialize()
Definition: TrackCounting.cxx:78
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Analysis
The namespace of all packages in PhysicsAnalysis/JetTagging.
Definition: BTaggingCnvAlg.h:20
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
Analysis::TrackCounting::m_flipIP
bool m_flipIP
Definition: TrackCounting.h:82
Analysis::TrackCounting::m_secVxFinderNameForIPSign
std::string m_secVxFinderNameForIPSign
Definition: TrackCounting.h:94
Reco
Definition: InDetV0FinderTool.h:89
Analysis::TrackCounting::tagJet
void tagJet(xAOD::Jet &jetToTag)
called by BJetBuilder
Definition: TrackCounting.cxx:160
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
Analysis::TrackCounting::m_tracksInJet
std::vector< GradedTrack > m_tracksInJet
The jet of TrackParticles to be tagged.
Definition: TrackCounting.h:66
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::VxCandidate
Definition: VxCandidate.h:27
AthAlgTool
Definition: AthAlgTool.h:26
Analysis::TrackCounting::m_RejectBadTracks
bool m_RejectBadTracks
possibility to exclude Bad Tracks found with SVTagger and possibility to use the sign of the impact p...
Definition: TrackCounting.h:79
Analysis::TrackCounting::m_priVtx
const Trk::VxCandidate * m_priVtx
Storage for the primary vertex.
Definition: TrackCounting.h:71
Analysis::TrackCounting::m_purificationDeltaR
double m_purificationDeltaR
Definition: TrackCounting.h:88
Analysis::TrackCounting::m_trackToVertexTool
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
TrackToVertex tool.
Definition: TrackCounting.h:60