From 7dc633ff560b5c3e9612cdcfc3f304c4062223ad Mon Sep 17 00:00:00 2001 From: Francesco Fiori Date: Mon, 12 Jun 2017 15:45:26 +0200 Subject: [PATCH 1/5] adding a simple track cut --- .../python/SiPixelPhase1Clusters_cfi.py | 1 + .../SiPixelPhase1OfflineDQM_source_cff.py | 5 +++-- .../SiPixelPhase1OnlineDQM_Timing_cff.py | 19 ++++++----------- .../interface/SiPixelPhase1RecHits.h | 3 +++ .../src/SiPixelPhase1RecHits.cc | 21 +++++++++++++------ .../interface/SiPixelPhase1TrackClusters.h | 4 ++++ .../src/SiPixelPhase1TrackClusters.cc | 15 +++++++++++++ .../interface/SiPixelPhase1TrackEfficiency.h | 2 ++ .../src/SiPixelPhase1TrackEfficiency.cc | 11 ++++++++-- .../python/SiPixelPhase1TrackResiduals_cfi.py | 2 +- .../src/SiPixelPhase1TrackResiduals.cc | 5 +++-- 11 files changed, 62 insertions(+), 26 deletions(-) diff --git a/DQM/SiPixelPhase1Clusters/python/SiPixelPhase1Clusters_cfi.py b/DQM/SiPixelPhase1Clusters/python/SiPixelPhase1Clusters_cfi.py index 1ca76c8b6dee5..5804a3681ad03 100644 --- a/DQM/SiPixelPhase1Clusters/python/SiPixelPhase1Clusters_cfi.py +++ b/DQM/SiPixelPhase1Clusters/python/SiPixelPhase1Clusters_cfi.py @@ -172,6 +172,7 @@ range_y_min = 0, range_y_max = 40, range_y_nbins = 40, dimensions = 2, specs = VPSet( + Specification().groupBy("PXBarrel/PXLayer").save(), Specification().groupBy("PXBarrel").save() ) ) diff --git a/DQM/SiPixelPhase1Config/python/SiPixelPhase1OfflineDQM_source_cff.py b/DQM/SiPixelPhase1Config/python/SiPixelPhase1OfflineDQM_source_cff.py index 1c6c05b45ed63..2354b17f4a3b7 100644 --- a/DQM/SiPixelPhase1Config/python/SiPixelPhase1OfflineDQM_source_cff.py +++ b/DQM/SiPixelPhase1Config/python/SiPixelPhase1OfflineDQM_source_cff.py @@ -19,7 +19,6 @@ #Summary maps from DQM.SiPixelPhase1Summary.SiPixelPhase1Summary_cfi import * - PerModule.enabled = False siPixelPhase1OfflineDQM_source = cms.Sequence(SiPixelPhase1RawDataAnalyzer @@ -38,7 +37,7 @@ SiPixelPhase1TrackResidualsAnalyzer_cosmics = SiPixelPhase1TrackResidualsAnalyzer.clone() SiPixelPhase1TrackResidualsAnalyzer_cosmics.Tracks = "ctfWithMaterialTracksP5" SiPixelPhase1TrackResidualsAnalyzer_cosmics.trajectoryInput = "ctfWithMaterialTracksP5" -SiPixelPhase1TrackResidualsAnalyzer_cosmics.VertexCut = False # don't cuts based on the primary vertex position for cosmics +SiPixelPhase1TrackResidualsAnalyzer_cosmics.VertexCut =cms.untracked.bool(False) # don't cuts based on the primary vertex position for cosmics siPixelPhase1OfflineDQM_source_cosmics.replace(SiPixelPhase1TrackResidualsAnalyzer, @@ -47,12 +46,14 @@ SiPixelPhase1RecHitsAnalyzer_cosmics = SiPixelPhase1RecHitsAnalyzer.clone() SiPixelPhase1RecHitsAnalyzer_cosmics.onlyValidHits = True # In Cosmics the efficiency plugin will not run, so we monitor only valid hits SiPixelPhase1RecHitsAnalyzer_cosmics.src = "ctfWithMaterialTracksP5" +SiPixelPhase1RecHitsAnalyzer_cosmics.VertexCut = cms.untracked.bool(False) siPixelPhase1OfflineDQM_source_cosmics.replace(SiPixelPhase1RecHitsAnalyzer, SiPixelPhase1RecHitsAnalyzer_cosmics) SiPixelPhase1TrackClustersAnalyzer_cosmics = SiPixelPhase1TrackClustersAnalyzer.clone() SiPixelPhase1TrackClustersAnalyzer_cosmics.tracks = "ctfWithMaterialTracksP5" +SiPixelPhase1TrackClustersAnalyzer_cosmics.VertexCut = cms.untracked.bool(False) siPixelPhase1OfflineDQM_source_cosmics.replace(SiPixelPhase1TrackClustersAnalyzer, SiPixelPhase1TrackClustersAnalyzer_cosmics) diff --git a/DQM/SiPixelPhase1Config/python/SiPixelPhase1OnlineDQM_Timing_cff.py b/DQM/SiPixelPhase1Config/python/SiPixelPhase1OnlineDQM_Timing_cff.py index 6178fa46c32e6..92062741f0b97 100644 --- a/DQM/SiPixelPhase1Config/python/SiPixelPhase1OnlineDQM_Timing_cff.py +++ b/DQM/SiPixelPhase1Config/python/SiPixelPhase1OnlineDQM_Timing_cff.py @@ -110,9 +110,6 @@ from DQM.SiPixelPhase1Common.SiPixelPhase1GeometryDebug_cfi import * from DQM.SiPixelPhase1TrackEfficiency.SiPixelPhase1TrackEfficiency_cfi import * -#Summary maps -#from DQM.SiPixelPhase1Summary.SiPixelPhase1Summary_cfi import * - siPixelPhase1OnlineDQM_source = cms.Sequence( SiPixelPhase1DigisAnalyzer @@ -120,7 +117,6 @@ + SiPixelPhase1RawDataAnalyzer + SiPixelPhase1TrackClustersAnalyzer + SiPixelPhase1TrackResidualsAnalyzer -# + SiPixelPhase1GeometryDebugAnalyzer ) siPixelPhase1OnlineDQM_harvesting = cms.Sequence( @@ -130,20 +126,18 @@ + SiPixelPhase1TrackClustersHarvester + SiPixelPhase1TrackResidualsHarvester + SiPixelPhase1TrackEfficiencyHarvester -# + RunQTests_online -# + SiPixelPhase1Summary_Online -# + SiPixelPhase1GeometryDebugHarvester ) ## Additional settings for cosmic runs SiPixelPhase1TrackClustersAnalyzer_cosmics = SiPixelPhase1TrackClustersAnalyzer.clone() SiPixelPhase1TrackClustersAnalyzer_cosmics.tracks = cms.InputTag( "ctfWithMaterialTracksP5" ) +SiPixelPhase1TrackClustersAnalyzer_cosmics.VertexCut = cms.untracked.bool(False) SiPixelPhase1TrackResidualsAnalyzer_cosmics = SiPixelPhase1TrackResidualsAnalyzer.clone() SiPixelPhase1TrackResidualsAnalyzer_cosmics.Tracks = cms.InputTag( "ctfWithMaterialTracksP5" ) SiPixelPhase1TrackResidualsAnalyzer_cosmics.trajectoryInput = "ctfWithMaterialTracksP5" -SiPixelPhase1TrackResidualsAnalyzer_cosmics.VertexCut = False +SiPixelPhase1TrackResidualsAnalyzer_cosmics.VertexCut = cms.untracked.bool(False) SiPixelPhase1TrackEfficiencyAnalyzer_cosmics=SiPixelPhase1TrackEfficiencyAnalyzer.clone() SiPixelPhase1TrackEfficiencyAnalyzer_cosmics.tracks=cms.InputTag( "ctfWithMaterialTracksP5" ) @@ -154,21 +148,21 @@ + SiPixelPhase1RawDataAnalyzer + SiPixelPhase1TrackClustersAnalyzer_cosmics + SiPixelPhase1TrackResidualsAnalyzer_cosmics -+ SiPixelPhase1TrackEfficiencyAnalyzer_cosmics -# + SiPixelPhase1GeometryDebugAnalyzer - ) +) ## Additional settings for pp_run (Phase 0 test) SiPixelPhase1TrackClustersAnalyzer_pprun = SiPixelPhase1TrackClustersAnalyzer.clone() SiPixelPhase1TrackClustersAnalyzer_pprun.tracks = cms.InputTag( "initialStepTracksPreSplitting" ) +SiPixelPhase1TrackClustersAnalyzer_pprun.VertexCut = cms.untracked.bool(False) SiPixelPhase1TrackResidualsAnalyzer_pprun = SiPixelPhase1TrackResidualsAnalyzer.clone() SiPixelPhase1TrackResidualsAnalyzer_pprun.Tracks = cms.InputTag( "initialStepTracksPreSplitting" ) SiPixelPhase1TrackResidualsAnalyzer_pprun.trajectoryInput = "initialStepTracksPreSplitting" -SiPixelPhase1TrackResidualsAnalyzer_pprun.VertexCut = False +SiPixelPhase1TrackResidualsAnalyzer_pprun.VertexCut = cms.untracked.bool(False) SiPixelPhase1TrackEfficiencyAnalyzer_pprun=SiPixelPhase1TrackEfficiencyAnalyzer.clone() SiPixelPhase1TrackEfficiencyAnalyzer_pprun.tracks=cms.InputTag( "initialStepTracksPreSplitting" ) +SiPixelPhase1TrackEfficiencyAnalyzer_pprun.VertexCut = cms.untracked.bool(False) siPixelPhase1OnlineDQM_source_pprun = cms.Sequence( SiPixelPhase1DigisAnalyzer @@ -177,6 +171,5 @@ + SiPixelPhase1TrackClustersAnalyzer_pprun + SiPixelPhase1TrackResidualsAnalyzer_pprun + SiPixelPhase1TrackEfficiencyAnalyzer_pprun -# + SiPixelPhase1GeometryDebugAnalyzer ) diff --git a/DQM/SiPixelPhase1RecHits/interface/SiPixelPhase1RecHits.h b/DQM/SiPixelPhase1RecHits/interface/SiPixelPhase1RecHits.h index b9fd39b600ff5..15ea37d70e75e 100644 --- a/DQM/SiPixelPhase1RecHits/interface/SiPixelPhase1RecHits.h +++ b/DQM/SiPixelPhase1RecHits/interface/SiPixelPhase1RecHits.h @@ -11,6 +11,7 @@ #include "DQM/SiPixelPhase1Common/interface/SiPixelPhase1Base.h" #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/VertexReco/interface/VertexFwd.h" class SiPixelPhase1RecHits : public SiPixelPhase1Base { enum { @@ -24,6 +25,7 @@ class SiPixelPhase1RecHits : public SiPixelPhase1Base { }; bool onlyValid_; + bool ApplyVertexCut_; public: explicit SiPixelPhase1RecHits(const edm::ParameterSet& conf); @@ -31,6 +33,7 @@ class SiPixelPhase1RecHits : public SiPixelPhase1Base { private: edm::EDGetTokenT srcToken_; + edm::EDGetTokenT offlinePrimaryVerticesToken_; }; #endif diff --git a/DQM/SiPixelPhase1RecHits/src/SiPixelPhase1RecHits.cc b/DQM/SiPixelPhase1RecHits/src/SiPixelPhase1RecHits.cc index e05538b36b1b4..654c5b2086b42 100644 --- a/DQM/SiPixelPhase1RecHits/src/SiPixelPhase1RecHits.cc +++ b/DQM/SiPixelPhase1RecHits/src/SiPixelPhase1RecHits.cc @@ -7,28 +7,29 @@ // Original Author: Marcel Schneider #include "FWCore/Framework/interface/MakerMacros.h" - #include "FWCore/Framework/interface/ESHandle.h" #include "DataFormats/GeometryVector/interface/LocalPoint.h" - #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h" #include "Geometry/CommonTopologies/interface/PixelTopology.h" #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" - #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" - #include "DataFormats/TrackReco/interface/Track.h" - #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h" - #include "DQM/SiPixelPhase1RecHits/interface/SiPixelPhase1RecHits.h" +#include "DataFormats/VertexReco/interface/Vertex.h" SiPixelPhase1RecHits::SiPixelPhase1RecHits(const edm::ParameterSet& iConfig) : SiPixelPhase1Base(iConfig) { srcToken_ = consumes(iConfig.getParameter("src")); + + offlinePrimaryVerticesToken_ = consumes(std::string("offlinePrimaryVertices")); + onlyValid_=iConfig.getParameter("onlyValidHits"); + + ApplyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); + } void SiPixelPhase1RecHits::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { @@ -41,8 +42,16 @@ void SiPixelPhase1RecHits::analyze(const edm::Event& iEvent, const edm::EventSet iEvent.getByToken( srcToken_, tracks); if (!tracks.isValid()) return; + edm::Handle vertices; + iEvent.getByToken(offlinePrimaryVerticesToken_, vertices); + + if (ApplyVertexCut_ && (!vertices.isValid() || vertices->size() == 0)) return; + + for (auto const & track : *tracks) { + if (ApplyVertexCut_ && (track.pt() < 0.75 || std::fabs( track.dxy(vertices->at(0).position()) ) > 5*track.dxyError())) continue; + bool isBpixtrack = false, isFpixtrack = false; auto const & trajParams = track.extra()->trajParams(); diff --git a/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h b/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h index a243003159ea6..3f2c7d6b1b664 100644 --- a/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h +++ b/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h @@ -11,6 +11,7 @@ #include "DQM/SiPixelPhase1Common/interface/SiPixelPhase1Base.h" #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/VertexReco/interface/VertexFwd.h" class SiPixelPhase1TrackClusters : public SiPixelPhase1Base { enum { @@ -30,6 +31,8 @@ class SiPixelPhase1TrackClusters : public SiPixelPhase1Base { NTRACKS_VOLUME }; + bool ApplyVertexCut_; + public: explicit SiPixelPhase1TrackClusters(const edm::ParameterSet& conf); void analyze(const edm::Event&, const edm::EventSetup&); @@ -37,6 +40,7 @@ class SiPixelPhase1TrackClusters : public SiPixelPhase1Base { private: edm::EDGetTokenT > clustersToken_; edm::EDGetTokenT tracksToken_; + edm::EDGetTokenT offlinePrimaryVerticesToken_; }; #endif diff --git a/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc b/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc index 366617681daf8..1e0da8f8793a6 100644 --- a/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc +++ b/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc @@ -21,13 +21,19 @@ #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h" #include "TrackingTools/TrackFitters/interface/TrajectoryStateCombiner.h" +#include "DataFormats/VertexReco/interface/Vertex.h" SiPixelPhase1TrackClusters::SiPixelPhase1TrackClusters(const edm::ParameterSet& iConfig) : SiPixelPhase1Base(iConfig) { clustersToken_ = consumes>(iConfig.getParameter("clusters")); + tracksToken_ = consumes(iConfig.getParameter("tracks")); + + offlinePrimaryVerticesToken_ = consumes(std::string("offlinePrimaryVertices")); + + ApplyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); } void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { @@ -37,9 +43,15 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev iSetup.get().get(tracker); assert(tracker.isValid()); + edm::Handle vertices; + iEvent.getByToken(offlinePrimaryVerticesToken_, vertices); + + if (ApplyVertexCut_ && (!vertices.isValid() || vertices->size() == 0)) return; + //get the map edm::Handle tracks; iEvent.getByToken( tracksToken_, tracks); + if ( !tracks.isValid() ) { edm::LogWarning("SiPixelPhase1TrackClusters") << "track collection is not valid"; return; @@ -48,6 +60,7 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev // get clusters edm::Handle< edmNew::DetSetVector > clusterColl; iEvent.getByToken( clustersToken_, clusterColl ); + if ( !clusterColl.isValid() ) { edm::LogWarning("SiPixelPhase1TrackClusters") << "pixel cluster collection is not valid"; return; @@ -62,6 +75,8 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev for (auto const & track : *tracks) { + if (ApplyVertexCut_ && (track.pt() < 0.75 || std::fabs( track.dxy(vertices->at(0).position()) ) > 5*track.dxyError())) continue; + bool isBpixtrack = false, isFpixtrack = false, crossesPixVol=false; // find out whether track crosses pixel fiducial volume (for cosmic tracks) diff --git a/DQM/SiPixelPhase1TrackEfficiency/interface/SiPixelPhase1TrackEfficiency.h b/DQM/SiPixelPhase1TrackEfficiency/interface/SiPixelPhase1TrackEfficiency.h index 1732adc0b4bf2..aa45cca0fffa1 100644 --- a/DQM/SiPixelPhase1TrackEfficiency/interface/SiPixelPhase1TrackEfficiency.h +++ b/DQM/SiPixelPhase1TrackEfficiency/interface/SiPixelPhase1TrackEfficiency.h @@ -21,6 +21,8 @@ class SiPixelPhase1TrackEfficiency : public SiPixelPhase1Base { VERTICES }; + bool ApplyVertexCut_; + public: explicit SiPixelPhase1TrackEfficiency(const edm::ParameterSet& conf); void analyze(const edm::Event&, const edm::EventSetup&); diff --git a/DQM/SiPixelPhase1TrackEfficiency/src/SiPixelPhase1TrackEfficiency.cc b/DQM/SiPixelPhase1TrackEfficiency/src/SiPixelPhase1TrackEfficiency.cc index 2556fb95e1e19..e1111b3fd9645 100644 --- a/DQM/SiPixelPhase1TrackEfficiency/src/SiPixelPhase1TrackEfficiency.cc +++ b/DQM/SiPixelPhase1TrackEfficiency/src/SiPixelPhase1TrackEfficiency.cc @@ -19,13 +19,15 @@ #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h" #include "DataFormats/VertexReco/interface/Vertex.h" - +#include "DataFormats/VertexReco/interface/VertexFwd.h" SiPixelPhase1TrackEfficiency::SiPixelPhase1TrackEfficiency(const edm::ParameterSet& iConfig) : SiPixelPhase1Base(iConfig) { tracksToken_ = consumes(iConfig.getParameter("tracks")); vtxToken_ = consumes(iConfig.getParameter("primaryvertices")); + ApplyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); + } void SiPixelPhase1TrackEfficiency::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { @@ -40,8 +42,10 @@ void SiPixelPhase1TrackEfficiency::analyze(const edm::Event& iEvent, const edm:: iEvent.getByToken( vtxToken_, vertices); if (!vertices.isValid()) return; + histo[VERTICES].fill(vertices->size(),DetId(0),&iEvent); - if (vertices->size() == 0) return; + + if (ApplyVertexCut_ && vertices->size() == 0) return; // should be used for weird cuts //const auto primaryVertex = vertices->at(0); @@ -53,6 +57,9 @@ void SiPixelPhase1TrackEfficiency::analyze(const edm::Event& iEvent, const edm:: for (auto const & track : *tracks) { + //this cut is needed to be consisten with residuals calculation + if (ApplyVertexCut_ && (track.pt() < 0.75 || std::fabs( track.dxy(vertices->at(0).position()) ) > 5*track.dxyError())) continue; + bool isBpixtrack = false, isFpixtrack = false; int nStripHits = 0; diff --git a/DQM/SiPixelPhase1TrackResiduals/python/SiPixelPhase1TrackResiduals_cfi.py b/DQM/SiPixelPhase1TrackResiduals/python/SiPixelPhase1TrackResiduals_cfi.py index 0d6a222d27dc4..6cf609d411749 100644 --- a/DQM/SiPixelPhase1TrackResiduals/python/SiPixelPhase1TrackResiduals_cfi.py +++ b/DQM/SiPixelPhase1TrackResiduals/python/SiPixelPhase1TrackResiduals_cfi.py @@ -28,7 +28,7 @@ SiPixelPhase1TrackResidualsAnalyzer = cms.EDAnalyzer("SiPixelPhase1TrackResiduals", trajectoryInput = cms.string("generalTracks"), Tracks = cms.InputTag("generalTracks"), - VertexCut = cms.bool(True), # Will not apply the vertex cuts on cosmics + #VertexCut = cms.bool(True), # Will not apply the vertex cuts on cosmics histograms = SiPixelPhase1TrackResidualsConf, geometry = SiPixelPhase1Geometry ) diff --git a/DQM/SiPixelPhase1TrackResiduals/src/SiPixelPhase1TrackResiduals.cc b/DQM/SiPixelPhase1TrackResiduals/src/SiPixelPhase1TrackResiduals.cc index ae089293a21d8..334d5da95a859 100644 --- a/DQM/SiPixelPhase1TrackResiduals/src/SiPixelPhase1TrackResiduals.cc +++ b/DQM/SiPixelPhase1TrackResiduals/src/SiPixelPhase1TrackResiduals.cc @@ -23,7 +23,8 @@ SiPixelPhase1TrackResiduals::SiPixelPhase1TrackResiduals(const edm::ParameterSet validator(iConfig, consumesCollector()) { offlinePrimaryVerticesToken_ = consumes(std::string("offlinePrimaryVertices")); - ApplyVertexCut_=iConfig.getParameter("VertexCut"); + + ApplyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); } void SiPixelPhase1TrackResiduals::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { @@ -43,7 +44,7 @@ void SiPixelPhase1TrackResiduals::analyze(const edm::Event& iEvent, const edm::E // tell the validator to only look at good tracks [&](const reco::Track& track) -> bool { return (!ApplyVertexCut_ || (track.pt() > 0.75 - && std::abs( track.dxy(vertices->at(0).position()) ) < 5*track.dxyError())) ; + && std::fabs( track.dxy(vertices->at(0).position()) ) < 5*track.dxyError())) ; }, vtracks); for (auto& track : vtracks) { From 79d07973c22d006198126e0329b982e0ac9f410f Mon Sep 17 00:00:00 2001 From: Francesco Fiori Date: Mon, 12 Jun 2017 18:21:32 +0200 Subject: [PATCH 2/5] implementing David suggestions --- DQM/SiPixelPhase1RecHits/interface/SiPixelPhase1RecHits.h | 6 +++--- DQM/SiPixelPhase1RecHits/src/SiPixelPhase1RecHits.cc | 6 +++--- .../interface/SiPixelPhase1TrackClusters.h | 4 ++-- .../src/SiPixelPhase1TrackClusters.cc | 6 +++--- .../interface/SiPixelPhase1TrackEfficiency.h | 5 +++-- .../src/SiPixelPhase1TrackEfficiency.cc | 6 +++--- .../interface/SiPixelPhase1TrackResiduals.h | 4 ++-- .../python/SiPixelPhase1TrackResiduals_cfi.py | 1 - .../src/SiPixelPhase1TrackResiduals.cc | 8 ++++---- 9 files changed, 23 insertions(+), 23 deletions(-) diff --git a/DQM/SiPixelPhase1RecHits/interface/SiPixelPhase1RecHits.h b/DQM/SiPixelPhase1RecHits/interface/SiPixelPhase1RecHits.h index 15ea37d70e75e..a0599bdcb964d 100644 --- a/DQM/SiPixelPhase1RecHits/interface/SiPixelPhase1RecHits.h +++ b/DQM/SiPixelPhase1RecHits/interface/SiPixelPhase1RecHits.h @@ -24,9 +24,6 @@ class SiPixelPhase1RecHits : public SiPixelPhase1Base { CLUSTER_PROB }; - bool onlyValid_; - bool ApplyVertexCut_; - public: explicit SiPixelPhase1RecHits(const edm::ParameterSet& conf); void analyze(const edm::Event&, const edm::EventSetup&); @@ -34,6 +31,9 @@ class SiPixelPhase1RecHits : public SiPixelPhase1Base { private: edm::EDGetTokenT srcToken_; edm::EDGetTokenT offlinePrimaryVerticesToken_; + + bool onlyValid_; + bool applyVertexCut_; }; #endif diff --git a/DQM/SiPixelPhase1RecHits/src/SiPixelPhase1RecHits.cc b/DQM/SiPixelPhase1RecHits/src/SiPixelPhase1RecHits.cc index 654c5b2086b42..6d40d4ec43b29 100644 --- a/DQM/SiPixelPhase1RecHits/src/SiPixelPhase1RecHits.cc +++ b/DQM/SiPixelPhase1RecHits/src/SiPixelPhase1RecHits.cc @@ -28,7 +28,7 @@ SiPixelPhase1RecHits::SiPixelPhase1RecHits(const edm::ParameterSet& iConfig) : onlyValid_=iConfig.getParameter("onlyValidHits"); - ApplyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); + applyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); } @@ -45,12 +45,12 @@ void SiPixelPhase1RecHits::analyze(const edm::Event& iEvent, const edm::EventSet edm::Handle vertices; iEvent.getByToken(offlinePrimaryVerticesToken_, vertices); - if (ApplyVertexCut_ && (!vertices.isValid() || vertices->size() == 0)) return; + if (applyVertexCut_ && (!vertices.isValid() || vertices->size() == 0)) return; for (auto const & track : *tracks) { - if (ApplyVertexCut_ && (track.pt() < 0.75 || std::fabs( track.dxy(vertices->at(0).position()) ) > 5*track.dxyError())) continue; + if (applyVertexCut_ && (track.pt() < 0.75 || std::abs( track.dxy(vertices->at(0).position()) ) > 5*track.dxyError())) continue; bool isBpixtrack = false, isFpixtrack = false; diff --git a/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h b/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h index 3f2c7d6b1b664..b0bbcdfd717cc 100644 --- a/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h +++ b/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h @@ -31,8 +31,6 @@ class SiPixelPhase1TrackClusters : public SiPixelPhase1Base { NTRACKS_VOLUME }; - bool ApplyVertexCut_; - public: explicit SiPixelPhase1TrackClusters(const edm::ParameterSet& conf); void analyze(const edm::Event&, const edm::EventSetup&); @@ -41,6 +39,8 @@ class SiPixelPhase1TrackClusters : public SiPixelPhase1Base { edm::EDGetTokenT > clustersToken_; edm::EDGetTokenT tracksToken_; edm::EDGetTokenT offlinePrimaryVerticesToken_; + + bool applyVertexCut_; }; #endif diff --git a/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc b/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc index 1e0da8f8793a6..820a84689e849 100644 --- a/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc +++ b/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc @@ -33,7 +33,7 @@ SiPixelPhase1TrackClusters::SiPixelPhase1TrackClusters(const edm::ParameterSet& offlinePrimaryVerticesToken_ = consumes(std::string("offlinePrimaryVertices")); - ApplyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); + applyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); } void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { @@ -46,7 +46,7 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev edm::Handle vertices; iEvent.getByToken(offlinePrimaryVerticesToken_, vertices); - if (ApplyVertexCut_ && (!vertices.isValid() || vertices->size() == 0)) return; + if (applyVertexCut_ && (!vertices.isValid() || vertices->size() == 0)) return; //get the map edm::Handle tracks; @@ -75,7 +75,7 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev for (auto const & track : *tracks) { - if (ApplyVertexCut_ && (track.pt() < 0.75 || std::fabs( track.dxy(vertices->at(0).position()) ) > 5*track.dxyError())) continue; + if (applyVertexCut_ && (track.pt() < 0.75 || std::abs( track.dxy(vertices->at(0).position()) ) > 5*track.dxyError())) continue; bool isBpixtrack = false, isFpixtrack = false, crossesPixVol=false; diff --git a/DQM/SiPixelPhase1TrackEfficiency/interface/SiPixelPhase1TrackEfficiency.h b/DQM/SiPixelPhase1TrackEfficiency/interface/SiPixelPhase1TrackEfficiency.h index aa45cca0fffa1..377277e67254a 100644 --- a/DQM/SiPixelPhase1TrackEfficiency/interface/SiPixelPhase1TrackEfficiency.h +++ b/DQM/SiPixelPhase1TrackEfficiency/interface/SiPixelPhase1TrackEfficiency.h @@ -21,8 +21,6 @@ class SiPixelPhase1TrackEfficiency : public SiPixelPhase1Base { VERTICES }; - bool ApplyVertexCut_; - public: explicit SiPixelPhase1TrackEfficiency(const edm::ParameterSet& conf); void analyze(const edm::Event&, const edm::EventSetup&); @@ -31,6 +29,9 @@ class SiPixelPhase1TrackEfficiency : public SiPixelPhase1Base { edm::EDGetTokenT > clustersToken_; edm::EDGetTokenT tracksToken_; edm::EDGetTokenT vtxToken_; + + bool applyVertexCut_; + }; #endif diff --git a/DQM/SiPixelPhase1TrackEfficiency/src/SiPixelPhase1TrackEfficiency.cc b/DQM/SiPixelPhase1TrackEfficiency/src/SiPixelPhase1TrackEfficiency.cc index e1111b3fd9645..095a6fe505561 100644 --- a/DQM/SiPixelPhase1TrackEfficiency/src/SiPixelPhase1TrackEfficiency.cc +++ b/DQM/SiPixelPhase1TrackEfficiency/src/SiPixelPhase1TrackEfficiency.cc @@ -26,7 +26,7 @@ SiPixelPhase1TrackEfficiency::SiPixelPhase1TrackEfficiency(const edm::ParameterS { tracksToken_ = consumes(iConfig.getParameter("tracks")); vtxToken_ = consumes(iConfig.getParameter("primaryvertices")); - ApplyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); + applyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); } @@ -45,7 +45,7 @@ void SiPixelPhase1TrackEfficiency::analyze(const edm::Event& iEvent, const edm:: histo[VERTICES].fill(vertices->size(),DetId(0),&iEvent); - if (ApplyVertexCut_ && vertices->size() == 0) return; + if (applyVertexCut_ && vertices->size() == 0) return; // should be used for weird cuts //const auto primaryVertex = vertices->at(0); @@ -58,7 +58,7 @@ void SiPixelPhase1TrackEfficiency::analyze(const edm::Event& iEvent, const edm:: for (auto const & track : *tracks) { //this cut is needed to be consisten with residuals calculation - if (ApplyVertexCut_ && (track.pt() < 0.75 || std::fabs( track.dxy(vertices->at(0).position()) ) > 5*track.dxyError())) continue; + if (applyVertexCut_ && (track.pt() < 0.75 || std::abs( track.dxy(vertices->at(0).position()) ) > 5*track.dxyError())) continue; bool isBpixtrack = false, isFpixtrack = false; int nStripHits = 0; diff --git a/DQM/SiPixelPhase1TrackResiduals/interface/SiPixelPhase1TrackResiduals.h b/DQM/SiPixelPhase1TrackResiduals/interface/SiPixelPhase1TrackResiduals.h index 895d4524bf535..97f0b17039a9a 100644 --- a/DQM/SiPixelPhase1TrackResiduals/interface/SiPixelPhase1TrackResiduals.h +++ b/DQM/SiPixelPhase1TrackResiduals/interface/SiPixelPhase1TrackResiduals.h @@ -18,8 +18,6 @@ class SiPixelPhase1TrackResiduals : public SiPixelPhase1Base { RESIDUAL_Y }; - bool ApplyVertexCut_; - public: explicit SiPixelPhase1TrackResiduals(const edm::ParameterSet& conf); void analyze(const edm::Event&, const edm::EventSetup&); @@ -27,6 +25,8 @@ class SiPixelPhase1TrackResiduals : public SiPixelPhase1Base { private: TrackerValidationVariables validator; edm::EDGetTokenT offlinePrimaryVerticesToken_; + + bool applyVertexCut_; }; #endif diff --git a/DQM/SiPixelPhase1TrackResiduals/python/SiPixelPhase1TrackResiduals_cfi.py b/DQM/SiPixelPhase1TrackResiduals/python/SiPixelPhase1TrackResiduals_cfi.py index 6cf609d411749..b492560b052db 100644 --- a/DQM/SiPixelPhase1TrackResiduals/python/SiPixelPhase1TrackResiduals_cfi.py +++ b/DQM/SiPixelPhase1TrackResiduals/python/SiPixelPhase1TrackResiduals_cfi.py @@ -28,7 +28,6 @@ SiPixelPhase1TrackResidualsAnalyzer = cms.EDAnalyzer("SiPixelPhase1TrackResiduals", trajectoryInput = cms.string("generalTracks"), Tracks = cms.InputTag("generalTracks"), - #VertexCut = cms.bool(True), # Will not apply the vertex cuts on cosmics histograms = SiPixelPhase1TrackResidualsConf, geometry = SiPixelPhase1Geometry ) diff --git a/DQM/SiPixelPhase1TrackResiduals/src/SiPixelPhase1TrackResiduals.cc b/DQM/SiPixelPhase1TrackResiduals/src/SiPixelPhase1TrackResiduals.cc index 334d5da95a859..8b8280c238710 100644 --- a/DQM/SiPixelPhase1TrackResiduals/src/SiPixelPhase1TrackResiduals.cc +++ b/DQM/SiPixelPhase1TrackResiduals/src/SiPixelPhase1TrackResiduals.cc @@ -24,7 +24,7 @@ SiPixelPhase1TrackResiduals::SiPixelPhase1TrackResiduals(const edm::ParameterSet { offlinePrimaryVerticesToken_ = consumes(std::string("offlinePrimaryVertices")); - ApplyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); + applyVertexCut_=iConfig.getUntrackedParameter("VertexCut",true); } void SiPixelPhase1TrackResiduals::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { @@ -36,15 +36,15 @@ void SiPixelPhase1TrackResiduals::analyze(const edm::Event& iEvent, const edm::E edm::Handle vertices; iEvent.getByToken(offlinePrimaryVerticesToken_, vertices); - if (ApplyVertexCut_ && (!vertices.isValid() || vertices->size() == 0)) return; + if (applyVertexCut_ && (!vertices.isValid() || vertices->size() == 0)) return; std::vector vtracks; validator.fillTrackQuantities(iEvent, iSetup, // tell the validator to only look at good tracks [&](const reco::Track& track) -> bool { - return (!ApplyVertexCut_ || (track.pt() > 0.75 - && std::fabs( track.dxy(vertices->at(0).position()) ) < 5*track.dxyError())) ; + return (!applyVertexCut_ || (track.pt() > 0.75 + && std::abs( track.dxy(vertices->at(0).position()) ) < 5*track.dxyError())) ; }, vtracks); for (auto& track : vtracks) { From f46fd43df4d50241405207edcd2e0247d5289339 Mon Sep 17 00:00:00 2001 From: Francesco Fiori Date: Tue, 13 Jun 2017 13:26:54 +0200 Subject: [PATCH 3/5] Change some plots to TProfiles and add 5 histos for OnTrack Clusters (5*1600=8000 bins added) --- .../interface/SiPixelPhase1TrackClusters.h | 4 +++- .../python/SiPixelPhase1TrackClusters_cfi.py | 17 +++++++++++++++++ .../src/SiPixelPhase1TrackClusters.cc | 1 + .../python/SiPixelPhase1TrackEfficiency_cfi.py | 4 ++-- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h b/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h index b0bbcdfd717cc..84560afed4a11 100644 --- a/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h +++ b/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h @@ -28,7 +28,9 @@ class SiPixelPhase1TrackClusters : public SiPixelPhase1Base { OFFTRACK_POSITION_F, NTRACKS, - NTRACKS_VOLUME + NTRACKS_VOLUME, + SIZE_VS_ETA, + }; public: diff --git a/DQM/SiPixelPhase1TrackClusters/python/SiPixelPhase1TrackClusters_cfi.py b/DQM/SiPixelPhase1TrackClusters/python/SiPixelPhase1TrackClusters_cfi.py index 973b13a713a0e..9e4f9aedab22a 100644 --- a/DQM/SiPixelPhase1TrackClusters/python/SiPixelPhase1TrackClusters_cfi.py +++ b/DQM/SiPixelPhase1TrackClusters/python/SiPixelPhase1TrackClusters_cfi.py @@ -216,6 +216,22 @@ ) +SiPixelPhase1ClustersSizeVsEta = DefaultHistoTrack.clone( + name = "sizeyvseta", + title = "Cluster Size along Beamline vs. Cluster position #eta (OnTrack)", + xlabel = "Cluster #eta", + ylabel = "length [pixels]", + range_min = -3.2, range_max = 3.2, range_nbins = 40, + range_y_min = 0, range_y_max = 40, range_y_nbins = 40, + dimensions = 2, + specs = VPSet( + Specification().groupBy("PXBarrel/PXLayer").save(), + Specification().groupBy("PXBarrel").save() + ) +) + + + SiPixelPhase1TrackClustersConf = cms.VPSet( SiPixelPhase1TrackClustersOnTrackCharge, SiPixelPhase1TrackClustersOnTrackSize, @@ -231,6 +247,7 @@ SiPixelPhase1TrackClustersNTracks, SiPixelPhase1TrackClustersNTracksInVolume, + SiPixelPhase1ClustersSizeVsEta ) diff --git a/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc b/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc index 820a84689e849..88f906b37d8d5 100644 --- a/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc +++ b/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc @@ -157,6 +157,7 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev histo[ONTRACK_SIZE ].fill(double(cluster.size() ), id, &iEvent); histo[ONTRACK_POSITION_B].fill(clustgp.z(), clustgp.phi(), id, &iEvent); histo[ONTRACK_POSITION_F].fill(clustgp.x(), clustgp.y(), id, &iEvent); + histo[SIZE_VS_ETA].fill(clustgp.eta(), cluster.sizeY(), id, &iEvent); } else { histo[OFFTRACK_NCLUSTERS ].fill(id, &iEvent); histo[OFFTRACK_CHARGE ].fill(double(cluster.charge()), id, &iEvent); diff --git a/DQM/SiPixelPhase1TrackEfficiency/python/SiPixelPhase1TrackEfficiency_cfi.py b/DQM/SiPixelPhase1TrackEfficiency/python/SiPixelPhase1TrackEfficiency_cfi.py index 0fc751d1090f2..ca3543f313ff5 100644 --- a/DQM/SiPixelPhase1TrackEfficiency/python/SiPixelPhase1TrackEfficiency_cfi.py +++ b/DQM/SiPixelPhase1TrackEfficiency/python/SiPixelPhase1TrackEfficiency_cfi.py @@ -11,7 +11,7 @@ specs = VPSet( StandardSpecifications1D_Num, - StandardSpecification2DOccupancy, + StandardSpecification2DProfile_Num, Specification().groupBy("PXBarrel/PXLayer/Event") #this will produce inclusive counts per Layer/Disk .reduce("COUNT") @@ -32,7 +32,7 @@ specs = VPSet( StandardSpecifications1D_Num, - StandardSpecification2DOccupancy, + StandardSpecification2DProfile_Num, Specification().groupBy("PXBarrel/PXLayer/Event") #this will produce inclusive counts per Layer/Disk .reduce("COUNT") From b60327ffa2a811f32878b21d5ac6a55512e185c0 Mon Sep 17 00:00:00 2001 From: Francesco Fiori Date: Sat, 17 Jun 2017 21:48:59 +0200 Subject: [PATCH 4/5] possible fix to failing tests --- .../interface/SiPixelPhase1TrackClusters.h | 2 +- .../python/SiPixelPhase1TrackClusters_cfi.py | 8 +++++--- .../src/SiPixelPhase1TrackClusters.cc | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h b/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h index 84560afed4a11..238fa08affc74 100644 --- a/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h +++ b/DQM/SiPixelPhase1TrackClusters/interface/SiPixelPhase1TrackClusters.h @@ -29,7 +29,7 @@ class SiPixelPhase1TrackClusters : public SiPixelPhase1Base { NTRACKS, NTRACKS_VOLUME, - SIZE_VS_ETA, + ONTRACK_SIZE_VS_ETA }; diff --git a/DQM/SiPixelPhase1TrackClusters/python/SiPixelPhase1TrackClusters_cfi.py b/DQM/SiPixelPhase1TrackClusters/python/SiPixelPhase1TrackClusters_cfi.py index 9e4f9aedab22a..4372c874416f5 100644 --- a/DQM/SiPixelPhase1TrackClusters/python/SiPixelPhase1TrackClusters_cfi.py +++ b/DQM/SiPixelPhase1TrackClusters/python/SiPixelPhase1TrackClusters_cfi.py @@ -216,8 +216,8 @@ ) -SiPixelPhase1ClustersSizeVsEta = DefaultHistoTrack.clone( - name = "sizeyvseta", +SiPixelPhase1ClustersSizeVsEtaOnTrack = DefaultHistoTrack.clone( + name = "sizeyvseta_on_track", title = "Cluster Size along Beamline vs. Cluster position #eta (OnTrack)", xlabel = "Cluster #eta", ylabel = "length [pixels]", @@ -247,7 +247,7 @@ SiPixelPhase1TrackClustersNTracks, SiPixelPhase1TrackClustersNTracksInVolume, - SiPixelPhase1ClustersSizeVsEta + SiPixelPhase1ClustersSizeVsEtaOnTrack ) @@ -262,3 +262,5 @@ histograms = SiPixelPhase1TrackClustersConf, geometry = SiPixelPhase1Geometry ) + + diff --git a/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc b/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc index 88f906b37d8d5..c9dbeceae6f7b 100644 --- a/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc +++ b/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc @@ -157,7 +157,7 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev histo[ONTRACK_SIZE ].fill(double(cluster.size() ), id, &iEvent); histo[ONTRACK_POSITION_B].fill(clustgp.z(), clustgp.phi(), id, &iEvent); histo[ONTRACK_POSITION_F].fill(clustgp.x(), clustgp.y(), id, &iEvent); - histo[SIZE_VS_ETA].fill(clustgp.eta(), cluster.sizeY(), id, &iEvent); + histo[ONTRACK_SIZE_VS_ETA].fill(clustgp.eta(), cluster.sizeY(), id, &iEvent); } else { histo[OFFTRACK_NCLUSTERS ].fill(id, &iEvent); histo[OFFTRACK_CHARGE ].fill(double(cluster.charge()), id, &iEvent); From 94ba37c7a361c5d00b65efd21641e3c86b3c9d22 Mon Sep 17 00:00:00 2001 From: Francesco Fiori Date: Mon, 26 Jun 2017 12:35:35 +0200 Subject: [PATCH 5/5] adding simple track cuts --- .../src/SiPixelPhase1TrackClusters.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc b/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc index c9dbeceae6f7b..5c620263e2e67 100644 --- a/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc +++ b/DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc @@ -38,6 +38,8 @@ SiPixelPhase1TrackClusters::SiPixelPhase1TrackClusters(const edm::ParameterSet& void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { + if (! (histo.size() > ONTRACK_SIZE_VS_ETA)) return; + // get geometry edm::ESHandle tracker; iSetup.get().get(tracker); @@ -72,6 +74,7 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev // corr_charge is not strictly needed but cleaner to have it. std::vector ontrack (clusterColl->data().size(), false); std::vector corr_charge(clusterColl->data().size(), -1.0f); + std::vector etatk(clusterColl->data().size(), -1.0f); for (auto const & track : *tracks) { @@ -115,6 +118,7 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev 1.0/pow( tan(clust_beta ), 2 ) + 1.0 )); corr_charge[clust.key()] = (float) corrCharge; + etatk[clust.key()]=(float) track.eta(); } // statistics on tracks @@ -157,7 +161,7 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev histo[ONTRACK_SIZE ].fill(double(cluster.size() ), id, &iEvent); histo[ONTRACK_POSITION_B].fill(clustgp.z(), clustgp.phi(), id, &iEvent); histo[ONTRACK_POSITION_F].fill(clustgp.x(), clustgp.y(), id, &iEvent); - histo[ONTRACK_SIZE_VS_ETA].fill(clustgp.eta(), cluster.sizeY(), id, &iEvent); + histo[ONTRACK_SIZE_VS_ETA].fill(etatk[key], cluster.sizeY(), id, &iEvent); } else { histo[OFFTRACK_NCLUSTERS ].fill(id, &iEvent); histo[OFFTRACK_CHARGE ].fill(double(cluster.charge()), id, &iEvent);