CMS 3D CMS Logo

IsoDepositVetos.h
Go to the documentation of this file.
1 #ifndef DataFormats_MuonReco_IsoDepositVetos_h
2 #define DataFormats_MuonReco_IsoDepositVetos_h
3 
6 
7 namespace reco {
8  namespace isodeposit {
9  class ConeVeto : public AbsVeto {
10  public:
11  ConeVeto(Direction dir, double dr) : vetoDir_(dir), dR2_(dr * dr) {}
13  bool veto(double eta, double phi, float value) const override;
14  void centerOn(double eta, double phi) override;
15 
16  private:
18  float dR2_;
19  };
20 
21  class ThresholdVeto : public AbsVeto {
22  public:
24  bool veto(double eta, double phi, float value) const override;
25  void centerOn(double eta, double phi) override;
26 
27  private:
28  float threshold_;
29  };
30 
32  public:
34  bool veto(double eta, double phi, float value) const override;
35  void centerOn(double eta, double phi) override;
36 
37  private:
38  float threshold_;
39  };
40 
41  class AbsThresholdVeto : public AbsVeto {
42  public:
44  bool veto(double eta, double phi, float value) const override;
45  void centerOn(double eta, double phi) override;
46 
47  private:
48  float threshold_;
49  };
50 
52  public:
54  bool veto(double eta, double phi, float value) const override;
55  void centerOn(double eta, double phi) override;
56 
57  private:
58  float threshold_;
59  };
60 
61  class ConeThresholdVeto : public AbsVeto {
62  public:
64  : vetoDir_(dir), dR2_(dr * dr), threshold_(threshold) {}
65  bool veto(double eta, double phi, float value) const override;
66  void centerOn(double eta, double phi) override;
67 
68  private:
70  float dR2_;
71  float threshold_;
72  };
73 
74  class AngleConeVeto : public AbsVeto {
75  public:
76  AngleConeVeto(const math::XYZVectorD& dir, double angle);
78  bool veto(double eta, double phi, float value) const override;
79  void centerOn(double eta, double phi) override;
80 
81  private:
83  float cosTheta_;
84  };
85 
86  class AngleCone : public AbsVeto {
87  public:
88  AngleCone(const math::XYZVectorD& dir, double angle);
89  AngleCone(Direction dir, double angle);
90  bool veto(double eta, double phi, float value) const override;
91  void centerOn(double eta, double phi) override;
92 
93  private:
95  float cosTheta_;
96  };
97 
98  class RectangularEtaPhiVeto : public AbsVeto {
99  public:
100  RectangularEtaPhiVeto(const math::XYZVectorD& dir, double etaMin, double etaMax, double phiMin, double phiMax);
101  RectangularEtaPhiVeto(Direction dir, double etaMin, double etaMax, double phiMin, double phiMax);
102  bool veto(double eta, double phi, float value) const override;
103  void centerOn(double eta, double phi) override;
104 
105  private:
108  };
109 
110  } // namespace isodeposit
111 } // namespace reco
112 #endif
bool veto(double eta, double phi, float value) const override
Return "true" if a deposit at specific (eta,phi) with that value must be vetoed in the sum...
bool veto(double eta, double phi, float value) const override
Return "true" if a deposit at specific (eta,phi) with that value must be vetoed in the sum...
void centerOn(double eta, double phi) override
bool veto(double eta, double phi, float value) const override
Return "true" if a deposit at specific (eta,phi) with that value must be vetoed in the sum...
bool veto(double eta, double phi, float value) const override
Return "true" if a deposit at specific (eta,phi) with that value must be vetoed in the sum...
ConeVeto(const reco::IsoDeposit::Veto &veto)
void centerOn(double eta, double phi) override
void centerOn(double eta, double phi) override
AngleCone(const math::XYZVectorD &dir, double angle)
void centerOn(double eta, double phi) override
bool veto(double eta, double phi, float value) const override
Return "true" if a deposit at specific (eta,phi) with that value must be vetoed in the sum...
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > XYZVectorD
spatial vector with cartesian internal representation
Definition: Vector3D.h:8
void centerOn(double eta, double phi) override
bool veto(double eta, double phi, float value) const override
Return "true" if a deposit at specific (eta,phi) with that value must be vetoed in the sum...
ConeVeto(Direction dir, double dr)
Definition: value.py:1
void centerOn(double eta, double phi) override
bool veto(double eta, double phi, float value) const override
Return "true" if a deposit at specific (eta,phi) with that value must be vetoed in the sum...
void centerOn(double eta, double phi) override
ConeThresholdVeto(Direction dir, double dr, double threshold)
AngleConeVeto(const math::XYZVectorD &dir, double angle)
fixed size matrix
bool veto(double eta, double phi, float value) const override
Return "true" if a deposit at specific (eta,phi) with that value must be vetoed in the sum...
RectangularEtaPhiVeto(const math::XYZVectorD &dir, double etaMin, double etaMax, double phiMin, double phiMax)
void centerOn(double eta, double phi) override
void centerOn(double eta, double phi) override
bool veto(double eta, double phi, float value) const override
Return "true" if a deposit at specific (eta,phi) with that value must be vetoed in the sum...
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11