Skip to content

Commit

Permalink
Added TrackerGeometry in a method to discriminate of the actual subde…
Browse files Browse the repository at this point in the history
…tector type
  • Loading branch information
venturia committed Dec 14, 2014
1 parent c16aaeb commit 65ded94
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -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"

Expand All @@ -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"
Expand All @@ -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
//
Expand Down Expand Up @@ -82,7 +87,7 @@ class HITrackClusterRemover : public edm::stream::EDProducer<> {
std::vector<uint8_t> 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);


Expand Down Expand Up @@ -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();

Expand All @@ -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<const SiPixelRecHit *>(hit);
Expand Down Expand Up @@ -376,6 +381,9 @@ HITrackClusterRemover::produce(Event& iEvent, const EventSetup& iSetup)
{
ProductID pixelOldProdID, stripOldProdID;

edm::ESHandle<TrackerGeometry> tgh;
iSetup.get<TrackerDigiGeometryRecord>().get("",tgh); //is it correct to use "" ?

Handle<edmNew::DetSetVector<SiPixelCluster> > pixelClusters;
if (doPixel_) {
iEvent.getByToken(pixelClusters_, pixelClusters);
Expand Down Expand Up @@ -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());
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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"

Expand All @@ -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"
Expand All @@ -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
//
Expand Down Expand Up @@ -76,8 +81,8 @@ class HLTTrackClusterRemoverNew final : public edm::EDProducer {
std::vector<uint8_t> 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<typename T>
std::auto_ptr<edmNew::DetSetVector<T> >
Expand Down Expand Up @@ -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();

Expand All @@ -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"<<std::endl;
if (!doPixel_) return;
// this is a pixel, and i *know* it is
Expand Down Expand Up @@ -342,6 +347,9 @@ HLTTrackClusterRemoverNew::produce(Event& iEvent, const EventSetup& iSetup)
{
ProductID pixelOldProdID, stripOldProdID;

edm::ESHandle<TrackerGeometry> tgh;
iSetup.get<TrackerDigiGeometryRecord>().get("",tgh); //is it correct to use "" ?

edm::Handle<edmNew::DetSetVector<SiPixelCluster> > pixelClusters;
if (doPixel_) {
iEvent.getByToken(pixelClusters_, pixelClusters);
Expand Down Expand Up @@ -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"<<std::endl;
process( hit, itm->estimate() );
process( hit, itm->estimate() , tgh.product());
}
}

Expand Down
18 changes: 12 additions & 6 deletions RecoLocalTracker/SubCollectionProducers/src/SeedClusterRemover.cc
Original file line number Diff line number Diff line change
@@ -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"

Expand All @@ -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"
Expand All @@ -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
Expand Down Expand Up @@ -76,7 +79,7 @@ class SeedClusterRemover : public edm::stream::EDProducer<> {
std::vector<uint8_t> 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);


Expand Down Expand Up @@ -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();

Expand All @@ -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<const SiPixelRecHit *>(hit);
Expand Down Expand Up @@ -325,6 +328,9 @@ SeedClusterRemover::produce(Event& iEvent, const EventSetup& iSetup)
{
ProductID pixelOldProdID, stripOldProdID;

edm::ESHandle<TrackerGeometry> tgh;
iSetup.get<TrackerDigiGeometryRecord>().get("",tgh); //is it correct to use "" ?

Handle<edmNew::DetSetVector<SiPixelCluster> > pixelClusters;
if (doPixel_) {
iEvent.getByToken(pixelClusters_, pixelClusters);
Expand Down Expand Up @@ -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());
}
}

Expand Down

0 comments on commit 65ded94

Please sign in to comment.