From ee44925f12a2b8e3616eeaa569fcb687a067a9b4 Mon Sep 17 00:00:00 2001 From: Matthew Gignac Date: Tue, 22 Jul 2025 20:43:18 -0700 Subject: [PATCH 1/4] first pass at Moller skimmer -- clone of V0skimmer atm --- .../org/hps/recon/skims/MollerSkimmer.java | 221 ++++++++++++++++-- .../skims/mollerskim_parameters_2019_ver0.txt | 9 + .../PhysicsRun2019_pass1_recon_skimmed.lcsim | 10 +- 3 files changed, 218 insertions(+), 22 deletions(-) create mode 100644 recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt diff --git a/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java b/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java index 96d3b3076..d945b925b 100644 --- a/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java +++ b/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java @@ -1,40 +1,225 @@ package org.hps.recon.skims; +import static java.lang.Math.abs; +import java.util.List; import java.util.Set; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; -import org.lcsim.event.EventHeader; +import hep.physics.vec.BasicHep3Vector; +import hep.physics.vec.Hep3Vector; +import org.lcsim.event.EventHeader; +import org.hps.recon.ecal.cluster.ClusterUtilities; +import org.hps.recon.particle.ReconParticleDriver; +import org.hps.recon.tracking.TrackData; +import org.hps.recon.tracking.TrackType; +import org.hps.record.epics.EpicsData; +import org.hps.record.scalers.ScalerData; +import org.lcsim.event.EventHeader; +import org.lcsim.event.ReconstructedParticle; +import org.lcsim.event.Vertex; public class MollerSkimmer extends Skimmer { - private String _MollerCandidateCollectionName = "UnconstrainedMollerCandidates"; - private double _clusterTimingCut = 20.0; // only used if _tight is true + //default parameters...ok for 2021 run + private String _V0CandidateCollectionName = "UnconstrainedV0Candidates_KF"; + private String _V0VertexCollectionName = "UnconstrainedV0Vertices_KF"; + //private double _clusterTimingCut = 20.0; // only used if _tight is true + private double _posClusterEnergy = 0.2; //GeV private double _v0Chi2Cut = 100.0; - private double _trackChi2Cut = 80.0; - private double _trackDtCut = 20.0; - private double _trackPMax = 0.9; - private double _v0PMax = 1.4; - private int _nHitsMin=10; - + private double _trackChi2Cut = 30.0; + private double _trackDtCut = 20.0; // the 2-track time difference + private double _trackPMax = 4.5; //GeV + private double _elePMax = 9999; //GeV + private double _v0PMax = 4.5; //GeV + private int _nHitsMin=9; + private boolean _reqClusterMatch=false; + private boolean _debug=true; + private int totalV0s=0; + private int totalV0sPassing=0; @Override public boolean passSelection(EventHeader event){ - System.out.println(this.getClass().getName()+":: in pass selection"); - boolean pass=true; + if(_debug) + System.out.println(this.getClass().getName()+":: in pass selection"); + incrementEventProcessed(); + if (!event.hasCollection(ReconstructedParticle.class, _V0CandidateCollectionName)) { + return false; + } + if (!event.hasCollection(Vertex.class, _V0VertexCollectionName)) { + return false; + } + + List V0Candidates = event.get(ReconstructedParticle.class, _V0CandidateCollectionName); + List V0Vertexes= event.get(Vertex.class, _V0VertexCollectionName); + if(V0Candidates.size() != V0Vertexes.size()) + System.out.println(this.getClass().getName()+":: Number of Vertexes = "+V0Vertexes.size()+ + "; number of candidates = "+V0Candidates.size()); + int nV0 = 0; // number of good V0 + totalV0s += V0Candidates.size(); + for (ReconstructedParticle v0 : V0Candidates) { + ReconstructedParticle eleTop = v0.getParticles().get(ReconParticleDriver.MOLLER_TOP); + ReconstructedParticle eleBot = v0.getParticles().get(ReconParticleDriver.MOLLER_BOT); + + if (v0.getStartVertex().getChi2() > _v0Chi2Cut) { + if(_debug)System.out.println(this.getClass().getName()+":: failed vertex chi2"); + continue; + } + if(eleTop.getTracks().get(0).getTrackerHits().size()<_nHitsMin + || eleBot.getTracks().get(0).getTrackerHits().size()<_nHitsMin){ + if(_debug)System.out.println(this.getClass().getName()+":: failed nHitsMin "+eleTop.getTracks().get(0).getTrackerHits().size()+" "+eleBot.getTracks().get(0).getTrackerHits().size()+" nHitsMin = "+_nHitsMin); + continue; + } + if ((eleTop.getTracks().get(0).getChi2()/eleTop.getTracks().get(0).getNDF()) > _trackChi2Cut + || (eleBot.getTracks().get(0).getChi2()/eleBot.getTracks().get(0).getNDF()) > _trackChi2Cut) { + if(_debug)System.out.println(this.getClass().getName()+":: failed track chi2"); + continue; + } + + float[] elePTD={TrackData.getTrackData(event, eleTop.getTracks().get(0)).getFloatVal(1), + TrackData.getTrackData(event, eleTop.getTracks().get(0)).getFloatVal(2), + TrackData.getTrackData(event, eleTop.getTracks().get(0)).getFloatVal(3)}; + float[] posPTD={TrackData.getTrackData(event, eleBot.getTracks().get(0)).getFloatVal(1), + TrackData.getTrackData(event, eleBot.getTracks().get(0)).getFloatVal(2), + TrackData.getTrackData(event, eleBot.getTracks().get(0)).getFloatVal(3)}; + double elePMag = (new BasicHep3Vector(elePTD)).magnitude(); + double posPMag = (new BasicHep3Vector(posPTD)).magnitude(); + if (elePMag > _trackPMax || posPMag > _trackPMax) { + if(_debug)System.out.println(this.getClass().getName()+":: failed track momentum"); + continue; + } + if(eleTop.getMomentum().magnitude() > _elePMax){ + if(_debug)System.out.println(this.getClass().getName()+":: failed eleTop momentum"); + continue; + } + if ((elePMag+posPMag) > _v0PMax) { + if(_debug)System.out.println(this.getClass().getName()+":: failed v0 momentum"); + continue; + } + double eleTime = TrackData.getTrackTime(TrackData.getTrackData(event, eleTop.getTracks().get(0))); + double posTime = TrackData.getTrackTime(TrackData.getTrackData(event, eleBot.getTracks().get(0))); + if (Math.abs(eleTime - posTime) > _trackDtCut) { + if(_debug)System.out.println(this.getClass().getName()+":: failed track dt"); + continue; + } + if (_reqClusterMatch) { // requires cluster matches and cluster time cut + // if (eleTop.getClusters().isEmpty() || eleBot.getClusters().isEmpty()) { + // continue; + //} + if (eleBot.getClusters().isEmpty()) { + continue; + } + // calorimeter cluster timing cut + // first CalorimeterHit in the list is the seed crystal + //double t1 = ClusterUtilities.getSeedHitTime(eleTop.getClusters().get(0)); + //double t2 = ClusterUtilities.getSeedHitTime(eleBot.getClusters().get(0)); + + //if (abs(t1 - t2) > _clusterTimingCut) { + // continue; + //} + if(eleBot.getClusters().get(0).getEnergy()<_posClusterEnergy) + continue; + } + nV0++; + totalV0sPassing++; + } + + if (nV0>0){ + incrementEventPassed(); + return true; + } else + return false; - return pass; + } + + public MollerSkimmer(String file) { + super(file, null); + } + public MollerSkimmer(String file, Set ignore) { + super(file, ignore); } - @Override public void setParameters(String parsFileName){ + String infilePreResDir = "/org/hps/recon/skims/"; + String infile=infilePreResDir+parsFileName; + InputStream inParamStream = this.getClass().getResourceAsStream(infile); + System.out.println(this.getClass().getName()+":: reading in per-sensor per-phase calibs from "+infile); + BufferedReader reader = new BufferedReader(new InputStreamReader(inParamStream)); + String line; + String delims = "[ ]+";// this will split strings between one or more spaces + try { + while ((line = reader.readLine()) != null) { + String[] tokens = line.split(delims); + String parName=tokens[0].replaceAll("\\s+",""); + System.out.println(this.getClass().getName()+":: parameter name = " + parName + "; value = " + tokens[1]); + putParam(parName,tokens[1]); + + } + } catch (IOException ex) { + System.out.println(this.getClass().getName()+":: died while reading parameters"); + return; + } return; } - public MollerSkimmer(String file) { - super(file, null); - // this(super.addFileExtension(file), null); + + private void putParam(String parName, String var){ + if(parName.equals("V0CandidateCollectionName")) + _V0CandidateCollectionName=var; + // else if(parName.equals("clusterTimingCut")) + // _clusterTimingCut=Double.parseDouble(var); + else if(parName.equals("v0Chi2Cut")) + _v0Chi2Cut=Double.parseDouble(var); + else if(parName.equals("trackChi2Cut")) + _trackChi2Cut=Double.parseDouble(var); + else if(parName.equals("trackDtCut")) + _trackDtCut=Double.parseDouble(var); + else if(parName.equals("trackPMax")) + _trackPMax=Double.parseDouble(var); + else if(parName.equals("elePMax")) + _elePMax=Double.parseDouble(var); + else if(parName.equals("v0PMax")) + _v0PMax=Double.parseDouble(var); + else if(parName.equals("nHitsMin")) + _nHitsMin=Integer.parseInt(var); + else if(parName.equals("reqClusterMatch")) + _reqClusterMatch=Boolean.parseBoolean(var); + else if(parName.equals("posClusterEnergy")) + _posClusterEnergy=Double.parseDouble(var); + else + System.out.println(this.getClass().getName()+":: couldn't find "+parName+"!"); } - public MollerSkimmer(String file, Set ignore) { - super(file, ignore); + + public int getTotalV0sPassing(){ + return totalV0sPassing; + } + + public int getTotalV0s(){ + return totalV0s; + } + + // public void setClusterTimeCut(double cutVal){ + // this._clusterTimingCut=cutVal; + // } + public void setV0Chi2Cut(double cutVal){ + this._v0Chi2Cut=cutVal; + } + public void setTrackChi2Cut(double cutVal){ + this._trackChi2Cut=cutVal; + } + public void setTrackDtCut(double cutVal){ + this._trackDtCut=cutVal; + } + public void setTrackPMax(double cutVal){ + this._trackPMax=cutVal; + } + public void setV0PMax(double cutVal){ + this._v0PMax=cutVal; + } + public void setNHitsMin(int cutVal){ + this._nHitsMin=cutVal; } } diff --git a/recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt b/recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt new file mode 100644 index 000000000..3afd02e2f --- /dev/null +++ b/recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt @@ -0,0 +1,9 @@ +V0CandidateCollectionName UnconstrainedV0Candidates_KF +trackChi2Cut 30.0 +nHitsMin 9 +v0Chi2Cut 30.0 +trackDtCut 20.0 +trackPMax 5.5 +v0PMax 5.5 +reqClusterMatch false +posClusterEnergy 0.2 diff --git a/steering-files/src/main/resources/org/hps/steering/recon/PhysicsRun2019_pass1_recon_skimmed.lcsim b/steering-files/src/main/resources/org/hps/steering/recon/PhysicsRun2019_pass1_recon_skimmed.lcsim index e0de8abe7..cc989fa95 100644 --- a/steering-files/src/main/resources/org/hps/steering/recon/PhysicsRun2019_pass1_recon_skimmed.lcsim +++ b/steering-files/src/main/resources/org/hps/steering/recon/PhysicsRun2019_pass1_recon_skimmed.lcsim @@ -43,7 +43,7 @@ - + @@ -183,11 +183,13 @@ true - false - false - false v0skim_parameters_2019_ver0.txt ${outputFile}_v0skim.slcio + true + mollerskim_parameters_2019_ver0.txt + ${outputFile}_mollerskim.slcio + false + false From 03946dd92fac00f0c1865f7792bb5167319c6eda Mon Sep 17 00:00:00 2001 From: Matthew Gignac Date: Wed, 23 Jul 2025 05:47:12 -0700 Subject: [PATCH 2/4] configure correct containers; print out in MultiSkimDriver --- .../org/hps/recon/skims/MollerSkimmer.java | 46 ++++++------------- .../org/hps/recon/skims/MultiSkimDriver.java | 16 +++++-- .../skims/mollerskim_parameters_2019_ver0.txt | 2 +- 3 files changed, 29 insertions(+), 35 deletions(-) diff --git a/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java b/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java index d945b925b..9a3e127f3 100644 --- a/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java +++ b/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java @@ -24,8 +24,8 @@ public class MollerSkimmer extends Skimmer { //default parameters...ok for 2021 run - private String _V0CandidateCollectionName = "UnconstrainedV0Candidates_KF"; - private String _V0VertexCollectionName = "UnconstrainedV0Vertices_KF"; + private String _V0CandidateCollectionName = "UnconstrainedMollerCandidates_KF"; + private String _V0VertexCollectionName = "UnconstrainedMollerVertices_KF"; //private double _clusterTimingCut = 20.0; // only used if _tight is true private double _posClusterEnergy = 0.2; //GeV private double _v0Chi2Cut = 100.0; @@ -37,10 +37,12 @@ public class MollerSkimmer extends Skimmer { private int _nHitsMin=9; private boolean _reqClusterMatch=false; private boolean _debug=true; - private int totalV0s=0; - private int totalV0sPassing=0; + private int totalMollers=0; + private int totalMollersPassing=0; + @Override public boolean passSelection(EventHeader event){ + if(_debug) System.out.println(this.getClass().getName()+":: in pass selection"); incrementEventProcessed(); @@ -57,8 +59,8 @@ public boolean passSelection(EventHeader event){ if(V0Candidates.size() != V0Vertexes.size()) System.out.println(this.getClass().getName()+":: Number of Vertexes = "+V0Vertexes.size()+ "; number of candidates = "+V0Candidates.size()); - int nV0 = 0; // number of good V0 - totalV0s += V0Candidates.size(); + int nMollers = 0; // number of good V0 + totalMollers += V0Candidates.size(); for (ReconstructedParticle v0 : V0Candidates) { ReconstructedParticle eleTop = v0.getParticles().get(ReconParticleDriver.MOLLER_TOP); ReconstructedParticle eleBot = v0.getParticles().get(ReconParticleDriver.MOLLER_BOT); @@ -104,29 +106,11 @@ public boolean passSelection(EventHeader event){ if(_debug)System.out.println(this.getClass().getName()+":: failed track dt"); continue; } - if (_reqClusterMatch) { // requires cluster matches and cluster time cut - // if (eleTop.getClusters().isEmpty() || eleBot.getClusters().isEmpty()) { - // continue; - //} - if (eleBot.getClusters().isEmpty()) { - continue; - } - // calorimeter cluster timing cut - // first CalorimeterHit in the list is the seed crystal - //double t1 = ClusterUtilities.getSeedHitTime(eleTop.getClusters().get(0)); - //double t2 = ClusterUtilities.getSeedHitTime(eleBot.getClusters().get(0)); - - //if (abs(t1 - t2) > _clusterTimingCut) { - // continue; - //} - if(eleBot.getClusters().get(0).getEnergy()<_posClusterEnergy) - continue; - } - nV0++; - totalV0sPassing++; + nMollers++; + totalMollersPassing++; } - if (nV0>0){ + if (nMollers>0){ incrementEventPassed(); return true; } else @@ -193,12 +177,12 @@ else if(parName.equals("posClusterEnergy")) System.out.println(this.getClass().getName()+":: couldn't find "+parName+"!"); } - public int getTotalV0sPassing(){ - return totalV0sPassing; + public int getTotalMollersPassing(){ + return totalMollersPassing; } - public int getTotalV0s(){ - return totalV0s; + public int getTotalMollers(){ + return totalMollers; } // public void setClusterTimeCut(double cutVal){ diff --git a/recon/src/main/java/org/hps/recon/skims/MultiSkimDriver.java b/recon/src/main/java/org/hps/recon/skims/MultiSkimDriver.java index d1c942707..1ef486d33 100644 --- a/recon/src/main/java/org/hps/recon/skims/MultiSkimDriver.java +++ b/recon/src/main/java/org/hps/recon/skims/MultiSkimDriver.java @@ -51,15 +51,25 @@ public class MultiSkimDriver extends Driver { List writeSkimList=new ArrayList(); public void endOfData() { + System.out.println(this.getClass().getSimpleName() + " Summary: "); + if(skimV0){ - System.out.println("V0 skim events processed = " + v0Skimmer.getNProcessed()); - System.out.println("events passed = " + v0Skimmer.getNPassed()); - System.out.println(" pass efficiency = " + v0Skimmer.getPassFraction()); + System.out.println("Events passed = " + v0Skimmer.getNPassed()); + System.out.println(" Pass efficiency = " + v0Skimmer.getPassFraction()); System.out.println("Total number of V0s processed = "+((V0Skimmer)v0Skimmer).getTotalV0s()); System.out.println("Total number of V0s passing skim = "+((V0Skimmer)v0Skimmer).getTotalV0sPassing()); } + + if(skimMoller){ + System.out.println("Moller skim events processed = " + mollerSkimmer.getNProcessed()); + System.out.println("Events passed = " + mollerSkimmer.getNPassed()); + System.out.println(" Pass efficiency = " + mollerSkimmer.getPassFraction()); + System.out.println("Total number of Mollers processed = "+((MollerSkimmer)mollerSkimmer).getTotalMollers()); + System.out.println("Total number of Mollers passing skim = "+((MollerSkimmer)mollerSkimmer).getTotalMollersPassing()); + } + } @Override diff --git a/recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt b/recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt index 3afd02e2f..1d6a7d130 100644 --- a/recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt +++ b/recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt @@ -1,4 +1,4 @@ -V0CandidateCollectionName UnconstrainedV0Candidates_KF +V0CandidateCollectionName UnconstrainedMollerCandidates_KF trackChi2Cut 30.0 nHitsMin 9 v0Chi2Cut 30.0 From cd31b5c8cfcc6a1b0eabd0491acf5e15703ea6dc Mon Sep 17 00:00:00 2001 From: Matthew Gignac Date: Wed, 23 Jul 2025 14:57:51 -0700 Subject: [PATCH 3/4] clean up code --- .../org/hps/recon/skims/MollerSkimmer.java | 87 +++++-------------- .../skims/mollerskim_parameters_2019_ver0.txt | 10 +-- 2 files changed, 24 insertions(+), 73 deletions(-) diff --git a/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java b/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java index 9a3e127f3..f11cc024d 100644 --- a/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java +++ b/recon/src/main/java/org/hps/recon/skims/MollerSkimmer.java @@ -23,20 +23,13 @@ import org.lcsim.event.Vertex; public class MollerSkimmer extends Skimmer { - //default parameters...ok for 2021 run - private String _V0CandidateCollectionName = "UnconstrainedMollerCandidates_KF"; - private String _V0VertexCollectionName = "UnconstrainedMollerVertices_KF"; - //private double _clusterTimingCut = 20.0; // only used if _tight is true - private double _posClusterEnergy = 0.2; //GeV - private double _v0Chi2Cut = 100.0; + private String _MollerCandidateCollectionName = "UnconstrainedMollerCandidates_KF"; + private String _MollerVertexCollectionName = "UnconstrainedMollerVertices_KF"; + private double _vtxChi2Cut = 100.0; private double _trackChi2Cut = 30.0; - private double _trackDtCut = 20.0; // the 2-track time difference - private double _trackPMax = 4.5; //GeV - private double _elePMax = 9999; //GeV - private double _v0PMax = 4.5; //GeV + private double _trackDtCut = 20.0; private int _nHitsMin=9; - private boolean _reqClusterMatch=false; - private boolean _debug=true; + private boolean _debug=false; private int totalMollers=0; private int totalMollersPassing=0; @@ -47,25 +40,28 @@ public boolean passSelection(EventHeader event){ System.out.println(this.getClass().getName()+":: in pass selection"); incrementEventProcessed(); - if (!event.hasCollection(ReconstructedParticle.class, _V0CandidateCollectionName)) { + if (!event.hasCollection(ReconstructedParticle.class, _MollerCandidateCollectionName)) { return false; } - if (!event.hasCollection(Vertex.class, _V0VertexCollectionName)) { + if (!event.hasCollection(Vertex.class, _MollerVertexCollectionName)) { return false; } - List V0Candidates = event.get(ReconstructedParticle.class, _V0CandidateCollectionName); - List V0Vertexes= event.get(Vertex.class, _V0VertexCollectionName); + List V0Candidates = event.get(ReconstructedParticle.class, _MollerCandidateCollectionName); + List V0Vertexes= event.get(Vertex.class, _MollerVertexCollectionName); + if(V0Candidates.size() != V0Vertexes.size()) System.out.println(this.getClass().getName()+":: Number of Vertexes = "+V0Vertexes.size()+ "; number of candidates = "+V0Candidates.size()); - int nMollers = 0; // number of good V0 + + int nMollers = 0; totalMollers += V0Candidates.size(); for (ReconstructedParticle v0 : V0Candidates) { + ReconstructedParticle eleTop = v0.getParticles().get(ReconParticleDriver.MOLLER_TOP); ReconstructedParticle eleBot = v0.getParticles().get(ReconParticleDriver.MOLLER_BOT); - if (v0.getStartVertex().getChi2() > _v0Chi2Cut) { + if (v0.getStartVertex().getChi2() > _vtxChi2Cut) { if(_debug)System.out.println(this.getClass().getName()+":: failed vertex chi2"); continue; } @@ -80,26 +76,6 @@ public boolean passSelection(EventHeader event){ continue; } - float[] elePTD={TrackData.getTrackData(event, eleTop.getTracks().get(0)).getFloatVal(1), - TrackData.getTrackData(event, eleTop.getTracks().get(0)).getFloatVal(2), - TrackData.getTrackData(event, eleTop.getTracks().get(0)).getFloatVal(3)}; - float[] posPTD={TrackData.getTrackData(event, eleBot.getTracks().get(0)).getFloatVal(1), - TrackData.getTrackData(event, eleBot.getTracks().get(0)).getFloatVal(2), - TrackData.getTrackData(event, eleBot.getTracks().get(0)).getFloatVal(3)}; - double elePMag = (new BasicHep3Vector(elePTD)).magnitude(); - double posPMag = (new BasicHep3Vector(posPTD)).magnitude(); - if (elePMag > _trackPMax || posPMag > _trackPMax) { - if(_debug)System.out.println(this.getClass().getName()+":: failed track momentum"); - continue; - } - if(eleTop.getMomentum().magnitude() > _elePMax){ - if(_debug)System.out.println(this.getClass().getName()+":: failed eleTop momentum"); - continue; - } - if ((elePMag+posPMag) > _v0PMax) { - if(_debug)System.out.println(this.getClass().getName()+":: failed v0 momentum"); - continue; - } double eleTime = TrackData.getTrackTime(TrackData.getTrackData(event, eleTop.getTracks().get(0))); double posTime = TrackData.getTrackTime(TrackData.getTrackData(event, eleBot.getTracks().get(0))); if (Math.abs(eleTime - posTime) > _trackDtCut) { @@ -130,7 +106,7 @@ public void setParameters(String parsFileName){ String infilePreResDir = "/org/hps/recon/skims/"; String infile=infilePreResDir+parsFileName; InputStream inParamStream = this.getClass().getResourceAsStream(infile); - System.out.println(this.getClass().getName()+":: reading in per-sensor per-phase calibs from "+infile); + System.out.println(this.getClass().getName()+":: reading in Moller skimming cuts from "+infile); BufferedReader reader = new BufferedReader(new InputStreamReader(inParamStream)); String line; String delims = "[ ]+";// this will split strings between one or more spaces @@ -151,28 +127,16 @@ public void setParameters(String parsFileName){ private void putParam(String parName, String var){ - if(parName.equals("V0CandidateCollectionName")) - _V0CandidateCollectionName=var; - // else if(parName.equals("clusterTimingCut")) - // _clusterTimingCut=Double.parseDouble(var); - else if(parName.equals("v0Chi2Cut")) - _v0Chi2Cut=Double.parseDouble(var); + if(parName.equals("MollerCandidateCollectionName")) + _MollerCandidateCollectionName=var; + else if(parName.equals("vtxChi2Cut")) + _vtxChi2Cut=Double.parseDouble(var); else if(parName.equals("trackChi2Cut")) _trackChi2Cut=Double.parseDouble(var); else if(parName.equals("trackDtCut")) _trackDtCut=Double.parseDouble(var); - else if(parName.equals("trackPMax")) - _trackPMax=Double.parseDouble(var); - else if(parName.equals("elePMax")) - _elePMax=Double.parseDouble(var); - else if(parName.equals("v0PMax")) - _v0PMax=Double.parseDouble(var); else if(parName.equals("nHitsMin")) _nHitsMin=Integer.parseInt(var); - else if(parName.equals("reqClusterMatch")) - _reqClusterMatch=Boolean.parseBoolean(var); - else if(parName.equals("posClusterEnergy")) - _posClusterEnergy=Double.parseDouble(var); else System.out.println(this.getClass().getName()+":: couldn't find "+parName+"!"); } @@ -185,11 +149,8 @@ public int getTotalMollers(){ return totalMollers; } - // public void setClusterTimeCut(double cutVal){ - // this._clusterTimingCut=cutVal; - // } - public void setV0Chi2Cut(double cutVal){ - this._v0Chi2Cut=cutVal; + public void setVtxChi2Cut(double cutVal){ + this._vtxChi2Cut=cutVal; } public void setTrackChi2Cut(double cutVal){ this._trackChi2Cut=cutVal; @@ -197,12 +158,6 @@ public void setTrackChi2Cut(double cutVal){ public void setTrackDtCut(double cutVal){ this._trackDtCut=cutVal; } - public void setTrackPMax(double cutVal){ - this._trackPMax=cutVal; - } - public void setV0PMax(double cutVal){ - this._v0PMax=cutVal; - } public void setNHitsMin(int cutVal){ this._nHitsMin=cutVal; } diff --git a/recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt b/recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt index 1d6a7d130..35cf8b042 100644 --- a/recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt +++ b/recon/src/main/resources/org/hps/recon/skims/mollerskim_parameters_2019_ver0.txt @@ -1,9 +1,5 @@ -V0CandidateCollectionName UnconstrainedMollerCandidates_KF +MollerCandidateCollectionName UnconstrainedMollerCandidates_KF trackChi2Cut 30.0 -nHitsMin 9 -v0Chi2Cut 30.0 +nHitsMin 6 +vtxChi2Cut 30.0 trackDtCut 20.0 -trackPMax 5.5 -v0PMax 5.5 -reqClusterMatch false -posClusterEnergy 0.2 From d625d20257f0261b9eceec2ba7ada3dd4cc39110 Mon Sep 17 00:00:00 2001 From: Matthew Gignac Date: Wed, 23 Jul 2025 14:58:50 -0700 Subject: [PATCH 4/4] fix println for v0 skimmer --- recon/src/main/java/org/hps/recon/skims/V0Skimmer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recon/src/main/java/org/hps/recon/skims/V0Skimmer.java b/recon/src/main/java/org/hps/recon/skims/V0Skimmer.java index d9347e387..5a416cb7f 100644 --- a/recon/src/main/java/org/hps/recon/skims/V0Skimmer.java +++ b/recon/src/main/java/org/hps/recon/skims/V0Skimmer.java @@ -149,7 +149,7 @@ public void setParameters(String parsFileName){ String infilePreResDir = "/org/hps/recon/skims/"; String infile=infilePreResDir+parsFileName; InputStream inParamStream = this.getClass().getResourceAsStream(infile); - System.out.println(this.getClass().getName()+":: reading in per-sensor per-phase calibs from "+infile); + System.out.println(this.getClass().getName()+":: reading in V0 skimming cuts from "+infile); BufferedReader reader = new BufferedReader(new InputStreamReader(inParamStream)); String line; String delims = "[ ]+";// this will split strings between one or more spaces