Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

drop type specs in RecoMuon and RecoTracker #30353

Merged
merged 2 commits into from Jun 25, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 2 additions & 3 deletions RecoMuon/TrackingTools/python/MuonServiceProxy_cff.py
@@ -1,6 +1,5 @@
import FWCore.ParameterSet.Config as cms


from TrackingTools.GeomPropagators.StraightLinePropagator_cfi import *
from TrackingTools.MaterialEffects.MaterialPropagator_cfi import *
from TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi import *
Expand Down Expand Up @@ -48,11 +47,11 @@
# run3_GEM
from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM
run3_GEM.toModify(MuonServiceProxy,
ServiceParameters = dict(GEMLayers = cms.untracked.bool(True))
ServiceParameters = dict(GEMLayers = True)
)

# phase2_muon
from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon
phase2_muon.toModify(MuonServiceProxy,
ServiceParameters = dict(ME0Layers = cms.bool(True))
ServiceParameters = dict(ME0Layers = True)
)
35 changes: 18 additions & 17 deletions RecoMuon/TrackingTools/python/MuonTrackLoader_cff.py
Expand Up @@ -4,32 +4,34 @@
from TrackingTools.GeomPropagators.SmartPropagator_cff import *
from RecoMuon.TrackingTools.MuonUpdatorAtVertex_cff import *
import TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi
Chi2EstimatorForMuonTrackLoader = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone()
Chi2EstimatorForMuonTrackLoader.ComponentName = cms.string('Chi2EstimatorForMuonTrackLoader')
Chi2EstimatorForMuonTrackLoader.nSigma = 3.0
Chi2EstimatorForMuonTrackLoader.MaxChi2 = 100000.0
Chi2EstimatorForMuonTrackLoader = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
ComponentName = 'Chi2EstimatorForMuonTrackLoader',
nSigma = 3.0,
MaxChi2 = 100000.0
)

import TrackingTools.TrackFitters.KFTrajectorySmoother_cfi
KFSmootherForMuonTrackLoader = TrackingTools.TrackFitters.KFTrajectorySmoother_cfi.KFTrajectorySmoother.clone(
errorRescaling = cms.double(10.0),
minHits = cms.int32(3),
ComponentName = cms.string('KFSmootherForMuonTrackLoader'),
Estimator = cms.string('Chi2EstimatorForMuonTrackLoader'),
Updator = cms.string('KFUpdator'),
Propagator = cms.string('SmartPropagatorAnyRK')
errorRescaling = 10.0,
minHits = 3,
ComponentName = 'KFSmootherForMuonTrackLoader',
Estimator = 'Chi2EstimatorForMuonTrackLoader',
Updator = 'KFUpdator',
Propagator = 'SmartPropagatorAnyRK'
)

from Configuration.Eras.Modifier_fastSim_cff import fastSim
# FastSim doesn't use Runge Kute for propagation
fastSim.toModify(KFSmootherForMuonTrackLoader,
Propagator = "SmartPropagatorAny")

KFSmootherForMuonTrackLoaderL3 = TrackingTools.TrackFitters.KFTrajectorySmoother_cfi.KFTrajectorySmoother.clone(
errorRescaling = cms.double(10.0),
minHits = cms.int32(3),
ComponentName = cms.string('KFSmootherForMuonTrackLoaderL3'),
Estimator = cms.string('Chi2EstimatorForMuonTrackLoader'),
Updator = cms.string('KFUpdator'),
Propagator = cms.string('SmartPropagatorAnyOpposite')
errorRescaling = 10.0,
minHits = 3,
ComponentName = 'KFSmootherForMuonTrackLoaderL3',
Estimator = 'Chi2EstimatorForMuonTrackLoader',
Updator = 'KFUpdator',
Propagator = 'SmartPropagatorAnyOpposite'
)

MuonTrackLoaderForSTA = cms.PSet(
Expand Down Expand Up @@ -87,4 +89,3 @@
TTRHBuilder = cms.string('WithAngleAndTemplate')
)
)

41 changes: 21 additions & 20 deletions RecoTracker/CkfPattern/python/CkfTrackCandidatesBHM_cff.py
Expand Up @@ -2,30 +2,31 @@

#special propagator
from TrackingTools.GeomPropagators.BeamHaloPropagator_cff import *

from RecoTracker.CkfPattern.CkfTrajectoryBuilder_cff import *
import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff
ckfTrajectoryFilterBeamHaloMuon = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone()
import copy
from RecoTracker.CkfPattern.CkfTrajectoryBuilder_cfi import *
# clone the trajectory builder
CkfTrajectoryBuilderBeamHalo = copy.deepcopy(CkfTrajectoryBuilder)
import copy
from RecoTracker.CkfPattern.CkfTrackCandidates_cfi import *
# generate CTF track candidates ############
beamhaloTrackCandidates = copy.deepcopy(ckfTrackCandidates)

ckfTrajectoryFilterBeamHaloMuon.minimumNumberOfHits = 4
ckfTrajectoryFilterBeamHaloMuon.minPt = 0.1
ckfTrajectoryFilterBeamHaloMuon.maxLostHits = 3
ckfTrajectoryFilterBeamHaloMuon.maxConsecLostHits = 2
ckfTrajectoryFilterBeamHaloMuon = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
minimumNumberOfHits = 4,
minPt = 0.1,
maxLostHits = 3,
maxConsecLostHits = 2
)

CkfTrajectoryBuilderBeamHalo.propagatorAlong = 'BeamHaloPropagatorAlong'
CkfTrajectoryBuilderBeamHalo.propagatorOpposite = 'BeamHaloPropagatorOpposite'
CkfTrajectoryBuilderBeamHalo.trajectoryFilter.refToPSet_ = 'ckfTrajectoryFilterBeamHaloMuon'
beamhaloTrackCandidates.src = cms.InputTag('beamhaloTrackerSeeds')
beamhaloTrackCandidates.NavigationSchool = 'BeamHaloNavigationSchool'
beamhaloTrackCandidates.TransientInitialStateEstimatorParameters.propagatorAlongTISE = 'BeamHaloPropagatorAlong'
beamhaloTrackCandidates.TransientInitialStateEstimatorParameters.propagatorOppositeTISE = 'BeamHaloPropagatorOpposite'
beamhaloTrackCandidates.TrajectoryBuilderPSet.refToPSet_ = 'CkfTrajectoryBuilderBeamHalo'
# clone the trajectory builder
CkfTrajectoryBuilderBeamHalo = CkfTrajectoryBuilder.clone(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CkfTrajectoryBuilderBeamHalo was a deepcopy of CkfTrajectoryBuilder, and here it becomes a clone of it.

Honestly, I'm not expert in python enough to fully understand the difference between them. In the original python code both deepcopy and clone were used.

Also for my own understanding, I'd ask @davidlange6 and @slava77 whether they know about any possible difference between them, and if they think that using clone instead of deepcopy is equivalent, or justified here.

(Same for beamhaloTrackCandidates below)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CkfTrajectoryBuilderBeamHalo was a deepcopy of CkfTrajectoryBuilder, and here it becomes a clone of it.

Honestly, I'm not expert in python enough to fully understand the difference between them. In the original python code both deepcopy and clone were used.

Also for my own understanding, I'd ask @davidlange6 and @slava77 whether they know about any possible difference between them, and if they think that using clone instead of deepcopy is equivalent, or justified here.

(Same for beamhaloTrackCandidates below)

@makortel @Dr15Jones
please advise if there is a substantive difference

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe we prefer clone over deepcopy.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe we prefer clone over deepcopy.

Great! Thank you @Dr15Jones

propagatorAlong = 'BeamHaloPropagatorAlong',
propagatorOpposite = 'BeamHaloPropagatorOpposite',
trajectoryFilter = dict(refToPSet_ = 'ckfTrajectoryFilterBeamHaloMuon')
)

# generate CTF track candidates ############
beamhaloTrackCandidates = ckfTrackCandidates.clone(
src = 'beamhaloTrackerSeeds',
NavigationSchool = 'BeamHaloNavigationSchool',
TransientInitialStateEstimatorParameters = dict(
propagatorAlongTISE = 'BeamHaloPropagatorAlong',
propagatorOppositeTISE = 'BeamHaloPropagatorOpposite'),
TrajectoryBuilderPSet = dict(refToPSet_ = 'CkfTrajectoryBuilderBeamHalo')
)
Expand Up @@ -10,9 +10,6 @@
# generate CTF track candidates ############
import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
ckfTrackCandidatesPixelLess = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('GroupedCkfTrajectoryBuilder')),
src = cms.InputTag('globalPixelLessSeeds')
)



TrajectoryBuilderPSet = dict(refToPSet_ = 'GroupedCkfTrajectoryBuilder'),
src = 'globalPixelLessSeeds'
)
34 changes: 19 additions & 15 deletions RecoTracker/CkfPattern/python/GroupedCkfTrajectoryBuilderP5_cff.py
Expand Up @@ -8,13 +8,15 @@
from TrackingTools.KalmanUpdators.KFUpdatorESProducer_cfi import *
# Chi2MeasurementEstimatorESProducer
import TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi
Chi2MeasurementEstimatorForP5 = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone()
Chi2MeasurementEstimatorForP5.ComponentName = 'Chi2MeasurementEstimatorForP5'
Chi2MeasurementEstimatorForP5.MaxChi2 = 100.
Chi2MeasurementEstimatorForP5.nSigma = 4.
Chi2MeasurementEstimatorForP5.MaxDisplacement = 100
Chi2MeasurementEstimatorForP5.MaxSagitta=-1
Chi2MeasurementEstimatorForP5.MinPtForHitRecoveryInGluedDet=100000
Chi2MeasurementEstimatorForP5 = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
ComponentName = 'Chi2MeasurementEstimatorForP5',
MaxChi2 = 100.,
nSigma = 4.,
MaxDisplacement = 100,
MaxSagitta = -1,
MinPtForHitRecoveryInGluedDet=100000
)

# PropagatorWithMaterialESProducer
from TrackingTools.MaterialEffects.MaterialPropagator_cfi import *
# PropagatorWithMaterialESProducer
Expand All @@ -36,16 +38,18 @@
# trajectory filtering
from TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff import *
import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff
ckfBaseTrajectoryFilterP5 = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone()
import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi
ckfBaseTrajectoryFilterP5.minPt = 0.5
ckfBaseTrajectoryFilterP5.maxLostHits = 4
ckfBaseTrajectoryFilterP5.maxConsecLostHits = 3
ckfBaseTrajectoryFilterP5 = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
minPt = 0.5,
maxLostHits = 4,
maxConsecLostHits = 3
)
#replace ckfBaseTrajectoryFilterP5.minimumNumberOfHits = 4
#
GroupedCkfTrajectoryBuilderP5 = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone()
##CTF_P5_MeasurementTracker.ComponentName = 'CTF_P5' # useless duplication of MeasurementTracker
##GroupedCkfTrajectoryBuilderP5.MeasurementTrackerName = 'CTF_P5' # useless duplication of MeasurementTracker
GroupedCkfTrajectoryBuilderP5.trajectoryFilter.refToPSet_ = 'ckfBaseTrajectoryFilterP5'
GroupedCkfTrajectoryBuilderP5.maxCand = 1
GroupedCkfTrajectoryBuilderP5.estimator = cms.string('Chi2MeasurementEstimatorForP5')
GroupedCkfTrajectoryBuilderP5 = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
trajectoryFilter = dict(refToPSet_ = 'ckfBaseTrajectoryFilterP5'),
maxCand = 1,
estimator = 'Chi2MeasurementEstimatorForP5'
)