From 65ded94802f92148331ede292e8a496fa105f226 Mon Sep 17 00:00:00 2001 From: Andrea Venturi Date: Sun, 14 Dec 2014 10:52:35 +0100 Subject: [PATCH] Added TrackerGeometry in a method to discriminate of the actual subdetector type --- .../src/HITrackClusterRemover.cc | 20 ++++++++++++----- .../src/HLTTrackClusterRemoverNew.cc | 22 +++++++++++++------ .../src/SeedClusterRemover.cc | 18 ++++++++++----- 3 files changed, 41 insertions(+), 19 deletions(-) diff --git a/RecoLocalTracker/SubCollectionProducers/src/HITrackClusterRemover.cc b/RecoLocalTracker/SubCollectionProducers/src/HITrackClusterRemover.cc index 2873343916c92..177cf19741b37 100644 --- a/RecoLocalTracker/SubCollectionProducers/src/HITrackClusterRemover.cc +++ b/RecoLocalTracker/SubCollectionProducers/src/HITrackClusterRemover.cc @@ -1,6 +1,7 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/InputTag.h" @@ -14,8 +15,6 @@ #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h" #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h" #include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" -#include "DataFormats/SiStripDetId/interface/StripSubdetector.h" #include "DataFormats/SiStripDetId/interface/SiStripDetId.h" #include "DataFormats/Common/interface/DetSetVector.h" #include "DataFormats/Common/interface/ValueMap.h" @@ -31,6 +30,12 @@ #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" + +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "Geometry/CommonDetUnit/interface/GeomDetUnit.h" +#include "Geometry/CommonDetUnit/interface/GeomDetType.h" + // // class decleration // @@ -82,7 +87,7 @@ class HITrackClusterRemover : public edm::stream::EDProducer<> { std::vector pixels, strips; // avoid unneed alloc/dealloc of this edm::ProductID pixelSourceProdID, stripSourceProdID; // ProdIDs refs must point to (for consistency tests) - inline void process(const TrackingRecHit *hit, float chi2); + inline void process(const TrackingRecHit *hit, float chi2, const TrackerGeometry* tg); inline void process(const OmniClusterRef & cluRef, SiStripDetId & detid, bool fromTrack); @@ -303,7 +308,7 @@ void HITrackClusterRemover::process(OmniClusterRef const & ocluster, SiStripDetI } -void HITrackClusterRemover::process(const TrackingRecHit *hit, float chi2) { +void HITrackClusterRemover::process(const TrackingRecHit *hit, float chi2, const TrackerGeometry* tg) { SiStripDetId detid = hit->geographicalId(); uint32_t subdet = detid.subdetId(); @@ -312,7 +317,7 @@ void HITrackClusterRemover::process(const TrackingRecHit *hit, float chi2) { // chi2 cut if (chi2 > pblocks_[subdet-1].maxChi2_) return; - if ((subdet == PixelSubdetector::PixelBarrel) || (subdet == PixelSubdetector::PixelEndcap)) { + if(GeomDetEnumerators::isTrackerPixel(tg->geomDetSubDetector(subdet))) { if (!doPixel_) return; // this is a pixel, and i *know* it is const SiPixelRecHit *pixelHit = static_cast(hit); @@ -376,6 +381,9 @@ HITrackClusterRemover::produce(Event& iEvent, const EventSetup& iSetup) { ProductID pixelOldProdID, stripOldProdID; + edm::ESHandle tgh; + iSetup.get().get("",tgh); //is it correct to use "" ? + Handle > pixelClusters; if (doPixel_) { iEvent.getByToken(pixelClusters_, pixelClusters); @@ -480,7 +488,7 @@ HITrackClusterRemover::produce(Event& iEvent, const EventSetup& iSetup) for (itm = tms.begin(), endtm = tms.end(); itm != endtm; ++itm) { const TrackingRecHit *hit = itm->recHit()->hit(); if (!hit->isValid()) continue; - process( hit, itm->estimate() ); + process( hit, itm->estimate() , tgh.product()); } } } diff --git a/RecoLocalTracker/SubCollectionProducers/src/HLTTrackClusterRemoverNew.cc b/RecoLocalTracker/SubCollectionProducers/src/HLTTrackClusterRemoverNew.cc index a95f6efa0ff76..18c341b31eec3 100644 --- a/RecoLocalTracker/SubCollectionProducers/src/HLTTrackClusterRemoverNew.cc +++ b/RecoLocalTracker/SubCollectionProducers/src/HLTTrackClusterRemoverNew.cc @@ -1,6 +1,7 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/EDProducer.h" #include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/InputTag.h" @@ -14,8 +15,6 @@ #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h" #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h" #include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" -#include "DataFormats/SiStripDetId/interface/StripSubdetector.h" #include "DataFormats/Common/interface/DetSetVector.h" #include "DataFormats/Common/interface/DetSetVectorNew.h" #include "DataFormats/Common/interface/ContainerMask.h" @@ -27,6 +26,12 @@ #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" + +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "Geometry/CommonDetUnit/interface/GeomDetUnit.h" +#include "Geometry/CommonDetUnit/interface/GeomDetType.h" + // // class decleration // @@ -76,8 +81,8 @@ class HLTTrackClusterRemoverNew final : public edm::EDProducer { std::vector pixels, strips; // avoid unneed alloc/dealloc of this edm::ProductID pixelSourceProdID, stripSourceProdID; // ProdIDs refs must point to (for consistency tests) - inline void process(const TrackingRecHit *hit, float chi2); - inline void process(const OmniClusterRef & cluRef, uint32_t subdet); + inline void process(const TrackingRecHit *hit, float chi2, const TrackerGeometry* tg); + inline void process(const OmniClusterRef & cluRef, uint32_t subdet); template std::auto_ptr > @@ -255,7 +260,7 @@ void HLTTrackClusterRemoverNew::process(OmniClusterRef const & clusterReg, uint3 -void HLTTrackClusterRemoverNew::process(const TrackingRecHit *hit, float chi2) { +void HLTTrackClusterRemoverNew::process(const TrackingRecHit *hit, float chi2, const TrackerGeometry* tg) { DetId detid = hit->geographicalId(); uint32_t subdet = detid.subdetId(); @@ -265,7 +270,7 @@ void HLTTrackClusterRemoverNew::process(const TrackingRecHit *hit, float chi2) { // chi2 cut if (chi2 > pblocks_[subdet-1].maxChi2_) return; - if ((subdet == PixelSubdetector::PixelBarrel) || (subdet == PixelSubdetector::PixelEndcap)) { + if(GeomDetEnumerators::isTrackerPixel(tg->geomDetSubDetector(subdet))) { // std::cout<<"process pxl hit"< tgh; + iSetup.get().get("",tgh); //is it correct to use "" ? + edm::Handle > pixelClusters; if (doPixel_) { iEvent.getByToken(pixelClusters_, pixelClusters); @@ -386,7 +394,7 @@ HLTTrackClusterRemoverNew::produce(Event& iEvent, const EventSetup& iSetup) const TrackingRecHit *hit = itm->recHit()->hit(); if (!hit->isValid()) continue; // std::cout<<"process hit"<estimate() ); + process( hit, itm->estimate() , tgh.product()); } } diff --git a/RecoLocalTracker/SubCollectionProducers/src/SeedClusterRemover.cc b/RecoLocalTracker/SubCollectionProducers/src/SeedClusterRemover.cc index 633896bbb7393..a00537a00ad7b 100644 --- a/RecoLocalTracker/SubCollectionProducers/src/SeedClusterRemover.cc +++ b/RecoLocalTracker/SubCollectionProducers/src/SeedClusterRemover.cc @@ -1,6 +1,7 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/InputTag.h" @@ -14,8 +15,6 @@ #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h" #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h" #include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" -#include "DataFormats/SiStripDetId/interface/StripSubdetector.h" #include "DataFormats/Common/interface/DetSetVector.h" #include "DataFormats/Common/interface/ValueMap.h" #include "DataFormats/Common/interface/DetSetVectorNew.h" @@ -30,6 +29,10 @@ #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "Geometry/CommonDetUnit/interface/GeomDetUnit.h" +#include "Geometry/CommonDetUnit/interface/GeomDetType.h" // // class decleration @@ -76,7 +79,7 @@ class SeedClusterRemover : public edm::stream::EDProducer<> { std::vector pixels, strips; // avoid unneed alloc/dealloc of this edm::ProductID pixelSourceProdID, stripSourceProdID; // ProdIDs refs must point to (for consistency tests) - inline void process(const TrackingRecHit *hit, float chi2); + inline void process(const TrackingRecHit *hit, float chi2, const TrackerGeometry* tg); inline void process(const OmniClusterRef & cluRef, uint32_t subdet); @@ -252,7 +255,7 @@ void SeedClusterRemover::process(OmniClusterRef const & ocluster, uint32_t subde } -void SeedClusterRemover::process(const TrackingRecHit *hit, float chi2) { +void SeedClusterRemover::process(const TrackingRecHit *hit, float chi2, const TrackerGeometry* tg) { DetId detid = hit->geographicalId(); uint32_t subdet = detid.subdetId(); @@ -261,7 +264,7 @@ void SeedClusterRemover::process(const TrackingRecHit *hit, float chi2) { // chi2 cut if (chi2 > pblocks_[subdet-1].maxChi2_) return; - if ((subdet == PixelSubdetector::PixelBarrel) || (subdet == PixelSubdetector::PixelEndcap)) { + if(GeomDetEnumerators::isTrackerPixel(tg->geomDetSubDetector(subdet))) { if (!doPixel_) return; // this is a pixel, and i *know* it is const SiPixelRecHit *pixelHit = static_cast(hit); @@ -325,6 +328,9 @@ SeedClusterRemover::produce(Event& iEvent, const EventSetup& iSetup) { ProductID pixelOldProdID, stripOldProdID; + edm::ESHandle tgh; + iSetup.get().get("",tgh); //is it correct to use "" ? + Handle > pixelClusters; if (doPixel_) { iEvent.getByToken(pixelClusters_, pixelClusters); @@ -404,7 +410,7 @@ SeedClusterRemover::produce(Event& iEvent, const EventSetup& iSetup) TrajectorySeed::const_iterator hit=hits.first; for (;hit!=hits.second;++hit){ if (!hit->isValid()) continue; - process( &(*hit), 0. ); + process( &(*hit), 0. , tgh.product()); } }