File indexing completed on 2024-07-02 00:53:49
0001 #ifndef HLTrigger_Egamma_HLTEgammaCombMassFilter_h
0002 #define HLTrigger_Egamma_HLTEgammaCombMassFilter_h
0003
0004
0005
0006
0007
0008 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0009
0010 #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h"
0011
0012 #include "DataFormats/Math/interface/LorentzVector.h"
0013
0014 namespace edm {
0015 class ConfigurationDescriptions;
0016 }
0017
0018 class HLTEgammaCombMassFilter : public HLTFilter {
0019 public:
0020 explicit HLTEgammaCombMassFilter(const edm::ParameterSet&);
0021 ~HLTEgammaCombMassFilter() override;
0022 bool hltFilter(edm::Event&,
0023 const edm::EventSetup&,
0024 trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0025 static void getP4OfLegCands(const edm::Event& iEvent,
0026 const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs>& filterToken,
0027 std::vector<math::XYZTLorentzVector>& p4s);
0028 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0029 static void addObjectToFilterProduct(const edm::Event& iEvent,
0030 trigger::TriggerFilterObjectWithRefs& filterproduct,
0031 const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs>& token,
0032 size_t index);
0033
0034 private:
0035 edm::InputTag firstLegLastFilterTag_;
0036 edm::InputTag secondLegLastFilterTag_;
0037 edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> firstLegLastFilterToken_;
0038 edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> secondLegLastFilterToken_;
0039 double minMass_;
0040 edm::InputTag l1EGTag_;
0041 struct LorentzVectorComparator {
0042 bool operator()(const math::XYZTLorentzVector& lhs, const math::XYZTLorentzVector& rhs) const {
0043 return lhs.pt() < rhs.pt();
0044 }
0045 };
0046 };
0047
0048 #endif