Skip to content

Commit

Permalink
Merge pull request #15885 from wmtan/UseUniquePtrInRecoParticleFlow
Browse files Browse the repository at this point in the history
Use unique_ptr, not auto_ptr in RecoParticleFLow
  • Loading branch information
cmsbuild authored Sep 17, 2016
2 parents 9989154 + eead168 commit 79418e6
Showing 56 changed files with 238 additions and 270 deletions.
8 changes: 4 additions & 4 deletions RecoParticleFlow/Configuration/plugins/HepMCCopy.cc
Original file line number Diff line number Diff line change
@@ -19,11 +19,11 @@ void HepMCCopy::produce(edm::Event & iEvent, const edm::EventSetup & es)
edm::Handle<edm::HepMCProduct> theHepMCProduct;
bool source = iEvent.getByLabel("generatorSmeared",theHepMCProduct);
if ( !source ) {
std::auto_ptr<edm::HepMCProduct> pu_product(new edm::HepMCProduct());
iEvent.put(pu_product);
auto pu_product = std::make_unique<edm::HepMCProduct>();
iEvent.put(std::move(pu_product));
} else {
std::auto_ptr<edm::HepMCProduct> pu_product(new edm::HepMCProduct(*theHepMCProduct));
iEvent.put(pu_product);
auto pu_product = std::make_unique<edm::HepMCProduct>(*theHepMCProduct);
iEvent.put(std::move(pu_product));
}

}
Original file line number Diff line number Diff line change
@@ -65,7 +65,7 @@ class HGCRecHitNavigator : public PFRecHitNavigatorBase {
if( nullptr != hebNav_ ) hebNav_->beginEvent(iSetup);
}

void associateNeighbours(reco::PFRecHit& hit,std::auto_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd) override {
void associateNeighbours(reco::PFRecHit& hit,std::unique_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd) override {
switch( DetId(hit.detId()).subdetId() ) {
case D1:
if( nullptr != eeNav_ ) eeNav_->associateNeighbours(hit,hits,refProd);
Original file line number Diff line number Diff line change
@@ -66,7 +66,7 @@ class PFECALHashNavigator : public PFRecHitNavigatorBase {

}

void associateNeighbours(reco::PFRecHit& rh,std::auto_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refprod) {
void associateNeighbours(reco::PFRecHit& rh,std::unique_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refprod) {



Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ template <typename Geometry,PFLayer::Layer Layer,int Detector>
recHitToken_ = iC.consumes<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>("src"));
}

void importRecHits(std::auto_ptr<reco::PFRecHitCollection>&out,std::auto_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {
void importRecHits(std::unique_ptr<reco::PFRecHitCollection>&out,std::unique_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {

beginEvent(iEvent,iSetup);

Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ template <typename Geometry,PFLayer::Layer Layer,int Detector>
recHitToken_ = iC.consumes<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>("src"));
}

void importRecHits(std::auto_ptr<reco::PFRecHitCollection>&out,std::auto_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {
void importRecHits(std::unique_ptr<reco::PFRecHitCollection>&out,std::unique_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {

beginEvent(iEvent,iSetup);

Original file line number Diff line number Diff line change
@@ -25,7 +25,7 @@ class PFHBHERecHitCreator : public PFRecHitCreatorBase {
recHitToken_ = iC.consumes<edm::SortedCollection<HBHERecHit> >(iConfig.getParameter<edm::InputTag>("src"));
}

void importRecHits(std::auto_ptr<reco::PFRecHitCollection>&out,std::auto_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {
void importRecHits(std::unique_ptr<reco::PFRecHitCollection>&out,std::unique_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {

beginEvent(iEvent,iSetup);

Original file line number Diff line number Diff line change
@@ -43,7 +43,7 @@ class PFHBHERecHitCreatorMaxSample : public PFRecHitCreatorBase {
}


void importRecHits(std::auto_ptr<reco::PFRecHitCollection>&out,std::auto_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {
void importRecHits(std::unique_ptr<reco::PFRecHitCollection>&out,std::unique_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {

beginEvent(iEvent,iSetup);

Original file line number Diff line number Diff line change
@@ -39,7 +39,7 @@ class PFHFRecHitCreator final : public PFRecHitCreatorBase {



void importRecHits(std::auto_ptr<reco::PFRecHitCollection>&out,std::auto_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {
void importRecHits(std::unique_ptr<reco::PFRecHitCollection>&out,std::unique_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {


reco::PFRecHitCollection tmpOut;
Original file line number Diff line number Diff line change
@@ -30,7 +30,7 @@ template <typename DET,PFLayer::Layer Layer,ForwardSubdetector subdet>
geometryInstance_ = iConfig.getParameter<std::string>("geometryInstance");
}

void importRecHits(std::auto_ptr<reco::PFRecHitCollection>&out,std::auto_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {
void importRecHits(std::unique_ptr<reco::PFRecHitCollection>&out,std::unique_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {

for (unsigned int i=0;i<qualityTests_.size();++i) {
qualityTests_.at(i)->beginEvent(iEvent,iSetup);
Original file line number Diff line number Diff line change
@@ -27,7 +27,7 @@ template <typename Digi, typename Geometry,PFLayer::Layer Layer,int Detector>
recHitToken_ = iC.consumes<edm::SortedCollection<Digi> >(iConfig.getParameter<edm::InputTag>("src"));
}

void importRecHits(std::auto_ptr<reco::PFRecHitCollection>&out,std::auto_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {
void importRecHits(std::unique_ptr<reco::PFRecHitCollection>&out,std::unique_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {


beginEvent(iEvent,iSetup);
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ class PFPSRecHitCreator final : public PFRecHitCreatorBase {
recHitToken_ = iC.consumes<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>("src"));
}

void importRecHits(std::auto_ptr<reco::PFRecHitCollection>&out,std::auto_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {
void importRecHits(std::unique_ptr<reco::PFRecHitCollection>&out,std::unique_ptr<reco::PFRecHitCollection>& cleaned ,const edm::Event& iEvent,const edm::EventSetup& iSetup) {

beginEvent(iEvent,iSetup);

Original file line number Diff line number Diff line change
@@ -27,7 +27,7 @@ class PFRecHitCaloNavigator : public PFRecHitNavigatorBase {

virtual ~PFRecHitCaloNavigator() { if(!ownsTopo) { topology_.release(); } }

void associateNeighbours(reco::PFRecHit& hit,std::auto_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd) {
void associateNeighbours(reco::PFRecHit& hit,std::unique_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd) {
DetId detid( hit.detId() );

CaloNavigator<DET> navigator(detid, topology_.get());
Original file line number Diff line number Diff line change
@@ -36,7 +36,7 @@ class PFRecHitCaloNavigatorWithTime : public PFRecHitNavigatorBase {
virtual ~PFRecHitCaloNavigatorWithTime() { if(!ownsTopo) { topology_.release(); } }


void associateNeighbours(reco::PFRecHit& hit,std::auto_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd) {
void associateNeighbours(reco::PFRecHit& hit,std::unique_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd) {
DetId detid( hit.detId() );

CaloNavigator<D> navigator(detid, topology_.get());
@@ -116,7 +116,7 @@ class PFRecHitCaloNavigatorWithTime : public PFRecHitNavigatorBase {
std::unique_ptr<CaloRecHitResolutionProvider> _timeResolutionCalc;


void associateNeighbour(const DetId& id, reco::PFRecHit& hit,std::auto_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd,short eta, short phi) {
void associateNeighbour(const DetId& id, reco::PFRecHit& hit,std::unique_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd,short eta, short phi) {
double sigma2=10000.0;


Original file line number Diff line number Diff line change
@@ -36,7 +36,7 @@ class PFRecHitCreatorBase {
}


virtual void importRecHits(std::auto_ptr<reco::PFRecHitCollection>&,std::auto_ptr<reco::PFRecHitCollection>& ,const edm::Event&,const edm::EventSetup&)=0;
virtual void importRecHits(std::unique_ptr<reco::PFRecHitCollection>&,std::unique_ptr<reco::PFRecHitCollection>& ,const edm::Event&,const edm::EventSetup&)=0;

protected:

Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ class PFRecHitDualNavigator : public PFRecHitNavigatorBase {

}

void associateNeighbours(reco::PFRecHit& hit,std::auto_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd) {
void associateNeighbours(reco::PFRecHit& hit,std::unique_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd) {
if (hit.layer() == D1)
barrelNav_->associateNeighbours(hit,hits,refProd);
else if (hit.layer() == D2)
Original file line number Diff line number Diff line change
@@ -27,7 +27,7 @@ class PFRecHitFakeNavigator : public PFRecHitNavigatorBase {

virtual ~PFRecHitFakeNavigator() { }

void associateNeighbours(reco::PFRecHit& hit,std::auto_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd) { }
void associateNeighbours(reco::PFRecHit& hit,std::unique_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd) { }



Original file line number Diff line number Diff line change
@@ -33,12 +33,12 @@ class PFRecHitNavigatorBase {
virtual ~PFRecHitNavigatorBase() {}

virtual void beginEvent(const edm::EventSetup&)=0;
virtual void associateNeighbours(reco::PFRecHit&,std::auto_ptr<reco::PFRecHitCollection>&,edm::RefProd<reco::PFRecHitCollection>&)=0;
virtual void associateNeighbours(reco::PFRecHit&,std::unique_ptr<reco::PFRecHitCollection>&,edm::RefProd<reco::PFRecHitCollection>&)=0;


protected:

void associateNeighbour(const DetId& id, reco::PFRecHit& hit,std::auto_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd,short eta, short phi,short depth) {
void associateNeighbour(const DetId& id, reco::PFRecHit& hit,std::unique_ptr<reco::PFRecHitCollection>& hits,edm::RefProd<reco::PFRecHitCollection>& refProd,short eta, short phi,short depth) {
auto found_hit = std::lower_bound(hits->begin(),hits->end(),
id,
[](const reco::PFRecHit& a,
Original file line number Diff line number Diff line change
@@ -72,8 +72,8 @@ DEFINE_FWK_MODULE(CorrectedECALPFClusterProducer);

void CorrectedECALPFClusterProducer::
produce(edm::Event& e, const edm::EventSetup& es) {
std::unique_ptr<reco::PFClusterCollection> clusters_out(new reco::PFClusterCollection);
std::unique_ptr<reco::PFCluster::EEtoPSAssociation> association_out(new reco::PFCluster::EEtoPSAssociation);
auto clusters_out = std::make_unique<reco::PFClusterCollection>();
auto association_out = std::make_unique<reco::PFCluster::EEtoPSAssociation>();

edm::Handle<reco::PFClusterCollection> handleECAL;
e.getByToken(_inputECAL,handleECAL);
16 changes: 8 additions & 8 deletions RecoParticleFlow/PFClusterProducer/plugins/PFCTRecHitProducer.cc
Original file line number Diff line number Diff line change
@@ -142,10 +142,10 @@ void PFCTRecHitProducer::produce(edm::Event& iEvent,
const HcalSeverityLevelComputer* hcalSevLvlComputer = hcalSevLvlComputerHndl.product();


auto_ptr< vector<reco::PFRecHit> > rechits( new vector<reco::PFRecHit> );
auto_ptr< vector<reco::PFRecHit> > rechitsCleaned( new vector<reco::PFRecHit> );
auto_ptr< vector<reco::PFRecHit> > HFHADRecHits( new vector<reco::PFRecHit> );
auto_ptr< vector<reco::PFRecHit> > HFEMRecHits( new vector<reco::PFRecHit> );
auto rechits = std::make_unique<std::vector<reco::PFRecHit>>();
auto rechitsCleaned = std::make_unique<std::vector<reco::PFRecHit>>();
auto HFHADRecHits = std::make_unique<std::vector<reco::PFRecHit>>();
auto HFEMRecHits = std::make_unique<std::vector<reco::PFRecHit>>();

edm::Handle<CaloTowerCollection> caloTowers;
iEvent.getByToken(towersToken_,caloTowers);
@@ -812,10 +812,10 @@ void PFCTRecHitProducer::produce(edm::Event& iEvent,
}
}

iEvent.put( rechits,"" );
iEvent.put( rechitsCleaned,"Cleaned" );
iEvent.put( HFEMRecHits,"HFEM" );
iEvent.put( HFHADRecHits,"HFHAD" );
iEvent.put(std::move(rechits),"");
iEvent.put(std::move(rechitsCleaned),"Cleaned");
iEvent.put(std::move(HFEMRecHits),"HFEM");
iEvent.put(std::move(HFHADRecHits),"HFHAD");

}

Original file line number Diff line number Diff line change
@@ -25,14 +25,13 @@ class PFClusterCollectionMerger : public edm::global::EDProducer<> {
}

virtual void produce(edm::StreamID, edm::Event& e, const edm::EventSetup& es) const {
std::auto_ptr<reco::PFClusterCollection> output;
output.reset(new reco::PFClusterCollection);
auto output = std::make_unique<reco::PFClusterCollection>();
for( const auto& input : _inputs ) {
edm::Handle<reco::PFClusterCollection> handle;
e.getByToken(input,handle);
output->insert(output->end(),handle->begin(),handle->end());
}
e.put(output);
e.put(std::move(output));
}
private:
std::vector<edm::EDGetTokenT<reco::PFClusterCollection> > _inputs;
Original file line number Diff line number Diff line change
@@ -101,15 +101,14 @@ void PFClusterProducer::produce(edm::Event& e, const edm::EventSetup& es) {



std::auto_ptr<reco::PFClusterCollection> initialClusters;
initialClusters.reset(new reco::PFClusterCollection);
auto initialClusters = std::make_unique<reco::PFClusterCollection>();
_initialClustering->buildClusters(rechits, mask, seedable, *initialClusters);
LOGVERB("PFClusterProducer::produce()") << *_initialClustering;




std::auto_ptr<reco::PFClusterCollection> pfClusters;
auto pfClusters = std::make_unique<reco::PFClusterCollection>();
pfClusters.reset(new reco::PFClusterCollection);
if( _pfClusterBuilder ) { // if we've defined a re-clustering step execute it
_pfClusterBuilder->buildClusters(*initialClusters, seedable, *pfClusters);
@@ -130,6 +129,6 @@ void PFClusterProducer::produce(edm::Event& e, const edm::EventSetup& es) {
_energyCorrector->correctEnergies(*pfClusters);
}

if( _prodInitClusters ) e.put(initialClusters,"initialClusters");
e.put(pfClusters);
if( _prodInitClusters ) e.put(std::move(initialClusters),"initialClusters");
e.put(std::move(pfClusters));
}
Original file line number Diff line number Diff line change
@@ -37,8 +37,8 @@ void PFClusterTimeSelector::produce(edm::Event& iEvent,

edm::Handle<reco::PFClusterCollection> clusters;
iEvent.getByToken(clusters_,clusters);
std::auto_ptr<reco::PFClusterCollection> out(new reco::PFClusterCollection);
std::auto_ptr<reco::PFClusterCollection> outOOT(new reco::PFClusterCollection);
auto out = std::make_unique<reco::PFClusterCollection>();
auto outOOT = std::make_unique<reco::PFClusterCollection>();

for(const auto& cluster : *clusters ) {
const double energy = cluster.energy();
@@ -67,8 +67,8 @@ void PFClusterTimeSelector::produce(edm::Event& iEvent,



iEvent.put( out);
iEvent.put( outOOT,"OOT");
iEvent.put(std::move(out));
iEvent.put(std::move(outOOT),"OOT");

}

Original file line number Diff line number Diff line change
@@ -48,14 +48,13 @@ void PFMultiDepthClusterProducer::produce(edm::Event& e, const edm::EventSetup&

std::vector<bool> seedable;

std::auto_ptr<reco::PFClusterCollection> pfClusters;
pfClusters.reset(new reco::PFClusterCollection);
auto pfClusters = std::make_unique<reco::PFClusterCollection>();
_pfClusterBuilder->buildClusters(*inputClusters, seedable, *pfClusters);
LOGVERB("PFMultiDepthClusterProducer::produce()") << *_pfClusterBuilder;

if( _energyCorrector ) {
_energyCorrector->correctEnergies(*pfClusters);
}
e.put(pfClusters);
e.put(std::move(pfClusters));

}
Original file line number Diff line number Diff line change
@@ -47,8 +47,8 @@ void
PFRecHitProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup)
{
using namespace edm;
std::auto_ptr<reco::PFRecHitCollection> out(new reco::PFRecHitCollection );
std::auto_ptr<reco::PFRecHitCollection> cleaned(new reco::PFRecHitCollection );
auto out = std::make_unique<reco::PFRecHitCollection>();
auto cleaned = std::make_unique<reco::PFRecHitCollection>();

navigator_->beginEvent(iSetup);

@@ -71,8 +71,8 @@ void
navigator_->associateNeighbours(pfrechit,out,refProd);
}

iEvent.put(out,"");
iEvent.put(cleaned,"Cleaned");
iEvent.put(std::move(out),"");
iEvent.put(std::move(cleaned),"Cleaned");

}

Original file line number Diff line number Diff line change
@@ -49,21 +49,21 @@ void PFClusterShapeProducer::produce(edm::Event & evt, const edm::EventSetup & e
const CaloSubdetectorGeometry * endcapGeo_p = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalEndcap);
const CaloSubdetectorTopology * endcapTop_p = new EcalEndcapTopology(geoHandle);

std::auto_ptr<reco::ClusterShapeCollection>
std::unique_ptr<reco::ClusterShapeCollection>
csCollection_ap(csAlgo_p->makeClusterShapes(clusterHandle, rechitHandle,
barrelGeo_p, barrelTop_p,
endcapGeo_p, endcapTop_p));

edm::OrphanHandle<reco::ClusterShapeCollection> shape_h = evt.put(csCollection_ap, shapesLabel_);
edm::OrphanHandle<reco::ClusterShapeCollection> shape_h = evt.put(std::move(csCollection_ap), shapesLabel_);

std::auto_ptr<reco::PFClusterShapeAssociationCollection> association_ap(new reco::PFClusterShapeAssociationCollection);
auto association_ap = std::make_unique<reco::PFClusterShapeAssociationCollection>();

for (unsigned int i = 0; i < clusterHandle->size(); i++){
association_ap->insert(edm::Ref<reco::PFClusterCollection>(clusterHandle, i),
edm::Ref<reco::ClusterShapeCollection>(shape_h, i));
}

evt.put(association_ap, shapesLabel_);
evt.put(std::move(association_ap), shapesLabel_);

delete barrelTop_p;
delete endcapTop_p;
Loading

0 comments on commit 79418e6

Please sign in to comment.