Skip to content

Commit

Permalink
Merge pull request #1806 from thspeer/consumesSubCollectionProducers
Browse files Browse the repository at this point in the history
Consumes migration -- RecoLocalTracker/SubCollectionProducer
  • Loading branch information
ktf committed Dec 16, 2013
2 parents 9cf05cd + 0646117 commit be66581
Show file tree
Hide file tree
Showing 8 changed files with 157 additions and 99 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,10 @@ class ClusterSummaryProducer : public edm::EDProducer {

// ----------member data ---------------------------

edm::InputTag stripClustersLabel;
edm::InputTag pixelClustersLabel;
edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > pixelClusters_;
edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > stripClusters_;
std::string stripModules;

std::vector<std::string> v_stripModuleTypes;
std::string pixelModules;
std::vector<std::string> v_pixelModuleTypes;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class ClusterAnalyzer : public edm::EDAnalyzer {

// ----------member data ---------------------------

edm::InputTag _class;
edm::EDGetTokenT<ClusterSummary> token;

std::map<int, std::string> enumModules_;
std::map< std::string, TH1D* > histos1D_;
Expand Down Expand Up @@ -94,7 +94,7 @@ class ClusterAnalyzer : public edm::EDAnalyzer {
ClusterAnalyzer::ClusterAnalyzer(const edm::ParameterSet& iConfig)
{

_class = iConfig.getParameter<edm::InputTag>("clusterSum");
token = consumes<ClusterSummary>(iConfig.getParameter<edm::InputTag>("clusterSum"));

_firstPass = true;
_verbose = true; //set to true to see the event by event summary info
Expand All @@ -111,7 +111,7 @@ ClusterAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup


Handle< ClusterSummary > class_;
iEvent.getByLabel( _class, class_);
iEvent.getByToken( token, class_);

if (_firstPass){

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
#include "RecoLocalTracker/SubCollectionProducers/interface/ClusterSummaryProducer.h"

ClusterSummaryProducer::ClusterSummaryProducer(const edm::ParameterSet& iConfig)
: stripClustersLabel(iConfig.getParameter<edm::InputTag>("stripClusters")),
pixelClustersLabel(iConfig.getParameter<edm::InputTag>("pixelClusters")),
stripModules(iConfig.getParameter<std::string>("stripModule")),
: stripModules(iConfig.getParameter<std::string>("stripModule")),
pixelModules(iConfig.getParameter<std::string>("pixelModule")),
stripVariables(iConfig.getParameter<std::string>("stripVariables")),
pixelVariables(iConfig.getParameter<std::string>("pixelVariables")),
Expand All @@ -12,6 +10,9 @@ ClusterSummaryProducer::ClusterSummaryProducer(const edm::ParameterSet& iConfig)
verbose(iConfig.getParameter<bool>("verbose"))
{

pixelClusters_ = consumes<edmNew::DetSetVector<SiPixelCluster> >(iConfig.getParameter<edm::InputTag>("pixelClusters"));
stripClusters_ = consumes<edmNew::DetSetVector<SiStripCluster> >(iConfig.getParameter<edm::InputTag>("stripClusters"));

//register your products
produces<ClusterSummary>().setBranchAlias("SummaryCollection");

Expand All @@ -37,7 +38,7 @@ ClusterSummaryProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetu
//===================++++++++++++========================
if (doStrips){
edm::Handle<edmNew::DetSetVector<SiStripCluster> > stripClusters;
iEvent.getByLabel(stripClustersLabel, stripClusters);
iEvent.getByToken(stripClusters_, stripClusters);

ModuleSelectionVect.clear();
for ( std::vector<std::string>::iterator it=v_stripModuleTypes.begin() ; it < v_stripModuleTypes.end(); it++ ){
Expand Down Expand Up @@ -96,7 +97,7 @@ ClusterSummaryProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetu
//===================++++++++++++========================
if (doPixels){
edm::Handle<edmNew::DetSetVector<SiPixelCluster> > pixelClusters;
iEvent.getByLabel(pixelClustersLabel, pixelClusters);
iEvent.getByToken(pixelClusters_, pixelClusters);

ModuleSelectionVectPixels.clear();
for ( std::vector<std::string>::iterator it=v_pixelModuleTypes.begin() ; it < v_pixelModuleTypes.end(); it++ ){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,17 @@ class HLTTrackClusterRemover : public edm::EDProducer {
};
static const unsigned int NumberOfParamBlocks = 6;

edm::InputTag trajectories_;
bool doStrip_, doPixel_;
edm::InputTag stripClusters_, pixelClusters_;
bool mergeOld_;
edm::InputTag oldRemovalInfo_;

typedef edm::ContainerMask<edmNew::DetSetVector<SiPixelCluster> > PixelMaskContainer;
typedef edm::ContainerMask<edm::LazyGetter<SiStripCluster> > StripMaskContainer;
edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > pixelClusters_;
edm::EDGetTokenT<edm::LazyGetter<SiStripCluster> > stripClusters_;
edm::EDGetTokenT<PixelMaskContainer> oldPxlMaskToken_;
edm::EDGetTokenT<StripMaskContainer> oldStrMaskToken_;
edm::EDGetTokenT<std::vector<Trajectory> > trajectories_;


ParamBlock pblocks_[NumberOfParamBlocks];
void readPSet(const edm::ParameterSet& iConfig, const std::string &name,
Expand Down Expand Up @@ -106,20 +112,17 @@ HLTTrackClusterRemover::readPSet(const edm::ParameterSet& iConfig, const std::st
}

HLTTrackClusterRemover::HLTTrackClusterRemover(const ParameterSet& iConfig):
trajectories_(iConfig.getParameter<InputTag>("trajectories")),
doStrip_(iConfig.existsAs<bool>("doStrip") ? iConfig.getParameter<bool>("doStrip") : true),
doPixel_(iConfig.existsAs<bool>("doPixel") ? iConfig.getParameter<bool>("doPixel") : true),
stripClusters_(doStrip_ ? iConfig.getParameter<InputTag>("stripClusters") : InputTag("NONE")),
pixelClusters_(doPixel_ ? iConfig.getParameter<InputTag>("pixelClusters") : InputTag("NONE")),
mergeOld_(false),
oldRemovalInfo_(edm::InputTag()),
makeProducts_(true)
{

if (iConfig.exists("oldClusterRemovalInfo"))
{
oldRemovalInfo_=iConfig.getParameter<InputTag>("oldClusterRemovalInfo");
if (not (oldRemovalInfo_== edm::InputTag())) mergeOld_=true;
oldPxlMaskToken_ = consumes<PixelMaskContainer>(iConfig.getParameter<InputTag>("oldClusterRemovalInfo"));
oldStrMaskToken_ = consumes<StripMaskContainer>(iConfig.getParameter<InputTag>("oldClusterRemovalInfo"));
if (not (iConfig.getParameter<InputTag>("oldClusterRemovalInfo")== edm::InputTag())) mergeOld_=true;
}

fill(pblocks_, pblocks_+NumberOfParamBlocks, ParamBlock());
Expand All @@ -146,6 +149,13 @@ HLTTrackClusterRemover::HLTTrackClusterRemover(const ParameterSet& iConfig):
throw cms::Exception("Configuration Error") << "HLTTrackClusterRemover: Configuration for subDetID = " << (i+1) << " uses cluster charge, which is not enabled.";
}
}
trajectories_ = consumes<vector<Trajectory> >(iConfig.getParameter<InputTag>("trajectories"));
if (doPixel_) pixelClusters_ = consumes<edmNew::DetSetVector<SiPixelCluster> >(iConfig.getParameter<InputTag>("pixelClusters"));
if (doStrip_) stripClusters_ = consumes<edm::LazyGetter<SiStripCluster> >(iConfig.getParameter<InputTag>("stripClusters"));
if (mergeOld_) {
oldPxlMaskToken_ = consumes<PixelMaskContainer>(iConfig.getParameter<InputTag>("oldClusterRemovalInfo"));
oldStrMaskToken_ = consumes<StripMaskContainer>(iConfig.getParameter<InputTag>("oldClusterRemovalInfo"));
}

//produces<edmNew::DetSetVector<SiPixelClusterRefNew> >();
//produces<edmNew::DetSetVector<SiStripRecHit1D::ClusterRegionalRef> >();
Expand Down Expand Up @@ -296,27 +306,25 @@ HLTTrackClusterRemover::produce(Event& iEvent, const EventSetup& iSetup)

Handle<edmNew::DetSetVector<SiPixelCluster> > pixelClusters;
if (doPixel_) {
iEvent.getByLabel(pixelClusters_, pixelClusters);
iEvent.getByToken(pixelClusters_, pixelClusters);
pixelSourceProdID = pixelClusters.id();
}

Handle<edm::LazyGetter<SiStripCluster> > stripClusters;
if (doStrip_) {
iEvent.getByLabel(stripClusters_, stripClusters);
iEvent.getByToken(stripClusters_, stripClusters);
stripSourceProdID = stripClusters.id();
}

//Handle<TrajTrackAssociationCollection> trajectories;
Handle<vector<Trajectory> > trajectories;
iEvent.getByLabel(trajectories_, trajectories);
iEvent.getByToken(trajectories_, trajectories);

typedef edm::ContainerMask<edmNew::DetSetVector<SiPixelCluster> > PixelMaskContainer;
typedef edm::ContainerMask<edm::LazyGetter<SiStripCluster> > StripMaskContainer;
if(mergeOld_) {
edm::Handle<PixelMaskContainer> oldPxlMask;
edm::Handle<StripMaskContainer> oldStrMask;
iEvent.getByLabel(oldRemovalInfo_,oldPxlMask);
iEvent.getByLabel(oldRemovalInfo_,oldStrMask);
iEvent.getByToken(oldPxlMaskToken_ ,oldPxlMask);
iEvent.getByToken(oldStrMaskToken_ ,oldStrMask);
LogDebug("TrackClusterRemover")<<"to merge in, "<<oldStrMask->size()<<" strp and "<<oldPxlMask->size()<<" pxl";
oldStrMask->copyMaskTo(collectedRegStrips_);
oldPxlMask->copyMaskTo(collectedPixels_);
Expand Down
50 changes: 30 additions & 20 deletions RecoLocalTracker/SubCollectionProducers/src/SeedClusterRemover.cc
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,18 @@ class SeedClusterRemover : public edm::EDProducer {
};
static const unsigned int NumberOfParamBlocks = 6;

edm::InputTag trajectories_;
std::vector<edm::InputTag> overrideTrkQuals_;
bool doStrip_, doPixel_;
edm::InputTag stripClusters_, pixelClusters_;
bool mergeOld_;
edm::InputTag oldRemovalInfo_;
typedef edm::ContainerMask<edmNew::DetSetVector<SiPixelCluster> > PixelMaskContainer;
typedef edm::ContainerMask<edmNew::DetSetVector<SiStripCluster> > StripMaskContainer;
edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > pixelClusters_;
edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > stripClusters_;
edm::EDGetTokenT<reco::ClusterRemovalInfo> oldRemovalInfo_;
edm::EDGetTokenT<PixelMaskContainer> oldPxlMaskToken_;
edm::EDGetTokenT<StripMaskContainer> oldStrMaskToken_;
edm::EDGetTokenT<TrajectorySeedCollection> trajectories_;

// std::vector< edm::EDGetTokenT<edm::ValueMap<int> > > overrideTrkQuals_;

ParamBlock pblocks_[NumberOfParamBlocks];
void readPSet(const edm::ParameterSet& iConfig, const std::string &name,
Expand Down Expand Up @@ -114,17 +120,13 @@ SeedClusterRemover::readPSet(const edm::ParameterSet& iConfig, const std::string
}

SeedClusterRemover::SeedClusterRemover(const ParameterSet& iConfig):
trajectories_(iConfig.getParameter<InputTag>("trajectories")),
doStrip_(iConfig.existsAs<bool>("doStrip") ? iConfig.getParameter<bool>("doStrip") : true),
doPixel_(iConfig.existsAs<bool>("doPixel") ? iConfig.getParameter<bool>("doPixel") : true),
stripClusters_(doStrip_ ? iConfig.getParameter<InputTag>("stripClusters") : InputTag("NONE")),
pixelClusters_(doPixel_ ? iConfig.getParameter<InputTag>("pixelClusters") : InputTag("NONE")),
mergeOld_(iConfig.exists("oldClusterRemovalInfo")),
oldRemovalInfo_(mergeOld_ ? iConfig.getParameter<InputTag>("oldClusterRemovalInfo") : InputTag("NONE")),
clusterWasteSolution_(true)
{
if (iConfig.exists("overrideTrkQuals"))
overrideTrkQuals_.push_back(iConfig.getParameter<edm::InputTag>("overrideTrkQuals"));
// if (iConfig.exists("overrideTrkQuals"))
// overrideTrkQuals_.push_back(iConfig.getParameter<edm::InputTag>("overrideTrkQuals"));
if (iConfig.exists("clusterLessSolution"))
clusterWasteSolution_=!iConfig.getParameter<bool>("clusterLessSolution");
if (doPixel_ && clusterWasteSolution_) produces< edmNew::DetSetVector<SiPixelCluster> >();
Expand Down Expand Up @@ -167,6 +169,14 @@ SeedClusterRemover::SeedClusterRemover(const ParameterSet& iConfig):
trackQuality_=reco::TrackBase::qualityByName(iConfig.getParameter<std::string>("TrackQuality"));
}

trajectories_ = consumes<TrajectorySeedCollection>(iConfig.getParameter<InputTag>("trajectories"));
if (doPixel_) pixelClusters_ = consumes<edmNew::DetSetVector<SiPixelCluster> >(iConfig.getParameter<InputTag>("pixelClusters"));
if (doStrip_) stripClusters_ = consumes<edmNew::DetSetVector<SiStripCluster> >(iConfig.getParameter<InputTag>("stripClusters"));
if (mergeOld_) {
oldRemovalInfo_ = consumes<ClusterRemovalInfo>(iConfig.getParameter<InputTag>("oldClusterRemovalInfo"));
oldPxlMaskToken_ = consumes<PixelMaskContainer>(iConfig.getParameter<InputTag>("oldClusterRemovalInfo"));
oldStrMaskToken_ = consumes<StripMaskContainer>(iConfig.getParameter<InputTag>("oldClusterRemovalInfo"));
}
}


Expand Down Expand Up @@ -317,14 +327,14 @@ SeedClusterRemover::produce(Event& iEvent, const EventSetup& iSetup)

Handle<edmNew::DetSetVector<SiPixelCluster> > pixelClusters;
if (doPixel_) {
iEvent.getByLabel(pixelClusters_, pixelClusters);
iEvent.getByToken(pixelClusters_, pixelClusters);
pixelSourceProdID = pixelClusters.id();
}
//DBG// std::cout << "SeedClusterRemover: Read pixel " << pixelClusters_.encode() << " = ID " << pixelSourceProdID << std::endl;

Handle<edmNew::DetSetVector<SiStripCluster> > stripClusters;
if (doStrip_) {
iEvent.getByLabel(stripClusters_, stripClusters);
iEvent.getByToken(stripClusters_, stripClusters);
stripSourceProdID = stripClusters.id();
}
//DBG// std::cout << "SeedClusterRemover: Read strip " << stripClusters_.encode() << " = ID " << stripSourceProdID << std::endl;
Expand All @@ -337,8 +347,8 @@ SeedClusterRemover::produce(Event& iEvent, const EventSetup& iSetup)
}

Handle<ClusterRemovalInfo> oldRemovalInfo;
if (mergeOld_ && clusterWasteSolution_) {
iEvent.getByLabel(oldRemovalInfo_, oldRemovalInfo);
if (mergeOld_ && clusterWasteSolution_) {
iEvent.getByToken(oldRemovalInfo_, oldRemovalInfo);
// Check ProductIDs
if ( (oldRemovalInfo->stripNewRefProd().id() == stripClusters.id()) &&
(oldRemovalInfo->pixelNewRefProd().id() == pixelClusters.id()) ) {
Expand All @@ -349,9 +359,11 @@ SeedClusterRemover::produce(Event& iEvent, const EventSetup& iSetup)
stripOldProdID = oldRemovalInfo->stripRefProd().id();

} else {
edm::EDConsumerBase::Labels labels;
labelsForToken(oldRemovalInfo_,labels);
throw cms::Exception("Inconsistent Data") << "SeedClusterRemover: " <<
"Input collection product IDs are [pixel: " << pixelClusters.id() << ", strip: " << stripClusters.id() << "] \n" <<
"\t but the *old* ClusterRemovalInfo " << oldRemovalInfo_.encode() << " refers as 'new product ids' to " <<
"\t but the *old* ClusterRemovalInfo " << labels.productInstance << " refers as 'new product ids' to " <<
"[pixel: " << oldRemovalInfo->pixelNewRefProd().id() << ", strip: " << oldRemovalInfo->stripNewRefProd().id() << "]\n" <<
"NOTA BENE: when running SeedClusterRemover with an old ClusterRemovalInfo the hits in the trajectory MUST be already re-keyed.\n";
}
Expand All @@ -366,13 +378,11 @@ SeedClusterRemover::produce(Event& iEvent, const EventSetup& iSetup)
if (doPixel_) {
pixels.resize(pixelClusters->dataSize()); fill(pixels.begin(), pixels.end(), true);
}
typedef edm::ContainerMask<edmNew::DetSetVector<SiPixelCluster> > PixelMaskContainer;
typedef edm::ContainerMask<edmNew::DetSetVector<SiStripCluster> > StripMaskContainer;
if(mergeOld_) {
edm::Handle<PixelMaskContainer> oldPxlMask;
edm::Handle<StripMaskContainer> oldStrMask;
iEvent.getByLabel(oldRemovalInfo_,oldPxlMask);
iEvent.getByLabel(oldRemovalInfo_,oldStrMask);
iEvent.getByToken(oldPxlMaskToken_ ,oldPxlMask);
iEvent.getByToken(oldStrMaskToken_ ,oldStrMask);
LogDebug("SeedClusterRemover")<<"to merge in, "<<oldStrMask->size()<<" strp and "<<oldPxlMask->size()<<" pxl";
oldStrMask->copyMaskTo(collectedStrips_);
oldPxlMask->copyMaskTo(collectedPixels_);
Expand All @@ -383,7 +393,7 @@ SeedClusterRemover::produce(Event& iEvent, const EventSetup& iSetup)


edm::Handle<TrajectorySeedCollection> seeds;
iEvent.getByLabel(trajectories_,seeds);
iEvent.getByToken(trajectories_,seeds);

TrajectorySeedCollection::const_iterator seed=seeds->begin();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,22 +36,24 @@ class TopBottomClusterInfoProducer : public edm::EDProducer {
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override ;

private:
edm::InputTag stripClustersOld_, pixelClustersOld_;
edm::InputTag stripClustersNew_, pixelClustersNew_;
edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > pixelClustersOld_;
edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > pixelClustersNew_;
edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > stripClustersOld_;
edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > stripClustersNew_;
};


using namespace std;
using namespace edm;
using namespace reco;

TopBottomClusterInfoProducer::TopBottomClusterInfoProducer(const ParameterSet& iConfig):
stripClustersOld_(iConfig.getParameter<InputTag>("stripClustersOld")),
pixelClustersOld_(iConfig.getParameter<InputTag>("pixelClustersOld")),
stripClustersNew_(iConfig.getParameter<InputTag>("stripClustersNew")),
pixelClustersNew_(iConfig.getParameter<InputTag>("pixelClustersNew"))
TopBottomClusterInfoProducer::TopBottomClusterInfoProducer(const ParameterSet& iConfig)
{
produces< ClusterRemovalInfo >();
pixelClustersOld_ = consumes<edmNew::DetSetVector<SiPixelCluster> >(iConfig.getParameter<edm::InputTag>("stripClustersOld"));
stripClustersOld_ = consumes<edmNew::DetSetVector<SiStripCluster> >(iConfig.getParameter<edm::InputTag>("pixelClustersOld"));
pixelClustersNew_ = consumes<edmNew::DetSetVector<SiPixelCluster> >(iConfig.getParameter<edm::InputTag>("stripClustersNew"));
stripClustersNew_ = consumes<edmNew::DetSetVector<SiStripCluster> >(iConfig.getParameter<edm::InputTag>("pixelClustersNew"));
produces< ClusterRemovalInfo >();
}


Expand All @@ -64,14 +66,14 @@ TopBottomClusterInfoProducer::produce(Event& iEvent, const EventSetup& iSetup)
{

Handle<edmNew::DetSetVector<SiPixelCluster> > pixelClustersOld;
iEvent.getByLabel(pixelClustersOld_, pixelClustersOld);
iEvent.getByToken(pixelClustersOld_, pixelClustersOld);
Handle<edmNew::DetSetVector<SiStripCluster> > stripClustersOld;
iEvent.getByLabel(stripClustersOld_, stripClustersOld);
iEvent.getByToken(stripClustersOld_, stripClustersOld);

Handle<edmNew::DetSetVector<SiPixelCluster> > pixelClustersNew;
iEvent.getByLabel(pixelClustersNew_, pixelClustersNew);
iEvent.getByToken(pixelClustersNew_, pixelClustersNew);
Handle<edmNew::DetSetVector<SiStripCluster> > stripClustersNew;
iEvent.getByLabel(stripClustersNew_, stripClustersNew);
iEvent.getByToken(stripClustersNew_, stripClustersNew);

auto_ptr<ClusterRemovalInfo> cri(new ClusterRemovalInfo(pixelClustersOld, stripClustersOld));
ClusterRemovalInfo::Indices& pixelInd = cri->pixelIndices();
Expand Down

0 comments on commit be66581

Please sign in to comment.