|
| HLTDoubletSinglet (const edm::ParameterSet &) |
|
bool | hltFilter (edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override |
|
| ~HLTDoubletSinglet () override |
|
| 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 |
|
| EDFilter ()=default |
|
| EDFilter (const EDFilter &)=delete |
|
bool | hasAbilityToProduceInBeginLumis () const final |
|
bool | hasAbilityToProduceInBeginProcessBlocks () const final |
|
bool | hasAbilityToProduceInBeginRuns () const final |
|
bool | hasAbilityToProduceInEndLumis () const final |
|
bool | hasAbilityToProduceInEndProcessBlocks () const final |
|
bool | hasAbilityToProduceInEndRuns () const final |
|
const EDFilter & | operator= (const EDFilter &)=delete |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
bool | wantsInputProcessBlocks () const final |
|
bool | wantsProcessBlocks () const final |
|
bool | wantsStreamLuminosityBlocks () const final |
|
bool | wantsStreamRuns () const final |
|
| EDFilterBase () |
|
ModuleDescription const & | moduleDescription () const |
|
| ~EDFilterBase () override |
|
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 |
|
std::vector< bool > const & | recordProvenanceList () 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) |
|
TypeLabelList const & | typeLabelList () const |
| used by the fwk to register the list of products of this module More...
|
|
| ~ProducerBase () noexcept(false) override |
|
std::vector< ConsumesInfo > | consumesInfo () 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 |
|
std::vector< ESProxyIndex > const & | esGetTokenIndicesVector (edm::Transition iTrans) const |
|
std::vector< ESRecordIndex > const & | esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
|
void | selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase) |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
typedef EDFilterBase | ModuleType |
|
template<typename T > |
using | BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T > |
|
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > > |
|
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
|
typedef ProductLabels | Labels |
|
template<Transition Tr = Transition::Event> |
auto | produces (std::string instanceName) noexcept |
| declare what type of product will make and with which optional label More...
|
|
template<Transition B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<BranchType B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces () |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<Transition Tr = Transition::Event> |
auto | produces () noexcept |
|
ProducesCollector | producesCollector () |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B = InEvent> |
EDConsumerBaseAdaptor< B > | consumes (edm::InputTag tag) noexcept |
|
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<Transition Tr = Transition::Event> |
constexpr auto | esConsumes () |
|
template<Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag tag) |
|
template<Transition Tr = Transition::Event> |
ESGetTokenGeneric | esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey) |
| Used with EventSetupRecord::doGet. More...
|
|
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) |
|
void | resetItemsToGetFrom (BranchType iType) |
|
template<typename T1, typename T2, typename T3>
class HLTDoubletSinglet< T1, T2, T3 >
This class is an HLTFilter (-> EDFilter) implementing a basic HLT trigger for triplets of objects, evaluating all triplets with the first object from collection 1, the second object from collection 2, and the third object from collection 3, cutting on variables relating to their 4-momentum representations. The filter itself compares only objects from collection 3 with objects from collections 1 and 2. The object collections are assumed to be outputs of HLTSinglet single-object-type filters so that the access is thorugh RefToBases and polymorphic.
- Author
- Jaime Leon Holgado
Definition at line 46 of file HLTDoubletSinglet.h.
template<typename T1 , typename T2 , typename T3 >
Definition at line 98 of file HLTDoubletSinglet.h.
References HLTDoubletSinglet< T1, T2, T3 >::cutdelr_, HLTDoubletSinglet< T1, T2, T3 >::cutdeta_, HLTDoubletSinglet< T1, T2, T3 >::cutdphi_, HLTDoubletSinglet< T1, T2, T3 >::cutminv_, HLTDoubletSinglet< T1, T2, T3 >::cutpt_, edm::InputTag::encode(), HLTDoubletSinglet< T1, T2, T3 >::inputTag1_, HLTDoubletSinglet< T1, T2, T3 >::inputTag2_, HLTDoubletSinglet< T1, T2, T3 >::inputTag3_, LogDebug, HLTDoubletSinglet< T1, T2, T3 >::max_DelR_, HLTDoubletSinglet< T1, T2, T3 >::max_Deta_, HLTDoubletSinglet< T1, T2, T3 >::max_Dphi_, HLTDoubletSinglet< T1, T2, T3 >::max_Minv_, HLTDoubletSinglet< T1, T2, T3 >::max_Pt_, HLTDoubletSinglet< T1, T2, T3 >::min_DelR_, HLTDoubletSinglet< T1, T2, T3 >::min_Deta_, HLTDoubletSinglet< T1, T2, T3 >::min_Dphi_, HLTDoubletSinglet< T1, T2, T3 >::min_Minv_, HLTDoubletSinglet< T1, T2, T3 >::min_N_, HLTDoubletSinglet< T1, T2, T3 >::min_Pt_, HLTFilter::moduleLabel(), HLTDoubletSinglet< T1, T2, T3 >::same12_, HLTDoubletSinglet< T1, T2, T3 >::same13_, HLTDoubletSinglet< T1, T2, T3 >::same23_, HLTDoubletSinglet< T1, T2, T3 >::triggerType1_, HLTDoubletSinglet< T1, T2, T3 >::triggerType2_, and HLTDoubletSinglet< T1, T2, T3 >::triggerType3_.
146 <<
"Warning: The deltaR requirement is active, but its range is invalid: DelR [" <<
min_DelR_ <<
" " T getParameter(std::string const &) const
const std::vector< edm::InputTag > originTag1_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken3_
const edm::InputTag inputTag1_
const std::string * moduleLabel() const
const edm::InputTag inputTag3_
const std::vector< edm::InputTag > originTag3_
HLTFilter(const edm::ParameterSet &config)
const edm::InputTag inputTag2_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
const std::vector< edm::InputTag > originTag2_
Log< level::Warning, false > LogWarning
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
template<typename T1 , typename T2 , typename T3 >
Implements HLTFilter.
Definition at line 186 of file HLTDoubletSinglet.h.
References funct::abs(), trigger::TriggerFilterObjectWithRefs::addCollectionTag(), trigger::TriggerRefsCollections::addObject(), SiPixelRawToDigiRegional_cfi::deltaPhi, mps_fire::i, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, testProducerWithPsetDescEmpty_cfi::i3, iEvent, HLT_2022v15_cff::InputTag, instance, label, HerwigMaxPtPartonFilter_cfi::moduleLabel, dqmiodumpmetadata::n, LaserDQM_cfg::p1, SiStripOfflineCRack_cfg::p2, chargedHadronTrackResolutionFilter_cfi::p3, LaserDQM_cfg::process, diffTwoXMLs::r2, and PDWG_EXODelayedJetMET_cff::saveTags.
191 using namespace reco;
203 std::vector<T1Ref> coll1;
206 std::vector<T2Ref> coll2;
209 std::vector<T3Ref> coll3;
227 const auto& prov =
iEvent.getStableProvenance(pid);
228 const string&
label(prov.moduleLabel());
229 const string&
instance(prov.productInstanceName());
230 const string&
process(prov.processName());
232 if (tagOld.
encode() != tagNew.encode()) {
246 const auto& prov =
iEvent.getStableProvenance(pid);
247 const string&
label(prov.moduleLabel());
248 const string&
instance(prov.productInstanceName());
249 const string&
process(prov.processName());
251 if (tagOld.
encode() != tagNew.encode()) {
265 const auto& prov =
iEvent.getStableProvenance(pid);
266 const string&
label(prov.moduleLabel());
267 const string&
instance(prov.productInstanceName());
268 const string&
process(prov.processName());
270 if (tagOld.
encode() != tagNew.encode()) {
281 for (
size_t i1 = 0;
i1 != n1;
i1++) {
284 auto const i2_min = (
same12_ ?
i1 + 1 : 0);
285 for (
size_t i2 = i2_min;
i2 != n2;
i2++) {
290 for (
size_t i3 = i3_min;
i3 != n3;
i3++) {
311 auto const delR2_13(dPhi13 * dPhi13 + dEta13 * dEta13);
314 auto const delR2_23(dPhi23 * dPhi23 + dEta23 * dEta23);
320 auto const mInv13(
std::abs(p13.mass()));
323 auto const pt13(p13.pt());
328 auto const mInv23(
std::abs(p23.mass()));
331 auto const pt23(p23.pt());
Log< level::Info, true > LogVerbatim
static PFTauRenderPlugin instance
const std::vector< edm::InputTag > originTag1_
edm::Ref< T2Collection > T2Ref
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken3_
const std::string * moduleLabel() const
edm::Ref< T1Collection > T1Ref
Abs< T >::type abs(const T &t)
edm::Ref< T3Collection > T3Ref
const std::vector< edm::InputTag > originTag3_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
math::XYZTLorentzVector LorentzVector
Lorentz vector.
const std::vector< edm::InputTag > originTag2_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_