CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Types | Private Attributes
HLTTripletMass< T1, T2, T3 > Class Template Reference
Inheritance diagram for HLTTripletMass< T1, T2, T3 >:
HLTFilter edm::global::EDFilter<> edm::global::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

bool getCollections (edm::Event &iEvent, std::vector< T1Ref > &coll1, std::vector< T2Ref > &coll2, std::vector< T3Ref > &coll3, trigger::TriggerFilterObjectWithRefs &filterproduct) const
 
bool hltFilter (edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
 
 HLTTripletMass (const edm::ParameterSet &)
 
 ~HLTTripletMass () override=default
 
- Public Member Functions inherited from HLTFilter
 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
 
- Public Member Functions inherited from edm::global::EDFilter<>
 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 EDFilteroperator= (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
 
- Public Member Functions inherited from edm::global::EDFilterBase
 EDFilterBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDFilterBase () override
 
- Public Member Functions inherited from edm::ProducerBase
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
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () 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
 
EDConsumerBaseoperator= (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)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from HLTFilter
static void makeHLTFilterDescription (edm::ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from edm::global::EDFilterBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Types

typedef edm::Ref< std::vector< T1 > > T1Ref
 
typedef edm::Ref< std::vector< T2 > > T2Ref
 
typedef edm::Ref< std::vector< T3 > > T3Ref
 

Private Attributes

const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefsinputToken1_
 
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefsinputToken2_
 
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefsinputToken3_
 
const bool is1and2Same_
 
const bool is2and3Same_
 
const double max_DR2_
 
const double max_DR_
 
const std::vector< double > max_InvMass_
 
const std::vector< double > min_InvMass_
 
const int min_N_
 
const std::vector< edm::InputTagoriginTag1_
 
const std::vector< edm::InputTagoriginTag2_
 
const std::vector< edm::InputTagoriginTag3_
 
const int triggerType1_
 
const int triggerType2_
 
const int triggerType3_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDFilterBase
typedef EDFilterBase ModuleType
 
- Public Types inherited from edm::ProducerBase
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
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
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 ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (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)
 

Detailed Description

template<typename T1, typename T2, typename T3>
class HLTTripletMass< T1, T2, T3 >

Definition at line 19 of file HLTTripletMass.cc.

Member Typedef Documentation

◆ T1Ref

template<typename T1 , typename T2 , typename T3 >
typedef edm::Ref<std::vector<T1> > HLTTripletMass< T1, T2, T3 >::T1Ref
private

Definition at line 20 of file HLTTripletMass.cc.

◆ T2Ref

template<typename T1 , typename T2 , typename T3 >
typedef edm::Ref<std::vector<T2> > HLTTripletMass< T1, T2, T3 >::T2Ref
private

Definition at line 21 of file HLTTripletMass.cc.

◆ T3Ref

template<typename T1 , typename T2 , typename T3 >
typedef edm::Ref<std::vector<T3> > HLTTripletMass< T1, T2, T3 >::T3Ref
private

Definition at line 22 of file HLTTripletMass.cc.

Constructor & Destructor Documentation

◆ HLTTripletMass()

template<typename T1 , typename T2 , typename T3 >
HLTTripletMass< T1, T2, T3 >::HLTTripletMass ( const edm::ParameterSet iConfig)
explicit

Definition at line 58 of file HLTTripletMass.cc.

References Exception, HLTTripletMass< T1, T2, T3 >::max_DR_, HLTTripletMass< T1, T2, T3 >::max_InvMass_, and HLTTripletMass< T1, T2, T3 >::min_InvMass_.

59  : HLTFilter(iConfig),
60  originTag1_(iConfig.getParameter<std::vector<edm::InputTag>>("originTag1")),
61  originTag2_(iConfig.getParameter<std::vector<edm::InputTag>>("originTag2")),
62  originTag3_(iConfig.getParameter<std::vector<edm::InputTag>>("originTag3")),
63  inputToken1_(consumes(iConfig.getParameter<edm::InputTag>("inputTag1"))),
64  inputToken2_(consumes(iConfig.getParameter<edm::InputTag>("inputTag2"))),
65  inputToken3_(consumes(iConfig.getParameter<edm::InputTag>("inputTag3"))),
66  triggerType1_(iConfig.getParameter<int>("triggerType1")),
67  triggerType2_(iConfig.getParameter<int>("triggerType2")),
68  triggerType3_(iConfig.getParameter<int>("triggerType3")),
69  min_InvMass_(iConfig.getParameter<vector<double>>("MinInvMass")),
70  max_InvMass_(iConfig.getParameter<vector<double>>("MaxInvMass")),
71  max_DR_(iConfig.getParameter<double>("MaxDR")),
73  min_N_(iConfig.getParameter<int>("MinN")),
74  is1and2Same_(iConfig.getParameter<bool>("is1and2Same")),
75  is2and3Same_(iConfig.getParameter<bool>("is2and3Same")) {
76  if (min_InvMass_.size() != max_InvMass_.size()) {
77  throw cms::Exception("Configuration") << "size of \"MinInvMass\" (" << min_InvMass_.size()
78  << ") and \"MaxInvMass\" (" << max_InvMass_.size() << ") differ";
79  }
80  if (max_DR_ < 0) {
81  throw cms::Exception("Configuration") << "invalid value for parameter \"MaxDR\" (must be >= 0): " << max_DR_;
82  }
83 }
const int triggerType3_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const std::vector< edm::InputTag > originTag1_
const int triggerType2_
const std::vector< edm::InputTag > originTag2_
const double max_DR2_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken3_
const double max_DR_
const std::vector< double > min_InvMass_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const int min_N_
const int triggerType1_
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const bool is2and3Same_
const std::vector< double > max_InvMass_
const bool is1and2Same_
const std::vector< edm::InputTag > originTag3_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_

◆ ~HLTTripletMass()

template<typename T1 , typename T2 , typename T3 >
HLTTripletMass< T1, T2, T3 >::~HLTTripletMass ( )
overridedefault

Member Function Documentation

◆ fillDescriptions()

template<typename T1 , typename T2 , typename T3 >
void HLTTripletMass< T1, T2, T3 >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 86 of file HLTTripletMass.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, vertexPlots::e4, and HLT_2022v15_cff::InputTag.

86  {
89  desc.add<std::vector<edm::InputTag>>("originTag1", {edm::InputTag("hltOriginal1")});
90  desc.add<std::vector<edm::InputTag>>("originTag2", {edm::InputTag("hltOriginal2")});
91  desc.add<std::vector<edm::InputTag>>("originTag3", {edm::InputTag("hltOriginal3")});
92  desc.add<edm::InputTag>("inputTag1", edm::InputTag("hltFiltered1"));
93  desc.add<edm::InputTag>("inputTag2", edm::InputTag("hltFiltered2"));
94  desc.add<edm::InputTag>("inputTag3", edm::InputTag("hltFiltered3"));
95  desc.add<int>("triggerType1", 0);
96  desc.add<int>("triggerType2", 0);
97  desc.add<int>("triggerType3", 0);
98 
99  desc.add<vector<double>>("MinInvMass", {0});
100  desc.add<vector<double>>("MaxInvMass", {1e12});
101 
102  desc.add<double>("MaxDR", 1e4);
103  desc.add<int>("MinN", 0);
104 
105  desc.add<bool>("is1and2Same", false);
106  desc.add<bool>("is2and3Same", false);
107  descriptions.addWithDefaultLabel(desc);
108 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:25

◆ getCollections()

template<typename T1 , typename T2 , typename T3 >
bool HLTTripletMass< T1, T2, T3 >::getCollections ( edm::Event iEvent,
std::vector< T1Ref > &  coll1,
std::vector< T2Ref > &  coll2,
std::vector< T3Ref > &  coll3,
trigger::TriggerFilterObjectWithRefs filterproduct 
) const

Definition at line 111 of file HLTTripletMass.cc.

References trigger::TriggerFilterObjectWithRefs::addCollectionTag(), edm::InputTag::encode(), trigger::TriggerRefsCollections::getObjects(), mps_fire::i, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, testProducerWithPsetDescEmpty_cfi::i3, iEvent, HLT_2022v15_cff::InputTag, instance, label, LaserDQM_cfg::process, PDWG_EXODelayedJetMET_cff::saveTags, and AlCaHLTBitMon_QueryRunRegistry::string.

115  {
116  edm::Handle<trigger::TriggerFilterObjectWithRefs> handle1, handle2, handle3;
117  if (iEvent.getByToken(inputToken1_, handle1) and iEvent.getByToken(inputToken2_, handle2) and
118  iEvent.getByToken(inputToken3_, handle3)) {
119  // get hold of pre-filtered object collections
120  handle1->getObjects(triggerType1_, coll1);
121  handle2->getObjects(triggerType2_, coll2);
122  handle3->getObjects(triggerType3_, coll3);
123  const trigger::size_type n1(coll1.size());
124  const trigger::size_type n2(coll2.size());
125  const trigger::size_type n3(coll3.size());
126 
127  if (saveTags()) {
128  edm::InputTag tagOld;
129  for (unsigned int i = 0; i < originTag1_.size(); ++i) {
130  filterproduct.addCollectionTag(originTag1_[i]);
131  }
132  tagOld = edm::InputTag();
133  for (trigger::size_type i1 = 0; i1 != n1; ++i1) {
134  const edm::ProductID pid(coll1[i1].id());
135  const auto& prov = iEvent.getStableProvenance(pid);
136  const std::string& label(prov.moduleLabel());
137  const std::string& instance(prov.productInstanceName());
138  const std::string& process(prov.processName());
140  if (tagOld.encode() != tagNew.encode()) {
141  filterproduct.addCollectionTag(tagNew);
142  tagOld = tagNew;
143  }
144  }
145  for (unsigned int i = 0; i < originTag2_.size(); ++i) {
146  filterproduct.addCollectionTag(originTag2_[i]);
147  }
148  tagOld = edm::InputTag();
149  for (trigger::size_type i2 = 0; i2 != n2; ++i2) {
150  const edm::ProductID pid(coll2[i2].id());
151  const auto& prov = iEvent.getStableProvenance(pid);
152  const std::string& label(prov.moduleLabel());
153  const std::string& instance(prov.productInstanceName());
154  const std::string& process(prov.processName());
156  if (tagOld.encode() != tagNew.encode()) {
157  filterproduct.addCollectionTag(tagNew);
158  tagOld = tagNew;
159  }
160  }
161  for (unsigned int i = 0; i < originTag3_.size(); ++i) {
162  filterproduct.addCollectionTag(originTag3_[i]);
163  }
164  tagOld = edm::InputTag();
165  for (trigger::size_type i3 = 0; i3 != n3; ++i3) {
166  const edm::ProductID pid(coll3[i3].id());
167  const auto& prov = iEvent.getStableProvenance(pid);
168  const std::string& label(prov.moduleLabel());
169  const std::string& instance(prov.productInstanceName());
170  const std::string& process(prov.processName());
172  if (tagOld.encode() != tagNew.encode()) {
173  filterproduct.addCollectionTag(tagNew);
174  tagOld = tagNew;
175  }
176  }
177  }
178 
179  return true;
180  } else
181  return false;
182 }
const int triggerType3_
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
const std::vector< edm::InputTag > originTag1_
const int triggerType2_
static PFTauRenderPlugin instance
std::string encode() const
Definition: InputTag.cc:159
const std::vector< edm::InputTag > originTag2_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken3_
uint16_t size_type
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
char const * label
int iEvent
Definition: GenABIO.cc:224
const int triggerType1_
bool saveTags() const
Definition: HLTFilter.h:46
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
const std::vector< edm::InputTag > originTag3_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_

◆ hltFilter()

template<typename T1 , typename T2 , typename T3 >
bool HLTTripletMass< T1, T2, T3 >::hltFilter ( edm::Event iEvent,
const edm::EventSetup iSetup,
trigger::TriggerFilterObjectWithRefs filterproduct 
) const
overridevirtual

Implements HLTFilter.

Definition at line 186 of file HLTTripletMass.cc.

References trigger::TriggerRefsCollections::addObject(), reco::deltaR2(), testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, testProducerWithPsetDescEmpty_cfi::i3, iEvent, dqmiolumiharvest::j, EgHLTOffHistBins_cfi::mass, dqmiodumpmetadata::n, diffTwoXMLs::r1, and diffTwoXMLs::r2.

188  {
189  // All HLT filters must create and fill an HLT filter object,
190  // recording any reconstructed physics objects satisfying (or not)
191  // this HLT filter, and place it in the Event.
192 
193  std::vector<T1Ref> coll1;
194  std::vector<T2Ref> coll2;
195  std::vector<T3Ref> coll3;
196 
197  int n(0);
198  if (getCollections(iEvent, coll1, coll2, coll3, filterproduct)) {
199  T1Ref r1;
200  T2Ref r2;
201  T3Ref r3;
202 
203  reco::Particle::LorentzVector dauA_p4, dauB_p4, dauAB_p4, dauC_p4;
204  for (unsigned int i1 = 0; i1 != coll1.size(); i1++) {
205  r1 = coll1[i1];
206  dauA_p4 = reco::Particle::LorentzVector(r1->px(), r1->py(), r1->pz(), r1->energy());
207  unsigned int i2 = is1and2Same_ ? i1 + 1 : 0;
208  for (; i2 != coll2.size(); i2++) {
209  r2 = coll2[i2];
210  dauB_p4 = reco::Particle::LorentzVector(r2->px(), r2->py(), r2->pz(), r2->energy());
211  dauAB_p4 = dauA_p4 + dauB_p4;
212 
213  unsigned int i3 = is2and3Same_ ? i2 + 1 : 0;
214  for (; i3 != coll3.size(); i3++) {
215  r3 = coll3[i3];
216  dauC_p4 = reco::Particle::LorentzVector(r3->px(), r3->py(), r3->pz(), r3->energy());
217  if (reco::deltaR2(dauAB_p4, dauC_p4) > max_DR2_) {
218  continue;
219  }
220  bool passesMassCut = false;
221  auto const mass_ABC = (dauC_p4 + dauAB_p4).mass();
222  for (unsigned int j = 0; j < max_InvMass_.size(); j++) {
223  if ((mass_ABC >= min_InvMass_[j]) and (mass_ABC < max_InvMass_[j])) {
224  passesMassCut = true;
225  break;
226  }
227  }
228  if (passesMassCut) {
229  n++;
230  filterproduct.addObject(triggerType1_, r1);
231  filterproduct.addObject(triggerType2_, r2);
232  filterproduct.addObject(triggerType3_, r3);
233  }
234  }
235  }
236  }
237  }
238 
239  return (n >= min_N_);
240 }
const int triggerType3_
const int triggerType2_
edm::Ref< std::vector< T2 > > T2Ref
const double max_DR2_
bool getCollections(edm::Event &iEvent, std::vector< T1Ref > &coll1, std::vector< T2Ref > &coll2, std::vector< T3Ref > &coll3, trigger::TriggerFilterObjectWithRefs &filterproduct) const
const std::vector< double > min_InvMass_
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
edm::Ref< std::vector< T3 > > T3Ref
const int min_N_
int iEvent
Definition: GenABIO.cc:224
const int triggerType1_
edm::Ref< std::vector< T1 > > T1Ref
const bool is2and3Same_
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:16
const std::vector< double > max_InvMass_
const bool is1and2Same_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:21

Member Data Documentation

◆ inputToken1_

template<typename T1 , typename T2 , typename T3 >
const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> HLTTripletMass< T1, T2, T3 >::inputToken1_
private

Definition at line 42 of file HLTTripletMass.cc.

◆ inputToken2_

template<typename T1 , typename T2 , typename T3 >
const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> HLTTripletMass< T1, T2, T3 >::inputToken2_
private

Definition at line 43 of file HLTTripletMass.cc.

◆ inputToken3_

template<typename T1 , typename T2 , typename T3 >
const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> HLTTripletMass< T1, T2, T3 >::inputToken3_
private

Definition at line 44 of file HLTTripletMass.cc.

◆ is1and2Same_

template<typename T1 , typename T2 , typename T3 >
const bool HLTTripletMass< T1, T2, T3 >::is1and2Same_
private

Definition at line 53 of file HLTTripletMass.cc.

◆ is2and3Same_

template<typename T1 , typename T2 , typename T3 >
const bool HLTTripletMass< T1, T2, T3 >::is2and3Same_
private

Definition at line 54 of file HLTTripletMass.cc.

◆ max_DR2_

template<typename T1 , typename T2 , typename T3 >
const double HLTTripletMass< T1, T2, T3 >::max_DR2_
private

Definition at line 51 of file HLTTripletMass.cc.

◆ max_DR_

template<typename T1 , typename T2 , typename T3 >
const double HLTTripletMass< T1, T2, T3 >::max_DR_
private

Definition at line 50 of file HLTTripletMass.cc.

Referenced by HLTTripletMass< T1, T2, T3 >::HLTTripletMass().

◆ max_InvMass_

template<typename T1 , typename T2 , typename T3 >
const std::vector<double> HLTTripletMass< T1, T2, T3 >::max_InvMass_
private

Definition at line 49 of file HLTTripletMass.cc.

Referenced by HLTTripletMass< T1, T2, T3 >::HLTTripletMass().

◆ min_InvMass_

template<typename T1 , typename T2 , typename T3 >
const std::vector<double> HLTTripletMass< T1, T2, T3 >::min_InvMass_
private

Definition at line 48 of file HLTTripletMass.cc.

Referenced by HLTTripletMass< T1, T2, T3 >::HLTTripletMass().

◆ min_N_

template<typename T1 , typename T2 , typename T3 >
const int HLTTripletMass< T1, T2, T3 >::min_N_
private

Definition at line 52 of file HLTTripletMass.cc.

◆ originTag1_

template<typename T1 , typename T2 , typename T3 >
const std::vector<edm::InputTag> HLTTripletMass< T1, T2, T3 >::originTag1_
private

Definition at line 39 of file HLTTripletMass.cc.

◆ originTag2_

template<typename T1 , typename T2 , typename T3 >
const std::vector<edm::InputTag> HLTTripletMass< T1, T2, T3 >::originTag2_
private

Definition at line 40 of file HLTTripletMass.cc.

◆ originTag3_

template<typename T1 , typename T2 , typename T3 >
const std::vector<edm::InputTag> HLTTripletMass< T1, T2, T3 >::originTag3_
private

Definition at line 41 of file HLTTripletMass.cc.

◆ triggerType1_

template<typename T1 , typename T2 , typename T3 >
const int HLTTripletMass< T1, T2, T3 >::triggerType1_
private

Definition at line 45 of file HLTTripletMass.cc.

◆ triggerType2_

template<typename T1 , typename T2 , typename T3 >
const int HLTTripletMass< T1, T2, T3 >::triggerType2_
private

Definition at line 46 of file HLTTripletMass.cc.

◆ triggerType3_

template<typename T1 , typename T2 , typename T3 >
const int HLTTripletMass< T1, T2, T3 >::triggerType3_
private

Definition at line 47 of file HLTTripletMass.cc.