CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | 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

template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
 HLTDoubletDZ (edm::ParameterSet const &)
 
template<>
 HLTDoubletDZ (const edm::ParameterSet &iConfig)
 
template<>
 HLTDoubletDZ (const edm::ParameterSet &iConfig)
 
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 &iEvent, edm::EventSetup const &iSetup, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
 
 ~HLTDoubletDZ () override=default
 
- 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
 
 EDFilter (const EDFilter &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDFilteroperator= (const EDFilter &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () 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
 
std::vector< bool > const & recordProvenanceList () 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)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~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
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices 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

using T1Ref = edm::Ref< std::vector< T1 > >
 
using T2Ref = edm::Ref< std::vector< T2 > >
 

Private Member Functions

bool computeDZ (edm::Event const &iEvent, T1 const &c1, T2 const &c2) const
 
template<>
bool computeDZ (edm::Event const &iEvent, reco::RecoEcalCandidate const &c1, reco::RecoChargedCandidate const &c2) const
 
template<>
bool computeDZ (edm::Event const &iEvent, reco::RecoChargedCandidate const &c1, reco::RecoEcalCandidate const &c2) const
 
template<>
bool computeDZ (edm::Event const &iEvent, reco::RecoEcalCandidate const &c1, reco::RecoEcalCandidate const &c2) const
 
template<>
bool computeDZ (edm::Event const &iEvent, reco::RecoChargedCandidate const &c1, reco::RecoChargedCandidate const &c2) const
 
template<>
bool computeDZ (edm::Event const &iEvent, l1t::TrackerMuon const &c1, l1t::TrackerMuon const &c2) const
 
template<>
bool computeDZ (edm::Event const &iEvent, l1t::HPSPFTau const &c1, l1t::HPSPFTau const &c2) const
 
bool getCollections (edm::Event const &iEvent, std::vector< T1Ref > &coll1, std::vector< T2Ref > &coll2, trigger::TriggerFilterObjectWithRefs &filterproduct) const
 
bool haveSameSuperCluster (T1 const &c1, T2 const &c2) const
 
template<>
bool haveSameSuperCluster (l1t::TrackerMuon const &, l1t::TrackerMuon const &) const
 
template<>
bool haveSameSuperCluster (l1t::PFTau const &, l1t::PFTau const &) const
 
template<>
bool haveSameSuperCluster (l1t::HPSPFTau const &, l1t::HPSPFTau const &) const
 
bool passCutMinDeltaR (T1 const &c1, T2 const &c2) const
 
template<>
bool passCutMinDeltaR (l1t::TrackerMuon const &m1, l1t::TrackerMuon const &m2) const
 

Private Attributes

const bool checkSC_
 
const 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 minDR2_
 
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
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
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
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

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

Definition at line 24 of file HLTDoubletDZ.h.

Member Typedef Documentation

◆ T1Ref

template<typename T1 , typename T2 >
using HLTDoubletDZ< T1, T2 >::T1Ref = edm::Ref<std::vector<T1> >
private

Definition at line 36 of file HLTDoubletDZ.h.

◆ T2Ref

template<typename T1 , typename T2 >
using HLTDoubletDZ< T1, T2 >::T2Ref = edm::Ref<std::vector<T2> >
private

Definition at line 37 of file HLTDoubletDZ.h.

Constructor & Destructor Documentation

◆ HLTDoubletDZ() [1/7]

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

Definition at line 23 of file HLTDoubletDZ.cc.

24  : HLTFilter(iConfig),
25  originTag1_(iConfig.getParameter<std::vector<edm::InputTag>>("originTag1")),
26  originTag2_(iConfig.getParameter<std::vector<edm::InputTag>>("originTag2")),
27  inputTag1_(iConfig.getParameter<edm::InputTag>("inputTag1")),
28  inputTag2_(iConfig.getParameter<edm::InputTag>("inputTag2")),
32  triggerType1_(iConfig.getParameter<int>("triggerType1")),
33  triggerType2_(iConfig.getParameter<int>("triggerType2")),
34  minDR_(iConfig.getParameter<double>("MinDR")),
36  maxDZ_(iConfig.getParameter<double>("MaxDZ")),
37  min_N_(iConfig.getParameter<int>("MinN")),
38  minPixHitsForDZ_(iConfig.getParameter<int>("MinPixHitsForDZ")),
39  checkSC_(iConfig.getParameter<bool>("checkSC")),
40  same_(inputTag1_.encode() == inputTag2_.encode()) // same collections to be compared?
41 {}
const int triggerType1_
Definition: HLTDoubletDZ.h:58
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:55
const int triggerType2_
Definition: HLTDoubletDZ.h:59
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:51
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:52
std::string encode() const
Definition: InputTag.cc:159
const bool same_
Definition: HLTDoubletDZ.h:66
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:53
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:54
const int min_N_
Definition: HLTDoubletDZ.h:63
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
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:57
const bool checkSC_
Definition: HLTDoubletDZ.h:65

◆ ~HLTDoubletDZ()

template<typename T1 , typename T2 >
HLTDoubletDZ< T1, T2 >::~HLTDoubletDZ ( )
overridedefault

◆ HLTDoubletDZ() [2/7]

Definition at line 44 of file HLTDoubletDZ.cc.

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

◆ HLTDoubletDZ() [3/7]

Definition at line 65 of file HLTDoubletDZ.cc.

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

◆ HLTDoubletDZ() [4/7]

Definition at line 86 of file HLTDoubletDZ.cc.

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

◆ HLTDoubletDZ() [5/7]

Definition at line 107 of file HLTDoubletDZ.cc.

108  : HLTFilter(iConfig),
109  originTag1_(iConfig.getParameter<std::vector<edm::InputTag>>("originTag1")),
110  originTag2_(iConfig.getParameter<std::vector<edm::InputTag>>("originTag2")),
111  inputTag1_(iConfig.getParameter<edm::InputTag>("inputTag1")),
112  inputTag2_(iConfig.getParameter<edm::InputTag>("inputTag2")),
116  triggerType1_(iConfig.getParameter<int>("triggerType1")),
117  triggerType2_(iConfig.getParameter<int>("triggerType2")),
118  minDR_(iConfig.getParameter<double>("MinDR")),
119  minDR2_(minDR_ * minDR_),
120  maxDZ_(iConfig.getParameter<double>("MaxDZ")),
121  min_N_(iConfig.getParameter<int>("MinN")),
122  minPixHitsForDZ_(0),
123  checkSC_(false),
124  same_(inputTag1_.encode() == inputTag2_.encode()) // same collections to be compared?
125 {}
const int triggerType1_
Definition: HLTDoubletDZ.h:58
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:55
const int triggerType2_
Definition: HLTDoubletDZ.h:59
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:51
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:52
std::string encode() const
Definition: InputTag.cc:159
const bool same_
Definition: HLTDoubletDZ.h:66
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:53
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:54
const int min_N_
Definition: HLTDoubletDZ.h:63
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
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:57
const bool checkSC_
Definition: HLTDoubletDZ.h:65

◆ HLTDoubletDZ() [6/7]

template<>
HLTDoubletDZ< l1t::PFTau, l1t::PFTau >::HLTDoubletDZ ( const edm::ParameterSet iConfig)

Definition at line 128 of file HLTDoubletDZ.cc.

129  : HLTFilter(iConfig),
130  originTag1_(iConfig.getParameter<std::vector<edm::InputTag>>("originTag1")),
131  originTag2_(iConfig.getParameter<std::vector<edm::InputTag>>("originTag2")),
132  inputTag1_(iConfig.getParameter<edm::InputTag>("inputTag1")),
133  inputTag2_(iConfig.getParameter<edm::InputTag>("inputTag2")),
137  triggerType1_(iConfig.getParameter<int>("triggerType1")),
138  triggerType2_(iConfig.getParameter<int>("triggerType2")),
139  minDR_(iConfig.getParameter<double>("MinDR")),
140  minDR2_(minDR_ * minDR_),
141  maxDZ_(iConfig.getParameter<double>("MaxDZ")),
142  min_N_(iConfig.getParameter<int>("MinN")),
143  minPixHitsForDZ_(0),
144  checkSC_(false),
145  same_(inputTag1_.encode() == inputTag2_.encode()) // same collections to be compared?
146 {}
const int triggerType1_
Definition: HLTDoubletDZ.h:58
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:55
const int triggerType2_
Definition: HLTDoubletDZ.h:59
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:51
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:52
std::string encode() const
Definition: InputTag.cc:159
const bool same_
Definition: HLTDoubletDZ.h:66
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:53
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:54
const int min_N_
Definition: HLTDoubletDZ.h:63
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
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:57
const bool checkSC_
Definition: HLTDoubletDZ.h:65

◆ HLTDoubletDZ() [7/7]

Definition at line 149 of file HLTDoubletDZ.cc.

150  : HLTFilter(iConfig),
151  originTag1_(iConfig.getParameter<std::vector<edm::InputTag>>("originTag1")),
152  originTag2_(iConfig.getParameter<std::vector<edm::InputTag>>("originTag2")),
153  inputTag1_(iConfig.getParameter<edm::InputTag>("inputTag1")),
154  inputTag2_(iConfig.getParameter<edm::InputTag>("inputTag2")),
158  triggerType1_(iConfig.getParameter<int>("triggerType1")),
159  triggerType2_(iConfig.getParameter<int>("triggerType2")),
160  minDR_(iConfig.getParameter<double>("MinDR")),
161  minDR2_(minDR_ * minDR_),
162  maxDZ_(iConfig.getParameter<double>("MaxDZ")),
163  min_N_(iConfig.getParameter<int>("MinN")),
164  minPixHitsForDZ_(0),
165  checkSC_(false),
166  same_(inputTag1_.encode() == inputTag2_.encode()) // same collections to be compared?
167 {}
const int triggerType1_
Definition: HLTDoubletDZ.h:58
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:55
const int triggerType2_
Definition: HLTDoubletDZ.h:59
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:51
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:52
std::string encode() const
Definition: InputTag.cc:159
const bool same_
Definition: HLTDoubletDZ.h:66
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:53
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:54
const int min_N_
Definition: HLTDoubletDZ.h:63
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
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:57
const bool checkSC_
Definition: HLTDoubletDZ.h:65

Member Function Documentation

◆ computeDZ() [1/7]

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

Definition at line 446 of file HLTDoubletDZ.cc.

References funct::abs(), and alignmentValidation::c1.

446  {
447  return ((std::abs(c1.vz() - c2.vz()) <= maxDZ_) and passCutMinDeltaR(c1, c2));
448 }
bool passCutMinDeltaR(T1 const &c1, T2 const &c2) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const double maxDZ_
Definition: HLTDoubletDZ.h:62

◆ computeDZ() [2/7]

template<>
bool HLTDoubletDZ< reco::RecoEcalCandidate, reco::RecoChargedCandidate >::computeDZ ( edm::Event const &  iEvent,
reco::RecoEcalCandidate const &  c1,
reco::RecoChargedCandidate const &  c2 
) const
private

Definition at line 451 of file HLTDoubletDZ.cc.

References funct::abs(), alignmentValidation::c1, pwdgSkimBPark_cfi::electrons, and iEvent.

452  {
453  if (not passCutMinDeltaR(c1, c2))
454  return false;
455 
456  bool hasValidVZ2 = false;
457  auto const vz2 = getCandidateVZ(c2, hasValidVZ2, minPixHitsForDZ_);
458  if (not hasValidVZ2)
459  return true;
460 
461  bool hasValidVZ1 = false;
462  auto const& electrons = iEvent.get(electronToken_);
463  auto const vz1 = getCandidateVZ(c1, hasValidVZ1, minPixHitsForDZ_, electrons);
464  if (not hasValidVZ1)
465  return true;
466 
467  return (std::abs(vz1 - vz2) <= maxDZ_);
468 }
bool passCutMinDeltaR(T1 const &c1, T2 const &c2) const
int iEvent
Definition: GenABIO.cc:224
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:64
const double maxDZ_
Definition: HLTDoubletDZ.h:62
const edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:57

◆ computeDZ() [3/7]

template<>
bool HLTDoubletDZ< reco::RecoChargedCandidate, reco::RecoEcalCandidate >::computeDZ ( edm::Event const &  iEvent,
reco::RecoChargedCandidate const &  c1,
reco::RecoEcalCandidate const &  c2 
) const
private

Definition at line 471 of file HLTDoubletDZ.cc.

References funct::abs(), alignmentValidation::c1, pwdgSkimBPark_cfi::electrons, and iEvent.

472  {
473  if (not passCutMinDeltaR(c1, c2))
474  return false;
475 
476  bool hasValidVZ1 = false;
477  auto const vz1 = getCandidateVZ(c1, hasValidVZ1, minPixHitsForDZ_);
478  if (not hasValidVZ1)
479  return true;
480 
481  bool hasValidVZ2 = false;
482  auto const& electrons = iEvent.get(electronToken_);
483  auto const vz2 = getCandidateVZ(c2, hasValidVZ2, minPixHitsForDZ_, electrons);
484  if (not hasValidVZ2)
485  return true;
486 
487  return (std::abs(vz1 - vz2) <= maxDZ_);
488 }
bool passCutMinDeltaR(T1 const &c1, T2 const &c2) const
int iEvent
Definition: GenABIO.cc:224
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:64
const double maxDZ_
Definition: HLTDoubletDZ.h:62
const edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:57

◆ computeDZ() [4/7]

template<>
bool HLTDoubletDZ< reco::RecoEcalCandidate, reco::RecoEcalCandidate >::computeDZ ( edm::Event const &  iEvent,
reco::RecoEcalCandidate const &  c1,
reco::RecoEcalCandidate const &  c2 
) const
private

Definition at line 491 of file HLTDoubletDZ.cc.

References funct::abs(), alignmentValidation::c1, pwdgSkimBPark_cfi::electrons, and iEvent.

492  {
493  if (not passCutMinDeltaR(c1, c2))
494  return false;
495 
496  auto const& electrons = iEvent.get(electronToken_);
497 
498  bool hasValidVZ1 = false;
499  auto const vz1 = getCandidateVZ(c1, hasValidVZ1, minPixHitsForDZ_, electrons);
500  if (not hasValidVZ1)
501  return true;
502 
503  bool hasValidVZ2 = false;
504  auto const vz2 = getCandidateVZ(c2, hasValidVZ2, minPixHitsForDZ_, electrons);
505  if (not hasValidVZ2)
506  return true;
507 
508  return (std::abs(vz1 - vz2) <= maxDZ_);
509 }
bool passCutMinDeltaR(T1 const &c1, T2 const &c2) const
int iEvent
Definition: GenABIO.cc:224
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:64
const double maxDZ_
Definition: HLTDoubletDZ.h:62
const edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:57

◆ computeDZ() [5/7]

template<>
bool HLTDoubletDZ< reco::RecoChargedCandidate, reco::RecoChargedCandidate >::computeDZ ( edm::Event const &  iEvent,
reco::RecoChargedCandidate const &  c1,
reco::RecoChargedCandidate const &  c2 
) const
private

Definition at line 512 of file HLTDoubletDZ.cc.

References funct::abs(), and alignmentValidation::c1.

513  {
514  if (not passCutMinDeltaR(c1, c2))
515  return false;
516 
517  bool hasValidVZ1 = false;
518  auto const vz1 = getCandidateVZ(c1, hasValidVZ1, minPixHitsForDZ_);
519  if (not hasValidVZ1)
520  return true;
521 
522  bool hasValidVZ2 = false;
523  auto const vz2 = getCandidateVZ(c2, hasValidVZ2, minPixHitsForDZ_);
524  if (not hasValidVZ2)
525  return true;
526 
527  return (std::abs(vz1 - vz2) <= maxDZ_);
528 }
bool passCutMinDeltaR(T1 const &c1, T2 const &c2) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:64
const double maxDZ_
Definition: HLTDoubletDZ.h:62

◆ computeDZ() [6/7]

template<>
bool HLTDoubletDZ< l1t::TrackerMuon, l1t::TrackerMuon >::computeDZ ( edm::Event const &  iEvent,
l1t::TrackerMuon const &  c1,
l1t::TrackerMuon const &  c2 
) const
private

Definition at line 531 of file HLTDoubletDZ.cc.

References funct::abs(), alignmentValidation::c1, and l1t::TrackerMuon::phZ0().

533  {
534  return ((std::abs(c1.phZ0() - c2.phZ0()) <= maxDZ_) and passCutMinDeltaR(c1, c2));
535 }
bool passCutMinDeltaR(T1 const &c1, T2 const &c2) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const double maxDZ_
Definition: HLTDoubletDZ.h:62

◆ computeDZ() [7/7]

template<>
bool HLTDoubletDZ< l1t::HPSPFTau, l1t::HPSPFTau >::computeDZ ( edm::Event const &  iEvent,
l1t::HPSPFTau const &  c1,
l1t::HPSPFTau const &  c2 
) const
private

Definition at line 538 of file HLTDoubletDZ.cc.

References funct::abs(), and alignmentValidation::c1.

540  {
541  if (not passCutMinDeltaR(c1, c2))
542  return false;
543 
544  bool hasValidVZ1 = false;
545  auto const vz1 = getCandidateVZ(c1, hasValidVZ1);
546  if (not hasValidVZ1)
547  return false;
548 
549  bool hasValidVZ2 = false;
550  auto const vz2 = getCandidateVZ(c2, hasValidVZ2);
551  if (not hasValidVZ2)
552  return false;
553 
554  return (std::abs(vz1 - vz2) <= maxDZ_);
555 }
bool passCutMinDeltaR(T1 const &c1, T2 const &c2) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const double maxDZ_
Definition: HLTDoubletDZ.h:62

◆ fillDescriptions() [1/7]

template<typename T1 , typename T2 >
void HLTDoubletDZ< T1, T2 >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 170 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

170  {
173  desc.add<std::vector<edm::InputTag>>("originTag1", {edm::InputTag("hltOriginal1")});
174  desc.add<std::vector<edm::InputTag>>("originTag2", {edm::InputTag("hltOriginal2")});
175  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
176  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
177  desc.add<int>("triggerType1", 0);
178  desc.add<int>("triggerType2", 0);
179  desc.add<double>("MinDR", -1.0);
180  desc.add<double>("MaxDZ", 0.2);
181  desc.add<int>("MinN", 1);
182  desc.add<int>("MinPixHitsForDZ", 0);
183  desc.add<bool>("checkSC", false);
184  descriptions.addWithDefaultLabel(desc);
185 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25

◆ fillDescriptions() [2/7]

template<>
void HLTDoubletDZ< reco::RecoEcalCandidate, reco::RecoEcalCandidate >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)

Definition at line 188 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

189  {
192  desc.add<std::vector<edm::InputTag>>("originTag1", {edm::InputTag("hltOriginal1")});
193  desc.add<std::vector<edm::InputTag>>("originTag2", {edm::InputTag("hltOriginal2")});
194  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
195  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
196  desc.add<edm::InputTag>("electronTag", edm::InputTag("electronTag"));
197  desc.add<int>("triggerType1", 0);
198  desc.add<int>("triggerType2", 0);
199  desc.add<double>("MinDR", -1.0);
200  desc.add<double>("MaxDZ", 0.2);
201  desc.add<int>("MinN", 1);
202  desc.add<int>("MinPixHitsForDZ", 0);
203  desc.add<bool>("checkSC", false);
204  descriptions.addWithDefaultLabel(desc);
205 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25

◆ fillDescriptions() [3/7]

template<>
void HLTDoubletDZ< reco::RecoChargedCandidate, reco::RecoEcalCandidate >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)

Definition at line 208 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

209  {
212  desc.add<std::vector<edm::InputTag>>("originTag1", {edm::InputTag("hltOriginal1")});
213  desc.add<std::vector<edm::InputTag>>("originTag2", {edm::InputTag("hltOriginal2")});
214  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
215  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
216  desc.add<edm::InputTag>("electronTag", edm::InputTag("electronTag"));
217  desc.add<int>("triggerType1", 0);
218  desc.add<int>("triggerType2", 0);
219  desc.add<double>("MinDR", -1.0);
220  desc.add<double>("MaxDZ", 0.2);
221  desc.add<int>("MinN", 1);
222  desc.add<int>("MinPixHitsForDZ", 0);
223  desc.add<bool>("checkSC", false);
224  descriptions.addWithDefaultLabel(desc);
225 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25

◆ fillDescriptions() [4/7]

template<>
void HLTDoubletDZ< reco::RecoEcalCandidate, reco::RecoChargedCandidate >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)

Definition at line 228 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

229  {
232  desc.add<std::vector<edm::InputTag>>("originTag1", {edm::InputTag("hltOriginal1")});
233  desc.add<std::vector<edm::InputTag>>("originTag2", {edm::InputTag("hltOriginal2")});
234  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
235  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
236  desc.add<edm::InputTag>("electronTag", edm::InputTag("electronTag"));
237  desc.add<int>("triggerType1", 0);
238  desc.add<int>("triggerType2", 0);
239  desc.add<double>("MinDR", -1.0);
240  desc.add<double>("MaxDZ", 0.2);
241  desc.add<int>("MinN", 1);
242  desc.add<int>("MinPixHitsForDZ", 0);
243  desc.add<bool>("checkSC", false);
244  descriptions.addWithDefaultLabel(desc);
245 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25

◆ fillDescriptions() [5/7]

template<>
void HLTDoubletDZ< l1t::TrackerMuon, l1t::TrackerMuon >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)

Definition at line 248 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

248  {
251  desc.add<std::vector<edm::InputTag>>("originTag1", {edm::InputTag("hltOriginal1")});
252  desc.add<std::vector<edm::InputTag>>("originTag2", {edm::InputTag("hltOriginal2")});
253  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
254  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
255  desc.add<int>("triggerType1", 0);
256  desc.add<int>("triggerType2", 0);
257  desc.add<double>("MinDR", -1.0);
258  desc.add<double>("MaxDZ", 0.2);
259  desc.add<int>("MinN", 1);
260  descriptions.addWithDefaultLabel(desc);
261 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25

◆ fillDescriptions() [6/7]

template<>
void HLTDoubletDZ< l1t::PFTau, l1t::PFTau >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)

Definition at line 264 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

264  {
267  desc.add<std::vector<edm::InputTag>>("originTag1", {edm::InputTag("hltOriginal1")});
268  desc.add<std::vector<edm::InputTag>>("originTag2", {edm::InputTag("hltOriginal2")});
269  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
270  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
271  desc.add<int>("triggerType1", 0);
272  desc.add<int>("triggerType2", 0);
273  desc.add<double>("MinDR", -1.0);
274  desc.add<double>("MaxDZ", 0.2);
275  desc.add<int>("MinN", 1);
276  descriptions.addWithDefaultLabel(desc);
277 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25

◆ fillDescriptions() [7/7]

template<>
void HLTDoubletDZ< l1t::HPSPFTau, l1t::HPSPFTau >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)

Definition at line 280 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

280  {
283  desc.add<std::vector<edm::InputTag>>("originTag1", {edm::InputTag("hltOriginal1")});
284  desc.add<std::vector<edm::InputTag>>("originTag2", {edm::InputTag("hltOriginal2")});
285  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
286  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
287  desc.add<int>("triggerType1", 0);
288  desc.add<int>("triggerType2", 0);
289  desc.add<double>("MinDR", -1.0);
290  desc.add<double>("MaxDZ", 0.2);
291  desc.add<int>("MinN", 1);
292  descriptions.addWithDefaultLabel(desc);
293 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25

◆ getCollections()

template<typename T1 , typename T2 >
bool HLTDoubletDZ< T1, T2 >::getCollections ( edm::Event const &  iEvent,
std::vector< T1Ref > &  coll1,
std::vector< T2Ref > &  coll2,
trigger::TriggerFilterObjectWithRefs filterproduct 
) const
private

Definition at line 296 of file HLTDoubletDZ.cc.

References trigger::TriggerFilterObjectWithRefs::addCollectionTag(), edm::InputTag::encode(), trigger::TriggerRefsCollections::getObjects(), mps_fire::i, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, iEvent, ProducerED_cfi::InputTag, instance, label, LaserDQM_cfg::process, PDWG_EXODelayedJetMET_cff::saveTags, and AlCaHLTBitMon_QueryRunRegistry::string.

299  {
301  if (iEvent.getByToken(inputToken1_, handle1) and iEvent.getByToken(inputToken2_, handle2)) {
302  // get hold of pre-filtered object collections
303  handle1->getObjects(triggerType1_, coll1);
304  handle2->getObjects(triggerType2_, coll2);
305  const trigger::size_type n1(coll1.size());
306  const trigger::size_type n2(coll2.size());
307 
308  if (saveTags()) {
309  edm::InputTag tagOld;
310  for (unsigned int i = 0; i < originTag1_.size(); ++i) {
311  filterproduct.addCollectionTag(originTag1_[i]);
312  }
313  tagOld = edm::InputTag();
314  for (trigger::size_type i1 = 0; i1 != n1; ++i1) {
315  const edm::ProductID pid(coll1[i1].id());
316  const auto& prov = iEvent.getStableProvenance(pid);
317  const std::string& label(prov.moduleLabel());
318  const std::string& instance(prov.productInstanceName());
319  const std::string& process(prov.processName());
321  if (tagOld.encode() != tagNew.encode()) {
322  filterproduct.addCollectionTag(tagNew);
323  tagOld = tagNew;
324  }
325  }
326  for (unsigned int i = 0; i < originTag2_.size(); ++i) {
327  filterproduct.addCollectionTag(originTag2_[i]);
328  }
329  tagOld = edm::InputTag();
330  for (trigger::size_type i2 = 0; i2 != n2; ++i2) {
331  const edm::ProductID pid(coll2[i2].id());
332  const auto& prov = iEvent.getStableProvenance(pid);
333  const std::string& label(prov.moduleLabel());
334  const std::string& instance(prov.productInstanceName());
335  const std::string& process(prov.processName());
337  if (tagOld.encode() != tagNew.encode()) {
338  filterproduct.addCollectionTag(tagNew);
339  tagOld = tagNew;
340  }
341  }
342  }
343 
344  return true;
345  }
346 
347  return false;
348 }
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
const int triggerType1_
Definition: HLTDoubletDZ.h:58
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:55
const int triggerType2_
Definition: HLTDoubletDZ.h:59
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:51
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:56
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:52
static PFTauRenderPlugin instance
std::string encode() const
Definition: InputTag.cc:159
uint16_t size_type
char const * label
int iEvent
Definition: GenABIO.cc:224
bool saveTags() const
Definition: HLTFilter.h:46
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags

◆ haveSameSuperCluster() [1/4]

template<typename T1 , typename T2 >
bool HLTDoubletDZ< T1, T2 >::haveSameSuperCluster ( T1 const &  c1,
T2 const &  c2 
) const
private

Definition at line 351 of file HLTDoubletDZ.cc.

References alignmentValidation::c1.

351  {
352  return (c1.superCluster().isNonnull() and c2.superCluster().isNonnull() and (c1.superCluster() == c2.superCluster()));
353 }

◆ haveSameSuperCluster() [2/4]

template<>
bool HLTDoubletDZ< l1t::TrackerMuon, l1t::TrackerMuon >::haveSameSuperCluster ( l1t::TrackerMuon const &  ,
l1t::TrackerMuon const &   
) const
private

Definition at line 356 of file HLTDoubletDZ.cc.

357  {
358  return false;
359 }

◆ haveSameSuperCluster() [3/4]

template<>
bool HLTDoubletDZ< l1t::PFTau, l1t::PFTau >::haveSameSuperCluster ( l1t::PFTau const &  ,
l1t::PFTau const &   
) const
private

Definition at line 362 of file HLTDoubletDZ.cc.

362  {
363  return false;
364 }

◆ haveSameSuperCluster() [4/4]

template<>
bool HLTDoubletDZ< l1t::HPSPFTau, l1t::HPSPFTau >::haveSameSuperCluster ( l1t::HPSPFTau const &  ,
l1t::HPSPFTau const &   
) const
private

Definition at line 367 of file HLTDoubletDZ.cc.

368  {
369  return false;
370 }

◆ hltFilter()

template<typename T1 , typename T2 >
bool HLTDoubletDZ< T1, T2 >::hltFilter ( edm::Event iEvent,
edm::EventSetup const &  iSetup,
trigger::TriggerFilterObjectWithRefs filterproduct 
) const
overridevirtual

Implements HLTFilter.

Definition at line 558 of file HLTDoubletDZ.cc.

References trigger::TriggerRefsCollections::addObject(), Exhume::I, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, iEvent, dqmiodumpmetadata::n, diffTwoXMLs::r1, and diffTwoXMLs::r2.

560  {
561  // All HLT filters must create and fill an HLT filter object,
562  // recording any reconstructed physics objects satisfying (or not)
563  // this HLT filter, and place it in the Event.
564  std::vector<T1Ref> coll1;
565  std::vector<T2Ref> coll2;
566 
567  if (getCollections(iEvent, coll1, coll2, filterproduct)) {
568  int n(0);
569  T1Ref r1;
570  T2Ref r2;
571 
572  for (unsigned int i1 = 0; i1 < coll1.size(); ++i1) {
573  r1 = coll1[i1];
574  unsigned int const I = same_ ? i1 + 1 : 0;
575  for (unsigned int i2 = I; i2 < coll2.size(); ++i2) {
576  r2 = coll2[i2];
577 
578  if (checkSC_ and haveSameSuperCluster(*r1, *r2)) {
579  continue;
580  }
581 
582  if (not computeDZ(iEvent, *r1, *r2)) {
583  continue;
584  }
585 
586  n++;
587  filterproduct.addObject(triggerType1_, r1);
588  filterproduct.addObject(triggerType2_, r2);
589  }
590  }
591 
592  return (n >= min_N_);
593  }
594 
595  return false;
596 }
edm::Ref< std::vector< T2 > > T2Ref
Definition: HLTDoubletDZ.h:37
const int triggerType1_
Definition: HLTDoubletDZ.h:58
const int triggerType2_
Definition: HLTDoubletDZ.h:59
bool computeDZ(edm::Event const &iEvent, T1 const &c1, T2 const &c2) const
const bool same_
Definition: HLTDoubletDZ.h:66
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
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::complex< double > I
Definition: I.h:8
const int min_N_
Definition: HLTDoubletDZ.h:63
bool haveSameSuperCluster(T1 const &c1, T2 const &c2) const
edm::Ref< std::vector< T1 > > T1Ref
Definition: HLTDoubletDZ.h:36
const bool checkSC_
Definition: HLTDoubletDZ.h:65

◆ passCutMinDeltaR() [1/2]

template<typename T1 , typename T2 >
bool HLTDoubletDZ< C1, C2 >::passCutMinDeltaR ( T1 const &  c1,
T2 const &  c2 
) const
private

Definition at line 373 of file HLTDoubletDZ.cc.

References alignmentValidation::c1, reco::deltaR2(), and or.

373  {
374  return (minDR_ < 0 or reco::deltaR2(c1, c2) >= minDR2_);
375 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
const double minDR_
Definition: HLTDoubletDZ.h:60
const double minDR2_
Definition: HLTDoubletDZ.h:61
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:16

◆ passCutMinDeltaR() [2/2]

template<>
bool HLTDoubletDZ< l1t::TrackerMuon, l1t::TrackerMuon >::passCutMinDeltaR ( l1t::TrackerMuon const &  m1,
l1t::TrackerMuon const &  m2 
) const
private

Definition at line 378 of file HLTDoubletDZ.cc.

References reco::deltaR2(), callgraph::m2, and or.

379  {
380  return (minDR_ < 0 or reco::deltaR2(m1.phEta(), m1.phPhi(), m2.phEta(), m2.phPhi()) >= minDR2_);
381 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
const double minDR_
Definition: HLTDoubletDZ.h:60
const double minDR2_
Definition: HLTDoubletDZ.h:61
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:16

Member Data Documentation

◆ checkSC_

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

Definition at line 65 of file HLTDoubletDZ.h.

◆ electronToken_

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

Definition at line 57 of file HLTDoubletDZ.h.

◆ inputTag1_

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

Definition at line 53 of file HLTDoubletDZ.h.

◆ inputTag2_

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

Definition at line 54 of file HLTDoubletDZ.h.

◆ inputToken1_

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

Definition at line 55 of file HLTDoubletDZ.h.

◆ inputToken2_

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

Definition at line 56 of file HLTDoubletDZ.h.

◆ maxDZ_

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

Definition at line 62 of file HLTDoubletDZ.h.

◆ min_N_

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

Definition at line 63 of file HLTDoubletDZ.h.

◆ minDR2_

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

Definition at line 61 of file HLTDoubletDZ.h.

◆ minDR_

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

Definition at line 60 of file HLTDoubletDZ.h.

◆ minPixHitsForDZ_

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

Definition at line 64 of file HLTDoubletDZ.h.

◆ originTag1_

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

Definition at line 51 of file HLTDoubletDZ.h.

◆ originTag2_

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

Definition at line 52 of file HLTDoubletDZ.h.

◆ same_

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

Definition at line 66 of file HLTDoubletDZ.h.

◆ triggerType1_

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

Definition at line 58 of file HLTDoubletDZ.h.

◆ triggerType2_

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

Definition at line 59 of file HLTDoubletDZ.h.