1 |
#ifndef PhysicsTools_PatAlgos_interface_IsoDepositIsolator_h
|
2 |
#define PhysicsTools_PatAlgos_interface_IsoDepositIsolator_h
|
3 |
|
4 |
#include "PhysicsTools/PatAlgos/interface/BaseIsolator.h"
|
5 |
#include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
|
6 |
#include "PhysicsTools/IsolationAlgos/interface/EventDependentAbsVeto.h"
|
7 |
|
8 |
|
9 |
namespace pat { namespace helper {
|
10 |
class IsoDepositIsolator : public BaseIsolator {
|
11 |
public:
|
12 |
typedef edm::ValueMap<reco::IsoDeposit> Isolation;
|
13 |
|
14 |
IsoDepositIsolator() {}
|
15 |
IsoDepositIsolator(const edm::ParameterSet &conf, bool withCut) ;
|
16 |
virtual ~IsoDepositIsolator() ;
|
17 |
virtual void beginEvent(const edm::Event &event, const edm::EventSetup &eventSetup) ;
|
18 |
virtual void endEvent() ;
|
19 |
|
20 |
virtual std::string description() const ;
|
21 |
protected:
|
22 |
enum Mode { Sum, Sum2, SumRelative, Sum2Relative, Max, MaxRelative, Count };
|
23 |
edm::Handle<Isolation> handle_;
|
24 |
|
25 |
float deltaR_;
|
26 |
Mode mode_;
|
27 |
reco::isodeposit::AbsVetos vetos_;
|
28 |
reco::isodeposit::EventDependentAbsVetos evdepVetos_; // subset of the above, don't delete twice
|
29 |
bool skipDefaultVeto_;
|
30 |
|
31 |
virtual float getValue(const edm::ProductID &id, size_t index) const ;
|
32 |
}; // class IsoDepositIsolator
|
33 |
} } // namespaces
|
34 |
|
35 |
#endif
|