CMS 3D CMS Logo

IsolatorByNominalEfficiency.h
Go to the documentation of this file.
1 #ifndef MuonIsolation_IsolatorByNominalEfficiency_H
2 #define MuonIsolation_IsolatorByNominalEfficiency_H
3 
14 #include <vector>
15 #include <string>
16 
17 namespace muonisolation { class NominalEfficiencyThresholds; }
18 
19 namespace muonisolation {
21  public:
23 
26  const std::vector<std::string> & ceff,
27  const std::vector<double> & weights);
28 
30  const std::vector<std::string> & ceff,
31  const std::vector<double> & weights, const std::vector<double> & thresh );
32 
33 
35 
37  Result result(const DepositContainer& deposits, const edm::Event* = nullptr) const override;
38 
39  Cuts cuts(float nominalEfficiency) const;
40 
41  private:
42 
43  class ConeSizes {
44  private:
45  enum IsoDim { DIM = 15};
46  static const float cone_dr[DIM];
47  public:
48  int dim() const { return DIM;}
49  double size(int i) const;
50  int index(float dr) const;
51  };
52 
53  // Compute the weighted sum of deposits of different type within dRcone
54  virtual double weightedSum(const DepositContainer& deposits, float dRcone) const;
55 
56  // Size of cone for a given nominal efficiency value.
57  int bestConeForEfficiencyIndex(float eff_thr) const;
58 
59  typedef std::multimap<float,int> mapNomEff_Cone;
60  mapNomEff_Cone cones(const std::vector<std::string>& names);
61 
63 
64  ResultType resultType() const override { return ISOL_FLOAT_TYPE;}
65 
66  private:
67  mapNomEff_Cone coneForEfficiency;
69  std::vector<double> theWeights;
70  std::vector<double> theDepThresholds;
72  };
73 }
74 
75 #endif
MuIsoBaseIsolator::DepositContainer DepositContainer
const std::string names[nVars_]
Result result(const DepositContainer &deposits, const edm::Event *=0) const override
Compute the deposit within the cone and return the isolation result.
IsolatorByNominalEfficiency(const std::string &thrFile, const std::vector< std::string > &ceff, const std::vector< double > &weights)
Constructor.
mapNomEff_Cone cones(const std::vector< std::string > &names)
virtual double weightedSum(const DepositContainer &deposits, float dRcone) const
std::vector< DepositAndVetos > DepositContainer
std::string findPath(const std::string &fileName)