CMS 3D CMS Logo

HLTDoubletDZ.h
Go to the documentation of this file.
1 #ifndef HLTrigger_HLTfilters_HLTDoubletDZ_h
2 #define HLTrigger_HLTfilters_HLTDoubletDZ_h
3 
4 //
5 // Class implements |dZ|<Max for a pair of two objects
6 //
7 
11 
12 #include <string>
13 #include <vector>
14 
15 namespace edm {
17 }
18 
19 namespace trigger {
20  class TriggerFilterObjectWithRefs;
21 }
22 
23 template <typename T1, typename T2>
24 class HLTDoubletDZ : public HLTFilter {
25 public:
26  explicit HLTDoubletDZ(edm::ParameterSet const&);
27  ~HLTDoubletDZ() override = default;
28 
29  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
30 
32  edm::EventSetup const& iSetup,
33  trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
34 
35 private:
38 
39  bool getCollections(edm::Event const& iEvent,
40  std::vector<T1Ref>& coll1,
41  std::vector<T2Ref>& coll2,
42  trigger::TriggerFilterObjectWithRefs& filterproduct) const;
43 
44  bool haveSameSuperCluster(T1 const& c1, T2 const& c2) const;
45 
46  bool passCutMinDeltaR(T1 const& c1, T2 const& c2) const;
47 
48  bool computeDZ(edm::Event const& iEvent, T1 const& c1, T2 const& c2) const;
49 
50  // configuration
51  const std::vector<edm::InputTag> originTag1_; // input tag identifying originals 1st product
52  const std::vector<edm::InputTag> originTag2_; // input tag identifying originals 2nd product
53  const edm::InputTag inputTag1_; // input tag identifying filtered 1st product
54  const edm::InputTag inputTag2_; // input tag identifying filtered 2nd product
58  const int triggerType1_;
59  const int triggerType2_;
60  const double minDR_; // minimum dR between two objects to be considered a pair
61  const double minDR2_; // minDR_ * minDR_
62  const double maxDZ_; // number of pairs passing cuts required
63  const int min_N_; // number of pairs passing cuts required
64  const int minPixHitsForDZ_; // minimum number of required pixel hits to check DZ
65  const bool checkSC_; // make sure SC constituents are different
66  const bool same_; // 1st and 2nd product are one and the same
67 };
68 
69 #endif // HLTrigger_HLTfilters_HLTDoubletDZ_h
~HLTDoubletDZ() override=default
const int triggerType1_
Definition: HLTDoubletDZ.h:58
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:55
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const int triggerType2_
Definition: HLTDoubletDZ.h:59
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:51
bool computeDZ(edm::Event const &iEvent, T1 const &c1, T2 const &c2) const
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:52
const bool same_
Definition: HLTDoubletDZ.h:66
bool passCutMinDeltaR(T1 const &c1, T2 const &c2) const
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:53
int iEvent
Definition: GenABIO.cc:224
bool getCollections(edm::Event const &iEvent, std::vector< T1Ref > &coll1, std::vector< T2Ref > &coll2, trigger::TriggerFilterObjectWithRefs &filterproduct) const
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:54
const int min_N_
Definition: HLTDoubletDZ.h:63
bool haveSameSuperCluster(T1 const &c1, T2 const &c2) const
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:64
const double maxDZ_
Definition: HLTDoubletDZ.h:62
const double minDR_
Definition: HLTDoubletDZ.h:60
const double minDR2_
Definition: HLTDoubletDZ.h:61
HLT enums.
bool hltFilter(edm::Event &iEvent, edm::EventSetup const &iSetup, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
HLTDoubletDZ(edm::ParameterSet const &)
Definition: HLTDoubletDZ.cc:23
const edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:57
const bool checkSC_
Definition: HLTDoubletDZ.h:65