template<typename T1, typename T2>
class HLTDoublet< T1, T2 >
This class is an HLTFilter (-> EDFilter) implementing a basic HLT trigger for pairs of object, evaluating all pairs with the first object from collection 1, and the second object from collection 2, cutting on variables relating to their 4-momentum representations. The object collections are assumed to be outputs of HLTSinglet single-object-type filters so that the access is thorugh RefToBases and polymorphic.
- Author
- Martin Grunewald
See header file for documentation
- Author
- Martin Grunewald
Definition at line 34 of file HLTDoublet.h.
template<typename T1 , typename T2 >
Definition at line 29 of file HLTDoublet.cc.
References HLTDoublet< T1, T2 >::cutdelr_, HLTDoublet< T1, T2 >::cutdeta_, HLTDoublet< T1, T2 >::cutdphi_, HLTDoublet< T1, T2 >::cutminv_, HLTDoublet< T1, T2 >::cutpt_, edm::InputTag::encode(), HLTDoublet< T1, T2 >::inputTag1_, HLTDoublet< T1, T2 >::inputTag2_, LogDebug, HLTDoublet< T1, T2 >::max_DelR_, HLTDoublet< T1, T2 >::max_Deta_, HLTDoublet< T1, T2 >::max_Dphi_, HLTDoublet< T1, T2 >::max_Minv_, HLTDoublet< T1, T2 >::max_Pt_, HLTDoublet< T1, T2 >::min_DelR_, HLTDoublet< T1, T2 >::min_Deta_, HLTDoublet< T1, T2 >::min_Dphi_, HLTDoublet< T1, T2 >::min_Minv_, HLTDoublet< T1, T2 >::min_N_, HLTDoublet< T1, T2 >::min_Pt_, HLTDoublet< T1, T2 >::same_, HLTDoublet< T1, T2 >::triggerType1_, and HLTDoublet< T1, T2 >::triggerType2_.
30 originTag1_(iConfig.template getParameter<std::vector<edm::InputTag> >(
"originTag1")),
31 originTag2_(iConfig.template getParameter<std::vector<edm::InputTag> >(
"originTag2")),
32 inputTag1_(iConfig.template getParameter<edm::InputTag>(
"inputTag1")),
33 inputTag2_(iConfig.template getParameter<edm::InputTag>(
"inputTag2")),
36 triggerType1_(iConfig.template getParameter<int>(
"triggerType1")),
37 triggerType2_(iConfig.template getParameter<int>(
"triggerType2")),
38 min_Dphi_ (iConfig.template getParameter<double>(
"MinDphi")),
39 max_Dphi_ (iConfig.template getParameter<double>(
"MaxDphi")),
40 min_Deta_ (iConfig.template getParameter<double>(
"MinDeta")),
41 max_Deta_ (iConfig.template getParameter<double>(
"MaxDeta")),
42 min_Minv_ (iConfig.template getParameter<double>(
"MinMinv")),
43 max_Minv_ (iConfig.template getParameter<double>(
"MaxMinv")),
44 min_DelR_ (iConfig.template getParameter<double>(
"MinDelR")),
45 max_DelR_ (iConfig.template getParameter<double>(
"MaxDelR")),
46 min_Pt_ (iConfig.template getParameter<double>(
"MinPt")),
47 max_Pt_ (iConfig.template getParameter<double>(
"MaxPt")),
48 min_N_ (iConfig.template getParameter<int>(
"MinN")),
56 LogDebug(
"") <<
"InputTags and cuts : "
65 <<
" same/dphi/deta/minv/delr/pt "
const edm::InputTag inputTag2_
const edm::InputTag inputTag1_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
HLTFilter(const edm::ParameterSet &config)
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
const std::vector< edm::InputTag > originTag2_
const std::vector< edm::InputTag > originTag1_
template<typename T1 , typename T2 >
Implements HLTFilter.
Definition at line 108 of file HLTDoublet.cc.
References funct::abs(), accept(), trigger::TriggerFilterObjectWithRefs::addCollectionTag(), trigger::TriggerRefsCollections::addObject(), edm::InputTag::encode(), edm::Event::getByToken(), edm::Event::getProvenance(), Exhume::I, i, HLT_25ns14e33_v1_cff::InputTag, instance, diffTwoXMLs::label, M_PI, edm::Provenance::moduleLabel(), gen::n, AlCaHLTBitMon_ParallelJobs::p, p1, p2, sysUtil::pid, LaserDQM_cfg::process, edm::Provenance::processName(), edm::Provenance::productInstanceName(), reco::tau::disc::Pt(), diffTwoXMLs::r1, diffTwoXMLs::r2, dt_dqm_sourceclient_common_cff::reco, CommPDSkim_cfg::saveTags, and mathSSE::sqrt().
112 using namespace reco;
113 using namespace trigger;
123 std::vector<T1Ref> coll1;
124 std::vector<T2Ref> coll2;
147 if (tagOld.
encode()!=tagNew.encode()) {
164 if (tagOld.
encode()!=tagNew.encode()) {
176 for (
unsigned int i1=0; i1!=n1; i1++) {
181 for (
unsigned int i2=
I; i2!=n2; i2++) {
185 double Dphi(
std::abs(p1.phi()-p2.phi()));
188 double Deta(
std::abs(p1.eta()-p2.eta()));
194 double DelR(
sqrt(Dphi*Dphi+Deta*Deta));
static PFTauRenderPlugin instance
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::Ref< T2Collection > T2Ref
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
std::string const & processName() const
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
edm::Ref< T1Collection > T1Ref
Abs< T >::type abs(const T &t)
const std::complex< double > I
const std::string * moduleLabel() const
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
std::string const & moduleLabel() const
const std::vector< edm::InputTag > originTag2_
const std::vector< edm::InputTag > originTag1_
std::string const & productInstanceName() const
Provenance getProvenance(BranchID const &theID) const
math::PtEtaPhiELorentzVectorF LorentzVector