|
| HLTDoublet (const edm::ParameterSet &) |
|
virtual bool | hltFilter (edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override |
|
| ~HLTDoublet () |
|
| 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 |
|
virtual | ~HLTFilter () |
|
| EDFilter ()=default |
|
| EDFilterBase () |
|
ModuleDescription const & | moduleDescription () const |
|
virtual | ~EDFilterBase () |
|
| ProducerBase () |
|
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
|
std::function< void(BranchDescription
const &)> | registrationCallback () const |
| used by the fwk to register list of products More...
|
|
virtual | ~ProducerBase () |
|
| EDConsumerBase () |
|
ProductHolderIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
|
void | itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const |
|
void | itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const |
|
std::vector
< ProductHolderIndexAndSkipBit >
const & | itemsToGetFromEvent () const |
|
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
|
void | modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const |
|
bool | registeredToConsume (ProductHolderIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
|
void | updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &) |
|
virtual | ~EDConsumerBase () |
|
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 28 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_.
29 originTag1_(iConfig.template getParameter<std::vector<edm::InputTag> >(
"originTag1")),
30 originTag2_(iConfig.template getParameter<std::vector<edm::InputTag> >(
"originTag2")),
31 inputTag1_(iConfig.template getParameter<edm::InputTag>(
"inputTag1")),
32 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")),
55 LogDebug(
"") <<
"InputTags and cuts : "
64 <<
" 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 107 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, instance, diffTwoXMLs::label, M_PI, edm::Provenance::moduleLabel(), 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().
111 using namespace reco;
112 using namespace trigger;
122 std::vector<T1Ref> coll1;
123 std::vector<T2Ref> coll2;
146 if (tagOld.
encode()!=tagNew.encode()) {
163 if (tagOld.
encode()!=tagNew.encode()) {
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
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::XYZTLorentzVector LorentzVector
Lorentz vector.