CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackCountingTagInfo.h
Go to the documentation of this file.
1 #ifndef DataFormats_BTauReco_BJetTagTrackCounting_h
2 #define DataFormats_BTauReco_BJetTagTrackCounting_h
3 
6 
8 
9 namespace reco {
10 
12  {
13  public:
14 
16  const std::vector<double>& significance2d,
17  const std::vector<double>& significance3d,
18  const std::vector<int>& trackOrder2d,
19  const std::vector<int>& trackOrder3d,const JetTracksAssociationRef & jtaRef) : JTATagInfo(jtaRef),
20  m_significance2d(significance2d),
21  m_significance3d(significance3d),
22  m_trackOrder2d(trackOrder2d),
23  m_trackOrder3d(trackOrder3d) {}
24 
26 
27  virtual ~TrackCountingTagInfo() {}
28 
29  /* virtual const Track & track(size_t n,int ipType) const
30  {
31  return tracks()[trackIndex(n,ipType)];
32  } */
33 
34  virtual float significance(size_t n,int ip) const
35  {
36  if(ip == 0)
37  {
38  if(n <m_significance3d.size())
39  return m_significance3d[n];
40  }
41  else
42  {
43  if(n <m_significance2d.size())
44  return m_significance2d[n];
45  }
46  return -10.;
47  }
48 
49  virtual int trackIndex(size_t n,int ip) const
50  {
51  if(ip == 0)
52  {
53  if(n <m_significance3d.size())
54  return m_trackOrder3d[n];
55  }
56  else
57  {
58  if(n <m_significance2d.size())
59  return m_trackOrder2d[n];
60  }
61  return 0;
62  }
63 
64 
70  virtual float discriminator(size_t nth, int ipType) const { return significance(nth-1,ipType); }
71 
72  virtual int selectedTracks(int ipType) const
73  {
74  if(ipType == 0) return m_significance3d.size();
75  else return m_significance2d.size();
76  }
77 
78  virtual TrackCountingTagInfo* clone() const { return new TrackCountingTagInfo( * this ); }
79 
80  private:
81  std::vector<double> m_significance2d; //create a smarter container instead of
82  std::vector<double> m_significance3d; //create a smarter container instead of
83  std::vector<int> m_trackOrder2d; // this pair of vectors.
84  std::vector<int> m_trackOrder3d; // this pair of vectors.
85  };
86 
87 //typedef edm::ExtCollection< TrackCountingTagInfo,JetTagCollection> TrackCountingExtCollection;
88 //typedef edm::OneToOneAssociation<JetTagCollection, TrackCountingTagInfo> TrackCountingExtCollection;
89 
91 
92 }
93 
94 #endif // DataFormats_BTauReco_BJetTagTrackCounting_h
virtual int trackIndex(size_t n, int ip) const
TrackCountingTagInfo(const std::vector< double > &significance2d, const std::vector< double > &significance3d, const std::vector< int > &trackOrder2d, const std::vector< int > &trackOrder3d, const JetTracksAssociationRef &jtaRef)
std::vector< double > m_significance3d
const JetTracksAssociationRef & jtaRef(void) const
Definition: JTATagInfo.h:22
std::vector< double > m_significance2d
virtual int selectedTracks(int ipType) const
virtual float significance(size_t n, int ip) const
#define DECLARE_EDM_REFS(class_name)
Definition: RefMacros.h:10
std::vector< int > m_trackOrder3d
virtual float discriminator(size_t nth, int ipType) const
virtual TrackCountingTagInfo * clone() const
clone
std::vector< int > m_trackOrder2d