CMS 3D CMS Logo

MuIsoDepositVetos.h

Go to the documentation of this file.
00001 #ifndef DataFormats_MuonReco_MuIsoDepositVetos_h
00002 #define DataFormats_MuonReco_MuIsoDepositVetos_h
00003 
00004 #ifndef USE_MUISODEPOSIT_REQUIRED
00005 #error THIS FILE IS NOT SUPPOSED TO BE INCLUDED: USE "DataFormats/RecoCandidate/interface/IsoDepositVetos.h" instead
00006 #error THIS FILE IS HERE FOR BKW COMPATIBILITY ONLY
00007 //#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h"
00008 #else
00009 
00010 #include "DataFormats/Math/interface/Vector3D.h"
00011 #include "DataFormats/MuonReco/interface/MuIsoDeposit.h"
00012 
00013 
00014 namespace reco {
00015     namespace muisodeposit {
00016         typedef ::muonisolation::Direction Direction;
00017 
00018         class ConeVeto : public AbsVeto { 
00019             public:
00020                 ConeVeto(Direction dir, double dr) : vetoDir_(dir), dR2_(dr*dr) {}
00021                 ConeVeto(const reco::MuIsoDeposit::Veto &veto) : vetoDir_(veto.vetoDir), dR2_(veto.dR*veto.dR) {}
00022                 virtual bool veto(double eta, double phi, float value) const ;
00023                             virtual void centerOn(double eta, double phi) ;
00024             private:
00025                 Direction vetoDir_; float dR2_; 
00026         };
00027 
00028         class ThresholdVeto : public AbsVeto { 
00029             public:
00030                 ThresholdVeto(double threshold) : threshold_(threshold) {}
00031                 virtual bool veto(double eta, double phi, float value) const ;
00032                             virtual void centerOn(double eta, double phi) ;
00033             private:
00034                 float threshold_;
00035         };
00036 
00037         class ConeThresholdVeto : public AbsVeto { 
00038             public:
00039                 ConeThresholdVeto(Direction dir, double dr, double threshold) : vetoDir_(dir), dR2_(dr*dr), threshold_(threshold) {}
00040                 virtual bool veto(double eta, double phi, float value) const ;
00041                             virtual void centerOn(double eta, double phi) ;
00042             private:
00043                 Direction vetoDir_; float dR2_; float threshold_;
00044         };
00045 
00046         class AngleConeVeto : public AbsVeto { 
00047             public:
00048                 AngleConeVeto(math::XYZVectorD dir, double angle) ;
00049                 AngleConeVeto(Direction dir, double angle) ;
00050                 virtual bool veto(double eta, double phi, float value) const ;
00051                             virtual void centerOn(double eta, double phi) ;
00052             private:
00053                 math::XYZVectorD vetoDir_; float cosTheta_; 
00054         };
00055 
00056         class AngleCone : public AbsVeto { 
00057             public:
00058                 AngleCone(math::XYZVectorD dir, double angle) ;
00059                 AngleCone(Direction dir, double angle) ;
00060                 virtual bool veto(double eta, double phi, float value) const ;
00061                             virtual void centerOn(double eta, double phi) ;
00062             private:
00063                 math::XYZVectorD coneDir_; float cosTheta_; 
00064         };
00065 
00066         class RectangularEtaPhiVeto : public AbsVeto { 
00067             public:
00068                 RectangularEtaPhiVeto(double etaMin, double etaMax, double phiMin, double phiMax) :
00069                     etaMin_(etaMin), etaMax_(etaMax), phiMin_(phiMin), phiMax_(phiMax) { }
00070                 virtual bool veto(double eta, double phi, float value) const ;
00071             private:
00072                 double etaMin_, etaMax_, phiMin_, phiMax_;
00073         };
00074 
00075 
00076 
00077     } 
00078 }
00079 
00080 #endif //USE_MUISODEPOSIT_REQUIRED
00081 #endif

Generated on Tue Jun 9 17:31:21 2009 for CMSSW by  doxygen 1.5.4