Go to the documentation of this file.00001
00002 #ifndef DataFormats_BTauReco_IsolatedTauTagInfo_h
00003 #define DataFormats_BTauReco_IsolatedTauTagInfo_h
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "DataFormats/BTauReco/interface/RefMacros.h"
00014 #include "DataFormats/Math/interface/Vector3D.h"
00015 #include "DataFormats/BTauReco/interface/JTATagInfo.h"
00016 #include "DataFormats/JetReco/interface/JetTracksAssociation.h"
00017
00018 namespace reco {
00019
00020 class IsolatedTauTagInfo : public JTATagInfo {
00021 public:
00022
00023 IsolatedTauTagInfo( void ) :
00024 JTATagInfo(),
00025 selectedTracks_()
00026
00027 {
00028 }
00029
00030 IsolatedTauTagInfo( const TrackRefVector & tracks, const JetTracksAssociationRef & jtaRef ) :
00031 JTATagInfo(jtaRef),
00032 selectedTracks_(tracks)
00033 { }
00034
00035
00036 virtual ~IsolatedTauTagInfo() {}
00037
00038
00039 const TrackRefVector allTracks() const { return tracks(); }
00040
00041
00042 const TrackRefVector selectedTracks() const {return selectedTracks_;}
00043
00044 virtual IsolatedTauTagInfo* clone() const { return new IsolatedTauTagInfo( *this ); }
00045
00046
00047 float discriminator() const { return m_discriminator; }
00048
00049 void setDiscriminator(double discriminator) { m_discriminator = discriminator; }
00050
00051
00052 float discriminator( float m_cone, float sig_cone, float iso_con, float pt_min_lt, float pt_min_tk, int nTracksIsoRing = 0) const;
00053 float discriminator( math::XYZVector myVector, float m_cone, float sig_cone, float iso_con, float pt_min_lt, float pt_min_tk, int nTracksIsoRing) const;
00054
00055 float discriminator( float m_cone, float sig_cone, float iso_con, float pt_min_lt, float pt_min_tk, int nTracksIsoRing, float dz_lt) const;
00056 float discriminator( math::XYZVector myVector, float m_cone, float sig_cone, float iso_con, float pt_min_lt, float pt_min_tk, int nTracksIsoRing, float dz_lt) const;
00057
00058
00059 const TrackRefVector tracksInCone(const math::XYZVector myVector, const float size, const float pt_min ) const;
00060 const TrackRefVector tracksInCone(const math::XYZVector myVector, const float size, const float pt_min, const float z_pv, const float dz_lt ) const;
00061
00062
00063 void setLeadingTrack(const TrackRef) ;
00064 const TrackRef leadingSignalTrack() const;
00065 const TrackRef leadingSignalTrack(const float rm_cone, const float pt_min) const;
00066 const TrackRef leadingSignalTrack(math::XYZVector myVector, const float rm_cone, const float pt_min) const;
00067
00068 private:
00069 double m_discriminator;
00070 TrackRefVector selectedTracks_;
00071 TrackRef leadTrack_;
00072 };
00073
00074 DECLARE_EDM_REFS( IsolatedTauTagInfo )
00075
00076 }
00077
00078 #endif // DataFormats_BTauReco_IsolatedTauTagInfo_h