00001 #ifndef ConeIsolationAlgorithm_H 00002 #define ConeIsolationAlgorithm_H 00003 #include "DataFormats/BTauReco/interface/IsolatedTauTagInfo.h" 00004 #include "DataFormats/BTauReco/interface/JetTag.h" 00005 #include "DataFormats/VertexReco/interface/Vertex.h" 00006 #include "DataFormats/JetReco/interface/Jet.h" 00007 #include "DataFormats/TrackReco/interface/Track.h" 00008 #include "DataFormats/JetReco/interface/JetTracksAssociation.h" 00009 #include "DataFormats/GeometryVector/interface/GlobalVector.h" 00010 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00011 //Math 00012 #include "Math/GenVector/VectorUtil.h" 00013 #include "Math/GenVector/PxPyPzE4D.h" 00014 00015 class ConeIsolationAlgorithm { 00016 public: 00017 00018 ConeIsolationAlgorithm(const edm::ParameterSet & parameters ); 00019 ConeIsolationAlgorithm(); 00020 00021 // For out of framework usage we may need a different constructor 00022 // so we keep datamember as builtin types (instead of ParameterSet) 00023 // ConeIsolationAlgorithm (int,float,....); 00024 00025 ~ConeIsolationAlgorithm() {} 00026 00027 std::pair<float ,reco::IsolatedTauTagInfo> tag( const reco::JetTracksAssociationRef & jetTracks, const reco::Vertex & pv); 00028 00029 00030 private: 00031 // algorithm parameters 00032 int m_nthTrack; 00033 int m_cutPixelHits; 00034 int m_cutTotalHits; 00035 double m_cutMaxTIP; 00036 double m_cutMinPt; 00037 double m_cutMaxDecayLen; 00038 double m_cutMaxChiSquared; 00039 double matching_cone; 00040 double signal_cone; 00041 double isolation_cone; 00042 double pt_min_isolation; 00043 double pt_min_leadTrack; 00044 double dZ_vertex; 00045 int n_tracks_isolation_ring; 00046 bool useVertexConstrain_; 00047 bool useFixedSizeCone; 00048 double variableConeParameter; 00049 double variableMaxCone; 00050 double variableMinCone; 00051 }; 00052 00053 #endif // ConeIsolationAlgorithm_H