|
| 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 () |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
| 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 () |
|
std::vector< ConsumesInfo > | consumesInfo () const |
|
| 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 (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const |
|
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) 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 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_25ns10e33_v2_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