From edf8b2ea7f667544ce5abf514da042b7e6e3ec02 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 6 Mar 2026 19:16:04 -0500 Subject: [PATCH 1/5] fix --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ce4904f..45fe19f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,7 +8,7 @@ workflow: on_new_commit: conservative mirror: - stage: mirror + stage: .pre rules: - if: $CI_PIPELINE_SOURCE == "schedule" script: From 2d568c946dc93edd95e1122441b7ca3640ca6a38 Mon Sep 17 00:00:00 2001 From: L Smith Date: Mon, 16 Mar 2026 17:33:29 -0400 Subject: [PATCH 2/5] Adding ElastWagon --- .../grapes/custom-services/ElastWagon.java | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java diff --git a/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java b/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java new file mode 100644 index 0000000..5e18e04 --- /dev/null +++ b/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java @@ -0,0 +1,105 @@ +package org.jlab.jnp.grapes.services; + +import org.jlab.jnp.physics.LorentzVector; +import org.jlab.jnp.hipo4.data.Bank; +import org.jlab.jnp.hipo4.data.Event; +import org.jlab.jnp.hipo4.data.SchemaFactory; +import java.util.ArrayList; + +/** + * + * Skim for elastic e- events + * e- events are prescaled by THRESHOLD for elastic angle theta_ec=19204 && runno<19662) eb = 6.39463; //rgk-f23, rgk-s24 + if (runno>=19662 && runno<19894) eb = 8.47757; //rgk-s24 + + double mp = 0.93828; + double theta_pc = Math.toRadians(THETA_PC); //proton theta cutoff + double theta_ec = 2*Math.atan(1/(Math.tan(theta_pc)*(1+eb/mp))); //electron pre-scale theta + + ArrayList eleCandi = new ArrayList<>(); + + for (int ipart=0; ipart1) return false; + + double epx = RecPart.getFloat("px",eleCandi.get(0)); + double epy = RecPart.getFloat("py",eleCandi.get(0)); + double epz = RecPart.getFloat("pz",eleCandi.get(0)); + double ee = Math.sqrt(epx*epx+epy*epy+epz*epz); + + LorentzVector VVB = new LorentzVector(0,0,eb,eb); + LorentzVector VVT = new LorentzVector(0,0,0,mp); + LorentzVector VVE = new LorentzVector(epx,epy,epz,ee); + + double WW = Math.sqrt(getMM(VVB,VVT,VVE)); + + if (WW > W_CUT) return false; // W cut must go before theta_c cut! + + if (VVE.theta() < theta_ec) { //theta_ec cut + callCount++; + if (callCount < THRESHOLD) return false; + if (callCount == THRESHOLD) callCount=0; + } + + return true; + } +} + + From dc45b1d2182f81eecb045111e1af446a1d15bea1 Mon Sep 17 00:00:00 2001 From: L Smith Date: Fri, 20 Mar 2026 14:34:37 -0400 Subject: [PATCH 3/5] Extend BeamTargetWagon for beamEnergy, runno check commented out --- .../org/jlab/jnp/grapes/custom-services/ElastWagon.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java b/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java index 5e18e04..35284b1 100644 --- a/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java +++ b/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java @@ -14,7 +14,7 @@ * * @author lcsmith */ -public class ElastWagon extends Wagon { +public class ElastWagon extends BeamTargetWagon { private static int callCount = 0; private static final int THRESHOLD = 10; @@ -56,9 +56,9 @@ public boolean processDataEvent(Event event, SchemaFactory factory) { int runno = Config.getInt("run",0); if(runno==0) return false; - double eb=0; - if (runno>=19204 && runno<19662) eb = 6.39463; //rgk-f23, rgk-s24 - if (runno>=19662 && runno<19894) eb = 8.47757; //rgk-s24 + double eb = beamEnergy; + // if (runno>=19204 && runno<19662) eb = 6.39463; //rgk-f23, rgk-s24 + // if (runno>=19662 && runno<19894) eb = 8.47757; //rgk-s24 double mp = 0.93828; double theta_pc = Math.toRadians(THETA_PC); //proton theta cutoff From 2ba7de7c2ee89383c3c5fbf0616c9fd0a000b0e2 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 20 Mar 2026 19:56:47 -0400 Subject: [PATCH 4/5] fix formatting --- .../grapes/custom-services/ElastWagon.java | 86 +++++++++---------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java b/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java index 35284b1..96f8ee2 100644 --- a/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java +++ b/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java @@ -30,44 +30,44 @@ public boolean init(String jsonString) { System.out.println("ElastWagon READY."); return true; } - + private double getMM(LorentzVector Vb, LorentzVector Vt, LorentzVector Ve, LorentzVector...Vx) { - LorentzVector VmissN = new LorentzVector(0,0,0,0); - VmissN.add(Vb); - VmissN.add(Vt); - VmissN.sub(Ve); - for (Object LV : Vx) VmissN.sub((LorentzVector) LV); - return VmissN.mass2(); + LorentzVector VmissN = new LorentzVector(0,0,0,0); + VmissN.add(Vb); + VmissN.add(Vt); + VmissN.sub(Ve); + for (Object LV : Vx) VmissN.sub((LorentzVector) LV); + return VmissN.mass2(); } @Override public boolean processDataEvent(Event event, SchemaFactory factory) { - + Bank RecPart = new Bank(factory.getSchema("REC::Particle")); - Bank Config = new Bank(factory.getSchema("RUN::config")); + Bank Config = new Bank(factory.getSchema("RUN::config")); event.read(RecPart); if (RecPart==null || RecPart.getRows()==0) return false; event.read(Config); if (Config==null || Config.getRows()==0) return false; - - final int THRESHOLD = 10; //pre-scale threshold - - int runno = Config.getInt("run",0); - if(runno==0) return false; - - double eb = beamEnergy; - // if (runno>=19204 && runno<19662) eb = 6.39463; //rgk-f23, rgk-s24 - // if (runno>=19662 && runno<19894) eb = 8.47757; //rgk-s24 - - double mp = 0.93828; - double theta_pc = Math.toRadians(THETA_PC); //proton theta cutoff - double theta_ec = 2*Math.atan(1/(Math.tan(theta_pc)*(1+eb/mp))); //electron pre-scale theta - + + final int THRESHOLD = 10; //pre-scale threshold + + int runno = Config.getInt("run",0); + if(runno==0) return false; + + double eb = beamEnergy; + // if (runno>=19204 && runno<19662) eb = 6.39463; //rgk-f23, rgk-s24 + // if (runno>=19662 && runno<19894) eb = 8.47757; //rgk-s24 + + double mp = 0.93828; + double theta_pc = Math.toRadians(THETA_PC); //proton theta cutoff + double theta_ec = 2*Math.atan(1/(Math.tan(theta_pc)*(1+eb/mp))); //electron pre-scale theta + ArrayList eleCandi = new ArrayList<>(); for (int ipart=0; ipart1) return false; - + double epx = RecPart.getFloat("px",eleCandi.get(0)); double epy = RecPart.getFloat("py",eleCandi.get(0)); double epz = RecPart.getFloat("pz",eleCandi.get(0)); double ee = Math.sqrt(epx*epx+epy*epy+epz*epz); - + LorentzVector VVB = new LorentzVector(0,0,eb,eb); - LorentzVector VVT = new LorentzVector(0,0,0,mp); - LorentzVector VVE = new LorentzVector(epx,epy,epz,ee); - - double WW = Math.sqrt(getMM(VVB,VVT,VVE)); - - if (WW > W_CUT) return false; // W cut must go before theta_c cut! - - if (VVE.theta() < theta_ec) { //theta_ec cut - callCount++; - if (callCount < THRESHOLD) return false; - if (callCount == THRESHOLD) callCount=0; - } - - return true; - } + LorentzVector VVT = new LorentzVector(0,0,0,mp); + LorentzVector VVE = new LorentzVector(epx,epy,epz,ee); + + double WW = Math.sqrt(getMM(VVB,VVT,VVE)); + + if (WW > W_CUT) return false; // W cut must go before theta_c cut! + + if (VVE.theta() < theta_ec) { //theta_ec cut + callCount++; + if (callCount < THRESHOLD) return false; + if (callCount == THRESHOLD) callCount=0; + } + + return true; + } } - + From efe1612a59880fae3a3eeed76e9e0e185f72b329 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 20 Mar 2026 19:58:04 -0400 Subject: [PATCH 5/5] fix initialization --- .../java/org/jlab/jnp/grapes/custom-services/ElastWagon.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java b/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java index 96f8ee2..0788c9c 100644 --- a/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java +++ b/src/main/java/org/jlab/jnp/grapes/custom-services/ElastWagon.java @@ -27,8 +27,7 @@ public ElastWagon(){ @Override public boolean init(String jsonString) { - System.out.println("ElastWagon READY."); - return true; + return super.init(jsonString); } private double getMM(LorentzVector Vb, LorentzVector Vt, LorentzVector Ve, LorentzVector...Vx) {