Skip to content

Commit b9ee85f

Browse files
committed
adding lowp MC steering file
1 parent 18827f6 commit b9ee85f

1 file changed

Lines changed: 285 additions & 0 deletions

File tree

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,285 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
3+
<!--
4+
Steering file for pass-5 2021 reconstruction on MC readout data
5+
created: 12/18/2025
6+
@author Matthew Gignac <mgignac@slac.stanford.edu>, Sarah Gaiser <sgaiser@slac.stanford.edu>
7+
-->
8+
<execute>
9+
10+
<driver name="EventMarkerDriver"/>
11+
12+
<!-- Ecal reconstruction drivers -->
13+
<driver name="EcalRawConverter" />
14+
<driver name="EcalTimeCorrection"/>
15+
<driver name="ReconClusterer" />
16+
<driver name="CopyCluster" />
17+
18+
<!-- Hodoscope drivers -->
19+
<driver name="HodoRunningPedestal"/>
20+
<driver name="HodoRawConverter"/>
21+
22+
<!-- SVT reconstruction drivers -->
23+
<driver name="RawTrackerHitSensorSetup"/>
24+
<driver name="RawTrackerHitFitterDriver" />
25+
<driver name="RawHitTimeSmearer"/>
26+
<driver name="TrackerHitDriver"/>
27+
<driver name="StripHitKiller"/>
28+
29+
30+
<driver name="StripHitNHitsSmearer"/>
31+
32+
33+
<driver name="KalmanPatRecDriver"/>
34+
<driver name="TrackTimeSmearer"/>
35+
<driver name="TrackTruthMatching_KF"/>
36+
<driver name="ReconParticleDriver_Kalman" />
37+
38+
39+
40+
<!-- Event filtering -->
41+
<driver name="LCIOWriter"/>
42+
<driver name="AidaSaveDriver"/>
43+
<driver name="CleanupDriver"/>
44+
45+
</execute>
46+
<drivers>
47+
<driver name="SVTHitEfficiency" type="org.hps.recon.tracking.kalman.SvtHitEfficiencyKalman">
48+
<maxLayer>14</maxLayer>
49+
<useTrkTimeCut>false</useTrkTimeCut>
50+
<!--<trkTimeCut>10.0</trkTimeCut> -->
51+
<!-- <trkTimeMean>15.0</trkTimeMean> -->
52+
<debug>false</debug>
53+
</driver>
54+
<driver name="StripHitKiller" type="org.hps.recon.tracking.StripHitKiller">
55+
<ratioFiles>pass5v9run14272_L1b_axial_hole.txt pass5v9run14272_L1b_stereo_hole.txt pass5v9run14272_L1t_axial_hole.txt pass5v9run14272_L1t_stereo_hole.txt pass5v9run14272_L2b_axial_hole.txt pass5v9run14272_L2b_stereo_hole.txt pass5v9run14272_L2t_axial_hole.txt pass5v9run14272_L2t_stereo_hole.txt</ratioFiles>
56+
<debug>false</debug>
57+
</driver>
58+
<driver name="RawHitTimeSmearer" type="org.hps.recon.tracking.RawHitTimeSmearer">
59+
<smearTimeFile>timeSmearing-2nsL4L7-4nsL1L3.txt</smearTimeFile>
60+
<debug>false</debug>
61+
</driver>
62+
<driver name="TrackTimeSmearer" type="org.hps.recon.tracking.TrackTimeSmearer">
63+
<debug>false</debug>
64+
<smearBottom>0.8</smearBottom>
65+
<smearTop>0.8</smearTop>
66+
</driver>
67+
<driver name="StripHitNHitsSmearer" type="org.hps.recon.tracking.StripHitNHitsSmearer">
68+
<smearPositionFile>posSmearing_pass5_v9.txt</smearPositionFile>
69+
<debug>false</debug>
70+
</driver>
71+
<driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver">
72+
<eventInterval>1000</eventInterval>
73+
</driver>
74+
<driver name="HodoRunningPedestal" type="org.hps.recon.ecal.HodoRunningPedestalDriver">
75+
<inputCollectionName>HodoscopeReadoutHits</inputCollectionName>
76+
<logLevel>CONFIG</logLevel>
77+
<isMC>true</isMC>
78+
</driver>
79+
<driver name="HodoRawConverter" type="org.hps.recon.ecal.HodoRawConverterDriver">
80+
<inputCollectionName>HodoscopeReadoutHits</inputCollectionName>
81+
<tETAllChannels>8</tETAllChannels>
82+
<logLevel>CONFIG</logLevel>
83+
<isMC>true</isMC>
84+
</driver>
85+
86+
<!-- Ecal reconstruction drivers -->
87+
<driver name="EcalRawConverter" type="org.hps.recon.ecal.EcalRawConverter2Driver">
88+
</driver>
89+
<driver name="EcalTimeCorrection" type="org.hps.recon.ecal.EcalTimeCorrectionDriver">
90+
<additionalShift>13.3</additionalShift>
91+
</driver>
92+
<driver name="ReconClusterer" type="org.hps.recon.ecal.cluster.ReconClusterDriver">
93+
<logLevel>WARNING</logLevel>
94+
<outputClusterCollectionName>EcalClusters</outputClusterCollectionName>
95+
</driver>
96+
<driver name="CopyCluster" type="org.hps.recon.ecal.cluster.CopyClusterCollectionDriver">
97+
<inputCollectionName>EcalClusters</inputCollectionName>
98+
<outputCollectionName>EcalClustersCorr</outputCollectionName>
99+
</driver>
100+
<!-- SVT reconstruction drivers -->
101+
<driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup">
102+
<readoutCollections>SVTRawTrackerHits</readoutCollections>
103+
</driver>
104+
<driver name="RawTrackerHitFitterDriver" type="org.hps.recon.tracking.RawTrackerHitFitterDriver">
105+
<chiSqrThresh>.5</chiSqrThresh>
106+
<doOldDT>1</doOldDT>
107+
<fitAlgorithm>Pileup</fitAlgorithm>
108+
<fitTimeMinimizer>Migrad</fitTimeMinimizer>
109+
<useTimestamps>true</useTimestamps>
110+
<tsCorrectionScale>165</tsCorrectionScale>
111+
<correctTimeOffset>true</correctTimeOffset>
112+
<correctT0Shift>true</correctT0Shift>
113+
<useTruthTime>false</useTruthTime>
114+
<subtractTOF>true</subtractTOF>
115+
<subtractTriggerTime>false</subtractTriggerTime>
116+
<correctChanT0>false</correctChanT0>
117+
<isMC>true</isMC>
118+
<debug>false</debug>
119+
</driver>
120+
<driver name="TrackerHitDriver" type="org.hps.recon.tracking.DataTrackerHitDriver">
121+
<neighborDeltaT>24.0</neighborDeltaT>
122+
<neighborDeltaTSigma>3.0</neighborDeltaTSigma>
123+
<saveMonsterEvents>false</saveMonsterEvents>
124+
<thresholdMonsterEvents>400</thresholdMonsterEvents>
125+
<clusterSeedThreshold>4.0</clusterSeedThreshold>
126+
<doTimeError>1.0</doTimeError>
127+
<clusterNeighborThreshold>3.0</clusterNeighborThreshold>
128+
<clusterThreshold>3.0</clusterThreshold>
129+
<doDeadFix>true</doDeadFix>
130+
<doVSplit>true</doVSplit>
131+
<debug>false</debug>
132+
</driver>
133+
<driver name="KalmanPatRecDriver" type="org.hps.recon.tracking.kalman.KalmanPatRecDriver">
134+
<addResiduals>true</addResiduals>
135+
<addKinks>true</addKinks>
136+
<numPatRecIteration> 2 </numPatRecIteration>
137+
<numKalmanIteration> 1 </numKalmanIteration>
138+
139+
<!-- CHANGED: was 8.88 (pT > 113 MeV). 12.0 lowers the iteration-2 pT floor to
140+
~83 MeV, matching the geometric wall for short tracks. Iteration 1 remains
141+
capped at 1/pT = 4.0 (hardcoded in KalmanParams, not steerable). -->
142+
<maxPtInverse> 12.0 </maxPtInverse>
143+
144+
<maxD0> 55.0 </maxD0> <!-- was 39.25; displaced-vertex envelope -->
145+
<maxZ0> 20.0 </maxZ0> <!-- was 8.38; displaced-vertex envelope -->
146+
<maxChi2> 11.546843987796496 </maxChi2>
147+
148+
<!-- NEW: iteration-1 seed-cut overrides (require the patched KalmanParams /
149+
KalmanPatRecDriver with the *Iter1 setters). Defaults if omitted:
150+
maxZ0Iter1 3 mm, maxD0Iter1 15 mm, maxTanLambdaIter1 0.104, maxPtInverseIter1 4.0.
151+
These pointing cuts structurally demote displaced-vertex daughters to
152+
iteration 2; first A/B step loosens them ~2x. -->
153+
154+
<!-- unchanged for iteration 1: keeps the clean/stiff first pass as-is -->
155+
<minHitsTopIter1> 9 </minHitsTopIter1>
156+
<minHitsBotIter1> 9 </minHitsBotIter1>
157+
<!-- CHANGED: was 8. Soft tracks curl away before the outer pairs;
158+
7 hits = 3.5 layer-pairs, reachable down to pT ~ 70 to 90 MeV. -->
159+
<minHitsTopIter2> 6 </minHitsTopIter2>
160+
<minHitsBotIter2> 6 </minHitsBotIter2>
161+
162+
<minStereo> 3 </minStereo>
163+
<maxSharedHits> 3 </maxSharedHits> <!-- was 2 -->
164+
<maxTimeRange> 40.0 </maxTimeRange>
165+
<maxTanLambda> 5.0 </maxTanLambda>
166+
<maxChi2Inc> 12.320066328390354 </maxChi2Inc>
167+
<minChi2IncBad> 9.206482863412027 </minChi2IncBad>
168+
169+
<!-- CHANGED (experimental): was 5.86. Lets soft seeds survive hit contact with
170+
already-found stiff tracks. Revert first if the fake rate grows. -->
171+
<maxChi2IncShare> 8.0 </maxChi2IncShare>
172+
173+
<mxChi2Vtx> 5.508828061070076 </mxChi2Vtx>
174+
<numEvtPlots> 5 </numEvtPlots>
175+
<doDebugPlots> false </doDebugPlots>
176+
177+
<!-- CHANGED: was 400. Events over the limit are skipped entirely, and busy
178+
events are where soft tracks live. Costs CPU; monitor the skip fraction. -->
179+
<siHitsLimit> 400 </siHitsLimit>
180+
181+
<seedCompThr> 0.3473319986601534 </seedCompThr>
182+
<useBeamPositionConditions>true</useBeamPositionConditions>
183+
<beamSigmaX>0.055</beamSigmaX>
184+
<beamSigmaY>0.045</beamSigmaY>
185+
<useFixedVertexZPosition>true</useFixedVertexZPosition>
186+
<beamPositionZ>-1.1</beamPositionZ>
187+
188+
<!-- REMOVED lowPhThresh: the driver setter never forwards it to KalmanParams,
189+
so the old value (7.198) was silently ignored; patRec has always used the
190+
internal default 0.25. Reinstate only after fixing the plumbing
191+
(valid range is [0,1]). -->
192+
193+
<!-- Seed strategies. CAUTION: supplying ANY seedStrategy element clears the
194+
built-in defaults, so the full default set (20) is re-listed here in its
195+
original order, followed by 3 new inner-layer strategies (indices 20 to 22).
196+
Order matters: iteration 1 uses the first numStrategyIter1 entries only.
197+
Format: 7 chars = layer-pairs L1..L7; B=axial+stereo, A=axial only,
198+
S=stereo only, 0=unused; total hits must equal 5 (B counts as 2). -->
199+
<seedStrategy>000BBS0</seedStrategy>
200+
<seedStrategy>00BBS00</seedStrategy>
201+
<seedStrategy>00ASBS0</seedStrategy>
202+
<seedStrategy>00ABSS0</seedStrategy>
203+
<seedStrategy>0A0SBS0</seedStrategy>
204+
<seedStrategy>00B0BS0</seedStrategy>
205+
<seedStrategy>00SBSA0</seedStrategy>
206+
<seedStrategy>00SBB00</seedStrategy>
207+
<seedStrategy>00SBAS0</seedStrategy>
208+
<seedStrategy>0SA0BS0</seedStrategy>
209+
<seedStrategy>0000SBB</seedStrategy>
210+
<seedStrategy>000SABS</seedStrategy>
211+
<seedStrategy>0BBS000</seedStrategy>
212+
<seedStrategy>0SBB000</seedStrategy>
213+
<seedStrategy>0000BBS</seedStrategy>
214+
<seedStrategy>000SSBA</seedStrategy>
215+
<seedStrategy>000BSSA</seedStrategy>
216+
<seedStrategy>ABSS000</seedStrategy>
217+
<seedStrategy>SBB0000</seedStrategy>
218+
<seedStrategy>SABS000</seedStrategy>
219+
<!-- NEW inner-layer strategies (iteration 2 only, via numStrategyIter1 below):
220+
seed tracks that curl away or exit vertically before layer-pair 4. -->
221+
<seedStrategy>BBS0000</seedStrategy>
222+
<seedStrategy>BSB0000</seedStrategy>
223+
<seedStrategy>0BSB000</seedStrategy>
224+
225+
<!-- Pins iteration 1 to the first 17 strategies, identical to default behavior.
226+
Without this, ALL strategies listed above would run in iteration 1. -->
227+
<numStrategyIter1> 17 </numStrategyIter1> <!-- T1: iteration 1 stock; inner strategies run in iteration 2 only -->
228+
229+
<verbose> false </verbose>
230+
</driver>
231+
<driver name="TrackTruthMatching_KF" type="org.hps.analysis.MC.TrackToMCParticleRelationsDriver">
232+
<trackCollectionName>KalmanFullTracks</trackCollectionName>
233+
<kalmanTracks>true</kalmanTracks>
234+
<debug>false</debug>
235+
</driver>
236+
<driver name="ReconParticleDriver_Kalman" type="org.hps.recon.particle.HpsReconParticleDriver" >
237+
<ecalClusterCollectionName>EcalClustersCorr</ecalClusterCollectionName>
238+
<trackCollectionNames>KalmanFullTracks</trackCollectionNames>
239+
<matcherTrackCollectionName>KalmanFullTracks</matcherTrackCollectionName>
240+
<trackClusterMatcherAlgo>TrackClusterMatcherMinDistance</trackClusterMatcherAlgo>
241+
<unconstrainedV0CandidatesColName>UnconstrainedV0Candidates_KF</unconstrainedV0CandidatesColName>
242+
<unconstrainedV0VerticesColName>UnconstrainedV0Vertices_KF</unconstrainedV0VerticesColName>
243+
<beamConV0CandidatesColName>BeamspotConstrainedV0Candidates_KF</beamConV0CandidatesColName>
244+
<beamConV0VerticesColName>BeamspotConstrainedV0Vertices_KF</beamConV0VerticesColName>
245+
<targetConV0CandidatesColName>TargetConstrainedV0Candidates_KF</targetConV0CandidatesColName>
246+
<targetConV0VerticesColName>TargetConstrainedV0Vertices_KF</targetConV0VerticesColName>
247+
<finalStateParticlesColName>FinalStateParticles_KF</finalStateParticlesColName>
248+
<otherElectronsColName>OtherElectrons_KF</otherElectronsColName>
249+
<includeUnmatchedTracksInFSP>true</includeUnmatchedTracksInFSP>
250+
<useInternalVertexXYPositions>false</useInternalVertexXYPositions>
251+
<useBeamPositionConditions>true</useBeamPositionConditions>
252+
<requireClustersForV0>false</requireClustersForV0>
253+
<beamSigmaX>0.055</beamSigmaX>
254+
<beamSigmaY>0.045</beamSigmaY>
255+
<beamPositionZ>-1.1</beamPositionZ>
256+
<maxElectronP>7.0</maxElectronP>
257+
<maxVertexP>7.0</maxVertexP>
258+
<minVertexChisqProb>0.0</minVertexChisqProb>
259+
<maxVertexClusterDt>40.0</maxVertexClusterDt>
260+
<maxMatchDt>40</maxMatchDt>
261+
<trackClusterTimeOffset>40</trackClusterTimeOffset>
262+
<useCorrectedClusterPositionsForMatching>false</useCorrectedClusterPositionsForMatching>
263+
<applyClusterCorrections>true</applyClusterCorrections>
264+
<useTrackPositionForClusterCorrection>true</useTrackPositionForClusterCorrection>
265+
<debug>false</debug>
266+
<isMC>true</isMC>
267+
<makeMollerCols>true</makeMollerCols>
268+
<unconstrainedMollerCandidatesColName>UnconstrainedMollerCandidates_KF</unconstrainedMollerCandidatesColName>
269+
<unconstrainedMollerVerticesColName>UnconstrainedMollerVertices_KF</unconstrainedMollerVerticesColName>
270+
<beamConMollerCandidatesColName>BeamspotConstrainedMollerCandidates_KF</beamConMollerCandidatesColName>
271+
<beamConMollerVerticesColName>BeamspotConstrainedMollerVertices_KF</beamConMollerVerticesColName>
272+
<targetConMollerCandidatesColName>TargetConstrainedMollerCandidates_KF</targetConMollerCandidatesColName>
273+
<targetConMollerVerticesColName>TargetConstrainedMollerVertices_KF</targetConMollerVerticesColName>
274+
</driver>
275+
<driver name="AidaSaveDriver" type="org.lcsim.job.AidaSaveDriver">
276+
<outputFileName>${outputFile}_hit_eff.root</outputFileName>
277+
</driver>
278+
<driver name="LCIOWriter" type="org.lcsim.util.loop.LCIODriver">
279+
<outputFilePath>${outputFile}.slcio</outputFilePath>
280+
</driver>
281+
<driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver"/>
282+
283+
</drivers>
284+
</lcsim>
285+

0 commit comments

Comments
 (0)