Skip to content

Commit

Permalink
Merge pull request #19683 from fioriNTU/TrackCuts_Redone_Backport
Browse files Browse the repository at this point in the history
Track cuts redone backport
  • Loading branch information
cmsbuild committed Aug 1, 2017
2 parents 2a5c864 + 89a316a commit 83e671e
Show file tree
Hide file tree
Showing 13 changed files with 73 additions and 42 deletions.
Expand Up @@ -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()
)
)
Expand Down
Expand Up @@ -19,7 +19,6 @@
#Summary maps
from DQM.SiPixelPhase1Summary.SiPixelPhase1Summary_cfi import *


PerModule.enabled = False

siPixelPhase1OfflineDQM_source = cms.Sequence(SiPixelPhase1RawDataAnalyzer
Expand All @@ -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,
Expand All @@ -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)
Expand Up @@ -110,17 +110,13 @@
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
+ SiPixelPhase1ClustersAnalyzer
+ SiPixelPhase1RawDataAnalyzer
+ SiPixelPhase1TrackClustersAnalyzer
+ SiPixelPhase1TrackResidualsAnalyzer
# + SiPixelPhase1GeometryDebugAnalyzer
)

siPixelPhase1OnlineDQM_harvesting = cms.Sequence(
Expand All @@ -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" )
Expand All @@ -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
Expand All @@ -177,6 +171,5 @@
+ SiPixelPhase1TrackClustersAnalyzer_pprun
+ SiPixelPhase1TrackResidualsAnalyzer_pprun
+ SiPixelPhase1TrackEfficiencyAnalyzer_pprun
# + SiPixelPhase1GeometryDebugAnalyzer
)

7 changes: 5 additions & 2 deletions DQM/SiPixelPhase1RecHits/interface/SiPixelPhase1RecHits.h
Expand Up @@ -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 {
Expand All @@ -23,14 +24,16 @@ class SiPixelPhase1RecHits : public SiPixelPhase1Base {
CLUSTER_PROB
};

bool onlyValid_;

public:
explicit SiPixelPhase1RecHits(const edm::ParameterSet& conf);
void analyze(const edm::Event&, const edm::EventSetup&);

private:
edm::EDGetTokenT<reco::TrackCollection> srcToken_;
edm::EDGetTokenT<reco::VertexCollection> offlinePrimaryVerticesToken_;

bool onlyValid_;
bool applyVertexCut_;
};

#endif
21 changes: 15 additions & 6 deletions DQM/SiPixelPhase1RecHits/src/SiPixelPhase1RecHits.cc
Expand Up @@ -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<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("src"));

offlinePrimaryVerticesToken_ = consumes<reco::VertexCollection>(std::string("offlinePrimaryVertices"));

onlyValid_=iConfig.getParameter<bool>("onlyValidHits");

applyVertexCut_=iConfig.getUntrackedParameter<bool>("VertexCut",true);

}

void SiPixelPhase1RecHits::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
Expand All @@ -41,8 +42,16 @@ void SiPixelPhase1RecHits::analyze(const edm::Event& iEvent, const edm::EventSet
iEvent.getByToken( srcToken_, tracks);
if (!tracks.isValid()) return;

edm::Handle<reco::VertexCollection> 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::abs( track.dxy(vertices->at(0).position()) ) > 5*track.dxyError())) continue;

bool isBpixtrack = false, isFpixtrack = false;

auto const & trajParams = track.extra()->trajParams();
Expand Down
Expand Up @@ -282,8 +282,6 @@
)




SiPixelPhase1TrackClustersOnTrackChargeOuter = DefaultHistoTrack.clone(
name = "chargeOuter",
title = "Corrected Cluster Charge (OnTrack) outer ladders",
Expand Down Expand Up @@ -314,6 +312,20 @@
)


SiPixelPhase1ClustersSizeVsEtaOnTrack = DefaultHistoTrack.clone(
name = "sizeyvseta_on_track",
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,
Expand All @@ -340,8 +352,9 @@
SiPixelPhase1TrackClustersOnTrackSizeYInner,

SiPixelPhase1TrackClustersOnTrackSizeXYOuter,
SiPixelPhase1TrackClustersOnTrackSizeXYInner
SiPixelPhase1TrackClustersOnTrackSizeXYInner,

SiPixelPhase1ClustersSizeVsEtaOnTrack
)


Expand All @@ -357,4 +370,3 @@
geometry = SiPixelPhase1Geometry
)


12 changes: 7 additions & 5 deletions DQM/SiPixelPhase1TrackClusters/src/SiPixelPhase1TrackClusters.cc
Expand Up @@ -22,7 +22,7 @@
#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h"
#include "DataFormats/VertexReco/interface/Vertex.h"

#include "TrackingTools/TrackFitters/interface/TrajectoryStateCombiner.h"
#include "RecoTracker/Record/interface/CkfComponentsRecord.h"
#include "RecoPixelVertexing/PixelLowPtUtilities/interface/ClusterShapeHitFilter.h"
#include "DataFormats/SiPixelCluster/interface/SiPixelClusterShapeCache.h"
Expand Down Expand Up @@ -57,6 +57,8 @@ enum { // copy paste from cfy: the only safe way to doit....
SiPixelPhase1TrackClustersOnTrackSizeXYOuter,
SiPixelPhase1TrackClustersOnTrackSizeXYInner,

SiPixelPhase1ClustersSizeVsEtaOnTrack,


SiPixelPhase1TrackClustersEnumSize
};
Expand Down Expand Up @@ -113,7 +115,6 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev
if (!vertices.isValid() || vertices->empty()) return;
}


//get the map
edm::Handle<reco::TrackCollection> tracks;
iEvent.getByToken( tracksToken_, tracks);
Expand All @@ -123,11 +124,11 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev
return;
}


edm::Handle<SiPixelClusterShapeCache> pixelClusterShapeCacheH;
iEvent.getByToken(pixelClusterShapeCacheToken_, pixelClusterShapeCacheH);
auto const & pixelClusterShapeCache = *pixelClusterShapeCacheH;


for (auto const & track : *tracks) {

if (applyVertexCut_ && (track.pt() < 0.75 || std::abs( track.dxy((*vertices)[0].position()) ) > 5*track.dxyError())) continue;
Expand All @@ -140,7 +141,6 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev

auto etatk = track.eta();


auto const & trajParams = track.extra()->trajParams();
assert(trajParams.size()==track.recHitsSize());
auto hb = track.recHitsBegin();
Expand Down Expand Up @@ -170,6 +170,7 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev
auto localDir = ltp.momentum()/ltp.momentum().mag();

// correct charge for track impact angle

auto charge = cluster.charge()*ltp.absdz();

auto clustgp = pixhit->globalPosition(); // from rechit
Expand Down Expand Up @@ -203,6 +204,8 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev
histo[SiPixelPhase1TrackClustersOnTrackPositionB].fill(clustgp.z(), clustgp.phi(), id, &iEvent);
histo[SiPixelPhase1TrackClustersOnTrackPositionF].fill(clustgp.x(), clustgp.y(), id, &iEvent);

histo[SiPixelPhase1ClustersSizeVsEtaOnTrack].fill(etatk, cluster.sizeY(), id, &iEvent);

if(tkTpl.pxbLadder(id)%2==1) {
histo[SiPixelPhase1ClustersSizeVsEtaOnTrackOuter].fill(etatk, cluster.sizeY(), id, &iEvent);
histo[SiPixelPhase1TrackClustersOnTrackChargeOuter].fill(charge, id, &iEvent);
Expand All @@ -211,7 +214,6 @@ void SiPixelPhase1TrackClusters::analyze(const edm::Event& iEvent, const edm::Ev
histo[SiPixelPhase1TrackClustersOnTrackChargeInner].fill(charge, id, &iEvent);
}


}

// statistics on tracks
Expand Down
Expand Up @@ -29,6 +29,9 @@ class SiPixelPhase1TrackEfficiency : public SiPixelPhase1Base {
edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > clustersToken_;
edm::EDGetTokenT<reco::TrackCollection> tracksToken_;
edm::EDGetTokenT<reco::VertexCollection> vtxToken_;

bool applyVertexCut_;

};

#endif
Expand Up @@ -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")
Expand All @@ -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")
Expand Down
Expand Up @@ -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<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("tracks"));
vtxToken_ = consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("primaryvertices"));
applyVertexCut_=iConfig.getUntrackedParameter<bool>("VertexCut",true);

}

void SiPixelPhase1TrackEfficiency::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
Expand All @@ -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);
Expand All @@ -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::abs( track.dxy(vertices->at(0).position()) ) > 5*track.dxyError())) continue;

bool isBpixtrack = false, isFpixtrack = false;
int nStripHits = 0;

Expand Down
Expand Up @@ -18,15 +18,15 @@ class SiPixelPhase1TrackResiduals : public SiPixelPhase1Base {
RESIDUAL_Y
};

bool ApplyVertexCut_;

public:
explicit SiPixelPhase1TrackResiduals(const edm::ParameterSet& conf);
void analyze(const edm::Event&, const edm::EventSetup&);

private:
TrackerValidationVariables validator;
edm::EDGetTokenT<reco::VertexCollection> offlinePrimaryVerticesToken_;

bool applyVertexCut_;
};

#endif

0 comments on commit 83e671e

Please sign in to comment.