00001 #ifndef RecoTauTag_RecoTau_PFRecoTauAlgorithmBase 00002 #define RecoTauTag_RecoTau_PFRecoTauAlgorithmBase 00003 00004 #include "DataFormats/TauReco/interface/PFTauTagInfo.h" 00005 #include "DataFormats/TauReco/interface/PFTauTagInfoFwd.h" 00006 #include "DataFormats/TauReco/interface/PFTau.h" 00007 #include "DataFormats/TauReco/interface/PFTauFwd.h" 00008 #include "DataFormats/VertexReco/interface/Vertex.h" 00009 #include "DataFormats/VertexReco/interface/VertexFwd.h" 00010 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" 00011 #include "TrackingTools/TransientTrack/interface/TransientTrack.h" 00012 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00013 #include "FWCore/Utilities/interface/Exception.h" 00014 00015 class PFRecoTauAlgorithmBase 00016 { 00017 public: 00018 PFRecoTauAlgorithmBase(); 00019 PFRecoTauAlgorithmBase(const edm::ParameterSet&); 00020 00021 virtual ~PFRecoTauAlgorithmBase(); 00022 00023 void setTransientTrackBuilder(const TransientTrackBuilder*); 00024 //Add other common methods 00025 00026 //BASIC method 00027 virtual reco::PFTau buildPFTau(const reco::PFTauTagInfoRef&,const reco::Vertex&) = 0; 00028 00029 protected: 00030 const TransientTrackBuilder *TransientTrackBuilder_; 00031 //Add other common members 00032 00033 }; 00034 #endif