Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consumes migration for triggerResultsByName #14262

Merged
merged 1 commit into from Apr 27, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion DataFormats/FWLite/interface/ChainEvent.h
Expand Up @@ -109,7 +109,7 @@ namespace fwlite {

virtual edm::TriggerNames const& triggerNames(edm::TriggerResults const& triggerResults) const;
void fillParameterSetRegistry() const;
virtual edm::TriggerResultsByName triggerResultsByName(std::string const& process) const;
virtual edm::TriggerResultsByName triggerResultsByName(edm::TriggerResults const& triggerResults) const;

// ---------- static member functions --------------------
static void throwProductNotFoundException(std::type_info const&, char const*, char const*, char const*);
Expand Down
2 changes: 1 addition & 1 deletion DataFormats/FWLite/interface/Event.h
Expand Up @@ -150,7 +150,7 @@ namespace fwlite {

virtual edm::TriggerNames const& triggerNames(edm::TriggerResults const& triggerResults) const;

virtual edm::TriggerResultsByName triggerResultsByName(std::string const& process) const;
virtual edm::TriggerResultsByName triggerResultsByName(edm::TriggerResults const& triggerResults) const;

virtual edm::ProcessHistory const& processHistory() const {return history();}

Expand Down
2 changes: 1 addition & 1 deletion DataFormats/FWLite/interface/MultiChainEvent.h
Expand Up @@ -123,7 +123,7 @@ class MultiChainEvent: public EventBase
{ return event2_->eventIndex(); }

virtual edm::TriggerNames const& triggerNames(edm::TriggerResults const& triggerResults) const;
virtual edm::TriggerResultsByName triggerResultsByName(std::string const& process) const;
virtual edm::TriggerResultsByName triggerResultsByName(edm::TriggerResults const& triggerResults) const;

// ---------- static member functions --------------------
static void throwProductNotFoundException(std::type_info const&, char const*, char const*, char const*);
Expand Down
4 changes: 2 additions & 2 deletions DataFormats/FWLite/src/ChainEvent.cc
Expand Up @@ -326,8 +326,8 @@ ChainEvent::fillParameterSetRegistry() const
}

edm::TriggerResultsByName
ChainEvent::triggerResultsByName(std::string const& process) const {
return event_->triggerResultsByName(process);
ChainEvent::triggerResultsByName(edm::TriggerResults const& triggerResults) const {
return event_->triggerResultsByName(triggerResults);
}

//
Expand Down
14 changes: 4 additions & 10 deletions DataFormats/FWLite/src/Event.cc
Expand Up @@ -493,20 +493,14 @@ Event::fillParameterSetRegistry() const {
}

edm::TriggerResultsByName
Event::triggerResultsByName(std::string const& process) const {
Event::triggerResultsByName(edm::TriggerResults const& triggerResults) const {

fwlite::Handle<edm::TriggerResults> hTriggerResults;
hTriggerResults.getByLabel(*this, "TriggerResults", "", process.c_str());
if (!hTriggerResults.isValid()) {
return edm::TriggerResultsByName(0,0);
}

edm::TriggerNames const* names = triggerNames_(*hTriggerResults);
edm::TriggerNames const* names = triggerNames_(triggerResults);
if (names == nullptr && !parameterSetRegistryFilled_) {
fillParameterSetRegistry();
names = triggerNames_(*hTriggerResults);
names = triggerNames_(triggerResults);
}
return edm::TriggerResultsByName(hTriggerResults.product(), names);
return edm::TriggerResultsByName(&triggerResults, names);
}

//
Expand Down
16 changes: 5 additions & 11 deletions DataFormats/FWLite/src/MultiChainEvent.cc
Expand Up @@ -459,28 +459,22 @@ MultiChainEvent::triggerNames(edm::TriggerResults const& triggerResults) const
}

edm::TriggerResultsByName
MultiChainEvent::triggerResultsByName(std::string const& process) const {
MultiChainEvent::triggerResultsByName(edm::TriggerResults const& triggerResults) const {

fwlite::Handle<edm::TriggerResults> hTriggerResults;
hTriggerResults.getByLabel(*this,"TriggerResults","",process.c_str());
if (!hTriggerResults.isValid()) {
return edm::TriggerResultsByName(0,0);
}

edm::TriggerNames const* names = triggerNames_(*hTriggerResults);
edm::TriggerNames const* names = triggerNames_(triggerResults);

if (names == nullptr) {
event1_->fillParameterSetRegistry();
names = triggerNames_(*hTriggerResults);
names = triggerNames_(triggerResults);
}

if (names == nullptr) {
event2_->to(event1_->id());
event2_->fillParameterSetRegistry();
names = triggerNames_(*hTriggerResults);
names = triggerNames_(triggerResults);
}

return edm::TriggerResultsByName(hTriggerResults.product(), names);
return edm::TriggerResultsByName(&triggerResults, names);
}

//
Expand Down
18 changes: 8 additions & 10 deletions DataFormats/FWLite/test/triggerResultsByName_cint.C
Expand Up @@ -30,24 +30,22 @@ void triggerResultsByName_cint()
for (ev.toBegin(); ! ev.atEnd(); ++ev) {

bool accept = false;
edm::TriggerResultsByName resultsByName = ev.triggerResultsByName("TEST");
if (resultsByName.isValid()) {

hTriggerResults.getByLabel(ev, "TriggerResults", "", "TEST");

if (hTriggerResults.isValid()) {
edm::TriggerResultsByName resultsByName = ev.triggerResultsByName(*hTriggerResults);
std::cout << "From TriggerResultsByName, accept = "
<< resultsByName.accept("p") << "\n";
accept = resultsByName.accept("p");
} else {
std::cerr << "triggerResultsByName_cint.C, invalid TriggerResults handle" << std::endl;
abort();
}
if (iEvent < 4 && expectedValue[iEvent] != accept) {
std::cerr << "triggerResultsByName_cint.C, trigger results do not match expected values" << std::endl;
abort();
}

// Try again, but this time test what happens when the process does not
// exist, the object should not be valid
resultsByName = ev.triggerResultsByName("DOESNOTEXIST");
if (resultsByName.isValid()) {
std::cout << "From TriggerResultsByName, accept = "
<< resultsByName.accept("p") << "\n";
}
++iEvent;
}
}
19 changes: 9 additions & 10 deletions DataFormats/FWLite/test/triggerResultsByName_multi_cint.C
Expand Up @@ -32,24 +32,23 @@ void triggerResultsByName_multi_cint()
int iEvent = 0;
for (ev.toBegin(); ! ev.atEnd(); ++ev) {
bool accept = false;
edm::TriggerResultsByName resultsByName = ev.triggerResultsByName("TEST");
if (resultsByName.isValid()) {

hTriggerResults.getByLabel(ev, "TriggerResults", "", "TEST");

if (hTriggerResults.isValid()) {

edm::TriggerResultsByName resultsByName = ev.triggerResultsByName(*hTriggerResults);
std::cout << "From TriggerResultsByName, accept = "
<< resultsByName.accept("p") << "\n";
accept = resultsByName.accept("p");
} else {
std::cerr << "triggerResultsByName_multi_cint.C, invalid TriggerResults handle" << std::endl;
abort();
}
if (iEvent < 4 && expectedValue[iEvent] != accept) {
std::cerr << "triggerResultsByName_cint.C, trigger results do not match expected values" << std::endl;
abort();
}

// Try again, but this time test what happens when the process does not
// exist, the object should not be valid
resultsByName = ev.triggerResultsByName("DOESNOTEXIST");
if (resultsByName.isValid()) {
std::cout << "From TriggerResultsByName, accept = "
<< resultsByName.accept("p") << "\n";
}
++iEvent;
}
}
3 changes: 1 addition & 2 deletions FWCore/Common/interface/EventBase.h
Expand Up @@ -32,7 +32,6 @@
#include "FWCore/Utilities/interface/InputTag.h"

// system include files
#include <string>
#include <typeinfo>

namespace edm {
Expand Down Expand Up @@ -67,7 +66,7 @@ namespace edm {
virtual edm::EventAuxiliary const& eventAuxiliary() const = 0;

virtual TriggerNames const& triggerNames(edm::TriggerResults const& triggerResults) const = 0;
virtual TriggerResultsByName triggerResultsByName(std::string const& process) const = 0;
virtual TriggerResultsByName triggerResultsByName(edm::TriggerResults const& triggerResults) const = 0;
virtual ProcessHistory const& processHistory() const = 0;

protected:
Expand Down
2 changes: 1 addition & 1 deletion FWCore/Framework/interface/Event.h
Expand Up @@ -227,7 +227,7 @@ namespace edm {
size_t size() const;

virtual edm::TriggerNames const& triggerNames(edm::TriggerResults const& triggerResults) const;
virtual TriggerResultsByName triggerResultsByName(std::string const& process) const;
virtual TriggerResultsByName triggerResultsByName(edm::TriggerResults const& triggerResults) const;

ModuleCallingContext const* moduleCallingContext() const { return moduleCallingContext_; }

Expand Down
15 changes: 3 additions & 12 deletions FWCore/Framework/src/Event.cc
Expand Up @@ -228,18 +228,9 @@ namespace edm {
}

TriggerResultsByName
Event::triggerResultsByName(std::string const& process) const {
Event::triggerResultsByName(edm::TriggerResults const& triggerResults) const {

Handle<TriggerResults> hTriggerResults;
InputTag tag(std::string("TriggerResults"),
std::string(""),
process);

getByLabel(tag, hTriggerResults);
if(!hTriggerResults.isValid()) {
return TriggerResultsByName(0, 0);
}
edm::TriggerNames const* names = triggerNames_(*hTriggerResults);
return TriggerResultsByName(hTriggerResults.product(), names);
edm::TriggerNames const* names = triggerNames_(triggerResults);
return TriggerResultsByName(&triggerResults, names);
}
}
41 changes: 27 additions & 14 deletions FWCore/Framework/test/stubs/TestTriggerNames.cc
Expand Up @@ -224,12 +224,13 @@ namespace edmtest {
}
}

edm::TriggerResultsByName resultsByNameHLT = e.triggerResultsByName("HLT");
if(resultsByNameHLT.isValid() && expectedTriggerResultsHLT_.size() > 0) {
edm::InputTag tag("TriggerResults", "", "HLT");
edm::Handle<edm::TriggerResults> hTriggerResults;
e.getByLabel(tag, hTriggerResults);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is Core code, how about changing to getByToken?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This a module used only for tests. It has both a call to getManyByType and also getByLabel, both getting the TriggerResults type. There is a consumesMany call that allows both of those to work. I am not sure what happens if you call both consumes to get a token and also consumesMany for the same type.


edm::InputTag tag("TriggerResults", "", "HLT");
edm::Handle<edm::TriggerResults> hTriggerResults;
e.getByLabel(tag, hTriggerResults);
if(hTriggerResults.isValid() && expectedTriggerResultsHLT_.size() > 0) {

edm::TriggerResultsByName resultsByNameHLT = e.triggerResultsByName(*hTriggerResults);

if(hTriggerResults->parameterSetID() != resultsByNameHLT.parameterSetID() ||
hTriggerResults->wasrun() != resultsByNameHLT.wasrun() ||
Expand Down Expand Up @@ -269,7 +270,15 @@ namespace edmtest {
}

if(expectedTriggerResultsHLT_.size() > iEvent_) {
edm::TriggerResultsByName resultsByNameHLT = e.triggerResultsByName("HLT");

if(!hTriggerResults.isValid()) {
std::cerr << "TestTriggerNames: While testing TriggerResultsByName class\n"
<< "Invalid TriggerResults Handle for HLT" << std::endl;
abort();
}

edm::TriggerResultsByName resultsByNameHLT = e.triggerResultsByName(*hTriggerResults);

if(!resultsByNameHLT.isValid()) {
std::cerr << "TestTriggerNames: While testing TriggerResultsByName class\n"
<< "Invalid object for HLT" << std::endl;
Expand All @@ -284,8 +293,19 @@ namespace edmtest {
<< std::endl;
}

edm::InputTag tagPROD("TriggerResults", "", "PROD");
edm::Handle<edm::TriggerResults> hTriggerResultsPROD;
e.getByLabel(tagPROD, hTriggerResultsPROD);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also getByToken here.


if(expectedTriggerResultsPROD_.size() > iEvent_) {
edm::TriggerResultsByName resultsByNamePROD = e.triggerResultsByName("PROD");

if(!hTriggerResultsPROD.isValid()) {
std::cerr << "TestTriggerNames: While testing TriggerResultsByName class\n"
<< "Invalid TriggerResults Handle for PROD" << std::endl;
abort();
}

edm::TriggerResultsByName resultsByNamePROD = e.triggerResultsByName(*hTriggerResultsPROD);
if(!resultsByNamePROD.isValid()) {
std::cerr << "TestTriggerNames: While testing TriggerResultsByName class\n"
<< "Invalid object for PROD" << std::endl;
Expand All @@ -298,13 +318,6 @@ namespace edmtest {
}
std::cout << "Event " << iEvent_ << " " << resultsByNamePROD.accept("p1") << std::endl;
}

edm::TriggerResultsByName resultsByNameNONE = e.triggerResultsByName("NONE");
if(resultsByNameNONE.isValid()) {
std::cerr << "TestTriggerNames: While testing TriggerResultsByName class\n"
<< "Object is valid with nonexistent process name" << std::endl;
abort();
}
++iEvent_;
}

Expand Down
4 changes: 2 additions & 2 deletions PhysicsTools/FWLite/interface/EventContainer.h
Expand Up @@ -100,8 +100,8 @@ namespace fwlite
edm::TriggerNames const& triggerNames(edm::TriggerResults const& triggerResults) const
{ return m_eventBasePtr->triggerNames(triggerResults); }

edm::TriggerResultsByName triggerResultsByName(std::string const& process) const
{ return m_eventBasePtr->triggerResultsByName(process); }
edm::TriggerResultsByName triggerResultsByName(edm::TriggerResults const& triggerResults) const
{ return m_eventBasePtr->triggerResultsByName(triggerResults); }

Long64_t fileIndex() const
{ return m_eventBasePtr->fileIndex(); }
Expand Down
11 changes: 10 additions & 1 deletion SUSYBSMAnalysis/HSCP/plugins/HSCPHLTFilter.cc
Expand Up @@ -35,6 +35,7 @@ class HSCPHLTFilter : public edm::EDFilter {
bool IncreasedTreshold(const trigger::TriggerEvent& trEv, const edm::InputTag& InputPath, double NewThreshold, double etaCut, int NObjectAboveThreshold, bool averageThreshold);

std::string TriggerProcess;
edm::EDGetTokenT<edm::TriggerResults> triggerResultsToken_;
edm::EDGetTokenT< trigger::TriggerEvent > trEvToken;
std::map<std::string, bool > DuplicateMap;

Expand All @@ -55,6 +56,8 @@ HSCPHLTFilter::HSCPHLTFilter(const edm::ParameterSet& iConfig)
RemoveDuplicates = iConfig.getParameter<bool> ("RemoveDuplicates");

TriggerProcess = iConfig.getParameter<std::string> ("TriggerProcess");
triggerResultsToken_ = consumes<edm::TriggerResults>(edm::InputTag("TriggerResults", "", TriggerProcess));

trEvToken = consumes< trigger::TriggerEvent >( edm::InputTag( "hltTriggerSummaryAOD" ) );
MuonTrigger1Mask = iConfig.getParameter<int> ("MuonTrigger1Mask");
PFMetTriggerMask = iConfig.getParameter<int> ("PFMetTriggerMask");
Expand Down Expand Up @@ -91,7 +94,13 @@ bool HSCPHLTFilter::isDuplicate(unsigned int Run, unsigned int Event){
/////////////////////////////////////////////////////////////////////////////////////
bool HSCPHLTFilter::filter(edm::Event& iEvent, const edm::EventSetup& iSetup)
{
edm::TriggerResultsByName tr = iEvent.triggerResultsByName(TriggerProcess);
edm::Handle<edm::TriggerResults> triggerResults;
iEvent.getByToken(triggerResultsToken_, triggerResults);

edm::TriggerResultsByName tr(nullptr, nullptr);
if (triggerResults.isValid()) {
tr = iEvent.triggerResultsByName(*triggerResults);
}
if(!tr.isValid()){ printf("NoValidTrigger\n"); }


Expand Down