00001 #ifndef HZZ2L2NU_INCLUDE_PILEUPIDFILTER_H_ 00002 #define HZZ2L2NU_INCLUDE_PILEUPIDFILTER_H_ 00003 00004 #include <utility> 00005 #include <vector> 00006 00007 #include <Options.h> 00008 #include <PhysicsObjects.h> 00009 00010 00029 class PileUpIdFilter { 00030 public: 00031 PileUpIdFilter(Options const &options); 00032 00034 std::vector<double> const &GetAbsEtaEdges() const { 00035 return absEtaEdges_; 00036 } 00037 00039 std::pair<double, double> GetPtRange() const { 00040 return {minPt_, maxPt_}; 00041 } 00042 00044 std::vector<Jet::PileUpId> const &GetWorkingPoints() const { 00045 return workingPoints_; 00046 } 00047 00049 bool IsTaggable(Jet const &jet) const { 00050 return jet.p4.Pt() >= minPt_ and jet.p4.Pt() <= maxPt_; 00051 } 00052 00060 bool operator()(Jet const &jet) const; 00061 00062 private: 00064 bool enabled_; 00065 00067 double minPt_, maxPt_; 00068 00075 std::vector<double> absEtaEdges_; 00076 00084 std::vector<Jet::PileUpId> workingPoints_; 00085 }; 00086 00087 #endif // HZZ2L2NU_INCLUDE_PILEUPIDFILTER_H_ 00088