1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
import Alignment.CommonAlignment.tools.trackselectionRefitting as TrackRefitterSequencer
strTrackConstrainer=None
strtbdsel=""
if hasattr(optpy,"TBDsel"):
strtbdsel=optpy.TBDsel
if (hasattr(optpy, "TBDconstraint") and strtbdsel!=""):
strtbdconstr=optpy.TBDconstraint
if "momconstr" in strtbdconstr:
process.load("RecoTracker.TrackProducer.TwoBodyDecayMomConstraintProducer_cff")
process.TwoBodyDecayMomConstraint.src = "AlignmentTrackSelector"
if "y1ssel" in strtbdsel:
process.TwoBodyDecayMomConstraint.primaryMass = cms.double(9.46)
process.TwoBodyDecayMomConstraint.primaryWidth = cms.double(0.05)
elif "zsel" in strtbdsel: # zsel
process.TwoBodyDecayMomConstraint.primaryMass = cms.double(91.1876)
process.TwoBodyDecayMomConstraint.primaryWidth = cms.double(1.4)
process.TwoBodyDecayMomConstraint.rescaleError = cms.double(1.0)
process.TwoBodyDecayMomConstraint.chi2Cut = cms.double(99999.)
strTrackConstrainer="TwoBodyDecayMomConstraint,momentum"
elif "fullconstr" in strtbdconstr:
process.load("RecoTracker.TrackProducer.TwoBodyDecayConstraintProducer_cff")
process.TwoBodyDecayConstraint.src = "AlignmentTrackSelector"
if "y1ssel" in strtbdsel:
process.TwoBodyDecayConstraint.primaryMass = cms.double(9.46)
process.TwoBodyDecayConstraint.primaryWidth = cms.double(0.05)
elif "zsel" in strtbdsel: # zsel
process.TwoBodyDecayConstraint.primaryMass = cms.double(91.1876)
process.TwoBodyDecayConstraint.primaryWidth = cms.double(1.4)
process.TwoBodyDecayConstraint.rescaleError = cms.double(1.0)
process.TwoBodyDecayConstraint.chi2Cut = cms.double(99999.)
strTrackConstrainer="TwoBodyDecayConstraint,trackParameters"
elif hasattr(optpy, "applyPVConstraint"):
# Existence of PVtype is guaranteed in the option parser
strpvtype=optpy.PVtype
process.load("TrackingTools.TransientTrack.TransientTrackBuilder_cfi")
process.load("RecoVertex.PrimaryVertexProducer.OfflinePrimaryVertices_cfi")
process.offlinePrimaryVertices.TrackLabel=cms.InputTag("AlignmentTrackSelector")
if strpvtype=="withbs":
process.goodOfflinePrimaryVertices=cms.EDFilter("VertexSelector",
src = cms.InputTag("offlinePrimaryVertices","WithBS"),
cut = cms.string("!isFake && ndof >= 4.0 && abs(z) <= 24.0 && abs(position.Rho) <= 2.0"),
filter = cms.bool(True)
)
else:
process.goodOfflinePrimaryVertices=cms.EDFilter("VertexSelector",
src = cms.InputTag("offlinePrimaryVertices"),
cut = cms.string("!isFake && ndof >= 4.0 && abs(z) <= 24.0 && abs(position.Rho) <= 2.0"),
filter = cms.bool(True)
)
process.load("RecoTracker.TrackProducer.VertexConstraintProducer_cfi")
process.vertexConstraint.srcTrk = "AlignmentTrackSelector"
process.vertexConstraint.srcVtx = "goodOfflinePrimaryVertices"
strTrackConstrainer="vertexConstraint,vertex"
process.TrackRefitterSequence = TrackRefitterSequencer.getSequence(
process,
strtrackcollname,
TTRHBuilder = strTTRHBuilder,
usePixelQualityFlag = None, # Keep default behavior ("WithAngleAndTemplate" -> True, "WithTrackAngle" -> False)
openMassWindow = False,
cosmicsDecoMode = False,
cosmicsZeroTesla = False,
momentumConstraint = strTrackConstrainer, # Should be a momentum constraint object
cosmicTrackSplitting = False,
use_d0cut = True
)
if (strTrackConstrainer is not None and strtbdsel!=""):
process.AlignmentTrackSelector.TwoBodyDecaySelector.daughterMass = 0.0 # Causes tiny bias in mass, but should not be very important
if "y1ssel" in strtbdsel:
process.AlignmentTrackSelector.ptMin = 3.0
process.AlignmentTrackSelector.TwoBodyDecaySelector.minXMass = 9.2
process.AlignmentTrackSelector.TwoBodyDecaySelector.maxXMass = 9.65
elif "zsel" in strtbdsel: # zsel
process.AlignmentTrackSelector.ptMin = 15.0
process.AlignmentTrackSelector.TwoBodyDecaySelector.minXMass = 80.0
process.AlignmentTrackSelector.TwoBodyDecaySelector.maxXMass = 100.0
# OVerride some settings in track selection
process.HighPurityTrackSelector.pMin = 0.
process.AlignmentTrackSelector.etaMin = -999.
process.AlignmentTrackSelector.etaMax = 999.
process.AlignmentTrackSelector.minHitsPerSubDet.inPIXEL = cms.int32(1)
|