Skip to content
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.
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,205 @@
<?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 MC reconstruction of
the 2016 Engineering Run data including strip hit killing
and svt cluster position and time smearing.
@author <a href="mailto:omoreno1@ucsc.edu">Omar Moreno</a>
@author <a href="mailto:Norman.Graf@slac.stanford.edu">Norman Graf</a>
@author <a href="mailto:mgraham@slac.stanford.edu">Matt Graham</a>
-->
<execute>

<!--RF driver-->
<driver name="RfFitter"/>
<driver name="PreCleanupDriver"/>
<!-- Ecal reconstruction drivers -->
<driver name="EcalRunningPedestal"/>
<driver name="EcalRawConverter" />
<driver name="HitTimeSmear"/>
<driver name="ReconClusterer" />
<driver name="CopyCluster" />
<!-- SVT reconstruction drivers -->
<driver name="RawTrackerHitSensorSetup"/>
<driver name="RawTrackerHitFitterDriver" />
<driver name="RawHitTimeSmearer"/>
<driver name="TrackerHitDriver"/>
<driver name="StripHitKiller"/>
<driver name="StripHitSmearer"/>
<!-- KF tracking -->
<driver name="KalmanPatRecDriver"/>
<driver name="ReconParticleDriver_Kalman" />
<!-- <driver name="LCIOWriter"/> -->
<!-- uncomment the next 3 drivers to save some diagnostic plots -->
<!-- <driver name="KFTrackingReconPlots"/>-->
<driver name="KFOutputDriver"/>
<!-- <driver name="SVTHitEfficiency"/> -->
<!-- <driver name="AidaSaveDriver"/> -->
<driver name="CleanupDriver"/>
</execute>
<drivers>
<driver name="SVTHitEfficiency" type="org.hps.recon.tracking.kalman.SvtHitEfficiencyKalman">
<maxLayer>12</maxLayer>
<useTrkTimeCut>false</useTrkTimeCut>
<trkTimeCut>10.0</trkTimeCut>
<trkTimeMean>15.0</trkTimeMean>
<debug>false</debug>
</driver>

<driver name="RfFitter" type="org.hps.evio.RfFitterDriver"/>
<driver name="PreCleanupDriver" type="org.hps.analysis.dataquality.ReadoutCleanupDriver">
<collectionNames>EcalCalHits EcalClusters EcalClustersCorr FinalStateParticles
UnconstrainedMollerCandidates UnconstrainedMollerVertices UnconstrainedV0Candidates
UnconstrainedV0Vertices TargetConstrainedMollerCandidates TargetConstrainedMollerVertices
TargetConstrainedV0Candidates TargetConstrainedV0Vertices BeamspotConstrainedMollerCandidates
BeamspotConstrainedMollerVertices BeamspotConstrainedV0Candidates BeamspotConstrainedV0Vertices
GBLKinkData GBLKinkDataRelations MatchedToGBLTrackRelations HelicalTrackHits
HelicalTrackHitRelations MatchedTracks GBLTracks MatchedToGBLTrackRelations
RotatedHelicalTrackHits RotatedHelicalTrackHitRelations SVTFittedRawTrackerHits
SVTShapeFitParameters StripClusterer_SiTrackerHitStrip1D TrackData TrackDataRelations
TrackResiduals TrackResidualsRelations OtherElectrons UnconstrainedVcCandidates UnconstrainedVcVertices
KFTrackData KFTrackDataRelations KFGBLStripClusterData KFGBLStripClusterDataRelations SVTShapeFitParameters UnconstrainedVcCandidates_KF UnconstrainedVcVertices_KF
KalmanFullTracks UnconstrainedV0Candidates_KF TargetConstrainedV0Candidates_KF BeamspotConstrainedV0Candidates_KF UnconstrainedV0Vertices_KF TargetConstrainedV0Vertices_KF BeamspotConstrainedV0Vertices_KF
</collectionNames>
</driver>

<!-- Ecal reconstruction drivers -->
<driver name="EcalRunningPedestal" type="org.hps.recon.ecal.EcalRunningPedestalDriver">
<logLevel>CONFIG</logLevel>
</driver>

<!--<driver name="EcalRawConverter" type="org.hps.recon.ecal.EcalRawConverter2Driver">
</driver>-->

<driver name="EcalRawConverter" type="org.hps.recon.ecal.EcalRawConverterDriver">
<ecalCollectionName>EcalCalHits</ecalCollectionName>
<fixShapeParameter>true</fixShapeParameter>
<globalFixedPulseWidth>2.4</globalFixedPulseWidth>
</driver>

<driver name="HitTimeSmear" type="org.hps.recon.ecal.cluster.HitTMCSmearDriver">
</driver>

<driver name="ReconClusterer" type="org.hps.recon.ecal.cluster.ReconClusterDriver">
<logLevel>WARNING</logLevel>
<outputClusterCollectionName>EcalClusters</outputClusterCollectionName>
</driver>
<driver name="CopyCluster" type="org.hps.recon.ecal.cluster.CopyClusterCollectionDriver">
<inputCollectionName>EcalClusters</inputCollectionName>
<outputCollectionName>EcalClustersCorr</outputCollectionName>
</driver>

<driver name="StripHitKiller" type="org.hps.recon.tracking.StripHitKiller">
<!-- <ratioFiles>pass4b-KF-hps2016_L1b_axial_hole.txt pass4b-KF-hps2016_L1b_stereo_hole.txt pass4b-KF-hps2016_L1t_axial_hole.txt pass4b-KF-hps2016_L1t_stereo_hole.txt pass4b-KF-hps2016_L6b_axial_hole.txt pass4b-KF-hps2016_L6b_axial_slot.txt pass4b-KF-hps2016_L6b_stereo_hole.txt pass4b-KF-hps2016_L6b_stereo_slot.txt pass4b-KF-hps2016_L6t_axial_hole.txt pass4b-KF-hps2016_L6t_axial_slot.txt pass4b-KF-hps2016_L6t_stereo_hole.txt pass4b-KF-hps2016_L6t_stereo_slot.txt</ratioFiles> -->
<ratioFiles>pass4b-KF-hps2016_L1b_axial_hole.txt pass4b-KF-hps2016_L1b_stereo_hole.txt pass4b-KF-hps2016_L1t_axial_hole.txt pass4b-KF-hps2016_L1t_stereo_hole.txt pass4b-KF-hps2016_L2b_axial_hole.txt pass4b-KF-hps2016_L2b_stereo_hole.txt pass4b-KF-hps2016_L2t_axial_hole.txt pass4b-KF-hps2016_L2t_stereo_hole.txt</ratioFiles>
<debug>false</debug>
</driver>

<driver name="StripHitSmearer" type="org.hps.recon.tracking.StripHitSmearer">
<smearPositionFile>exampleSmearing-0pt008mm.txt</smearPositionFile>
<debug>false</debug>
</driver>

<driver name="RawHitTimeSmearer" type="org.hps.recon.tracking.RawHitTimeSmearer">
<smearTimeFile>timeSmearing-2ns-4nsL0.txt</smearTimeFile>
<debug>false</debug>
</driver>


<!-- SVT reconstruction drivers -->
<driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup">
<readoutCollections>SVTRawTrackerHits</readoutCollections>
</driver>
<driver name="RawTrackerHitFitterDriver" type="org.hps.recon.tracking.RawTrackerHitFitterDriver">
<fitAlgorithm>Pileup</fitAlgorithm>
<!--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-->
<tsCorrectionScale>171.</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>false</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>true</correctChanT0>
<debug>false</debug>
</driver>
<driver name="TrackerHitDriver" type="org.hps.recon.tracking.DataTrackerHitDriver">
<neighborDeltaT>24.0</neighborDeltaT>
</driver>

<driver name="KalmanPatRecDriver" type="org.hps.recon.tracking.kalman.KalmanPatRecDriver">
<addResiduals>true</addResiduals>
<numEvtPlots>40</numEvtPlots>
<targetPosition>-4.3</targetPosition>
<addTrackStateAtTarget>true</addTrackStateAtTarget>
<verbose>false</verbose>
</driver>
<!--
<driver name="KalmanPatRecDriver" type="org.hps.recon.tracking.kalman.KalmanPatRecDriver">
<verbose>false</verbose>
</driver>
-->
<driver name="ReconParticleDriver_Kalman" type="org.hps.recon.particle.HpsReconParticleDriver" >
<ecalClusterCollectionName>EcalClustersCorr</ecalClusterCollectionName>
<trackCollectionNames>KalmanFullTracks</trackCollectionNames>
<matcherTrackCollectionName>KalmanFullTracks</matcherTrackCollectionName>
<finalStateParticlesColName>FinalStateParticles_KF</finalStateParticlesColName>
<unconstrainedV0CandidatesColName>UnconstrainedV0Candidates_KF</unconstrainedV0CandidatesColName>
<unconstrainedV0VerticesColName>UnconstrainedV0Vertices_KF</unconstrainedV0VerticesColName>
<beamConV0CandidatesColName>BeamspotConstrainedV0Candidates_KF</beamConV0CandidatesColName>
<beamConV0VerticesColName>BeamspotConstrainedV0Vertices_KF</beamConV0VerticesColName>
<targetConV0CandidatesColName>TargetConstrainedV0Candidates_KF</targetConV0CandidatesColName>
<targetConV0VerticesColName>TargetConstrainedV0Vertices_KF</targetConV0VerticesColName>
<includeUnmatchedTracksInFSP>true</includeUnmatchedTracksInFSP>
<useInternalVertexXYPositions>false</useInternalVertexXYPositions>
<beamPositionX>-0.224</beamPositionX>
<beamSigmaX>0.275</beamSigmaX>
<beamPositionY>-0.08</beamPositionY>
<beamSigmaY>0.060</beamSigmaY>
<beamPositionZ>-4.3</beamPositionZ>
<maxElectronP>2.8</maxElectronP>
<maxVertexP>2.8</maxVertexP>
<minVertexChisqProb>0.0</minVertexChisqProb>
<maxVertexClusterDt>5.0</maxVertexClusterDt>
<maxMatchDt>10</maxMatchDt>
<trackClusterTimeOffset>36.8</trackClusterTimeOffset>
<isMC>true</isMC>
<trackClusterMatchPlots>true</trackClusterMatchPlots>
<trackClusterMatcherAlgo>TrackClusterMatcherMinDistance</trackClusterMatcherAlgo>
</driver>


<driver name="KFTrackingReconPlots" type="org.hps.monitoring.drivers.trackrecon.KFTrackingReconPlots"/>

<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="AidaSaveDriver" type="org.lcsim.job.AidaSaveDriver">
<outputFileName>${outputFile}.root</outputFileName>
</driver> -->

<driver name="KFOutputDriver" type="org.hps.recon.tracking.kalman.KFOutputDriver">
<outputPlotsFilename>${outputFile}.root</outputPlotsFilename>
<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>
Original file line number Diff line number Diff line change
Expand Up @@ -380,9 +380,9 @@ private void doEoPPlots(Track track, Cluster cluster) {

aidaKF.histogram2D(eopFolder+"EoP_vs_tanLambda").fill(tanL,eop);
aidaKF.histogram2D(eopFolder+"EoP_vs_phi").fill(phi,eop);
aidaKF.histogram3D(eopFolder+"EoP_vs_tanLambda_phi").fill(tanL,
phi,
eop);
// aidaKF.histogram3D(eopFolder+"EoP_vs_tanLambda_phi").fill(tanL,
// phi,
// eop);


if (TriggerModule.inFiducialRegion(cluster)) {
Expand All @@ -400,9 +400,9 @@ private void doEoPPlots(Track track, Cluster cluster) {

aidaKF.histogram2D(eopFolder+"EoP_vs_tanLambda_fid").fill(tanL,eop);
aidaKF.histogram2D(eopFolder+"EoP_vs_phi_fid").fill(phi,eop);
aidaKF.histogram3D(eopFolder+"EoP_vs_tanLambda_phi_fid").fill(tanL,
phi,
eop);
// aidaKF.histogram3D(eopFolder+"EoP_vs_tanLambda_phi_fid").fill(tanL,
//phi,
//eop);



Expand Down Expand Up @@ -534,10 +534,12 @@ private void FillKFTrackPlot(String str, String isTop, String charge, double val
aidaKF.histogram2D(str+isTop+charge).fill(valX,valY);
}

/*
private void FillKFTrackPlot(String str, String isTop, String charge, double valX, double valY, double valZ) {
aidaKF.histogram3D(str+isTop).fill(valX,valY,valZ);
aidaKF.histogram3D(str+isTop+charge).fill(valX,valY,valZ);
}
*/



Expand Down Expand Up @@ -598,7 +600,7 @@ private void doBasicKFtrack(Track trk, Map<HpsSiSensor, TrackerHit> sensorHits)
//Momentum maps
FillKFTrackPlot(trkpFolder+"p_vs_phi",isTop,charge,trackState.getPhi(),trackp);
FillKFTrackPlot(trkpFolder+"p_vs_tanLambda",isTop,charge,trackState.getTanLambda(),trackp);
FillKFTrackPlot(trkpFolder+"p_vs_phi_tanLambda",isTop,charge,trackState.getPhi(),trackState.getTanLambda(),trackp);
// FillKFTrackPlot(trkpFolder+"p_vs_phi_tanLambda",isTop,charge,trackState.getPhi(),trackState.getTanLambda(),trackp);

double tanLambda = trackState.getTanLambda();
double cosLambda = 1. / (Math.sqrt(1+tanLambda*tanLambda));
Expand Down Expand Up @@ -1034,11 +1036,11 @@ private void setupEoPPlots() {

aidaKF.histogram2D(eopFolder+"EoP_vs_tanLambda",200,-0.1,0.1,200,0,2);
aidaKF.histogram2D(eopFolder+"EoP_vs_phi",200,-0.2,0.2,200,0,2);
aidaKF.histogram3D(eopFolder+"EoP_vs_tanLambda_phi",200,-0.08,0.08,200,-0.2,0.2,200,0,2);
// aidaKF.histogram3D(eopFolder+"EoP_vs_tanLambda_phi",200,-0.08,0.08,200,-0.2,0.2,200,0,2);

aidaKF.histogram2D(eopFolder+"EoP_vs_tanLambda_fid",200,-0.1,0.1,200,0,2);
aidaKF.histogram2D(eopFolder+"EoP_vs_phi_fid",200,-0.2,0.2,200,0,2);
aidaKF.histogram3D(eopFolder+"EoP_vs_tanLambda_phi_fid",200,-0.08,0.08,200,-0.2,0.2,200,0,2);
// aidaKF.histogram3D(eopFolder+"EoP_vs_tanLambda_phi_fid",200,-0.08,0.08,200,-0.2,0.2,200,0,2);

}

Expand Down Expand Up @@ -1226,7 +1228,7 @@ private void setupPlots() {
aidaKF.histogram2D(trkpFolder+"p_Missing1Hit"+vol+charge,8,0,8,nbins_p,0.0,pmax);
aidaKF.histogram2D(trkpFolder+"p_vs_phi"+vol+charge, nbins_t,-0.3,0.3, nbins_p,0.,pmax);
aidaKF.histogram2D(trkpFolder+"p_vs_tanLambda"+vol+charge,nbins_t,-0.2,0.2,nbins_p,0.,pmax);
aidaKF.histogram3D(trkpFolder+"p_vs_phi_tanLambda"+vol+charge, 50,-0.3,0.3,50,-0.2,0.2,100,0.,pmax);
// aidaKF.histogram3D(trkpFolder+"p_vs_phi_tanLambda"+vol+charge, 50,-0.3,0.3,50,-0.2,0.2,100,0.,pmax);

aidaKF.histogram2D(trkpFolder+"pT_vs_phi"+vol+charge, nbins_t,-0.3,0.3, nbins_p,0.,pmax);
aidaKF.histogram2D(trkpFolder+"pT_vs_tanLambda"+vol+charge,nbins_t,-0.2,0.2,nbins_p,0.,pmax);
Expand Down
Loading
Loading