Go to the documentation of this file.00001 #ifndef EgammaIsolationAlgos_EgammaEcalIsolation_h
00002 #define EgammaIsolationAlgos_EgammaEcalIsolation_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
00019 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
00020 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
00021 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h"
00022 #include "DataFormats/Candidate/interface/Candidate.h"
00023
00024 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00025
00026 #include "FWCore/Framework/interface/Event.h"
00027 #include "FWCore/Framework/interface/EventSetup.h"
00028 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00029 #include "FWCore/Utilities/interface/InputTag.h"
00030
00031 #include "DataFormats/TrackReco/interface/Track.h"
00032 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00033
00034 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
00035 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
00036
00037 namespace egammaisolation {
00038
00039 class EgammaEcalExtractor : public reco::isodeposit::IsoDepositExtractor {
00040 public:
00041 EgammaEcalExtractor(const edm::ParameterSet& par) :
00042 etMin_(par.getParameter<double>("etMin")),
00043 conesize_(par.getParameter<double>("extRadius")),
00044 scmatch_(par.getParameter<bool>("superClusterMatch")),
00045 basicClusterTag_(par.getParameter<edm::InputTag>("basicClusters")),
00046 superClusterTag_(par.getParameter<edm::InputTag>("superClusters")) { }
00047
00048
00049 virtual ~EgammaEcalExtractor();
00050
00051 virtual void fillVetos(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::TrackCollection & tracks) { }
00052 virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Track & track) const {
00053 throw cms::Exception("Configuration Error") << "This extractor " << (typeid(this).name()) << " is not made for tracks";
00054 }
00055 virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Candidate & c) const ;
00056
00057 private:
00058
00059
00060
00061
00062
00063 double etMin_;
00064 double conesize_;
00065 bool scmatch_;
00066
00067 edm::InputTag basicClusterTag_;
00068 edm::InputTag superClusterTag_;
00069 };
00070
00071 }
00072 #endif