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.
- Date:
- 2012/02/24 13:34:20
- Revision:
- 1.9
- Author
- Martin Grunewald
See header file for documentation
- Date:
- 2012/03/27 18:04:53
- Revision:
- 1.25
- Author
- Martin Grunewald
Definition at line 33 of file HLTDoublet.h.
template<typename T1 , typename T2 >
Definition at line 30 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_.
31 originTag1_(iConfig.template getParameter<edm::InputTag>(
"originTag1")),
32 originTag2_(iConfig.template getParameter<edm::InputTag>(
"originTag2")),
33 inputTag1_(iConfig.template getParameter<edm::InputTag>(
"inputTag1")),
34 inputTag2_(iConfig.template getParameter<edm::InputTag>(
"inputTag2")),
35 triggerType1_(iConfig.template getParameter<int>(
"triggerType1")),
36 triggerType2_(iConfig.template getParameter<int>(
"triggerType2")),
37 min_Dphi_ (iConfig.template getParameter<double>(
"MinDphi")),
38 max_Dphi_ (iConfig.template getParameter<double>(
"MaxDphi")),
39 min_Deta_ (iConfig.template getParameter<double>(
"MinDeta")),
40 max_Deta_ (iConfig.template getParameter<double>(
"MaxDeta")),
41 min_Minv_ (iConfig.template getParameter<double>(
"MinMinv")),
42 max_Minv_ (iConfig.template getParameter<double>(
"MaxMinv")),
43 min_DelR_ (iConfig.template getParameter<double>(
"MinDelR")),
44 max_DelR_ (iConfig.template getParameter<double>(
"MaxDelR")),
45 min_Pt_ (iConfig.template getParameter<double>(
"MinPt")),
46 max_Pt_ (iConfig.template getParameter<double>(
"MaxPt")),
47 min_N_ (iConfig.template getParameter<int>(
"MinN")),
62 LogDebug(
"") <<
"InputTags and cuts : "
71 <<
" same/dphi/deta/minv/delr/pt "
T getParameter(std::string const &) const
edm::InputTag originTag1_
edm::InputTag originTag2_
HLTFilter(const edm::ParameterSet &config)
std::vector< T2Ref > coll2_
std::vector< T1Ref > coll1_
template<typename T1 , typename T2 >
Implements HLTFilter.
Definition at line 112 of file HLTDoublet.cc.
References abs, accept(), trigger::TriggerFilterObjectWithRefs::addCollectionTag(), trigger::TriggerRefsCollections::addObject(), edm::HandleBase::clear(), edm::InputTag::encode(), edm::Event::getByLabel(), edm::Event::getProvenance(), Exhume::I, instance, diffTwoXMLs::label, M_PI, edm::Provenance::moduleLabel(), n, AlCaHLTBitMon_ParallelJobs::p, p1, p2, evf::utils::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().
116 using namespace reco;
117 using namespace trigger;
148 if (tagOld.
encode()!=tagNew.encode()) {
151 LogVerbatim(
"HLTDoublet") <<
" XXX " <<
label_ <<
" 1b " << tagNew.encode() << std::endl;
163 if (tagOld.
encode()!=tagNew.encode()) {
166 LogVerbatim(
"HLTDoublet") <<
" XXX " <<
label_ <<
" 2b " << tagNew.encode() << std::endl;
175 for (
unsigned int i1=0; i1!=n1; i1++) {
180 for (
unsigned int i2=
I; i2!=n2; i2++) {
184 double Dphi(
std::abs(p1.phi()-p2.phi()));
187 double Deta(
std::abs(p1.eta()-p2.eta()));
193 double DelR(
sqrt(Dphi*Dphi+Deta*Deta));
static PFTauRenderPlugin instance
edm::Ref< T2Collection > T2Ref
std::string const & processName() const
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
edm::InputTag originTag1_
edm::InputTag originTag2_
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
edm::Ref< T1Collection > T1Ref
const std::complex< double > I
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
std::string const & moduleLabel() const
std::vector< T2Ref > coll2_
std::vector< T1Ref > coll1_
std::string const & productInstanceName() const
Provenance getProvenance(BranchID const &theID) const
math::XYZTLorentzVector LorentzVector
Lorentz vector.