CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/DataFormats/BTauReco/interface/IsolatedTauTagInfo.h

Go to the documentation of this file.
00001 
00002 #ifndef DataFormats_BTauReco_IsolatedTauTagInfo_h
00003 #define DataFormats_BTauReco_IsolatedTauTagInfo_h
00004 //
00005 // \class IsolatedTauTagInfo
00006 // \short Extended object for the Tau Isolation algorithm.
00007 // contains the result and the methods used in the ConeIsolation Algorithm, to create the 
00008 // object to be made persistent on RECO
00009 //
00010 // \author: Simone Gennai, based on ORCA class by S. Gennai and F. Moortgat
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     //default constructor
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     //destructor
00036     virtual ~IsolatedTauTagInfo() {}
00037     
00038     //get the tracks from the jetTag
00039     const TrackRefVector allTracks() const { return tracks(); }
00040 
00041     //get the selected tracks used to computed the isolation
00042     const TrackRefVector  selectedTracks() const {return selectedTracks_;}
00043     
00044     virtual IsolatedTauTagInfo* clone() const { return new IsolatedTauTagInfo( *this ); }
00045   
00046     // default discriminator: returns the value of the discriminator of the jet tag, i.e. the one computed with the parameters taken from the cfg file
00047     float discriminator() const { return m_discriminator; }
00048     //set discriminator value
00049      void setDiscriminator(double discriminator) { m_discriminator = discriminator; }
00050 
00051     // methods to be used to recomputed the isolation with a new set of parameters
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     // Used in case the PV is not considered
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     // return all tracks in a cone of size "size" around a direction "direction" 
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     // return the leading track in a given cone around the jet axis or a given direction
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