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

make an MC recon file for 2019, 2021 spaced readout #1066

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
<?xml version="1.0" encoding="UTF-8"?>
<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
<!--
@brief Steering file that will be used for the reconstruction of 2019 MC.
@author <a href="mailto:[email protected]">Omar Moreno</a>
-->
<execute>
<driver name="EventMarkerDriver"/>
<!-- Ecal reconstruction drivers -->
<driver name="EcalRawConverter" />
<driver name="EcalTimeCorrection"/>
<driver name="ReconClusterer" />
<driver name="CopyCluster" />
<driver name="HodoRunningPedestal"/>
<driver name="HodoRawConverter"/>
<!-- SVT hit reconstruction drivers -->
<driver name="RawTrackerHitSensorSetup"/>
<driver name="RawTrackerHitFitterDriver" />
<driver name="TrackerHitDriver"/>

<driver name="KalmanPatRecDriver"/>
<driver name="TrackTruthMatching_KF" />
<driver name="ReconParticleDriver_Kalman" />
<driver name="KFOutputDriver"/>

<driver name="LCIOWriter"/>
<driver name="CleanupDriver"/>
</execute>
<drivers>
<driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver">
<eventInterval>1000</eventInterval>
</driver>
<!-- Ecal reconstruction drivers -->
<driver name="EcalRawConverter" type="org.hps.recon.ecal.EcalRawConverter2Driver"/>
<driver name="EcalTimeCorrection" type="org.hps.recon.ecal.EcalTimeCorrectionDriver"/>
<driver name="ReconClusterer" type="org.hps.recon.ecal.cluster.ReconClusterDriver">
<logLevel>WARNING</logLevel>
<outputClusterCollectionName>EcalClusters</outputClusterCollectionName>
<hitEnergyThreshold>0.030</hitEnergyThreshold>
Copy link
Contributor

Choose a reason for hiding this comment

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

Are these MC specific? We don't configure an energy threshold in our data config.

<minTime>-5.0</minTime>
</driver>
<driver name="CopyCluster" type="org.hps.recon.ecal.cluster.CopyClusterCollectionDriver">
<inputCollectionName>EcalClusters</inputCollectionName>
<outputCollectionName>EcalClustersCorr</outputCollectionName>
</driver>
<!-- Hodo reconstruction drivers -->
<driver name="HodoRunningPedestal"
type="org.hps.recon.ecal.HodoRunningPedestalDriver">
<inputCollectionName>HodoscopeReadoutHits</inputCollectionName>
<logLevel>CONFIG</logLevel>
<isMC>true</isMC>
</driver>
<driver name="HodoRawConverter" type="org.hps.recon.ecal.HodoRawConverterDriver">
<useRunningPedestal>true</useRunningPedestal>
<inputCollectionName>HodoscopeReadoutHits</inputCollectionName>
<tETAllChannels>8</tETAllChannels>
<logLevel>CONFIG</logLevel>
<isMC>true</isMC>
</driver>
<!-- SVT reconstruction drivers -->
<!-- Driver used to associate raw tracker hits to corresponding sensor. -->
<driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup">
<readoutCollections>SVTRawTrackerHits</readoutCollections>
</driver>
<!-- Fit the six raw samples and extract the amplitude and t0. -->
<driver name="RawTrackerHitFitterDriver" type="org.hps.recon.tracking.RawTrackerHitFitterDriver">
<chiSqrThresh>.5</chiSqrThresh>
<doOldDT>1</doOldDT>
<fitAlgorithm>Pileup</fitAlgorithm>
<fitTimeMinimizer>Migrad</fitTimeMinimizer>
<!--use this to correct for trigger time in MC instead of subtractTriggerTime-->
<useTimestamps>true</useTimestamps>
<!--offset to get times centered at 0 after timestamp correction-->
<!-- set to 0 for unspaced; ~112 for spaced -->
<tsCorrectionScale>120</tsCorrectionScale>
<!--correct for the SVT fit time offset...this should be on if <useTimingConditions> is turned on in readout-->
<correctTimeOffset>true</correctTimeOffset>
<!--per sensor shift...set false becasue it's not in readout sim-->
<correctT0Shift>true</correctT0Shift>
<!--use truth time for MC??? typically not used-->
<useTruthTime>false</useTruthTime>
<!--time of flight corrections-->
<subtractTOF>true</subtractTOF>
<!--set this false for MC, true for data-->
<subtractTriggerTime>false</subtractTriggerTime>
<!--per-strip timing correction from database...this should be on i f <useTimingConditions> is turned on in readout -->
<correctChanT0>false</correctChanT0>
<isMC>true</isMC>
<debug>false</debug>
</driver>
<!--
Use the fitted raw tracker hits and create 1D clusters using a
nearest neighbor algorithm.
-->
<driver name="TrackerHitDriver" type="org.hps.recon.tracking.DataTrackerHitDriver">
<neighborDeltaT>24.0</neighborDeltaT>
<neighborDeltaTSigma>3.0</neighborDeltaTSigma>
<saveMonsterEvents>false</saveMonsterEvents>
<thresholdMonsterEvents>400</thresholdMonsterEvents>
<clusterSeedThreshold>4.0</clusterSeedThreshold>
<doTimeError>1.0</doTimeError>
<clusterNeighborThreshold>3.0</clusterNeighborThreshold>
<clusterThreshold>3.0</clusterThreshold>
<doDeadFix>true</doDeadFix>
<doVSplit>true</doVSplit>
<debug>false</debug>
</driver>

<driver name="ReconParticleDriver_Kalman" type="org.hps.recon.particle.HpsReconParticleDriver" >
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need to enable makeCollerCols in MC? I guess it may not make sense for the majority of MC, but thought to check.

<ecalClusterCollectionName>EcalClustersCorr</ecalClusterCollectionName>
<trackCollectionNames>KalmanFullTracks</trackCollectionNames>
<matcherTrackCollectionName>KalmanFullTracks</matcherTrackCollectionName>
<trackClusterMatcherAlgo>TrackClusterMatcherMinDistance</trackClusterMatcherAlgo>
<unconstrainedV0CandidatesColName>UnconstrainedV0Candidates_KF</unconstrainedV0CandidatesColName>
<unconstrainedV0VerticesColName>UnconstrainedV0Vertices_KF</unconstrainedV0VerticesColName>
<beamConV0CandidatesColName>BeamspotConstrainedV0Candidates_KF</beamConV0CandidatesColName>
<beamConV0VerticesColName>BeamspotConstrainedV0Vertices_KF</beamConV0VerticesColName>
<targetConV0CandidatesColName>TargetConstrainedV0Candidates_KF</targetConV0CandidatesColName>
<targetConV0VerticesColName>TargetConstrainedV0Vertices_KF</targetConV0VerticesColName>
<finalStateParticlesColName>FinalStateParticles_KF</finalStateParticlesColName>
<otherElectronsColName>OtherElectrons_KF</otherElectronsColName>
<includeUnmatchedTracksInFSP>true</includeUnmatchedTracksInFSP>
<beamPositionX> 0.0 </beamPositionX>
<beamSigmaX> 0.3 </beamSigmaX>
<beamPositionY> 0.0 </beamPositionY>
<beamSigmaY> 0.02 </beamSigmaY>
<beamPositionZ> 0.0 </beamPositionZ>
<trackClusterTimeOffset>25</trackClusterTimeOffset>
Copy link
Contributor

Choose a reason for hiding this comment

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

Just to confirm that this and the line below should be different between data and MC. Our data is

<maxVertexClusterDt>40.0</maxVertexClusterDt>
<maxMatchDt>40</maxMatchDt>

<!-- <maxMatchDt>40</maxMatchDt> -->
<maxMatchDt>1000</maxMatchDt>
<useInternalVertexXYPositions>false</useInternalVertexXYPositions>
<minVertexChisqProb> 0.0 </minVertexChisqProb>
<maxVertexClusterDt>40.0</maxVertexClusterDt>
<maxElectronP>7.0</maxElectronP>
<maxVertexP>7.0</maxVertexP>
<requireClustersForV0>false</requireClustersForV0>
<useCorrectedClusterPositionsForMatching>false</useCorrectedClusterPositionsForMatching>
<applyClusterCorrections>true</applyClusterCorrections>
<useTrackPositionForClusterCorrection>true</useTrackPositionForClusterCorrection>
<isMC>true</isMC>
<debug>false</debug>
</driver>
<driver name="GBLRefitterDriver" type="org.hps.recon.tracking.gbl.GBLRefitterDriver"/>
<driver name="KalmanPatRecDriver" type="org.hps.recon.tracking.kalman.KalmanPatRecDriver">
<!-- <doDebugPlots>true</doDebugPlots> -->
<seedCompThr>0.05</seedCompThr>
<verbose>false</verbose>
</driver>
<driver name="TrackTruthMatching_KF" type="org.hps.analysis.MC.TrackToMCParticleRelationsDriver">
<trackCollectionName>KalmanFullTracks</trackCollectionName>
<kalmanTracks>true</kalmanTracks>
<debug>false</debug>
</driver>

<driver name="LCIOWriter" type="org.lcsim.util.loop.LCIODriver">
<outputFilePath>${outputFile}.slcio</outputFilePath>
</driver>
<driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver"/>

<driver name="KFOutputDriver" type="org.hps.recon.tracking.kalman.KFOutputDriver">
<outputPlotsFilename>${outputFile}.root</outputPlotsFilename>
Copy link
Contributor

Choose a reason for hiding this comment

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

Are we planning to save this output? I wonder whether we should do the same for data. Might be nice to have this.

By the way, did you ever merge the KFOutputDriver into hps-java? I think it's private code you have locally only?

<debug>false</debug>
<bsZ>0.0</bsZ>
<!--<trackCollectionName>GBLTracks</trackCollectionName> -->
<trackCollectionName>KalmanFullTracks</trackCollectionName>
<minMom>0.1</minMom>
<maxMom>4.8</maxMom>
<chi2Cut>9999</chi2Cut>
<doKFresiduals>true</doKFresiduals>
<useParticles>true</useParticles>
</driver>


</drivers>
</lcsim>
Loading