File indexing completed on 2024-04-06 12:03:47
0001
0002 #ifndef DataFormats_BTauReco_IsolatedTauTagInfo_h
0003 #define DataFormats_BTauReco_IsolatedTauTagInfo_h
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include "DataFormats/BTauReco/interface/RefMacros.h"
0014 #include "DataFormats/Math/interface/Vector3D.h"
0015 #include "DataFormats/BTauReco/interface/JTATagInfo.h"
0016 #include "DataFormats/JetReco/interface/JetTracksAssociation.h"
0017
0018 namespace reco {
0019
0020 class IsolatedTauTagInfo : public JTATagInfo {
0021 public:
0022
0023 IsolatedTauTagInfo(void)
0024 : JTATagInfo(),
0025 selectedTracks_()
0026
0027 {}
0028
0029 IsolatedTauTagInfo(const TrackRefVector& tracks, const JetTracksAssociationRef& jtaRef)
0030 : JTATagInfo(jtaRef), selectedTracks_(tracks) {}
0031
0032
0033 ~IsolatedTauTagInfo() override {}
0034
0035
0036 const TrackRefVector allTracks() const { return tracks(); }
0037
0038
0039 const TrackRefVector selectedTracks() const { return selectedTracks_; }
0040
0041 IsolatedTauTagInfo* clone() const override { return new IsolatedTauTagInfo(*this); }
0042
0043
0044 float discriminator() const { return m_discriminator; }
0045
0046 void setDiscriminator(double discriminator) { m_discriminator = discriminator; }
0047
0048
0049 float discriminator(
0050 float m_cone, float sig_cone, float iso_con, float pt_min_lt, float pt_min_tk, int nTracksIsoRing = 0) const;
0051 float discriminator(const math::XYZVector& myVector,
0052 float m_cone,
0053 float sig_cone,
0054 float iso_con,
0055 float pt_min_lt,
0056 float pt_min_tk,
0057 int nTracksIsoRing) const;
0058
0059 float discriminator(float m_cone,
0060 float sig_cone,
0061 float iso_con,
0062 float pt_min_lt,
0063 float pt_min_tk,
0064 int nTracksIsoRing,
0065 float dz_lt) const;
0066 float discriminator(const math::XYZVector& myVector,
0067 float m_cone,
0068 float sig_cone,
0069 float iso_con,
0070 float pt_min_lt,
0071 float pt_min_tk,
0072 int nTracksIsoRing,
0073 float dz_lt) const;
0074
0075
0076 const TrackRefVector tracksInCone(const math::XYZVector& myVector, const float size, const float pt_min) const;
0077 const TrackRefVector tracksInCone(const math::XYZVector& myVector,
0078 const float size,
0079 const float pt_min,
0080 const float z_pv,
0081 const float dz_lt) const;
0082
0083
0084 void setLeadingTrack(const TrackRef);
0085 const TrackRef leadingSignalTrack() const;
0086 const TrackRef leadingSignalTrack(const float rm_cone, const float pt_min) const;
0087 const TrackRef leadingSignalTrack(const math::XYZVector& myVector, const float rm_cone, const float pt_min) const;
0088
0089 private:
0090 double m_discriminator;
0091 TrackRefVector selectedTracks_;
0092 TrackRef leadTrack_;
0093 };
0094
0095 DECLARE_EDM_REFS(IsolatedTauTagInfo)
0096
0097 }
0098
0099 #endif