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