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 hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () 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::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 29 of file HLTDoubletDZ.h.

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

Definition at line 30 of file HLTDoubletDZ.h.

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

Definition at line 31 of file HLTDoubletDZ.h.

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

Definition at line 32 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.

29  :
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:52
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:49
const int triggerType2_
Definition: HLTDoubletDZ.h:53
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:45
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:50
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:46
const bool same_
Definition: HLTDoubletDZ.h:59
std::string encode() const
Definition: InputTag.cc:159
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:47
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:48
const int min_N_
Definition: HLTDoubletDZ.h:57
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:56
const double maxDZ_
Definition: HLTDoubletDZ.h:55
const double minDR_
Definition: HLTDoubletDZ.h:54
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const bool checkSC_
Definition: HLTDoubletDZ.h:58
template<typename T1 , typename T2 >
HLTDoubletDZ< T1, T2 >::~HLTDoubletDZ ( )
override

Definition at line 129 of file HLTDoubletDZ.cc.

130 {}

Definition at line 49 of file HLTDoubletDZ.cc.

49  :
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:52
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:51
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:49
const int triggerType2_
Definition: HLTDoubletDZ.h:53
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:45
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:50
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:46
const bool same_
Definition: HLTDoubletDZ.h:59
std::string encode() const
Definition: InputTag.cc:159
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:47
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:48
const int min_N_
Definition: HLTDoubletDZ.h:57
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:56
const double maxDZ_
Definition: HLTDoubletDZ.h:55
const double minDR_
Definition: HLTDoubletDZ.h:54
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const bool checkSC_
Definition: HLTDoubletDZ.h:58

Definition at line 69 of file HLTDoubletDZ.cc.

69  :
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:52
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:51
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:49
const int triggerType2_
Definition: HLTDoubletDZ.h:53
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:45
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:50
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:46
const bool same_
Definition: HLTDoubletDZ.h:59
std::string encode() const
Definition: InputTag.cc:159
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:47
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:48
const int min_N_
Definition: HLTDoubletDZ.h:57
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:56
const double maxDZ_
Definition: HLTDoubletDZ.h:55
const double minDR_
Definition: HLTDoubletDZ.h:54
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const bool checkSC_
Definition: HLTDoubletDZ.h:58

Definition at line 89 of file HLTDoubletDZ.cc.

89  :
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:52
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:51
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:49
const int triggerType2_
Definition: HLTDoubletDZ.h:53
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:45
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:50
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:46
const bool same_
Definition: HLTDoubletDZ.h:59
std::string encode() const
Definition: InputTag.cc:159
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:47
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:48
const int min_N_
Definition: HLTDoubletDZ.h:57
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:56
const double maxDZ_
Definition: HLTDoubletDZ.h:55
const double minDR_
Definition: HLTDoubletDZ.h:54
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const bool checkSC_
Definition: HLTDoubletDZ.h:58

Definition at line 109 of file HLTDoubletDZ.cc.

109  :
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:52
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:49
const int triggerType2_
Definition: HLTDoubletDZ.h:53
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:45
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:50
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:46
const bool same_
Definition: HLTDoubletDZ.h:59
std::string encode() const
Definition: InputTag.cc:159
const edm::InputTag inputTag1_
Definition: HLTDoubletDZ.h:47
const edm::InputTag inputTag2_
Definition: HLTDoubletDZ.h:48
const int min_N_
Definition: HLTDoubletDZ.h:57
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:56
const double maxDZ_
Definition: HLTDoubletDZ.h:55
const double minDR_
Definition: HLTDoubletDZ.h:54
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const bool checkSC_
Definition: HLTDoubletDZ.h:58

Member Function Documentation

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

Definition at line 295 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().

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

Definition at line 310 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().

311 {
313  iEvent.getByToken(electronToken_, electronHandle_);
314  if (!electronHandle_.isValid())
315  edm::LogError("HLTDoubletDZ") << "HLTDoubletDZ: Electron Handle not valid.";
316 
317  if ( reco::deltaR(*r1, *r2) < minDR_ )
318  return false;
319  reco::Electron e1;
320  for(auto const & eleIt : *electronHandle_) {
321  if (eleIt.superCluster() == r1->superCluster())
322  e1 = eleIt;
323  }
324 
325  const reco::RecoChargedCandidate& candidate2(*r2);
326  bool skipDZ = false;
327  if ( minPixHitsForDZ_ > 0 &&
328  (e1.gsfTrack()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_
329  || candidate2.track()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_) )
330  skipDZ = true;
331  if ( !skipDZ && std::abs(e1.vz()-candidate2.vz()) > maxDZ_ )
332  return false;
333 
334  return true;
335 }
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:51
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isValid() const
Definition: HandleBase.h:74
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:56
const double maxDZ_
Definition: HLTDoubletDZ.h:55
double vz() const override
z coordinate of vertex position
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
const double minDR_
Definition: HLTDoubletDZ.h:54
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 339 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().

340 {
342  iEvent.getByToken(electronToken_, electronHandle_);
343  if (!electronHandle_.isValid())
344  edm::LogError("HLTDoubletDZ") << "HLTDoubletDZ: Electron Handle not valid.";
345 
346  if ( reco::deltaR(*r1, *r2) < minDR_ )
347  return false;
348  reco::Electron e2;
349  for(auto const & eleIt : *electronHandle_) {
350  if (eleIt.superCluster() == r2->superCluster())
351  e2 = eleIt;
352  }
353 
354  const reco::RecoChargedCandidate& candidate1(*r1);
355  bool skipDZ = false;
356  if ( minPixHitsForDZ_ > 0 &&
357  (candidate1.track()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_
358  || e2.gsfTrack()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_) )
359  skipDZ = true;
360  if ( !skipDZ && std::abs(e2.vz()-candidate1.vz()) > maxDZ_ )
361  return false;
362 
363  return true;
364 }
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:51
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isValid() const
Definition: HandleBase.h:74
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:56
const double maxDZ_
Definition: HLTDoubletDZ.h:55
double vz() const override
z coordinate of vertex position
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
const double minDR_
Definition: HLTDoubletDZ.h:54
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 368 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_, and reco::LeafCandidate::vz().

369 {
371  iEvent.getByToken(electronToken_, electronHandle_);
372  if (!electronHandle_.isValid())
373  edm::LogError("HLTDoubletDZ") << "HLTDoubletDZ: Electron Handle not valid.";
374 
375  if ( reco::deltaR(*r1, *r2) < minDR_ )
376  return false;
377  reco::Electron e1, e2;
378  for(auto const & eleIt : *electronHandle_) {
379  if (eleIt.superCluster() == r2->superCluster())
380  e2 = eleIt;
381  if (eleIt.superCluster() == r1->superCluster())
382  e1 = eleIt;
383  }
384 
385  bool skipDZ = false;
386  if ( minPixHitsForDZ_ > 0 &&
387  (e1.gsfTrack()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_
388  || e2.gsfTrack()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_) )
389  skipDZ = true;
390  if ( !skipDZ && std::abs(e2.vz()-e1.vz()) > maxDZ_ )
391  return false;
392 
393  return true;
394 }
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
Definition: HLTDoubletDZ.h:51
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isValid() const
Definition: HandleBase.h:74
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:56
const double maxDZ_
Definition: HLTDoubletDZ.h:55
double vz() const override
z coordinate of vertex position
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
const double minDR_
Definition: HLTDoubletDZ.h:54
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 398 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().

399 {
400 
401  const reco::RecoChargedCandidate& candidate1(*r1);
402  const reco::RecoChargedCandidate& candidate2(*r2);
403  if ( reco::deltaR(candidate1, candidate2) < minDR_ )
404  return false;
405  bool skipDZ = false;
406  if ( minPixHitsForDZ_ > 0 &&
407  (candidate1.track()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_
408  || candidate2.track()->hitPattern().numberOfValidPixelHits() < minPixHitsForDZ_) )
409  skipDZ = true;
410  if ( !skipDZ && std::abs(candidate1.vz()-candidate2.vz()) > maxDZ_ )
411  return false;
412 
413  return true;
414 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const int minPixHitsForDZ_
Definition: HLTDoubletDZ.h:56
const double maxDZ_
Definition: HLTDoubletDZ.h:55
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
const double minDR_
Definition: HLTDoubletDZ.h:54
template<typename T1 , typename T2 >
void HLTDoubletDZ< T1, T2 >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 134 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), and HLTFilter::makeHLTFilterDescription().

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

Definition at line 155 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), and HLTFilter::makeHLTFilterDescription().

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

Definition at line 177 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), and HLTFilter::makeHLTFilterDescription().

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

Definition at line 199 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), and HLTFilter::makeHLTFilterDescription().

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

Definition at line 221 of file HLTDoubletDZ.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), and HLTFilter::makeHLTFilterDescription().

221  {
224  std::vector<edm::InputTag> originTag1(1,edm::InputTag("hltOriginal1"));
225  std::vector<edm::InputTag> originTag2(1,edm::InputTag("hltOriginal2"));
226  desc.add<std::vector<edm::InputTag> >("originTag1",originTag1);
227  desc.add<std::vector<edm::InputTag> >("originTag2",originTag2);
228  desc.add<edm::InputTag>("inputTag1",edm::InputTag("hltFiltered1"));
229  desc.add<edm::InputTag>("inputTag2",edm::InputTag("hltFiltered2"));
230  desc.add<int>("triggerType1",0);
231  desc.add<int>("triggerType2",0);
232  desc.add<double>("MinDR",-1.0);
233  desc.add<double>("MaxDZ",0.2);
234  desc.add<int>("MinPixHitsForDZ",0);
235  desc.add<bool>("checkSC",false);
236  desc.add<int>("MinN",1);
238 }
std::string defaultModuleLabel()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:29
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 243 of file HLTDoubletDZ.cc.

References trigger::TriggerFilterObjectWithRefs::addCollectionTag(), edm::InputTag::encode(), edm::Event::getByToken(), trigger::TriggerRefsCollections::getObjects(), edm::Event::getProvenance(), mps_fire::i, HLTDoubletDZ< T1, T2 >::inputToken1_, HLTDoubletDZ< T1, T2 >::inputToken2_, instance, label, edm::Provenance::moduleLabel(), HLTDoubletDZ< T1, T2 >::originTag1_, HLTDoubletDZ< T1, T2 >::originTag2_, sysUtil::pid, 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().

243  {
244 
246  if (iEvent.getByToken(inputToken1_, handle1) and iEvent.getByToken(inputToken2_, handle2)) {
247 
248  // get hold of pre-filtered object collections
249  handle1->getObjects(triggerType1_, coll1);
250  handle2->getObjects(triggerType2_, coll2);
251  const trigger::size_type n1(coll1.size());
252  const trigger::size_type n2(coll2.size());
253 
254  if (saveTags()) {
255  edm::InputTag tagOld;
256  for (unsigned int i=0; i<originTag1_.size(); ++i) {
257  filterproduct.addCollectionTag(originTag1_[i]);
258  }
259  tagOld=edm::InputTag();
260  for (trigger::size_type i1=0; i1!=n1; ++i1) {
261  const edm::ProductID pid(coll1[i1].id());
262  const std::string& label(iEvent.getProvenance(pid).moduleLabel());
264  const std::string& process(iEvent.getProvenance(pid).processName());
266  if (tagOld.encode()!=tagNew.encode()) {
267  filterproduct.addCollectionTag(tagNew);
268  tagOld=tagNew;
269  }
270  }
271  for (unsigned int i=0; i<originTag2_.size(); ++i) {
272  filterproduct.addCollectionTag(originTag2_[i]);
273  }
274  tagOld=edm::InputTag();
275  for (trigger::size_type i2=0; i2!=n2; ++i2) {
276  const edm::ProductID pid(coll2[i2].id());
277  const std::string& label(iEvent.getProvenance(pid).moduleLabel());
279  const std::string& process(iEvent.getProvenance(pid).processName());
281  if (tagOld.encode()!=tagNew.encode()) {
282  filterproduct.addCollectionTag(tagNew);
283  tagOld=tagNew;
284  }
285  }
286  }
287 
288  return true;
289  } else
290  return false;
291 }
const int triggerType1_
Definition: HLTDoubletDZ.h:52
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoubletDZ.h:49
const int triggerType2_
Definition: HLTDoubletDZ.h:53
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoubletDZ.h:45
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoubletDZ.h:50
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoubletDZ.h:46
static PFTauRenderPlugin instance
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
std::string const & processName() const
Definition: Provenance.h:55
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:53
bool saveTags() const
Definition: HLTFilter.h:45
std::string const & productInstanceName() const
Definition: Provenance.h:56
Provenance getProvenance(BranchID const &theID) const
Definition: Event.cc:105
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 419 of file HLTDoubletDZ.cc.

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

420 {
421 
422  // All HLT filters must create and fill an HLT filter object,
423  // recording any reconstructed physics objects satisfying (or not)
424  // this HLT filter, and place it in the Event.
425  bool accept(false);
426 
427  std::vector<T1Ref> coll1;
428  std::vector<T2Ref> coll2;
429 
430  if (getCollections(iEvent, coll1, coll2, filterproduct)) {
431  int n(0);
432  T1Ref r1;
433  T2Ref r2;
434 
435  for (unsigned int i1=0; i1!=coll1.size(); i1++) {
436  r1=coll1[i1];
437  //const reco::Candidate& candidate1(*r1);
438  unsigned int I(0);
439  if (same_) {I=i1+1;}
440  for (unsigned int i2=I; i2!=coll2.size(); i2++) {
441  r2=coll2[i2];
442  if (checkSC_) {
443  if (r1->superCluster().isNonnull() && r2->superCluster().isNonnull()) {
444  if (r1->superCluster() == r2->superCluster()) continue;
445  }
446  }
447 
448  if (!computeDZ(iEvent, r1, r2))
449  continue;
450 
451  n++;
452  filterproduct.addObject(triggerType1_,r1);
453  filterproduct.addObject(triggerType2_,r2);
454  }
455  }
456 
457  accept = accept || (n>=min_N_);
458  }
459 
460  return accept;
461 }
const int triggerType1_
Definition: HLTDoubletDZ.h:52
const int triggerType2_
Definition: HLTDoubletDZ.h:53
const bool same_
Definition: HLTDoubletDZ.h:59
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:57
edm::Ref< T2Collection > T2Ref
Definition: HLTDoubletDZ.h:32
edm::Ref< T1Collection > T1Ref
Definition: HLTDoubletDZ.h:30
const bool checkSC_
Definition: HLTDoubletDZ.h:58

Member Data Documentation

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

Definition at line 58 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 51 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 47 of file HLTDoubletDZ.h.

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

Definition at line 48 of file HLTDoubletDZ.h.

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

Definition at line 49 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 50 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 55 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 57 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 54 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 56 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 45 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 46 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 59 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