00001 #ifndef EgammaIsolationProducers_EgammaTrackExtractor_H
00002 #define EgammaIsolationProducers_EgammaTrackExtractor_H
00003
00004 #include <string>
00005 #include <vector>
00006
00007
00008 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
00009 #include "DataFormats/TrackReco/interface/Track.h"
00010 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00011 #include "DataFormats/Candidate/interface/Candidate.h"
00012 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
00013 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00014
00015 namespace egammaisolation {
00016
00017 class EgammaTrackExtractor : public reco::isodeposit::IsoDepositExtractor {
00018
00019 public:
00020
00021 EgammaTrackExtractor(){};
00022 EgammaTrackExtractor(const edm::ParameterSet& par);
00023
00024 virtual ~EgammaTrackExtractor(){}
00025
00026 virtual void fillVetos (const edm::Event & ev,
00027 const edm::EventSetup & evSetup, const reco::TrackCollection & track) {}
00028
00029 virtual reco::IsoDeposit::Vetos vetos(const edm::Event & ev,
00030 const edm::EventSetup & evSetup, const reco::Track & track)const;
00031
00032 virtual reco::IsoDeposit deposit (const edm::Event & ev,
00033 const edm::EventSetup & evSetup, const reco::Track & muon) const {
00034 edm::LogWarning("EgammaIsolationAlgos|EgammaTrackExtractor")
00035 << "This Function is not implemented, bad IsoDeposit Returned";
00036 return reco::IsoDeposit( reco::isodeposit::Direction(1,1) );
00037 }
00038
00039 virtual reco::IsoDeposit deposit (const edm::Event & ev,
00040 const edm::EventSetup & evSetup, const reco::Candidate & muon) const;
00041
00042 private:
00043 reco::IsoDeposit::Veto veto( const reco::IsoDeposit::Direction & dir) const;
00044 private:
00045
00046 edm::InputTag theTrackCollectionTag;
00047 std::string theDepositLabel;
00048 double minCandEt_;
00049 double theDiff_r;
00050 double theDiff_z;
00051 double theDR_Max;
00052 double theDR_Veto;
00053 std::string theBeamlineOption;
00054 edm::InputTag barrelEcalHitsTag_;
00055 edm::InputTag endcapEcalHitsTag_;
00056 edm::InputTag theBeamSpotLabel;
00057 uint theNHits_Min;
00058 double theChi2Ndof_Max;
00059 double theChi2Prob_Min;
00060 double thePt_Min;
00061 std::vector<double> paramForIsolBarrel_;
00062 std::vector<double> paramForIsolEndcap_;
00063 };
00064
00065 }
00066
00067 #endif