File indexing completed on 2023-03-17 11:09:19
0001 #ifndef HLTGenericFilter_h
0002 #define HLTGenericFilter_h
0003
0004
0005
0006
0007
0008
0009
0010 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0011
0012 #include "FWCore/Framework/interface/Frameworkfwd.h"
0013 #include "FWCore/PluginManager/interface/ModuleDef.h"
0014
0015 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0016
0017 #include "DataFormats/RecoCandidate/interface/RecoEcalCandidate.h"
0018 #include "DataFormats/RecoCandidate/interface/RecoEcalCandidateIsolation.h"
0019
0020 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
0021 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateIsolation.h"
0022
0023 #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h"
0024
0025 namespace edm {
0026 class ConfigurationDescriptions;
0027 }
0028
0029
0030
0031
0032
0033 template <typename T1>
0034 class HLTGenericFilter : public HLTFilter {
0035 typedef std::vector<T1> T1Collection;
0036 typedef edm::Ref<T1Collection> T1Ref;
0037 typedef edm::AssociationMap<edm::OneToValue<std::vector<T1>, float> > T1IsolationMap;
0038
0039 public:
0040 explicit HLTGenericFilter(const edm::ParameterSet&);
0041 ~HLTGenericFilter() override;
0042 bool hltFilter(edm::Event&,
0043 const edm::EventSetup&,
0044 trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0045 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0046
0047 private:
0048 float getEnergy(T1Ref) const;
0049 float getEt(T1Ref) const;
0050
0051 edm::InputTag candTag_;
0052 edm::InputTag varTag_;
0053 edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> candToken_;
0054 edm::EDGetTokenT<T1IsolationMap> varToken_;
0055
0056 std::vector<double> energyLowEdges_;
0057 bool lessThan_;
0058 bool useEt_;
0059 std::vector<double> thrRegularEB_;
0060 std::vector<double> thrRegularEE_;
0061 std::vector<double> thrOverEEB_;
0062 std::vector<double> thrOverEEE_;
0063 std::vector<double> thrOverE2EB_;
0064 std::vector<double> thrOverE2EE_;
0065 int ncandcut_;
0066
0067 edm::InputTag l1EGTag_;
0068
0069 edm::InputTag rhoTag_;
0070 edm::EDGetTokenT<double> rhoToken_;
0071 bool doRhoCorrection_;
0072 double rhoMax_;
0073 double rhoScale_;
0074 std::vector<double> effectiveAreas_;
0075 std::vector<double> absEtaLowEdges_;
0076 };
0077
0078 #endif