CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Types | Private Attributes
HLTDoubletDZ< T1, T2 > Class Template Reference

#include <HLTDoubletDZ.h>

Inheritance diagram for HLTDoubletDZ< T1, T2 >:
HLTFilter edm::global::EDFilter<> edm::global::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

bool computeDZ (edm::Event &iEvent, T1Ref &c1, T2Ref &c2) const
 
template<>
bool computeDZ (edm::Event &iEvent, T1Ref &r1, T2Ref &r2) const
 
template<>
bool computeDZ (edm::Event &iEvent, T1Ref &r1, T2Ref &r2) const
 
template<>
bool computeDZ (edm::Event &iEvent, T1Ref &r1, T2Ref &r2) const
 
template<>
bool computeDZ (edm::Event &iEvent, T1Ref &r1, T2Ref &r2) const
 
template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
bool getCollections (edm::Event &iEvent, std::vector< T1Ref > &coll1, std::vector< T2Ref > &coll2, trigger::TriggerFilterObjectWithRefs &filterproduct) const
 
 HLTDoubletDZ (const edm::ParameterSet &)
 
template<>
 HLTDoubletDZ (const edm::ParameterSet &iConfig)
 
template<>
 HLTDoubletDZ (const edm::ParameterSet &iConfig)
 
template<>
 HLTDoubletDZ (const edm::ParameterSet &iConfig)
 
template<>
 HLTDoubletDZ (const edm::ParameterSet &iConfig)
 
bool hltFilter (edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
 
 ~HLTDoubletDZ () override
 
- Public Member Functions inherited from HLTFilter
 HLTFilter (const edm::ParameterSet &config)
 
int module (edm::Event const &) const
 
const std::string * moduleLabel () const
 
int path (edm::Event const &) const
 
const std::string * pathName (edm::Event const &) const
 
std::pair< int, int > pmid (edm::Event const &) const
 
bool saveTags () const
 
 ~HLTFilter () override
 
- Public Member Functions inherited from edm::global::EDFilter<>
 EDFilter ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDFilterBase
 EDFilterBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDFilterBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from HLTFilter
static void makeHLTFilterDescription (edm::ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from edm::global::EDFilterBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Types

typedef std::vector< T1 > T1Collection
 
typedef edm::Ref< T1CollectionT1Ref
 
typedef std::vector< T2 > T2Collection
 
typedef edm::Ref< T2CollectionT2Ref
 

Private Attributes

const bool checkSC_
 
edm::EDGetTokenT< reco::ElectronCollectionelectronToken_
 
const edm::InputTag inputTag1_
 
const edm::InputTag inputTag2_
 
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefsinputToken1_
 
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefsinputToken2_
 
const double maxDZ_
 
const int min_N_
 
const double minDR_
 
const int minPixHitsForDZ_
 
const std::vector< edm::InputTagoriginTag1_
 
const std::vector< edm::InputTagoriginTag2_
 
const bool same_
 
const int triggerType1_
 
const int triggerType2_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDFilterBase
typedef EDFilterBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

template<typename T1, typename T2>
class HLTDoubletDZ< T1, T2 >

Definition at line 27 of file HLTDoubletDZ.h.

Member Typedef Documentation

template<typename T1 , typename T2 >
typedef std::vector<T1> HLTDoubletDZ< T1, T2 >::T1Collection
private

Definition at line 28 of file HLTDoubletDZ.h.

template<typename T1 , typename T2 >
typedef edm::Ref<T1Collection> HLTDoubletDZ< T1, T2 >::T1Ref
private

Definition at line 29 of file HLTDoubletDZ.h.

template<typename T1 , typename T2 >
typedef std::vector<T2> HLTDoubletDZ< T1, T2 >::T2Collection
private

Definition at line 30 of file HLTDoubletDZ.h.

template<typename T1 , typename T2 >
typedef edm::Ref<T2Collection> HLTDoubletDZ< T1, T2 >::T2Ref
private

Definition at line 31 of file HLTDoubletDZ.h.

Constructor & Destructor Documentation

template<typename T1 , typename T2 >
HLTDoubletDZ< T1, T2 >::HLTDoubletDZ ( const edm::ParameterSet iConfig)
explicit

Definition at line 29 of file HLTDoubletDZ.cc.

30  : HLTFilter(iConfig),
31  originTag1_(iConfig.template getParameter<std::vector<edm::InputTag>>("originTag1")),
32  originTag2_(iConfig.template getParameter<std::vector<edm::InputTag>>("originTag2")),
33  inputTag1_(iConfig.template getParameter<edm::InputTag>("inputTag1")),
34  inputTag2_(iConfig.template getParameter<edm::InputTag>("inputTag2")),
35  inputToken1_(consumes<trigger::TriggerFilterObjectWithRefs>(inputTag1_)),
36  inputToken2_(consumes<trigger::TriggerFilterObjectWithRefs>(inputTag2_)),
37  //electronToken_ (consumes<reco::ElectronCollection>(iConfig.template getParameter<edm::InputTag>("electronTag"))),
38  triggerType1_(iConfig.template getParameter<int>("triggerType1")),
39  triggerType2_(iConfig.template getParameter<int>("triggerType2")),
40  minDR_(iConfig.template getParameter<double>("MinDR")),
41  maxDZ_(iConfig.template getParameter<double>("MaxDZ")),
42  minPixHitsForDZ_(iConfig.template getParameter<int>("MinPixHitsForDZ")),
43  min_N_(iConfig.template getParameter<int>("MinN")),
44  checkSC_(iConfig.template getParameter<bool>("checkSC")),
45  same_(inputTag1_.encode() == inputTag2_.encode()) // same collections to be compared?
46 {}
const int triggerType1_
Definition: HLTDoubletDZ.h:55
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:52
const int triggerType2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:48
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
std::string encode() const
Definition: InputTag.cc:159
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:50
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:51
const int min_N_
Definition: HLTDoubletDZ.h:60
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:59
const double maxDZ_
Definition: HLTDoubletDZ.h:58
const double minDR_
Definition: HLTDoubletDZ.h:57
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const bool checkSC_
Definition: HLTDoubletDZ.h:61
template<typename T1 , typename T2 >
HLTDoubletDZ< T1, T2 >::~HLTDoubletDZ ( )
override

Definition at line 129 of file HLTDoubletDZ.cc.

129 {}

Definition at line 49 of file HLTDoubletDZ.cc.

50  : HLTFilter(iConfig),
51  originTag1_(iConfig.template getParameter<std::vector<edm::InputTag>>("originTag1")),
52  originTag2_(iConfig.template getParameter<std::vector<edm::InputTag>>("originTag2")),
53  inputTag1_(iConfig.template getParameter<edm::InputTag>("inputTag1")),
54  inputTag2_(iConfig.template getParameter<edm::InputTag>("inputTag2")),
55  inputToken1_(consumes<trigger::TriggerFilterObjectWithRefs>(inputTag1_)),
56  inputToken2_(consumes<trigger::TriggerFilterObjectWithRefs>(inputTag2_)),
57  electronToken_(consumes<reco::ElectronCollection>(iConfig.template getParameter<edm::InputTag>("electronTag"))),
58  triggerType1_(iConfig.template getParameter<int>("triggerType1")),
59  triggerType2_(iConfig.template getParameter<int>("triggerType2")),
60  minDR_(iConfig.template getParameter<double>("MinDR")),
61  maxDZ_(iConfig.template getParameter<double>("MaxDZ")),
62  minPixHitsForDZ_(iConfig.template getParameter<int>("MinPixHitsForDZ")),
63  min_N_(iConfig.template getParameter<int>("MinN")),
64  checkSC_(iConfig.template getParameter<bool>("checkSC")),
65  same_(inputTag1_.encode() == inputTag2_.encode()) // same collections to be compared?
66 {}
const int triggerType1_
Definition: HLTDoubletDZ.h:55
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:54
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:52
const int triggerType2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:48
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
std::string encode() const
Definition: InputTag.cc:159
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:50
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:51
const int min_N_
Definition: HLTDoubletDZ.h:60
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:59
const double maxDZ_
Definition: HLTDoubletDZ.h:58
const double minDR_
Definition: HLTDoubletDZ.h:57
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const bool checkSC_
Definition: HLTDoubletDZ.h:61

Definition at line 69 of file HLTDoubletDZ.cc.

70  : HLTFilter(iConfig),
71  originTag1_(iConfig.template getParameter<std::vector<edm::InputTag>>("originTag1")),
72  originTag2_(iConfig.template getParameter<std::vector<edm::InputTag>>("originTag2")),
73  inputTag1_(iConfig.template getParameter<edm::InputTag>("inputTag1")),
74  inputTag2_(iConfig.template getParameter<edm::InputTag>("inputTag2")),
75  inputToken1_(consumes<trigger::TriggerFilterObjectWithRefs>(inputTag1_)),
76  inputToken2_(consumes<trigger::TriggerFilterObjectWithRefs>(inputTag2_)),
77  electronToken_(consumes<reco::ElectronCollection>(iConfig.template getParameter<edm::InputTag>("electronTag"))),
78  triggerType1_(iConfig.template getParameter<int>("triggerType1")),
79  triggerType2_(iConfig.template getParameter<int>("triggerType2")),
80  minDR_(iConfig.template getParameter<double>("MinDR")),
81  maxDZ_(iConfig.template getParameter<double>("MaxDZ")),
82  minPixHitsForDZ_(iConfig.template getParameter<int>("MinPixHitsForDZ")),
83  min_N_(iConfig.template getParameter<int>("MinN")),
84  checkSC_(iConfig.template getParameter<bool>("checkSC")),
85  same_(inputTag1_.encode() == inputTag2_.encode()) // same collections to be compared?
86 {}
const int triggerType1_
Definition: HLTDoubletDZ.h:55
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:54
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:52
const int triggerType2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:48
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
std::string encode() const
Definition: InputTag.cc:159
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:50
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:51
const int min_N_
Definition: HLTDoubletDZ.h:60
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:59
const double maxDZ_
Definition: HLTDoubletDZ.h:58
const double minDR_
Definition: HLTDoubletDZ.h:57
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const bool checkSC_
Definition: HLTDoubletDZ.h:61

Definition at line 89 of file HLTDoubletDZ.cc.

90  : HLTFilter(iConfig),
91  originTag1_(iConfig.template getParameter<std::vector<edm::InputTag>>("originTag1")),
92  originTag2_(iConfig.template getParameter<std::vector<edm::InputTag>>("originTag2")),
93  inputTag1_(iConfig.template getParameter<edm::InputTag>("inputTag1")),
94  inputTag2_(iConfig.template getParameter<edm::InputTag>("inputTag2")),
95  inputToken1_(consumes<trigger::TriggerFilterObjectWithRefs>(inputTag1_)),
96  inputToken2_(consumes<trigger::TriggerFilterObjectWithRefs>(inputTag2_)),
97  electronToken_(consumes<reco::ElectronCollection>(iConfig.template getParameter<edm::InputTag>("electronTag"))),
98  triggerType1_(iConfig.template getParameter<int>("triggerType1")),
99  triggerType2_(iConfig.template getParameter<int>("triggerType2")),
100  minDR_(iConfig.template getParameter<double>("MinDR")),
101  maxDZ_(iConfig.template getParameter<double>("MaxDZ")),
102  minPixHitsForDZ_(iConfig.template getParameter<int>("MinPixHitsForDZ")),
103  min_N_(iConfig.template getParameter<int>("MinN")),
104  checkSC_(iConfig.template getParameter<bool>("checkSC")),
105  same_(inputTag1_.encode() == inputTag2_.encode()) // same collections to be compared?
106 {}
const int triggerType1_
Definition: HLTDoubletDZ.h:55
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:54
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:52
const int triggerType2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:48
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
std::string encode() const
Definition: InputTag.cc:159
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:50
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:51
const int min_N_
Definition: HLTDoubletDZ.h:60
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:59
const double maxDZ_
Definition: HLTDoubletDZ.h:58
const double minDR_
Definition: HLTDoubletDZ.h:57
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const bool checkSC_
Definition: HLTDoubletDZ.h:61

Definition at line 109 of file HLTDoubletDZ.cc.

110  : HLTFilter(iConfig),
111  originTag1_(iConfig.template getParameter<std::vector<edm::InputTag>>("originTag1")),
112  originTag2_(iConfig.template getParameter<std::vector<edm::InputTag>>("originTag2")),
113  inputTag1_(iConfig.template getParameter<edm::InputTag>("inputTag1")),
114  inputTag2_(iConfig.template getParameter<edm::InputTag>("inputTag2")),
115  inputToken1_(consumes<trigger::TriggerFilterObjectWithRefs>(inputTag1_)),
116  inputToken2_(consumes<trigger::TriggerFilterObjectWithRefs>(inputTag2_)),
117  //electronToken_ (consumes<reco::ElectronCollection>(iConfig.template getParameter<edm::InputTag>("electronTag"))),
118  triggerType1_(iConfig.template getParameter<int>("triggerType1")),
119  triggerType2_(iConfig.template getParameter<int>("triggerType2")),
120  minDR_(iConfig.template getParameter<double>("MinDR")),
121  maxDZ_(iConfig.template getParameter<double>("MaxDZ")),
122  minPixHitsForDZ_(iConfig.template getParameter<int>("MinPixHitsForDZ")),
123  min_N_(iConfig.template getParameter<int>("MinN")),
124  checkSC_(iConfig.template getParameter<bool>("checkSC")),
125  same_(inputTag1_.encode() == inputTag2_.encode()) // same collections to be compared?
126 {}
const int triggerType1_
Definition: HLTDoubletDZ.h:55
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:52
const int triggerType2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:48
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
std::string encode() const
Definition: InputTag.cc:159
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:50
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:51
const int min_N_
Definition: HLTDoubletDZ.h:60
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:59
const double maxDZ_
Definition: HLTDoubletDZ.h:58
const double minDR_
Definition: HLTDoubletDZ.h:57
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const bool checkSC_
Definition: HLTDoubletDZ.h:61

Member Function Documentation

template<typename T1 , typename T2 >
bool HLTDoubletDZ< T1, T2 >::computeDZ ( edm::Event iEvent,
T1Ref c1,
T2Ref c2 
) const

Definition at line 293 of file HLTDoubletDZ.cc.

References funct::abs(), reco::deltaR(), HLTDoubletDZ< T1, T2 >::maxDZ_, HLTDoubletDZ< T1, T2 >::minDR_, and reco::Candidate::vz().

Referenced by HLTDoubletDZ< T1, T2 >::hltFilter().

293  {
294  const reco::Candidate& candidate1(*r1);
295  const reco::Candidate& candidate2(*r2);
296  if (reco::deltaR(candidate1, candidate2) < minDR_)
297  return false;
298  if (std::abs(candidate1.vz() - candidate2.vz()) > maxDZ_)
299  return false;
300 
301  return true;
302 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const double maxDZ_
Definition: HLTDoubletDZ.h:58
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
const double minDR_
Definition: HLTDoubletDZ.h:57
template<>
bool HLTDoubletDZ< reco::RecoEcalCandidate, reco::RecoChargedCandidate >::computeDZ ( edm::Event iEvent,
T1Ref r1,
T2Ref r2 
) const

Definition at line 305 of file HLTDoubletDZ.cc.

References funct::abs(), reco::deltaR(), StorageManager_cfg::e1, HLTDoubletDZ< T1, T2 >::electronToken_, edm::Event::getByToken(), reco::Electron::gsfTrack(), edm::HandleBase::isValid(), HLTDoubletDZ< T1, T2 >::maxDZ_, HLTDoubletDZ< T1, T2 >::minDR_, HLTDoubletDZ< T1, T2 >::minPixHitsForDZ_, reco::RecoChargedCandidate::track(), and reco::LeafCandidate::vz().

307  {
309  iEvent.getByToken(electronToken_, electronHandle_);
310  if (!electronHandle_.isValid())
311  edm::LogError("HLTDoubletDZ") << "HLTDoubletDZ: Electron Handle not valid.";
312 
313  if (reco::deltaR(*r1, *r2) < minDR_)
314  return false;
316  for (auto const& eleIt : *electronHandle_) {
317  if (eleIt.superCluster() == r1->superCluster())
318  e1 = eleIt;
319  }
320 
321  const reco::RecoChargedCandidate& candidate2(*r2);
322  bool skipDZ = false;
323  if (minPixHitsForDZ_ > 0 && (e1.gsfTrack()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_ ||
324  candidate2.track()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_))
325  skipDZ = true;
326  if (!skipDZ && std::abs(e1.vz() - candidate2.vz()) > maxDZ_)
327  return false;
328 
329  return true;
330 }
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:54
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isValid() const
Definition: HandleBase.h:70
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:59
const double maxDZ_
Definition: HLTDoubletDZ.h:58
double vz() const override
z coordinate of vertex position
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
const double minDR_
Definition: HLTDoubletDZ.h:57
reco::GsfTrackRef gsfTrack() const override
reference to a GsfTrack
template<>
bool HLTDoubletDZ< reco::RecoChargedCandidate, reco::RecoEcalCandidate >::computeDZ ( edm::Event iEvent,
T1Ref r1,
T2Ref r2 
) const

Definition at line 333 of file HLTDoubletDZ.cc.

References funct::abs(), reco::deltaR(), HLTDoubletDZ< T1, T2 >::electronToken_, edm::Event::getByToken(), reco::Electron::gsfTrack(), edm::HandleBase::isValid(), HLTDoubletDZ< T1, T2 >::maxDZ_, HLTDoubletDZ< T1, T2 >::minDR_, HLTDoubletDZ< T1, T2 >::minPixHitsForDZ_, reco::RecoChargedCandidate::track(), and reco::LeafCandidate::vz().

335  {
337  iEvent.getByToken(electronToken_, electronHandle_);
338  if (!electronHandle_.isValid())
339  edm::LogError("HLTDoubletDZ") << "HLTDoubletDZ: Electron Handle not valid.";
340 
341  if (reco::deltaR(*r1, *r2) < minDR_)
342  return false;
343  reco::Electron e2;
344  for (auto const& eleIt : *electronHandle_) {
345  if (eleIt.superCluster() == r2->superCluster())
346  e2 = eleIt;
347  }
348 
349  const reco::RecoChargedCandidate& candidate1(*r1);
350  bool skipDZ = false;
351  if (minPixHitsForDZ_ > 0 && (candidate1.track()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_ ||
352  e2.gsfTrack()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_))
353  skipDZ = true;
354  if (!skipDZ && std::abs(e2.vz() - candidate1.vz()) > maxDZ_)
355  return false;
356 
357  return true;
358 }
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:54
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isValid() const
Definition: HandleBase.h:70
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:59
const double maxDZ_
Definition: HLTDoubletDZ.h:58
double vz() const override
z coordinate of vertex position
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
const double minDR_
Definition: HLTDoubletDZ.h:57
reco::GsfTrackRef gsfTrack() const override
reference to a GsfTrack
template<>
bool HLTDoubletDZ< reco::RecoEcalCandidate, reco::RecoEcalCandidate >::computeDZ ( edm::Event iEvent,
T1Ref r1,
T2Ref r2 
) const

Definition at line 361 of file HLTDoubletDZ.cc.

References funct::abs(), reco::deltaR(), StorageManager_cfg::e1, HLTDoubletDZ< T1, T2 >::electronToken_, edm::Event::getByToken(), reco::Electron::gsfTrack(), edm::HandleBase::isValid(), HLTDoubletDZ< T1, T2 >::maxDZ_, HLTDoubletDZ< T1, T2 >::minDR_, HLTDoubletDZ< T1, T2 >::minPixHitsForDZ_, and reco::LeafCandidate::vz().

363  {
365  iEvent.getByToken(electronToken_, electronHandle_);
366  if (!electronHandle_.isValid())
367  edm::LogError("HLTDoubletDZ") << "HLTDoubletDZ: Electron Handle not valid.";
368 
369  if (reco::deltaR(*r1, *r2) < minDR_)
370  return false;
371  reco::Electron e1, e2;
372  for (auto const& eleIt : *electronHandle_) {
373  if (eleIt.superCluster() == r2->superCluster())
374  e2 = eleIt;
375  if (eleIt.superCluster() == r1->superCluster())
376  e1 = eleIt;
377  }
378 
379  bool skipDZ = false;
380  if (minPixHitsForDZ_ > 0 && (e1.gsfTrack()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_ ||
381  e2.gsfTrack()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_))
382  skipDZ = true;
383  if (!skipDZ && std::abs(e2.vz() - e1.vz()) > maxDZ_)
384  return false;
385 
386  return true;
387 }
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:54
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isValid() const
Definition: HandleBase.h:70
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:59
const double maxDZ_
Definition: HLTDoubletDZ.h:58
double vz() const override
z coordinate of vertex position
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
const double minDR_
Definition: HLTDoubletDZ.h:57
reco::GsfTrackRef gsfTrack() const override
reference to a GsfTrack
template<>
bool HLTDoubletDZ< reco::RecoChargedCandidate, reco::RecoChargedCandidate >::computeDZ ( edm::Event iEvent,
T1Ref r1,
T2Ref r2 
) const

Definition at line 390 of file HLTDoubletDZ.cc.

References funct::abs(), reco::deltaR(), HLTDoubletDZ< T1, T2 >::maxDZ_, HLTDoubletDZ< T1, T2 >::minDR_, HLTDoubletDZ< T1, T2 >::minPixHitsForDZ_, reco::RecoChargedCandidate::track(), and reco::LeafCandidate::vz().

392  {
393  const reco::RecoChargedCandidate& candidate1(*r1);
394  const reco::RecoChargedCandidate& candidate2(*r2);
395  if (reco::deltaR(candidate1, candidate2) < minDR_)
396  return false;
397  bool skipDZ = false;
398  if (minPixHitsForDZ_ > 0 && (candidate1.track()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_ ||
399  candidate2.track()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_))
400  skipDZ = true;
401  if (!skipDZ && std::abs(candidate1.vz() - candidate2.vz()) > maxDZ_)
402  return false;
403 
404  return true;
405 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:59
const double maxDZ_
Definition: HLTDoubletDZ.h:58
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
const double minDR_
Definition: HLTDoubletDZ.h:57
template<typename T1 , typename T2 >
void HLTDoubletDZ< T1, T2 >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 132 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), HLT_2018_cff::InputTag, HLTFilter::makeHLTFilterDescription(), HLT_2018_cff::originTag1, and HLT_2018_cff::originTag2.

132  {
135  std::vector<edm::InputTag> originTag1(1, edm::InputTag("hltOriginal1"));
136  std::vector<edm::InputTag> originTag2(1, edm::InputTag("hltOriginal2"));
137  desc.add<std::vector<edm::InputTag>>("originTag1", originTag1);
138  desc.add<std::vector<edm::InputTag>>("originTag2", originTag2);
139  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
140  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
141  desc.add<int>("triggerType1", 0);
142  desc.add<int>("triggerType2", 0);
143  desc.add<double>("MinDR", -1.0);
144  desc.add<double>("MaxDZ", 0.2);
145  desc.add<int>("MinPixHitsForDZ", 0);
146  desc.add<bool>("checkSC", false);
147  desc.add<int>("MinN", 1);
148  descriptions.add(defaultModuleLabel<HLTDoubletDZ<T1, T2>>(), desc);
149 }
std::string defaultModuleLabel()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25
void add(std::string const &label, ParameterSetDescription const &psetDescription)
template<>
void HLTDoubletDZ< reco::RecoEcalCandidate, reco::RecoEcalCandidate >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)

Definition at line 152 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), HLT_2018_cff::InputTag, HLTFilter::makeHLTFilterDescription(), HLT_2018_cff::originTag1, and HLT_2018_cff::originTag2.

153  {
156  std::vector<edm::InputTag> originTag1(1, edm::InputTag("hltOriginal1"));
157  std::vector<edm::InputTag> originTag2(1, edm::InputTag("hltOriginal2"));
158  desc.add<std::vector<edm::InputTag>>("originTag1", originTag1);
159  desc.add<std::vector<edm::InputTag>>("originTag2", originTag2);
160  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
161  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
162  desc.add<edm::InputTag>("electronTag", edm::InputTag("electronTag"));
163  desc.add<int>("triggerType1", 0);
164  desc.add<int>("triggerType2", 0);
165  desc.add<double>("MinDR", -1.0);
166  desc.add<double>("MaxDZ", 0.2);
167  desc.add<int>("MinPixHitsForDZ", 0);
168  desc.add<bool>("checkSC", false);
169  desc.add<int>("MinN", 1);
171 }
std::string defaultModuleLabel()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25
void add(std::string const &label, ParameterSetDescription const &psetDescription)
template<>
void HLTDoubletDZ< reco::RecoChargedCandidate, reco::RecoEcalCandidate >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)

Definition at line 174 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), HLT_2018_cff::InputTag, HLTFilter::makeHLTFilterDescription(), HLT_2018_cff::originTag1, and HLT_2018_cff::originTag2.

175  {
178  std::vector<edm::InputTag> originTag1(1, edm::InputTag("hltOriginal1"));
179  std::vector<edm::InputTag> originTag2(1, edm::InputTag("hltOriginal2"));
180  desc.add<std::vector<edm::InputTag>>("originTag1", originTag1);
181  desc.add<std::vector<edm::InputTag>>("originTag2", originTag2);
182  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
183  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
184  desc.add<edm::InputTag>("electronTag", edm::InputTag("electronTag"));
185  desc.add<int>("triggerType1", 0);
186  desc.add<int>("triggerType2", 0);
187  desc.add<double>("MinDR", -1.0);
188  desc.add<double>("MaxDZ", 0.2);
189  desc.add<int>("MinPixHitsForDZ", 0);
190  desc.add<bool>("checkSC", false);
191  desc.add<int>("MinN", 1);
193 }
std::string defaultModuleLabel()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25
void add(std::string const &label, ParameterSetDescription const &psetDescription)
template<>
void HLTDoubletDZ< reco::RecoEcalCandidate, reco::RecoChargedCandidate >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)

Definition at line 196 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), HLT_2018_cff::InputTag, HLTFilter::makeHLTFilterDescription(), HLT_2018_cff::originTag1, and HLT_2018_cff::originTag2.

197  {
200  std::vector<edm::InputTag> originTag1(1, edm::InputTag("hltOriginal1"));
201  std::vector<edm::InputTag> originTag2(1, edm::InputTag("hltOriginal2"));
202  desc.add<std::vector<edm::InputTag>>("originTag1", originTag1);
203  desc.add<std::vector<edm::InputTag>>("originTag2", originTag2);
204  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
205  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
206  desc.add<edm::InputTag>("electronTag", edm::InputTag("electronTag"));
207  desc.add<int>("triggerType1", 0);
208  desc.add<int>("triggerType2", 0);
209  desc.add<double>("MinDR", -1.0);
210  desc.add<double>("MaxDZ", 0.2);
211  desc.add<int>("MinPixHitsForDZ", 0);
212  desc.add<bool>("checkSC", false);
213  desc.add<int>("MinN", 1);
215 }
std::string defaultModuleLabel()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25
void add(std::string const &label, ParameterSetDescription const &psetDescription)
template<>
void HLTDoubletDZ< reco::RecoChargedCandidate, reco::RecoChargedCandidate >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)

Definition at line 218 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), HLT_2018_cff::InputTag, HLTFilter::makeHLTFilterDescription(), HLT_2018_cff::originTag1, and HLT_2018_cff::originTag2.

219  {
222  std::vector<edm::InputTag> originTag1(1, edm::InputTag("hltOriginal1"));
223  std::vector<edm::InputTag> originTag2(1, edm::InputTag("hltOriginal2"));
224  desc.add<std::vector<edm::InputTag>>("originTag1", originTag1);
225  desc.add<std::vector<edm::InputTag>>("originTag2", originTag2);
226  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
227  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
228  desc.add<int>("triggerType1", 0);
229  desc.add<int>("triggerType2", 0);
230  desc.add<double>("MinDR", -1.0);
231  desc.add<double>("MaxDZ", 0.2);
232  desc.add<int>("MinPixHitsForDZ", 0);
233  desc.add<bool>("checkSC", false);
234  desc.add<int>("MinN", 1);
236 }
std::string defaultModuleLabel()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25
void add(std::string const &label, ParameterSetDescription const &psetDescription)
template<typename T1 , typename T2 >
bool HLTDoubletDZ< T1, T2 >::getCollections ( edm::Event iEvent,
std::vector< T1Ref > &  coll1,
std::vector< T2Ref > &  coll2,
trigger::TriggerFilterObjectWithRefs filterproduct 
) const

Definition at line 241 of file HLTDoubletDZ.cc.

References trigger::TriggerFilterObjectWithRefs::addCollectionTag(), edm::InputTag::encode(), edm::Event::getByToken(), trigger::TriggerRefsCollections::getObjects(), edm::Event::getProvenance(), mps_fire::i, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, HLT_2018_cff::InputTag, HLTDoubletDZ< T1, T2 >::inputToken1_, HLTDoubletDZ< T1, T2 >::inputToken2_, instance, label, edm::Provenance::moduleLabel(), HLTDoubletDZ< T1, T2 >::originTag1_, HLTDoubletDZ< T1, T2 >::originTag2_, LaserDQM_cfg::process, edm::Provenance::processName(), edm::Provenance::productInstanceName(), HLTFilter::saveTags(), AlCaHLTBitMon_QueryRunRegistry::string, HLTDoubletDZ< T1, T2 >::triggerType1_, and HLTDoubletDZ< T1, T2 >::triggerType2_.

Referenced by HLTDoubletDZ< T1, T2 >::hltFilter().

244  {
246  if (iEvent.getByToken(inputToken1_, handle1) and iEvent.getByToken(inputToken2_, handle2)) {
247  // get hold of pre-filtered object collections
248  handle1->getObjects(triggerType1_, coll1);
249  handle2->getObjects(triggerType2_, coll2);
250  const trigger::size_type n1(coll1.size());
251  const trigger::size_type n2(coll2.size());
252 
253  if (saveTags()) {
254  edm::InputTag tagOld;
255  for (unsigned int i = 0; i < originTag1_.size(); ++i) {
256  filterproduct.addCollectionTag(originTag1_[i]);
257  }
258  tagOld = edm::InputTag();
259  for (trigger::size_type i1 = 0; i1 != n1; ++i1) {
260  const edm::ProductID pid(coll1[i1].id());
261  const std::string& label(iEvent.getProvenance(pid).moduleLabel());
263  const std::string& process(iEvent.getProvenance(pid).processName());
265  if (tagOld.encode() != tagNew.encode()) {
266  filterproduct.addCollectionTag(tagNew);
267  tagOld = tagNew;
268  }
269  }
270  for (unsigned int i = 0; i < originTag2_.size(); ++i) {
271  filterproduct.addCollectionTag(originTag2_[i]);
272  }
273  tagOld = edm::InputTag();
274  for (trigger::size_type i2 = 0; i2 != n2; ++i2) {
275  const edm::ProductID pid(coll2[i2].id());
276  const std::string& label(iEvent.getProvenance(pid).moduleLabel());
278  const std::string& process(iEvent.getProvenance(pid).processName());
280  if (tagOld.encode() != tagNew.encode()) {
281  filterproduct.addCollectionTag(tagNew);
282  tagOld = tagNew;
283  }
284  }
285  }
286 
287  return true;
288  } else
289  return false;
290 }
const int triggerType1_
Definition: HLTDoubletDZ.h:55
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:52
const int triggerType2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:48
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:53
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:49
static PFTauRenderPlugin instance
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
std::string const & processName() const
Definition: Provenance.h:57
uint16_t size_type
std::string encode() const
Definition: InputTag.cc:159
char const * label
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
std::string const & moduleLabel() const
Definition: Provenance.h:55
bool saveTags() const
Definition: HLTFilter.h:46
std::string const & productInstanceName() const
Definition: Provenance.h:58
Provenance getProvenance(BranchID const &theID) const
Definition: Event.cc:114
template<typename T1 , typename T2 >
bool HLTDoubletDZ< T1, T2 >::hltFilter ( edm::Event iEvent,
const edm::EventSetup iSetup,
trigger::TriggerFilterObjectWithRefs filterproduct 
) const
overridevirtual

Implements HLTFilter.

Definition at line 409 of file HLTDoubletDZ.cc.

References accept(), trigger::TriggerRefsCollections::addObject(), HLTDoubletDZ< T1, T2 >::checkSC_, HLTDoubletDZ< T1, T2 >::computeDZ(), HLTDoubletDZ< T1, T2 >::getCollections(), Exhume::I, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, edm::Ref< C, T, F >::isNonnull(), HLTDoubletDZ< T1, T2 >::min_N_, dqmiodumpmetadata::n, diffTwoXMLs::r1, diffTwoXMLs::r2, HLTDoubletDZ< T1, T2 >::same_, HLTDoubletDZ< T1, T2 >::triggerType1_, and HLTDoubletDZ< T1, T2 >::triggerType2_.

411  {
412  // All HLT filters must create and fill an HLT filter object,
413  // recording any reconstructed physics objects satisfying (or not)
414  // this HLT filter, and place it in the Event.
415  bool accept(false);
416 
417  std::vector<T1Ref> coll1;
418  std::vector<T2Ref> coll2;
419 
420  if (getCollections(iEvent, coll1, coll2, filterproduct)) {
421  int n(0);
422  T1Ref r1;
423  T2Ref r2;
424 
425  for (unsigned int i1 = 0; i1 != coll1.size(); i1++) {
426  r1 = coll1[i1];
427  //const reco::Candidate& candidate1(*r1);
428  unsigned int I(0);
429  if (same_) {
430  I = i1 + 1;
431  }
432  for (unsigned int i2 = I; i2 != coll2.size(); i2++) {
433  r2 = coll2[i2];
434  if (checkSC_) {
435  if (r1->superCluster().isNonnull() && r2->superCluster().isNonnull()) {
436  if (r1->superCluster() == r2->superCluster())
437  continue;
438  }
439  }
440 
441  if (!computeDZ(iEvent, r1, r2))
442  continue;
443 
444  n++;
445  filterproduct.addObject(triggerType1_, r1);
446  filterproduct.addObject(triggerType2_, r2);
447  }
448  }
449 
450  accept = accept || (n >= min_N_);
451  }
452 
453  return accept;
454 }
const int triggerType1_
Definition: HLTDoubletDZ.h:55
const int triggerType2_
Definition: HLTDoubletDZ.h:56
const bool same_
Definition: HLTDoubletDZ.h:62
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
bool getCollections(edm::Event &iEvent, std::vector< T1Ref > &coll1, std::vector< T2Ref > &coll2, trigger::TriggerFilterObjectWithRefs &filterproduct) const
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
bool computeDZ(edm::Event &iEvent, T1Ref &c1, T2Ref &c2) const
const std::complex< double > I
Definition: I.h:8
const int min_N_
Definition: HLTDoubletDZ.h:60
edm::Ref< T2Collection > T2Ref
Definition: HLTDoubletDZ.h:31
edm::Ref< T1Collection > T1Ref
Definition: HLTDoubletDZ.h:29
const bool checkSC_
Definition: HLTDoubletDZ.h:61

Member Data Documentation

template<typename T1 , typename T2 >
const bool HLTDoubletDZ< T1, T2 >::checkSC_
private

Definition at line 61 of file HLTDoubletDZ.h.

Referenced by HLTDoubletDZ< T1, T2 >::hltFilter().

template<typename T1 , typename T2 >
edm::EDGetTokenT<reco::ElectronCollection> HLTDoubletDZ< T1, T2 >::electronToken_
private

Definition at line 54 of file HLTDoubletDZ.h.

Referenced by HLTDoubletDZ< T1, T2 >::computeDZ().

template<typename T1 , typename T2 >
const edm::InputTag HLTDoubletDZ< T1, T2 >::inputTag1_
private

Definition at line 50 of file HLTDoubletDZ.h.

template<typename T1 , typename T2 >
const edm::InputTag HLTDoubletDZ< T1, T2 >::inputTag2_
private

Definition at line 51 of file HLTDoubletDZ.h.

template<typename T1 , typename T2 >
const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> HLTDoubletDZ< T1, T2 >::inputToken1_
private

Definition at line 52 of file HLTDoubletDZ.h.

Referenced by HLTDoubletDZ< T1, T2 >::getCollections().

template<typename T1 , typename T2 >
const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> HLTDoubletDZ< T1, T2 >::inputToken2_
private

Definition at line 53 of file HLTDoubletDZ.h.

Referenced by HLTDoubletDZ< T1, T2 >::getCollections().

template<typename T1 , typename T2 >
const double HLTDoubletDZ< T1, T2 >::maxDZ_
private

Definition at line 58 of file HLTDoubletDZ.h.

Referenced by HLTDoubletDZ< T1, T2 >::computeDZ().

template<typename T1 , typename T2 >
const int HLTDoubletDZ< T1, T2 >::min_N_
private

Definition at line 60 of file HLTDoubletDZ.h.

Referenced by HLTDoubletDZ< T1, T2 >::hltFilter().

template<typename T1 , typename T2 >
const double HLTDoubletDZ< T1, T2 >::minDR_
private

Definition at line 57 of file HLTDoubletDZ.h.

Referenced by HLTDoubletDZ< T1, T2 >::computeDZ().

template<typename T1 , typename T2 >
const int HLTDoubletDZ< T1, T2 >::minPixHitsForDZ_
private

Definition at line 59 of file HLTDoubletDZ.h.

Referenced by HLTDoubletDZ< T1, T2 >::computeDZ().

template<typename T1 , typename T2 >
const std::vector<edm::InputTag> HLTDoubletDZ< T1, T2 >::originTag1_
private

Definition at line 48 of file HLTDoubletDZ.h.

Referenced by HLTDoubletDZ< T1, T2 >::getCollections().

template<typename T1 , typename T2 >
const std::vector<edm::InputTag> HLTDoubletDZ< T1, T2 >::originTag2_
private

Definition at line 49 of file HLTDoubletDZ.h.

Referenced by HLTDoubletDZ< T1, T2 >::getCollections().

template<typename T1 , typename T2 >
const bool HLTDoubletDZ< T1, T2 >::same_
private

Definition at line 62 of file HLTDoubletDZ.h.

Referenced by HLTDoubletDZ< T1, T2 >::hltFilter().

template<typename T1 , typename T2 >
const int HLTDoubletDZ< T1, T2 >::triggerType1_
private
template<typename T1 , typename T2 >
const int HLTDoubletDZ< T1, T2 >::triggerType2_
private