|
| 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 |
|
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) |
|
| ~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 |
|
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >> |
|
typedef
ProductRegistryHelper::TypeLabelList | TypeLabelList |
|
typedef ProductLabels | Labels |
|
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_ <<
" "
const std::vector< edm::InputTag > originTag1_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken3_
const edm::InputTag inputTag1_
const edm::InputTag inputTag3_
const std::string * moduleLabel() const
const std::vector< edm::InputTag > originTag3_
HLTFilter(const edm::ParameterSet &config)
const edm::InputTag inputTag2_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
T getParameter(std::string const &) const
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(), srCondWrite_cfg::deltaPhi, edm::Event::get(), edm::Event::getStableProvenance(), mps_fire::i, HLT_FULL_cff::InputTag, instance, label, dqmiodumpmetadata::n, fireworks::p1, fireworks::p2, LaserDQM_cfg::process, diffTwoXMLs::r1, diffTwoXMLs::r2, dt_dqm_sourceclient_common_cff::reco, and CommPDSkim_cfg::saveTags.
191 using namespace reco;
192 using namespace trigger;
203 std::vector<T1Ref> coll1;
206 std::vector<T2Ref> coll2;
209 std::vector<T3Ref> coll3;
228 const string&
label(prov.moduleLabel());
229 const string&
instance(prov.productInstanceName());
230 const string&
process(prov.processName());
232 if (tagOld.
encode() != tagNew.encode()) {
247 const string&
label(prov.moduleLabel());
248 const string&
instance(prov.productInstanceName());
249 const string&
process(prov.processName());
251 if (tagOld.
encode() != tagNew.encode()) {
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++) {
289 auto const i3_min = (
same23_ ? i2_min + 1 : (
same13_ ? i1 + 1 : 0));
290 for (
size_t i3 = i3_min; i3 != n3; i3++) {
303 auto const dEta13(
std::abs(p1.eta() - p3.eta()));
306 auto const dEta23(
std::abs(p2.eta() - p3.eta()));
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_
edm::Ref< T1Collection > T1Ref
Abs< T >::type abs(const T &t)
edm::Ref< T3Collection > T3Ref
bool get(ProductID const &oid, Handle< PROD > &result) const
const std::string * moduleLabel() const
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_
StableProvenance const & getStableProvenance(BranchID const &theID) const
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_