00001 #ifndef PhysicsTools_PatAlgos_interface_IsoDepositIsolator_h 00002 #define PhysicsTools_PatAlgos_interface_IsoDepositIsolator_h 00003 00004 #include "PhysicsTools/PatAlgos/interface/BaseIsolator.h" 00005 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h" 00006 #include "PhysicsTools/IsolationAlgos/interface/EventDependentAbsVeto.h" 00007 00008 00009 namespace pat { namespace helper { 00010 class IsoDepositIsolator : public BaseIsolator { 00011 public: 00012 typedef edm::ValueMap<reco::IsoDeposit> Isolation; 00013 00014 IsoDepositIsolator() {} 00015 IsoDepositIsolator(const edm::ParameterSet &conf, bool withCut) ; 00016 virtual ~IsoDepositIsolator() ; 00017 virtual void beginEvent(const edm::Event &event, const edm::EventSetup &eventSetup) ; 00018 virtual void endEvent() ; 00019 00020 virtual std::string description() const ; 00021 protected: 00022 enum Mode { Sum, Sum2, SumRelative, Sum2Relative, Max, MaxRelative, Count }; 00023 edm::Handle<Isolation> handle_; 00024 00025 float deltaR_; 00026 Mode mode_; 00027 reco::isodeposit::AbsVetos vetos_; 00028 reco::isodeposit::EventDependentAbsVetos evdepVetos_; // subset of the above, don't delete twice 00029 bool skipDefaultVeto_; 00030 00031 virtual float getValue(const edm::ProductID &id, size_t index) const ; 00032 }; // class IsoDepositIsolator 00033 } } // namespaces 00034 00035 #endif