74def OfflineQualitySelectionCfg( flags, name="OfflineSelectionTool", **kwargs ) :
75 acc = ComponentAccumulator()
76
77
78
79 minHitsVector = flags.PhysVal.IDTPM.currentTrkAna.offlMinHitsVector
80 minPtVector = flags.PhysVal.IDTPM.currentTrkAna.offlMinPtVector
81 maxD0Vector = flags.PhysVal.IDTPM.currentTrkAna.offlMaxD0Vector
82 maxZ0Vector = flags.PhysVal.IDTPM.currentTrkAna.offlMaxZ0Vector
83 etaBins = flags.PhysVal.IDTPM.currentTrkAna.offlEtaBins
84 qualityWP = flags.PhysVal.IDTPM.currentTrkAna.OfflineQualityWP
85
86
87
88 if qualityWP == "EFTracking" :
89 etaBins = [-1., 2., 2.6, 9999.]
90 minHitsVector = [9, 8, 7]
91 minPtVector = [900., 400., 400.]
92 maxD0Vector = [2., 2., 10.]
93 maxZ0Vector = [150., 150., 150.]
94 qualityWP = ""
95
96 kwargs_InDetTrackSelectionTool = {}
97
98 if flags.PhysVal.IDTPM.currentTrkAna.offlMinPt!=-9999.:
99 kwargs_InDetTrackSelectionTool.setdefault( "minPt", flags.PhysVal.IDTPM.currentTrkAna.offlMinPt )
100 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsEta!=-9999.:
101 kwargs_InDetTrackSelectionTool.setdefault( "maxAbsEta", flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsEta )
102 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxZ0SinTheta!=-9999.:
103 kwargs_InDetTrackSelectionTool.setdefault( "maxZ0SinTheta", flags.PhysVal.IDTPM.currentTrkAna.offlMaxZ0SinTheta )
104 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxZ0!=-9999.:
105 kwargs_InDetTrackSelectionTool.setdefault( "maxZ0", flags.PhysVal.IDTPM.currentTrkAna.offlMaxZ0 )
106 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxD0!=-9999.:
107 kwargs_InDetTrackSelectionTool.setdefault( "maxD0", flags.PhysVal.IDTPM.currentTrkAna.offlMaxD0 )
108 if flags.PhysVal.IDTPM.currentTrkAna.offlMinNInnermostLayerHits!=-9999.:
109 kwargs_InDetTrackSelectionTool.setdefault( "minNInnermostLayerHits", flags.PhysVal.IDTPM.currentTrkAna.offlMinNInnermostLayerHits )
110 if flags.PhysVal.IDTPM.currentTrkAna.offlMinNBothInnermostLayersHits!=-9999.:
111 kwargs_InDetTrackSelectionTool.setdefault( "minNBothInnermostLayersHits", flags.PhysVal.IDTPM.currentTrkAna.offlMinNBothInnermostLayersHits )
112 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNInnermostLayerSharedHits!=-9999.:
113 kwargs_InDetTrackSelectionTool.setdefault( "maxNInnermostLayerSharedHits", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNInnermostLayerSharedHits )
114 if flags.PhysVal.IDTPM.currentTrkAna.offlMinNSiHits!=-9999.:
115 kwargs_InDetTrackSelectionTool.setdefault( "minNSiHits", flags.PhysVal.IDTPM.currentTrkAna.offlMinNSiHits )
116 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSiSharedHits!=-9999.:
117 kwargs_InDetTrackSelectionTool.setdefault( "maxNSiSharedHits", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSiSharedHits )
118 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSiHoles!=-9999.:
119 kwargs_InDetTrackSelectionTool.setdefault( "maxNSiHoles", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSiHoles )
120 if flags.PhysVal.IDTPM.currentTrkAna.offlMinNPixelHits!=-9999.:
121 kwargs_InDetTrackSelectionTool.setdefault( "minNPixelHits", flags.PhysVal.IDTPM.currentTrkAna.offlMinNPixelHits )
122 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNPixelSharedHits!=-9999.:
123 kwargs_InDetTrackSelectionTool.setdefault( "maxNPixelSharedHits", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNPixelSharedHits )
124 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNPixelHoles!=-9999.:
125 kwargs_InDetTrackSelectionTool.setdefault( "maxNPixelHoles", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNPixelHoles )
126 if flags.PhysVal.IDTPM.currentTrkAna.offlMinNSctHits!=-9999.:
127 kwargs_InDetTrackSelectionTool.setdefault( "minNSctHits", flags.PhysVal.IDTPM.currentTrkAna.offlMinNSctHits )
128 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSctSharedHits!=-9999.:
129 kwargs_InDetTrackSelectionTool.setdefault( "maxNSctSharedHits", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSctSharedHits )
130 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSctHoles!=-9999.:
131 kwargs_InDetTrackSelectionTool.setdefault( "maxNSctHoles", flags.PhysVal.IDTPM.currentTrkAna.offlMaxNSctHoles )
132 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxChiSq!=-9999.:
133 kwargs_InDetTrackSelectionTool.setdefault( "maxChiSq", flags.PhysVal.IDTPM.currentTrkAna.offlMaxChiSq )
134 if flags.PhysVal.IDTPM.currentTrkAna.offlMaxChiSqperNdf!=-9999.:
135 kwargs_InDetTrackSelectionTool.setdefault( "maxChiSqperNdf", flags.PhysVal.IDTPM.currentTrkAna.offlMaxChiSqperNdf )
136 if flags.PhysVal.IDTPM.currentTrkAna.offlMinProb!=-9999.:
137 kwargs_InDetTrackSelectionTool.setdefault( "minProb", flags.PhysVal.IDTPM.currentTrkAna.offlMinProb )
138 kwargs_InDetTrackSelectionTool.setdefault( "CutLevel", qualityWP )
139
140 from InDetConfig.InDetTrackSelectionToolConfig import InDetTrackSelectionToolCfg
141 offlineSelectionTool = acc.popToolsAndMerge( InDetTrackSelectionToolCfg( flags, **kwargs_InDetTrackSelectionTool) )
142
143 kwargs.setdefault( "offlineTool", offlineSelectionTool )
144 kwargs.setdefault( "maxPt", flags.PhysVal.IDTPM.currentTrkAna.offlMaxPt )
145 kwargs.setdefault( "minEta", flags.PhysVal.IDTPM.currentTrkAna.offlMinEta )
146 kwargs.setdefault( "minPhi", flags.PhysVal.IDTPM.currentTrkAna.offlMinPhi )
147 kwargs.setdefault( "maxPhi", flags.PhysVal.IDTPM.currentTrkAna.offlMaxPhi )
148 kwargs.setdefault( "minD0", flags.PhysVal.IDTPM.currentTrkAna.offlMinD0 )
149 kwargs.setdefault( "minZ0", flags.PhysVal.IDTPM.currentTrkAna.offlMinZ0 )
150 kwargs.setdefault( "minQoPT", flags.PhysVal.IDTPM.currentTrkAna.offlMinQoPT )
151 kwargs.setdefault( "maxQoPT", flags.PhysVal.IDTPM.currentTrkAna.offlMaxQoPT )
152 kwargs.setdefault( "minAbsEta", flags.PhysVal.IDTPM.currentTrkAna.offlMinAbsEta )
153 kwargs.setdefault( "minAbsPhi", flags.PhysVal.IDTPM.currentTrkAna.offlMinAbsPhi )
154 kwargs.setdefault( "maxAbsPhi", flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsPhi )
155 kwargs.setdefault( "minAbsD0", flags.PhysVal.IDTPM.currentTrkAna.offlMinAbsD0 )
156 kwargs.setdefault( "maxAbsD0", flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsD0 )
157 kwargs.setdefault( "minAbsZ0", flags.PhysVal.IDTPM.currentTrkAna.offlMinAbsZ0 )
158 kwargs.setdefault( "maxAbsZ0", flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsZ0 )
159 kwargs.setdefault( "minAbsQoPT", flags.PhysVal.IDTPM.currentTrkAna.offlMinAbsQoPT )
160 kwargs.setdefault( "maxAbsQoPT", flags.PhysVal.IDTPM.currentTrkAna.offlMaxAbsQoPT )
161 kwargs.setdefault( "etaBins", etaBins )
162 kwargs.setdefault( "minHitsVec", minHitsVector )
163 kwargs.setdefault( "minPtVec", minPtVector )
164 kwargs.setdefault( "maxD0Vec", maxD0Vector )
165 kwargs.setdefault( "maxZ0Vec", maxZ0Vector )
166
167 acc.setPrivateTools( CompFactory.IDTPM.OfflineTrackQualitySelectionTool( name, **kwargs ) )
168
169 return acc
170
171