CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HLTDoubletDZ.h
Go to the documentation of this file.
1 #ifndef HLTDoubletDZ_h
2 #define HLTDoubletDZ_h
3 
4 //
5 // Class imlements |dZ|<Max for a pair of two objects
6 //
7 
15 
16 #include<string>
17 #include<vector>
18 namespace trigger {
19  class TriggerFilterObjectWithRefs;
20 }
21 
22 //
23 // class declaration
24 //
25 
26 template<typename T1, typename T2>
27 class HLTDoubletDZ : public HLTFilter {
28 
29  typedef std::vector<T1> T1Collection;
31  typedef std::vector<T2> T2Collection;
33 
34  public:
35 
36  explicit HLTDoubletDZ(const edm::ParameterSet&);
37  ~HLTDoubletDZ();
38  static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
39  virtual bool hltFilter(edm::Event&, const edm::EventSetup&, trigger::TriggerFilterObjectWithRefs & filterproduct) const override;
40  bool getCollections(edm::Event& iEvent, std::vector<T1Ref>& coll1, std::vector<T2Ref>& coll2, trigger::TriggerFilterObjectWithRefs & filterproduct) const;
41  bool computeDZ(edm::Event& iEvent, T1Ref& c1, T2Ref& c2) const;
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
52  const int triggerType1_;
53  const int triggerType2_;
54  const double minDR_; // minimum dR between two objects to be considered a pair
55  const double maxDZ_; // number of pairs passing cuts required
56  const int min_N_; // number of pairs passing cuts required
57  const bool checkSC_; // make sure SC constituents are different
58  const bool same_; // 1st and 2nd product are one and the same
59 };
60 
61 #endif //HLTDoubletDZ_h
const int triggerType1_
Definition: HLTDoubletDZ.h:52
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:51
HLTDoubletDZ(const edm::ParameterSet &)
Definition: HLTDoubletDZ.cc:29
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:49
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const int triggerType2_
Definition: HLTDoubletDZ.h:53
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:45
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:50
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:46
const bool same_
Definition: HLTDoubletDZ.h:58
bool getCollections(edm::Event &iEvent, std::vector< T1Ref > &coll1, std::vector< T2Ref > &coll2, trigger::TriggerFilterObjectWithRefs &filterproduct) const
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:47
int iEvent
Definition: GenABIO.cc:230
bool computeDZ(edm::Event &iEvent, T1Ref &c1, T2Ref &c2) const
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:48
const int min_N_
Definition: HLTDoubletDZ.h:56
virtual bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
const double maxDZ_
Definition: HLTDoubletDZ.h:55
const double minDR_
Definition: HLTDoubletDZ.h:54
std::vector< T1 > T1Collection
Definition: HLTDoubletDZ.h:29
std::vector< T2 > T2Collection
Definition: HLTDoubletDZ.h:31
edm::Ref< T2Collection > T2Ref
Definition: HLTDoubletDZ.h:32
edm::Ref< T1Collection > T1Ref
Definition: HLTDoubletDZ.h:30
const bool checkSC_
Definition: HLTDoubletDZ.h:57