CMS 3D CMS Logo

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  typedef std::vector<T1> T1Collection;
30  typedef std::vector<T2> T2Collection;
32 
33 public:
34  explicit HLTDoubletDZ(const edm::ParameterSet&);
35  ~HLTDoubletDZ() override;
36  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
37  bool hltFilter(edm::Event&,
38  const edm::EventSetup&,
39  trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
41  std::vector<T1Ref>& coll1,
42  std::vector<T2Ref>& coll2,
43  trigger::TriggerFilterObjectWithRefs& filterproduct) const;
44  bool computeDZ(edm::Event& iEvent, T1Ref& c1, T2Ref& c2) const;
45 
46 private:
47  // configuration
48  const std::vector<edm::InputTag> originTag1_; // input tag identifying originals 1st product
49  const std::vector<edm::InputTag> originTag2_; // input tag identifying originals 2nd product
50  const edm::InputTag inputTag1_; // input tag identifying filtered 1st product
51  const edm::InputTag inputTag2_; // input tag identifying filtered 2nd product
55  const int triggerType1_;
56  const int triggerType2_;
57  const double minDR_; // minimum dR between two objects to be considered a pair
58  const double maxDZ_; // number of pairs passing cuts required
59  const int minPixHitsForDZ_; // minimum number of required pixel hits to check DZ
60  const int min_N_; // number of pairs passing cuts required
61  const bool checkSC_; // make sure SC constituents are different
62  const bool same_; // 1st and 2nd product are one and the same
63 };
64 
65 #endif //HLTDoubletDZ_h
const int triggerType1_
Definition: HLTDoubletDZ.h:55
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:54
HLTDoubletDZ(const edm::ParameterSet &)
Definition: HLTDoubletDZ.cc:34
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:52
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const int triggerType2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:48
bool computeDZ(edm::Event &iEvent, T1Ref &c1, T2Ref &c2) const
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:53
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:49
const bool same_
Definition: HLTDoubletDZ.h:62
~HLTDoubletDZ() override
bool getCollections(edm::Event &iEvent, std::vector< T1Ref > &coll1, std::vector< T2Ref > &coll2, trigger::TriggerFilterObjectWithRefs &filterproduct) const
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:50
int iEvent
Definition: GenABIO.cc:224
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:51
const int min_N_
Definition: HLTDoubletDZ.h:60
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:59
const double maxDZ_
Definition: HLTDoubletDZ.h:58
const double minDR_
Definition: HLTDoubletDZ.h:57
std::vector< T1 > T1Collection
Definition: HLTDoubletDZ.h:28
std::vector< T2 > T2Collection
Definition: HLTDoubletDZ.h:30
edm::Ref< T2Collection > T2Ref
Definition: HLTDoubletDZ.h:31
edm::Ref< T1Collection > T1Ref
Definition: HLTDoubletDZ.h:29
const bool checkSC_
Definition: HLTDoubletDZ.h:61