![]() |
![]() |
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 // void setBeamSpot(); 00028 void setPrimaryVertex(reco::Vertex * pv) {m_primaryVertex = pv;} 00029 00030 std::pair<float ,reco::IsolatedTauTagInfo> tag( const reco::JetTracksAssociationRef & jetTracks, const reco::Vertex & pv); 00031 00032 00033 private: 00034 reco::Vertex * m_primaryVertex; 00035 00036 // algorithm parameters 00037 int m_nthTrack; 00038 int m_cutPixelHits; 00039 int m_cutTotalHits; 00040 double m_cutMaxTIP; 00041 double m_cutMinPt; 00042 double m_cutMaxDecayLen; 00043 double m_cutMaxChiSquared; 00044 double matching_cone; 00045 double signal_cone; 00046 double isolation_cone; 00047 double pt_min_isolation; 00048 double pt_min_leadTrack; 00049 double dZ_vertex; 00050 int n_tracks_isolation_ring; 00051 bool useVertexConstrain_; 00052 bool useFixedSizeCone; 00053 double variableConeParameter; 00054 double variableMaxCone; 00055 double variableMinCone; 00056 }; 00057 00058 #endif // ConeIsolationAlgorithm_H