28 template <
typename T1,
typename T2>
35 inputToken1_(consumes<
trigger::TriggerFilterObjectWithRefs>(inputTag1_)),
36 inputToken2_(consumes<
trigger::TriggerFilterObjectWithRefs>(inputTag2_)),
38 triggerType1_(iConfig.
template getParameter<
int>(
"triggerType1")),
39 triggerType2_(iConfig.
template getParameter<
int>(
"triggerType2")),
40 minDR_(iConfig.
template getParameter<double>(
"MinDR")),
41 maxDZ_(iConfig.
template getParameter<double>(
"MaxDZ")),
42 minPixHitsForDZ_(iConfig.
template getParameter<
int>(
"MinPixHitsForDZ")),
44 checkSC_(iConfig.
template getParameter<
bool>(
"checkSC")),
128 template <
typename T1,
typename T2>
131 template <
typename T1,
typename T2>
137 desc.
add<std::vector<edm::InputTag>>(
"originTag1",
originTag1);
138 desc.
add<std::vector<edm::InputTag>>(
"originTag2",
originTag2);
141 desc.
add<
int>(
"triggerType1", 0);
142 desc.
add<
int>(
"triggerType2", 0);
143 desc.
add<
double>(
"MinDR", -1.0);
144 desc.
add<
double>(
"MaxDZ", 0.2);
145 desc.
add<
int>(
"MinPixHitsForDZ", 0);
146 desc.
add<
bool>(
"checkSC",
false);
147 desc.
add<
int>(
"MinN", 1);
158 desc.
add<std::vector<edm::InputTag>>(
"originTag1",
originTag1);
159 desc.
add<std::vector<edm::InputTag>>(
"originTag2",
originTag2);
163 desc.
add<
int>(
"triggerType1", 0);
164 desc.
add<
int>(
"triggerType2", 0);
165 desc.
add<
double>(
"MinDR", -1.0);
166 desc.
add<
double>(
"MaxDZ", 0.2);
167 desc.
add<
int>(
"MinPixHitsForDZ", 0);
168 desc.
add<
bool>(
"checkSC",
false);
169 desc.
add<
int>(
"MinN", 1);
180 desc.
add<std::vector<edm::InputTag>>(
"originTag1",
originTag1);
181 desc.
add<std::vector<edm::InputTag>>(
"originTag2",
originTag2);
185 desc.
add<
int>(
"triggerType1", 0);
186 desc.
add<
int>(
"triggerType2", 0);
187 desc.
add<
double>(
"MinDR", -1.0);
188 desc.
add<
double>(
"MaxDZ", 0.2);
189 desc.
add<
int>(
"MinPixHitsForDZ", 0);
190 desc.
add<
bool>(
"checkSC",
false);
191 desc.
add<
int>(
"MinN", 1);
202 desc.
add<std::vector<edm::InputTag>>(
"originTag1",
originTag1);
203 desc.
add<std::vector<edm::InputTag>>(
"originTag2",
originTag2);
207 desc.
add<
int>(
"triggerType1", 0);
208 desc.
add<
int>(
"triggerType2", 0);
209 desc.
add<
double>(
"MinDR", -1.0);
210 desc.
add<
double>(
"MaxDZ", 0.2);
211 desc.
add<
int>(
"MinPixHitsForDZ", 0);
212 desc.
add<
bool>(
"checkSC",
false);
213 desc.
add<
int>(
"MinN", 1);
224 desc.
add<std::vector<edm::InputTag>>(
"originTag1",
originTag1);
225 desc.
add<std::vector<edm::InputTag>>(
"originTag2",
originTag2);
228 desc.
add<
int>(
"triggerType1", 0);
229 desc.
add<
int>(
"triggerType2", 0);
230 desc.
add<
double>(
"MinDR", -1.0);
231 desc.
add<
double>(
"MaxDZ", 0.2);
232 desc.
add<
int>(
"MinPixHitsForDZ", 0);
233 desc.
add<
bool>(
"checkSC",
false);
234 desc.
add<
int>(
"MinN", 1);
238 template <
typename T1,
typename T2>
242 std::vector<T1Ref>& coll1,
243 std::vector<T2Ref>& coll2,
265 if (tagOld.
encode() != tagNew.encode()) {
280 if (tagOld.
encode() != tagNew.encode()) {
292 template <
typename T1,
typename T2>
310 if (!electronHandle_.
isValid())
311 edm::LogError(
"HLTDoubletDZ") <<
"HLTDoubletDZ: Electron Handle not valid.";
316 for (
auto const& eleIt : *electronHandle_) {
317 if (eleIt.superCluster() == r1->superCluster())
338 if (!electronHandle_.
isValid())
339 edm::LogError(
"HLTDoubletDZ") <<
"HLTDoubletDZ: Electron Handle not valid.";
344 for (
auto const& eleIt : *electronHandle_) {
345 if (eleIt.superCluster() == r2->superCluster())
366 if (!electronHandle_.
isValid())
367 edm::LogError(
"HLTDoubletDZ") <<
"HLTDoubletDZ: Electron Handle not valid.";
372 for (
auto const& eleIt : *electronHandle_) {
373 if (eleIt.superCluster() == r2->superCluster())
375 if (eleIt.superCluster() == r1->superCluster())
408 template <
typename T1,
typename T2>
417 std::vector<T1Ref> coll1;
418 std::vector<T2Ref> coll2;
425 for (
unsigned int i1 = 0;
i1 != coll1.size();
i1++) {
432 for (
unsigned int i2 = I;
i2 != coll2.size();
i2++) {
436 if (r1->superCluster() == r2->superCluster())
450 accept = accept || (n >=
min_N_);
edm::EDGetTokenT< reco::ElectronCollection > electronToken_
HLTDoubletDZ(const edm::ParameterSet &)
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
bool isNonnull() const
Checks for non-null.
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken1_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const std::vector< edm::InputTag > originTag1_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > inputToken2_
const std::vector< edm::InputTag > originTag2_
static PFTauRenderPlugin instance
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::string defaultModuleLabel()
std::string const & processName() const
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
bool getCollections(edm::Event &iEvent, std::vector< T1Ref > &coll1, std::vector< T2Ref > &coll2, trigger::TriggerFilterObjectWithRefs &filterproduct) const
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
const edm::InputTag inputTag1_
#define DEFINE_FWK_MODULE(type)
bool computeDZ(edm::Event &iEvent, T1Ref &c1, T2Ref &c2) const
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
const edm::InputTag inputTag2_
Abs< T >::type abs(const T &t)
const std::complex< double > I
reco::TrackRef track() const override
reference to a track
def template(fileName, svg, replaceme="REPLACEME")
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::vector< Electron > ElectronCollection
collectin of Electron objects
HLTDoubletDZ< reco::RecoChargedCandidate, reco::RecoChargedCandidate > HLT2MuonMuonDZ
const int minPixHitsForDZ_
double vz() const override
z coordinate of vertex position
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
reco::GsfTrackRef gsfTrack() const override
reference to a GsfTrack
HLTDoubletDZ< reco::Electron, reco::RecoChargedCandidate > HLT2ElectronMuonDZ
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::string const & moduleLabel() const
HLTDoubletDZ< reco::RecoChargedCandidate, reco::RecoEcalCandidate > HLT2MuonPhotonDZ
HLTDoubletDZ< reco::Electron, reco::Electron > HLT2ElectronElectronDZ
virtual double vz() const =0
z coordinate of vertex position
std::string const & productInstanceName() const
Provenance getProvenance(BranchID const &theID) const
HLTDoubletDZ< reco::RecoEcalCandidate, reco::RecoEcalCandidate > HLT2PhotonPhotonDZ
HLTDoubletDZ< reco::RecoEcalCandidate, reco::RecoChargedCandidate > HLT2PhotonMuonDZ