Skip to content

Commit

Permalink
Merge pull request #1106 from vadler/70X-consumesMigration-I
Browse files Browse the repository at this point in the history
Consumes migration --  CommonTools/TriggerUtils
  • Loading branch information
ktf committed Oct 27, 2013
2 parents 7059703 + b3fc2a2 commit 238a975
Show file tree
Hide file tree
Showing 26 changed files with 1,147 additions and 1,123 deletions.
Expand Up @@ -3,11 +3,8 @@

/** \class CandidateTriggerObjectProducer
*
*
* This class creates a list of candidates based on the last accepted filter
*
* $Date: 2011/04/30 16:04:26 $
* $Revision: 1.1 $
* This class creates a list of candidates based on the last accepted filter
*
* \author Paolo Meridiani
*
Expand All @@ -24,7 +21,7 @@
// class declaration
//
class CandidateTriggerObjectProducer : public edm::EDProducer {

public:
explicit CandidateTriggerObjectProducer(const edm::ParameterSet&);
~CandidateTriggerObjectProducer();
Expand All @@ -37,7 +34,9 @@ class CandidateTriggerObjectProducer : public edm::EDProducer {

/// module config parameters
edm::InputTag triggerResultsTag_;
edm::EDGetTokenT<edm::TriggerResults> triggerResultsToken_;
edm::InputTag triggerEventTag_;
edm::EDGetTokenT<trigger::TriggerEvent> triggerEventToken_;
std::string triggerName_;

/// additional class data memebers
Expand Down
10 changes: 9 additions & 1 deletion CommonTools/TriggerUtils/interface/GenericTriggerEventFlag.h
Expand Up @@ -24,8 +24,11 @@
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESWatcher.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "CondFormats/DataRecord/interface/AlCaRecoTriggerBitsRcd.h"
#include "DataFormats/Common/interface/TriggerResults.h"
#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h"
#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerEvmReadoutRecord.h"
#include "DataFormats/Scalers/interface/DcsStatus.h"
#include "L1Trigger/GlobalTriggerAnalyzer/interface/L1GtUtils.h"
#include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
Expand All @@ -46,11 +49,14 @@ class GenericTriggerEventFlag {
unsigned verbose_;
bool andOrDcs_;
edm::InputTag dcsInputTag_;
edm::EDGetTokenT< DcsStatusCollection > dcsInputToken_;
std::vector< int > dcsPartitions_;
bool errorReplyDcs_;
bool andOrGt_;
edm::InputTag gtInputTag_;
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > gtInputToken_;
edm::InputTag gtEvmInputTag_;
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > gtEvmInputToken_;
std::string gtDBKey_;
std::vector< std::string > gtLogicalExpressions_;
bool errorReplyGt_;
Expand All @@ -62,6 +68,7 @@ class GenericTriggerEventFlag {
bool errorReplyL1_;
bool andOrHlt_;
edm::InputTag hltInputTag_;
edm::EDGetTokenT< edm::TriggerResults > hltInputToken_;
std::string hltDBKey_;
std::vector< std::string > hltLogicalExpressionsCache_;
std::vector< std::string > hltLogicalExpressions_;
Expand All @@ -79,7 +86,8 @@ class GenericTriggerEventFlag {
public:

// Constructors and destructor
GenericTriggerEventFlag( const edm::ParameterSet & config ); // To be called from the ED module's c'tor
GenericTriggerEventFlag( const edm::ParameterSet & config, edm::ConsumesCollector && iC ) : GenericTriggerEventFlag( config, iC ) {}; // To be called from the ED module's c'tor
GenericTriggerEventFlag( const edm::ParameterSet & config, edm::ConsumesCollector & iC ); // To be called from the ED module's c'tor
~GenericTriggerEventFlag();

// Public methods
Expand Down
17 changes: 9 additions & 8 deletions CommonTools/TriggerUtils/interface/PrescaleWeightProvider.h
Expand Up @@ -7,8 +7,6 @@
// Package: CommonTools/TriggerUtils
// Class: PrescaleWeightProvider
//
// $Id: PrescaleWeightProvider.h,v 1.1 2010/08/17 17:15:26 vadler Exp $
//
/**
\class PrescaleWeightProvider PrescaleWeightProvider.h "CommonTools/TriggerUtils/interface/PrescaleWeightProvider.h"
\brief
Expand All @@ -19,7 +17,6 @@
\author Aram Avetisyan
\version $Id: PrescaleWeightProvider.h,v 1.1 2010/08/17 17:15:26 vadler Exp $
*/


Expand All @@ -29,6 +26,7 @@
#include "FWCore/Framework/interface/Run.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"

#include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
#include "DataFormats/L1GlobalTrigger/interface/L1GtTriggerMenuLite.h"
Expand All @@ -44,14 +42,17 @@ class PrescaleWeightProvider {
std::vector< std::string > l1SeedPaths_;

// configuration parameters
unsigned verbosity_; // optional (default: 0)
edm::InputTag triggerResults_; // optional (default: "TriggerResults::HLT")
edm::InputTag l1GtTriggerMenuLite_; // optional (default: "l1GtTriggerMenuLite")
std::vector< std::string > hltPaths_;
unsigned verbosity_; // optional (default: 0)
edm::InputTag triggerResultsTag_; // optional (default: "TriggerResults::HLT")
edm::EDGetTokenT< edm::TriggerResults > triggerResultsToken_;
edm::InputTag l1GtTriggerMenuLiteTag_; // optional (default: "l1GtTriggerMenuLite")
edm::EDGetTokenT< L1GtTriggerMenuLite > l1GtTriggerMenuLiteToken_; // optional (default: "l1GtTriggerMenuLite")
std::vector< std::string > hltPaths_;

public:

PrescaleWeightProvider( const edm::ParameterSet & config ); // to be called from the ED module's c'tor
PrescaleWeightProvider( const edm::ParameterSet & config, edm::ConsumesCollector && iC ) : PrescaleWeightProvider( config, iC ) {}; // to be called from the ED module's c'tor
PrescaleWeightProvider( const edm::ParameterSet & config, edm::ConsumesCollector & iC ); // to be called from the ED module's c'tor
~PrescaleWeightProvider() {}

void initRun( const edm::Run & run, const edm::EventSetup & setup ); // to be called from the ED module's beginRun() method
Expand Down
52 changes: 28 additions & 24 deletions CommonTools/TriggerUtils/plugins/CandidateTriggerObjectProducer.cc
@@ -1,30 +1,34 @@
#include "FWCore/Common/interface/TriggerNames.h"
#include "FWCore/Common/interface/TriggerResultsByName.h"
#include "CommonTools/TriggerUtils/interface/CandidateTriggerObjectProducer.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "DataFormats/Candidate/interface/CandidateFwd.h"
#include "DataFormats/Candidate/interface/Candidate.h"
#include "DataFormats/Candidate/interface/LeafCandidate.h"

#include "TString.h"
#include "TRegexp.h"

#include <cassert>

#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "CommonTools/TriggerUtils/interface/CandidateTriggerObjectProducer.h"


//
// constructors and destructor
//
CandidateTriggerObjectProducer::CandidateTriggerObjectProducer(const edm::ParameterSet& ps) :
triggerResultsTag_(ps.getParameter<edm::InputTag>("triggerResults")),
CandidateTriggerObjectProducer::CandidateTriggerObjectProducer(const edm::ParameterSet& ps) :
triggerResultsToken_(consumes<edm::TriggerResults>(ps.getParameter<edm::InputTag>("triggerResults"))),
triggerEventTag_(ps.getParameter<edm::InputTag>("triggerEvent")),
triggerEventToken_(consumes<trigger::TriggerEvent>(triggerEventTag_)),
triggerName_(ps.getParameter<std::string>("triggerName"))
{
using namespace edm;

// cout << "Trigger Object Producer:" << endl
// << " TriggerResultsTag = " << triggerResultsTag_.encode() << endl
// << " TriggerEventTag = " << triggerEventTag_.encode() << endl;

produces<reco::CandidateCollection>();

}

CandidateTriggerObjectProducer::~CandidateTriggerObjectProducer()
Expand All @@ -41,7 +45,7 @@ CandidateTriggerObjectProducer::beginRun(const edm::Run& iRun, edm::EventSetup c

bool changed(false);
if(!hltConfig_.init(iRun,iSetup,triggerEventTag_.process(),changed) ){
edm::LogError( "CandidateTriggerObjectProducer" ) <<
edm::LogError( "CandidateTriggerObjectProducer" ) <<
"Error! Can't initialize HLTConfigProvider";
throw cms::Exception("HLTConfigProvider::init() returned non 0");
}
Expand All @@ -61,12 +65,12 @@ CandidateTriggerObjectProducer::produce(edm::Event & iEvent, const edm::EventSet
std::auto_ptr<reco::CandidateCollection> coll( new reco::CandidateCollection );

// get event products
iEvent.getByLabel(triggerResultsTag_,triggerResultsHandle_);
iEvent.getByToken(triggerResultsToken_,triggerResultsHandle_);
if (!triggerResultsHandle_.isValid()) {
edm::LogError( "CandidateTriggerObjectProducer" ) << "CandidateTriggerObjectProducer::analyze: Error in getting TriggerResults product from Event!" ;
return;
}
iEvent.getByLabel(triggerEventTag_,triggerEventHandle_);
iEvent.getByToken(triggerEventToken_,triggerEventHandle_);
if (!triggerEventHandle_.isValid()) {
edm::LogError( "CandidateTriggerObjectProducer" ) << "CandidateTriggerObjectProducer::analyze: Error in getting TriggerEvent product from Event!" ;
return;
Expand All @@ -75,33 +79,33 @@ CandidateTriggerObjectProducer::produce(edm::Event & iEvent, const edm::EventSet
// std::cout << hltConfig_.size() << std::endl;
// std::cout << triggerResultsHandle_->size() << std::endl;
assert(triggerResultsHandle_->size()==hltConfig_.size());

const unsigned int n(hltConfig_.size());
std::vector<std::string> activeHLTPathsInThisEvent = hltConfig_.triggerNames();
std::map<std::string, bool> triggerInMenu;
std::map<std::string, bool> triggerUnprescaled;

for (std::vector<std::string>::const_iterator iHLT = activeHLTPathsInThisEvent.begin();
iHLT != activeHLTPathsInThisEvent.end(); ++iHLT)
for (std::vector<std::string>::const_iterator iHLT = activeHLTPathsInThisEvent.begin();
iHLT != activeHLTPathsInThisEvent.end(); ++iHLT)
{
//matching with regexp filter name. More than 1 matching filter is allowed
//matching with regexp filter name. More than 1 matching filter is allowed
if (TString(*iHLT).Contains(TRegexp(TString(triggerName_))))
{
triggerInMenu[*iHLT] = true;
const std::pair<int,int> prescales(hltConfig_.prescaleValues(iEvent,iSetup,*iHLT));
if (prescales.first * prescales.second == 1)
triggerUnprescaled[*iHLT] = true;
if (prescales.first * prescales.second == 1)
triggerUnprescaled[*iHLT] = true;
}
}

for (std::map<std::string, bool>::const_iterator iMyHLT = triggerInMenu.begin();
iMyHLT != triggerInMenu.end(); ++iMyHLT)
for (std::map<std::string, bool>::const_iterator iMyHLT = triggerInMenu.begin();
iMyHLT != triggerInMenu.end(); ++iMyHLT)
{
//using only unprescaled triggers
if (!(iMyHLT->second && triggerUnprescaled[iMyHLT->first]))
if (!(iMyHLT->second && triggerUnprescaled[iMyHLT->first]))
continue;
const unsigned int triggerIndex(hltConfig_.triggerIndex(iMyHLT->first));

assert(triggerIndex==iEvent.triggerNames(*triggerResultsHandle_).triggerIndex(iMyHLT->first));

// abort on invalid trigger name
Expand All @@ -110,7 +114,7 @@ CandidateTriggerObjectProducer::produce(edm::Event & iEvent, const edm::EventSet
<< triggerName_ << " - not found!" ;
return;
}

// modules on this trigger path
// const unsigned int m(hltConfig_.size(triggerIndex));
const std::vector<std::string>& moduleLabels(hltConfig_.saveTagsModules(triggerIndex));
Expand All @@ -124,9 +128,9 @@ CandidateTriggerObjectProducer::produce(edm::Event & iEvent, const edm::EventSet
}

// const unsigned int moduleIndex(triggerResultsHandle_->index(triggerIndex));

// assert (moduleIndex<m);

// Results from TriggerEvent product - Looking only on last filter since trigger is accepted
for (unsigned int imodule=0;imodule<moduleLabels.size();++imodule)
{
Expand Down Expand Up @@ -157,8 +161,8 @@ CandidateTriggerObjectProducer::produce(edm::Event & iEvent, const edm::EventSet
}
}
}


iEvent.put(coll);
return;
}
Expand Down
22 changes: 13 additions & 9 deletions CommonTools/TriggerUtils/src/GenericTriggerEventFlag.cc
Expand Up @@ -8,8 +8,6 @@
#include "FWCore/Framework/interface/ESHandle.h"
#include "CondFormats/L1TObjects/interface/L1GtTriggerMenu.h"
#include "CondFormats/DataRecord/interface/L1GtTriggerMenuRcd.h"
#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h"
#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerEvmReadoutRecord.h"
#include "CondFormats/HLTObjects/interface/AlCaRecoTriggerBits.h"
#include "DataFormats/L1GlobalTrigger/interface/L1GtLogicParser.h"

Expand All @@ -24,7 +22,7 @@ static const bool useL1GtTriggerMenuLite( false );


/// To be called from the ED module's c'tor
GenericTriggerEventFlag::GenericTriggerEventFlag( const edm::ParameterSet & config )
GenericTriggerEventFlag::GenericTriggerEventFlag( const edm::ParameterSet & config, edm::ConsumesCollector & iC )
: watchDB_( 0 )
, hltConfigInit_( false )
, andOr_( false )
Expand Down Expand Up @@ -69,6 +67,7 @@ GenericTriggerEventFlag::GenericTriggerEventFlag( const edm::ParameterSet & conf
if ( config.exists( "andOrDcs" ) ) {
andOrDcs_ = config.getParameter< bool >( "andOrDcs" );
dcsInputTag_ = config.getParameter< edm::InputTag >( "dcsInputTag" );
dcsInputToken_ = iC.mayConsume< DcsStatusCollection >( dcsInputTag_ );
dcsPartitions_ = config.getParameter< std::vector< int > >( "dcsPartitions" );
errorReplyDcs_ = config.getParameter< bool >( "errorReplyDcs" );
} else {
Expand All @@ -77,10 +76,14 @@ GenericTriggerEventFlag::GenericTriggerEventFlag( const edm::ParameterSet & conf
if ( config.exists( "andOrGt" ) ) {
andOrGt_ = config.getParameter< bool >( "andOrGt" );
gtInputTag_ = config.getParameter< edm::InputTag >( "gtInputTag" );
gtInputToken_ = iC.mayConsume< L1GlobalTriggerReadoutRecord >( gtInputTag_ );
gtLogicalExpressions_ = config.getParameter< std::vector< std::string > >( "gtStatusBits" );
errorReplyGt_ = config.getParameter< bool >( "errorReplyGt" );
if ( config.exists( "gtEvmInputTag" ) ) gtEvmInputTag_ = config.getParameter< edm::InputTag >( "gtEvmInputTag" );
if ( config.exists( "gtDBKey" ) ) gtDBKey_ = config.getParameter< std::string >( "gtDBKey" );
if ( config.exists( "gtEvmInputTag" ) ) {
gtEvmInputTag_ = config.getParameter< edm::InputTag >( "gtEvmInputTag" );
gtEvmInputToken_ = iC.mayConsume< L1GlobalTriggerEvmReadoutRecord >( gtEvmInputTag_ );
}
if ( config.exists( "gtDBKey" ) ) gtDBKey_ = config.getParameter< std::string >( "gtDBKey" );
} else {
onGt_ = false;
}
Expand All @@ -96,6 +99,7 @@ GenericTriggerEventFlag::GenericTriggerEventFlag( const edm::ParameterSet & conf
if ( config.exists( "andOrHlt" ) ) {
andOrHlt_ = config.getParameter< bool >( "andOrHlt" );
hltInputTag_ = config.getParameter< edm::InputTag >( "hltInputTag" );
hltInputToken_ = iC.mayConsume< edm::TriggerResults >( hltInputTag_ );
hltLogicalExpressionsCache_ = config.getParameter< std::vector< std::string > >( "hltPaths" );
errorReplyHlt_ = config.getParameter< bool >( "errorReplyHlt" );
if ( config.exists( "hltDBKey" ) ) hltDBKey_ = config.getParameter< std::string >( "hltDBKey" );
Expand Down Expand Up @@ -230,7 +234,7 @@ bool GenericTriggerEventFlag::acceptDcs( const edm::Event & event )

// Accessing the DcsStatusCollection
edm::Handle< DcsStatusCollection > dcsStatus;
event.getByLabel( dcsInputTag_, dcsStatus );
event.getByToken( dcsInputToken_, dcsStatus );
if ( ! dcsStatus.isValid() ) {
if ( verbose_ > 1 ) edm::LogWarning( "GenericTriggerEventFlag" ) << "DcsStatusCollection product with InputTag \"" << dcsInputTag_.encode() << "\" not in event ==> decision: " << errorReplyDcs_;
return errorReplyDcs_;
Expand Down Expand Up @@ -345,7 +349,7 @@ bool GenericTriggerEventFlag::acceptGtLogicalExpression( const edm::Event & even
// Hard-coded status bits!!!
if ( gtStatusBit == "PhysDecl" || gtStatusBit == "PhysicsDeclared" ) {
edm::Handle< L1GlobalTriggerReadoutRecord > gtReadoutRecord;
event.getByLabel( gtInputTag_, gtReadoutRecord );
event.getByToken( gtInputToken_, gtReadoutRecord );
if ( ! gtReadoutRecord.isValid() ) {
if ( verbose_ > 1 ) edm::LogWarning( "GenericTriggerEventFlag" ) << "L1GlobalTriggerReadoutRecord product with InputTag \"" << gtInputTag_.encode() << "\" not in event ==> decision: " << errorReplyGt_;
gtAlgoLogicParser.operandTokenVector().at( iStatusBit ).tokenResult = errorReplyDcs_;
Expand All @@ -355,7 +359,7 @@ bool GenericTriggerEventFlag::acceptGtLogicalExpression( const edm::Event & even
} else if ( gtStatusBit == "Stable" || gtStatusBit == "StableBeam" || gtStatusBit == "Adjust" || gtStatusBit == "Sqeeze" || gtStatusBit == "Flat" || gtStatusBit == "FlatTop" ||
gtStatusBit == "7TeV" || gtStatusBit == "8TeV" || gtStatusBit == "2360GeV" || gtStatusBit == "900GeV" ) {
edm::Handle< L1GlobalTriggerEvmReadoutRecord > gtEvmReadoutRecord;
event.getByLabel( gtEvmInputTag_, gtEvmReadoutRecord );
event.getByToken( gtEvmInputToken_, gtEvmReadoutRecord );
if ( ! gtEvmReadoutRecord.isValid() ) {
if ( verbose_ > 1 ) edm::LogWarning( "GenericTriggerEventFlag" ) << "L1GlobalTriggerEvmReadoutRecord product with InputTag \"" << gtEvmInputTag_.encode() << "\" not in event ==> decision: " << errorReplyGt_;
gtAlgoLogicParser.operandTokenVector().at( iStatusBit ).tokenResult = errorReplyDcs_;
Expand Down Expand Up @@ -475,7 +479,7 @@ bool GenericTriggerEventFlag::acceptHlt( const edm::Event & event )

// Accessing the TriggerResults
edm::Handle< edm::TriggerResults > hltTriggerResults;
event.getByLabel( hltInputTag_, hltTriggerResults );
event.getByToken( hltInputToken_, hltTriggerResults );
if ( ! hltTriggerResults.isValid() ) {
if ( verbose_ > 1 ) edm::LogWarning( "GenericTriggerEventFlag" ) << "TriggerResults product with InputTag \"" << hltInputTag_.encode() << "\" not in event ==> decision: " << errorReplyHlt_;
return errorReplyHlt_;
Expand Down

0 comments on commit 238a975

Please sign in to comment.