CMS 3D CMS Logo

HLTDoublet.h
Go to the documentation of this file.
1 #ifndef HLTDoublet_h
2 #define HLTDoublet_h
3 
23 #include <string>
24 #include <vector>
25 namespace trigger {
26  class TriggerFilterObjectWithRefs;
27 }
28 
29 //
30 // class declaration
31 //
32 
33 template <typename T1, typename T2>
34 class HLTDoublet : public HLTFilter {
35 public:
36  explicit HLTDoublet(const edm::ParameterSet&);
37  ~HLTDoublet() override;
38  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
39  bool hltFilter(edm::Event&,
40  const edm::EventSetup&,
41  trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
42 
43 private:
44  // configuration
45  const std::vector<edm::InputTag> originTag1_; // input tag identifying originals 1st product
46  const std::vector<edm::InputTag> originTag2_; // input tag identifying originals 2nd product
47  const edm::InputTag inputTag1_; // input tag identifying filtered 1st product
48  const edm::InputTag inputTag2_; // input tag identifying filtered 2nd product
51  const int triggerType1_;
52  const int triggerType2_;
53  const double min_Dphi_, max_Dphi_; // Delta phi window
54  const double min_Deta_, max_Deta_; // Delta eta window
55  const double min_Minv_, max_Minv_; // Minv(1,2) window
56  const double min_DelR_, max_DelR_; // Delta R window
57  const double min_Pt_, max_Pt_; // Pt(1,2) window
58  const int min_N_; // number of pairs passing cuts required
59 
60  // calculated from configuration in c'tor
61  const bool same_; // 1st and 2nd product are one and the same
62  const bool cutdphi_, cutdeta_, cutminv_, cutdelr_, cutpt_; // cuts are on=true or off=false
63 
64  //
65  typedef std::vector<T1> T1Collection;
67  typedef std::vector<T2> T2Collection;
69 };
70 
71 #endif //HLTDoublet_h
const edm::InputTag inputTag2_
Definition: HLTDoublet.h:48
const double min_Pt_
Definition: HLTDoublet.h:57
const double min_Deta_
Definition: HLTDoublet.h:54
HLTDoublet(const edm::ParameterSet &)
Definition: HLTDoublet.cc:29
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: HLTDoublet.cc:70
const bool same_
Definition: HLTDoublet.h:61
const bool cutpt_
Definition: HLTDoublet.h:62
edm::Ref< T2Collection > T2Ref
Definition: HLTDoublet.h:68
const double min_Dphi_
Definition: HLTDoublet.h:53
const edm::InputTag inputTag1_
Definition: HLTDoublet.h:47
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoublet.h:49
std::vector< T2 > T2Collection
Definition: HLTDoublet.h:67
const double min_Minv_
Definition: HLTDoublet.h:55
const double max_Deta_
Definition: HLTDoublet.h:54
const int triggerType2_
Definition: HLTDoublet.h:52
edm::Ref< T1Collection > T1Ref
Definition: HLTDoublet.h:66
const bool cutdphi_
Definition: HLTDoublet.h:62
const double min_DelR_
Definition: HLTDoublet.h:56
const bool cutdelr_
Definition: HLTDoublet.h:62
const int min_N_
Definition: HLTDoublet.h:58
const double max_Minv_
Definition: HLTDoublet.h:55
const double max_DelR_
Definition: HLTDoublet.h:56
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoublet.h:50
const double max_Pt_
Definition: HLTDoublet.h:57
~HLTDoublet() override
std::vector< T1 > T1Collection
Definition: HLTDoublet.h:65
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
Definition: HLTDoublet.cc:101
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoublet.h:46
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoublet.h:45
const int triggerType1_
Definition: HLTDoublet.h:51
const bool cutminv_
Definition: HLTDoublet.h:62
const double max_Dphi_
Definition: HLTDoublet.h:53
const bool cutdeta_
Definition: HLTDoublet.h:62