29 template<
typename T1,
int T
id1,
typename T2,
int T
id2>
31 inputTag1_(iConfig.
template getParameter<edm::InputTag>(
"inputTag1")),
32 inputTag2_(iConfig.
template getParameter<edm::InputTag>(
"inputTag2")),
33 saveTags_ (iConfig.
template getUntrackedParameter<bool>(
"saveTags",
false)),
34 min_Dphi_ (iConfig.
template getParameter<double>(
"MinDphi")),
35 max_Dphi_ (iConfig.
template getParameter<double>(
"MaxDphi")),
36 min_Deta_ (iConfig.
template getParameter<double>(
"MinDeta")),
37 max_Deta_ (iConfig.
template getParameter<double>(
"MaxDeta")),
38 min_Minv_ (iConfig.
template getParameter<double>(
"MinMinv")),
39 max_Minv_ (iConfig.
template getParameter<double>(
"MaxMinv")),
40 min_DelR_ (iConfig.
template getParameter<double>(
"MinDelR")),
41 max_DelR_ (iConfig.
template getParameter<double>(
"MaxDelR")),
42 min_N_ (iConfig.
template getParameter<int>(
"MinN")),
54 LogDebug(
"") <<
"InputTags and cuts : "
61 <<
" same/dphi/deta/minv/delr "
65 produces<trigger::TriggerFilterObjectWithRefs>();
68 template<
typename T1,
int T
id1,
typename T2,
int T
id2>
78 template<
typename T1,
int T
id1,
typename T2,
int T
id2>
85 using namespace trigger;
92 auto_ptr<TriggerFilterObjectWithRefs>
105 coll1->getObjects(Tid1,coll1_);
108 coll2->getObjects(Tid2,coll2_);
120 if (tagOld.
encode()!=tagNew.encode()) {
121 filterobject->addCollectionTag(tagNew);
132 if (tagOld.
encode()!=tagNew.encode()) {
133 filterobject->addCollectionTag(tagNew);
143 for (
unsigned int i1=0; i1!=n1; i1++) {
148 for (
unsigned int i2=I; i2!=n2; i2++) {
152 double Dphi(
std::abs(p1.phi()-p2.phi()));
155 double Deta(
std::abs(p1.eta()-p2.eta()));
160 double DelR(
sqrt(Dphi*Dphi+Deta*Deta));
162 if ( ( (!cutdphi_) || ((min_Dphi_<=Dphi) && (Dphi<=max_Dphi_)) ) &&
163 ( (!cutdeta_) || ((min_Deta_<=Deta) && (Deta<=max_Deta_)) ) &&
164 ( (!cutminv_) || ((min_Minv_<=Minv) && (Minv<=max_Minv_)) ) &&
165 ( (!cutdelr_) || ((min_DelR_<=DelR) && (DelR<=max_DelR_)) ) ) {
167 filterobject->addObject(Tid1,r1);
168 filterobject->addObject(Tid2,r2);
174 accept = accept || (n>=min_N_);
177 iEvent.
put(filterobject);
std::string const & processName() const
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
virtual bool filter(edm::Event &, const edm::EventSetup &)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
const std::complex< double > I
HLTDoublet(const edm::ParameterSet &)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::string const & moduleLabel() const
std::string const & productInstanceName() const
Provenance getProvenance(BranchID const &theID) const
math::XYZTLorentzVector LorentzVector
Lorentz vector.