-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1043 from JeffersonLab/saveRory
All the Hit Reconstruction Optimizations Rory has worked on
- Loading branch information
Showing
11 changed files
with
1,098 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | ||
<parent> | ||
<artifactId>hps-java</artifactId> | ||
<groupId>org.hps</groupId> | ||
<version>5.2.2-SNAPSHOT</version> | ||
</parent> | ||
<modelVersion>4.0.0</modelVersion> | ||
<artifactId>hps-detector-model</artifactId> | ||
<name>detector-model</name> | ||
<description>detector modeling code based on lcsim framework</description> | ||
<build> | ||
<plugins> | ||
<plugin> | ||
<artifactId>maven-shade-plugin</artifactId> | ||
<executions> | ||
<execution> | ||
<phase>package</phase> | ||
<goals> | ||
<goal>shade</goal> | ||
</goals> | ||
<configuration> | ||
<shadedArtifactAttached>true</shadedArtifactAttached> | ||
<shadedClassifierName>bin</shadedClassifierName> | ||
<transformers> | ||
<transformer /> | ||
<transformer> | ||
<mainClass>org.hps.detector.DetectorConverter</mainClass> | ||
</transformer> | ||
</transformers> | ||
<artifactSet> | ||
<excludes> | ||
<exclude>hep.testdata.aida:*</exclude> | ||
</excludes> | ||
</artifactSet> | ||
</configuration> | ||
</execution> | ||
</executions> | ||
</plugin> | ||
<plugin> | ||
<artifactId>maven-surefire-plugin</artifactId> | ||
<configuration> | ||
<excludes> | ||
<exclude>**/*Test.java</exclude> | ||
</excludes> | ||
</configuration> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
<dependencies> | ||
<dependency> | ||
<groupId>junit</groupId> | ||
<artifactId>junit</artifactId> | ||
<version>4.13.1</version> | ||
<scope>test</scope> | ||
<exclusions> | ||
<exclusion> | ||
<artifactId>hamcrest-core</artifactId> | ||
<groupId>org.hamcrest</groupId> | ||
</exclusion> | ||
</exclusions> | ||
</dependency> | ||
</dependencies> | ||
</project> |
42 changes: 42 additions & 0 deletions
42
recon/src/main/java/org/hps/recon/filtering/UnbiasedTriggerFilterDriver.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package org.hps.recon.filtering; | ||
|
||
import org.lcsim.event.EventHeader; | ||
import org.lcsim.event.GenericObject; | ||
import org.lcsim.util.Driver; | ||
import org.hps.record.epics.EpicsData; | ||
import org.hps.record.scalers.ScalerData; | ||
import org.hps.record.triggerbank.AbstractIntData; | ||
import org.hps.record.triggerbank.TSData2019; | ||
|
||
/** | ||
* Keep pulser triggered events. Also keep EPICS events, and Scaler events. Drop all other events. | ||
*/ | ||
public class UnbiasedTriggerFilterDriver extends Driver { | ||
|
||
public void process(EventHeader event) { | ||
|
||
// 1. keep all events with EPICS data (could also use event tag = 31): | ||
if (EpicsData.read(event) != null) | ||
return; | ||
|
||
// 2. keep all events with Scaler data: | ||
if (ScalerData.read(event) != null) | ||
return; | ||
|
||
// 3. drop event if it doesn't have a TriggerBank | ||
if (!event.hasCollection(GenericObject.class, "TSBank")) | ||
throw new Driver.NextEventException(); | ||
|
||
// 4. keep event if it was from a Pulser trigger: | ||
for (GenericObject gob : event.get(GenericObject.class, "TSBank")) { | ||
if (!(AbstractIntData.getTag(gob) == TSData2019.BANK_TAG)) | ||
continue; | ||
TSData2019 tsd = new TSData2019(gob); | ||
if (tsd.isPulserTrigger() || tsd.isFaradayCupTrigger()) | ||
return; | ||
} | ||
|
||
// 5. Else, drop event: | ||
throw new Driver.NextEventException(); | ||
} | ||
} |
156 changes: 156 additions & 0 deletions
156
...ng-files/src/main/resources/org/hps/steering/analysis/PhysicsRun2019SVTHitEffKalman.lcsim
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,156 @@ | ||
<?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"> | ||
<!-- | ||
Steering file for running 2019 Reconstruction on readout data (LCIO or EVIO) | ||
created: 9/24/19 | ||
@author Norman Graf <[email protected]> | ||
@author PF <[email protected]> | ||
--> | ||
<execute> | ||
<!-- Enable the following if re-processing lcio files --> | ||
<!-- <driver name="PreCleanupDriver"/> --> | ||
<!-- Event Reconstruction --> | ||
<!-- Skip events with known bad conditions --> | ||
<!-- Not yet defined for 2019 data --> | ||
<!-- <driver name="EventFlagFilter"/> --> | ||
<!--RF driver--> | ||
<driver name="RfFitter"/> | ||
<!-- Ecal reconstruction drivers --> | ||
<driver name="EcalRunningPedestal"/> | ||
<driver name="EcalRawConverter" /> | ||
<driver name="EcalTimeCorrection"/> | ||
<driver name="ReconClusterer" /> | ||
<driver name="CopyCluster" /> | ||
|
||
<!-- Hodoscope drivers --> | ||
<driver name="HodoRunningPedestal"/> | ||
<driver name="HodoRawConverter"/> | ||
|
||
<!-- SVT reconstruction drivers --> | ||
<driver name="RawTrackerHitSensorSetup"/> | ||
<driver name="RawTrackerHitFitterDriver" /> | ||
<driver name="TrackerHitDriver"/> | ||
|
||
<!-- | ||
<driver name="HelicalTrackHitDriver"/> | ||
--> | ||
|
||
<driver name="KalmanPatRecDriver"/> | ||
<driver name="ReconParticleDriver_Kalman" /> | ||
<driver name="SVTHitEfficiency"/> | ||
<!--<driver name="LCIOWriter"/>--> | ||
<!-- Toggle between saving in aida or root format --> | ||
<driver name="AidaSaveDriver"/> | ||
<driver name="CleanupDriver"/> | ||
</execute> | ||
<drivers> | ||
<driver name="SVTHitEfficiency" type="org.hps.recon.tracking.kalman.SvtHitEfficiencyKalman"/> | ||
<driver name="HodoRunningPedestal" type="org.hps.recon.ecal.HodoRunningPedestalDriver"/> | ||
<driver name="HodoRawConverter" type="org.hps.recon.ecal.HodoRawConverterDriver"/> | ||
|
||
<driver name="RfFitter" type="org.hps.evio.RfFitterDriver"/> | ||
|
||
<!-- 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"> | ||
<!-- ecalCollectionName>EcalCalHits</ecalCollectionName --> | ||
<!-- fixShapeParameter>true</fixShapeParameter --> | ||
<!-- globalFixedPulseWidth>2.4</globalFixedPulseWidth --> | ||
</driver> | ||
<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> | ||
</driver> | ||
<driver name="CopyCluster" type="org.hps.recon.ecal.cluster.CopyClusterCollectionDriver"> | ||
<inputCollectionName>EcalClusters</inputCollectionName> | ||
<outputCollectionName>EcalClustersCorr</outputCollectionName> | ||
</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> | ||
<useTimestamps>false</useTimestamps> | ||
<correctTimeOffset>true</correctTimeOffset> | ||
<correctT0Shift>false</correctT0Shift> | ||
<useTruthTime>false</useTruthTime> | ||
<subtractTOF>true</subtractTOF> | ||
<subtractTriggerTime>true</subtractTriggerTime> | ||
<correctChanT0>false</correctChanT0> | ||
<debug>false</debug> | ||
</driver> | ||
|
||
<driver name="TrackerHitDriver" type="org.hps.recon.tracking.DataTrackerHitDriver"> | ||
<neighborDeltaT>8.0</neighborDeltaT> | ||
<saveMonsterEvents>true</saveMonsterEvents> | ||
<thresholdMonsterEvents>200</thresholdMonsterEvents> | ||
<debug>false</debug> | ||
</driver> | ||
|
||
<driver name="HelicalTrackHitDriver" type="org.hps.recon.tracking.HelicalTrackHitDriver"> | ||
<debug>false</debug> | ||
<clusterTimeCut>40.0</clusterTimeCut> | ||
<clusterAmplitudeCut>400.0</clusterAmplitudeCut> | ||
<maxDt>20.0</maxDt> | ||
<saveAxialHits>false</saveAxialHits> | ||
</driver> | ||
|
||
<driver name="KalmanPatRecDriver" type="org.hps.recon.tracking.kalman.KalmanPatRecDriver"> | ||
<doDebugPlots>false</doDebugPlots> | ||
<!-- <siHitsLimit>50</siHitsLimit> --> | ||
<seedCompThr>0.05</seedCompThr> | ||
<verbose>false</verbose> | ||
<minHits>9</minHits> | ||
</driver> | ||
|
||
<driver name="ReconParticleDriver_Kalman" type="org.hps.recon.particle.HpsReconParticleDriver" > | ||
<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> | ||
<includeUnmatchedTracksInFSP>true</includeUnmatchedTracksInFSP> | ||
<useInternalVertexXYPositions>false</useInternalVertexXYPositions> | ||
<requireClustersForV0>false</requireClustersForV0> | ||
<beamPositionX>0.180</beamPositionX> | ||
<beamSigmaX>0.05</beamSigmaX> | ||
<beamPositionY>0.04</beamPositionY> | ||
<beamSigmaY>0.020</beamSigmaY> | ||
<beamPositionZ>-7.5</beamPositionZ> | ||
<maxElectronP>10.0</maxElectronP> | ||
<maxVertexP>7.0</maxVertexP> | ||
<minVertexChisqProb>0.0</minVertexChisqProb> | ||
<maxVertexClusterDt>40.0</maxVertexClusterDt> | ||
<maxMatchDt>40</maxMatchDt> | ||
<trackClusterTimeOffset>40</trackClusterTimeOffset> | ||
<useCorrectedClusterPositionsForMatching>false</useCorrectedClusterPositionsForMatching> | ||
<applyClusterCorrections>true</applyClusterCorrections> | ||
<useTrackPositionForClusterCorrection>true</useTrackPositionForClusterCorrection> | ||
<debug>false</debug> | ||
<makeMollerCols>false</makeMollerCols> | ||
</driver> | ||
|
||
<driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver"/> | ||
|
||
<driver name="LCIOWriter" type="org.lcsim.util.loop.LCIODriver"> | ||
<outputFilePath>${outputFile}.slcio</outputFilePath> | ||
</driver> | ||
<driver name="AidaSaveDriver" type="org.lcsim.job.AidaSaveDriver"> | ||
<outputFileName>${outputFile}.root</outputFileName> | ||
</driver> | ||
|
||
</drivers> | ||
</lcsim> | ||
|
Oops, something went wrong.