diff --git a/SimTracker/TrackAssociation/python/trackingParticleRecoTrackAsssociation_cff.py b/SimTracker/TrackAssociation/python/trackingParticleRecoTrackAsssociation_cff.py index 5074c697f4321..6e16b746a54b7 100644 --- a/SimTracker/TrackAssociation/python/trackingParticleRecoTrackAsssociation_cff.py +++ b/SimTracker/TrackAssociation/python/trackingParticleRecoTrackAsssociation_cff.py @@ -1,7 +1,7 @@ import FWCore.ParameterSet.Config as cms from SimTracker.TrackAssociatorProducers.quickTrackAssociatorByHits_cfi import * - +from SimTracker.TrackAssociatorProducers.trackAssociatorByChi2_cfi import * from SimTracker.TrackAssociation.trackingParticleRecoTrackAsssociation_cfi import * import SimTracker.TrackAssociation.trackingParticleRecoTrackAsssociation_cfi assoc2secStepTk = SimTracker.TrackAssociation.trackingParticleRecoTrackAsssociation_cfi.trackingParticleRecoTrackAsssociation.clone() diff --git a/SimTracker/TrackAssociatorProducers/plugins/TrackAssociatorByChi2Impl.cc b/SimTracker/TrackAssociatorProducers/plugins/TrackAssociatorByChi2Impl.cc index 92293dfbfb79f..5955220012b8d 100644 --- a/SimTracker/TrackAssociatorProducers/plugins/TrackAssociatorByChi2Impl.cc +++ b/SimTracker/TrackAssociatorProducers/plugins/TrackAssociatorByChi2Impl.cc @@ -81,7 +81,7 @@ SimToRecoCollection TrackAssociatorByChi2Impl::associateSimToReco( const edm::RefToBaseVector& tC, const edm::RefVector& tPCH) const { const reco::BeamSpot& bs = *theBeamSpot; - SimToRecoCollection outputCollection; + SimToRecoCollection outputCollection(productGetter_); int tpindex = 0; for (auto tp = tPCH.begin(); tp != tPCH.end(); tp++, ++tpindex) { diff --git a/Validation/RecoTrack/interface/MTVHistoProducerAlgoForTracker.h b/Validation/RecoTrack/interface/MTVHistoProducerAlgoForTracker.h index 4dd116f75baad..9fb9096a82f4a 100644 --- a/Validation/RecoTrack/interface/MTVHistoProducerAlgoForTracker.h +++ b/Validation/RecoTrack/interface/MTVHistoProducerAlgoForTracker.h @@ -128,8 +128,9 @@ struct MTVHistoProducerAlgoForTrackerHistograms { std::vector h_assochi2, h_assochi2_prob; //chi2 and # lost hits vs eta: to be used with doProfileX - std::vector chi2_vs_eta, chi2_vs_pt, nlosthits_vs_eta; - std::vector assoc_chi2_vs_eta, assoc_chi2_vs_pt, assoc_chi2prob_vs_eta, assoc_chi2prob_vs_pt; + std::vector chi2_vs_eta, chi2_vs_pt, chi2_vs_drj, nlosthits_vs_eta; + std::vector assoc_chi2_vs_eta, assoc_chi2_vs_pt, assoc_chi2_vs_drj, assoc_chi2prob_vs_eta, + assoc_chi2prob_vs_pt, assoc_chi2prob_vs_drj; //resolution of track params: to be used with fitslicesytool std::vector dxyres_vs_eta, ptres_vs_eta, dzres_vs_eta, phires_vs_eta, cotThetares_vs_eta; @@ -137,6 +138,7 @@ struct MTVHistoProducerAlgoForTrackerHistograms { //pulls of track params vs eta: to be used with fitslicesytool std::vector dxypull_vs_eta, ptpull_vs_eta, dzpull_vs_eta, phipull_vs_eta, thetapull_vs_eta; + std::vector dxypull_vs_pt, ptpull_vs_pt, dzpull_vs_pt, phipull_vs_pt, thetapull_vs_pt; std::vector ptpull_vs_phi, phipull_vs_phi, thetapull_vs_phi; }; diff --git a/Validation/RecoTrack/python/MTVHistoProducerAlgoForTrackerBlock_cfi.py b/Validation/RecoTrack/python/MTVHistoProducerAlgoForTrackerBlock_cfi.py index 5a4c216e417d2..9ca553b9aafd3 100644 --- a/Validation/RecoTrack/python/MTVHistoProducerAlgoForTrackerBlock_cfi.py +++ b/Validation/RecoTrack/python/MTVHistoProducerAlgoForTrackerBlock_cfi.py @@ -82,8 +82,8 @@ # # dR_jet mindrj = cms.double(0.001), - maxdrj = cms.double(0.1), - nintdrj = cms.int32(50), + maxdrj = cms.double(0.5), + nintdrj = cms.int32(250), # # chi2/ndof minChi2 = cms.double(0), diff --git a/Validation/RecoTrack/python/PostProcessorTracker_cfi.py b/Validation/RecoTrack/python/PostProcessorTracker_cfi.py index 04d95fafdf0b1..9bccb66b4b155 100644 --- a/Validation/RecoTrack/python/PostProcessorTracker_cfi.py +++ b/Validation/RecoTrack/python/PostProcessorTracker_cfi.py @@ -173,25 +173,30 @@ def _addNoFlow(module): "cotThetares_vs_eta '#sigma(cot(#theta)) vs #eta' cotThetares_vs_eta", "cotThetares_vs_pt '#sigma(cot(#theta)) vs p_{T}' cotThetares_vs_pt", "h_dxypulleta 'd_{xy} Pull vs #eta' dxypull_vs_eta", + "h_dxypullpt 'd_{xy} Pull vs p_{T}' dxypull_vs_pt", "dxyres_vs_eta '#sigma(d_{xy}) vs #eta' dxyres_vs_eta", "dxyres_vs_phi '#sigma(d_{xy}) vs #phi' dxyres_vs_phi", "dxyres_vs_pt '#sigma(d_{xy}) vs p_{T}' dxyres_vs_pt", "h_dzpulleta 'd_{z} Pull vs #eta' dzpull_vs_eta", + "h_dzpullpt 'd_{z} Pull vs p_{T}' dzpull_vs_pt", "dzres_vs_eta '#sigma(d_{z}) vs #eta' dzres_vs_eta", "dzres_vs_phi '#sigma(d_{z}) vs #phi' dzres_vs_phi", "dzres_vs_pt '#sigma(d_{z}) vs p_{T}' dzres_vs_pt", "etares_vs_eta '#sigma(#eta) vs #eta' etares_vs_eta", "h_phipulleta '#phi Pull vs #eta' phipull_vs_eta", + "h_phipullpt '#phi Pull vs p_{T}' phipull_vs_pt", "h_phipullphi '#phi Pull vs #phi' phipull_vs_phi", "phires_vs_eta '#sigma(#phi) vs #eta' phires_vs_eta", "phires_vs_phi '#sigma(#phi) vs #phi' phires_vs_phi", "phires_vs_pt '#sigma(#phi) vs p_{T}' phires_vs_pt", "h_ptpulleta 'p_{T} Pull vs #eta' ptpull_vs_eta", + "h_ptpullpt 'p_{T} Pull vs p_{T}' ptpull_vs_pt", "h_ptpullphi 'p_{T} Pull vs #phi' ptpull_vs_phi", "ptres_vs_eta '#sigma(p_{T}) vs #eta' ptres_vs_eta", "ptres_vs_phi '#sigma(p_{T}) vs #phi' ptres_vs_phi", "ptres_vs_pt '#sigma(p_{T}) vs p_{T}' ptres_vs_pt", "h_thetapulleta '#theta Pull vs #eta' thetapull_vs_eta", + "h_thetapullpt '#theta Pull vs p_{T}' thetapull_vs_pt", "h_thetapullphi '#theta Pull vs #phi' thetapull_vs_phi" ), cumulativeDists = cms.untracked.vstring( diff --git a/Validation/RecoTrack/python/TrackValidation_cff.py b/Validation/RecoTrack/python/TrackValidation_cff.py index 13e1520a39f36..a90f3eac8a605 100644 --- a/Validation/RecoTrack/python/TrackValidation_cff.py +++ b/Validation/RecoTrack/python/TrackValidation_cff.py @@ -1,7 +1,7 @@ from __future__ import absolute_import import FWCore.ParameterSet.Config as cms -import SimTracker.TrackAssociatorProducers.trackAssociatorByChi2_cfi +from SimTracker.TrackAssociatorProducers.trackAssociatorByChi2_cfi import * from SimTracker.TrackAssociatorProducers.quickTrackAssociatorByHits_cfi import * from SimTracker.TrackAssociation.trackingParticleRecoTrackAsssociation_cfi import * import Validation.RecoTrack.MultiTrackValidator_cfi @@ -353,6 +353,11 @@ def _getMVASelectors(postfix): ptMin = 0, ) +#ByChi2 association (for jetCore usage, not used by default) +MTVTrackAssociationByChi2 = trackingParticleRecoTrackAsssociation.clone( + associator = cms.InputTag('trackAssociatorByChi2') +) + # Select jets for JetCore tracking highPtJets = cms.EDFilter("CandPtrSelector", src = cms.InputTag("ak4CaloJets"), cut = cms.string("pt()>1000")) highPtJetsForTrk = highPtJetsForTrk = highPtJets.clone(src = "ak4CaloJetsForTrk") @@ -364,6 +369,7 @@ def _getMVASelectors(postfix): trackValidator = Validation.RecoTrack.MultiTrackValidator_cfi.multiTrackValidator.clone( useLogPt = cms.untracked.bool(True), dodEdxPlots = True, + # associators=cms.untracked.VInputTag('MTVTrackAssociationByChi2'), #uncomment for byChi2 assoc. for jetcore studies (1/5) doPVAssociationPlots = True #,minpT = cms.double(-1) #,maxpT = cms.double(3) @@ -387,6 +393,7 @@ def _getMVASelectors(postfix): locals()["_generalTracksHp"+_postfix], "generalTracksPt09", "cutsRecoTracksBtvLike", + "cutsRecoTracksJetCoreRegionalStepByOriginalAlgo", ] ) _setForEra(trackValidator.histoProducerAlgoBlock, _eraName, _era, seedingLayerSets=locals()["_seedingLayerSets"+_postfix]) @@ -532,6 +539,9 @@ def _getMVASelectors(postfix): trackValidatorBuilding = _trackValidatorSeedingBuilding.clone( dirName = "Tracking/TrackBuilding/", doMVAPlots = True, + doResolutionPlotsForLabels = ['jetCoreRegionalStepTracks'], + # associators = ["trackAssociatorByChi2"], #uncomment for byChi2 assoc. for jetcore studies (2/5) + # UseAssociators = True, #uncomment for byChi2 assoc. for jetcore studies (3/5) ) trackValidatorBuildingPreSplitting = trackValidatorBuilding.clone( associators = ["quickTrackAssociatorByHitsPreSplitting"], @@ -648,6 +658,8 @@ def _uniqueFirstLayers(layerList): tracksValidationTruth = cms.Task( tpClusterProducer, tpClusterProducerPreSplitting, + # trackAssociatorByChi2, #uncomment for byChi2 assoc. for jetcore studies (4/5) + # MTVTrackAssociationByChi2, #uncomment for byChi2 assoc. for jetcore studies (5/5) quickTrackAssociatorByHits, quickTrackAssociatorByHitsPreSplitting, trackingParticleRecoTrackAsssociation, @@ -829,6 +841,7 @@ def _uniqueFirstLayers(layerList): dirName = "Tracking/TrackSeeding/", label = _seedSelectors, doSeedPlots = True, + doResolutionPlotsForLabels = [ "seedTracksjetCoreRegionalStepSeeds",] ) trackValidatorSeedingPreSplittingTrackingOnly = trackValidatorSeedingTrackingOnly.clone( associators = ["quickTrackAssociatorByHitsPreSplitting"], diff --git a/Validation/RecoTrack/python/associators_cff.py b/Validation/RecoTrack/python/associators_cff.py index 73c6f416e509c..ab148f9c9e018 100644 --- a/Validation/RecoTrack/python/associators_cff.py +++ b/Validation/RecoTrack/python/associators_cff.py @@ -2,6 +2,7 @@ #### TrackAssociation import SimTracker.TrackAssociatorProducers.quickTrackAssociatorByHits_cfi +import SimTracker.TrackAssociatorProducers.trackAssociatorByChi2_cfi import SimTracker.TrackAssociatorProducers.trackAssociatorByPosition_cfi from SimTracker.TrackerHitAssociation.tpClusterProducer_cfi import tpClusterProducer as _tpClusterProducer from SimTracker.TrackAssociation.trackingParticleRecoTrackAsssociation_cfi import trackingParticleRecoTrackAsssociation as _trackingParticleRecoTrackAsssociation diff --git a/Validation/RecoTrack/python/plotting/trackingPlots.py b/Validation/RecoTrack/python/plotting/trackingPlots.py index d3525d8664b3e..374c83cf50ac8 100644 --- a/Validation/RecoTrack/python/plotting/trackingPlots.py +++ b/Validation/RecoTrack/python/plotting/trackingPlots.py @@ -41,6 +41,7 @@ _maxPU = [20, 50, 65, 80, 100, 150, 200, 250] _minMaxTracks = [0, 200, 500, 1000, 1500, 2000] _minMaxMVA = [-1.025, -0.5, 0, 0.5, 1.025] +_maxDRJ = 0.1 def _minMaxResidual(ma): return ([-x for x in ma], ma) @@ -216,7 +217,7 @@ def _makeMVAPlots(num, hp=False): ) _effandfakeDeltaRPU = PlotGroup("effandfakeDeltaRPU", _makeEffFakeDupPlots("dr" , "#DeltaR", effopts=dict(xtitle="TP min #DeltaR"), fakeopts=dict(xtitle="track min #DeltaR"), common=dict(xlog=True)) + - _makeEffFakeDupPlots("drj" , "#DeltaR(track, jet)", effopts=dict(xtitle="#DeltaR(TP, jet)", ytitle="efficiency vs #DeltaR(TP, jet"), fakeopts=dict(xtitle="#DeltaR(track, jet)"), common=dict(xlog=True))+ + _makeEffFakeDupPlots("drj" , "#DeltaR(track, jet)", effopts=dict(xtitle="#DeltaR(TP, jet)", ytitle="efficiency vs #DeltaR(TP, jet"), fakeopts=dict(xtitle="#DeltaR(track, jet)"), common=dict(xlog=True, xmax=_maxDRJ))+ _makeEffFakeDupPlots("pu" , "PU" , common=dict(xtitle="Pileup", xmin=_minPU, xmax=_maxPU)), legendDy=_legendDy_4rows ) @@ -262,7 +263,7 @@ def _makeMVAPlots(num, hp=False): ) _dupandfakeDeltaRPU = PlotGroup("dupandfakeDeltaRPU", _makeFakeDupPileupPlots("dr" , "#DeltaR", xquantity="min #DeltaR", common=dict(xlog=True)) + - _makeFakeDupPileupPlots("drj" , "#DeltaR(track, jet)", xtitle="#DeltaR(track, jet)", common=dict(xlog=True)) + + _makeFakeDupPileupPlots("drj" , "#DeltaR(track, jet)", xtitle="#DeltaR(track, jet)", common=dict(xlog=True, xmax=_maxDRJ)) + _makeFakeDupPileupPlots("pu" , "PU" , xtitle="Pileup", common=dict(xmin=_minPU, xmax=_maxPU)), ncols=3 ) @@ -373,6 +374,7 @@ def _makeMVAPlots(num, hp=False): fallback={"name": "chi2_vs_eta", "profileX": True}), Plot("ptres_vs_eta_Mean", scale=100, title="", xtitle="TP #eta (PCA to beamline)", ytitle="< #delta p_{T} / p_{T} > (%)", ymin=_minResidualPt, ymax=_maxResidualPt), Plot("chi2mean_vs_pt", title="", xtitle="p_{T}", ytitle="< #chi^{2} / ndf >", ymin=[0, 0.5], ymax=[2, 2.5, 3, 5], xlog=True, fallback={"name": "chi2_vs_pt", "profileX": True}), + Plot("chi2mean_vs_drj", title="", xtitle="#DeltaR(track, jet)", ytitle="< #chi^{2} / ndf >", ymin=[0, 0.5], ymax=[2, 2.5, 3, 5], xlog=True, xmax=_maxDRJ, fallback={"name": "chi2_vs_drj", "profileX": True}), Plot("ptres_vs_pt_Mean", title="", xtitle="p_{T}", ytitle="< #delta p_{T}/p_{T} > (%)", scale=100, ymin=_minResidualPt, ymax=_maxResidualPt,xlog=True) ]) _common = {"stat": True, "fit": True, "normalizeToUnitArea": True, "drawStyle": "hist", "drawCommand": "", "xmin": -10, "xmax": 10, "ylog": True, "ymin": 5e-5, "ymax": [0.01, 0.05, 0.1, 0.2, 0.5, 0.8, 1.025], "ratioUncertainty": False} @@ -441,7 +443,7 @@ def _makeMVAPlots(num, hp=False): ) _extDistDeltaR = PlotGroup("distDeltaR", _makeDistPlots("dr" , "min #DeltaR", common=dict(xlog=True)) + - _makeDistPlots("drj" , "#DeltaR(track, jet)", common=dict(xlog=True)), + _makeDistPlots("drj" , "#DeltaR(track, jet)", common=dict(xlog=True, xmax=_maxDRJ)), ncols=2, legendDy=_legendDy_2rows, ) _extDistSeedingPlots = _makeDistPlots("seedingLayerSet", "seeding layers", common=dict(xtitle="", **_seedingLayerSet_common)) @@ -512,7 +514,7 @@ def _makeMVAPlots(num, hp=False): ) _extDistSimDeltaR = PlotGroup("distsimDeltaR", _makeDistSimPlots("dr" , "min #DeltaR", common=dict(xlog=True)) + - _makeDistSimPlots("drj" , "#DeltaR(TP, jet)", common=dict(xlog=True)), + _makeDistSimPlots("drj" , "#DeltaR(TP, jet)", common=dict(xlog=True, xmax=_maxDRJ)), ncols=2, legendDy=_legendDy_2rows, ) diff --git a/Validation/RecoTrack/src/MTVHistoProducerAlgoForTracker.cc b/Validation/RecoTrack/src/MTVHistoProducerAlgoForTracker.cc index 37c52bd6ec56a..8664c23ed5abb 100644 --- a/Validation/RecoTrack/src/MTVHistoProducerAlgoForTracker.cc +++ b/Validation/RecoTrack/src/MTVHistoProducerAlgoForTracker.cc @@ -1099,6 +1099,8 @@ void MTVHistoProducerAlgoForTracker::bookRecoHistos(DQMStore::IBooker& ibook, ibook.bookProfile("chi2mean_vs_phi", "mean #chi^{2} vs #phi", nintPhi, minPhi, maxPhi, 200, 0, 20, " ")); histograms.chi2_vs_pt.push_back( makeProfileIfLogX(ibook, useLogPt, "chi2mean_vs_pt", "mean #chi^{2} vs p_{T}", nintPt, minPt, maxPt, 0, 20)); + histograms.chi2_vs_drj.push_back(makeProfileIfLogX( + ibook, true, "chi2mean_vs_drj", "mean #chi^{2} vs dR(track,jet)", nintdrj, log10(mindrj), log10(maxdrj), 0, 20)); histograms.assoc_chi2_vs_eta.push_back( ibook.bookProfile("assoc_chi2mean", "mean #chi^{2} vs #eta", nintEta, minEta, maxEta, 200, 0., 20., " ")); @@ -1107,7 +1109,25 @@ void MTVHistoProducerAlgoForTracker::bookRecoHistos(DQMStore::IBooker& ibook, histograms.assoc_chi2_vs_pt.push_back(makeProfileIfLogX( ibook, useLogPt, "assoc_chi2mean_vs_pt", "mean #chi^{2} vs p_{T}", nintPt, minPt, maxPt, 0., 20.)); histograms.assoc_chi2prob_vs_pt.push_back(makeProfileIfLogX( - ibook, useLogPt, "assoc_chi2prob_vs_pt", "mean #chi^{2} probability vs p_{T}", nintPt, minPt, maxPt, 0., 20.)); + ibook, useLogPt, "assoc_chi2prob_vs_pt", "mean #chi^{2} probability vs p_{T}", nintPt, minPt, maxPt, 0., 1.)); + histograms.assoc_chi2_vs_drj.push_back(makeProfileIfLogX(ibook, + true, + "assoc_chi2mean_vs_drj", + "mean #chi^{2} vs dR(track,jet)", + nintdrj, + log10(mindrj), + log10(maxdrj), + 0., + 20)); + histograms.assoc_chi2prob_vs_drj.push_back(makeProfileIfLogX(ibook, + true, + "assoc_chi2prob_vs_drj", + "mean #chi^{2} probability vs dR(track,jet)", + nintdrj, + log10(mindrj), + log10(maxdrj), + 0., + 1.)); histograms.nhits_vs_eta.push_back( ibook.bookProfile("hits_eta", "mean hits vs eta", nintEta, minEta, maxEta, nintHit, minHit, maxHit, " ")); @@ -1387,6 +1407,16 @@ void MTVHistoProducerAlgoForTracker::bookRecoHistos(DQMStore::IBooker& ibook, histograms.phipull_vs_eta, false, "phipull_vs_eta", "phipull_vs_eta", nintEta, minEta, maxEta, 100, -10, 10); bookResolutionPlots2D( histograms.thetapull_vs_eta, false, "thetapull_vs_eta", "thetapull_vs_eta", nintEta, minEta, maxEta, 100, -10, 10); + bookResolutionPlots2D( + histograms.dxypull_vs_pt, useLogPt, "dxypull_vs_pt", "dxypull_vs_pt", nintPt, minPt, maxPt, 100, -10, 10); + bookResolutionPlots2D( + histograms.ptpull_vs_pt, useLogPt, "ptpull_vs_pt", "ptpull_vs_pt", nintPt, minPt, maxPt, 100, -10, 10); + bookResolutionPlots2D( + histograms.dzpull_vs_pt, useLogPt, "dzpull_vs_pt", "dzpull_vs_pt", nintPt, minPt, maxPt, 100, -10, 10); + bookResolutionPlots2D( + histograms.phipull_vs_pt, useLogPt, "phipull_vs_pt", "phipull_vs_pt", nintPt, minPt, maxPt, 100, -10, 10); + bookResolutionPlots2D( + histograms.thetapull_vs_pt, useLogPt, "thetapull_vs_pt", "thetapull_vs_pt", nintPt, minPt, maxPt, 100, -10, 10); // histograms.h_ptshiftetamean.push_back( ibook.book1D("h_ptshifteta_Mean","<#deltapT/pT>[%] vs #eta",nintEta,minEta,maxEta) ); @@ -2026,6 +2056,8 @@ void MTVHistoProducerAlgoForTracker::fill_generic_recoTrack_histos(const Histogr histograms.h_recozpos[count]->Fill(vertz); histograms.h_recodr[count]->Fill(dR); histograms.h_recodrj[count]->Fill(dRJet); + if (dRJet <= 99999) //dRJet can be set to numeric_limits max^2, this is a protection + histograms.chi2_vs_drj[count]->Fill(dRJet, chi2); if (fillSeedingLayerSets) histograms.h_reco_seedingLayerSet[count]->Fill(seedingLayerSetBin); if (pvPosition) { @@ -2089,6 +2121,10 @@ void MTVHistoProducerAlgoForTracker::fill_generic_recoTrack_histos(const Histogr histograms.assoc_chi2prob_vs_eta[count]->Fill(eta, chi2prob); histograms.assoc_chi2_vs_pt[count]->Fill(pt, chi2); histograms.assoc_chi2prob_vs_pt[count]->Fill(pt, chi2prob); + if (dRJet <= 99999) { //dRJet can be set to numeric_limits max^2, this is a protection + histograms.assoc_chi2_vs_drj[count]->Fill(dRJet, chi2); + histograms.assoc_chi2prob_vs_drj[count]->Fill(dRJet, chi2prob); + } histograms.h_assoc2vertpos[count]->Fill(vertxy); histograms.h_assoc2zpos[count]->Fill(vertz); histograms.h_assoc2dr[count]->Fill(dR); @@ -2481,6 +2517,13 @@ void MTVHistoProducerAlgoForTracker::fill_ResoAndPull_recoTrack_histos(const His histograms.phipull_vs_eta[count]->Fill(etaSim, phiPull); histograms.thetapull_vs_eta[count]->Fill(etaSim, thetaPull); + //pulls of track params vs pt: fill 2D histos + histograms.dxypull_vs_pt[count]->Fill(ptSim, dxyPull); + histograms.ptpull_vs_pt[count]->Fill(ptSim, ptres / ptError); + histograms.dzpull_vs_pt[count]->Fill(ptSim, dzPull); + histograms.phipull_vs_pt[count]->Fill(ptSim, phiPull); + histograms.thetapull_vs_pt[count]->Fill(ptSim, thetaPull); + //plots vs phi histograms.nhits_vs_phi[count]->Fill(phiRec, track.numberOfValidHits()); histograms.chi2_vs_phi[count]->Fill(phiRec, track.normalizedChi2()); diff --git a/Validation/RecoTrack/test/MultiTrackValidator_cfg.py b/Validation/RecoTrack/test/MultiTrackValidator_cfg.py index f2dd9013e2985..1bb9b69e81e02 100644 --- a/Validation/RecoTrack/test/MultiTrackValidator_cfg.py +++ b/Validation/RecoTrack/test/MultiTrackValidator_cfg.py @@ -96,6 +96,7 @@ ### validation-specific includes #process.load("SimTracker.TrackAssociatorProducers.trackAssociatorByHits_cfi") process.load("SimTracker.TrackAssociatorProducers.quickTrackAssociatorByHits_cfi") +process.load("SimTracker.TrackAssociatorProducers.trackAssociatorByChi2_cfi") process.load("SimTracker.TrackAssociation.trackingParticleRecoTrackAsssociation_cfi") process.load("Validation.RecoTrack.cuts_cff") process.load("Validation.RecoTrack.MultiTrackValidator_cff")