CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuIsoBaseIsolator.h
Go to the documentation of this file.
1 #ifndef MuonIsolation_MuIsoBaseIsolator_H
2 #define MuonIsolation_MuIsoBaseIsolator_H
3 
4 #include <vector>
8 
9 namespace muonisolation {
11 
12  public:
15 
16  struct DepositAndVetos {
17  DepositAndVetos(): dep(0), vetos(0) {}
18  DepositAndVetos(const reco::IsoDeposit* depA, const Vetos* vetosA = 0):
19  dep(depA), vetos(vetosA) {}
21  const Vetos* vetos;
22  };
23  typedef std::vector<DepositAndVetos> DepositContainer;
24 
25  enum ResultType {
30  };
31 
32  class Result {
33  public:
35  Result(ResultType typ) : valInt(-999), valFloat(-999.), valBool(false), typeF_(typ) {}
36 
37  template <typename T> T val() const;
38 
39  int valInt;
40  float valFloat;
41  bool valBool;
42  ResultType typeF() const {return typeF_;}
43 
44  protected:
46  };
47 
48 
49  virtual ~MuIsoBaseIsolator(){}
50 
52  virtual Result result(DepositContainer deposits) const = 0;
55  return result(deposits);
56  }
59  return result(deposits);
60  }
61 
62  virtual ResultType resultType() const = 0;
63 
64  };
65 
66  template<> inline int MuIsoBaseIsolator::Result::val<int>() const { return valInt;}
67  template<> inline float MuIsoBaseIsolator::Result::val<float>() const { return valFloat;}
68  template<> inline bool MuIsoBaseIsolator::Result::val<bool>() const { return valBool;}
69 
70 }
71 #endif
72 
reco::IsoDeposit::Vetos Vetos
virtual Result result(DepositContainer deposits, const reco::Track &muon) const
Compute and return the isolation variable, with vetoes and the muon.
virtual Result result(DepositContainer deposits) const =0
Compute and return the isolation variable.
virtual ResultType resultType() const =0
std::vector< DepositAndVetos > DepositContainer
std::vector< Veto > Vetos
Definition: IsoDeposit.h:58
DepositAndVetos(const reco::IsoDeposit *depA, const Vetos *vetosA=0)
virtual Result result(DepositContainer deposits, const reco::Candidate &muon) const
Compute and return the isolation variable, with vetoes and the muon.