CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackIPTagInfo.h
Go to the documentation of this file.
1 #ifndef BTauReco_TrackIpTagInfo_h
2 #define BTauReco_TrackIpTagInfo_h
3 
12 
13 namespace reco {
14 
15 class TrackIPTagInfo : public JTATagInfo {
16 public:
17  struct TrackIPData {
25  };
26 
28  const std::vector<TrackIPData> & ipData,
29  const std::vector<float> & prob2d,
30  const std::vector<float> & prob3d,
33  const edm::Ref<VertexCollection> & pv,
34  const GlobalVector & axis,
35  const TrackRef & ghostTrack) :
36  JTATagInfo(jtaRef), m_data(ipData), m_prob2d(prob2d),
37  m_prob3d(prob3d), m_selectedTracks(selectedTracks), m_pv(pv),
38  m_axis(axis), m_ghostTrack(ghostTrack) {}
39 
41 
42  virtual ~TrackIPTagInfo() {}
43 
45  virtual TrackIPTagInfo * clone(void) const
46  { return new TrackIPTagInfo(*this); }
47 
56  virtual bool hasProbabilities() const
57  { return m_data.size() == m_prob3d.size(); }
58 
62  const std::vector<TrackIPData> & impactParameterData() const
63  { return m_data; }
64 
70  const std::vector<float> & probabilities(int ip) const {return (ip==0)?m_prob3d:m_prob2d; }
71 
74 
83  std::vector<size_t> sortedIndexesWithCut(float cut, SortCriteria mode = IP3DSig) const;
84 
88  std::vector<size_t> sortedIndexes(SortCriteria mode = IP3DSig) const;
89  reco::TrackRefVector sortedTracks(std::vector<size_t> indexes) const;
90 
91  virtual TaggingVariableList taggingVariables(void) const;
92 
93  const edm::Ref<VertexCollection> & primaryVertex() const { return m_pv; }
94 
95  const GlobalVector & axis() const { return m_axis; }
96  const TrackRef & ghostTrack() const { return m_ghostTrack; }
97 
98 private:
99  std::vector<TrackIPData> m_data;
100  std::vector<float> m_prob2d;
101  std::vector<float> m_prob3d;
106 };
107 
108 //typedef edm::ExtCollection< TrackIPTagInfo,JetTagCollection> TrackCountingExtCollection;
109 //typedef edm::OneToOneAssociation<JetTagCollection, TrackIPTagInfo> TrackCountingExtCollection;
110 
112 
113 }
114 
115 #endif
virtual TaggingVariableList taggingVariables(void) const
returns a description of the extended informations in a TaggingVariableList
const edm::Ref< VertexCollection > & primaryVertex() const
std::vector< size_t > sortedIndexesWithCut(float cut, SortCriteria mode=IP3DSig) const
virtual TrackIPTagInfo * clone(void) const
clone
edm::RefVector< TrackCollection > m_selectedTracks
std::vector< float > m_prob2d
edm::Ref< VertexCollection > m_pv
std::vector< TrackIPData > m_data
const TrackRef & ghostTrack() const
std::vector< float > m_prob3d
const JetTracksAssociationRef & jtaRef(void) const
Definition: JTATagInfo.h:22
const std::vector< float > & probabilities(int ip) const
#define DECLARE_EDM_REFS(class_name)
Definition: RefMacros.h:10
virtual bool hasProbabilities() const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalVector
vector in glovbal coordinate system
Definition: Vector3D.h:28
std::vector< size_t > sortedIndexes(SortCriteria mode=IP3DSig) const
reco::TrackRefVector sortedTracks(std::vector< size_t > indexes) const
const GlobalVector & axis() const
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalPoint
point in global coordinate system
Definition: Point3D.h:18
const std::vector< TrackIPData > & impactParameterData() const
TrackIPTagInfo(const std::vector< TrackIPData > &ipData, const std::vector< float > &prob2d, const std::vector< float > &prob3d, const edm::RefVector< TrackCollection > &selectedTracks, const JetTracksAssociationRef &jtaRef, const edm::Ref< VertexCollection > &pv, const GlobalVector &axis, const TrackRef &ghostTrack)
const edm::RefVector< TrackCollection > & selectedTracks() const