CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Types | Private Attributes
HLTDoublet< T1, T2 > Class Template Reference

#include <HLTDoublet.h>

Inheritance diagram for HLTDoublet< T1, T2 >:
HLTFilter edm::global::EDFilter<> edm::global::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 HLTDoublet (const edm::ParameterSet &)
 
bool hltFilter (edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
 
 ~HLTDoublet () override
 
- 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
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () 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
 
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)
 
virtual ~ProducerBase () noexcept(false)
 
- 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
 
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::vector< ModuleDescription const * > &modules, 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
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
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 std::vector< T1 > T1Collection
 
typedef edm::Ref< T1CollectionT1Ref
 
typedef std::vector< T2 > T2Collection
 
typedef edm::Ref< T2CollectionT2Ref
 

Private Attributes

const bool cutdelr_
 
const bool cutdeta_
 
const bool cutdphi_
 
const bool cutminv_
 
const bool cutpt_
 
const edm::InputTag inputTag1_
 
const edm::InputTag inputTag2_
 
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefsinputToken1_
 
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefsinputToken2_
 
const double max_DelR_
 
const double max_Deta_
 
const double max_Dphi_
 
const double max_Minv_
 
const double max_Pt_
 
const double min_DelR_
 
const double min_Deta_
 
const double min_Dphi_
 
const double min_Minv_
 
const int min_N_
 
const double min_Pt_
 
const std::vector< edm::InputTagoriginTag1_
 
const std::vector< edm::InputTagoriginTag2_
 
const bool same_
 
const int triggerType1_
 
const int triggerType2_
 

Additional Inherited Members

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

Detailed Description

template<typename T1, typename T2>
class HLTDoublet< T1, T2 >

See header file for documentation

Author
Martin Grunewald

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

Definition at line 34 of file HLTDoublet.h.

Member Typedef Documentation

template<typename T1 , typename T2 >
typedef std::vector<T1> HLTDoublet< T1, T2 >::T1Collection
private

Definition at line 65 of file HLTDoublet.h.

template<typename T1 , typename T2 >
typedef edm::Ref<T1Collection> HLTDoublet< T1, T2 >::T1Ref
private

Definition at line 66 of file HLTDoublet.h.

template<typename T1 , typename T2 >
typedef std::vector<T2> HLTDoublet< T1, T2 >::T2Collection
private

Definition at line 67 of file HLTDoublet.h.

template<typename T1 , typename T2 >
typedef edm::Ref<T2Collection> HLTDoublet< T1, T2 >::T2Ref
private

Definition at line 68 of file HLTDoublet.h.

Constructor & Destructor Documentation

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

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_, HLTDoublet< T1, T2 >::triggerType2_, and HLTDoublet< T1, T2 >::~HLTDoublet().

29  : HLTFilter(iConfig),
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")),
34  inputToken1_(consumes<trigger::TriggerFilterObjectWithRefs>(inputTag1_)),
35  inputToken2_(consumes<trigger::TriggerFilterObjectWithRefs>(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")),
49  same_ (inputTag1_.encode() == inputTag2_.encode()), // same collections to be compared?
50  cutdphi_ (min_Dphi_ <= max_Dphi_), // cut active?
51  cutdeta_ (min_Deta_ <= max_Deta_), // cut active?
52  cutminv_ (min_Minv_ <= max_Minv_), // cut active?
53  cutdelr_ (min_DelR_ <= max_DelR_), // cut active?
54  cutpt_ (min_Pt_ <= max_Pt_ ) // cut active?
55 {
56  LogDebug("") << "InputTags and cuts : "
57  << inputTag1_.encode() << " " << inputTag2_.encode()
58  << triggerType1_ << " " << triggerType2_
59  << " Dphi [" << min_Dphi_ << " " << max_Dphi_ << "]"
60  << " Deta [" << min_Deta_ << " " << max_Deta_ << "]"
61  << " Minv [" << min_Minv_ << " " << max_Minv_ << "]"
62  << " DelR [" << min_DelR_ << " " << max_DelR_ << "]"
63  << " Pt [" << min_Pt_ << " " << max_Pt_ << "]"
64  << " MinN =" << min_N_
65  << " same/dphi/deta/minv/delr/pt "
66  << same_
67  << cutdphi_ << cutdeta_ << cutminv_ << cutdelr_ << cutpt_;
68 }
#define LogDebug(id)
const edm::InputTag inputTag2_
Definition: HLTDoublet.h:48
const double min_Pt_
Definition: HLTDoublet.h:57
const double min_Deta_
Definition: HLTDoublet.h:54
const bool same_
Definition: HLTDoublet.h:61
const bool cutpt_
Definition: HLTDoublet.h:62
const double min_Dphi_
Definition: HLTDoublet.h:53
const edm::InputTag inputTag1_
Definition: HLTDoublet.h:47
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoublet.h:49
const double min_Minv_
Definition: HLTDoublet.h:55
const double max_Deta_
Definition: HLTDoublet.h:54
std::string encode() const
Definition: InputTag.cc:166
const int triggerType2_
Definition: HLTDoublet.h:52
const bool cutdphi_
Definition: HLTDoublet.h:62
const double min_DelR_
Definition: HLTDoublet.h:56
const bool cutdelr_
Definition: HLTDoublet.h:62
const int min_N_
Definition: HLTDoublet.h:58
const double max_Minv_
Definition: HLTDoublet.h:55
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
const double max_DelR_
Definition: HLTDoublet.h:56
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoublet.h:50
const double max_Pt_
Definition: HLTDoublet.h:57
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoublet.h:46
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoublet.h:45
const int triggerType1_
Definition: HLTDoublet.h:51
const bool cutminv_
Definition: HLTDoublet.h:62
const double max_Dphi_
Definition: HLTDoublet.h:53
const bool cutdeta_
Definition: HLTDoublet.h:62
template<typename T1 , typename T2 >
HLTDoublet< T1, T2 >::~HLTDoublet ( )
overridedefault

Member Function Documentation

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

Definition at line 74 of file HLTDoublet.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), and HLTFilter::makeHLTFilterDescription().

74  {
77  std::vector<edm::InputTag> originTag1(1,edm::InputTag("hltOriginal1"));
78  std::vector<edm::InputTag> originTag2(1,edm::InputTag("hltOriginal2"));
79  desc.add<std::vector<edm::InputTag> >("originTag1",originTag1);
80  desc.add<std::vector<edm::InputTag> >("originTag2",originTag2);
81  desc.add<edm::InputTag>("inputTag1",edm::InputTag("hltFiltered1"));
82  desc.add<edm::InputTag>("inputTag2",edm::InputTag("hltFiltered22"));
83  desc.add<int>("triggerType1",0);
84  desc.add<int>("triggerType2",0);
85  desc.add<double>("MinDphi",+1.0);
86  desc.add<double>("MaxDphi",-1.0);
87  desc.add<double>("MinDeta",+1.0);
88  desc.add<double>("MaxDeta",-1.0);
89  desc.add<double>("MinMinv",+1.0);
90  desc.add<double>("MaxMinv",-1.0);
91  desc.add<double>("MinDelR",+1.0);
92  desc.add<double>("MaxDelR",-1.0);
93  desc.add<double>("MinPt" ,+1.0);
94  desc.add<double>("MaxPt" ,-1.0);
95  desc.add<int>("MinN",1);
96  descriptions.add(defaultModuleLabel<HLTDoublet<T1,T2>>(), desc);
97 }
std::string defaultModuleLabel()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:29
void add(std::string const &label, ParameterSetDescription const &psetDescription)
template<typename T1 , typename T2 >
bool HLTDoublet< T1, T2 >::hltFilter ( edm::Event iEvent,
const edm::EventSetup iSetup,
trigger::TriggerFilterObjectWithRefs filterproduct 
) const
overridevirtual

Implements HLTFilter.

Definition at line 106 of file HLTDoublet.cc.

References funct::abs(), accept(), trigger::TriggerFilterObjectWithRefs::addCollectionTag(), trigger::TriggerRefsCollections::addObject(), HLTDoublet< T1, T2 >::cutdelr_, HLTDoublet< T1, T2 >::cutdeta_, HLTDoublet< T1, T2 >::cutdphi_, HLTDoublet< T1, T2 >::cutminv_, HLTDoublet< T1, T2 >::cutpt_, edm::InputTag::encode(), edm::Event::getByToken(), trigger::TriggerRefsCollections::getObjects(), edm::Event::getProvenance(), Exhume::I, mps_fire::i, HLTDoublet< T1, T2 >::inputToken1_, HLTDoublet< T1, T2 >::inputToken2_, instance, diffTwoXMLs::label, M_PI, 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_, edm::Provenance::moduleLabel(), HLTFilter::moduleLabel(), gen::n, HLTDoublet< T1, T2 >::originTag1_, HLTDoublet< T1, T2 >::originTag2_, AlCaHLTBitMon_ParallelJobs::p, p1, p2, sysUtil::pid, LaserDQM_cfg::process, edm::Provenance::processName(), edm::Provenance::productInstanceName(), reco::tau::disc::Pt(), diffTwoXMLs::r1, diffTwoXMLs::r2, HLTDoublet< T1, T2 >::same_, HLTFilter::saveTags(), mathSSE::sqrt(), HLTDoublet< T1, T2 >::triggerType1_, and HLTDoublet< T1, T2 >::triggerType2_.

107 {
108  using namespace std;
109  using namespace edm;
110  using namespace reco;
111  using namespace trigger;
112 
113  // All HLT filters must create and fill an HLT filter object,
114  // recording any reconstructed physics objects satisfying (or not)
115  // this HLT filter, and place it in the Event.
116 
117  bool accept(false);
118 
119  LogVerbatim("HLTDoublet") << " XXX " << moduleLabel() << " 0 " << std::endl;
120 
121  std::vector<T1Ref> coll1;
122  std::vector<T2Ref> coll2;
123 
124  // get hold of pre-filtered object collections
125  Handle<TriggerFilterObjectWithRefs> handle1, handle2;
126  if (iEvent.getByToken(inputToken1_,handle1) && iEvent.getByToken(inputToken2_,handle2)) {
127  handle1->getObjects(triggerType1_, coll1);
128  handle2->getObjects(triggerType2_, coll2);
129  const size_type n1(coll1.size());
130  const size_type n2(coll2.size());
131 
132  if (saveTags()) {
133  InputTag tagOld;
134  for (unsigned int i=0; i<originTag1_.size(); ++i) {
135  filterproduct.addCollectionTag(originTag1_[i]);
136  LogVerbatim("HLTDoublet") << " XXX " << moduleLabel() << " 1a/" << i << " " << originTag1_[i].encode() << std::endl;
137  }
138  tagOld=InputTag();
139  for (size_type i1=0; i1!=n1; ++i1) {
140  const ProductID pid(coll1[i1].id());
141  const string& label(iEvent.getProvenance(pid).moduleLabel());
142  const string& instance(iEvent.getProvenance(pid).productInstanceName());
143  const string& process(iEvent.getProvenance(pid).processName());
145  if (tagOld.encode()!=tagNew.encode()) {
146  filterproduct.addCollectionTag(tagNew);
147  tagOld=tagNew;
148  LogVerbatim("HLTDoublet") << " XXX " << moduleLabel() << " 1b " << tagNew.encode() << std::endl;
149  }
150  }
151  for (unsigned int i=0; i<originTag2_.size(); ++i) {
152  filterproduct.addCollectionTag(originTag2_[i]);
153  LogVerbatim("HLTDoublet") << " XXX " << moduleLabel() << " 2a/" << i << " " << originTag2_[i].encode() << std::endl;
154  }
155  tagOld=InputTag();
156  for (size_type i2=0; i2!=n2; ++i2) {
157  const ProductID pid(coll2[i2].id());
158  const string& label(iEvent.getProvenance(pid).moduleLabel());
159  const string& instance(iEvent.getProvenance(pid).productInstanceName());
160  const string& process(iEvent.getProvenance(pid).processName());
162  if (tagOld.encode()!=tagNew.encode()) {
163  filterproduct.addCollectionTag(tagNew);
164  tagOld=tagNew;
165  LogVerbatim("HLTDoublet") << " XXX " << moduleLabel() << " 2b " << tagNew.encode() << std::endl;
166  }
167  }
168  }
169 
170  int n(0);
171  T1Ref r1;
172  T2Ref r2;
174  for (unsigned int i1=0; i1!=n1; i1++) {
175  r1=coll1[i1];
176  p1=r1->p4();
177  unsigned int I(0);
178  if (same_) {I=i1+1;}
179  for (unsigned int i2=I; i2!=n2; i2++) {
180  r2=coll2[i2];
181  p2=r2->p4();
182 
183  double Dphi(std::abs(p1.phi()-p2.phi()));
184  if (Dphi>M_PI) Dphi=2.0*M_PI-Dphi;
185 
186  double Deta(std::abs(p1.eta()-p2.eta()));
187 
188  p=p1+p2;
189  double Minv(std::abs(p.mass()));
190  double Pt(p.pt());
191 
192  double DelR(sqrt(Dphi*Dphi+Deta*Deta));
193 
194  if ( ( (!cutdphi_) || ((min_Dphi_<=Dphi) && (Dphi<=max_Dphi_)) ) &&
195  ( (!cutdeta_) || ((min_Deta_<=Deta) && (Deta<=max_Deta_)) ) &&
196  ( (!cutminv_) || ((min_Minv_<=Minv) && (Minv<=max_Minv_)) ) &&
197  ( (!cutdelr_) || ((min_DelR_<=DelR) && (DelR<=max_DelR_)) ) &&
198  ( (!cutpt_ ) || ((min_Pt_ <=Pt ) && (Pt <=max_Pt_ )) ) ) {
199  n++;
200  filterproduct.addObject(triggerType1_,r1);
201  filterproduct.addObject(triggerType2_,r2);
202  }
203 
204  }
205  }
206  // filter decision
207  accept = (n>=min_N_);
208  }
209 
210  return accept;
211 }
const double min_Pt_
Definition: HLTDoublet.h:57
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
const double min_Deta_
Definition: HLTDoublet.h:54
const bool same_
Definition: HLTDoublet.h:61
const bool cutpt_
Definition: HLTDoublet.h:62
static PFTauRenderPlugin instance
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
edm::Ref< T2Collection > T2Ref
Definition: HLTDoublet.h:68
const double min_Dphi_
Definition: HLTDoublet.h:53
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
Definition: HLTDoublet.h:49
const double min_Minv_
Definition: HLTDoublet.h:55
const double max_Deta_
Definition: HLTDoublet.h:54
std::string const & processName() const
Definition: Provenance.h:52
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
uint16_t size_type
std::string encode() const
Definition: InputTag.cc:166
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
const int triggerType2_
Definition: HLTDoublet.h:52
edm::Ref< T1Collection > T1Ref
Definition: HLTDoublet.h:66
const bool cutdphi_
Definition: HLTDoublet.h:62
T sqrt(T t)
Definition: SSEVec.h:18
const double min_DelR_
Definition: HLTDoublet.h:56
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const bool cutdelr_
Definition: HLTDoublet.h:62
const std::complex< double > I
Definition: I.h:8
const int min_N_
Definition: HLTDoublet.h:58
const double max_Minv_
Definition: HLTDoublet.h:55
const std::string * moduleLabel() const
Definition: HLTFilter.cc:66
double p2[4]
Definition: TauolaWrapper.h:90
#define M_PI
const double max_DelR_
Definition: HLTDoublet.h:56
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
Definition: HLTDoublet.h:50
const double max_Pt_
Definition: HLTDoublet.h:57
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
std::string const & moduleLabel() const
Definition: Provenance.h:50
fixed size matrix
bool saveTags() const
Definition: HLTFilter.h:45
HLT enums.
double p1[4]
Definition: TauolaWrapper.h:89
const std::vector< edm::InputTag > originTag2_
Definition: HLTDoublet.h:46
const std::vector< edm::InputTag > originTag1_
Definition: HLTDoublet.h:45
const int triggerType1_
Definition: HLTDoublet.h:51
const bool cutminv_
Definition: HLTDoublet.h:62
const double max_Dphi_
Definition: HLTDoublet.h:53
std::string const & productInstanceName() const
Definition: Provenance.h:53
Provenance getProvenance(BranchID const &theID) const
Definition: Event.cc:129
const bool cutdeta_
Definition: HLTDoublet.h:62
math::PtEtaPhiELorentzVectorF LorentzVector

Member Data Documentation

template<typename T1 , typename T2 >
const bool HLTDoublet< T1, T2 >::cutdelr_
private
template<typename T1 , typename T2 >
const bool HLTDoublet< T1, T2 >::cutdeta_
private
template<typename T1 , typename T2 >
const bool HLTDoublet< T1, T2 >::cutdphi_
private
template<typename T1 , typename T2 >
const bool HLTDoublet< T1, T2 >::cutminv_
private
template<typename T1 , typename T2 >
const bool HLTDoublet< T1, T2 >::cutpt_
private
template<typename T1 , typename T2 >
const edm::InputTag HLTDoublet< T1, T2 >::inputTag1_
private

Definition at line 47 of file HLTDoublet.h.

Referenced by HLTDoublet< T1, T2 >::HLTDoublet().

template<typename T1 , typename T2 >
const edm::InputTag HLTDoublet< T1, T2 >::inputTag2_
private

Definition at line 48 of file HLTDoublet.h.

Referenced by HLTDoublet< T1, T2 >::HLTDoublet().

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

Definition at line 49 of file HLTDoublet.h.

Referenced by HLTDoublet< T1, T2 >::hltFilter().

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

Definition at line 50 of file HLTDoublet.h.

Referenced by HLTDoublet< T1, T2 >::hltFilter().

template<typename T1 , typename T2 >
const double HLTDoublet< T1, T2 >::max_DelR_
private
template<typename T1 , typename T2 >
const double HLTDoublet< T1, T2 >::max_Deta_
private
template<typename T1 , typename T2 >
const double HLTDoublet< T1, T2 >::max_Dphi_
private
template<typename T1 , typename T2 >
const double HLTDoublet< T1, T2 >::max_Minv_
private
template<typename T1 , typename T2 >
const double HLTDoublet< T1, T2 >::max_Pt_
private
template<typename T1 , typename T2 >
const double HLTDoublet< T1, T2 >::min_DelR_
private
template<typename T1 , typename T2 >
const double HLTDoublet< T1, T2 >::min_Deta_
private
template<typename T1 , typename T2 >
const double HLTDoublet< T1, T2 >::min_Dphi_
private
template<typename T1 , typename T2 >
const double HLTDoublet< T1, T2 >::min_Minv_
private
template<typename T1 , typename T2 >
const int HLTDoublet< T1, T2 >::min_N_
private
template<typename T1 , typename T2 >
const double HLTDoublet< T1, T2 >::min_Pt_
private
template<typename T1 , typename T2 >
const std::vector<edm::InputTag> HLTDoublet< T1, T2 >::originTag1_
private

Definition at line 45 of file HLTDoublet.h.

Referenced by HLTDoublet< T1, T2 >::hltFilter().

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

Definition at line 46 of file HLTDoublet.h.

Referenced by HLTDoublet< T1, T2 >::hltFilter().

template<typename T1 , typename T2 >
const bool HLTDoublet< T1, T2 >::same_
private
template<typename T1 , typename T2 >
const int HLTDoublet< T1, T2 >::triggerType1_
private
template<typename T1 , typename T2 >
const int HLTDoublet< T1, T2 >::triggerType2_
private