From 4b1aeb8b2f8a50582fce619962fcaf8cfff79ce6 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 21 Feb 2024 13:16:31 -0500 Subject: [PATCH 001/201] add convenence method for mon12 --- .../org/jlab/io/task/DataSourceProcessorPane.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/common-tools/clas-io/src/main/java/org/jlab/io/task/DataSourceProcessorPane.java b/common-tools/clas-io/src/main/java/org/jlab/io/task/DataSourceProcessorPane.java index 837bdd731..72e009032 100644 --- a/common-tools/clas-io/src/main/java/org/jlab/io/task/DataSourceProcessorPane.java +++ b/common-tools/clas-io/src/main/java/org/jlab/io/task/DataSourceProcessorPane.java @@ -17,6 +17,7 @@ import javax.swing.border.SoftBevelBorder; import org.jlab.io.base.DataEvent; import org.jlab.io.base.DataEventType; +import org.jlab.io.base.DataSource; import org.jlab.io.evio.EvioETSource; import org.jlab.io.evio.EvioSource; import org.jlab.io.hipo3.Hipo3DataSource; @@ -207,6 +208,20 @@ public void connectAndRun(String ip,String port,String file) { this.startProcessorTimer(); } + public void openAndRun(String filename) { + this.stopProcessorTimer(); + DataSource source = filename.endsWith(".hipo") ? + new HipoDataSource() : new EvioSource(); + source.open(filename); + this.dataProcessor.setSource(source); + statusLabel.setText(dataProcessor.getStatusString()); + mediaPlay.setEnabled(false); + mediaPause.setEnabled(true); + mediaNext.setEnabled(true); + mediaPrev.setEnabled(true); + this.startProcessorTimer(); + } + @Override public void actionPerformed(ActionEvent e) { System.out.println("[action] --> " + e.getActionCommand()); From a657b3060a1dc4fdd4a9a2570e37e2124bba943d Mon Sep 17 00:00:00 2001 From: efuchey Date: Thu, 22 Feb 2024 19:37:05 -0500 Subject: [PATCH 002/201] Changed the data bank to process the hits in AHDCEngine: (#199) It should have been AHDC::adc (since corresponding HitReader also uses this bank), it was AHDC::tdc. --- .../alert/src/main/java/org/jlab/rec/service/AHDCEngine.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/service/AHDCEngine.java b/reconstruction/alert/src/main/java/org/jlab/rec/service/AHDCEngine.java index a1a992d69..2bed94d9f 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/service/AHDCEngine.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/service/AHDCEngine.java @@ -69,7 +69,8 @@ public boolean processDataEvent(DataEvent event) { magfield = 50 * magfieldfactor; - if (event.hasBank("AHDC::tdc")) { + //if (event.hasBank("AHDC::tdc")) { + if (event.hasBank("AHDC::adc")) { // I) Read raw hit HitReader hitRead = new HitReader(event, simulation); From ff85fe9e858e7b6460c2bd369a8b7c5a4a0aee94 Mon Sep 17 00:00:00 2001 From: raffaelladevita Date: Thu, 22 Feb 2024 19:38:06 -0500 Subject: [PATCH 003/201] =?UTF-8?q?fixed=20bug=20in=20uRwell=20strip=20fac?= =?UTF-8?q?tory=20causing=20R2=20strips=20not=20being=20created=E2=80=A6?= =?UTF-8?q?=20(#188)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fixed bug in uRwell strip factory causing R2 strips not being created when the 2 region configuration was selected, changed uRWell service to always load the 2 region configuration * setting number of layers/regions to maximum allowed * bug fixes to cross making for 2-regions configuration and banks --- .../geant4/v2/URWELL/URWellStripFactory.java | 2 +- etc/bankdefs/hipo4/urwell.json | 28 +++++++++---------- .../jlab/service/urwell/URWellConstants.java | 3 +- .../org/jlab/service/urwell/URWellCross.java | 12 ++++++-- .../org/jlab/service/urwell/URWellEngine.java | 5 ++-- 5 files changed, 29 insertions(+), 21 deletions(-) diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/URWELL/URWellStripFactory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/URWELL/URWellStripFactory.java index 32683bf98..a7ec2edb5 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/URWELL/URWellStripFactory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/URWELL/URWellStripFactory.java @@ -74,7 +74,7 @@ public void init(DatabaseConstantProvider cp, boolean prototype, int regions) { factory = new URWellGeant4Factory(cp, prototype, regions); isProto = prototype; if(!isProto){ - nRegions = URWellConstants.NREGIONS; + nRegions = Math.min(URWellConstants.NMAXREGIONS, regions); nSectors = URWellConstants.NSECTORS; nChambers = URWellConstants.NCHAMBERS; nLayers = URWellConstants.NLAYERS; diff --git a/etc/bankdefs/hipo4/urwell.json b/etc/bankdefs/hipo4/urwell.json index 63932105f..0981d24a0 100644 --- a/etc/bankdefs/hipo4/urwell.json +++ b/etc/bankdefs/hipo4/urwell.json @@ -7,10 +7,10 @@ "entries": [ {"name":"id", "type":"S", "info":"id of the hit"}, {"name":"sector", "type":"B", "info":"sector of URWELL"}, - {"name":"layer", "type":"B", "info":"Layer of URWELL (1-3:PCAL, 4-6:ECIN, 7-9:ECOUT"}, - {"name":"strip", "type":"S", "info":"Strip number"}, - {"name":"energy", "type":"F", "info":"Energy of the hit (eV)"}, - {"name":"time", "type":"F", "info":"Time of the hit (ns)"}, + {"name":"layer", "type":"B", "info":"layer of URWELL (1-3:PCAL, 4-6:ECIN, 7-9:ECOUT"}, + {"name":"strip", "type":"S", "info":"strip number"}, + {"name":"energy", "type":"F", "info":"energy of the hit (eV)"}, + {"name":"time", "type":"F", "info":"time of the hit (ns)"}, {"name":"clusterId", "type":"S", "info":"id of the cluster the hit belongs to"}, {"name":"status", "type":"S", "info":"status of the hit"} ] @@ -23,10 +23,10 @@ "entries": [ {"name":"id", "type":"S", "info":"id of the cluster"}, {"name":"sector", "type":"B", "info":"sector of URWELL"}, - {"name":"layer", "type":"B", "info":"Layer of URWELL"}, - {"name":"strip", "type":"S", "info":"Seed strip"}, - {"name":"energy", "type":"F", "info":"Energy of the cluster (eV)"}, - {"name":"time", "type":"F", "info":"Time of the cluster (ns)"}, + {"name":"layer", "type":"B", "info":"layer of URWELL"}, + {"name":"strip", "type":"S", "info":"seed strip"}, + {"name":"energy", "type":"F", "info":"energy of the cluster (eV)"}, + {"name":"time", "type":"F", "info":"time of the cluster (ns)"}, {"name":"xo", "type":"F", "info":"strip origin X coordinate (cm)"}, {"name":"yo", "type":"F", "info":"strip origin Y coordinate (cm)"}, {"name":"zo", "type":"F", "info":"strip origin Z coordinate (cm)"}, @@ -45,12 +45,12 @@ "entries": [ {"name":"id", "type":"S", "info":"id of the cross"}, {"name":"sector", "type":"B", "info":"sector of URWELL"}, - {"name":"layer", "type":"B", "info":"Layer of URWELL"}, - {"name":"energy", "type":"F", "info":"Energy of the cross (eV)"}, - {"name":"time", "type":"F", "info":"Time of the cross (ns)"}, - {"name":"x", "type":"F", "info":"X coordinate (cm)"}, - {"name":"y", "type":"F", "info":"Y coordinate (cm)"}, - {"name":"z", "type":"F", "info":"Z coordinate (cm)"}, + {"name":"region", "type":"B", "info":"region of URWELL"}, + {"name":"energy", "type":"F", "info":"energy of the cross (eV)"}, + {"name":"time", "type":"F", "info":"time of the cross (ns)"}, + {"name":"x", "type":"F", "info":"x coordinate (cm)"}, + {"name":"y", "type":"F", "info":"y coordinate (cm)"}, + {"name":"z", "type":"F", "info":"z coordinate (cm)"}, {"name":"cluster1", "type":"S", "info":"id of the cluster in the V layer"}, {"name":"cluster2", "type":"S", "info":"id of the cluster in the W layer"}, {"name":"status", "type":"S", "info":"status of the cluster"} diff --git a/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellConstants.java b/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellConstants.java index 4c7ac644f..732c923fb 100644 --- a/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellConstants.java +++ b/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellConstants.java @@ -9,7 +9,8 @@ public class URWellConstants { // geometry public final static int NSECTOR = 6; - public final static int NLAYER = 2; + public final static int NLAYER = 4; + public final static int NREGION = 2; public final static int NCHAMBER = 3; public final static int[] NSTRIPS = { 542, 628, 714}; // number of strips for the three chambers public final static int[] STRIPMIN = { 1, 543, 1171}; // lower strip number diff --git a/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellCross.java b/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellCross.java index fb0189c8d..90fa1d2c4 100644 --- a/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellCross.java +++ b/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellCross.java @@ -15,6 +15,7 @@ public class URWellCross { private int id; private int sector; + private int region; private int chamber; private int cluster1; @@ -35,6 +36,7 @@ public URWellCross(URWellCluster c1, URWellCluster c2) { int nint = plane.intersectionSegment(c2.getLine(), point); if(nint==1) { this.sector = c1.getSector(); + this.region = (c1.getLayer()-1)/(URWellConstants.NLAYER/URWellConstants.NREGION)+1; this.cross = point; this.energy = c1.getEnergy() + c2.getEnergy(); this.time = (c1.getTime() + c2.getTime())/2; @@ -55,6 +57,10 @@ public int getSector() { return this.sector; } + public int getRegion() { + return this.region; + } + public int getChamber() { return this.chamber; } @@ -88,9 +94,9 @@ public static List createCrosses(List clusters) { List crosses = new ArrayList<>(); for(int is=0; is clustersV = URWellCluster.getClusters(clusters, is+1, il+1); - List clustersW = URWellCluster.getClusters(clusters, is+1, il+2); + for(int ir=0; ir clustersV = URWellCluster.getClusters(clusters, is+1, (URWellConstants.NLAYER/URWellConstants.NREGION)*ir+1); + List clustersW = URWellCluster.getClusters(clusters, is+1, (URWellConstants.NLAYER/URWellConstants.NREGION)*ir+2); for(URWellCluster v : clustersV) { for(URWellCluster w : clustersW) { diff --git a/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellEngine.java b/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellEngine.java index 15a338c75..fcb53c5ad 100644 --- a/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellEngine.java +++ b/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellEngine.java @@ -41,7 +41,7 @@ public boolean init() { // init ConstantsManager to read constants from CCDB String variationName = Optional.ofNullable(this.getEngineConfigString("variation")).orElse("default"); DatabaseConstantProvider cp = new DatabaseConstantProvider(11, variationName); - factory.init(cp); + factory.init(cp, false, URWellConstants.NREGION); // register output banks for drop option this.registerOutputBank("URWELL::hits"); this.registerOutputBank("URWELL::clusters"); @@ -86,7 +86,7 @@ private void writeHipoBanks(DataEvent de, DataBank bankC = de.createBank("URWELL::clusters", clusters.size()); for(int c = 0; c < clusters.size(); c++){ - bankS.setShort("id", c, (short) clusters.get(c).getId()); + bankC.setShort("id", c, (short) clusters.get(c).getId()); bankC.setByte("sector", c, (byte) clusters.get(c).get(0).getDescriptor().getSector()); bankC.setByte("layer", c, (byte) clusters.get(c).get(0).getDescriptor().getLayer()); bankC.setShort("strip", c, (short) clusters.get(c).getMaxStrip()); @@ -106,6 +106,7 @@ private void writeHipoBanks(DataEvent de, for(int c = 0; c < crosses.size(); c++){ bankX.setShort("id", c, (short) crosses.get(c).getId()); bankX.setByte("sector", c, (byte) crosses.get(c).getSector()); + bankX.setByte("region", c, (byte) crosses.get(c).getRegion()); bankX.setFloat("energy", c, (float) crosses.get(c).getEnergy()); bankX.setFloat("time", c, (float) crosses.get(c).getTime()); bankX.setFloat("x", c, (float) crosses.get(c).point().x()); From 2c278333006abd49d0bba1441da030636ba0dfac Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 22 Feb 2024 19:13:16 -0500 Subject: [PATCH 004/201] cleanup clara installer --- install-clara | 84 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 35 deletions(-) diff --git a/install-clara b/install-clara index d523a7773..ed9edd600 100755 --- a/install-clara +++ b/install-clara @@ -1,10 +1,15 @@ #!/usr/bin/env bash +# Default software versions: +grapes=2.17 +clara=5.0.2 +coatjava=10.0.8 + # Abort on any non-zero exit codes: set -e function error() { - echo -e "$usage\n\nERROR: $@" + echo -e "\n$usage\n\nERROR: $@" exit 1 } @@ -16,12 +21,20 @@ function get() { tar $topts -f $(basename $1) } +function install() { + find clara-cre -exec touch {} + + chmod -R a+r clara-cre + chmod a+x clara-cre/bin/* + mv clara-cre $clara_home +} + function litter() { + exit_code=$1 if [ -d "$tmp_dir" ] then - if [ "$1" -ne 0 ] || [ "$debug" -gt 1 ] + if [ "$exit_code" -ne 0 ] || [ "$debug" -gt 1 ] then - echo -e "\nSee build directory for more info:\n\t$tmp_dir" + echo -e "\nSee temporary build directory for more info:\n\t$tmp_dir" else rm -r $tmp_dir echo -e "\nRemoved temporary build directory:\n\t$tmp_dir" @@ -29,42 +42,36 @@ function litter() { fi } -function cleanup() { - exit_code=$? - if [ "$exit_code" -eq 0 ] +function check() { + if compgen -G "$clara_home/lib/jclara-*.jar" > /dev/null then - chmod a+x clara-cre/bin/* - chmod -R a+r clara-cre - mv clara-cre $clara_home + echo -e "\n\$CLARA_HOME installed at:\n\t$clara_home" + else + echo -e "\n\$CLARA_HOME installed but looks broken:\n\t$clara_home" fi +} + +function cleanup() { + exit_code=$? + [ "$exit_code" -eq 0 ] && install litter $exit_code - if [ "$exit_code" -eq 0 ] - then - if compgen -G "$clara_home/lib/jclara-*.jar" > /dev/null - then - echo -e "\n\$CLARA_HOME installed at $clara_home" - fi - fi + [ "$exit_code" -eq 0 ] && check } trap cleanup EXIT # Configure: -grapes=2.17 -clara=5.0.2 -coatjava=9.0.1 debug=0 args=() -usage="Usage: install-clara [-v] [-f CLARA] [-v COATJAVA] [-g GRAPES] [-j JRE] PATH" +usage="Usage: install-clara [-v] [-f CLARA] [-c COATJAVA] [-g GRAPES] [-j JRE] PATH" info="\ - The default COATJAVA/CLARA/GRAPES versions are $coatjava/$clara/$grapes.\n\ -- COATJAVA can also be specified as a local coatjava installation.\n\ -- No JRE will be installed without the -j option.\n\ -- The -v option (repeatable) increases verbosity and can disable cleanup.\n" +- Unless requested, no JRE will be included in the installation.\n\ +- COATJAVA can also be specified as a local installation directory." while [[ $# -gt 0 ]] do case $1 in - -h) echo $usage && echo -e "\n$info" && exit 0 ;; + -h) echo -e "\n$usage" && echo -e "\n$info" && exit 1 ;; -f) clara="$2" && shift && shift ;; -c) coatjava="$2" && shift && shift ;; -g) grapes="$2" && shift && shift ;; @@ -81,12 +88,21 @@ clara_home="$args" [ "${#args[@]}" -gt 1 ] && error "Extra PATH arguments: ${args[@]:1}" [ -e "$clara_home" ] && error "Installation PATH already exists: $clara_home" mkdir -p $clara_home || error "Cannot create installation PATH: $clara_home" -clara_home=$(cd $clara_home && pwd) -rmdir $clara_home +clara_home=$(cd $clara_home && pwd) && rmdir $clara_home + +# Detect local COATJAVA installation and convert into an absolute path: +if compgen -G "$coatjava/lib/clas/coat-libs-*.jar" > /dev/null +then + coatjava=$(cd $coatjava && pwd) + echo -e "\nUsing local COATJAVA installation:\n\t$coatjava" +elif ! [[ "$coatjava" =~ ^[0-9]+\.[0-9]\.[0-9]$ ]] +then + echo -e "$usage\n\nWARNING: COATJAVA doesn't look like a local installation nor version number: $coatjava" +fi # Do everything inside a new, temporary directory: [ -w "." ] || error "Current working directory is not writeable: \$PWD=$PWD" -tmp_dir=$(mktemp -d install-clara.tmp.XXXXXX) +tmp_dir=$(mktemp -d tmp.install-clara.XXXXXX) [ $? -ne 0 ] && error "Cannot create temporary directory: $tmp_dir" tmp_dir=$(cd $tmp_dir && pwd) echo -e "\nCreating temporary build directory:\n\t$tmp_dir" @@ -97,10 +113,8 @@ echo -e "\nRetrieving CLARA version $clara ..." get https://userweb.jlab.org/~gurjyan/clara-cre/clara-cre-$clara.tar.gz # COATJAVA: -if compgen -G "$coatjava/lib/clas/coat-libs-*.jar" > /dev/null +if ! compgen -G "$coatjava/lib/clas/coat-libs-*.jar" > /dev/null then - echo -e "\nUsing local COATJAVA installation: $coatjava" -else echo -e "\nRetrieving COATJAVA version $coatjava ..." get https://clasweb.jlab.org/clas12offline/distribution/coatjava/coatjava-$coatjava.tar.gz coatjava=./coatjava @@ -108,11 +122,11 @@ fi mkdir -p clara-cre/plugins/clas12/lib/clas mkdir -p clara-cre/plugins/clas12/lib/services mkdir -p clara-cre/plugins/clas12/config -cp -r $coatjava/etc clara-cre/plugins/clas12/. -cp -r $coatjava/bin clara-cre/plugins/clas12/. -cp -r $coatjava/lib/utils clara-cre/plugins/clas12/lib/. -cp -r $coatjava/lib/clas/* clara-cre/plugins/clas12/lib/clas/. -cp -r $coatjava/lib/services/* clara-cre/plugins/clas12/lib/services/. +cp -Lr $coatjava/etc clara-cre/plugins/clas12/. +cp -Lr $coatjava/bin clara-cre/plugins/clas12/. +cp -Lr $coatjava/lib/utils clara-cre/plugins/clas12/lib/. +cp -Lr $coatjava/lib/clas/* clara-cre/plugins/clas12/lib/clas/. +cp -Lr $coatjava/lib/services/* clara-cre/plugins/clas12/lib/services/. # GRAPES: echo -e "\nRetrieving GRAPES version $grapes ..." From 7aadda75f87e94066dfe99b20ad87ba5a724f20f Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 22 Feb 2024 19:18:06 -0500 Subject: [PATCH 005/201] cleanup helicity utilities --- .../detector/helicity/DecoderBoardTest.java | 100 ++++++------------ .../detector/helicity/DecoderBoardUtil.java | 41 +++++++ .../jlab/detector/helicity/SequenceUtil.java | 21 +++- 3 files changed, 88 insertions(+), 74 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/DecoderBoardTest.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/DecoderBoardTest.java index 0ea986a77..977598557 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/DecoderBoardTest.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/DecoderBoardTest.java @@ -3,92 +3,52 @@ import java.util.Date; import org.jlab.jnp.hipo4.data.Bank; import org.jlab.jnp.hipo4.data.Event; -import org.jlab.jnp.hipo4.data.SchemaFactory; import org.jlab.jnp.hipo4.io.HipoReader; import org.jlab.jnp.hipo4.io.HipoWriterSorted; public class DecoderBoardTest { - public static String toString(int bits) { - StringBuilder s = new StringBuilder(); - for (int i=31; i>=0; --i) s.append((bits>>i)&1); - return s.toString(); - } - - public static String toString(Bank b) { - StringBuilder s = new StringBuilder(); - s.append("Timestamp/nPair/seed: "); - s.append(b.getLong("timestamp",0)); - s.append("/"); - s.append(b.getInt("nPair",0)); - s.append("/"); - s.append(b.getInt("helicitySeed",0)); - s.append("\nPair: "); - s.append(toString(b.getInt("pairArray",0))); - s.append(String.format(" %d",b.getInt("pair",0))); - s.append("\nPattern: "); - s.append(toString(b.getInt("patternArray",0))); - s.append(String.format(" %d",b.getInt("pattern",0))); - s.append("\nHelicity: "); - s.append(toString(b.getInt("helicityArray",0))); - s.append(String.format(" %d",b.getInt("helicity",0))); - s.append("\nHelicityP: "); - s.append(toString(b.getInt("helicityPArray",0))); - s.append("\nHelicityP0:"); - StringBuilder s3 = new StringBuilder(); - for (int i=31; i>=0; --i) { - if (((b.getInt("patternArray",0)>>i)&1) == 1) { - s3.append((b.getInt("helicityArray",0)>>i)&1); - } - } - s.append(String.format("%32s",s3)); - s.append("\nHelicityP1:"); - StringBuilder s2 = new StringBuilder(); - for (int i=31; i>=0; --i) { - if (((b.getInt("patternArray",0)>>i)&1) == 0) { - s2.append((b.getInt("helicityArray",0)>>i)&1); - } - } - s.append(String.format("%32s",s2)); - s.append("\n"); - return s.toString(); - } - public static void main(String args[]) { - String filename = "/Users/baltzell/Software/coatjava/iss166+167-eventordering+maurik/clas_019400.evio.00040.hipo"; - HelicitySequenceManager hsm = new HelicitySequenceManager(8, filename); - try (HipoWriterSorted writer = new HipoWriterSorted()) { - writer.getSchemaFactory().initFromDirectory("/Users/baltzell/Software/coatjava/iss171-heldecoder/etc/bankdefs/hipo4"); - writer.setCompressionType(2); - writer.open(String.format("/Users/baltzell/xx-%d.hipo",(new Date()).getTime())); + String inputFile = args.length>0?args[0]:"/Users/baltzell/Software/coatjava/nab-cleanup/0.hipo"; + String outputFile = true ? null : String.format("/Users/baltzell/xx-%d.hipo",(new Date()).getTime()); + //HelicitySequenceManager hsm = new HelicitySequenceManager(8, inputFile); + HipoWriterSorted writer = new HipoWriterSorted(); + if (outputFile != null) { + writer.getSchemaFactory().initFromDirectory("/Users/baltzell/Software/coatjava/nab-cleanup/etc/bankdefs/hipo4"); + writer.setCompressionType(2); + writer.open(outputFile); + } HipoReader reader = new HipoReader(); - SchemaFactory schema = writer.getSchemaFactory(); - reader.open(filename); - Bank decoder = new Bank(schema.getSchema("HEL::decoder")); - Bank online = new Bank(schema.getSchema("HEL::online")); - Bank config = new Bank(schema.getSchema("RUN::config")); - Bank compare = new Bank(schema.getSchema("hel")); + reader.open(inputFile); Event event = new Event(); + Bank decoder = new Bank(reader.getSchemaFactory().getSchema("HEL::decoder")); + Bank online = new Bank(reader.getSchemaFactory().getSchema("HEL::online")); + Bank config = new Bank(reader.getSchemaFactory().getSchema("RUN::config")); + //Bank compare = new Bank(writer.getSchemaFactory().getSchema("hel")); + int n=0; while (reader.hasNext()) { reader.nextEvent(event); - if (event.hasBank(schema.getSchema("HEL::decoder"))) { + if (event.hasBank(reader.getSchemaFactory().getSchema("HEL::decoder"))) { event.read(decoder); event.read(config); event.read(online); - decoder.copyTo(compare); + //decoder.copyTo(compare); //compare.putByte("board", 0, DecoderBoardUtil.QUARTET.getWindowHelicity(decoder,8)); - compare.putByte("online", 0, online.getByte("helicityRaw",0)); - compare.putByte("offline", 0, hsm.search(event).value()); - compare.putLong("timestamp", 0, config.getLong("timestamp",0)); - Event e = new Event(); - e.write(compare); - writer.addEvent(e,event.getEventTag()); - System.out.println(toString(decoder)); - if (!DecoderBoardUtil.QUARTET.check(decoder)) break; - //System.out.println(hsm.search(event)); + //compare.putByte("online", 0, online.getByte("helicityRaw",0)); + //compare.putByte("offline", 0, hsm.search(event).value()); + //compare.putLong("timestamp", 0, config.getLong("timestamp",0)); + //Event e = new Event(); + //e.write(compare); + //if (outputFile != null) writer.addEvent(e,event.getEventTag()); + System.out.println(DecoderBoardUtil.toString(decoder)); + if (!DecoderBoardUtil.QUARTET.check(decoder)) { + System.out.println(DecoderBoardUtil.toString(decoder)); + ++n; + }//System.out.println(hsm.search(event)); //break; + //if (++n>100) break; } } - } + System.out.format("____________________________________________ %d ERRORS\n",n); } } diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/DecoderBoardUtil.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/DecoderBoardUtil.java index 7ffb6bac8..90272f456 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/DecoderBoardUtil.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/DecoderBoardUtil.java @@ -87,4 +87,45 @@ else if (bank instanceof Bank) throw new IllegalArgumentException(); } + /** + * Get a string representation of a HEL::decoder bank for human consumption. + * @param b the HEL::decoder bank to stringify + * @return + */ + public static String toString(Bank b) { + StringBuilder s = new StringBuilder(); + s.append("Timestamp/nPair/seed: "); + s.append(b.getLong("timestamp",0)); + s.append("/"); + s.append(b.getInt("nPair",0)); + s.append("/"); + s.append(b.getInt("helicitySeed",0)); + s.append("\nPair: "); + s.append(toString(b.getInt("pairArray",0))); + s.append("\nPattern: "); + s.append(toString(b.getInt("patternArray",0))); + s.append("\nHelicity: "); + s.append(toString(b.getInt("helicityArray",0))); + s.append("\nHelicityP: "); + s.append(toString(b.getInt("helicityPArray",0))); + s.append("\nHelicityP0:"); + StringBuilder s3 = new StringBuilder(); + for (int i=31; i>=0; --i) { + if (((b.getInt("patternArray",0)>>i)&1) == 1) { + s3.append((b.getInt("helicityArray",0)>>i)&1); + } + } + s.append(String.format("%32s",s3)); + s.append("\nHelicityP1:"); + StringBuilder s2 = new StringBuilder(); + for (int i=31; i>=0; --i) { + if (((b.getInt("patternArray",0)>>i)&1) == 0) { + s2.append((b.getInt("helicityArray",0)>>i)&1); + } + } + s.append(String.format("%32s",s2)); + s.append("\n"); + return s.toString(); + } + } diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/SequenceUtil.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/SequenceUtil.java index d106af5c4..c3d3ab9bc 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/SequenceUtil.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/SequenceUtil.java @@ -24,6 +24,18 @@ public class SequenceUtil { // Whether to invert the bits during error-checking, for debugging: static boolean INVERT_BITS_CHECK = false; + /** + * Just convert bits to string, fixed-width, left-buffered with zeroes, + * since that doesn't seem to be included in the standard Java library. + * @param bits + * @return + */ + public static String toString(int bits) { + StringBuilder s = new StringBuilder(); + for (int i=SEQUENCE_LENGTH-1; i>=0; --i) s.append((bits>>i)&1); + return s.toString(); + } + /** * Pattern delay correction, as specified by JLab's injector group. * @param helicities the first helicity of the previous SEQUENCE_LENGTH patterns @@ -33,8 +45,9 @@ public class SequenceUtil { public static byte getPatternHelicity(int helicities, byte patternDelay) { int bit = 0; int register = 0; - for (int i=RNG_REGISTER_SIZE-1; i>=0; --i) + for (int i=RNG_REGISTER_SIZE-1; i>=0; --i) { register = ( ((helicities>>i)&1) | (register<<1) ) & 0x3FFFFFFF; + } for (int i=0; i>6) & 1; int bit28 = (register>>27) & 1; @@ -70,7 +83,7 @@ public static boolean checkHelicities(int patterns, int helicities, byte pattern if ( ((helicities>>(i-j))&1) != SequenceUtil.getWindowHelicity((byte)((helicities>>i)&1),(byte)j) ) { Logger.getLogger(SequenceUtil.class.getName()).log(Level.WARNING, - "Bad pattern/helicity: {0}/{1}", new Object[]{patterns, helicities}); + "Bad pattern / helicity: {0} / {1}", new Object[]{toString(patterns), toString(helicities)}); return false; } } @@ -87,7 +100,7 @@ public static boolean checkPairs(int pairs) { for (int i=0; i>i) & 0x3) != 1) { Logger.getLogger(SequenceUtil.class.getName()).log(Level.WARNING, - "Bad pairs: {0}", pairs); + "Bad pairs: {0}", toString(pairs)); return false; } } @@ -104,7 +117,7 @@ public static boolean checkPatterns(int patterns, byte patternLength) { for (int i=0; i<(SEQUENCE_LENGTH-patternLength+1); ++i) { if (Integer.bitCount((patterns>>i) & mask) != (INVERT_BITS_CHECK?patternLength-1:1)) { Logger.getLogger(SequenceUtil.class.getName()).log(Level.WARNING, - "Bad patterns: {0}", patterns); + "Bad patterns: {0}", toString(patterns)); return false; } } From a4ea48393be9dea4ca1e3da9da2a5f5f1135a344 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 22 Feb 2024 19:18:53 -0500 Subject: [PATCH 006/201] bump version --- common-tools/clara-io/pom.xml | 4 ++-- common-tools/clas-analysis/pom.xml | 20 ++++++++--------- common-tools/clas-detector/pom.xml | 10 ++++----- common-tools/clas-geometry/pom.xml | 4 ++-- common-tools/clas-io/pom.xml | 8 +++---- common-tools/clas-jcsg/pom.xml | 8 +++---- common-tools/clas-logging/pom.xml | 4 ++-- common-tools/clas-math/pom.xml | 4 ++-- common-tools/clas-physics/pom.xml | 4 ++-- common-tools/clas-reco/pom.xml | 16 +++++++------- common-tools/clas-tracking/pom.xml | 6 +++--- common-tools/clas-utils/pom.xml | 4 ++-- common-tools/cnuphys/magfield/pom.xml | 2 +- common-tools/cnuphys/swimmer/pom.xml | 2 +- common-tools/coat-lib/deployDistribution.sh | 2 +- common-tools/coat-lib/pom.xml | 24 ++++++++++----------- common-tools/parent/pom.xml | 2 +- common-tools/pom.xml | 4 ++-- common-tools/swim-tools/pom.xml | 6 +++--- parent/pom.xml | 2 +- pom.xml | 4 ++-- reconstruction/alert/pom.xml | 10 ++++----- reconstruction/band/pom.xml | 4 ++-- reconstruction/cnd/pom.xml | 2 +- reconstruction/cvt/pom.xml | 6 +++--- reconstruction/dc/pom.xml | 12 +++++------ reconstruction/eb/pom.xml | 10 ++++----- reconstruction/ec/pom.xml | 6 +++--- reconstruction/fmt/pom.xml | 6 +++--- reconstruction/ft/pom.xml | 4 ++-- reconstruction/htcc/pom.xml | 4 ++-- reconstruction/ltcc/pom.xml | 4 ++-- reconstruction/mc/pom.xml | 4 ++-- reconstruction/mltn/pom.xml | 6 +++--- reconstruction/pom.xml | 4 ++-- reconstruction/raster/pom.xml | 4 ++-- reconstruction/rich/pom.xml | 6 +++--- reconstruction/rtpc/pom.xml | 6 +++--- reconstruction/swaps/pom.xml | 8 +++---- reconstruction/tof/pom.xml | 4 ++-- reconstruction/urwell/pom.xml | 6 +++--- reconstruction/vtx/pom.xml | 6 +++--- 42 files changed, 131 insertions(+), 131 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index cbcc33c35..358a88ea7 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clara-io - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml index 55e0bbb09..5926abe51 100644 --- a/common-tools/clas-analysis/pom.xml +++ b/common-tools/clas-analysis/pom.xml @@ -3,63 +3,63 @@ 4.0.0 org.jlab.clas clas-analysis - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-utils - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-physics - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-io - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-geometry - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas swim-tools - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-detector - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml index 1f140e3c4..feeed6c4f 100644 --- a/common-tools/clas-detector/pom.xml +++ b/common-tools/clas-detector/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-detector - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-utils - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -29,13 +29,13 @@ org.jlab.clas clas-io - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-geometry - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index fbb3170ed..b5d840f42 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-geometry - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 94f03f1b3..bda78dbdb 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-io - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -87,13 +87,13 @@ org.jlab.clas clas-utils - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-logging - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT compile diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index d47c3363b..02f64fc01 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-jcsg - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -27,12 +27,12 @@ org.jlab.clas clas-geometry - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-detector - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT java3d diff --git a/common-tools/clas-logging/pom.xml b/common-tools/clas-logging/pom.xml index c192ebd97..a2d86040b 100644 --- a/common-tools/clas-logging/pom.xml +++ b/common-tools/clas-logging/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-logging - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml index e99dc4e49..c40b617c0 100644 --- a/common-tools/clas-math/pom.xml +++ b/common-tools/clas-math/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-math - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml index 10d15023a..ec1a14bed 100644 --- a/common-tools/clas-physics/pom.xml +++ b/common-tools/clas-physics/pom.xml @@ -4,14 +4,14 @@ org.jlab.clas clas-physics - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml index 4455d1f75..2b975051d 100644 --- a/common-tools/clas-reco/pom.xml +++ b/common-tools/clas-reco/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -42,37 +42,37 @@ org.jlab.clas clas-math - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-io - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-logging - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-physics - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-utils - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-detector - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index 1839ad9cb..35e224913 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-tracking - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -22,7 +22,7 @@ org.jlab.clas swim-tools - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index a8e8bc8f8..4ab00854b 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-utils - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml index 01f5496c0..8955f9cb3 100644 --- a/common-tools/cnuphys/magfield/pom.xml +++ b/common-tools/cnuphys/magfield/pom.xml @@ -23,7 +23,7 @@ org.jlab.clas clas-math - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml index 99aac3d74..9d7d44eb5 100644 --- a/common-tools/cnuphys/swimmer/pom.xml +++ b/common-tools/cnuphys/swimmer/pom.xml @@ -35,7 +35,7 @@ org.jlab.clas clas-math - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/coat-lib/deployDistribution.sh b/common-tools/coat-lib/deployDistribution.sh index 0f4b3d48f..73dae4fde 100755 --- a/common-tools/coat-lib/deployDistribution.sh +++ b/common-tools/coat-lib/deployDistribution.sh @@ -8,7 +8,7 @@ cd `dirname $0` # Script is exporting existing Jar files to repository #------------------------------------------------------------------------------------------------- -VERSION=10.0.7 +VERSION=10.0.8 mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -Dfile=target/coat-libs-${VERSION}-SNAPSHOT.jar \ diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index 16dd886f8..aa55e5610 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jlab.clas coat-libs - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT pom @@ -93,67 +93,67 @@ org.jlab.clas clas-io - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clara-io - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-utils - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-detector - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-analysis - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-geometry - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-physics - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas swim-tools - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-tracking - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index 7feef4421..85dbf905d 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas common-tools - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT pom diff --git a/common-tools/pom.xml b/common-tools/pom.xml index 16e6a6959..0efa73590 100644 --- a/common-tools/pom.xml +++ b/common-tools/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas common-tools - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml index e711021f2..78cf43a05 100644 --- a/common-tools/swim-tools/pom.xml +++ b/common-tools/swim-tools/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas swim-tools - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/parent/pom.xml b/parent/pom.xml index b8c247520..75a90eafe 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas clas12rec - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index 2156d349a..64acd0ef1 100644 --- a/pom.xml +++ b/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas clas12 - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT pom org.jlab.clas clas12rec parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml index 28a2038dc..f620154bb 100644 --- a/reconstruction/alert/pom.xml +++ b/reconstruction/alert/pom.xml @@ -13,31 +13,31 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-io - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT compile org.jlab.clas clas-tracking - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT compile org.jlab.clas clas-geometry - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT compile diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml index 8b58873ae..a8ad99a74 100644 --- a/reconstruction/band/pom.xml +++ b/reconstruction/band/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml index 7a0952699..003b6585d 100644 --- a/reconstruction/cnd/pom.xml +++ b/reconstruction/cnd/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml index 05c71ddac..687d87909 100644 --- a/reconstruction/cvt/pom.xml +++ b/reconstruction/cvt/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -47,7 +47,7 @@ org.jlab.clas clas-tracking - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index 8b642b55f..7cf1757f5 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -22,19 +22,19 @@ org.jlab.clas clas-jcsg - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-analysis - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -63,13 +63,13 @@ org.jlab.clas swim-tools - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-math - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml index fef31fbc5..36a6808a0 100644 --- a/reconstruction/eb/pom.xml +++ b/reconstruction/eb/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,25 +21,25 @@ org.jlab.clas clas-utils - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-io - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-analysis - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml index a35f5b2af..9850c5bd1 100644 --- a/reconstruction/ec/pom.xml +++ b/reconstruction/ec/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-analysis - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml index 8b080d692..57556f4dc 100644 --- a/reconstruction/fmt/pom.xml +++ b/reconstruction/fmt/pom.xml @@ -15,21 +15,21 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas swim-tools - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml index adcc68e96..cb5651deb 100644 --- a/reconstruction/ft/pom.xml +++ b/reconstruction/ft/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml index 5314115aa..f4e659199 100644 --- a/reconstruction/htcc/pom.xml +++ b/reconstruction/htcc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml index 4ef0a73c2..4746b8091 100644 --- a/reconstruction/ltcc/pom.xml +++ b/reconstruction/ltcc/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml index dce7872e7..c6a07c147 100644 --- a/reconstruction/mc/pom.xml +++ b/reconstruction/mc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml index 277c59a5a..3fd7b1c63 100644 --- a/reconstruction/mltn/pom.xml +++ b/reconstruction/mltn/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -34,13 +34,13 @@ org.jlab.clas clas-io - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index d22d9b26c..29abddfe0 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -3,14 +3,14 @@ org.jlab.clas reconstruction - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml index 83b6a024c..72595c4d9 100644 --- a/reconstruction/raster/pom.xml +++ b/reconstruction/raster/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml index 9f4018f47..793134da5 100644 --- a/reconstruction/rich/pom.xml +++ b/reconstruction/rich/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml index 3cf7e64ed..f5c1deebe 100644 --- a/reconstruction/rtpc/pom.xml +++ b/reconstruction/rtpc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,12 +21,12 @@ org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-tracking - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT compile diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml index b9b462d73..2602a87ea 100644 --- a/reconstruction/swaps/pom.xml +++ b/reconstruction/swaps/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-detector - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-io - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-reco - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml index 9dba752f7..42b89656a 100644 --- a/reconstruction/tof/pom.xml +++ b/reconstruction/tof/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/urwell/pom.xml b/reconstruction/urwell/pom.xml index 37a53b17c..956ed6f11 100644 --- a/reconstruction/urwell/pom.xml +++ b/reconstruction/urwell/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT org.jlab.clas clas-analysis - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml index 66bdfcfc3..c1fb6cbc1 100644 --- a/reconstruction/vtx/pom.xml +++ b/reconstruction/vtx/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT @@ -33,13 +33,13 @@ org.jlab.clas swim-tools - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar org.jlab.clas clas-tracking - 10.0.7-SNAPSHOT + 10.0.8-SNAPSHOT jar From d0714bba748c0a7ec9cc46a4cef66a860707b366 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 28 Feb 2024 19:30:04 -0500 Subject: [PATCH 007/201] cleanup --- install-clara | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/install-clara b/install-clara index ed9edd600..717e6a564 100755 --- a/install-clara +++ b/install-clara @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Default software versions: +# Default versions: grapes=2.17 clara=5.0.2 coatjava=10.0.8 @@ -15,7 +15,7 @@ function error() { function get() { [ "$debug" -eq 0 ] && wopts="--no-verbose" || wopts="" - [ "$#" -gt 1 ] && topts="-C $2 -xz" || topts="-xz" + [ "$#" -gt 1 ] && topts="-C $2 -xz" || topts="-xz" [ "$debug" -gt 0 ] && topts+="v" wget $wopts $1 tar $topts -f $(basename $1) @@ -36,8 +36,7 @@ function litter() { then echo -e "\nSee temporary build directory for more info:\n\t$tmp_dir" else - rm -r $tmp_dir - echo -e "\nRemoved temporary build directory:\n\t$tmp_dir" + rm -r $tmp_dir && echo -e "\nRemoved temporary build directory:\n\t$tmp_dir" fi fi } @@ -97,7 +96,7 @@ then echo -e "\nUsing local COATJAVA installation:\n\t$coatjava" elif ! [[ "$coatjava" =~ ^[0-9]+\.[0-9]\.[0-9]$ ]] then - echo -e "$usage\n\nWARNING: COATJAVA doesn't look like a local installation nor version number: $coatjava" + echo -e "\n\nWARNING: COATJAVA doesn't look like a local installation nor version number: $coatjava" fi # Do everything inside a new, temporary directory: From ea1ce85b1baaa442a34d067473cb3faec846a3e5 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 29 Feb 2024 09:29:23 -0500 Subject: [PATCH 008/201] add HEL::decoder to all schema (#202) Co-authored-by: Nathan Baltzell --- etc/bankdefs/util/bankSplit.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/etc/bankdefs/util/bankSplit.py b/etc/bankdefs/util/bankSplit.py index 3e934c1a0..7f8b323bc 100755 --- a/etc/bankdefs/util/bankSplit.py +++ b/etc/bankdefs/util/bankSplit.py @@ -52,10 +52,9 @@ def create(dirname, banklist): # these should *always* be kept: mc = ["MC::Event", "MC::GenMatch", "MC::Header", "MC::Lund", "MC::Particle", "MC::RecMatch", "MC::True"] -tag1 = ["RUN::config", "RAW::epics", "RAW::scaler", "RUN::scaler", "COAT::config", "HEL::flip", "HEL::online"] +tag1 = ["RUN::config", "RAW::epics", "RAW::scaler", "RUN::scaler", "COAT::config", "HEL::flip", "HEL::online", "HEL::decoder"] # these are the output of the event builder: -# FIXME: this should be using wildcards or something! rectb = ["REC::Event","REC::Particle","REC::Calorimeter","REC::CaloExtras","REC::Cherenkov","REC::CovMat","REC::ForwardTagger","REC::Scintillator","REC::ScintExtras","REC::Track","REC::UTrack","REC::Traj","RECFT::Event","RECFT::Particle"] rechb = ["RECHB::Event","RECHB::Particle","RECHB::Calorimeter","RECHB::CaloExtras","RECHB::Cherenkov","RECHB::ForwardTagger","RECHB::Scintillator","RECHB::ScintExtras","RECHB::Track"] rectbai = ["RECAI::Event","RECAI::Particle","RECAI::Calorimeter","RECAI::CaloExtras","RECAI::Cherenkov","RECAI::CovMat","RECAI::ForwardTagger","RECAI::Scintillator","RECAI::ScintExtras","RECAI::Track","RECAI::Traj","RECAIFT::Event","RECAIFT::Particle"] From e24be4af308470006413655c929cc36e7c320838 Mon Sep 17 00:00:00 2001 From: raffaelladevita Date: Thu, 29 Feb 2024 18:08:45 -0500 Subject: [PATCH 009/201] Updated target geometry and material handling in CVT Eloss (#203) * reorganized target material and volumes information, preparing for multiple target types: tungsten shield moved from SVT geometry package to CVT geometry class, defined more generic methods to handle target materials and surfaces in CVT geometry class, updatesto Measurements class * added polarized target material information * implemented polarized target surfaces * accounting for beam position within the target for eloss in CVT * added capability of accounting for the finite length of the target in eloss * updating polarized target material parameters based on values from C. Keith * reading new target material table * reading target parametrs for CVT eloss from CCDB - phase 1 * complete implementation of CVT eloss based on new /geometry/materials/table, tested for RG-A and RG-C targets * removing printouts and commented code * add more comments * removed unsupported targetMat yaml variable values * cleanups --- .../jlab/detector/base/GeometryFactory.java | 1 + .../org/jlab/geom/prim/Cylindrical3D.java | 40 +++ .../detector/geant4/v2/SVT/SVTConstants.java | 12 +- .../clas/tracking/kalmanfilter/Material.java | 9 +- .../clas/tracking/kalmanfilter/Surface.java | 114 ++++++-- .../kalmanfilter/helical/StateVecs.java | 6 +- .../main/java/org/jlab/rec/cvt/Constants.java | 26 +- .../main/java/org/jlab/rec/cvt/Geometry.java | 276 ++++++++++++++++-- .../rec/cvt/measurement/Measurements.java | 42 ++- .../org/jlab/rec/cvt/services/CVTEngine.java | 6 +- .../rec/cvt/services/CVTSecondPassEngine.java | 3 +- .../rec/cvt/services/TracksFromTargetRec.java | 1 - .../org/jlab/rec/cvt/svt/SVTGeometry.java | 19 -- .../java/org/jlab/rec/cvt/track/Cell.java | 2 +- .../java/org/jlab/rec/cvt/track/Seed.java | 4 +- .../java/org/jlab/rec/cvt/track/Track.java | 2 +- .../org/jlab/rec/cvt/track/TrackSeederRZ.java | 4 +- .../org/jlab/rec/cvt/trajectory/StateVec.java | 2 +- 18 files changed, 435 insertions(+), 134 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java index 1eb6a044b..04dd0cee1 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java @@ -108,6 +108,7 @@ public static ConstantProvider getConstants(DetectorType type, int run, String v if(type==DetectorType.TARGET){ provider.loadTable("/geometry/target"); + provider.loadTable("/geometry/materials/target"); } if(type==DetectorType.FMT){ diff --git a/common-tools/clas-geometry/src/main/java/org/jlab/geom/prim/Cylindrical3D.java b/common-tools/clas-geometry/src/main/java/org/jlab/geom/prim/Cylindrical3D.java index 9fef42d73..dcce40b8e 100644 --- a/common-tools/clas-geometry/src/main/java/org/jlab/geom/prim/Cylindrical3D.java +++ b/common-tools/clas-geometry/src/main/java/org/jlab/geom/prim/Cylindrical3D.java @@ -403,6 +403,46 @@ public int intersectionSegment(Line3D line, List intersections) { return 0; // no intersections, disjoint } + /** + * Compute the intersections of a ray within the 3D volume + * @param line + * @param intersections + * @return ray path length within the volume + */ + public double intersectionLength(Line3D line, List intersections) { + if(this.baseArc.theta()<2*Math.PI) { + throw new UnsupportedOperationException("Not supported yet."); + } + else { + int count = this.intersectionRay(line, intersections); + // add intersections with bases + Plane3D base0 = new Plane3D(this.baseArc.center(), this.baseArc.normal()); + Plane3D base1 = new Plane3D(this.highArc().center(), this.baseArc.normal()); + + Point3D intersect0 = new Point3D(); + if(base0.intersectionRay(line, intersect0)>0 && + intersect0.distance(base0.point())0 && + intersect1.distance(base1.point()) { public Point3D finitePlaneCorner1; public Point3D finitePlaneCorner2; public Cylindrical3D cylinder; + public Cylindrical3D lineVolume; private Transformation3D toGlobal = new Transformation3D(); private Transformation3D toLocal = new Transformation3D(); public Arc3D arc; @@ -111,11 +113,19 @@ public Surface(Point3D endPoint1, Point3D endPoint2, double accuracy) { swimAccuracy = accuracy; } + public Surface(Point3D endPoint1, Point3D endPoint2, Cylindrical3D volume, double accuracy) { + type = Type.LINE; + lineEndPoint1 = endPoint1; + lineEndPoint2 = endPoint2; + lineVolume = volume; + swimAccuracy = accuracy; + } + @Override public String toString() { String s = "Surface: "; - s = s + String.format("Type=%s Index=%d Layer=%d Sector=%d Emisphere=%.1f X0=%.4f Z/A=%.4f Error=%.4f Passive=%b", - this.type.name(), this.getIndex(),this.getLayer(),this.getSector(),this.hemisphere,this.getToverX0(), + s = s + String.format("Type=%s Index=%d Layer=%d Sector=%d Emisphere=%.1f thickness=%.4f X0=%.4f Z/A=%.4f Error=%.4f Passive=%b", + this.type.name(), this.getIndex(),this.getLayer(),this.getSector(),this.hemisphere,this.getThickness(),this.getToverX0(), this.getZoverA(),this.getError(), this.passive); if(type==Type.PLANEWITHSTRIP) { s = s + "\n\t" + this.plane.toString(); @@ -127,9 +137,15 @@ else if(type==Type.CYLINDERWITHSTRIP) { s = s + "\n\t" + this.cylinder.toString(); s = s + "\n\t" + this.strip.toString(); } + else if(type==Type.CYLINDERWITHLINE) { + s = s + "\n\t" + this.cylinder.toString(); + s = s + "\n\t" + this.lineEndPoint1.toString(); + s = s + "\n\t" + this.lineEndPoint2.toString(); + } else if(type==Type.LINE) { s = s + "\n\t" + this.lineEndPoint1.toString(); s = s + "\n\t" + this.lineEndPoint2.toString(); + if(this.lineVolume!=null) s = s + "\n\t" + this.lineVolume.toString(); } return s; } @@ -195,6 +211,19 @@ public void addMaterial(String name, double thickness, double density, double Zo this.materials.add(new Material(name, thickness, density, ZoverA, X0, IeV, unit)); } + public double getRadius() { + if(this.cylinder!=null) + return this.cylinder.baseArc().radius(); + else if(this.lineVolume!=null) + return this.lineVolume.baseArc().radius(); + else + return 0; + } + + public double getLength() { + return this.cylinder.height(); + } + public double getThickness() { double t = 0; for(Material m : this.materials) { @@ -221,56 +250,89 @@ public double getZoverA() { return ZA/RhoX; } - public double getLocalDir(Vector3D dir) { + public double getTrackLength(Point3D pos, Vector3D dir) { + return this.getTrackLength(pos, dir, 0); + } + + public double getTrackLength(Point3D pos, Vector3D dir, int materialIndex) { if(this.type!=Type.PLANEWITHSTRIP && this.type!=Type.CYLINDERWITHSTRIP && this.type!=Type.LINE) - return 1; + return this.getMaterials().get(materialIndex).getThickness(); else { if(this.type==Type.PLANEWITHSTRIP) { Vector3D norm = this.plane.normal(); - return Math.abs(norm.dot(dir)); + return this.getMaterials().get(materialIndex).getThickness()/Math.abs(norm.dot(dir)); } else if(this.type==Type.CYLINDERWITHSTRIP) { Vector3D axis = this.cylinder.getAxis().direction().asUnit(); dir.sub(dir.projection(axis)); - return Math.abs(dir.mag()); + return this.getMaterials().get(materialIndex).getThickness()/Math.abs(dir.mag()); } else if(this.type==Type.LINE) { - Vector3D axis = this.lineEndPoint1.vectorTo(this.lineEndPoint2).asUnit(); - dir.sub(dir.projection(axis)); - return Math.abs(dir.mag()); + if(this.lineVolume==null) { + Vector3D line = this.lineEndPoint1.vectorTo(this.lineEndPoint2).asUnit(); + dir.sub(dir.projection(line)); + return this.getMaterials().get(materialIndex).getThickness()/Math.abs(dir.mag()); + } + else { + Line3D track = new Line3D(pos, dir); + List intersections = new ArrayList<>(); + double trackLength = this.lineVolume.intersectionLength(track, intersections); + if(materialIndex==0) { + return trackLength; + } + else { + for(Point3D p : intersections) { + if(this.lineVolume.isOnSurface(p)){ + Vector3D axis = this.lineVolume.getAxis().direction().asUnit(); + dir.sub(dir.projection(axis)); + return this.getMaterials().get(materialIndex).getThickness()/Math.abs(dir.mag()); + } + } + return 0; + } + } } return 0; } } public double getEloss(double p, double mass) { - double dE=0; - for(Material m : this.materials) { + double dE = 0; + for(int im=0; immass) scale = Math.sqrt(Ecorr*Ecorr - mass*mass)/mom.mag(); - mom.scale(scale); - } + double dE = -dir*this.getEloss(pos, mom, mass); + double Ecorr = Math.sqrt(mom.mag2() + mass*mass) + dE; + if(Ecorr>mass) scale = Math.sqrt(Ecorr*Ecorr - mass*mass)/mom.mag(); + mom.scale(scale); return scale; } - public double getDx(Vector3D mom) { - double cosDir = this.getLocalDir(mom.asUnit()); - if(cosDir!=0) - return this.getThickness()/cosDir; - else - return 0; + public double getDx(Point3D pos, Vector3D mom) { + double dx = 0; + for(int im=0; im0) { vec.kappa = vec.kappa/pScale; - vec.energyLoss = surf.getEloss(vec.getMomentum().mag(), mass); - vec.dx = surf.getDx(vec.getMomentum()); + vec.energyLoss = surf.getEloss(vec.getPosition(), vec.getMomentum(), mass); + vec.dx = surf.getDx(vec.getPosition(), vec.getMomentum()); vec.updateFromHelix(); } else { diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Constants.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Constants.java index fa10fe19f..51303f063 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Constants.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Constants.java @@ -6,8 +6,6 @@ import java.util.logging.Logger; import org.jlab.clas.pdg.PhysicsConstants; import org.jlab.clas.swimtools.Swim; -import org.jlab.clas.tracking.kalmanfilter.Material; -import org.jlab.clas.tracking.kalmanfilter.Units; import org.jlab.clas.tracking.utilities.MatrixOps.Libr; import org.jlab.rec.cvt.svt.SVTParameters; @@ -63,7 +61,7 @@ public static Constants getInstance() { public boolean useOnlyBMTC50PercTruthHits = false; public boolean useOnlyBMTZ50PercTruthHits = false; public boolean preElossCorrection = true; - private Material targetMaterial = LH2; + private String targetType = ""; public Libr KFMatrixLibrary; private int svtmaxclussize = 30; private int bmtcmaxclussize =30; @@ -100,14 +98,7 @@ public static Constants getInstance() { public static final double COSMICSMINRESIDUALZ = 12; // in mm public static final int SEEDFITITERATIONS = 5; - - private static final Material LH2 = new Material("LH2", 8.85, 0.0708E-3, 0.99212, 8904.0, 21.8, Units.MM); - private static final Material LD2 = new Material("LD2", 8.85, 0.1638E-3, 0.49650, 7691.0, 21.8, Units.MM); - public static final Material TARGETKAPTON = new Material("Kapton", 50E-3, 1.42E-3, 0.501, 285.7, 79.6, Units.MM); - public static final Material TARGETRHOACELL = new Material("Rhoacell", 10.4, 0.1E-3, 0.5392, 1000, 93.0, Units.MM); - public static final Material SCINTILLATOR = new Material("Scintillator", 1, 1.03E-3, 0.54141, 439.0, 64.7, Units.MM); - public static final Material VACUUM = new Material("Vacuum", 1, 0, 1, Double.POSITIVE_INFINITY, 100, Units.MM); - + public static boolean KFFILTERON = true; public static boolean INITFROMMC = false; public static int KFITERATIONS = 5; @@ -133,16 +124,15 @@ public boolean kfBeamSpotConstraint() { } public void setTargetMaterial(String material) { - if(material.equalsIgnoreCase("LH2")) - targetMaterial = LH2; - else if(material.equalsIgnoreCase("LD2") ) - targetMaterial = LD2; + if(!material.equalsIgnoreCase("LH2") && + !material.equalsIgnoreCase("LD2") ) + System.out.println("Unknown target material " + material + ", keeping current setting " + targetType); else - System.out.println("Unknown target material " + material + ", keeping current setting " + targetMaterial.getName()); + targetType = material; } - public Material getTargetMaterial() { - return targetMaterial; + public String getTargetType() { + return targetType; } public int getRmReg() { diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Geometry.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Geometry.java index 679f58017..555eec510 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Geometry.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Geometry.java @@ -2,9 +2,17 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.swing.JFrame; +import org.jlab.clas.tracking.kalmanfilter.Material; import org.jlab.clas.tracking.kalmanfilter.Surface; +import org.jlab.clas.tracking.kalmanfilter.Units; +import org.jlab.clas.tracking.objects.Strip; import org.jlab.detector.base.DetectorType; import org.jlab.detector.base.GeometryFactory; import org.jlab.detector.calib.utils.ConstantsManager; @@ -14,8 +22,10 @@ import org.jlab.geom.base.ConstantProvider; import org.jlab.geom.base.Detector; import org.jlab.geom.prim.Arc3D; +import org.jlab.geom.prim.Cylindrical3D; import org.jlab.geom.prim.Line3D; import org.jlab.geom.prim.Point3D; +import org.jlab.geom.prim.Vector3D; import org.jlab.groot.base.GStyle; import org.jlab.groot.data.GraphErrors; import org.jlab.groot.graphics.EmbeddedCanvasTabbed; @@ -39,13 +49,54 @@ public class Geometry { private BMTGeometry bmtGeometry = null; private CTOFGeant4Factory ctofGeometry = null; private Detector cndGeometry = null; - private List cvtSurfaces = null; private List outerSurfaces = null; - private double zTarget = 0; - private double zLength = 0; + + private Map> targetSurfaces = new LinkedHashMap<>(); + private double targetPosition = 0; + private double targetHalfLength = 0; + private double targetRadius = 0; + + private List targetMaterials = null; + private Surface targetCellSurface = null; + private Surface scatteringChamberSurface = null; + private Surface targetShieldSurface = null; + // tungsten shield + public static double TSHIELDRMIN = 51; + public static double TSHIELDRMAX = 51.051; + public static double TSHIELDLENGTH = 360; + public static double TSHIELDZPOS = -50; + public static double TSHIELDRADLEN = 6.76/19.3 *10; // X0(g/cm2) / density(g/cm3) * 10; + public static double TSHIELDZOVERA = 0.40252; + public static double TSHIELDRHO = 19.3E-3; // g/mm3 + public static double TSHIELDI = 727; // eV + + // cryogenic target + private static final Material CRYOLH2 = new Material("LH2", 8.85, 0.0708E-3, 0.99212, 8904.0, 21.8, Units.MM); + private static final Material CRYOLD2 = new Material("LD2", 8.85, 0.1638E-3, 0.49650, 7691.0, 21.8, Units.MM); + private static final Material CRYOTARGETKAPTON = new Material("Kapton", 50E-3, 1.42E-3, 0.501, 285.7, 79.6, Units.MM); + private static final Material CRYOTARGETRHOACELL = new Material("Rhoacell", 10.4, 0.1E-3, 0.5392, 1000, 93.0, Units.MM); + +// // polarized target NOW in CCDB +// private static double POLTARBATHRADIUS = 30; +// private static double POLTARRADIUS = 45; +// private static final Material POLTARNH3 = new Material("NH3", 7.5, 0.5782E-3, 0.55, 916.6, 47.9, Units.MM); +// private static final Material POLTARND3 = new Material("ND3", 10.0, 0.6622E-3, 0.5, 893.7, 47.9, Units.MM); +// private static final Material POLTARCUP = new Material("PCTFE", 0.1, 2.135E-3, 0.5, 134.2, 120.7, Units.MM); +// private static final Material POLTARLHE = new Material("LHE", 20.0, 0.147E-3, 0.5, 6689.4, 41.8, Units.MM); +// private static final Material POLTARBATH = new Material("BATH", 0.76, 2.135E-3, 0.5, 134.2, 120.7, Units.MM); +// private static final Material POLTARAL = new Material("Al", 1.63, 2.7E-3, 0.48181, 88.9, 166, Units.MM); +// private static final Material POLTARCF = new Material("CarbonFiber", 1.0, 1.75E-3, 0.51342, 246.9, 78, Units.MM); + + // other materials + public static final Material SCINTILLATOR = new Material("Scintillator", 1, 1.03E-3, 0.54141, 439.0, 64.7, Units.MM); + public static final Material VACUUM = new Material("Vacuum", 1, 0, 1, Double.POSITIVE_INFINITY, 100, Units.MM); + private static boolean LOADED; + private final static Logger LOGGER = Logger.getLogger(Geometry.class.getName()); + + // private constructor for a singleton private Geometry() { } @@ -71,14 +122,13 @@ public synchronized static void initialize(String variation, int run, IndexedTab LOADED = true; } } - + private synchronized void load(String variation, int run, IndexedTable svtLorentz, IndexedTable bmtVoltage) { // Load target ConstantProvider providerTG = GeometryFactory.getConstants(DetectorType.TARGET, run, variation); - this.zTarget = providerTG.getDouble("/geometry/target/position",0)*10; - this.zLength = providerTG.getDouble("/geometry/target/length",0)*10; - + this.initTarget(providerTG); + ConstantProvider providerCTOF = GeometryFactory.getConstants(DetectorType.CTOF, run, variation); ctofGeometry = new CTOFGeant4Factory(providerCTOF); cndGeometry = GeometryFactory.getDetector(DetectorType.CND, run, variation); @@ -89,19 +139,209 @@ private synchronized void load(String variation, int run, IndexedTable svtLorent svtGeometry = new SVTGeometry(svtFac, svtLorentz); bmtGeometry = new BMTGeometry(bmtVoltage); - cvtSurfaces = new ArrayList<>(); - cvtSurfaces.addAll(svtGeometry.getSurfaces()); - cvtSurfaces.addAll(bmtGeometry.getSurfaces()); - outerSurfaces = Measurements.getOuters(); } - public double getZoffset() { - return zTarget; + private void initTarget(ConstantProvider provider) { + // get target position and half-length from old table + // half-length used for track candidates vertex cut + this.targetPosition = provider.getDouble("/geometry/target/position",0)*10; + this.targetHalfLength = provider.getDouble("/geometry/target/length",0)*10; + // load target geometry and material, using CCDB table if targetMat yaml + // variable is not specified or differs from LH2/LD2 + if("LH2".equals(Constants.getInstance().getTargetType()) || + "LD2".equals(Constants.getInstance().getTargetType())) + this.loadCryoTarget(); + else { + this.loadTarget(provider); + } + } + + private void loadCryoTarget() { + targetMaterials = new ArrayList<>(); + if("LH2".equals(Constants.getInstance().getTargetType())) + targetMaterials.add(CRYOLH2); + else if("LD2".equals(Constants.getInstance().getTargetType())) + targetMaterials.add(CRYOLD2); + targetMaterials.add(CRYOTARGETKAPTON); + + Point3D chamberCenter = new Point3D(0, 0, this.getTargetZOffset()-100); + Point3D chamberOrigin = new Point3D(39.5, 0, this.getTargetZOffset()-100); + Vector3D chamberAxis = new Vector3D(0,0,1); + Arc3D chamberBase = new Arc3D(chamberOrigin, chamberCenter, chamberAxis, 2*Math.PI); + Cylindrical3D chamber = new Cylindrical3D(chamberBase, 200); + scatteringChamberSurface = new Surface(chamber, new Strip(0, 0, 0), Constants.DEFAULTSWIMACC); + scatteringChamberSurface.addMaterial(CRYOTARGETRHOACELL); + scatteringChamberSurface.passive=true; + + Point3D shieldCenter = new Point3D(0, 0, this.getTargetZOffset()+TSHIELDZPOS-TSHIELDLENGTH/2); + Point3D shieldOrigin = new Point3D(TSHIELDRMAX, 0, this.getTargetZOffset()+TSHIELDZPOS-TSHIELDLENGTH/2); + Vector3D shieldAxis = new Vector3D(0,0,1); + Arc3D shieldBase = new Arc3D(shieldOrigin, shieldCenter, shieldAxis, 2*Math.PI); + Cylindrical3D shieldCylinder = new Cylindrical3D(shieldBase, TSHIELDLENGTH); + targetShieldSurface = new Surface(shieldCylinder, new Strip(0, 0, 0), Constants.DEFAULTSWIMACC); + targetShieldSurface.addMaterial("TungstenShield", + TSHIELDRMAX-TSHIELDRMIN, + TSHIELDRHO, + TSHIELDZOVERA, + TSHIELDRADLEN, + TSHIELDI, + Units.MM); + targetShieldSurface.passive=true; } - public double getZlength() { - return zLength; + /** + * Creates target surfaces reading the /geometry/materials/target table from CCDB + * Here are the rules: + * - surfaces are identified by layer and should be defined for layer = 1, 2, and 3 + * - multiple sublayers, identified by component, can be added with different materials + * - layer=1 component=1 is the target material and should always be present + * - the target material is assumed to be a full cylinder (rmin=0) while the other surfaces are "tubes" + * - for layer 1, the target material volume is created and any additional sublayer is assumed to be a equivalent to the target cell walls + * - for layer 2 and 3, when multiple sublayers are defined, the surface radius and length are set to the largest values among the sublayers + */ + private void loadTarget(ConstantProvider provider) { + for(int i=0; i0 && layer<4) { + if(!targetSurfaces.containsKey(layer)) + targetSurfaces.put(layer, new ArrayList<>()); + double rmin = provider.getDouble("/geometry/materials/target/rmin", i)*10; + double rmax = provider.getDouble("/geometry/materials/target/rmax", i)*10; + double length = provider.getDouble("/geometry/materials/target/length", i)*10; + Point3D center = new Point3D(0, 0, this.getTargetZOffset()-length/2); + Vector3D axis = new Vector3D(0,0,1); + Surface surface = null; + if(layer==1 && component==1 && rmin==0) { // this is the target cell, assume the volume is a bulk cylinder + Point3D origin = new Point3D(rmax, 0, this.getTargetZOffset()-length/2); + Arc3D arc = new Arc3D(origin, center, axis, 2*Math.PI); + Cylindrical3D cylinder = new Cylindrical3D(arc, length); + surface = new Surface(center, cylinder.highArc().center(), Constants.DEFAULTSWIMACC); + surface.lineVolume = cylinder; + } + else { // use min radius for other surfaces + Point3D origin = new Point3D(rmin, 0, this.getTargetZOffset()-length/2); + Arc3D arc = new Arc3D(origin, center, axis, 2*Math.PI); + Cylindrical3D cylinder = new Cylindrical3D(arc, length); + surface = new Surface(cylinder, new Strip(0, 0, 0), Constants.DEFAULTSWIMACC); + } + surface.addMaterial("L"+layer+"C"+component, + provider.getDouble("/geometry/materials/target/thickness", i)*10, + provider.getDouble("/geometry/materials/target/density", i)/1000, + provider.getDouble("/geometry/materials/target/ZoverA", i), + provider.getDouble("/geometry/materials/target/X0", i)*10, + provider.getDouble("/geometry/materials/target/I", i), + Units.MM); + surface.setIndex(component); + surface.passive=true; + targetSurfaces.get(layer).add(surface); + } + else if(layer!=0) { + LOGGER.log(Level.WARNING, "Invalid target layer = " + layer + ": will be ignored"); + } + } + // reorder surfaces + for(int layer : targetSurfaces.keySet()) { + List surfaces = targetSurfaces.get(layer); + Collections.sort(surfaces); + } + // check consistency + double r=0; + for(int il=0; il<3; il++) { + int layer = il+1; + if(!targetSurfaces.containsKey(layer)) { + LOGGER.log(Level.SEVERE, "Target layer " + layer + " is undefined"); + System.exit(1); + } + else if(layer==1 && targetSurfaces.get(layer).get(0).getIndex()!=1) { + LOGGER.log(Level.SEVERE, "Target cell is undefined"); + System.exit(1); + } + else if(layer==1 && targetSurfaces.get(layer).get(0).lineVolume!=null && targetSurfaces.get(layer).get(0).getMaterials().size()>1) { + LOGGER.log(Level.SEVERE, "Handling of multiple materials with bulk target not implemented yet"); + System.exit(1); + } + else { + for(Surface s : targetSurfaces.get(layer)) { + if(s.getRadius() getTargetMaterials() { + return targetMaterials; + } + + public Surface getTargetCellSurface() { + return this.targetCellSurface; + } + + public Surface getScatteringChamber() { + return scatteringChamberSurface; + } + + public Surface getTargetShield() { + return targetShieldSurface; } public SVTGeometry getSVT() { @@ -121,9 +361,9 @@ public Detector getCND() { return cndGeometry; } - public List getCVTSurfaces() { - return cvtSurfaces; - } +// public List getCVTSurfaces() { +// return cvtSurfaces; +// } public List geOuterSurfaces() { return outerSurfaces; diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java index 18699cc3a..a7d5974d8 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.List; +import org.jlab.clas.tracking.kalmanfilter.Material; import org.jlab.clas.tracking.kalmanfilter.Surface; import org.jlab.clas.tracking.objects.Strip; import org.jlab.detector.base.DetectorType; @@ -49,8 +50,8 @@ public Measurements(boolean cosmic) { private void initTargetSurfaces(double xbeam, double ybeam, boolean beamSpot) { cvtSurfaces = new Surface[NSURFACES+2]; this.add(MLayer.TARGET.getIndex(), this.getTarget(xbeam, ybeam, beamSpot)); - this.add(MLayer.SCHAMBER.getIndex(), this.getScatteringChamber()); - this.add(MLayer.SHIELD.getIndex(), Geometry.getInstance().getSVT().getShieldSurface()); + this.add(MLayer.SCHAMBER.getIndex(), Geometry.getInstance().getScatteringChamber()); + this.add(MLayer.SHIELD.getIndex(), Geometry.getInstance().getTargetShield()); this.add(MLayer.INNERSVTCAGE.getIndex(), Geometry.getInstance().getSVT().getFaradayCageSurfaces(0)); this.add(MLayer.OUTERSVTCAGE.getIndex(), Geometry.getInstance().getSVT().getFaradayCageSurfaces(1)); this.add(MLayer.BMTINNERTUBE.getIndex(), Geometry.getInstance().getBMT().getInnerTube()); @@ -60,14 +61,14 @@ private void initTargetSurfaces(double xbeam, double ybeam, boolean beamSpot) { private void initCosmicSurfaces() { cvtSurfaces = new Surface[NSURFACES*2+3]; this.add(MLayer.COSMICPLANE.getIndex(1), this.getCosmicPlane()); - this.add(MLayer.SCHAMBER.getIndex(1), this.getScatteringChamber()); - this.add(MLayer.SHIELD.getIndex(1), Geometry.getInstance().getSVT().getShieldSurface()); + this.add(MLayer.SCHAMBER.getIndex(1), Geometry.getInstance().getScatteringChamber()); + this.add(MLayer.SHIELD.getIndex(1), Geometry.getInstance().getTargetShield()); this.add(MLayer.INNERSVTCAGE.getIndex(1), Geometry.getInstance().getSVT().getFaradayCageSurfaces(0)); this.add(MLayer.OUTERSVTCAGE.getIndex(1), Geometry.getInstance().getSVT().getFaradayCageSurfaces(1)); this.add(MLayer.BMTINNERTUBE.getIndex(1), Geometry.getInstance().getBMT().getInnerTube()); this.add(MLayer.BMTOUTERTUBE.getIndex(1), Geometry.getInstance().getBMT().getOuterTube()); - this.add(MLayer.SCHAMBER.getIndex(-1), this.getScatteringChamber()); - this.add(MLayer.SHIELD.getIndex(-1), Geometry.getInstance().getSVT().getShieldSurface(), -1); + this.add(MLayer.SCHAMBER.getIndex(-1), Geometry.getInstance().getScatteringChamber()); + this.add(MLayer.SHIELD.getIndex(-1), Geometry.getInstance().getTargetShield(), -1); this.add(MLayer.INNERSVTCAGE.getIndex(-1), Geometry.getInstance().getSVT().getFaradayCageSurfaces(0), -1); this.add(MLayer.OUTERSVTCAGE.getIndex(-1), Geometry.getInstance().getSVT().getFaradayCageSurfaces(1), -1); this.add(MLayer.BMTINNERTUBE.getIndex(-1), Geometry.getInstance().getBMT().getInnerTube()); @@ -98,28 +99,19 @@ private Surface getTarget(double xbeam, double ybeam, boolean beamSpot) { Vector3D u = new Vector3D(0,0,1); Point3D p = new Point3D(xbeam, ybeam, 0); Line3D l = new Line3D(p, u); - Surface target = new Surface(l.origin(), l.end(), Constants.getInstance().DEFAULTSWIMACC); - target.addMaterial(Constants.getInstance().getTargetMaterial()); - target.addMaterial(Constants.TARGETKAPTON); + Surface target = new Surface(l.origin(), l.end(), Constants.DEFAULTSWIMACC); + if(Geometry.getInstance().getTargetCellSurface().lineVolume!=null) { + target.lineVolume = Geometry.getInstance().getTargetCellSurface().lineVolume; + } + for(Material m : Geometry.getInstance().getTargetMaterials()) + target.addMaterial(m); target.setError(Constants.getInstance().getBeamRadius()); if(beamSpot) target.passive = false; else target.passive = true; return target; - } - - private Surface getScatteringChamber() { - Point3D center = new Point3D(0, 0, Geometry.getInstance().getZoffset()-100); - Point3D origin = new Point3D(39.5, 0, Geometry.getInstance().getZoffset()-100); - Vector3D axis = new Vector3D(0,0,1); - Arc3D base = new Arc3D(origin, center, axis, 2*Math.PI); - Cylindrical3D chamber = new Cylindrical3D(base, 200); - Surface scatteringChamber = new Surface(chamber, new Strip(0, 0, 0), Constants.DEFAULTSWIMACC); - scatteringChamber.addMaterial(Constants.TARGETRHOACELL); - scatteringChamber.passive=true; - return scatteringChamber; - } + } private static Surface getCTOF() { @@ -134,7 +126,7 @@ private static Surface getCTOF() { Cylindrical3D barrel = new Cylindrical3D(base, (lineZ.end().z -lineZ.origin().z)*10); Surface ctof = new Surface(barrel, new Strip(0, 0, 0), Constants.DEFAULTSWIMACC); - ctof.addMaterial(Constants.SCINTILLATOR.clone(thickness*10)); + ctof.addMaterial(Geometry.SCINTILLATOR.clone(thickness*10)); ctof.setIndex(DetectorType.CTOF.getDetectorId()); ctof.setLayer(1); ctof.setSector(1); @@ -160,7 +152,7 @@ private static List getCND() { Cylindrical3D barrel = new Cylindrical3D(base, length*10); Surface cnd = new Surface(barrel, new Strip(0, 0, 0), Constants.DEFAULTSWIMACC); - cnd.addMaterial(Constants.SCINTILLATOR.clone(thickness*10)); + cnd.addMaterial(Geometry.SCINTILLATOR.clone(thickness*10)); cnd.setIndex(DetectorType.CND.getDetectorId()); cnd.setLayer(ilayer+1); cnd.setSector(1); @@ -184,7 +176,7 @@ private Surface getCosmicPlane() { Vector3D dir = new Vector3D(0,1,0); Plane3D plane = new Plane3D(point, dir); Surface cosmic = new Surface(plane, point,ep1, ep2,Constants.DEFAULTSWIMACC); - cosmic.addMaterial(Constants.VACUUM); + cosmic.addMaterial(Geometry.VACUUM); cosmic.setError(1); cosmic.hemisphere = 1; cosmic.passive = true; diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/CVTEngine.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/CVTEngine.java index 3df508631..e278b0c9c 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/CVTEngine.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/CVTEngine.java @@ -67,7 +67,7 @@ public void setDocacutsum(double docacutsum) { private int removeRegion = 0; private int beamSpotConstraint = 2; private double beamSpotRadius = 0.3; - private String targetMaterial = "LH2"; + private String targetMaterial = ""; private boolean elossPrecorrection = true; private boolean svtSeeding = true; private boolean timeCuts = true; @@ -290,7 +290,7 @@ public boolean processDataEvent(DataEvent event) { IndexedTable bmtStripThreshold = this.getConstantsManager().getConstants(run, "/calibration/mvt/bmt_strip_voltage_thresholds"); IndexedTable beamPos = this.getConstantsManager().getConstants(run, "/geometry/beam/position"); - Geometry.initialize(this.getConstantsManager().getVariation(), 11, svtLorentz, bmtVoltage); + Geometry.getInstance().initialize(this.getConstantsManager().getVariation(), run, svtLorentz, bmtVoltage); CVTReconstruction reco = new CVTReconstruction(swimmer); @@ -588,7 +588,7 @@ public void printConfiguration() { System.out.println("["+this.getName()+"] run with region "+this.getEngineConfigString("removeRegion")+" removed"); System.out.println("["+this.getName()+"] run with beamSpotConst set to "+Constants.getInstance().beamSpotConstraint+ " (0=no-constraint, 1=seed only, 2=seed and KF)"); System.out.println("["+this.getName()+"] run with beam spot size set to "+Constants.getInstance().getBeamRadius()); - System.out.println("["+this.getName()+"] Target material set to "+ Constants.getInstance().getTargetMaterial().getName()); + System.out.println("["+this.getName()+"] Target material set to "+ Constants.getInstance().getTargetType()); System.out.println("["+this.getName()+"] Pre-Eloss correction set to " + Constants.getInstance().preElossCorrection); System.out.println("["+this.getName()+"] run SVT-based seeding set to "+ Constants.getInstance().svtSeeding); System.out.println("["+this.getName()+"] run BMT timing cuts set to "+ Constants.getInstance().timeCuts); diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/CVTSecondPassEngine.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/CVTSecondPassEngine.java index 8f6ed6741..645974c31 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/CVTSecondPassEngine.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/CVTSecondPassEngine.java @@ -3,7 +3,6 @@ import java.util.ArrayList; import java.util.List; import org.jlab.clas.swimtools.Swim; -import org.jlab.detector.base.DetectorType; import org.jlab.io.base.DataBank; import org.jlab.io.base.DataEvent; import org.jlab.rec.cvt.Constants; @@ -43,7 +42,7 @@ public boolean processDataEvent(DataEvent event) { IndexedTable bmtVoltage = this.getConstantsManager().getConstants(run, "/calibration/mvt/bmt_voltage"); IndexedTable beamPos = this.getConstantsManager().getConstants(run, "/geometry/beam/position"); - Geometry.initialize(this.getConstantsManager().getVariation(), 11, svtLorentz, bmtVoltage); + Geometry.getInstance().initialize(this.getConstantsManager().getVariation(), run, svtLorentz, bmtVoltage); if(Constants.getInstance().isCosmics) { return true; diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/TracksFromTargetRec.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/TracksFromTargetRec.java index fd662a541..7e78c191f 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/TracksFromTargetRec.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/TracksFromTargetRec.java @@ -3,7 +3,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.Comparator; import java.util.List; import java.util.Map; import org.jlab.clas.pdg.PDGDatabase; diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/svt/SVTGeometry.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/svt/SVTGeometry.java index 9730592bc..81fbeae34 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/svt/SVTGeometry.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/svt/SVTGeometry.java @@ -223,7 +223,6 @@ public double getLocalAngle(int layer, int sector, Vector3D trackDir) { public List getSurfaces() { List surfaces = new ArrayList<>(); - surfaces.add(this.getShieldSurface()); surfaces.add(this.getFaradayCageSurfaces(0)); for(int i=1; i<=NLAYERS; i++) { surfaces.add(this.getSurface(i, 1, new Strip(0,0,0))); @@ -255,24 +254,6 @@ public Surface getSurface(int layer, int sector, Strip strip) { surface.passive=false; return surface; } - - public Surface getShieldSurface() { - Point3D center = new Point3D(0, 0, Geometry.getInstance().getZoffset()+SVTConstants.TSHIELDZPOS-SVTConstants.TSHIELDLENGTH/2); - Point3D origin = new Point3D(SVTConstants.TSHIELDRMAX, 0, Geometry.getInstance().getZoffset()+SVTConstants.TSHIELDZPOS-SVTConstants.TSHIELDLENGTH/2); - Vector3D axis = new Vector3D(0,0,1); - Arc3D base = new Arc3D(origin, center, axis, 2*Math.PI); - Cylindrical3D shieldCylinder = new Cylindrical3D(base, SVTConstants.TSHIELDLENGTH); - Surface shieldSurface = new Surface(shieldCylinder, new Strip(0, 0, 0), Constants.DEFAULTSWIMACC); - shieldSurface.addMaterial("TungstenShield", - SVTConstants.TSHIELDRMAX-SVTConstants.TSHIELDRMIN, - SVTConstants.TSHIELDRHO, - SVTConstants.TSHIELDZOVERA, - SVTConstants.TSHIELDRADLEN, - SVTConstants.TSHIELDI, - Units.MM); - shieldSurface.passive=true; - return shieldSurface; - } public Surface getFaradayCageSurfaces(int i) { Point3D center = new Point3D(0, 0, SVTConstants.FARADAYCAGEZPOS[i]-SVTConstants.FARADAYCAGELENGTH[i]/2); diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Cell.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Cell.java index ab7116332..1d9701ae5 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Cell.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Cell.java @@ -90,7 +90,7 @@ public Point2d getCrs2D(int i, String vw) { point.set(cross.getPoint().x(), cross.getPoint().y()); } if (vw.equalsIgnoreCase("ZR")) { - point.set(cross.getPoint().z() - Geometry.getInstance().getZoffset(), cross.getRadius()); + point.set(cross.getPoint().z() - Geometry.getInstance().getTargetZOffset(), cross.getRadius()); } return point; } diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java index 1ef949213..5b11f32d4 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java @@ -437,7 +437,7 @@ public boolean isGood() { System.out.println("Pass SSA , c2 ok "+(this.getChi2() <= Constants.CHI2CUTSSA * (this.getNDF() + 5)) +" ndf ok "+ (this.getNDF() >= Constants.NDFCUT) +" r ok "+ (this.getHelix().radius() >= Constants.getInstance().getRCUT()) - +" dz ok "+ (Math.abs(Geometry.getInstance().getZoffset()-this.getHelix().getZ0()) <= Geometry.getInstance().getZlength()+Constants.getInstance().getZRANGE()) + +" dz ok "+ (Math.abs(Geometry.getInstance().getTargetZOffset()-this.getHelix().getZ0()) <= Geometry.getInstance().getTargetHalfLength()+Constants.getInstance().getZRANGE()) +" "); } boolean pass = true; @@ -449,7 +449,7 @@ public boolean isGood() { pass = false; if(this.getHelix().radius() < Constants.getInstance().getRCUT()) pass = false; - if(Math.abs(Geometry.getInstance().getZoffset()-this.getHelix().getZ0()) > Geometry.getInstance().getZlength()+Constants.getInstance().getZRANGE()+Constants.DZCUTBUFFEESSA) + if(Math.abs(Geometry.getInstance().getTargetZOffset()-this.getHelix().getZ0()) > Geometry.getInstance().getTargetHalfLength()+Constants.getInstance().getZRANGE()+Constants.DZCUTBUFFEESSA) pass = false; return pass; } diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Track.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Track.java index 0222806d4..95a46667b 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Track.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Track.java @@ -328,7 +328,7 @@ else if(this.getChi2() > Constants.CHI2CUT * (this.getNDF() + 5)) return false; if(this.getHelix().radius() < Constants.getInstance().getRCUT()) return false; - if(Math.abs(Geometry.getInstance().getZoffset()-this.getHelix().getZ0()) > Geometry.getInstance().getZlength()+Constants.getInstance().getZRANGE()) + if(Math.abs(Geometry.getInstance().getTargetZOffset()-this.getHelix().getZ0()) > Geometry.getInstance().getTargetHalfLength()+Constants.getInstance().getZRANGE()) return false; else return true; diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/TrackSeederRZ.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/TrackSeederRZ.java index 14ddf44ad..8c1e3bec3 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/TrackSeederRZ.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/TrackSeederRZ.java @@ -182,8 +182,8 @@ private boolean interceptOK(Cross c1, Cross c2) { boolean value = false; double sl = (c1.getPoint().z() - c2.getPoint().z())/(c1.getPoint().toVector3D().rho() - c2.getPoint().toVector3D().rho()); double in = -sl*c1.getPoint().toVector3D().rho()+c1.getPoint().z(); - double targetCen = Geometry.getInstance().getZoffset(); - double targetLen = Geometry.getInstance().getZlength(); + double targetCen = Geometry.getInstance().getTargetZOffset(); + double targetLen = Geometry.getInstance().getTargetHalfLength(); if(Math.abs(targetCen-in) Date: Fri, 1 Mar 2024 20:12:41 -0500 Subject: [PATCH 010/201] feat: dependabot (#205) * feat: dependabot * feat: include actions --- .github/dependabot.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..e1d1cc748 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,10 @@ +version: 2 +updates: + - package-ecosystem: "maven" + directory: "/" + schedule: + interval: "weekly" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" From cae5cc6f025e0fb765eb788ca89f8af4dd42b25c Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Thu, 7 Mar 2024 11:25:19 -0500 Subject: [PATCH 011/201] fix(ci): latest v4 `groovy` 4.0.19 has been silently failing; regress to 4.0.3, the `ifarm` version (#204) --- .github/workflows/maven.yml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 0427b971b..43f3bb51d 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -16,6 +16,11 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true +env: + java_version: 11 + java_distribution: zulu + groovy_version: 4.0.3 + jobs: # build @@ -36,8 +41,8 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: 11 - distribution: zulu + java-version: ${{ env.java_version }} + distribution: ${{ env.java_distribution }} - name: build run: ./build-coatjava.sh --spotbugs --unittests --quiet -T4 - name: tar # tarball to preserve permissions @@ -90,8 +95,8 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: 11 - distribution: zulu + java-version: ${{ env.java_version }} + distribution: ${{ env.java_distribution }} - uses: actions/download-artifact@v4 with: name: build_${{ matrix.runner }} @@ -111,12 +116,12 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: 11 - distribution: zulu + java-version: ${{ env.java_version }} + distribution: ${{ env.java_distribution }} - name: setup groovy uses: wtfjoke/setup-groovy@v2 with: - groovy-version: 4.x + groovy-version: ${{ env.groovy_version }} - uses: actions/download-artifact@v4 with: name: build_${{ needs.build.outputs.default_runner }} From 4b4ff4aca426a416c6d4966061d6ea0c89366a10 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 11:46:23 -0500 Subject: [PATCH 012/201] build(deps-dev): bump junit:junit from 4.13.1 to 4.13.2 (#207) --- parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parent/pom.xml b/parent/pom.xml index 75a90eafe..3fe8d0f82 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -23,7 +23,7 @@ junit junit - 4.13.1 + 4.13.2 test From 6c2e88f21ada91dbf6a6aaa24fc9bf724412d5c3 Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Thu, 7 Mar 2024 12:19:29 -0500 Subject: [PATCH 013/201] fix: Nonsensical self computation of `n` with itself in `HelixFitJava` (#212) --- .../src/main/java/org/jlab/rec/ahdc/HelixFit/HelixFitJava.java | 2 +- .../rtpc/src/main/java/org/jlab/rec/rtpc/hit/HelixFitJava.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/HelixFit/HelixFitJava.java b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/HelixFit/HelixFitJava.java index d75ee8e2c..55a50a4c7 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/HelixFit/HelixFitJava.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/ahdc/HelixFit/HelixFitJava.java @@ -56,7 +56,7 @@ void rwsmin(double v[], double b[], int n, int m, int nrank) // --------- Loop begins ---------- - nrank = n - ni; + nrank = 0; for (i=1; i<=ni; i++) { diff --git a/reconstruction/rtpc/src/main/java/org/jlab/rec/rtpc/hit/HelixFitJava.java b/reconstruction/rtpc/src/main/java/org/jlab/rec/rtpc/hit/HelixFitJava.java index 15309ed66..7c4268074 100644 --- a/reconstruction/rtpc/src/main/java/org/jlab/rec/rtpc/hit/HelixFitJava.java +++ b/reconstruction/rtpc/src/main/java/org/jlab/rec/rtpc/hit/HelixFitJava.java @@ -58,7 +58,7 @@ void rwsmin(double v[], double b[], int n, int m, int nrank) // --------- Loop begins ---------- - nrank = n - ni; + nrank = 0; for (i=1; i<=ni; i++) { From 99bd50e2a26c9e7b1f365fa92f2eb592f31ed133 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 16:30:40 -0500 Subject: [PATCH 014/201] build(deps): bump com.github.spotbugs:spotbugs-maven-plugin (#209) --- common-tools/cnuphys/parent/pom.xml | 2 +- parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index 04f9722bf..749983355 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -38,7 +38,7 @@ com.github.spotbugs spotbugs-maven-plugin - 3.1.12 + 4.8.3.1 spotbugs-exclude.xml diff --git a/parent/pom.xml b/parent/pom.xml index 3fe8d0f82..35adec444 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -70,7 +70,7 @@ com.github.spotbugs spotbugs-maven-plugin - 3.1.12 + 4.8.3.1 spotbugs-exclude.xml From e79a7c2ec0235854ee4572e1159b65247e708c29 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 7 Mar 2024 16:32:47 -0500 Subject: [PATCH 015/201] log and ignore multiple run numbers instead of exception (#215) Co-authored-by: Nathan Baltzell --- .../org/jlab/detector/helicity/HelicitySequence.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/HelicitySequence.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/HelicitySequence.java index c5b41039b..5acd1f8bf 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/HelicitySequence.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/HelicitySequence.java @@ -88,16 +88,17 @@ public final boolean addState(HelicityState state) { LOGGER.log(Level.FINE, "HelicitySequence: adding state: {0}", state); - // terminate if trying to add more than one run number: + // ignore states from other run numbers: for (HelicityState hs : this.states) { - if (hs.getRun()!=state.getRun()) { - throw new RuntimeException("Run number mismatch: "+state.getRun()+"/"+state.getRun()); + if (hs.getRun() != state.getRun()) { + LOGGER.log(Level.WARNING, "HelicitySequence: run number mismatch (OLD/NEW = {0},{1}), ignoring state", new Object[]{hs.getRun(), state.getRun()}); + return false; } } - + // mark that we'll need to redo the analysis: this.analyzed=false; - + // FIXME: should we be using a SortedSet instead? // Looks like SortedList doesn't exist until java 10, // and SortedSet doesn't give easy access by index? From 0d277302e2b1d5c3f2f0133ece41e2d72a151f8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 17:57:41 -0500 Subject: [PATCH 016/201] build(deps): bump org.apache.maven.plugins:maven-compiler-plugin (#210) Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.8.0 to 3.12.1. - [Release notes](https://github.com/apache/maven-compiler-plugin/releases) - [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.8.0...maven-compiler-plugin-3.12.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-compiler-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- common-tools/cnuphys/parent/pom.xml | 2 +- parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index 749983355..43b3efc36 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -46,7 +46,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.0 + 3.12.1 UTF-8 11 diff --git a/parent/pom.xml b/parent/pom.xml index 35adec444..53ac6ee13 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -89,7 +89,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.0 + 3.12.1 11 UTF-8 From b49fade74ce5941ae50d8c35d9efd3409c8c1e12 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 7 Mar 2024 19:39:13 -0500 Subject: [PATCH 017/201] fix old eb test (#216) Co-authored-by: Nathan Baltzell --- .../org/jlab/service/eb/EBReconstructionTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/reconstruction/eb/src/test/java/org/jlab/service/eb/EBReconstructionTest.java b/reconstruction/eb/src/test/java/org/jlab/service/eb/EBReconstructionTest.java index 3021b4777..44296527c 100644 --- a/reconstruction/eb/src/test/java/org/jlab/service/eb/EBReconstructionTest.java +++ b/reconstruction/eb/src/test/java/org/jlab/service/eb/EBReconstructionTest.java @@ -6,6 +6,7 @@ import org.jlab.analysis.physics.TestEvent; import org.jlab.analysis.math.ClasMath; import org.jlab.clas.swimtools.MagFieldsEngine; +import cnuphys.magfield.MagneticFields; import org.jlab.io.base.DataBank; import org.jlab.io.base.DataEvent; @@ -17,6 +18,8 @@ import org.jlab.service.ftof.FTOFTBEngine; import org.jlab.service.htcc.HTCCReconstructionService; import org.jlab.service.ltcc.LTCCEngine; + +import org.jlab.utils.CLASResources; import org.jlab.utils.system.ClasUtilsFile; /** @@ -26,9 +29,20 @@ public class EBReconstructionTest { public void processAllEngines(DataEvent ev) { + + String mapDir = CLASResources.getResourcePath("etc")+"/data/magfield"; + try { + MagneticFields.getInstance().initializeMagneticFields(mapDir, + "Symm_torus_r2501_phi16_z251_24Apr2018.dat","Symm_solenoid_r601_phi1_z1201_13June2018.dat"); + } + catch (Exception e) { + e.printStackTrace(); + } + MagFieldsEngine enf = new MagFieldsEngine(); enf.init(); enf.processDataEvent(ev); + DCHBEngine engineDCHB = new DCHBEngine(); engineDCHB.init(); engineDCHB.processDataEvent(ev); From d6973a675e9ceee7998e614192b5772b45f3e77a Mon Sep 17 00:00:00 2001 From: Raffaella De Vita Date: Tue, 5 Mar 2024 18:27:32 -0500 Subject: [PATCH 018/201] switch to new /geometry/shifts/solenoid and /geometry/shifts/target ccdb tables --- .../java/org/jlab/analysis/roads/DictionaryGenerator.java | 4 ++-- .../main/java/org/jlab/detector/base/DetectorType.java | 1 + .../main/java/org/jlab/detector/base/GeometryFactory.java | 8 ++++++-- .../org/jlab/detector/geant4/v2/CTOFGeant4Factory.java | 4 ++-- .../org/jlab/detector/geant4/v2/SVT/SVTConstants.java | 2 -- .../java/org/jlab/clas/swimtools/MagFieldsEngine.java | 6 +++--- .../rec/cnd/constants/CalibrationConstantsLoader.java | 7 ++++--- .../cvt/src/main/java/org/jlab/rec/cvt/Geometry.java | 4 ++-- .../dc/src/main/java/org/jlab/rec/dc/Constants.java | 4 ++-- .../eb/src/main/java/org/jlab/rec/eb/EBCCDBConstants.java | 4 ++-- .../ft/src/main/java/org/jlab/rec/ft/FTEBEngine.java | 2 +- .../ft/src/main/java/org/jlab/rec/ft/FTEventBuilder.java | 4 ++-- 12 files changed, 27 insertions(+), 23 deletions(-) diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryGenerator.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryGenerator.java index 1b4153c39..4f3c15853 100644 --- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryGenerator.java +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/roads/DictionaryGenerator.java @@ -226,8 +226,8 @@ private void init(String variation, double torusScale, double solenoidScale, lon this.variation = variation; ConstantProvider providerDC = GeometryFactory.getConstants(DetectorType.DC, run, variation); dcDetector = new DCGeant4Factory(providerDC, true, true); - ConstantProvider providerTG = GeometryFactory.getConstants(DetectorType.TARGET, run, variation); - solShift = providerTG.getDouble("/geometry/target/position",0); + ConstantProvider providerMAGNETS = GeometryFactory.getConstants(DetectorType.MAGNETS, run, variation); + solShift = providerMAGNETS.getDouble("/geometry/shifts/solenoid/z",0); ConstantProvider providerFTOF = GeometryFactory.getConstants(DetectorType.FTOF, run, variation); ftofDetector = new FTOFGeant4Factory(providerFTOF); ecalDetector = GeometryFactory.getDetector(DetectorType.ECAL, run, variation); diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/DetectorType.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/DetectorType.java index 67ae4d472..9aed37f7e 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/DetectorType.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/DetectorType.java @@ -30,6 +30,7 @@ public enum DetectorType { RASTER (22, "RASTER"), URWELL (23, "URWELL"), TARGET (100, "TARGET"), + MAGNETS (101, "MAGNETS"), ECIN (110, "ECIN"), ECOUT (111, "ECOUT"), ECTOT (112, "ECTOT"), diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java index 04dd0cee1..2d33bd228 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java @@ -88,7 +88,7 @@ public static ConstantProvider getConstants(DetectorType type, int run, String v if(type==DetectorType.CTOF){ provider.loadTable("/geometry/ctof/ctof"); provider.loadTable("/geometry/ctof/cad"); - provider.loadTable("/geometry/target"); + provider.loadTable("/geometry/shifts/solenoid"); } if(type==DetectorType.FTCAL){ @@ -107,10 +107,14 @@ public static ConstantProvider getConstants(DetectorType type, int run, String v } if(type==DetectorType.TARGET){ - provider.loadTable("/geometry/target"); + provider.loadTable("/geometry/shifts/target"); provider.loadTable("/geometry/materials/target"); } + if(type==DetectorType.MAGNETS){ + provider.loadTable("/geometry/shifts/solenoid"); + } + if(type==DetectorType.FMT){ provider.loadTable("/geometry/fmt/fmt_global"); provider.loadTable("/geometry/fmt/fmt_layer_noshim"); diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/CTOFGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/CTOFGeant4Factory.java index 77f4770b7..aef46d3d0 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/CTOFGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/CTOFGeant4Factory.java @@ -26,12 +26,12 @@ public final class CTOFGeant4Factory extends Geant4Factory { private final int npaddles = 48; private final String ctofdbpath = "/geometry/ctof/ctof/"; private final String caddbpath = "/geometry/ctof/cad/"; - private final String tgdbpath = "/geometry/target/"; + private final String tgdbpath = "/geometry/shifts/solenoid/"; private double globalOffset = 0; public CTOFGeant4Factory(ConstantProvider cp) { - this.globalOffset = cp.getDouble(tgdbpath+"position", 0); + this.globalOffset = cp.getDouble(tgdbpath+"z", 0); double cadRadius = cp.getDouble(caddbpath+"radius", 0); double cadThick = cp.getDouble(caddbpath+"thickness", 0); double cadAngle = cp.getDouble(caddbpath+"angle", 0); diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java index c048c033d..0a9934a8b 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java @@ -147,8 +147,6 @@ public static DatabaseConstantProvider connect( DatabaseConstantProvider cp ) cp.loadTable( ccdbPath +"material/peeksupport"); cp.loadTable( ccdbPath +"layeralignment"); cp.loadTable( ccdbPath +"position"); - //shift by target -// cp.loadTable("/geometry/target"); //if( loadAlignmentTables ) cp.loadTable( ccdbPath +"alignment/sector"); // possible future tables //if( loadAlignmentTables ) cp.loadTable( ccdbPath +"alignment/layer"); diff --git a/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/MagFieldsEngine.java b/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/MagFieldsEngine.java index 4a37be09c..90ca21632 100644 --- a/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/MagFieldsEngine.java +++ b/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/MagFieldsEngine.java @@ -154,7 +154,7 @@ public boolean initializeMagneticFields() { } private void loadTables() { - String[] ccdbTables = new String[] { "/geometry/target" }; + String[] ccdbTables = new String[] { "/geometry/shifts/solenoid" }; requireConstants(Arrays.asList(ccdbTables)); this.getConstantsManager().setVariation("default"); @@ -173,8 +173,8 @@ public boolean processDataEvent(DataEvent event) { if (solShift == null) { // if no shift is set in the yaml file or environment, read from CCDB // will read target position and assume that is representative of the shift of // the whole CD - IndexedTable targetPosition = this.getConstantsManager().getConstants(newRun, "/geometry/target"); - Swimmer.set_zShift((float) targetPosition.getDoubleValue("position", 0, 0, 0)); + IndexedTable targetPosition = this.getConstantsManager().getConstants(newRun, "/geometry/shift/solenoid"); + Swimmer.set_zShift((float) targetPosition.getDoubleValue("z", 0, 0, 0)); } Swimmer.setMagneticFieldsScales(bank.getFloat("solenoid", 0), bank.getFloat("torus", 0), (double) 0.0, diff --git a/reconstruction/cnd/src/main/java/org/jlab/rec/cnd/constants/CalibrationConstantsLoader.java b/reconstruction/cnd/src/main/java/org/jlab/rec/cnd/constants/CalibrationConstantsLoader.java index 53999c87e..ac01252ef 100644 --- a/reconstruction/cnd/src/main/java/org/jlab/rec/cnd/constants/CalibrationConstantsLoader.java +++ b/reconstruction/cnd/src/main/java/org/jlab/rec/cnd/constants/CalibrationConstantsLoader.java @@ -26,8 +26,9 @@ public class CalibrationConstantsLoader { "/calibration/cnd/Energy", "/calibration/cnd/time_jitter", "/geometry/cnd/cndgeom", - "/geometry/target", "/calibration/cnd/cluster", - "/calibration/cnd/double_hits" + "/geometry/shifts/solenoid", + "/calibration/cnd/cluster", + "/calibration/cnd/double_hits" }; public CalibrationConstantsLoader(int run, ConstantsManager ccdb) { @@ -129,7 +130,7 @@ public final void Load(int run, ConstantsManager ccdb) { INNERRADIUS[0] = 10.*tabJs.get(10).getDoubleValue("InnerRadius", 1, 1, 1); THICKNESS[0] = 10.*tabJs.get(10).getDoubleValue("Thickness", 1, 1, 1); // not right structure for common tools - ZTARGET[0] = tabJs.get(11).getDoubleValue("position", 0, 0, 0); // not right structure for common tools + ZTARGET[0] = tabJs.get(11).getDoubleValue("z", 0, 0, 0); // not right structure for common tools //INNERRADIUS[0] = 290.0; //THICKNESS[0] = 30.0; diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Geometry.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Geometry.java index 555eec510..dd14ef47c 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Geometry.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Geometry.java @@ -145,8 +145,8 @@ private synchronized void load(String variation, int run, IndexedTable svtLorent private void initTarget(ConstantProvider provider) { // get target position and half-length from old table // half-length used for track candidates vertex cut - this.targetPosition = provider.getDouble("/geometry/target/position",0)*10; - this.targetHalfLength = provider.getDouble("/geometry/target/length",0)*10; + this.targetPosition = provider.getDouble("/geometry/shifts/target/z",0)*10; + this.targetHalfLength = provider.getDouble("/geometry/materials/target/length",0)*10/2; // load target geometry and material, using CCDB table if targetMat yaml // variable is not specified or differs from LH2/LD2 if("LH2".equals(Constants.getInstance().getTargetType()) || diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java index 15e7498e9..d29dfc291 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java @@ -517,8 +517,8 @@ private synchronized void LoadGeometry(String geoVariation, double[][] shifts) { } // Load target ConstantProvider providerTG = GeometryFactory.getConstants(DetectorType.TARGET, 11, geoVariation); - double targetPosition = providerTG.getDouble("/geometry/target/position",0); - double targetLength = providerTG.getDouble("/geometry/target/length",0); + double targetPosition = providerTG.getDouble("/geometry/shifts/target/z",0); + double targetLength = providerTG.getDouble("/geometry/materials/target/length",0); // Load other geometries ConstantProvider providerFTOF = GeometryFactory.getConstants(DetectorType.FTOF, 11, geoVariation); ftofDetector = new FTOFGeant4Factory(providerFTOF); diff --git a/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBConstants.java b/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBConstants.java index d3ad93f76..f113810ba 100644 --- a/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBConstants.java +++ b/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBConstants.java @@ -42,7 +42,7 @@ public class EBCCDBConstants { "/runcontrol/fcup", "/runcontrol/hwp", "/runcontrol/helicity", - "/geometry/target", + "/geometry/shifts/target", "/calibration/ftof/tres", //"/calibration/ctof/tres" }; @@ -275,7 +275,7 @@ public final void load(int run,ConstantsManager manager) { loadDouble(EBCCDBEnum.NEUTRON_maxBeta,"neutron_beta","neutron_beta",0,0,0); - loadDouble(EBCCDBEnum.TARGET_POSITION,"/geometry/target","position",0,0,0); + loadDouble(EBCCDBEnum.TARGET_POSITION,"/geometry/shifts/target","z",0,0,0); loadDouble(EBCCDBEnum.FCUP_slope,"/runcontrol/fcup","slope",0,0,0); loadDouble(EBCCDBEnum.FCUP_offset,"/runcontrol/fcup","offset",0,0,0); diff --git a/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEBEngine.java b/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEBEngine.java index 57bc2bca0..64513b389 100644 --- a/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEBEngine.java +++ b/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEBEngine.java @@ -50,7 +50,7 @@ public boolean init() { "/calibration/ft/ftcal/cluster", "/calibration/ft/ftcal/thetacorr", "/calibration/ft/ftcal/phicorr", - "/geometry/target" + "/geometry/shift/target" }; requireConstants(Arrays.asList(tables)); this.getConstantsManager().setVariation("default"); diff --git a/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEventBuilder.java b/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEventBuilder.java index e9db393b3..5036d5557 100644 --- a/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEventBuilder.java +++ b/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEventBuilder.java @@ -113,13 +113,13 @@ public void correctDirection(List particles, ConstantsManager manage } public List initFTparticles(List responses, ConstantsManager manager, int run) { - IndexedTable target = manager.getConstants(run, "/geometry/target"); + IndexedTable target = manager.getConstants(run, "/geometry/shifts/target"); List particles = new ArrayList<>(); for (int i = 0; i < responses.size(); i++) { if (responses.get(i).getType()==DetectorType.FTCAL) { // start assuming the cluster to be associated to a photon - FTParticle track = new FTParticle(i, 0, this.solenoidField, responses.get(i), 0, 0, target.getDoubleValue("position", 0,0,0)); + FTParticle track = new FTParticle(i, 0, this.solenoidField, responses.get(i), 0, 0, target.getDoubleValue("z", 0,0,0)); particles.add(track); responses.get(i).setAssociation(particles.size()-1); } From a3875185f9fdd793776d08e98c7bf1f33680892d Mon Sep 17 00:00:00 2001 From: Raffaella De Vita Date: Wed, 6 Mar 2024 18:52:12 -0500 Subject: [PATCH 019/201] fixed ttypos in CCDB table path, switch FT and EB to use solenoid center for compatibility with calibrations, fixed bug if ND3 is chosen for CVT eloss --- .../java/org/jlab/detector/base/GeometryFactory.java | 1 - .../org/jlab/detector/geant4/v2/SVT/SVTConstants.java | 2 +- .../java/org/jlab/clas/swimtools/MagFieldsEngine.java | 2 +- .../java/org/jlab/rec/cvt/measurement/Measurements.java | 3 ++- .../src/main/java/org/jlab/rec/eb/EBCCDBConstants.java | 4 ++-- .../eb/src/main/java/org/jlab/rec/eb/EBCCDBEnum.java | 2 +- .../src/main/java/org/jlab/rec/eb/EBRadioFrequency.java | 9 ++++++--- .../ft/src/main/java/org/jlab/rec/ft/FTEBEngine.java | 2 +- .../ft/src/main/java/org/jlab/rec/ft/FTEventBuilder.java | 4 ++-- 9 files changed, 16 insertions(+), 13 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java index 2d33bd228..6a14e9c45 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java @@ -103,7 +103,6 @@ public static ConstantProvider getConstants(DetectorType type, int run, String v provider.loadTable("/geometry/cvt/svt/material/box"); provider.loadTable("/geometry/cvt/svt/material/tube"); provider.loadTable("/geometry/cvt/svt/alignment"); - provider.loadTable("/geometry/target"); } if(type==DetectorType.TARGET){ diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java index 0a9934a8b..a96bd20df 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java @@ -387,7 +387,7 @@ else if( value == "tube" ) // offset by boxNum to reset row for CCDB table // | | radius | radius // | | | // o==============v===========================v===================================-> z (beamline) -// System.out.println("SVT READ Z SHIFT VALUE "+cp.getDouble("/geometry/target/position", 0)); + // LAYERRADIUS and ZSTARTACTIVE are used primarily by the Reconstruction and getStrip() for( int region = 0; region < NREGIONS; region++ ) { diff --git a/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/MagFieldsEngine.java b/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/MagFieldsEngine.java index 90ca21632..ceab50389 100644 --- a/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/MagFieldsEngine.java +++ b/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/MagFieldsEngine.java @@ -173,7 +173,7 @@ public boolean processDataEvent(DataEvent event) { if (solShift == null) { // if no shift is set in the yaml file or environment, read from CCDB // will read target position and assume that is representative of the shift of // the whole CD - IndexedTable targetPosition = this.getConstantsManager().getConstants(newRun, "/geometry/shift/solenoid"); + IndexedTable targetPosition = this.getConstantsManager().getConstants(newRun, "/geometry/shifts/solenoid"); Swimmer.set_zShift((float) targetPosition.getDoubleValue("z", 0, 0, 0)); } diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java index a7d5974d8..dcefd1f33 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java @@ -100,7 +100,8 @@ private Surface getTarget(double xbeam, double ybeam, boolean beamSpot) { Point3D p = new Point3D(xbeam, ybeam, 0); Line3D l = new Line3D(p, u); Surface target = new Surface(l.origin(), l.end(), Constants.DEFAULTSWIMACC); - if(Geometry.getInstance().getTargetCellSurface().lineVolume!=null) { + if(Geometry.getInstance().getTargetCellSurface()!=null && + Geometry.getInstance().getTargetCellSurface().lineVolume!=null) { target.lineVolume = Geometry.getInstance().getTargetCellSurface().lineVolume; } for(Material m : Geometry.getInstance().getTargetMaterials()) diff --git a/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBConstants.java b/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBConstants.java index f113810ba..e762757b0 100644 --- a/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBConstants.java +++ b/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBConstants.java @@ -42,7 +42,7 @@ public class EBCCDBConstants { "/runcontrol/fcup", "/runcontrol/hwp", "/runcontrol/helicity", - "/geometry/shifts/target", + "/geometry/shifts/solenoid", "/calibration/ftof/tres", //"/calibration/ctof/tres" }; @@ -275,7 +275,7 @@ public final void load(int run,ConstantsManager manager) { loadDouble(EBCCDBEnum.NEUTRON_maxBeta,"neutron_beta","neutron_beta",0,0,0); - loadDouble(EBCCDBEnum.TARGET_POSITION,"/geometry/shifts/target","z",0,0,0); + loadDouble(EBCCDBEnum.SOLENOID_POSITION,"/geometry/shifts/solenoid","z",0,0,0); loadDouble(EBCCDBEnum.FCUP_slope,"/runcontrol/fcup","slope",0,0,0); loadDouble(EBCCDBEnum.FCUP_offset,"/runcontrol/fcup","offset",0,0,0); diff --git a/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBEnum.java b/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBEnum.java index 5e058eff6..7062bb7b7 100644 --- a/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBEnum.java +++ b/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBCCDBEnum.java @@ -14,7 +14,7 @@ public enum EBCCDBEnum { FTOF_MATCHING_1B, FTOF_MATCHING_2, CTOF_Matching, - TARGET_POSITION, + SOLENOID_POSITION, RF_BUCKET_LENGTH, RF_OFFSET, RF_CYCLES, diff --git a/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBRadioFrequency.java b/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBRadioFrequency.java index e3ad51c6f..14fed64fb 100644 --- a/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBRadioFrequency.java +++ b/reconstruction/eb/src/main/java/org/jlab/rec/eb/EBRadioFrequency.java @@ -40,12 +40,15 @@ public double getStartTime(DetectorParticle trigger,final DetectorType type,fin final double rfPeriod = this.ccdb.getDouble(EBCCDBEnum.RF_BUCKET_LENGTH); - // The RF calibration is relative to target center: - final double zTarget = this.ccdb.getDouble(EBCCDBEnum.TARGET_POSITION); + // The RF calibration is relative to the solenoid center: + // FIXME the reference point doesn't have to be the solenoid center or + // target center but could be z=0. It only needs to be consistent with + // the one used in RF calibrations + final double zSolenoid = this.ccdb.getDouble(EBCCDBEnum.SOLENOID_POSITION); // The trigger particles' vertex info: final double tVertex = trigger.getVertexTime(type,layer,trigger.getPid()); - final double dzTargetVertex = zTarget - trigger.vertex().z(); + final double dzTargetVertex = zSolenoid - trigger.vertex().z(); // The RF time at the trigger particle's vertex: // (Note, this is shifted forward by a large integer number of RF periods, diff --git a/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEBEngine.java b/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEBEngine.java index 64513b389..f9acd60a4 100644 --- a/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEBEngine.java +++ b/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEBEngine.java @@ -50,7 +50,7 @@ public boolean init() { "/calibration/ft/ftcal/cluster", "/calibration/ft/ftcal/thetacorr", "/calibration/ft/ftcal/phicorr", - "/geometry/shift/target" + "/geometry/shifts/solenoid" }; requireConstants(Arrays.asList(tables)); this.getConstantsManager().setVariation("default"); diff --git a/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEventBuilder.java b/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEventBuilder.java index 5036d5557..d65390d21 100644 --- a/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEventBuilder.java +++ b/reconstruction/ft/src/main/java/org/jlab/rec/ft/FTEventBuilder.java @@ -113,13 +113,13 @@ public void correctDirection(List particles, ConstantsManager manage } public List initFTparticles(List responses, ConstantsManager manager, int run) { - IndexedTable target = manager.getConstants(run, "/geometry/shifts/target"); + IndexedTable solenoid = manager.getConstants(run, "/geometry/shifts/solenoid"); List particles = new ArrayList<>(); for (int i = 0; i < responses.size(); i++) { if (responses.get(i).getType()==DetectorType.FTCAL) { // start assuming the cluster to be associated to a photon - FTParticle track = new FTParticle(i, 0, this.solenoidField, responses.get(i), 0, 0, target.getDoubleValue("z", 0,0,0)); + FTParticle track = new FTParticle(i, 0, this.solenoidField, responses.get(i), 0, 0, solenoid.getDoubleValue("z", 0,0,0)); particles.add(track); responses.get(i).setAssociation(particles.size()-1); } From 3a6b3b78f26b56cc55796bd916c3e8e3739ca40c Mon Sep 17 00:00:00 2001 From: raffaelladevita Date: Fri, 8 Mar 2024 19:38:23 -0500 Subject: [PATCH 020/201] bump version to 10.0.9 (#217) --- common-tools/clara-io/pom.xml | 4 ++-- common-tools/clas-analysis/pom.xml | 20 ++++++++--------- common-tools/clas-detector/pom.xml | 10 ++++----- common-tools/clas-geometry/pom.xml | 4 ++-- common-tools/clas-io/pom.xml | 8 +++---- common-tools/clas-jcsg/pom.xml | 8 +++---- common-tools/clas-logging/pom.xml | 4 ++-- common-tools/clas-math/pom.xml | 4 ++-- common-tools/clas-physics/pom.xml | 4 ++-- common-tools/clas-reco/pom.xml | 16 +++++++------- common-tools/clas-tracking/pom.xml | 6 +++--- common-tools/clas-utils/pom.xml | 4 ++-- common-tools/cnuphys/magfield/pom.xml | 2 +- common-tools/cnuphys/swimmer/pom.xml | 2 +- common-tools/coat-lib/deployDistribution.sh | 2 +- common-tools/coat-lib/pom.xml | 24 ++++++++++----------- common-tools/parent/pom.xml | 2 +- common-tools/pom.xml | 4 ++-- common-tools/swim-tools/pom.xml | 6 +++--- parent/pom.xml | 2 +- pom.xml | 4 ++-- reconstruction/alert/pom.xml | 10 ++++----- reconstruction/band/pom.xml | 4 ++-- reconstruction/cnd/pom.xml | 2 +- reconstruction/cvt/pom.xml | 6 +++--- reconstruction/dc/pom.xml | 12 +++++------ reconstruction/eb/pom.xml | 10 ++++----- reconstruction/ec/pom.xml | 6 +++--- reconstruction/fmt/pom.xml | 6 +++--- reconstruction/ft/pom.xml | 4 ++-- reconstruction/htcc/pom.xml | 4 ++-- reconstruction/ltcc/pom.xml | 4 ++-- reconstruction/mc/pom.xml | 4 ++-- reconstruction/mltn/pom.xml | 6 +++--- reconstruction/pom.xml | 4 ++-- reconstruction/raster/pom.xml | 4 ++-- reconstruction/rich/pom.xml | 6 +++--- reconstruction/rtpc/pom.xml | 6 +++--- reconstruction/swaps/pom.xml | 8 +++---- reconstruction/tof/pom.xml | 4 ++-- reconstruction/urwell/pom.xml | 6 +++--- reconstruction/vtx/pom.xml | 6 +++--- 42 files changed, 131 insertions(+), 131 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index 358a88ea7..e7c5d249c 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clara-io - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml index 5926abe51..4ba7987bb 100644 --- a/common-tools/clas-analysis/pom.xml +++ b/common-tools/clas-analysis/pom.xml @@ -3,63 +3,63 @@ 4.0.0 org.jlab.clas clas-analysis - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-utils - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-physics - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-io - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-geometry - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas swim-tools - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-detector - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml index feeed6c4f..a18304cf6 100644 --- a/common-tools/clas-detector/pom.xml +++ b/common-tools/clas-detector/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-detector - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-utils - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -29,13 +29,13 @@ org.jlab.clas clas-io - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-geometry - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index b5d840f42..3a0d11f7b 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-geometry - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index bda78dbdb..39d51ddfb 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-io - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -87,13 +87,13 @@ org.jlab.clas clas-utils - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-logging - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT compile diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index 02f64fc01..62e8fa0df 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-jcsg - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -27,12 +27,12 @@ org.jlab.clas clas-geometry - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-detector - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT java3d diff --git a/common-tools/clas-logging/pom.xml b/common-tools/clas-logging/pom.xml index a2d86040b..7d0b39f35 100644 --- a/common-tools/clas-logging/pom.xml +++ b/common-tools/clas-logging/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-logging - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml index c40b617c0..c3bd87600 100644 --- a/common-tools/clas-math/pom.xml +++ b/common-tools/clas-math/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-math - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml index ec1a14bed..6cdfc7910 100644 --- a/common-tools/clas-physics/pom.xml +++ b/common-tools/clas-physics/pom.xml @@ -4,14 +4,14 @@ org.jlab.clas clas-physics - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml index 2b975051d..b72c8d634 100644 --- a/common-tools/clas-reco/pom.xml +++ b/common-tools/clas-reco/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -42,37 +42,37 @@ org.jlab.clas clas-math - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-io - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-logging - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-physics - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-utils - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-detector - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index 35e224913..13114240a 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-tracking - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -22,7 +22,7 @@ org.jlab.clas swim-tools - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index 4ab00854b..b30cc51c2 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-utils - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml index 8955f9cb3..5f42c9dfb 100644 --- a/common-tools/cnuphys/magfield/pom.xml +++ b/common-tools/cnuphys/magfield/pom.xml @@ -23,7 +23,7 @@ org.jlab.clas clas-math - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml index 9d7d44eb5..074f63980 100644 --- a/common-tools/cnuphys/swimmer/pom.xml +++ b/common-tools/cnuphys/swimmer/pom.xml @@ -35,7 +35,7 @@ org.jlab.clas clas-math - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/coat-lib/deployDistribution.sh b/common-tools/coat-lib/deployDistribution.sh index 73dae4fde..fd708e368 100755 --- a/common-tools/coat-lib/deployDistribution.sh +++ b/common-tools/coat-lib/deployDistribution.sh @@ -8,7 +8,7 @@ cd `dirname $0` # Script is exporting existing Jar files to repository #------------------------------------------------------------------------------------------------- -VERSION=10.0.8 +VERSION=10.0.9 mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -Dfile=target/coat-libs-${VERSION}-SNAPSHOT.jar \ diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index aa55e5610..2c9f850ca 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jlab.clas coat-libs - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT pom @@ -93,67 +93,67 @@ org.jlab.clas clas-io - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clara-io - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-utils - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-detector - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-analysis - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-geometry - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-physics - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas swim-tools - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-tracking - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index 85dbf905d..5e35ed0f4 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas common-tools - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT pom diff --git a/common-tools/pom.xml b/common-tools/pom.xml index 0efa73590..5599a7272 100644 --- a/common-tools/pom.xml +++ b/common-tools/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas common-tools - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml index 78cf43a05..9823faeee 100644 --- a/common-tools/swim-tools/pom.xml +++ b/common-tools/swim-tools/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas swim-tools - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/parent/pom.xml b/parent/pom.xml index 53ac6ee13..b90b718b8 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas clas12rec - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index 64acd0ef1..cf4177ff4 100644 --- a/pom.xml +++ b/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas clas12 - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT pom org.jlab.clas clas12rec parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml index f620154bb..3be83b767 100644 --- a/reconstruction/alert/pom.xml +++ b/reconstruction/alert/pom.xml @@ -13,31 +13,31 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-io - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT compile org.jlab.clas clas-tracking - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT compile org.jlab.clas clas-geometry - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT compile diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml index a8ad99a74..bbad47018 100644 --- a/reconstruction/band/pom.xml +++ b/reconstruction/band/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml index 003b6585d..adfed40e9 100644 --- a/reconstruction/cnd/pom.xml +++ b/reconstruction/cnd/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml index 687d87909..5e2dd6130 100644 --- a/reconstruction/cvt/pom.xml +++ b/reconstruction/cvt/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -47,7 +47,7 @@ org.jlab.clas clas-tracking - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index 7cf1757f5..d601ebebb 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -22,19 +22,19 @@ org.jlab.clas clas-jcsg - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-analysis - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -63,13 +63,13 @@ org.jlab.clas swim-tools - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-math - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml index 36a6808a0..51128ec89 100644 --- a/reconstruction/eb/pom.xml +++ b/reconstruction/eb/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,25 +21,25 @@ org.jlab.clas clas-utils - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-io - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-analysis - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml index 9850c5bd1..43eee96b2 100644 --- a/reconstruction/ec/pom.xml +++ b/reconstruction/ec/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-analysis - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml index 57556f4dc..d9bed186d 100644 --- a/reconstruction/fmt/pom.xml +++ b/reconstruction/fmt/pom.xml @@ -15,21 +15,21 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas swim-tools - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml index cb5651deb..2de41bf41 100644 --- a/reconstruction/ft/pom.xml +++ b/reconstruction/ft/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml index f4e659199..5a0de183d 100644 --- a/reconstruction/htcc/pom.xml +++ b/reconstruction/htcc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml index 4746b8091..04f8f6f66 100644 --- a/reconstruction/ltcc/pom.xml +++ b/reconstruction/ltcc/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml index c6a07c147..aa6237776 100644 --- a/reconstruction/mc/pom.xml +++ b/reconstruction/mc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml index 3fd7b1c63..d1a5c6ef4 100644 --- a/reconstruction/mltn/pom.xml +++ b/reconstruction/mltn/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -34,13 +34,13 @@ org.jlab.clas clas-io - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index 29abddfe0..abad22958 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -3,14 +3,14 @@ org.jlab.clas reconstruction - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml index 72595c4d9..b73400bce 100644 --- a/reconstruction/raster/pom.xml +++ b/reconstruction/raster/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml index 793134da5..57f3e3e41 100644 --- a/reconstruction/rich/pom.xml +++ b/reconstruction/rich/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml index f5c1deebe..a6224a6ae 100644 --- a/reconstruction/rtpc/pom.xml +++ b/reconstruction/rtpc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,12 +21,12 @@ org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-tracking - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT compile diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml index 2602a87ea..b3b3b3fcd 100644 --- a/reconstruction/swaps/pom.xml +++ b/reconstruction/swaps/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-detector - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-io - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-reco - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml index 42b89656a..f796fcc6d 100644 --- a/reconstruction/tof/pom.xml +++ b/reconstruction/tof/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/urwell/pom.xml b/reconstruction/urwell/pom.xml index 956ed6f11..f54e44778 100644 --- a/reconstruction/urwell/pom.xml +++ b/reconstruction/urwell/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT org.jlab.clas clas-analysis - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml index c1fb6cbc1..26a25a0a8 100644 --- a/reconstruction/vtx/pom.xml +++ b/reconstruction/vtx/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT @@ -33,13 +33,13 @@ org.jlab.clas swim-tools - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar org.jlab.clas clas-tracking - 10.0.8-SNAPSHOT + 10.0.9-SNAPSHOT jar From 651473fef3dce2958dc290f2bd994db5feb5e687 Mon Sep 17 00:00:00 2001 From: rtysonCLAS12 Date: Mon, 18 Mar 2024 10:28:14 -0400 Subject: [PATCH 021/201] Updated Level3 schema --- etc/bankdefs/util/bankSplit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/bankdefs/util/bankSplit.py b/etc/bankdefs/util/bankSplit.py index 7f8b323bc..8199310ab 100755 --- a/etc/bankdefs/util/bankSplit.py +++ b/etc/bankdefs/util/bankSplit.py @@ -101,7 +101,7 @@ def create(dirname, banklist): # Level3 validation schema: level3 = list(dst) -level3.extend(["DC::tdc", "ECAL::adc", "HTCC::adc"]) +level3.extend(["DC::tdc", "ECAL::adc", "HTCC::adc", "FTOF::adc", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBTracks", "HitBasedTrkg::HBClusters", "HitBasedTrkg::HBTracks", "ECAL::clusters"]) create("dst/", set(dst)) create("dsthb/", set(dsthb)) From 203fa7e52c53516a5a8624da8d6a44d3c2744cd8 Mon Sep 17 00:00:00 2001 From: rtysonCLAS12 Date: Mon, 18 Mar 2024 16:50:26 -0400 Subject: [PATCH 022/201] add FTOF tdc bank --- etc/bankdefs/util/bankSplit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/bankdefs/util/bankSplit.py b/etc/bankdefs/util/bankSplit.py index 8199310ab..d9546c2eb 100755 --- a/etc/bankdefs/util/bankSplit.py +++ b/etc/bankdefs/util/bankSplit.py @@ -101,7 +101,7 @@ def create(dirname, banklist): # Level3 validation schema: level3 = list(dst) -level3.extend(["DC::tdc", "ECAL::adc", "HTCC::adc", "FTOF::adc", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBTracks", "HitBasedTrkg::HBClusters", "HitBasedTrkg::HBTracks", "ECAL::clusters"]) +level3.extend(["DC::tdc", "ECAL::adc", "HTCC::adc", "FTOF::tdc", "FTOF::adc", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBTracks", "HitBasedTrkg::HBClusters", "HitBasedTrkg::HBTracks", "ECAL::clusters"]) create("dst/", set(dst)) create("dsthb/", set(dsthb)) From 36f922b52762d56a644e3e67babd722c768082f1 Mon Sep 17 00:00:00 2001 From: raffaelladevita Date: Thu, 21 Mar 2024 11:58:49 -0400 Subject: [PATCH 023/201] added schema for DCHV studies (#229) --- etc/bankdefs/util/bankSplit.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/etc/bankdefs/util/bankSplit.py b/etc/bankdefs/util/bankSplit.py index d9546c2eb..467a30342 100755 --- a/etc/bankdefs/util/bankSplit.py +++ b/etc/bankdefs/util/bankSplit.py @@ -99,9 +99,13 @@ def create(dirname, banklist): dcalign = list(dst) dcalign.extend(["ai::tracks", "aidn::tracks", "TimeBasedTrkg::AIClusters", "TimeBasedTrkg::AIHits", "TimeBasedTrkg::AISegments", "TimeBasedTrkg::AITracks", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBHits", "TimeBasedTrkg::TBSegments", "TimeBasedTrkg::TBSegmentTrajectory", "TimeBasedTrkg::TBTracks"]) +# DC HV studies schema: +dchv = list(dst) +dchv.extend(["DC::tdc", "HitBasedTrkg::HBClusters", "HitBasedTrkg::HBHitTrkId", "HitBasedTrkg::HBHits", "HitBasedTrkg::HBSegmentTrajectory", "HitBasedTrkg::HBSegments", "HitBasedTrkg::HBTracks", "HitBasedTrkg::Hits", "HitBasedTrkg::Trajectory", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBHits", "TimeBasedTrkg::TBSegments", "TimeBasedTrkg::TBSegmentTrajectory", "TimeBasedTrkg::TBTracks"]) + # Level3 validation schema: level3 = list(dst) -level3.extend(["DC::tdc", "ECAL::adc", "HTCC::adc", "FTOF::tdc", "FTOF::adc", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBTracks", "HitBasedTrkg::HBClusters", "HitBasedTrkg::HBTracks", "ECAL::clusters"]) +level3.extend(["DC::tdc", "ECAL::adc", "ECAL::clusters", "FTOF::tdc", "FTOF::adc", "HitBasedTrkg::HBClusters", "HitBasedTrkg::HBTracks", "HTCC::adc", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBTracks"]) create("dst/", set(dst)) create("dsthb/", set(dsthb)) @@ -110,6 +114,7 @@ def create(dirname, banklist): create("ebrerun/", set(ebrerun)) create("ecrerun/", set(ecrerun)) create("dcalign/", set(dcalign)) +create("dchv/", set(dchv)) create("level3/", set(level3)) create("trigger/", set(trig)) From 9d633df2cb3778ef9c57efe7fdadbe1b1dd0f30a Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 22 Mar 2024 09:26:11 -0400 Subject: [PATCH 024/201] bump version (#230) Co-authored-by: Nathan Baltzell --- common-tools/clara-io/pom.xml | 4 ++-- common-tools/clas-analysis/pom.xml | 20 ++++++++--------- common-tools/clas-detector/pom.xml | 10 ++++----- common-tools/clas-geometry/pom.xml | 4 ++-- common-tools/clas-io/pom.xml | 8 +++---- common-tools/clas-jcsg/pom.xml | 8 +++---- common-tools/clas-logging/pom.xml | 4 ++-- common-tools/clas-math/pom.xml | 4 ++-- common-tools/clas-physics/pom.xml | 4 ++-- common-tools/clas-reco/pom.xml | 16 +++++++------- common-tools/clas-tracking/pom.xml | 6 +++--- common-tools/clas-utils/pom.xml | 4 ++-- common-tools/cnuphys/magfield/pom.xml | 2 +- common-tools/cnuphys/swimmer/pom.xml | 2 +- common-tools/coat-lib/deployDistribution.sh | 2 +- common-tools/coat-lib/pom.xml | 24 ++++++++++----------- common-tools/parent/pom.xml | 2 +- common-tools/pom.xml | 4 ++-- common-tools/swim-tools/pom.xml | 6 +++--- parent/pom.xml | 2 +- pom.xml | 4 ++-- reconstruction/alert/pom.xml | 10 ++++----- reconstruction/band/pom.xml | 4 ++-- reconstruction/cnd/pom.xml | 2 +- reconstruction/cvt/pom.xml | 6 +++--- reconstruction/dc/pom.xml | 12 +++++------ reconstruction/eb/pom.xml | 10 ++++----- reconstruction/ec/pom.xml | 6 +++--- reconstruction/fmt/pom.xml | 6 +++--- reconstruction/ft/pom.xml | 4 ++-- reconstruction/htcc/pom.xml | 4 ++-- reconstruction/ltcc/pom.xml | 4 ++-- reconstruction/mc/pom.xml | 4 ++-- reconstruction/mltn/pom.xml | 6 +++--- reconstruction/pom.xml | 4 ++-- reconstruction/raster/pom.xml | 4 ++-- reconstruction/rich/pom.xml | 6 +++--- reconstruction/rtpc/pom.xml | 6 +++--- reconstruction/swaps/pom.xml | 8 +++---- reconstruction/tof/pom.xml | 4 ++-- reconstruction/urwell/pom.xml | 6 +++--- reconstruction/vtx/pom.xml | 6 +++--- 42 files changed, 131 insertions(+), 131 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index e7c5d249c..8c1ec7b40 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clara-io - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml index 4ba7987bb..d2d74c9ba 100644 --- a/common-tools/clas-analysis/pom.xml +++ b/common-tools/clas-analysis/pom.xml @@ -3,63 +3,63 @@ 4.0.0 org.jlab.clas clas-analysis - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-utils - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-physics - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-io - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-geometry - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas swim-tools - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-detector - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml index a18304cf6..a2d498a43 100644 --- a/common-tools/clas-detector/pom.xml +++ b/common-tools/clas-detector/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-detector - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-utils - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -29,13 +29,13 @@ org.jlab.clas clas-io - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-geometry - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index 3a0d11f7b..a11fbe1f9 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-geometry - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 39d51ddfb..554eeb6c1 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-io - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -87,13 +87,13 @@ org.jlab.clas clas-utils - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-logging - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT compile diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index 62e8fa0df..e8777e2d0 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-jcsg - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -27,12 +27,12 @@ org.jlab.clas clas-geometry - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-detector - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT java3d diff --git a/common-tools/clas-logging/pom.xml b/common-tools/clas-logging/pom.xml index 7d0b39f35..2a44831ae 100644 --- a/common-tools/clas-logging/pom.xml +++ b/common-tools/clas-logging/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-logging - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml index c3bd87600..5a1b3b497 100644 --- a/common-tools/clas-math/pom.xml +++ b/common-tools/clas-math/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-math - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml index 6cdfc7910..83e6ce4b3 100644 --- a/common-tools/clas-physics/pom.xml +++ b/common-tools/clas-physics/pom.xml @@ -4,14 +4,14 @@ org.jlab.clas clas-physics - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml index b72c8d634..3119a76b7 100644 --- a/common-tools/clas-reco/pom.xml +++ b/common-tools/clas-reco/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -42,37 +42,37 @@ org.jlab.clas clas-math - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-io - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-logging - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-physics - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-utils - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-detector - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index 13114240a..6e9b76e51 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-tracking - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -22,7 +22,7 @@ org.jlab.clas swim-tools - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index b30cc51c2..b684680ca 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-utils - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml index 5f42c9dfb..0614c10cb 100644 --- a/common-tools/cnuphys/magfield/pom.xml +++ b/common-tools/cnuphys/magfield/pom.xml @@ -23,7 +23,7 @@ org.jlab.clas clas-math - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml index 074f63980..41a3c012d 100644 --- a/common-tools/cnuphys/swimmer/pom.xml +++ b/common-tools/cnuphys/swimmer/pom.xml @@ -35,7 +35,7 @@ org.jlab.clas clas-math - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/coat-lib/deployDistribution.sh b/common-tools/coat-lib/deployDistribution.sh index fd708e368..4816f8e66 100755 --- a/common-tools/coat-lib/deployDistribution.sh +++ b/common-tools/coat-lib/deployDistribution.sh @@ -8,7 +8,7 @@ cd `dirname $0` # Script is exporting existing Jar files to repository #------------------------------------------------------------------------------------------------- -VERSION=10.0.9 +VERSION=10.0.11 mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -Dfile=target/coat-libs-${VERSION}-SNAPSHOT.jar \ diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index 2c9f850ca..868f5a18f 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jlab.clas coat-libs - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT pom @@ -93,67 +93,67 @@ org.jlab.clas clas-io - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clara-io - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-utils - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-detector - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-analysis - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-geometry - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-physics - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas swim-tools - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-tracking - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index 5e35ed0f4..1e1a301d3 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas common-tools - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT pom diff --git a/common-tools/pom.xml b/common-tools/pom.xml index 5599a7272..7974250c0 100644 --- a/common-tools/pom.xml +++ b/common-tools/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas common-tools - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml index 9823faeee..f7a4c5902 100644 --- a/common-tools/swim-tools/pom.xml +++ b/common-tools/swim-tools/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas swim-tools - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/parent/pom.xml b/parent/pom.xml index b90b718b8..ca58efd52 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas clas12rec - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index cf4177ff4..8d1c853a4 100644 --- a/pom.xml +++ b/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas clas12 - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT pom org.jlab.clas clas12rec parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml index 3be83b767..6453c8e39 100644 --- a/reconstruction/alert/pom.xml +++ b/reconstruction/alert/pom.xml @@ -13,31 +13,31 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-io - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT compile org.jlab.clas clas-tracking - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT compile org.jlab.clas clas-geometry - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT compile diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml index bbad47018..45bf8eb89 100644 --- a/reconstruction/band/pom.xml +++ b/reconstruction/band/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml index adfed40e9..89bf27cb5 100644 --- a/reconstruction/cnd/pom.xml +++ b/reconstruction/cnd/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml index 5e2dd6130..5204f5ae9 100644 --- a/reconstruction/cvt/pom.xml +++ b/reconstruction/cvt/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -47,7 +47,7 @@ org.jlab.clas clas-tracking - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index d601ebebb..b332bd7cc 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -22,19 +22,19 @@ org.jlab.clas clas-jcsg - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-analysis - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -63,13 +63,13 @@ org.jlab.clas swim-tools - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-math - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml index 51128ec89..4ad366218 100644 --- a/reconstruction/eb/pom.xml +++ b/reconstruction/eb/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,25 +21,25 @@ org.jlab.clas clas-utils - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-io - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-analysis - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml index 43eee96b2..68ad577a4 100644 --- a/reconstruction/ec/pom.xml +++ b/reconstruction/ec/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-analysis - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml index d9bed186d..61924fa01 100644 --- a/reconstruction/fmt/pom.xml +++ b/reconstruction/fmt/pom.xml @@ -15,21 +15,21 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas swim-tools - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml index 2de41bf41..17cad30c5 100644 --- a/reconstruction/ft/pom.xml +++ b/reconstruction/ft/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml index 5a0de183d..3ba9989eb 100644 --- a/reconstruction/htcc/pom.xml +++ b/reconstruction/htcc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml index 04f8f6f66..25d0f328b 100644 --- a/reconstruction/ltcc/pom.xml +++ b/reconstruction/ltcc/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml index aa6237776..94f8defba 100644 --- a/reconstruction/mc/pom.xml +++ b/reconstruction/mc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml index d1a5c6ef4..224f3721d 100644 --- a/reconstruction/mltn/pom.xml +++ b/reconstruction/mltn/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -34,13 +34,13 @@ org.jlab.clas clas-io - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index abad22958..676e8b5ca 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -3,14 +3,14 @@ org.jlab.clas reconstruction - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml index b73400bce..2c5f62f56 100644 --- a/reconstruction/raster/pom.xml +++ b/reconstruction/raster/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml index 57f3e3e41..0efdf2afe 100644 --- a/reconstruction/rich/pom.xml +++ b/reconstruction/rich/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-jcsg - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml index a6224a6ae..a008b4670 100644 --- a/reconstruction/rtpc/pom.xml +++ b/reconstruction/rtpc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,12 +21,12 @@ org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-tracking - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT compile diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml index b3b3b3fcd..49bb0727f 100644 --- a/reconstruction/swaps/pom.xml +++ b/reconstruction/swaps/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-detector - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-io - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-reco - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml index f796fcc6d..4bff84e6f 100644 --- a/reconstruction/tof/pom.xml +++ b/reconstruction/tof/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/urwell/pom.xml b/reconstruction/urwell/pom.xml index f54e44778..bdce144d1 100644 --- a/reconstruction/urwell/pom.xml +++ b/reconstruction/urwell/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT org.jlab.clas clas-analysis - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml index 26a25a0a8..f05fbce72 100644 --- a/reconstruction/vtx/pom.xml +++ b/reconstruction/vtx/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT @@ -33,13 +33,13 @@ org.jlab.clas swim-tools - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar org.jlab.clas clas-tracking - 10.0.9-SNAPSHOT + 10.0.11-SNAPSHOT jar From acd8a728b9847795630d21e817aebb6eb129cbd2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:48:13 -0400 Subject: [PATCH 025/201] build(deps): bump org.jlab:groot from 4.0.5 to 4.1.0 (#218) Bumps org.jlab:groot from 4.0.5 to 4.1.0. --- updated-dependencies: - dependency-name: org.jlab:groot dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parent/pom.xml b/parent/pom.xml index ca58efd52..09095a612 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -44,7 +44,7 @@ org.jlab groot - 4.0.5 + 4.1.0 From d65e5e88adc779ce4292c0dfa7033c21e894e5aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:49:03 -0400 Subject: [PATCH 026/201] build(deps): bump org.slf4j:slf4j-simple from 1.6.1 to 2.0.12 (#219) Bumps org.slf4j:slf4j-simple from 1.6.1 to 2.0.12. --- updated-dependencies: - dependency-name: org.slf4j:slf4j-simple dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- common-tools/clas-jcsg/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index e8777e2d0..8e6c2783c 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -42,7 +42,7 @@ org.slf4j slf4j-simple - 1.6.1 + 2.0.12 From 25f88ffd7e5c38a2e2a1fe6fe26bdf9435446ce0 Mon Sep 17 00:00:00 2001 From: Gagik Gavalian Date: Mon, 25 Mar 2024 16:49:39 -0400 Subject: [PATCH 027/201] fixed the issue with the file name when space is introduced in the YAML file. Now it will trim the filename before loading the network (#157) --- .../mltn/src/main/java/org/jlab/service/mltn/MLTDEngine.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTDEngine.java b/reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTDEngine.java index 658348075..21cbf1c35 100644 --- a/reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTDEngine.java +++ b/reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTDEngine.java @@ -55,7 +55,7 @@ public boolean init() { files.put("classifier", "trackClassifier.network"); files.put("fixer", "trackFixer.network"); - ArchiveProvider provider = new ArchiveProvider(path); + ArchiveProvider provider = new ArchiveProvider(path.trim()); //----- This will find in the archive the last run number closest //----- to provided run number that contains trained network. @@ -67,7 +67,7 @@ public boolean init() { int adjustedRun = provider.findEntry(networkRun); String directory = String.format("network/%d/%s", adjustedRun, networkFlavor); - network.initZip(path,directory, files); + network.initZip(path.trim(),directory, files); //trackFinder = Clas12TrackFinder.createEJML("CLAS12DIR","etc/ejml/ejmlclas12.network"); //classifier.setEnvDirectory("CLAS12DIR"); From 402cceb8862c3b54e8a9dbb73bc980f6ea83e24a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:56:44 -0400 Subject: [PATCH 028/201] build(deps): bump org.apache.maven.plugins:maven-resources-plugin (#220) Bumps [org.apache.maven.plugins:maven-resources-plugin](https://github.com/apache/maven-resources-plugin) from 3.2.0 to 3.3.1. - [Release notes](https://github.com/apache/maven-resources-plugin/releases) - [Commits](https://github.com/apache/maven-resources-plugin/compare/maven-resources-plugin-3.2.0...maven-resources-plugin-3.3.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-resources-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- common-tools/cnuphys/parent/pom.xml | 2 +- parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index 43b3efc36..d58baaa9d 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -55,7 +55,7 @@ org.apache.maven.plugins maven-resources-plugin - 3.2.0 + 3.3.1 UTF-8 diff --git a/parent/pom.xml b/parent/pom.xml index 09095a612..d31796336 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -99,7 +99,7 @@ org.apache.maven.plugins maven-resources-plugin - 3.2.0 + 3.3.1 UTF-8 From 178fb1d3d4a7ac3bb2297b4a7836d25a9605b4bd Mon Sep 17 00:00:00 2001 From: rtysonCLAS12 Date: Mon, 1 Apr 2024 13:16:30 -0400 Subject: [PATCH 029/201] Added RF banks to level 3 schema --- etc/bankdefs/util/bankSplit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/bankdefs/util/bankSplit.py b/etc/bankdefs/util/bankSplit.py index 467a30342..8f3c2f2c6 100755 --- a/etc/bankdefs/util/bankSplit.py +++ b/etc/bankdefs/util/bankSplit.py @@ -105,7 +105,7 @@ def create(dirname, banklist): # Level3 validation schema: level3 = list(dst) -level3.extend(["DC::tdc", "ECAL::adc", "ECAL::clusters", "FTOF::tdc", "FTOF::adc", "HitBasedTrkg::HBClusters", "HitBasedTrkg::HBTracks", "HTCC::adc", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBTracks"]) +level3.extend(["DC::tdc", "ECAL::adc", "ECAL::clusters", "FTOF::tdc", "FTOF::adc", "HitBasedTrkg::HBClusters", "HitBasedTrkg::HBTracks", "HTCC::adc", "RF::adc", "RF::tdc", "RUN::rf", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBTracks"]) create("dst/", set(dst)) create("dsthb/", set(dsthb)) From f13ebe566dc476769c76a16497aea189072ae8a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 11:10:41 -0400 Subject: [PATCH 030/201] build(deps): bump org.apache.maven.plugins:maven-javadoc-plugin (#237) Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.4.0 to 3.6.3. - [Release notes](https://github.com/apache/maven-javadoc-plugin/releases) - [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.4.0...maven-javadoc-plugin-3.6.3) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-javadoc-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parent/pom.xml b/parent/pom.xml index d31796336..acea9e0f1 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -79,7 +79,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.0 + 3.6.3 coatjavadocs coatjavadocs From 28f940d275878a94212ee7f0a009d12d40132e15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 11:12:00 -0400 Subject: [PATCH 031/201] build(deps): bump org.apache.maven.plugins:maven-compiler-plugin (#235) Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.12.1 to 3.13.0. - [Release notes](https://github.com/apache/maven-compiler-plugin/releases) - [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.12.1...maven-compiler-plugin-3.13.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-compiler-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- common-tools/cnuphys/parent/pom.xml | 2 +- parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index d58baaa9d..6c66111e8 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -46,7 +46,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.12.1 + 3.13.0 UTF-8 11 diff --git a/parent/pom.xml b/parent/pom.xml index acea9e0f1..2689c965b 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -89,7 +89,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.12.1 + 3.13.0 11 UTF-8 From 5b5d41dc201087b62e285a51ea10ee8d341da0dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 11:12:33 -0400 Subject: [PATCH 032/201] build(deps): bump org.apache.commons:commons-text from 1.10.0 to 1.11.0 (#234) Bumps org.apache.commons:commons-text from 1.10.0 to 1.11.0. --- updated-dependencies: - dependency-name: org.apache.commons:commons-text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- common-tools/clara-io/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index 8c1ec7b40..1219d0e88 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -61,7 +61,7 @@ org.apache.commons commons-text - 1.10.0 + 1.11.0 From f5da73a407123e6654f982d78755e3121113cbfb Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Apr 2024 10:22:05 -0400 Subject: [PATCH 033/201] add dependencies --- common-tools/clas-utils/pom.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index b684680ca..855c35305 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -14,6 +14,16 @@ + + org.jlab.clas + clas-logging + 10.0.11-SNAPSHOT + + + org.apache.commons + commons-text + 1.11.0 + org.apache.commons commons-math3 From fad0b7ea87316f8cd55ba3dd5d95be43145b2dbe Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Apr 2024 10:22:31 -0400 Subject: [PATCH 034/201] add noexec /tmp detector --- .../jlab/utils/system/FileSystemExecScan.java | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java new file mode 100644 index 000000000..5f96c7b35 --- /dev/null +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java @@ -0,0 +1,86 @@ +package org.jlab.utils.system; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.apache.commons.text.StringSubstitutor; + +import org.jlab.logging.DefaultLogger; + +/** + * Find a location for a usable temporary directory, on a filesystem mounted + * without noexec, and set a system property accordingly. + * + * @author gavalian + * @author baltzell + */ +public class FileSystemExecScan { + + static final Logger LOGGER = Logger.getLogger(FileSystemExecScan.class.getName()); + + static final StringSubstitutor SUBSTITUTOR = new StringSubstitutor(System.getenv()); + + static final String[] DEFAULT_TMPDIRS = new String[] { + "/scratch/slurm/${SLURM_JOB_ID}", + "/scratch/${USER}", + "/tmp", + ".", + "${HOME}", + }; + + String systemProperty; + + public FileSystemExecScan(String prop){ + systemProperty = prop; + } + + public boolean scan() { + return scan(DEFAULT_TMPDIRS); + } + + public boolean scan(String... dirs){ + for(String dir : dirs){ + if (checkDirectory(dir)) { + LOGGER.info(String.format("Setting property : %s to %s",systemProperty,dir)); + System.setProperty(systemProperty, dir); + return true; + } + } + LOGGER.log(Level.SEVERE, "No suitable tmp dir found in: {0}", String.join(":", dirs)); + return false; + } + + public boolean checkDirectory(String dir){ + dir = SUBSTITUTOR.replace(dir); + LOGGER.config(String.format("Checking directory: "+dir)); + File f = new File(dir); + if (!f.canWrite()) return false; + String path = String.format("%s/list-%d.sh", dir,ProcessHandle.current().pid()); + if (!writeFile(path)) return false; + File e = new File(path); + e.setExecutable(true, false); + boolean canExecute = e.canExecute(); + e.delete(); + return canExecute; + } + + public boolean writeFile(String path){ + try (FileWriter w = new FileWriter(path)) { + w.write("#!/bin/sh\nls -l \n"); + } catch (IOException ex) { + LOGGER.log(Level.INFO, "() error writing file: {0}", path); + return false; + } + return true; + } + + public static void main(String[] args){ + DefaultLogger.debug(); + FileSystemExecScan scan = new FileSystemExecScan("java.io.tmpdir"); + scan.scan("/usr/bin","/sbin"); + scan.scan("/tmp","."); + scan.scan(DEFAULT_TMPDIRS); + } +} From 993c16b42b71212275fa2ccd2d0448220a821f27 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Apr 2024 10:28:56 -0400 Subject: [PATCH 035/201] cleanup, silence warnings --- .../org/jlab/utils/groups/IndexedList.java | 13 +--- .../org/jlab/utils/groups/IndexedTable.java | 63 +++++-------------- .../jlab/utils/groups/IndexedTableViewer.java | 6 -- 3 files changed, 17 insertions(+), 65 deletions(-) diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedList.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedList.java index ad12180cc..305729264 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedList.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedList.java @@ -1,14 +1,7 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.jlab.utils.groups; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; -import java.util.TreeMap; /** * @@ -17,12 +10,10 @@ */ public class IndexedList { - private final Map collection = new LinkedHashMap(); + private final Map collection = new LinkedHashMap<>(); private int indexSize = 3; - public IndexedList(){ - - } + public IndexedList(){} public IndexedList(int indsize){ this.indexSize = indsize; diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTable.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTable.java index 6af999042..e86aa68cc 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTable.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTable.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.jlab.utils.groups; import java.awt.Color; @@ -14,7 +9,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.TreeMap; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; @@ -25,49 +19,43 @@ */ public class IndexedTable extends DefaultTableModel { - private String tableName = "IndexedTable"; - private String tableDescription = "Table of indexed values"; private IndexedList entries = null; - private Map entryMap = new LinkedHashMap(); - private Map entryTypes = new LinkedHashMap(); - private List entryNames = new ArrayList(); - private List indexNames = new ArrayList(); + private Map entryMap = new LinkedHashMap<>(); + private Map entryTypes = new LinkedHashMap<>(); + private List entryNames = new ArrayList<>(); + private List indexNames = new ArrayList<>(); private String precisionFormat = "%.6f"; - private Map> constrains = new HashMap>(); + private Map> constrains = new HashMap<>(); private int DEBUG_MODE = 0; public IndexedTable(int indexCount){ - entries = new IndexedList(indexCount); + entries = new IndexedList<>(indexCount); for(int i = 0; i < indexCount; i++){ - //this.setIndexName(i, "A"+i); this.indexNames.add("A"+i); } } public IndexedTable(int indexCount,String format){ - entries = new IndexedList(indexCount); + entries = new IndexedList<>(indexCount); for(int i = 0; i < indexCount; i++){ - //this.setIndexName(i, "A"+i); this.indexNames.add("A"+i); } this.parseFormat(format); } public IndexedTable(int indexCount,String[] format){ - entries = new IndexedList(indexCount); + entries = new IndexedList<>(indexCount); for(int i = 0; i < indexCount; i++){ this.indexNames.add("A"+i); } - for(int i = 0; i < format.length; i++){ String[] tokens = format[i].split("/"); entryMap.put(tokens[0], i); entryTypes.put(tokens[0],tokens[1] ); entryNames.add(tokens[0]); } - } public void setPrecision(Integer precision){ @@ -87,25 +75,20 @@ public final void setIndexName(int index, String name){ } public void addEntry(int... index){ - //System.out.println("adding entry with size = " + entryMap.size()); this.entries.add(new IndexedEntry(entryMap.size()), index); } public void addConstraint(int column, double min, double max){ if(constrains.containsKey(column)==false){ - constrains.put(column, new ArrayList()); + constrains.put(column, new ArrayList<>()); } - - //constrains.put(column, new RowConstraint(column,min,max)); constrains.get(column).add(new RowConstraint(column,min,max)); } public void addConstraint(int column, double min, double max, int condition, int condValue){ if(constrains.containsKey(column)==false){ - constrains.put(column, new ArrayList()); + constrains.put(column, new ArrayList<>()); } - - //constrains.put(column, new RowConstraint(column,min,max)); constrains.get(column).add(new RowConstraint(column,min,max,condition,condValue)); } @@ -202,9 +185,9 @@ public void addEntryFromString(String[] values){ for(int i = 0; i < this.entryNames.size(); i++){ if(entryTypes.get(entryNames.get(i)).compareTo("D")==0){ - entries.getItem(index).setValue(i, Double.parseDouble(values[i+indexNames.size()])); + entries.getItem(index).setValue(i, Double.valueOf(values[i+indexNames.size()])); } else { - entries.getItem(index).setValue(i, Integer.parseInt(values[i+indexNames.size()])); + entries.getItem(index).setValue(i, Integer.valueOf(values[i+indexNames.size()])); } } } @@ -232,17 +215,15 @@ public String toString(){ */ public boolean isValid(int row, int column){ if(this.constrains.containsKey(column)==false) return true; - String value = (String) this.getValueAt(row, column); - Double dvalue = Double.parseDouble(value); + Double dvalue = Double.valueOf(value); for(RowConstraint rc : constrains.get(column)){ if(rc.conditionColumn()>=0){ String controlColumn = (String) this.getValueAt(row, rc.conditionColumn()); - Integer intColumnValue = Integer.parseInt(controlColumn); + Integer intColumnValue = Integer.valueOf(controlColumn); if(intColumnValue==rc.conditionColumnValue()){ return rc.isValid(dvalue)!=false; } - //return this.constrains.get(column).isValid(Double.parseDouble(value)) != false; } else { return rc.isValid(dvalue)!=false; } @@ -257,7 +238,6 @@ public boolean isValid(int row, int column){ */ @Override public String getColumnName(int col) { - if(col>2){ return this.entryNames.get(col-3); } @@ -279,15 +259,11 @@ public int getColumnCount(){ @Override public boolean isCellEditable(int row, int column) { - //all cells false return false; } @Override public int getRowCount(){ - //System.out.println("RAW COUNT is " + this.arrayEntries.size()); - //return this.arrayEntries.size(); - //return 2; int nrows = 0; try { nrows = entries.getMap().size(); @@ -307,17 +283,12 @@ public Object getValueAt(int row, int column) { for(int i = 0; i < row; i++){ value = (Long) iter.next(); } - //System.out.println(); if(column=trow.getSize()){ - return "0"; - }*/ Number trowNum = trow.getValue(column-ic); if(trowNum instanceof Double){ return String.format(this.precisionFormat, trowNum.doubleValue()); @@ -380,12 +351,9 @@ public static class IndexedCellRenderer extends DefaultTableCellRenderer { public static class IndexedEntry { - //private List columnValues = ; - int entrySize = 0; - List entryValues = new ArrayList(); + List entryValues = new ArrayList<>(); public IndexedEntry(int size){ - entrySize = size; for(int i = 0; i < size; i++){ entryValues.add(2.4); } @@ -405,7 +373,6 @@ public int getSize(){ public void setSize(int size){ this.entryValues.clear(); - this.entrySize = size; for(int i = 0; i < size; i++){ entryValues.add((Integer) 0); } diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTableViewer.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTableViewer.java index 48b235e8d..b57082052 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTableViewer.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTableViewer.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.jlab.utils.groups; import java.awt.BorderLayout; @@ -10,7 +5,6 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; -import javax.swing.border.BevelBorder; import javax.swing.border.SoftBevelBorder; /** From c4e20a570580e48a0171aa5432bba024e921f8b4 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Apr 2024 10:32:04 -0400 Subject: [PATCH 036/201] cleanup warnings --- .../org/jlab/utils/system/ClasUtilsFile.java | 6 ---- .../jlab/utils/system/CommandLineParser.java | 32 ++++++------------- 2 files changed, 9 insertions(+), 29 deletions(-) diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/ClasUtilsFile.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/ClasUtilsFile.java index b24d854bb..a56d4358b 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/ClasUtilsFile.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/ClasUtilsFile.java @@ -1,9 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - package org.jlab.utils.system; import java.io.BufferedReader; diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/CommandLineParser.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/CommandLineParser.java index b1d6c5bc9..584f8b96a 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/CommandLineParser.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/CommandLineParser.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.jlab.utils.system; import java.util.ArrayList; @@ -15,10 +10,9 @@ * @author gavalian */ public class CommandLineParser { - private Map parserCommands = - new LinkedHashMap(); - private List currentCommand = new - ArrayList(); + + private Map parserCommands = new LinkedHashMap<>(); + private List currentCommand = new ArrayList<>(); public CommandLineParser(){} @@ -41,8 +35,6 @@ public void parse(String[] args){ if(args.length<1) return; - - if(this.parserCommands.size()==1){ this.currentCommand.get(0).parse(args, 0); } else { @@ -71,22 +63,20 @@ public void show(){ public static class CommandLineOption { private Map requiredParameters = - new LinkedHashMap(); + new LinkedHashMap<>(); private Map optionalParameters = - new LinkedHashMap(); + new LinkedHashMap<>(); private Map flagParameters = - new LinkedHashMap(); + new LinkedHashMap<>(); private Map parsedParameters = - new LinkedHashMap(); + new LinkedHashMap<>(); - private List commandInputs = new ArrayList(); + private List commandInputs = new ArrayList<>(); - private Map commandDefinitions = new LinkedHashMap(); - - private String listDeliminator = ":"; + private Map commandDefinitions = new LinkedHashMap<>(); private String command = "-run"; @@ -110,11 +100,9 @@ public void addCommand(String command, String explanation){ public void printCommands(){ System.out.println(); System.out.println(" Commands : "); - //for(Map.Entry entry : ); } public void setListDeliminator(String delim){ - this.listDeliminator = delim; } public void addRequiredParameter(String par, String description){ @@ -322,7 +310,6 @@ public void setName(String name){ public void setDescription(String desc){ description = desc;} public boolean isRequired(){ return this.isRequired;} - public String getDescriptionString(int legth, boolean isFlag){ StringBuilder str = new StringBuilder(); str.append("\t"); @@ -333,7 +320,6 @@ public String getDescriptionString(int legth, boolean isFlag){ return str.toString(); } - public String getItemString(int legth, boolean isFlag){ StringBuilder str = new StringBuilder(); str.append("\t"); From 720cdf9a82bb280a0594466d2c7fa5086d644fbd Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Apr 2024 10:35:12 -0400 Subject: [PATCH 037/201] cleanup warnings --- .../calib/utils/DatabaseConstantProvider.java | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java index 810e3ace5..17c970a5c 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java @@ -28,9 +28,9 @@ */ public class DatabaseConstantProvider implements ConstantProvider { - Logger LOGGER = Logger.getLogger(DatabaseConstantProvider.class.getName()); + static final Logger LOGGER = Logger.getLogger(DatabaseConstantProvider.class.getName()); - private final HashMap constantContainer = new HashMap(); + private final HashMap constantContainer = new HashMap<>(); private final boolean PRINT_ALL = true; private String variation = "default"; private Integer runNumber = 10; @@ -42,8 +42,6 @@ public class DatabaseConstantProvider implements ConstantProvider { private org.jlab.ccdb.JDBCProvider provider; - private int debugMode = 1; - public DatabaseConstantProvider(){ this.loadTimeErrors = 0; this.runNumber = 10; @@ -87,7 +85,7 @@ public DatabaseConstantProvider(String address, String var){ } public Set getEntrySet(){ - Set entries = new HashSet(); + Set entries = new HashSet<>(); for(Map.Entry entry: this.constantContainer.entrySet()){ entries.add(entry.getKey()); } @@ -107,7 +105,7 @@ private String getEnvironment(){ String propCLAS12 = System.getProperty("CLAS12DIR"); String propCCDB = System.getProperty("CCDB_DATABASE"); - LOGGER.log(Level.FINE,"ENVIRONMENT : " + envCLAS12 + " " + envCCDB + " " + propCLAS12 + " " + propCCDB); + LOGGER.log(Level.FINE, "ENVIRONMENT : {0} {1} {2} {3}", new Object[]{envCLAS12, envCCDB, propCLAS12, propCCDB}); if(envCCDB!=null&&envCLAS12!=null){ StringBuilder str = new StringBuilder(); @@ -139,11 +137,10 @@ private String getEnvironment(){ private void initialize(String address){ provider = CCDB.createProvider(address); - LOGGER.log(Level.INFO, "[DB] ---> open connection with : " + address); - LOGGER.log(Level.INFO, "[DB] ---> database variation : " + this.variation); - LOGGER.log(Level.INFO, "[DB] ---> database run number : " + this.runNumber); - LOGGER.log(Level.INFO, "[DB] ---> database time stamp : " + databaseDate); - + LOGGER.log(Level.INFO, "[DB] ---> open connection with : {0}", address); + LOGGER.log(Level.INFO, "[DB] ---> database variation : {0}", this.variation); + LOGGER.log(Level.INFO, "[DB] ---> database run number : {0}", this.runNumber); + LOGGER.log(Level.INFO, "[DB] ---> database time stamp : {0}", databaseDate); provider.connect(); @@ -167,9 +164,9 @@ public final void setTimeStamp(String timestamp){ try { databaseDate = format.parse(timestamp); } catch (ParseException ex) { - LOGGER.log(Level.SEVERE,"\n\n ***** TIMESTAMP ERROR ***** error parsing timestamp : " + timestamp); + LOGGER.log(Level.SEVERE, "\n\n ***** TIMESTAMP ERROR ***** error parsing timestamp : {0}", timestamp); databaseDate = new Date(); - LOGGER.log(Level.WARNING," ***** TIMESTAMP WARNING ***** setting date to : " + databaseDate); + LOGGER.log(Level.WARNING, " ***** TIMESTAMP WARNING ***** setting date to : {0}", databaseDate); } } @@ -177,6 +174,7 @@ public final void setTimeStamp(String timestamp){ /** * Reads calibration constants for given table in the database. * @param table_name + * @param nindex * @return */ public CalibrationConstants readConstants(String table_name, int nindex){ @@ -274,8 +272,8 @@ public void loadTable(String table_name){ int ncolumns = asgmt.getColumnCount(); Vector typecolumn = asgmt.getTypeTable().getColumns(); - LOGGER.log(Level.INFO,"[DB LOAD] ---> loading data table : " + table_name); - LOGGER.log(Level.INFO,"[DB LOAD] ---> number of columns : " + typecolumn.size()); + LOGGER.log(Level.INFO, "[DB LOAD] ---> loading data table : {0}", table_name); + LOGGER.log(Level.INFO, "[DB LOAD] ---> number of columns : {0}", typecolumn.size()); for(int loop = 0; loop < ncolumns; loop++){ String name = typecolumn.get(loop).getName(); Vector row = asgmt.getColumnValuesString(name); From f36fb1deb01b20ed316d229d8c011c7a68551f13 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Apr 2024 10:38:27 -0400 Subject: [PATCH 038/201] auto-detect good /tmp directory --- .../detector/calib/utils/DatabaseConstantProvider.java | 7 +++++++ .../java/org/jlab/utils/system/FileSystemExecScan.java | 3 --- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java index 17c970a5c..0612f54e1 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java @@ -21,6 +21,7 @@ import org.jlab.geom.base.ConstantProvider; import org.jlab.utils.groups.IndexedTable; import org.jlab.utils.groups.IndexedTableViewer; +import org.jlab.utils.system.FileSystemExecScan; /** * @@ -135,6 +136,12 @@ private String getEnvironment(){ } private void initialize(String address){ + + FileSystemExecScan fses = new FileSystemExecScan("java.io.tmpdir"); + if (!fses.scan()) { + LOGGER.severe("*** Unable to find good /tmp directory. SQLite may not work. ***"); + } + provider = CCDB.createProvider(address); LOGGER.log(Level.INFO, "[DB] ---> open connection with : {0}", address); diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java index 5f96c7b35..bb0b39dcb 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java @@ -7,8 +7,6 @@ import java.util.logging.Logger; import org.apache.commons.text.StringSubstitutor; -import org.jlab.logging.DefaultLogger; - /** * Find a location for a usable temporary directory, on a filesystem mounted * without noexec, and set a system property accordingly. @@ -77,7 +75,6 @@ public boolean writeFile(String path){ } public static void main(String[] args){ - DefaultLogger.debug(); FileSystemExecScan scan = new FileSystemExecScan("java.io.tmpdir"); scan.scan("/usr/bin","/sbin"); scan.scan("/tmp","."); From 811180024095b1fb218a2dcb7d4cd6028363d583 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Apr 2024 10:46:37 -0400 Subject: [PATCH 039/201] cleanup --- .../calib/utils/CalibrationConstants.java | 66 ++++++++----------- .../org/jlab/utils/groups/IndexedTable.java | 29 ++++---- 2 files changed, 41 insertions(+), 54 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/CalibrationConstants.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/CalibrationConstants.java index 873abf299..2afb00ce4 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/CalibrationConstants.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/CalibrationConstants.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.jlab.detector.calib.utils; import java.awt.Color; @@ -23,7 +18,6 @@ public class CalibrationConstants extends IndexedTable { String constantsName = "default"; - public CalibrationConstants(int indexCount) { super(indexCount); @@ -42,7 +36,6 @@ public CalibrationConstants(int indexCount,String format) { this.setIndexName(2, "layer"); this.setIndexName(3, "component"); } - } public CalibrationConstants(int indexCount,String[] format) { @@ -58,7 +51,6 @@ public CalibrationConstants(int indexCount,String[] format) { this.setIndexName(2, "layer"); this.setIndexName(3, "component"); } - } public void setName(String name){ @@ -68,7 +60,7 @@ public void setName(String name){ public String getName(){ return this.constantsName;} public void save(String file){ - List linesFile = new ArrayList(); + List linesFile = new ArrayList<>(); Map map = this.getList().getMap(); int nindex = this.getList().getIndexSize(); for(Map.Entry entry : map.entrySet()){ @@ -80,12 +72,9 @@ public void save(String file){ int ncolumns = entry.getValue().getSize(); for(int i = 0; i < ncolumns; i++){ str.append(String.format(" %e ", entry.getValue().getValue(i))); - //str.append(" "); } linesFile.add(str.toString()); - //System.out.println(str.toString()); } - ClasUtilsFile.writeFile(file, linesFile); } @@ -97,37 +86,36 @@ public CalibrationConstantsRenderer(CalibrationConstants cc){ } @Override public Component getTableCellRendererComponent - (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) - { - Component c = super.getTableCellRendererComponent - (table, value, isSelected, hasFocus, row, column); + (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + Component c = super.getTableCellRendererComponent + (table, value, isSelected, hasFocus, row, column); - if(calib.isValid(row, column)==false){ - if(isSelected==true){ - c.setBackground(Color.RED); - } else { - c.setBackground(new Color(255,120,120)); - } - c.setForeground(Color.YELLOW); - return c; - } + if(calib.isValid(row, column)==false){ + if(isSelected==true){ + c.setBackground(Color.RED); + } else { + c.setBackground(new Color(255,120,120)); + } + c.setForeground(Color.YELLOW); + return c; + } - if(isSelected==true){ - c.setBackground(new Color(20,20,255)); - c.setForeground(Color.WHITE); - return c; - } + if(isSelected==true){ + c.setBackground(new Color(20,20,255)); + c.setForeground(Color.WHITE); + return c; + } - if(row%2==0){ - c.setBackground(new Color(220,255,220)); - c.setForeground(Color.BLACK); - } else { - c.setBackground(new Color(220,220,255)); - c.setForeground(Color.BLACK); - } + if(row%2==0){ + c.setBackground(new Color(220,255,220)); + c.setForeground(Color.BLACK); + } else { + c.setBackground(new Color(220,220,255)); + c.setForeground(Color.BLACK); + } - return c; - } + return c; + } } diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTable.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTable.java index e86aa68cc..2c4bb9a5d 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTable.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedTable.java @@ -331,22 +331,21 @@ public RowConstraint ( int column, double min, double max, int ccol, int cvalue) public static class IndexedCellRenderer extends DefaultTableCellRenderer { @Override public Component getTableCellRendererComponent - (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) - { - Component c = super.getTableCellRendererComponent - (table, value, isSelected, hasFocus, row, column); - if(isSelected==true){ - c.setBackground(new Color(20,20,255)); - return c; - } - if(row%2==0){ - c.setBackground(new Color(220,255,220)); - } else { - c.setBackground(new Color(220,220,255)); - } + (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){ + Component c = super.getTableCellRendererComponent + (table, value, isSelected, hasFocus, row, column); + if(isSelected==true){ + c.setBackground(new Color(20,20,255)); + return c; + } + if(row%2==0){ + c.setBackground(new Color(220,255,220)); + } else { + c.setBackground(new Color(220,220,255)); + } - return c; - } + return c; + } } public static class IndexedEntry { From 96fc64960e77e13e70ea5fe5e3802fe3340f92a2 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Apr 2024 10:57:01 -0400 Subject: [PATCH 040/201] different property --- .../org/jlab/detector/calib/utils/DatabaseConstantProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java index 0612f54e1..8b93f2cf4 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java @@ -137,7 +137,7 @@ private String getEnvironment(){ private void initialize(String address){ - FileSystemExecScan fses = new FileSystemExecScan("java.io.tmpdir"); + FileSystemExecScan fses = new FileSystemExecScan("org.sqlite.tmpdir"); if (!fses.scan()) { LOGGER.severe("*** Unable to find good /tmp directory. SQLite may not work. ***"); } From 61f12db9aa0ee7dda2d078a193473bc0a6257d68 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Apr 2024 10:59:05 -0400 Subject: [PATCH 041/201] really use the expanded path --- .../src/main/java/org/jlab/utils/system/FileSystemExecScan.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java index bb0b39dcb..5e961c989 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java @@ -42,7 +42,7 @@ public boolean scan(String... dirs){ for(String dir : dirs){ if (checkDirectory(dir)) { LOGGER.info(String.format("Setting property : %s to %s",systemProperty,dir)); - System.setProperty(systemProperty, dir); + System.setProperty(systemProperty, SUBSTITUTOR.replace(dir)); return true; } } From 56c7f6d7fe979249aae13ad98bef72fa8c3c3da4 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Apr 2024 11:04:09 -0400 Subject: [PATCH 042/201] support multiple tmpdir properties --- .../calib/utils/DatabaseConstantProvider.java | 2 +- .../jlab/utils/system/FileSystemExecScan.java | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java index 8b93f2cf4..1ae731f53 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java @@ -137,7 +137,7 @@ private String getEnvironment(){ private void initialize(String address){ - FileSystemExecScan fses = new FileSystemExecScan("org.sqlite.tmpdir"); + FileSystemExecScan fses = new FileSystemExecScan("java.io.tmpdir","org.sqlite.tmpdir"); if (!fses.scan()) { LOGGER.severe("*** Unable to find good /tmp directory. SQLite may not work. ***"); } diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java index 5e961c989..a9347f93e 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java @@ -3,6 +3,9 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.text.StringSubstitutor; @@ -28,10 +31,11 @@ public class FileSystemExecScan { "${HOME}", }; - String systemProperty; + List systemProperties; - public FileSystemExecScan(String prop){ - systemProperty = prop; + public FileSystemExecScan(String... prop){ + systemProperties = new ArrayList<>(); + systemProperties.addAll(Arrays.asList(prop)); } public boolean scan() { @@ -41,8 +45,10 @@ public boolean scan() { public boolean scan(String... dirs){ for(String dir : dirs){ if (checkDirectory(dir)) { - LOGGER.info(String.format("Setting property : %s to %s",systemProperty,dir)); - System.setProperty(systemProperty, SUBSTITUTOR.replace(dir)); + for (String s : systemProperties) { + LOGGER.info(String.format("Setting property : %s to %s",s,dir)); + System.setProperty(s, SUBSTITUTOR.replace(dir)); + } return true; } } From 73e05774d0fe666d6644b44a9fb3a43489954a9f Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 3 Apr 2024 17:52:45 -0400 Subject: [PATCH 043/201] New tarball location, cleanup installer script (#242) * cleanup * switch to new clara tarball location * stop selective copy * switch to temporary version for now * fix warning message --------- Co-authored-by: Nathan Baltzell --- build-coatjava.sh | 7 +++---- install-clara | 14 ++++---------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/build-coatjava.sh b/build-coatjava.sh index c9449b7e0..cd05cfe04 100755 --- a/build-coatjava.sh +++ b/build-coatjava.sh @@ -92,13 +92,12 @@ cp -r etc coatjava/ which python3 >& /dev/null && python=python3 || python=python $python etc/bankdefs/util/bankSplit.py coatjava/etc/bankdefs/hipo4 || exit 1 mkdir -p coatjava/lib/clas -#cp external-dependencies/JEventViewer-1.1.jar coatjava/lib/clas/ -#cp external-dependencies/vecmath-1.3.1-2.jar coatjava/lib/clas/ mkdir -p coatjava/lib/utils -cp external-dependencies/jclara-4.3-SNAPSHOT.jar coatjava/lib/utils -#cp external-dependencies/jaw-1.0.jar coatjava/lib/utils mkdir -p coatjava/lib/services +# FIXME: this is still needed by one of the tests +cp external-dependencies/jclara-4.3-SNAPSHOT.jar coatjava/lib/utils + ### clean up any cache copies ### cd common-tools/coat-lib; $mvn clean; cd - diff --git a/install-clara b/install-clara index 717e6a564..c153ccff8 100755 --- a/install-clara +++ b/install-clara @@ -2,7 +2,7 @@ # Default versions: grapes=2.17 -clara=5.0.2 +clara=v0 coatjava=10.0.8 # Abort on any non-zero exit codes: @@ -94,7 +94,7 @@ if compgen -G "$coatjava/lib/clas/coat-libs-*.jar" > /dev/null then coatjava=$(cd $coatjava && pwd) echo -e "\nUsing local COATJAVA installation:\n\t$coatjava" -elif ! [[ "$coatjava" =~ ^[0-9]+\.[0-9]\.[0-9]$ ]] +elif ! [[ "$coatjava" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] then echo -e "\n\nWARNING: COATJAVA doesn't look like a local installation nor version number: $coatjava" fi @@ -109,7 +109,7 @@ cd $tmp_dir # CLARA: echo -e "\nRetrieving CLARA version $clara ..." -get https://userweb.jlab.org/~gurjyan/clara-cre/clara-cre-$clara.tar.gz +get https://clasweb.jlab.org/clas12offline/distribution/clara/clara-cre-$clara.tar.gz # COATJAVA: if ! compgen -G "$coatjava/lib/clas/coat-libs-*.jar" > /dev/null @@ -118,14 +118,8 @@ then get https://clasweb.jlab.org/clas12offline/distribution/coatjava/coatjava-$coatjava.tar.gz coatjava=./coatjava fi -mkdir -p clara-cre/plugins/clas12/lib/clas -mkdir -p clara-cre/plugins/clas12/lib/services mkdir -p clara-cre/plugins/clas12/config -cp -Lr $coatjava/etc clara-cre/plugins/clas12/. -cp -Lr $coatjava/bin clara-cre/plugins/clas12/. -cp -Lr $coatjava/lib/utils clara-cre/plugins/clas12/lib/. -cp -Lr $coatjava/lib/clas/* clara-cre/plugins/clas12/lib/clas/. -cp -Lr $coatjava/lib/services/* clara-cre/plugins/clas12/lib/services/. +cp -Lr $coatjava/etc $coatjava/bin $coatjava/lib clara-cre/plugins/clas12 # GRAPES: echo -e "\nRetrieving GRAPES version $grapes ..." From c2cbbbb8db9e1dc8c70fdf809df77c7c881f368f Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 3 Apr 2024 17:54:17 -0400 Subject: [PATCH 044/201] new ccdbrcdb version (#245) Co-authored-by: Nathan Baltzell --- common-tools/clas-geometry/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index a11fbe1f9..383ebeb47 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -22,7 +22,7 @@ org.jlab.ccdbrcdb ccdbrcdb - 1.0 + 2.0 From 6939902e4aaa103736a2193bfaac04f66d77601e Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 4 Apr 2024 09:56:59 -0400 Subject: [PATCH 045/201] cache /tmp filesystem results --- .../calib/utils/DatabaseConstantProvider.java | 8 ++--- .../jlab/utils/system/FileSystemExecScan.java | 30 ++++++++++++++----- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java index 1ae731f53..d61aeb78e 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/calib/utils/DatabaseConstantProvider.java @@ -137,11 +137,9 @@ private String getEnvironment(){ private void initialize(String address){ - FileSystemExecScan fses = new FileSystemExecScan("java.io.tmpdir","org.sqlite.tmpdir"); - if (!fses.scan()) { - LOGGER.severe("*** Unable to find good /tmp directory. SQLite may not work. ***"); - } - + // choose /tmp directory: + FileSystemExecScan.scan(); + provider = CCDB.createProvider(address); LOGGER.log(Level.INFO, "[DB] ---> open connection with : {0}", address); diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java index a9347f93e..c11592e6a 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/system/FileSystemExecScan.java @@ -5,7 +5,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.text.StringSubstitutor; @@ -23,7 +25,7 @@ public class FileSystemExecScan { static final StringSubstitutor SUBSTITUTOR = new StringSubstitutor(System.getenv()); - static final String[] DEFAULT_TMPDIRS = new String[] { + public static final String[] DEFAULT_TMPDIRS = new String[] { "/scratch/slurm/${SLURM_JOB_ID}", "/scratch/${USER}", "/tmp", @@ -31,15 +33,23 @@ public class FileSystemExecScan { "${HOME}", }; + public static final String[] DEFAULT_TMPDIR_PROPS = new String[] { + "java.io.tmpdir", + "org.sqlite.tmpdir", + }; + + Map cache; List systemProperties; + static FileSystemExecScan singleton = new FileSystemExecScan(DEFAULT_TMPDIR_PROPS); public FileSystemExecScan(String... prop){ + cache = new HashMap<>(); systemProperties = new ArrayList<>(); systemProperties.addAll(Arrays.asList(prop)); } - - public boolean scan() { - return scan(DEFAULT_TMPDIRS); + + public static boolean scan() { + return singleton.scan(DEFAULT_TMPDIRS); } public boolean scan(String... dirs){ @@ -52,12 +62,18 @@ public boolean scan(String... dirs){ return true; } } - LOGGER.log(Level.SEVERE, "No suitable tmp dir found in: {0}", String.join(":", dirs)); + LOGGER.log(Level.SEVERE, "No suitable tmp dir found in: {0}. SQLite may not work", String.join(":", dirs)); return false; } + + public synchronized boolean checkDirectory(String dir) { + if (!cache.containsKey(dir)) { + cache.put(dir,check(SUBSTITUTOR.replace(dir))); + } + return cache.get(dir); + } - public boolean checkDirectory(String dir){ - dir = SUBSTITUTOR.replace(dir); + public boolean check(String dir){ LOGGER.config(String.format("Checking directory: "+dir)); File f = new File(dir); if (!f.canWrite()) return false; From 4084568b8469cbdae08340b8657e8bae55ab2de7 Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Mon, 8 Apr 2024 20:22:05 -0400 Subject: [PATCH 046/201] build: remove unused `hamcrest` dependency (#251) --- parent/pom.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/parent/pom.xml b/parent/pom.xml index 2689c965b..581b914b6 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -27,14 +27,6 @@ test - - - org.hamcrest - hamcrest-core - 1.3 - test - - com.github.spotbugs spotbugs From 41f68108263f6ab96e4392ccc181c1c84a98a6ca Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Tue, 9 Apr 2024 15:15:08 -0400 Subject: [PATCH 047/201] fix: local vars in `source bin/env.sh` should not pollute user environment (#252) --- bin/env.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/env.sh b/bin/env.sh index 3a3977317..a0c8a0c69 100644 --- a/bin/env.sh +++ b/bin/env.sh @@ -1,7 +1,6 @@ #!/bin/bash -thisEnv=${BASH_SOURCE[0]:-$0} -CLAS12DIR=$(cd $(dirname $thisEnv)/.. && pwd -P) +CLAS12DIR=$(cd $(dirname ${BASH_SOURCE[0]:-$0})/.. && pwd -P) export CLAS12DIR # Set default field maps (but do not override user's env): @@ -26,6 +25,7 @@ if [ $# -ge 1 ]; then JYPATH="${JYPATH:+${JYPATH}:}${jars}" done done + unset lib jars # additional variables and settings for groovy if [ "$1" = "groovy" ]; then From 5acc11d748d683158bb612147e914ed8d335f73f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Apr 2024 15:22:19 -0400 Subject: [PATCH 048/201] build(deps): bump org.apache.maven.wagon:wagon-ssh-external (#247) Bumps org.apache.maven.wagon:wagon-ssh-external from 2.8 to 3.5.3. --- updated-dependencies: - dependency-name: org.apache.maven.wagon:wagon-ssh-external dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- common-tools/cnuphys/parent/pom.xml | 2 +- parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index 6c66111e8..ad9c444e4 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -30,7 +30,7 @@ org.apache.maven.wagon wagon-ssh-external - 2.8 + 3.5.3 diff --git a/parent/pom.xml b/parent/pom.xml index 581b914b6..d7fcac304 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -53,7 +53,7 @@ org.apache.maven.wagon wagon-ssh-external - 2.8 + 3.5.3 From 3633022f07a5582a55e4ef4e705b75d388f5b7da Mon Sep 17 00:00:00 2001 From: Tongtong Cao Date: Thu, 11 Apr 2024 19:53:55 -0400 Subject: [PATCH 049/201] Upgrade FD tracking (#250) * Refactor and move KF tracking package from dc to common-tools and update dc package to apply new KF package * small update for KFitter::calcFinalChisq() * adjust code format and add author for source files * further adjust code format * futher code format adjustments * first version of forward tracking with uRWell * add pseudo segments for missed track candidates * add AI services for forward tracking with uRWell * change uRWELL resolution setup * reset uRWell resolution * fix issue for the FastMath package * fix issue in the FastMath package * cache some sine and cosine calculations in DC reconstruction and forward tracking * use math library to assign values for constant parameters * switch to new CCDB * re-design pattern recognition for FD tracking * reset covaraince matrix for initial state * tiny change * tiny change * change conditions for stopping forward tracking iteration * update overlap of tracks with uRWell crosses * Version 2 of DC-uRWell tracking * fix issue that some information for states in trajectory is missed * tiny change * update pom file * change uRWell resolution setup in TB tracking * fix an issue for writting KF fit doca * blow up initial covariance matrix starting from the second iteration * change limit for inverse calculation of covariance matrix * reset limit since CI test failed * modify reconstruction/dc/pom.xml for version of tracking package * Issue for CI test was fixed. Reset limit to proper value. * apply DAF into DC-only tracking * redefine NDF and remove codes for fail tracking judge * update projected doca for double hits * fix conflict for definition of LR ambiguity between DC hits and measurements as input of KF tracking * apply DAF into DC-uRWell tracking * update calcFinalChisq() in org.jlab.clas.tracking.kalmanfilter.zReference.KFitterWithURWell * modify fitResidual in TB hit banks * update trajectory projected doca * add KF package for straight tracking * update filter_DAF function * fix issue to judge if zero field in DCTBEngine * update pom file for DC reconstruction for version of clas-tracking * add DAF weight into TB hit banks * fix a bug in function matchHits() * add ndfDAF for NDF weighted by DAF * store final weight for DAF in DC-uRWell tracking * update pom file in DC package for version of clas-tracking * set configuration for option of DAF application * set configuration for option of DAF parameters * update dc pom file for tracking package version * loose limit for Vtx0_y in DC reconstruction test * update DC reconstruction pom file for version of tracking * update configuration setup for options of DAF implementation and DAF parameters * update for configuration of DAF annealing factor * update DC reconstruction pom file for version of tracking * set lower limit for DAF weight to avoid overflow * fine updates * tiny change * Update TB hit status, whose first bit indicates that a hit is belong to single or double * update for NDF * remove all updates for uRWell-DC tracking * add comments for todo task --------- Co-authored-by: Christopher Dilks --- .../clas/tracking/kalmanfilter/AMeasVecs.java | 60 +- .../tracking/kalmanfilter/AStateVecs.java | 97 +- .../clas/tracking/kalmanfilter/Surface.java | 69 +- .../jlab/clas/tracking/kalmanfilter/Type.java | 3 +- .../kalmanfilter/zReference/Constants.java | 32 + .../kalmanfilter/zReference/DAFilter.java | 170 +++ .../kalmanfilter/zReference/KFitter.java | 1179 +++++++++++++++++ .../zReference/KFitterStraight.java | 559 ++++++++ .../kalmanfilter/zReference/MeasVecs.java | 46 + .../kalmanfilter/zReference/StateVecs.java | 322 +++++ .../tracking/utilities/RungeKuttaDoca.java | 365 +++++ .../main/java/cnuphys/swimZ/SwimZResult.java | 52 + .../java/org/jlab/clas/swimtools/Swim.java | 82 ++ etc/bankdefs/hipo4/dc.json | 8 +- etc/bankdefs/hipo4/dcnn.json | 4 +- etc/bankdefs/hipo4/urwell.json | 2 +- reconstruction/dc/pom.xml | 12 + .../main/java/org/jlab/rec/dc/Constants.java | 39 +- .../java/org/jlab/rec/dc/banks/Banks.java | 2 +- .../org/jlab/rec/dc/banks/RecoBankWriter.java | 24 +- .../java/org/jlab/rec/dc/cross/Cross.java | 18 +- .../jlab/rec/dc/cross/CrossListFinder.java | 2 +- .../java/org/jlab/rec/dc/hit/FittedHit.java | 22 +- .../java/org/jlab/rec/dc/segment/Segment.java | 5 +- .../java/org/jlab/rec/dc/track/Track.java | 41 +- .../rec/dc/track/TrackCandListFinder.java | 468 ++++--- .../jlab/rec/dc/track/fit/MeasVecsDoca.java | 2 +- .../org/jlab/rec/dc/trajectory/StateVec.java | 20 + .../org/jlab/rec/dc/trajectory/TrackVec.java | 13 +- .../jlab/rec/dc/trajectory/Trajectory.java | 17 +- .../rec/dc/trajectory/TrajectoryFinder.java | 237 ++-- .../java/org/jlab/service/dc/DCEngine.java | 19 + .../java/org/jlab/service/dc/DCTBEngine.java | 435 +++++- .../jlab/service/dc/DCReconstructionTest.java | 4 +- .../jlab/service/urwell/URWellConstants.java | 2 +- 35 files changed, 3985 insertions(+), 447 deletions(-) create mode 100644 common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/Constants.java create mode 100644 common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/DAFilter.java create mode 100644 common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/KFitter.java create mode 100644 common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/KFitterStraight.java create mode 100644 common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/MeasVecs.java create mode 100644 common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/StateVecs.java create mode 100644 common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/utilities/RungeKuttaDoca.java diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/AMeasVecs.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/AMeasVecs.java index 903fb2415..c20bcdfd8 100644 --- a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/AMeasVecs.java +++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/AMeasVecs.java @@ -14,6 +14,7 @@ /** * * @author ziegler + * @author Tongtong Cao */ public abstract class AMeasVecs { @@ -22,7 +23,8 @@ public abstract class AMeasVecs { public void setMeasVecs(List measSurfaces) { measurements = new ArrayList<>(); - Collections.sort(measSurfaces); + if(measSurfaces.get(0).type != Type.LINEDOCA) // Measurements from DC has been sorted + Collections.sort(measSurfaces); for(int i = 0; i < measSurfaces.size(); i++) { MeasVec mvec = new MeasVec(); mvec.k = i ; @@ -33,9 +35,57 @@ public void setMeasVecs(List measSurfaces) { mvec.skip = mvec.surface.passive; mvec.hemisphere = measSurfaces.get(i).hemisphere; measurements.add(mvec); + if(measSurfaces.get(i).type == Type.LINEDOCA) { //Todo: assign a value to the Surface index and use that as the identifier + mvec.region = measSurfaces.get(i).region; + mvec.sector = measSurfaces.get(i).getSector(); + mvec.superlayer = measSurfaces.get(i).getSuperLayer(); + mvec.layer = measSurfaces.get(i).getLayer(); + } } } + // For DC, there could be two hits at a measurement + public double[] dhDoca(int k, StateVec stateVec) { + double value[] = {Double.NaN, Double.NaN}; + + Surface surf = this.measurements.get(stateVec.k).surface; + Point3D point = new Point3D(stateVec.x, stateVec.y, stateVec.z); + double h = hDoca(point, surf.wireLine[0]); + + double signMeas = 1; + double sign = 1; + if(surf.doca[1]!=-99 || !(Math.abs(surf.doca[0])<0.5 && surf.doca[1]==-99 ) ) { //use LR only for double hits or large enough doca for one hit + signMeas = Math.signum(surf.doca[0]); + sign = Math.signum(h); + } else { + signMeas = Math.signum(h); + sign = Math.signum(h); + } + + value[0] = signMeas*Math.abs(surf.doca[0]) - sign*Math.abs(h); + + //USE THE DOUBLE HIT + if(surf.doca[1]!=-99) { + h = hDoca(point, surf.wireLine[1]); + + signMeas = Math.signum(surf.doca[1]); + sign = Math.signum(h); + + value[1]= signMeas*Math.abs(surf.doca[1]) - sign*Math.abs(h); + } + + return value; + } + + // Return a signed doca for DC + public double hDoca(Point3D point, Line3D wireLine) { + + Line3D WL = new Line3D(); + WL.copy(wireLine); + WL.copy(WL.distance(point)); + + return WL.length()*Math.signum(WL.direction().x()); + } public double dh(int k, StateVec stateVec) { @@ -53,7 +103,7 @@ public double dh(int k, StateVec stateVec) { } if( this.measurements.get(stateVec.k).surface.type == Type.PLANEWITHPOINT || this.measurements.get(stateVec.k).surface.type == Type.CYLINDERWITHPOINT) { - Point3D p = new Point3D(this.measurements.get(stateVec.k).surface.refPoint); + Point3D p = new Point3D(this.measurements.get(stateVec.k).surface.measPoint); value = p.distance(stateVec.x, stateVec.y, stateVec.z); } if( this.measurements.get(stateVec.k).surface.type == Type.CYLINDERWITHARC) { @@ -133,7 +183,7 @@ public double h(int k, StateVec stateVec) { } if( this.measurements.get(stateVec.k).surface.type == Type.PLANEWITHPOINT || this.measurements.get(stateVec.k).surface.type == Type.CYLINDERWITHPOINT) { - Point3D p = new Point3D(this.measurements.get(stateVec.k).surface.refPoint); + Point3D p = new Point3D(this.measurements.get(stateVec.k).surface.measPoint); p.setZ(0); value = p.distance(stateVec.x, stateVec.y, 0); } @@ -209,6 +259,10 @@ public class MeasVec implements Comparable { public boolean skip = false; public double hemisphere = 1; + //For DC + public int region = -1; + public int sector = -1; + public int superlayer = -1; @Override public int compareTo(MeasVec arg) { diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/AStateVecs.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/AStateVecs.java index 5e61bfab0..cb6d03840 100644 --- a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/AStateVecs.java +++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/AStateVecs.java @@ -10,6 +10,14 @@ import org.jlab.clas.tracking.kalmanfilter.helical.KFitter; import org.jlab.clas.tracking.trackrep.Helix; import org.jlab.geom.prim.Point3D; +import org.jlab.jnp.matrix.Matrix; +import org.jlab.jnp.matrix.Matrix5x5; + +/** + * + * @author ziegler + * @author Tongtong Cao + */ public abstract class AStateVecs { @@ -245,6 +253,81 @@ public class StateVec { public double energyLoss; public double dx; public double path; + + /////////////////////// extra variables for forward tracking /////////////////////// + // tx = px/pz + public double ty; //=py/pz + public double Q; //q/p + public double B; + public double deltaPath; + public Matrix CM = new Matrix(); // Todo: unify covMat and CM + private double _PathLength; + + /////////////////////// For DAF /////////////////////// + private double weightDAF_single = 1; + private double[] weightDAF_double = {0.5, 0.5}; + + public double getWeightDAF_singleHit(){ + return weightDAF_single; + } + public void setWeightDAF_singleHit(double weight){ + this.weightDAF_single = weight; + } + + public double[] getWeightDAF_doubleHits(){ + return weightDAF_double; + } + public void setWeightDAF_doubleHits(double[] weight){ + this.weightDAF_double = weight; + } + + // Todo: move variables finalDAFWeight, _PathLength, hw, and h from AStateVecs to AMeasVecs + private double finalDAFWeight = -999; + public double getFinalDAFWeight(){ + return finalDAFWeight; + } + public void setFinalDAFWeight(double weight){ + this.finalDAFWeight = weight; + } + + boolean isDoubleHit = false; + + public boolean getIsDoubleHit(){ + return isDoubleHit; + } + public void setIsDoubleHit(boolean isDoubleHit){ + this.isDoubleHit = isDoubleHit; + } + + public double getPathLength() { + return _PathLength; + } + + public void setPathLength(double _PathLength) { + this._PathLength = _PathLength; + } + + // KF projector --> get Wire midPoint match + private double hw; + + public double getProjector() { + return hw; + } + + public void setProjector(double h) { + this.hw = h; + } + // KF projector --> get fit doca + private double h; + + public double getProjectorDoca() { + return h; + } + + public void setProjectorDoca(double h) { + this.h = h; + } + /////////////////////// extra variables for forward tracking /////////////////////// public StateVec(int k) { this.k = k; @@ -294,8 +377,18 @@ public final void copy(StateVec s) { this.energyLoss = s.energyLoss; this.dx = s.dx; this.path = s.path; - this.covMat = this.copyMatrix(s.covMat); - this.F = this.copyMatrix(s.F); + if(s.covMat != null) + this.covMat = this.copyMatrix(s.covMat); + if(s.F != null) + this.F = this.copyMatrix(s.F); + this.ty = s.ty; + this.Q = s.Q; + this.B = s.B; + this.deltaPath = s.deltaPath; + if(s.CM != null) + Matrix5x5.copy(s.CM, this.CM); + this.weightDAF_single = s.weightDAF_single; + this.weightDAF_double = s.weightDAF_double; } public void copyCovMat(double[][] c) { diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/Surface.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/Surface.java index 7b5577c81..59348bd03 100644 --- a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/Surface.java +++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/Surface.java @@ -14,12 +14,15 @@ /** * * @author ziegler + * @author Tongtong Cao */ public class Surface implements Comparable { public Type type; public Plane3D plane; - public Point3D refPoint; + public Point3D measPoint; + public Point3D measPoint_err; + // Todo: make a line to replace two end points public Point3D lineEndPoint1; public Point3D lineEndPoint2; public Point3D finitePlaneCorner1; @@ -40,10 +43,56 @@ public class Surface implements Comparable { public boolean passive = false; public double hemisphere = 1; + public double[] unc = new double[2]; + public double[] doca = new double[2]; + public Line3D[] wireLine = new Line3D[2]; + public int region; + public int superlayer; + public int nMeas = 1; + + + public void setNMeas(int n) { + nMeas = n; + } + + public int getNMeas() { + return nMeas; + } + + // For URWell + public Surface(int sector, double x, double y, double z, double x_err, double y_err) { + type = Type.PLANEWITHPOINT; + this.sector = sector; + Point3D point = new Point3D(x, y, z); + measPoint = point; + Point3D point_err = new Point3D(x_err, y_err, 0); + measPoint_err = point_err; + Material material_air = new Material("air", 0, 0, 0, 30400, 0, Units.CM); + Material material_argon = new Material("argon", 0, 0, 0, 14, 0, Units.CM); + materials.add(material_air); + materials.add(material_argon); + } + + // For DC + public Surface(int region, double[] doca, double[] unc, double error, Line3D[] wireLine) { + type = Type.LINEDOCA; + this.region = region; + this.doca = doca; + this.unc = unc; + this.error = error; + this.wireLine = wireLine; + Point3D point = new Point3D(0, 0, wireLine[0].origin().z()); + this.measPoint = point; + Material material_air = new Material("air", 0, 0, 0, 30400, 0, Units.CM); + Material material_argon = new Material("argon", 0, 0, 0, 14, 0, Units.CM); + materials.add(material_air); + materials.add(material_argon); + } + public Surface(Plane3D plane3d, Point3D refrPoint, Point3D c1, Point3D c2, double accuracy) { type = Type.PLANEWITHPOINT; plane = plane3d; - refPoint = refrPoint; + measPoint = refrPoint; finitePlaneCorner1 = c1; finitePlaneCorner2 = c2; swimAccuracy = accuracy; @@ -82,7 +131,7 @@ public Surface(Cylindrical3D cylinder3d, Strip strp, double accuracy) { public Surface(Cylindrical3D cylinder3d, Point3D refrPoint, double accuracy) { type = Type.CYLINDERWITHPOINT; cylinder = cylinder3d; - refPoint = refrPoint; + measPoint = refrPoint; swimAccuracy = accuracy; } public Surface(Cylindrical3D cylinder3d, Point3D endPoint1, Point3D endPoint2, double accuracy) { @@ -184,6 +233,20 @@ public int getLayer() { public void setLayer(int layer) { this.layer = layer; } + + /** + * @return the superlayer + */ + public int getSuperLayer() { + return superlayer; + } + + /** + * @param superlayer the superlayer to set + */ + public void setSuperLayer(int superlayer) { + this.superlayer = superlayer; + } /** * @return the sector diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/Type.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/Type.java index 181426667..3065ec092 100644 --- a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/Type.java +++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/Type.java @@ -3,11 +3,12 @@ /** * * @author ziegler + * @author Tongtong Cao */ public enum Type { UDF(-1), PLANEWITHPOINT(0), PLANEWITHLINE(1), PLANEWITHSTRIP(2), CYLINDERWITHPOINT(3), CYLINDERWITHLINE(4), CYLINDERWITHARC(5), - CYLINDERWITHSTRIP(6), LINE(7); + CYLINDERWITHSTRIP(6), LINE(7), LINEDOCA(8); private final int value; Type(int value) { diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/Constants.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/Constants.java new file mode 100644 index 000000000..7eb9d2cfb --- /dev/null +++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/Constants.java @@ -0,0 +1,32 @@ +package org.jlab.clas.tracking.kalmanfilter.zReference; + +import java.util.logging.Logger; + +/** + * Constants used in forward tracking + * + * author: Tongtong + */ +public class Constants { + + // private constructor for a singleton + private Constants() { + } + + + public static Logger LOGGER = Logger.getLogger(Constants.class.getName()); + + // CONSTATNS for TRANSFORMATION + public static final double ITERSTOPXHB = 1.2e-2; + public static final double ITERSTOPYHB = 1.4e-1; + public static final double ITERSTOPTXHB = 2.5e-4; + public static final double ITERSTOPTYHB = 1.0e-3; + public static final double ITERSTOPQHB = 1.6e-3; + + public static final double ITERSTOPXTB = 5.5e-5; + public static final double ITERSTOPYTB = 8.0e-4; + public static final double ITERSTOPTXTB = 2.1e-6; + public static final double ITERSTOPTYTB = 3.5e-6; + public static final double ITERSTOPQTB = 1.1e-5; + +} \ No newline at end of file diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/DAFilter.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/DAFilter.java new file mode 100644 index 000000000..2f5fae412 --- /dev/null +++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/DAFilter.java @@ -0,0 +1,170 @@ +package org.jlab.clas.tracking.kalmanfilter.zReference; +import org.jlab.clas.clas.math.FastMath; +import org.jlab.geom.prim.Point3D; +import org.jlab.geom.prim.Line3D; + +/** + * Calculate effective Doca and variance by DAF + * @author Tongtong + */ +public class DAFilter { + + private static double dafChi2Cut = 8; + + // For double hits + private double[] docas_double; + private double[] vars_double; + private double[] weights_double; + private Line3D[] wireLines_double; + private Line3D verticalLine; + private double halfWireDistance; + + // For single hit + private double doca_single; + private double var_single; + private double weight_single; + + // Effective doca + private double effectiveDoca; + private double effectiveVar; + private int indexReferenceWire = 0; + + public DAFilter(double[] docas, double[] vars, double[] weights, Line3D[] wireLines) { + this.docas_double = docas; + this.vars_double = vars; + this.weights_double = weights; + this.wireLines_double = wireLines; + this.verticalLine = wireLines[0].distance(wireLines[1]); + this.halfWireDistance = this.verticalLine.length()/2.; + } + + public DAFilter(double doca, double var, double weight) { + this.doca_single = doca; + this.var_single = var; + this.weight_single = weight; + } + + public static void setDafChi2Cut(double chi2Cut){ + dafChi2Cut = chi2Cut; + } + + public void calc_effectiveDoca_doubleHits(){ + if((wireLines_double[0] == wireLines_double[1]) || ((docas_double[0] == docas_double[1]) && !(docas_double[0] == 0 && docas_double[1] == 0))) { + effectiveVar = vars_double[0]/weights_double[0]; + effectiveDoca = docas_double[0]; + indexReferenceWire = 0; + return; + } + + // Calculate distance between doca point to middle line with sign + double[] toMids = {0, 0}; + + if(docas_double[0] < 0){ + toMids[0] = Math.abs(docas_double[0]) - halfWireDistance; + } + else if(docas_double[0] > 0){ + toMids[0] = halfWireDistance - docas_double[0]; + } + else{ + if(verticalLine.direction().x() > 0) toMids[0] = -halfWireDistance; + else toMids[0] = halfWireDistance; + } + + if(docas_double[1] < 0){ + toMids[1] = Math.abs(docas_double[1]) - halfWireDistance; + } + else if(docas_double[1] > 0){ + toMids[1] = halfWireDistance - docas_double[1]; + } + else{ + if(verticalLine.direction().x() > 0) toMids[1] = halfWireDistance; + else toMids[1] = -halfWireDistance; + } + + // Calculate weighted averge distance to middle line + double sumWeightedVarRec = 0; + double SumWeightedVarRecToMid = 0; + for(int i = 0; i < 2; i++){ + sumWeightedVarRec += weights_double[i] / vars_double[i]; + SumWeightedVarRecToMid += weights_double[i] / vars_double[i] * toMids[i]; + } + effectiveVar = 1/sumWeightedVarRec; + double effectiveToMid = effectiveVar * SumWeightedVarRecToMid; + + // Calculate effective doca with reference line, which correponding doca has higher weight + double docaLargerWeight = 0; + if(weights_double[0] >= weights_double[1]){ + indexReferenceWire = 0; + docaLargerWeight = docas_double[0]; + } + else{ + indexReferenceWire = 1; + docaLargerWeight = docas_double[1]; + } + + if (docaLargerWeight > 0) { + effectiveDoca = halfWireDistance - effectiveToMid; + } else { + if (effectiveToMid < 0) { + effectiveDoca = Math.abs(effectiveToMid) - halfWireDistance; + } else { + effectiveDoca = -effectiveToMid - halfWireDistance; + } + } + } + + public void calc_effectiveDoca_singleHit(){ + effectiveVar = var_single/weight_single; + effectiveDoca = doca_single; + } + + public double get_EffectiveDoca(){ + return effectiveDoca; + } + + public double get_EffectiveVar(){ + return effectiveVar; + } + + public int get_IndexReferenceWire(){ + return indexReferenceWire; + } + + public double calc_updatedWeight_singleHit(double residual, double annealingFactor){ + double factor = 1/Math.sqrt(2 * Math.PI * annealingFactor * var_single); + + double Chi2 = residual * residual/var_single; + double Phi = factor * Math.exp(-0.5 / annealingFactor * Chi2); + double Lambda = factor * Math.exp(-0.5 / annealingFactor * dafChi2Cut); + double sum = Phi + Lambda; + double updatedWeight = Phi/sum; + + if(updatedWeight < 1.e-100) updatedWeight = 1.e-100; + return updatedWeight; + } + + public double[] calc_updatedWeights_doubleHits(double[] residuals, double annealingFactor){ + double factor = 1/Math.sqrt(2 * Math.PI * annealingFactor * vars_double[0] * vars_double[1]); + + double[] Chi2 = new double[2]; + double[] Phi = new double[2]; + double[] Lambda = new double[2]; + double sum = 0; + for(int i = 0; i < 2; i++){ + Chi2[i] = residuals[i] * residuals[i]/vars_double[i]; + Phi[i] = factor * Math.exp(-0.5 / annealingFactor * Chi2[i]); + Lambda[i] = factor * Math.exp(-0.5 / annealingFactor * dafChi2Cut); + sum += (Phi[i] + Lambda[i]); + } + + double[] updatedWeights = {0.5, 0.5}; + for(int i = 0; i < 2; i++){ + updatedWeights[i] = Phi[i]/sum; + if(updatedWeights[i] < 1.e-100) updatedWeights[i] = 1.e-100; + } + + return updatedWeights; + } + +} + diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/KFitter.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/KFitter.java new file mode 100644 index 000000000..c723fb2a3 --- /dev/null +++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/KFitter.java @@ -0,0 +1,1179 @@ +package org.jlab.clas.tracking.kalmanfilter.zReference; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.jlab.clas.clas.math.FastMath; +import org.jlab.clas.swimtools.Swim; +import org.jlab.clas.tracking.kalmanfilter.AKFitter; +import org.jlab.clas.tracking.kalmanfilter.AMeasVecs; +import org.jlab.clas.tracking.kalmanfilter.AStateVecs; +import org.jlab.clas.tracking.kalmanfilter.Surface; +import org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec; +import org.jlab.clas.tracking.kalmanfilter.zReference.MeasVecs; +import org.jlab.clas.tracking.kalmanfilter.zReference.StateVecs; +import org.jlab.clas.tracking.utilities.RungeKuttaDoca; +import org.jlab.clas.tracking.utilities.MatrixOps.Libr; +import org.jlab.geom.prim.Point3D; +import org.jlab.jnp.matrix.*; + +/** + * + * @author Tongtong Cao + */ +public class KFitter extends AKFitter { + + private static List dafAnnealingFactorsTB = new ArrayList<>(Arrays.asList(64., 16., 4., 1.)); + private int dafAnnealingFactorsIndex = 0; + private double dafAnnealingFactor = 1; + + private double ndfDAF = -5; + + private static final double initialCMBlowupFactor = 70; + + private StateVecs sv = new StateVecs(); + private MeasVecs mv = new MeasVecs(); + private StateVec finalSmoothedStateVec = null; + private StateVec finalTransportedStateVec = null; + + public StateVec finalStateVec = null; + public StateVec initialStateVec = null; + public List kfStateVecsAlongTrajectory; + + private int iterNum; + + private double chi2kf = 0; + private double KFScale = 4; + + private int svzLength; + + public int ConvStatus = 1; + + private double Z[]; + + private boolean stopIteration = false; + + private boolean TBT = false; + + Matrix first_inverse = new Matrix(); + Matrix addition = new Matrix(); + Matrix result = new Matrix(); + Matrix result_inv = new Matrix(); + Matrix adj = new Matrix(); + + public KFitter(boolean filter, int iterations, int dir, Swim swim, double Z[], Libr mo) { + super(filter, iterations, dir, swim, mo); + this.Z = Z; + } + + public static void setDafAnnealingFactorsTB(String strDAFAnnealingFactorsTB){ + dafAnnealingFactorsTB.clear(); + String strs[] = strDAFAnnealingFactorsTB.split(","); + for(int i = 0; i < strs.length; i++) + dafAnnealingFactorsTB.add(Double.valueOf(strs[i])); + } + + public final void init(List measSurfaces, StateVec initSV) { + finalSmoothedStateVec = null; + finalTransportedStateVec = null; + this.NDF = -5; + this.chi2 = Double.POSITIVE_INFINITY; + this.numIter = 0; + this.setFitFailed = false; + mv.setMeasVecs(measSurfaces); + for (int i = 0; i < mv.measurements.size(); i++) { + if (mv.measurements.get(i).skip == false) { + this.NDF += mv.measurements.get(i).surface.getNMeas(); + } + } + + sv.init(initSV); + sv.Z = Z; + } + + public final void initFromHB(List measSurfaces, StateVec initSV, double beta, boolean useDAF) { + if(useDAF) initFromHB(measSurfaces, initSV, beta); + else initFromHBNoDAF(measSurfaces, initSV, beta); + } + + public final void initFromHB(List measSurfaces, StateVec initSV, double beta) { + finalSmoothedStateVec = null; + finalTransportedStateVec = null; + this.NDF = -5; + this.chi2 = Double.POSITIVE_INFINITY; + this.numIter = 0; + this.setFitFailed = false; + mv.setMeasVecs(measSurfaces); + for (int i = 0; i < mv.measurements.size(); i++) { + if (mv.measurements.get(i).skip == false) { + this.NDF++; + } + } + sv.initFromHB(initSV, beta); + sv.Z = Z; + TBT = true; + } + + public final void initFromHBNoDAF(List measSurfaces, StateVec initSV, double beta) { + finalSmoothedStateVec = null; + finalTransportedStateVec = null; + this.NDF0 = -5; + this.NDF = -5; + this.chi2 = Double.POSITIVE_INFINITY; + this.numIter = 0; + this.setFitFailed = false; + mv.setMeasVecs(measSurfaces); + for (int i = 0; i < mv.measurements.size(); i++) { + if (mv.measurements.get(i).skip == false) { + this.NDF += mv.measurements.get(i).surface.getNMeas(); + } + } + + sv.initFromHB(initSV, beta); + sv.Z = Z; + TBT = true; + } + + public void runFitter(boolean useDAF) { + if(useDAF) runFitter(); + else runFitterNoDAF(); + } + + public void runFitter() { + this.chi2 = Double.POSITIVE_INFINITY; + double initChi2 = Double.POSITIVE_INFINITY; + this.svzLength = this.mv.measurements.size(); + + int sector = this.mv.measurements.get(0).sector; + + if (TBT == true) { + this.chi2kf = 0; + // Get the input parameters + for (int k = 0; k < svzLength - 1; k++) { + sv.transport(sector, k, k + 1, this.sv.trackTrajT.get(k), mv, this.getSwimmer(), true); + } + this.calcFinalChisqDAF(sector, true); + this.initialStateVec = sv.trackTrajT.get(svzLength - 1); + this.finalStateVec = sv.trackTrajT.get(svzLength - 1); + initChi2 = this.chi2; + if (Double.isNaN(chi2)) { + this.setFitFailed = true; + return; + } + } + + for (int i = 1; i <= totNumIter; i++) { + iterNum = i; + this.chi2kf = 0; + + if (i > 1) { + if (dafAnnealingFactorsIndex < dafAnnealingFactorsTB.size()) { + dafAnnealingFactor = dafAnnealingFactorsTB.get(dafAnnealingFactorsIndex); + dafAnnealingFactorsIndex++; + } else { + dafAnnealingFactor = 1; + dafAnnealingFactorsIndex++; + } + + for (int k = svzLength - 1; k > 0; k--) { + boolean forward = false; + if (k >= 2) { + + // Not backward transport and filter states for the last measurement layer + if (k == svzLength - 1) { + this.sv.transported(forward).put(k, this.sv.trackTrajF.get(k)); + this.sv.filtered(forward).put(k, this.sv.trackTrajF.get(k)); + if (!sv.transport(sector, k, k - 2, this.sv.trackTrajF.get(k), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } else { + if (!sv.transport(sector, k, k - 2, this.sv.trackTrajB.get(k), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } + if(TBT){ + if (!this.filter(k - 2, forward, dafAnnealingFactor)) { + this.stopIteration = true; + break; + } + } + else{ + if (!this.filter(k - 2, forward)) { + this.stopIteration = true; + break; + } + } + + if (!sv.transport(sector, k - 2, k - 1, this.sv.trackTrajB.get(k - 2), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + + if(TBT){ + if (!this.filter(k - 1, forward, dafAnnealingFactor)) { + this.stopIteration = true; + break; + } + } + else{ + if (!this.filter(k - 1, forward)) { + this.stopIteration = true; + break; + } + } + } else { + if (!sv.transport(sector, 1, 0, this.sv.trackTrajB.get(1), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + + if(TBT){ + if (!this.filter(0, forward, dafAnnealingFactor)) { + this.stopIteration = true; + break; + } + } + else{ + if (!this.filter(0, forward)) { + this.stopIteration = true; + break; + } + } + } + } + } + + if (this.stopIteration) { + break; + } + + if (dafAnnealingFactorsIndex < dafAnnealingFactorsTB.size()) { + dafAnnealingFactor = dafAnnealingFactorsTB.get(dafAnnealingFactorsIndex); + dafAnnealingFactorsIndex++; + } else { + dafAnnealingFactor = 1; + dafAnnealingFactorsIndex++; + } + + for (int k = 0; k < svzLength - 1; k++) { + boolean forward = true; + + if (iterNum == 1 && (k == 0)) { + if (TBT == true) { + this.sv.transported(true).put(0, this.sv.transported(false).get(0)); // For TBT, calcFinalChisq() is called previously. + } + } + + if (k == 0) { + if (i == 1) { + sv.filtered(forward).put(0, this.sv.trackTrajT.get(0)); + if (!this.sv.transport(sector, 0, 1, this.sv.trackTrajT.get(0), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } else { + double c00 = this.sv.trackTrajB.get(0).CM.get(0, 0); + double c11 = this.sv.trackTrajB.get(0).CM.get(1, 1); + double c22 = this.sv.trackTrajB.get(0).CM.get(2, 2); + double c33 = this.sv.trackTrajB.get(0).CM.get(3, 3); + double c44 = this.sv.trackTrajB.get(0).CM.get(4, 4); + Matrix newCM = new Matrix(); + newCM.set(c00*initialCMBlowupFactor, 0, 0, 0, 0, + 0, c11*initialCMBlowupFactor, 0, 0, 0, + 0, 0, c22*initialCMBlowupFactor, 0, 0, + 0, 0, 0, c33*initialCMBlowupFactor, 0, + 0, 0, 0, 0, c44*initialCMBlowupFactor); + this.sv.trackTrajB.get(0).CM = newCM; + + this.sv.transported(forward).put(0, this.sv.trackTrajB.get(0)); + this.sv.filtered(forward).put(0, this.sv.trackTrajB.get(0)); + + if (!this.sv.transport(sector, 0, 1, this.sv.trackTrajB.get(0), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } + } else { + if (!this.sv.transport(sector, k, k + 1, this.sv.trackTrajF.get(k), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + + } + if(TBT){ + if (!this.filter(k + 1, forward, dafAnnealingFactor)) { + this.stopIteration = true; + break; + } + } + else{ + if (!this.filter(k + 1, forward)) { + this.stopIteration = true; + break; + } + } + } + + if (this.stopIteration) { + break; + } + + if (i > 1) { + if (this.setFitFailed == true) { + i = totNumIter; + } + if (this.setFitFailed == false) { + if (this.finalStateVec != null) { + if (!TBT) { + if (Math.abs(sv.trackTrajF.get(svzLength - 1).Q - this.finalStateVec.Q) < Constants.ITERSTOPQHB + && Math.abs(sv.trackTrajF.get(svzLength - 1).x - this.finalStateVec.x) < Constants.ITERSTOPXHB + && Math.abs(sv.trackTrajF.get(svzLength - 1).y - this.finalStateVec.y) < Constants.ITERSTOPYHB + && Math.abs(sv.trackTrajF.get(svzLength - 1).tx - this.finalStateVec.tx) < Constants.ITERSTOPTXHB + && Math.abs(sv.trackTrajF.get(svzLength - 1).ty - this.finalStateVec.ty) < Constants.ITERSTOPYHB) { + i = totNumIter; + } + } else { + if (Math.abs(sv.trackTrajF.get(svzLength - 1).Q - this.finalStateVec.Q) < Constants.ITERSTOPQTB + && Math.abs(sv.trackTrajF.get(svzLength - 1).x - this.finalStateVec.x) < Constants.ITERSTOPXTB + && Math.abs(sv.trackTrajF.get(svzLength - 1).y - this.finalStateVec.y) < Constants.ITERSTOPYTB + && Math.abs(sv.trackTrajF.get(svzLength - 1).tx - this.finalStateVec.tx) < Constants.ITERSTOPTXTB + && Math.abs(sv.trackTrajF.get(svzLength - 1).ty - this.finalStateVec.ty) < Constants.ITERSTOPTYTB) { + i = totNumIter; + } + } + } + this.finalStateVec = sv.trackTrajF.get(svzLength - 1); + + } else { + this.ConvStatus = 1; // Should be 0??? + } + } + + } + + if (totNumIter == 1) { + if (this.setFitFailed == false && this.stopIteration == false) { + this.finalStateVec = sv.trackTrajF.get(svzLength - 1); + } + } + + if(TBT) this.calcFinalChisqDAF(sector); + else this.calcFinalChisq(sector); + + if (Double.isNaN(chi2)) { + this.setFitFailed = true; + } + } + + public void runFitterNoDAF() { + this.chi2 = Double.POSITIVE_INFINITY; + double initChi2 = Double.POSITIVE_INFINITY; + // this.NDF = mv.ndf; + this.svzLength = this.mv.measurements.size(); + + int sector = this.mv.measurements.get(0).sector; + + if (TBT == true) { + this.chi2kf = 0; + // Get the input parameters + for (int k = 0; k < svzLength - 1; k++) { + sv.transport(sector, k, k + 1, this.sv.trackTrajT.get(k), mv, this.getSwimmer(), true); + } + this.calcFinalChisq(sector, true); + this.initialStateVec = sv.trackTrajT.get(svzLength - 1); + this.finalStateVec = sv.trackTrajT.get(svzLength - 1); + initChi2 = this.chi2; + if (Double.isNaN(chi2)) { + this.setFitFailed = true; + return; + } + } + + for (int i = 1; i <= totNumIter; i++) { + iterNum = i; + this.chi2kf = 0; + + if (i > 1) { + + for (int k = svzLength - 1; k > 0; k--) { + boolean forward = false; + if (k >= 2) { + + // Not backward transport and filter states for the last measurement layer + if (k == svzLength - 1) { + if (!sv.transport(sector, k, k - 2, this.sv.trackTrajF.get(k), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } else { + if (!sv.transport(sector, k, k - 2, this.sv.trackTrajB.get(k), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } + + if (!this.filter(k - 2, forward)) { + this.stopIteration = true; + break; + } + + if (!sv.transport(sector, k - 2, k - 1, this.sv.trackTrajB.get(k - 2), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + + if (!this.filter(k - 1, forward)) { + this.stopIteration = true; + break; + } + } else { + if (!sv.transport(sector, 1, 0, this.sv.trackTrajB.get(1), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + + if (!this.filter(0, forward)) { + this.stopIteration = true; + break; + } + } + } + } + + if (this.stopIteration) { + break; + } + + for (int k = 0; k < svzLength - 1; k++) { + boolean forward = true; + + if (iterNum == 1 && (k == 0)) { + if (TBT == true) { + this.sv.transported(true).put(0, this.sv.transported(false).get(0)); // For TBT, calcFinalChisq() is called previously. + } + } + + if (k == 0) { + if (i == 1) { + if (!this.sv.transport(sector, 0, 1, this.sv.trackTrajT.get(0), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } else { + double c00 = this.sv.trackTrajB.get(0).CM.get(0, 0); + double c11 = this.sv.trackTrajB.get(0).CM.get(1, 1); + double c22 = this.sv.trackTrajB.get(0).CM.get(2, 2); + double c33 = this.sv.trackTrajB.get(0).CM.get(3, 3); + double c44 = this.sv.trackTrajB.get(0).CM.get(4, 4); + Matrix newCM = new Matrix(); + newCM.set(c00*initialCMBlowupFactor, 0, 0, 0, 0, + 0, c11*initialCMBlowupFactor, 0, 0, 0, + 0, 0, c22*initialCMBlowupFactor, 0, 0, + 0, 0, 0, c33*initialCMBlowupFactor, 0, + 0, 0, 0, 0, c44*initialCMBlowupFactor); + this.sv.trackTrajB.get(0).CM = newCM; + + if (!this.sv.transport(sector, 0, 1, this.sv.trackTrajB.get(0), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } + } else { + if (!this.sv.transport(sector, k, k + 1, this.sv.trackTrajF.get(k), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + + } + + if (!this.filter(k + 1, forward)) { + this.stopIteration = true; + break; + } + } + + if (this.stopIteration) { + break; + } + + if (i > 1) { + if (this.setFitFailed == true) { + i = totNumIter; + } + if (this.setFitFailed == false) { + if (this.finalStateVec != null) { + if (!TBT) { + if (Math.abs(sv.trackTrajF.get(svzLength - 1).Q - this.finalStateVec.Q) < 1.6e-3 + && Math.abs(sv.trackTrajF.get(svzLength - 1).x - this.finalStateVec.x) < 1.2e-2 + && Math.abs(sv.trackTrajF.get(svzLength - 1).y - this.finalStateVec.y) < 1.4e-1 + && Math.abs(sv.trackTrajF.get(svzLength - 1).tx - this.finalStateVec.tx) < 2.5e-4 + && Math.abs(sv.trackTrajF.get(svzLength - 1).ty - this.finalStateVec.ty) < 1.0e-3) { + i = totNumIter; + } + } else { + if (Math.abs(sv.trackTrajF.get(svzLength - 1).Q - this.finalStateVec.Q) < 1.1e-5 + && Math.abs(sv.trackTrajF.get(svzLength - 1).x - this.finalStateVec.x) < 5.5e-5 + && Math.abs(sv.trackTrajF.get(svzLength - 1).y - this.finalStateVec.y) < 8.0e-4 + && Math.abs(sv.trackTrajF.get(svzLength - 1).tx - this.finalStateVec.tx) < 2.1e-6 + && Math.abs(sv.trackTrajF.get(svzLength - 1).ty - this.finalStateVec.ty) < 3.5e-6) { + i = totNumIter; + } + } + } + this.finalStateVec = sv.trackTrajF.get(svzLength - 1); + + } else { + this.ConvStatus = 1; // Should be 0??? + } + } + + } + + if (totNumIter == 1) { + if (this.setFitFailed == false && this.stopIteration == false) { + this.finalStateVec = sv.trackTrajF.get(svzLength - 1); + } + } + + this.calcFinalChisq(sector); + + if (Double.isNaN(chi2)) { + this.setFitFailed = true; + } + + if (TBT == true) { + if (chi2 > initChi2) { // fit failed + this.finalStateVec = this.initialStateVec; + sv.trackTrajT.put(svzLength - 1, this.initialStateVec); + this.calcFinalChisq(sector, true); + } + } + + } + + private boolean filter(int k, boolean forward, double annealingFactor) { + StateVec sVec = sv.transported(forward).get(k); + org.jlab.clas.tracking.kalmanfilter.AMeasVecs.MeasVec mVec = mv.measurements.get(k); + + if (Double.isNaN(sVec.x) || Double.isNaN(sVec.y) + || Double.isNaN(sVec.tx) || Double.isNaN(sVec.ty) + || Double.isNaN(sVec.Q)) { + this.setFitFailed = true; + return false; + } + if (sVec != null && sVec.CM != null + && k < mv.measurements.size() && mVec.skip == false) { + double c2 = 0; + double x_filt = 0; + double y_filt = 0; + double tx_filt = 0; + double ty_filt = 0; + double Q_filt = 0; + Matrix cMat = new Matrix(); + + double updatedWeights_singleHit = 1; + double[] updatedWeights_doubleHits = {0.5, 0.5}; + + if (mVec.surface.doca[1] == -99) { + StateVec sVecPreviousFiltered = sv.filtered(!forward).get(k); + double daf_weight = 1; + if (sVecPreviousFiltered != null) { + daf_weight = sVecPreviousFiltered.getWeightDAF_singleHit(); + } + double var = mVec.surface.unc[0] * KFScale; + DAFilter daf = new DAFilter(mVec.surface.doca[0], var, daf_weight); + daf.calc_effectiveDoca_singleHit(); + + double effectiveDoca = daf.get_EffectiveDoca(); + double effectiveVar = daf.get_EffectiveVar(); + + + double[] K = new double[5]; + double V = effectiveVar; + double[] H = mv.H(sVec.x, sVec.y, mVec.surface.measPoint.z(), mVec.surface.wireLine[0]); + Matrix CaInv = this.filterCovMat(H, sVec.CM, V); + if (CaInv != null) { + Matrix5x5.copy(CaInv, cMat); + } else { + return false; + } + + for (int j = 0; j < 5; j++) { + // the gain matrix + K[j] = (H[0] * cMat.get(j, 0) + + H[1] * cMat.get(j, 1)) / V; + } + + Point3D point = new Point3D(sVec.x, sVec.y, mVec.surface.measPoint.z()); + double h = mv.hDoca(point, mVec.surface.wireLine[0]); + + c2 = (effectiveDoca - h) * (effectiveDoca - h) / V; + + x_filt = sVec.x + + K[0] * (effectiveDoca - h); + y_filt = sVec.y + + K[1] * (effectiveDoca - h); + tx_filt = sVec.tx + + K[2] * (effectiveDoca - h); + ty_filt = sVec.ty + + K[3] * (effectiveDoca - h); + Q_filt = sVec.Q + + K[4] * (effectiveDoca - h); + + Point3D pointFiltered = new Point3D(x_filt, y_filt, mVec.surface.measPoint.z()); + double h0 = mv.hDoca(pointFiltered, mVec.surface.wireLine[0]); + + double residual = effectiveDoca - h0; + updatedWeights_singleHit = daf.calc_updatedWeight_singleHit(residual, annealingFactor); + } + else{ + StateVec sVecPreviousFiltered = sv.filtered(!forward).get(k); + double[] daf_weights = {0.5, 0.5}; + if (sVecPreviousFiltered != null) { + daf_weights = sVecPreviousFiltered.getWeightDAF_doubleHits(); + } + double[] vars = {mVec.surface.unc[0] * KFScale, mVec.surface.unc[1] * KFScale}; + DAFilter daf = new DAFilter(mVec.surface.doca, vars, daf_weights, mVec.surface.wireLine); + daf.calc_effectiveDoca_doubleHits(); + + double effectiveDoca = daf.get_EffectiveDoca(); + double effectiveVar = daf.get_EffectiveVar(); + int indexReferenceWire = daf.get_IndexReferenceWire(); + + double[] K = new double[5]; + double V = effectiveVar; + double[] H = mv.H(sVec.x, sVec.y, mVec.surface.measPoint.z(), mVec.surface.wireLine[indexReferenceWire]); + Matrix CaInv = this.filterCovMat(H, sVec.CM, V); + if (CaInv != null) { + Matrix5x5.copy(CaInv, cMat); + } else { + return false; + } + + for (int j = 0; j < 5; j++) { + // the gain matrix + K[j] = (H[0] * cMat.get(j, 0) + + H[1] * cMat.get(j, 1)) / V; + } + + Point3D point = new Point3D(sVec.x, sVec.y, mVec.surface.measPoint.z()); + double h = mv.hDoca(point, mVec.surface.wireLine[indexReferenceWire]); + + c2 = (effectiveDoca - h) * (effectiveDoca - h) / V; + + x_filt = sVec.x + + K[0] * (effectiveDoca - h); + y_filt = sVec.y + + K[1] * (effectiveDoca - h); + tx_filt = sVec.tx + + K[2] * (effectiveDoca - h); + ty_filt = sVec.ty + + K[3] * (effectiveDoca - h); + Q_filt = sVec.Q + + K[4] * (effectiveDoca - h); + + Point3D pointFiltered = new Point3D(x_filt, y_filt, mVec.surface.measPoint.z()); + double h0 = mv.hDoca(pointFiltered, mVec.surface.wireLine[0]); + double h1 = mv.hDoca(pointFiltered, mVec.surface.wireLine[1]); + double[] residuals = {mVec.surface.doca[0] - h0, mVec.surface.doca[1] - h1}; + updatedWeights_doubleHits = daf.calc_updatedWeights_doubleHits(residuals, annealingFactor); + } + + chi2kf += c2; + if (filterOn) { + StateVec filteredVec = sv.new StateVec(k); + filteredVec.x = x_filt; + filteredVec.y = y_filt; + filteredVec.tx = tx_filt; + filteredVec.ty = ty_filt; + filteredVec.Q = Q_filt; + filteredVec.z = sVec.z; + filteredVec.B = sVec.B; + filteredVec.deltaPath = sVec.deltaPath; + + filteredVec.CM = cMat; + filteredVec.setWeightDAF_singleHit(updatedWeights_singleHit); + filteredVec.setWeightDAF_doubleHits(updatedWeights_doubleHits); + + sv.filtered(forward).put(k, filteredVec); + } else { + return false; + } + + return true; + } else { + return false; + } + } + + private boolean filter(int k, boolean forward) { + StateVec sVec = sv.transported(forward).get(k); + org.jlab.clas.tracking.kalmanfilter.AMeasVecs.MeasVec mVec = mv.measurements.get(k); + + if (Double.isNaN(sVec.x) || Double.isNaN(sVec.y) + || Double.isNaN(sVec.tx) || Double.isNaN(sVec.ty) + || Double.isNaN(sVec.Q)) { + this.setFitFailed = true; + return false; + } + if (sVec != null && sVec.CM != null + && k < mv.measurements.size() && mVec.skip == false) { + + double[] K = new double[5]; + double V = mVec.surface.unc[0] * KFScale; + double[] H = mv.H(sVec.x, sVec.y, mVec.surface.measPoint.z(), mVec.surface.wireLine[0]); + Matrix CaInv = this.filterCovMat(H, sVec.CM, V); + Matrix cMat = new Matrix(); + if (CaInv != null) { + Matrix5x5.copy(CaInv, cMat); + } else { + return false; + } + + for (int j = 0; j < 5; j++) { + // the gain matrix + K[j] = (H[0] * cMat.get(j, 0) + + H[1] * cMat.get(j, 1)) / V; + } + + Point3D point = new Point3D(sVec.x, sVec.y, mVec.surface.measPoint.z()); + double h = mv.hDoca(point, mVec.surface.wireLine[0]); + + double signMeas = 1; + double sign = 1; + if (mVec.surface.doca[1] != -99 + || !(Math.abs(mVec.surface.doca[0]) < 0.5 + && mVec.surface.doca[1] == -99)) { // use LR only for double hits && large + // enough docas + signMeas = Math.signum(mVec.surface.doca[0]); + sign = Math.signum(h); + } else { + signMeas = Math.signum(h); + sign = Math.signum(h); + } + + double c2 = ((signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)) + * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)) / V); + + double x_filt = sVec.x + + K[0] * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)); + double y_filt = sVec.y + + K[1] * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)); + double tx_filt = sVec.tx + + K[2] * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)); + double ty_filt = sVec.ty + + K[3] * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)); + double Q_filt = sVec.Q + + K[4] * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)); + + // USE THE DOUBLE HIT + if (mVec.surface.doca[1] != -99) { + // now filter using the other Hit + V = mVec.surface.unc[1] * KFScale; + H = mv.H(x_filt, y_filt, mVec.surface.measPoint.z(), + mVec.surface.wireLine[1]); + CaInv = this.filterCovMat(H, cMat, V); + if (CaInv != null) { + for (int i = 0; i < 5; i++) { + Matrix5x5.copy(CaInv, cMat); + } + } else { + return false; + } + for (int j = 0; j < 5; j++) { + // the gain matrix + K[j] = (H[0] * cMat.get(j, 0) + + H[1] * cMat.get(j, 1)) / V; + } + + Point3D point2 = new Point3D(x_filt, y_filt, mVec.surface.measPoint.z()); + + h = mv.hDoca(point2, mVec.surface.wireLine[1]); + + signMeas = Math.signum(mVec.surface.doca[1]); + sign = Math.signum(h); + + x_filt += K[0] * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)); + y_filt += K[1] * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)); + tx_filt += K[2] * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)); + ty_filt += K[3] * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)); + Q_filt += K[4] * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)); + + c2 += ((signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)) + * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)) / V); + } + + chi2kf += c2; + if (filterOn) { + StateVec filteredVec = sv.new StateVec(k); + filteredVec.x = x_filt; + filteredVec.y = y_filt; + filteredVec.tx = tx_filt; + filteredVec.ty = ty_filt; + filteredVec.Q = Q_filt; + filteredVec.z = sVec.z; + filteredVec.B = sVec.B; + filteredVec.deltaPath = sVec.deltaPath; + + filteredVec.CM = cMat; + + sv.filtered(forward).put(k, filteredVec); + } else { + return false; + } + + return true; + } else { + return false; + } + } + + public Matrix filterCovMat(double[] H, Matrix Ci, double V) { + + double det = Matrix5x5.inverse(Ci, first_inverse, adj); + if (Math.abs(det) < 1.e-60) { + return null; + } + + addition.set( + H[0] * H[0] / V, H[0] * H[1] / V, 0, 0, 0, + H[0] * H[1] / V, H[1] * H[1] / V, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0); + + Matrix5x5.add(first_inverse, addition, result); + double det2 = Matrix5x5.inverse(result, result_inv, adj); + if (Math.abs(det2) < 1.e-60) { + return null; + } + + return result_inv; + } + + private void calcFinalChisq(int sector) { + calcFinalChisq(sector, false); + } + + private void calcFinalChisq(int sector, boolean nofilter) { + int k = svzLength - 1; + this.chi2 = 0; + double path = 0; + double[] nRj = new double[3]; + + StateVec sVec; + + // To be changed: to match wit the old package, we make the following codes. Could be changed when other codes for application of calcFinalChisq are changed. + if (nofilter || (sv.trackTrajF.get(k) == null)) { + sVec = sv.trackTrajT.get(k); + } else { + sVec = sv.trackTrajF.get(k); + } + + kfStateVecsAlongTrajectory = new ArrayList<>(); + if (sVec != null && sVec.CM != null) { + + boolean forward = false; + sv.transport(sector, k, 0, sVec, mv, this.getSwimmer(), forward); + + StateVec svc = sv.transported(forward).get(0); + path += svc.deltaPath; + svc.setPathLength(path); + + double V0 = mv.measurements.get(0).surface.unc[0]; + + Point3D point = new Point3D(svc.x, svc.y, mv.measurements.get(0).surface.measPoint.z()); + double h0 = mv.hDoca(point, mv.measurements.get(0).surface.wireLine[0]); + + svc.setProjector(mv.measurements.get(0).surface.wireLine[0].origin().x()); + svc.setProjectorDoca(h0); + kfStateVecsAlongTrajectory.add(svc); + double res = (mv.measurements.get(0).surface.doca[0] - h0); + chi2 += (mv.measurements.get(0).surface.doca[0] - h0) * (mv.measurements.get(0).surface.doca[0] - h0) / V0; + nRj[mv.measurements.get(0).region - 1] += res * res / mv.measurements.get(0).error; + //USE THE DOUBLE HIT + if (mv.measurements.get(0).surface.doca[1] != -99) { + V0 = mv.measurements.get(0).surface.unc[1]; + h0 = mv.hDoca(point, mv.measurements.get(0).surface.wireLine[1]); + res = (mv.measurements.get(0).surface.doca[1] - h0); + chi2 += (mv.measurements.get(0).surface.doca[1] - h0) * (mv.measurements.get(0).surface.doca[1] - h0) / V0; + nRj[mv.measurements.get(0).region - 1] += res * res / mv.measurements.get(0).error; + + StateVec svc2 = sv.new StateVec(svc); + svc2.setProjector(mv.measurements.get(0).surface.wireLine[1].origin().x()); + svc2.setProjectorDoca(h0); + kfStateVecsAlongTrajectory.add(svc2); + } + + forward = true; + for (int k1 = 0; k1 < k; k1++) { + if (k1 == 0) { + sv.transport(sector, k1, k1 + 1, svc, mv, this.getSwimmer(), forward); + } else { + sv.transport(sector, k1, k1 + 1, sv.transported(forward).get(k1), mv, this.getSwimmer(), forward); + } + + double V = mv.measurements.get(k1 + 1).surface.unc[0]; + + point = new Point3D(sv.transported(forward).get(k1 + 1).x, sv.transported(forward).get(k1 + 1).y, mv.measurements.get(k1 + 1).surface.measPoint.z()); + + double h = mv.hDoca(point, mv.measurements.get(k1 + 1).surface.wireLine[0]); + svc = sv.transported(forward).get(k1 + 1); + path += svc.deltaPath; + svc.setPathLength(path); + svc.setProjector(mv.measurements.get(k1 + 1).surface.wireLine[0].origin().x()); + svc.setProjectorDoca(h); + kfStateVecsAlongTrajectory.add(svc); + res = (mv.measurements.get(k1 + 1).surface.doca[0] - h); + chi2 += (mv.measurements.get(k1 + 1).surface.doca[0] - h) * (mv.measurements.get(k1 + 1).surface.doca[0] - h) / V; + nRj[mv.measurements.get(k1 + 1).region - 1] += res * res / V; + //USE THE DOUBLE HIT + if (mv.measurements.get(k1 + 1).surface.doca[1] != -99) { + V = mv.measurements.get(k1 + 1).surface.unc[1]; + h = mv.hDoca(point, mv.measurements.get(k1 + 1).surface.wireLine[1]); + res = (mv.measurements.get(k1 + 1).surface.doca[1] - h); + chi2 += (mv.measurements.get(k1 + 1).surface.doca[1] - h) * (mv.measurements.get(k1 + 1).surface.doca[1] - h) / V; + nRj[mv.measurements.get(k1 + 1).region - 1] += res * res / V; + + StateVec svc2 = sv.new StateVec(svc); + svc2.setProjector(mv.measurements.get(k1 + 1).surface.wireLine[1].origin().x()); + svc2.setProjectorDoca(h); + kfStateVecsAlongTrajectory.add(svc2); + } + } + } + + } + + private void calcFinalChisqDAF(int sector) { + calcFinalChisqDAF(sector, false); + } + + private void calcFinalChisqDAF(int sector, boolean nofilter) { + ndfDAF = -5; + + int k = svzLength - 1; + this.chi2 = 0; + double path = 0; + + StateVec sVec; + + // To be changed: to match wit the old package, we make the following codes. Could be changed when other codes for application of calcFinalChisq are changed. + if (nofilter || (sv.trackTrajF.get(k) == null)) { + sVec = sv.trackTrajT.get(k); + } else { + sVec = sv.trackTrajF.get(k); + } + + kfStateVecsAlongTrajectory = new ArrayList<>(); + if (sVec != null && sVec.CM != null) { + + boolean forward = false; + sv.transport(sector, k, 0, sVec, mv, this.getSwimmer(), forward); + + StateVec svc = sv.transported(forward).get(0); + path += svc.deltaPath; + svc.setPathLength(path); + + Point3D point = new Point3D(svc.x, svc.y, mv.measurements.get(0).surface.measPoint.z()); + if(mv.measurements.get(0).surface.doca[1] == -99) { + StateVec sVecPreviousFiltered = sv.filtered(true).get(0); + double daf_weight = 1; + if (sVecPreviousFiltered != null) { + daf_weight = sVecPreviousFiltered.getWeightDAF_singleHit(); + } + double V0 = mv.measurements.get(0).surface.unc[0]; + DAFilter daf = new DAFilter(mv.measurements.get(0).surface.doca[0], V0, daf_weight); + daf.calc_effectiveDoca_singleHit(); + + double effectiveDoca = daf.get_EffectiveDoca(); + double effectiveVar = daf.get_EffectiveVar(); + + double h = mv.hDoca(point, mv.measurements.get(0).surface.wireLine[0]); + double res = (effectiveDoca - h); + chi2 += res*res / effectiveVar; + ndfDAF += daf_weight; + + svc.setProjectorDoca(h); + svc.setProjector(mv.measurements.get(0).surface.wireLine[0].origin().x()); + svc.setFinalDAFWeight(daf_weight); + svc.setIsDoubleHit(false); + kfStateVecsAlongTrajectory.add(svc); + } + else{ + StateVec sVecPreviousFiltered = sv.filtered(true).get(0); + double[] daf_weights = {0.5, 0.5}; + if (sVecPreviousFiltered != null) { + daf_weights = sVecPreviousFiltered.getWeightDAF_doubleHits(); + } + double[] vars = {mv.measurements.get(0).surface.unc[0], mv.measurements.get(0).surface.unc[1]}; + DAFilter daf = new DAFilter(mv.measurements.get(0).surface.doca, vars, daf_weights, mv.measurements.get(0).surface.wireLine); + daf.calc_effectiveDoca_doubleHits(); + + double effectiveDoca = daf.get_EffectiveDoca(); + double effectiveVar = daf.get_EffectiveVar(); + int indexReferenceWire = daf.get_IndexReferenceWire(); + + double h = mv.hDoca(point, mv.measurements.get(0).surface.wireLine[indexReferenceWire]); + double res = (effectiveDoca - h); + chi2 += res*res / effectiveVar; + ndfDAF += (daf_weights[0] + daf_weights[1]); + + h = mv.hDoca(point, mv.measurements.get(0).surface.wireLine[0]); + svc.setProjectorDoca(h); + svc.setProjector(mv.measurements.get(0).surface.wireLine[0].origin().x()); + svc.setFinalDAFWeight(daf_weights[0]); + svc.setIsDoubleHit(true); + kfStateVecsAlongTrajectory.add(svc); + + StateVec svc2 = sv.new StateVec(svc); + h = mv.hDoca(point, mv.measurements.get(0).surface.wireLine[1]); + svc2.setProjectorDoca(h); + svc2.setProjector(mv.measurements.get(0).surface.wireLine[1].origin().x()); + svc2.setFinalDAFWeight(daf_weights[1]); + svc2.setIsDoubleHit(true); + kfStateVecsAlongTrajectory.add(svc2); + } + + forward = true; + for (int k1 = 0; k1 < k; k1++) { + if (k1 == 0) { + sv.transport(sector, k1, k1 + 1, svc, mv, this.getSwimmer(), forward); + } else { + sv.transport(sector, k1, k1 + 1, sv.transported(forward).get(k1), mv, this.getSwimmer(), forward); + } + + svc = sv.transported(forward).get(k1 + 1); + path += svc.deltaPath; + svc.setPathLength(path); + + point = new Point3D(sv.transported(forward).get(k1 + 1).x, sv.transported(forward).get(k1 + 1).y, mv.measurements.get(k1 + 1).surface.measPoint.z()); + if(mv.measurements.get(k1 + 1).surface.doca[1] == -99) { + StateVec sVecPreviousFiltered = sv.filtered(true).get(k1 + 1); + double daf_weight = 1; + if (sVecPreviousFiltered != null) { + daf_weight = sVecPreviousFiltered.getWeightDAF_singleHit(); + } + double V0 = mv.measurements.get(k1 + 1).surface.unc[0]; + DAFilter daf = new DAFilter(mv.measurements.get(k1 + 1).surface.doca[0], V0, daf_weight); + daf.calc_effectiveDoca_singleHit(); + + double effectiveDoca = daf.get_EffectiveDoca(); + double effectiveVar = daf.get_EffectiveVar(); + + double h = mv.hDoca(point, mv.measurements.get(k1 + 1).surface.wireLine[0]); + double res = (effectiveDoca - h); + chi2 += res*res / effectiveVar; + ndfDAF += daf_weight; + + svc.setProjectorDoca(h); + svc.setProjector(mv.measurements.get(k1 + 1).surface.wireLine[0].origin().x()); + svc.setFinalDAFWeight(daf_weight); + svc.setIsDoubleHit(false); + kfStateVecsAlongTrajectory.add(svc); + } + else{ + StateVec sVecPreviousFiltered = sv.filtered(true).get(k1 + 1); + double[] daf_weights = {0.5, 0.5}; + if (sVecPreviousFiltered != null) { + daf_weights = sVecPreviousFiltered.getWeightDAF_doubleHits(); + } + double[] vars = {mv.measurements.get(k1 + 1).surface.unc[0], mv.measurements.get(k1 + 1).surface.unc[1]}; + DAFilter daf = new DAFilter(mv.measurements.get(k1 + 1).surface.doca, vars, daf_weights, mv.measurements.get(k1 + 1).surface.wireLine); + daf.calc_effectiveDoca_doubleHits(); + + double effectiveDoca = daf.get_EffectiveDoca(); + double effectiveVar = daf.get_EffectiveVar(); + int indexReferenceWire = daf.get_IndexReferenceWire(); + + double h = mv.hDoca(point, mv.measurements.get(k1 + 1).surface.wireLine[indexReferenceWire]); + double res = (effectiveDoca - h); + chi2 += res*res / effectiveVar; + ndfDAF += (daf_weights[0] + daf_weights[1]); + + h = mv.hDoca(point, mv.measurements.get(k1 + 1).surface.wireLine[0]); + svc.setProjectorDoca(h); + svc.setProjector(mv.measurements.get(k1 + 1).surface.wireLine[0].origin().x()); + svc.setFinalDAFWeight(daf_weights[0]); + svc.setIsDoubleHit(true); + kfStateVecsAlongTrajectory.add(svc); + + StateVec svc2 = sv.new StateVec(svc); + h = mv.hDoca(point, mv.measurements.get(k1 + 1).surface.wireLine[1]); + svc2.setProjectorDoca(h); + svc2.setProjector(mv.measurements.get(k1 + 1).surface.wireLine[1].origin().x()); + svc2.setFinalDAFWeight(daf_weights[1]); + svc2.setIsDoubleHit(true); + kfStateVecsAlongTrajectory.add(svc2); + } + } + } + } + + public Matrix propagateToVtx(int sector, double Zf) { + return sv.transport(sector, finalStateVec.k, Zf, finalStateVec, mv, this.getSwimmer()); + } + + //Todo: apply the common funciton to replace current function above + @Override + public void runFitter(AStateVecs sv, AMeasVecs mv) { + throw new UnsupportedOperationException("Not supported yet."); + } + + //Todo: apply the common funciton to replace current function above + @Override + public StateVec filter(int k, StateVec vec, AMeasVecs mv) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public StateVec smooth(int k, AStateVecs sv, AMeasVecs mv) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public StateVec smooth(StateVec v1, StateVec v2) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public MeasVecs getMeasVecs() { + return mv; + } + + public StateVecs getStateVecs() { + return sv; + } + + public double getNDFDAF(){ + return ndfDAF; + } + + public void printlnMeasVecs() { + for (int i = 0; i < mv.measurements.size(); i++) { + org.jlab.clas.tracking.kalmanfilter.AMeasVecs.MeasVec measvec = mv.measurements.get(i); + String s = String.format("k=%d region=%d superlayer=%d layer=%d error=%.4f", measvec.k, measvec.region, measvec.superlayer, + measvec.layer, measvec.error); + s += String.format(" Surface: index=%d ", measvec.surface.getIndex()); + s += String.format( + " Surface line 0: doca=%.4f unc=%.4f origin_x =%.4f, origin_y =%.4f, origin_z =%.4f, end_x=%.4f, end_y=%.4f, end_z=%.4f", + measvec.surface.doca[0], measvec.surface.unc[0], measvec.surface.wireLine[0].origin().x(), + measvec.surface.wireLine[0].origin().y(), measvec.surface.measPoint.z(), + measvec.surface.wireLine[0].end().x(), measvec.surface.wireLine[0].end().y(), + measvec.surface.wireLine[0].end().z()); + if (measvec.surface.wireLine[1] != null) { + s += String.format( + " Surface line 1: doca=%.4f unc=%.4f origin_x =%.4f, origin_y =%.4f, origin_z =%.4f, end_x=%.4f, end_y=%.4f, end_z=%.4f", + measvec.surface.doca[1], measvec.surface.unc[1], measvec.surface.wireLine[1].origin().x(), + measvec.surface.wireLine[1].origin().y(), measvec.surface.wireLine[1].origin().z(), + measvec.surface.wireLine[1].end().x(), measvec.surface.wireLine[1].end().y(), + measvec.surface.wireLine[1].end().z()); + } + + System.out.println(s); + } + } + +} diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/KFitterStraight.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/KFitterStraight.java new file mode 100644 index 000000000..232bcaa7d --- /dev/null +++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/KFitterStraight.java @@ -0,0 +1,559 @@ +package org.jlab.clas.tracking.kalmanfilter.zReference; + +import java.util.ArrayList; +import java.util.List; + +import org.jlab.clas.clas.math.FastMath; +import org.jlab.clas.swimtools.Swim; +import org.jlab.clas.tracking.kalmanfilter.AKFitter; +import org.jlab.clas.tracking.kalmanfilter.AMeasVecs; +import org.jlab.clas.tracking.kalmanfilter.AStateVecs; +import org.jlab.clas.tracking.kalmanfilter.Surface; +import org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec; +import org.jlab.clas.tracking.kalmanfilter.zReference.MeasVecs; +import org.jlab.clas.tracking.kalmanfilter.zReference.StateVecs; +import org.jlab.clas.tracking.utilities.RungeKuttaDoca; +import org.jlab.clas.tracking.utilities.MatrixOps.Libr; +import org.jlab.geom.prim.Point3D; +import org.jlab.jnp.matrix.*; + +/** + * + * @author Tongtong Cao + */ +public class KFitterStraight extends AKFitter { + + private StateVecs sv = new StateVecs(); + private MeasVecs mv = new MeasVecs(); + private StateVec finalSmoothedStateVec = null; + private StateVec finalTransportedStateVec = null; + + public StateVec finalStateVec = null; + public StateVec initialStateVec = null; + public List kfStateVecsAlongTrajectory; + + private int interNum; + + private double chi2kf = 0; + private double KFScale = 4; + + private int svzLength; + + public int ConvStatus = 1; + + private double Z[]; + + private boolean stopIteration = false; + + private boolean TBT = false; + + Matrix first_inverse = new Matrix(); + Matrix addition = new Matrix(); + Matrix result = new Matrix(); + Matrix result_inv = new Matrix(); + Matrix adj = new Matrix(); + + public KFitterStraight(boolean filter, int iterations, int dir, Swim swim, double Z[], Libr mo) { + super(filter, iterations, dir, swim, mo); + this.Z = Z; + } + + public final void init(List measSurfaces, StateVec initSV) { + finalSmoothedStateVec = null; + finalTransportedStateVec = null; + this.NDF = -5; + this.chi2 = Double.POSITIVE_INFINITY; + this.numIter = 0; + this.setFitFailed = false; + mv.setMeasVecs(measSurfaces); + for (int i = 0; i < mv.measurements.size(); i++) { + if (mv.measurements.get(i).skip == false) { + this.NDF += mv.measurements.get(i).surface.getNMeas(); + } + } + + sv.init(initSV); + sv.Z = Z; + } + + public final void initFromHB(List measSurfaces, StateVec initSV, double beta) { + finalSmoothedStateVec = null; + finalTransportedStateVec = null; + this.NDF = -5; + this.chi2 = Double.POSITIVE_INFINITY; + this.numIter = 0; + this.setFitFailed = false; + mv.setMeasVecs(measSurfaces); + for (int i = 0; i < mv.measurements.size(); i++) { + if (mv.measurements.get(i).skip == false) { + this.NDF += mv.measurements.get(i).surface.getNMeas(); + } + } + + sv.initFromHB(initSV, beta); + sv.Z = Z; + TBT = true; + } + + public void runFitter() { + this.chi2 = Double.POSITIVE_INFINITY; + double initChi2 = Double.POSITIVE_INFINITY; + // this.NDF = mv.ndf; + this.svzLength = this.mv.measurements.size(); + + int sector = this.mv.measurements.get(0).sector; + + if (TBT == true) { + this.chi2kf = 0; + // Get the input parameters + for (int k = 0; k < svzLength - 1; k++) { + sv.transport(sector, k, k + 1, this.sv.trackTrajT.get(k), mv, this.getSwimmer(), true); + } + this.calcFinalChisq(sector, true); + this.initialStateVec = sv.trackTrajT.get(svzLength - 1); + this.finalStateVec = sv.trackTrajT.get(svzLength - 1); + initChi2 = this.chi2; + if (Double.isNaN(chi2)) { + this.setFitFailed = true; + return; + } + } + + for (int i = 1; i <= totNumIter; i++) { + interNum = i; + this.chi2kf = 0; + + if (i > 1) { + + for (int k = svzLength - 1; k > 0; k--) { + boolean forward = false; + if (k >= 2) { + + // Not backward transport and filter states for the last measurement layer + if (k == svzLength - 1) { + if (!sv.transport(sector, k, k - 2, this.sv.trackTrajF.get(k), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } else { + if (!sv.transport(sector, k, k - 2, this.sv.trackTrajB.get(k), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } + + if (!this.filter(k - 2, forward)) { + this.stopIteration = true; + break; + } + + if (!sv.transport(sector, k - 2, k - 1, this.sv.trackTrajB.get(k - 2), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + + if (!this.filter(k - 1, forward)) { + this.stopIteration = true; + break; + } + } else { + if (!sv.transport(sector, 1, 0, this.sv.trackTrajB.get(1), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + + if (!this.filter(0, forward)) { + this.stopIteration = true; + break; + } + } + } + } + + if (this.stopIteration) { + break; + } + + for (int k = 0; k < svzLength - 1; k++) { + boolean forward = true; + + if (interNum == 1 && (k == 0)) { + if (TBT == true) { + this.sv.transported(true).put(0, this.sv.transported(false).get(0)); // For TBT, calcFinalChisq() is called previously. + } + } + + if (k == 0) { + if (i == 1) { + if (!this.sv.transport(sector, 0, 1, this.sv.trackTrajT.get(0), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } else { + if (!this.sv.transport(sector, 0, 1, this.sv.trackTrajB.get(0), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + } + } else { + if (!this.sv.transport(sector, k, k + 1, this.sv.trackTrajF.get(k), mv, this.getSwimmer(), forward)) { + this.stopIteration = true; + break; + } + + } + + if (!this.filter(k + 1, forward)) { + this.stopIteration = true; + break; + } + } + + if (this.stopIteration) { + break; + } + + if (i > 1) { + if (this.setFitFailed == true) { + i = totNumIter; + } + if (this.setFitFailed == false) { + if (this.finalStateVec != null) { + if (Math.abs(sv.trackTrajF.get(svzLength - 1).Q - this.finalStateVec.Q) < Constants.ITERSTOPQTB + && Math.abs(sv.trackTrajF.get(svzLength - 1).x - this.finalStateVec.x) < Constants.ITERSTOPXTB + && Math.abs(sv.trackTrajF.get(svzLength - 1).y - this.finalStateVec.y) < Constants.ITERSTOPYTB + && Math.abs(sv.trackTrajF.get(svzLength - 1).tx - this.finalStateVec.tx) < Constants.ITERSTOPTXTB + && Math.abs(sv.trackTrajF.get(svzLength - 1).ty - this.finalStateVec.ty) < Constants.ITERSTOPTYTB) { + i = totNumIter; + } + } + this.finalStateVec = sv.trackTrajF.get(svzLength - 1); + + } else { + this.ConvStatus = 1; // Should be 0??? + } + } + } + + if (totNumIter == 1) { + if (this.setFitFailed == false && this.stopIteration == false) { + this.finalStateVec = sv.trackTrajF.get(svzLength - 1); + } + } + + this.calcFinalChisq(sector); + + if (Double.isNaN(chi2)) { + this.setFitFailed = true; + } + + if (TBT == true) { + if (chi2 > initChi2) { // fit failed + this.finalStateVec = this.initialStateVec; + sv.trackTrajT.put(svzLength - 1, this.initialStateVec); + this.calcFinalChisq(sector, true); + } + } + + } + + private boolean filter(int k, boolean forward) { + StateVec sVec = sv.transported(forward).get(k); + org.jlab.clas.tracking.kalmanfilter.AMeasVecs.MeasVec mVec = mv.measurements.get(k); + + if (Double.isNaN(sVec.x) || Double.isNaN(sVec.y) + || Double.isNaN(sVec.tx) || Double.isNaN(sVec.ty) + || Double.isNaN(sVec.Q)) { + this.setFitFailed = true; + return false; + } + if (sVec != null && sVec.CM != null + && k < mv.measurements.size() && mVec.skip == false) { + + + double[] K = new double[5]; + double V = mVec.surface.unc[0] * KFScale; + double[] H = mv.H(sVec.x, sVec.y, mVec.surface.measPoint.z(), mVec.surface.wireLine[0]); + Matrix CaInv = this.filterCovMat(H, sVec.CM, V); + Matrix cMat = new Matrix(); + if (CaInv != null) { + Matrix5x5.copy(CaInv, cMat); + } else { + return false; + } + + for (int j = 0; j < 5; j++) { + // the gain matrix + K[j] = (H[0] * cMat.get(j, 0) + + H[1] * cMat.get(j, 1)) / V; + } + + Point3D point = new Point3D(sVec.x, sVec.y, mVec.surface.measPoint.z()); + double h = mv.hDoca(point, mVec.surface.wireLine[0]); + + double signMeas = 1; + double sign = 1; + if (mVec.surface.doca[1] != -99 + || !(Math.abs(mVec.surface.doca[0]) < 0.5 + && mVec.surface.doca[1] == -99)) { // use LR only for double hits && large + // enough docas + signMeas = Math.signum(mVec.surface.doca[0]); + sign = Math.signum(h); + } else { + signMeas = Math.signum(h); + sign = Math.signum(h); + } + + double c2 = ((signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)) + * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)) / V); + + double x_filt = sVec.x + + K[0] * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)); + double y_filt = sVec.y + + K[1] * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)); + double tx_filt = sVec.tx + + K[2] * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)); + double ty_filt = sVec.ty + + K[3] * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)); + double Q_filt = sVec.Q + + K[4] * (signMeas * Math.abs(mVec.surface.doca[0]) - sign * Math.abs(h)); + + // USE THE DOUBLE HIT + if (mVec.surface.doca[1] != -99) { + // now filter using the other Hit + V = mVec.surface.unc[1] * KFScale; + H = mv.H(x_filt, y_filt, mVec.surface.measPoint.z(), mVec.surface.wireLine[1]); + CaInv = this.filterCovMat(H, cMat, V); + if (CaInv != null) { + for (int i = 0; i < 5; i++) { + Matrix5x5.copy(CaInv, cMat); + } + } else { + return false; + } + for (int j = 0; j < 5; j++) { + // the gain matrix + K[j] = (H[0] * cMat.get(j, 0) + + H[1] * cMat.get(j, 1)) / V; + } + + Point3D point2 = new Point3D(x_filt, y_filt, mVec.surface.measPoint.z()); + + h = mv.hDoca(point2, mVec.surface.wireLine[1]); + + signMeas = Math.signum(mVec.surface.doca[1]); + sign = Math.signum(h); + + x_filt += K[0] * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)); + y_filt += K[1] * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)); + tx_filt += K[2] * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)); + ty_filt += K[3] * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)); + Q_filt += K[4] * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)); + + c2 += ((signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)) + * (signMeas * Math.abs(mVec.surface.doca[1]) - sign * Math.abs(h)) / V); + } + + chi2kf += c2; + if (filterOn) { + StateVec filteredVec = sv.new StateVec(k); + filteredVec.x = x_filt; + filteredVec.y = y_filt; + filteredVec.tx = tx_filt; + filteredVec.ty = ty_filt; + filteredVec.Q = Q_filt; + filteredVec.z = sVec.z; + filteredVec.B = sVec.B; + filteredVec.deltaPath = sVec.deltaPath; + + filteredVec.CM = cMat; + + sv.filtered(forward).put(k, filteredVec); + } + else { + return false; + } + + return true; + } + else { + return false; + } + } + + public Matrix filterCovMat(double[] H, Matrix Ci, double V) { + + double det = Matrix5x5.inverse(Ci, first_inverse, adj); + if(Math.abs(det)<1.e-60) + return null; + + addition.set( + H[0] * H[0] / V, H[0] * H[1] / V, 0, 0, 0, + H[0] * H[1] / V, H[1] * H[1] / V, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0); + + Matrix5x5.add(first_inverse, addition, result); + double det2 = Matrix5x5.inverse(result, result_inv, adj); + if(Math.abs(det2)<1.e-60) + return null; + + return result_inv; + } + + private void calcFinalChisq(int sector) { + calcFinalChisq(sector, false); + } + + private void calcFinalChisq(int sector, boolean nofilter) { + int k = svzLength - 1; + this.chi2 = 0; + double path = 0; + double[] nRj = new double[3]; + + StateVec sVec; + + // To be changed: to match wit the old package, we make the following codes. Could be changed when other codes for application of calcFinalChisq are changed. + if(nofilter || (sv.trackTrajF.get(k) == null)) { + sVec = sv.trackTrajT.get(k); + } + else { + sVec = sv.trackTrajF.get(k); + } + + + kfStateVecsAlongTrajectory = new ArrayList<>(); + if (sVec != null && sVec.CM != null) { + + boolean forward = false; + sv.transport(sector, k, 0, sVec, mv, this.getSwimmer(), forward); + + StateVec svc = sv.transported(forward).get(0); + path += svc.deltaPath; + svc.setPathLength(path); + + double V0 = mv.measurements.get(0).surface.unc[0]; + + Point3D point = new Point3D(svc.x, svc.y, mv.measurements.get(0).surface.measPoint.z()); + double h0 = mv.hDoca(point, mv.measurements.get(0).surface.wireLine[0]); + + svc.setProjector(mv.measurements.get(0).surface.wireLine[0].origin().x()); + svc.setProjectorDoca(h0); + kfStateVecsAlongTrajectory.add(svc); + double res = (mv.measurements.get(0).surface.doca[0] - h0); + chi2 += (mv.measurements.get(0).surface.doca[0] - h0) * (mv.measurements.get(0).surface.doca[0] - h0) / V0; + nRj[mv.measurements.get(0).region-1]+=res*res/mv.measurements.get(0).error; + //USE THE DOUBLE HIT + if(mv.measurements.get(0).surface.doca[1]!=-99) { + V0 = mv.measurements.get(0).surface.unc[1]; + h0 = mv.hDoca(point, mv.measurements.get(0).surface.wireLine[1]); + res = (mv.measurements.get(0).surface.doca[1] - h0); + chi2 += (mv.measurements.get(0).surface.doca[1] - h0) * (mv.measurements.get(0).surface.doca[1] - h0) / V0; + nRj[mv.measurements.get(0).region-1]+=res*res/mv.measurements.get(0).error; + + StateVec svc2 = sv.new StateVec(svc); + svc2.setProjector(mv.measurements.get(0).surface.wireLine[1].origin().x()); + svc2.setProjectorDoca(h0); + kfStateVecsAlongTrajectory.add(svc2); + } + + forward = true; + for (int k1 = 0; k1 < k; k1++) { + if(k1 == 0) { + sv.transport(sector, k1, k1 + 1, svc, mv, this.getSwimmer(), forward); + } + else { + sv.transport(sector, k1, k1 + 1, sv.transported(forward).get(k1), mv, this.getSwimmer(), forward); + } + + double V = mv.measurements.get(k1 + 1).surface.unc[0]; + + point = new Point3D(sv.transported(forward).get(k1+1).x, sv.transported(forward).get(k1+1).y, mv.measurements.get(k1+1).surface.measPoint.z()); + + double h = mv.hDoca(point, mv.measurements.get(k1 + 1).surface.wireLine[0]); + svc = sv.transported(forward).get(k1+1); + path += svc.deltaPath; + svc.setPathLength(path); + svc.setProjector(mv.measurements.get(k1 + 1).surface.wireLine[0].origin().x()); + svc.setProjectorDoca(h); + kfStateVecsAlongTrajectory.add(svc); + res = (mv.measurements.get(k1 + 1).surface.doca[0] - h); + chi2 += (mv.measurements.get(k1 + 1).surface.doca[0] - h) * (mv.measurements.get(k1 + 1).surface.doca[0] - h) / V; + nRj[mv.measurements.get(k1 + 1).region-1]+=res*res/V; + //USE THE DOUBLE HIT + if(mv.measurements.get(k1 + 1).surface.doca[1]!=-99) { + V = mv.measurements.get(k1 + 1).surface.unc[1]; + h = mv.hDoca(point, mv.measurements.get(k1 + 1).surface.wireLine[1]); + res = (mv.measurements.get(k1 + 1).surface.doca[1] - h); + chi2 += (mv.measurements.get(k1 + 1).surface.doca[1] - h) * (mv.measurements.get(k1 + 1).surface.doca[1] - h) / V; + nRj[mv.measurements.get(k1 + 1).region-1]+=res*res/V; + + StateVec svc2 = sv.new StateVec(svc); + svc2.setProjector(mv.measurements.get(k1 + 1).surface.wireLine[1].origin().x()); + svc2.setProjectorDoca(h); + kfStateVecsAlongTrajectory.add(svc2); + } + } + } + + } + + + public Matrix propagateToVtx(int sector, double Zf) { + return sv.transport(sector, finalStateVec.k, Zf, finalStateVec, mv, this.getSwimmer()); + } + + @Override + public void runFitter(AStateVecs sv, AMeasVecs mv) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public StateVec filter(int k, StateVec vec, AMeasVecs mv) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public StateVec smooth(int k, AStateVecs sv, AMeasVecs mv) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public StateVec smooth(StateVec v1, StateVec v2) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public MeasVecs getMeasVecs() { + return mv; + } + + public StateVecs getStateVecs() { + return sv; + } + + public void printlnMeasVecs() { + for (int i = 0; i < mv.measurements.size(); i++) { + org.jlab.clas.tracking.kalmanfilter.AMeasVecs.MeasVec measvec = mv.measurements.get(i); + String s = String.format("k=%d region=%d superlayer=%d layer=%d error=%.4f", measvec.k, measvec.region, measvec.superlayer, + measvec.layer, measvec.error); + s += String.format(" Surface: index=%d", measvec.surface.getIndex()); + s += String.format( + " Surface line 0: doca=%.4f unc=%.4f origin_x =%.4f, origin_y =%.4f, origin_z =%.4f, end_x=%.4f, end_y=%.4f, end_z=%.4f", + measvec.surface.doca[0], measvec.surface.unc[0], measvec.surface.wireLine[0].origin().x(), + measvec.surface.wireLine[0].origin().y(), measvec.surface.measPoint.z(), + measvec.surface.wireLine[0].end().x(), measvec.surface.wireLine[0].end().y(), + measvec.surface.wireLine[0].end().z()); + if (measvec.surface.wireLine[1] != null) + s += String.format( + " Surface line 1: doca=%.4f unc=%.4f origin_x =%.4f, origin_y =%.4f, origin_z =%.4f, end_x=%.4f, end_y=%.4f, end_z=%.4f", + measvec.surface.doca[1], measvec.surface.unc[1], measvec.surface.wireLine[1].origin().x(), + measvec.surface.wireLine[1].origin().y(), measvec.surface.wireLine[1].origin().z(), + measvec.surface.wireLine[1].end().x(), measvec.surface.wireLine[1].end().y(), + measvec.surface.wireLine[1].end().z()); + + System.out.println(s); + } + } + +} diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/MeasVecs.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/MeasVecs.java new file mode 100644 index 000000000..8814ca17e --- /dev/null +++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/MeasVecs.java @@ -0,0 +1,46 @@ +package org.jlab.clas.tracking.kalmanfilter.zReference; + +import java.util.ArrayList; +import java.util.List; + +import org.jlab.clas.swimtools.Swim; +import org.jlab.clas.tracking.kalmanfilter.AMeasVecs; +import org.jlab.clas.tracking.kalmanfilter.AStateVecs; +import org.jlab.clas.tracking.kalmanfilter.Material; +import org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec; +import org.jlab.geom.prim.Line3D; +import org.jlab.geom.prim.Point3D; + +/** + * + * @author tongtong cao + */ +public class MeasVecs extends AMeasVecs { + + public double[] H(double x, double y, double z, Line3D wireLine) { + double[] hMatrix = new double[5]; + double Err = 0.025; + double[][] Result = new double[2][2]; + for (int i = 0; i < 2; i++) { + Point3D point = new Point3D(x + (double) Math.pow(-1, i) * Err, y, z); + Result[i][0] = hDoca(point, wireLine); + } + for (int i = 0; i < 2; i++) { + Point3D point = new Point3D(x, y + (double) Math.pow(-1, i) * Err, z); + Result[i][1] = hDoca(point, wireLine); + } + + hMatrix[0] = (Result[0][0] - Result[1][0]) / (2. * Err); + hMatrix[1] = (Result[0][1] - Result[1][1]) / (2. * Err); + hMatrix[2] = 0; + hMatrix[3] = 0; + hMatrix[4] = 0; + + return hMatrix; + } + + @Override + public double[] H(AStateVecs.StateVec stateVec, AStateVecs sv, MeasVec mv, Swim swimmer) { + throw new UnsupportedOperationException("Not supported yet."); + } +} diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/StateVecs.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/StateVecs.java new file mode 100644 index 000000000..f69dd0bfc --- /dev/null +++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/kalmanfilter/zReference/StateVecs.java @@ -0,0 +1,322 @@ +package org.jlab.clas.tracking.kalmanfilter.zReference; + +import org.jlab.clas.pdg.PhysicsConstants; +import org.jlab.clas.swimtools.Swim; +import org.jlab.clas.tracking.kalmanfilter.AMeasVecs; +import org.jlab.clas.tracking.kalmanfilter.AMeasVecs.MeasVec; +import org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec; +import org.jlab.clas.tracking.kalmanfilter.AStateVecs; +import org.jlab.clas.tracking.kalmanfilter.Surface; +import org.jlab.clas.tracking.kalmanfilter.Units; +import org.jlab.clas.tracking.trackrep.Helix; +import org.jlab.clas.tracking.utilities.MatrixOps; +import org.jlab.geom.prim.Line3D; +import org.jlab.geom.prim.Point3D; +import org.jlab.geom.prim.Vector3D; +import org.jlab.jnp.matrix.Matrix5x5; +import org.jlab.clas.tracking.utilities.RungeKuttaDoca; +import org.jlab.jnp.matrix.Matrix; + +/** + * + * @author Tongtong Cao + */ +public class StateVecs extends AStateVecs { + + private RungeKuttaDoca rk = new RungeKuttaDoca(); + private final Matrix fMS = new Matrix(); + private final Matrix copyMatrix = new Matrix(); + + public double Z[]; + + private double beta = 1.0; // beta depends on mass hypothesis + + // For hit-based tracking + public void init(StateVec initSV) { + this.initSV = initSV; + this.trackTrajT.clear(); + this.trackTrajF.clear(); + this.trackTrajP.clear(); + this.trackTrajB.clear(); + this.trackTrajS.clear(); + this.trackTrajT.put(0, new StateVec(initSV)); + } + + // For time-based tracking + public void initFromHB(StateVec initSV, double beta) { + this.beta = beta; + this.initSV = initSV; + this.trackTrajT.clear(); + this.trackTrajF.clear(); + this.trackTrajP.clear(); + this.trackTrajB.clear(); + this.trackTrajS.clear(); + this.trackTrajT.put(0, new StateVec(initSV)); + } + + /** + * + * @param sector + * @param i initial state vector index + * @param Zf + * @param iVec state vector at the initial index + * @param mv measurements + */ + public Matrix transport(int sector, int i, double Zf, StateVec iVec, AMeasVecs mv, Swim swimmer) { // s = signed step-size + + double stepSize = 1.0; + StateVec fVec = new StateVec(0); + fVec.x = iVec.x; + fVec.y = iVec.y; + fVec.z = iVec.z; + fVec.tx = iVec.tx; + fVec.ty = iVec.ty; + fVec.Q = iVec.Q; + fVec.B = iVec.B; + Matrix5x5.copy(iVec.CM, fVec.CM); + + double s = 0; + double zInit = mv.measurements.get(i).surface.measPoint.z(); + double BatMeas = iVec.B; + + double z = zInit; + + while (Math.signum(Zf - zInit) * z < Math.signum(Zf - zInit) * Zf) { + z = fVec.z; + if (z == Zf) { + break; + } + + double x = fVec.x; + double y = fVec.y; + double tx = fVec.tx; + double ty = fVec.ty; + double Q = fVec.Q; + double dPath = fVec.deltaPath; + Matrix cMat = new Matrix(); + Matrix5x5.copy(fVec.CM, cMat); + s = Math.signum(Zf - zInit) * stepSize; + + // LOGGER.log(Level.FINE, " from "+(float)Z[i]+" to "+(float)Z[f]+" at "+(float)z+" By is "+bf[1]+" B is "+Math.sqrt(bf[0]*bf[0]+bf[1]*bf[1]+bf[2]*bf[2])/Bmax+" stepSize is "+s); + if (Math.signum(Zf - zInit) * (z + s) > Math.signum(Zf - zInit) * Zf) { + s = Math.signum(Zf - zInit) * Math.abs(Zf - z); + } + + //rk.RK4transport(sector, Q, x, y, z, tx, ty, s, swimmer, cMat, fVec, dPath); + rk.RK4transport(sector, s, swimmer, cMat, fVec); + + // Q process noise matrix estimate + double p = Math.abs(1. / iVec.Q); + + double X0 = this.getX0(mv.measurements.get(i).surface, z, Z); + double t_ov_X0 = Math.abs(s) / X0;//path length in radiation length units = t/X0 [true path length/ X0] ; Ar radiation length = 14 cm + + double beta = this.beta; + if (beta > 1.0 || beta <= 0) { + beta = 1.0; + } + + double sctRMS = 0; + + ////// Todo: Modify multi-scattering or remove it; After update, some parameters, like iteration termintion chonditions, may need to be updated. + // Speed of light should be 1 + // From one measurement site to another, F and Q should be calculated separaetely with multiple steps; and then C' = FTCF + Q + if (Math.abs(s) > 0) { + sctRMS = ((0.0136) / (beta * PhysicsConstants.speedOfLight() * p)) * Math.sqrt(t_ov_X0) + * (1 + 0.038 * Math.log(t_ov_X0)); + } + + double cov_txtx = (1 + tx * tx) * (1 + tx * tx + ty * ty) * sctRMS * sctRMS; + double cov_tyty = (1 + ty * ty) * (1 + tx * tx + ty * ty) * sctRMS * sctRMS; + double cov_txty = tx * ty * (1 + tx * tx + ty * ty) * sctRMS * sctRMS; + + fMS.set( + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, cov_txtx, cov_txty, 0, + 0, 0, cov_txty, cov_tyty, 0, + 0, 0, 0, 0, 0 + ); + + Matrix5x5.copy(fVec.CM, copyMatrix); + Matrix5x5.add(copyMatrix, fMS, fVec.CM); + + if (Math.abs(fVec.B - BatMeas) < 0.0001) { + stepSize *= 2; + } + + BatMeas = fVec.B; + } + + return fVec.CM; + + } + + /** + * + * @param sector + * @param i initial state vector index + * @param f final state vector index + * @param iVec state vector at the initial index + * @param mv measurements + */ + public boolean transport(int sector, int i, int f, StateVec iVec, AMeasVecs mv, Swim swimmer, boolean forward) { // s = signed step-size + if (iVec == null) { + return false; + } + double stepSize = 1.0; + StateVec fVec = new StateVec(f); + fVec.x = iVec.x; + fVec.y = iVec.y; + fVec.z = iVec.z; + fVec.tx = iVec.tx; + fVec.ty = iVec.ty; + fVec.Q = iVec.Q; + fVec.B = iVec.B; + Matrix5x5.copy(iVec.CM, fVec.CM); + + double s = 0; + double zInit = mv.measurements.get(i).surface.measPoint.z(); + double BatMeas = iVec.B; + + double z = zInit; + double zFinal = mv.measurements.get(f).surface.measPoint.z(); + + while (Math.signum(zFinal - zInit) * z < Math.signum(zFinal - zInit) * zFinal) { + z = fVec.z; + if (z == zFinal) { + break; + } + + double x = fVec.x; + double y = fVec.y; + double tx = fVec.tx; + double ty = fVec.ty; + double Q = fVec.Q; + double dPath = fVec.deltaPath; + Matrix cMat = new Matrix(); + Matrix5x5.copy(fVec.CM, cMat); + s = Math.signum(zFinal - zInit) * stepSize; + + // LOGGER.log(Level.FINE, " from "+(float)Z[i]+" to "+(float)Z[f]+" at "+(float)z+" By is "+bf[1]+" B is "+Math.sqrt(bf[0]*bf[0]+bf[1]*bf[1]+bf[2]*bf[2])/Bmax+" stepSize is "+s); + if (Math.signum(zFinal - zInit) * (z + s) > Math.signum(zFinal - zInit) * zFinal) { + s = Math.signum(zFinal - zInit) * Math.abs(zFinal - z); + } + + //rk.RK4transport(sector, Q, x, y, z, tx, ty, s, swimmer, cMat, fVec, dPath); + rk.RK4transport(sector, s, swimmer, cMat, fVec); + + // Q process noise matrix estimate + double p = Math.abs(1. / iVec.Q); + + double X0 = this.getX0(mv.measurements.get(i).surface, z, Z); + double t_ov_X0 = Math.abs(s) / X0;//path length in radiation length units = t/X0 [true path length/ X0] ; Ar radiation length = 14 cm + + double beta = this.beta; + if (beta > 1.0 || beta <= 0) { + beta = 1.0; + } + + double sctRMS = 0; + + ////// Todo: Modify multi-scattering or remove it; After update, some parameters, like iteration termintion chonditions, may need to be updated. + // Speed of light should be 1 + // From one measurement site to another, F and Q should be calculated separaetely with multiple steps; and then C' = FTCF + Q + if (Math.abs(s) > 0) { + sctRMS = ((0.0136) / (beta * PhysicsConstants.speedOfLight() * p)) * Math.sqrt(t_ov_X0) + * (1 + 0.038 * Math.log(t_ov_X0)); + } + + double cov_txtx = (1 + tx * tx) * (1 + tx * tx + ty * ty) * sctRMS * sctRMS; + double cov_tyty = (1 + ty * ty) * (1 + tx * tx + ty * ty) * sctRMS * sctRMS; + double cov_txty = tx * ty * (1 + tx * tx + ty * ty) * sctRMS * sctRMS; + + fMS.set( + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, cov_txtx, cov_txty, 0, + 0, 0, cov_txty, cov_tyty, 0, + 0, 0, 0, 0, 0 + ); + + Matrix5x5.copy(fVec.CM, copyMatrix); + Matrix5x5.add(copyMatrix, fMS, fVec.CM); + + if (Math.abs(fVec.B - BatMeas) < 0.0001) { + stepSize *= 2; + } + + BatMeas = fVec.B; + } + + if (forward) { + this.trackTrajT.put(f, fVec); + } else { + this.trackTrajP.put(f, fVec); + } + + if (Double.isNaN(fVec.x) || Double.isNaN(fVec.y) || Double.isNaN(fVec.tx) || Double.isNaN(fVec.ty) || Double.isNaN(fVec.Q)) { + return false; + } else { + return true; + } + + } + + //Todo: update it when updating multi-scattering + public double getX0(Surface surface, double z, double Z[]) { + double X0 = surface.getMaterials().get(0).getX0(); + double tolerance = 0.01; + + for (int i = 1; i < Z.length; i++) { + if (i % 2 == 0) { + continue; + } + if (z >= Z[i] - tolerance && z <= Z[i + 1] + tolerance) { + return surface.getMaterials().get(1).getX0(); + } + } + return X0; + } + + @Override + public double[][] Q(StateVec vec, AMeasVecs mv) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void corrForEloss(int dir, StateVec vec, AMeasVecs mv) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean getStateVecPosAtMeasSite(StateVec sv, AMeasVecs.MeasVec mv, Swim swim) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean setStateVecPosAtMeasSite(StateVec sv, MeasVec mv, Swim swimmer) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void printlnStateVec(StateVec S) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public double[][] F(StateVec iVec, StateVec fVec) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void init(Helix helix, double[][] cov, double xref, double yref, double zref, double mass, Swim swimmer) { + throw new UnsupportedOperationException("Not for forward tracking."); + + } + + @Override + public void init(double x0, double z0, double tx, double tz, Units units, double[][] cov) { + throw new UnsupportedOperationException("Not for forward tracking."); + } +} diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/utilities/RungeKuttaDoca.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/utilities/RungeKuttaDoca.java new file mode 100644 index 000000000..47129534d --- /dev/null +++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/utilities/RungeKuttaDoca.java @@ -0,0 +1,365 @@ +package org.jlab.clas.tracking.utilities; + +import org.jlab.clas.pdg.PhysicsConstants; +import org.jlab.jnp.matrix.*; +import org.jlab.clas.swimtools.Swim; +import org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec;; + +/** + * Swims a given state vector to a given Z position using Runge Kutta 4 transport. + * @author ziegler + * @author benkel + * @author Tongtong Cao + */ +public class RungeKuttaDoca { + private final float[] _b = new float[3]; + final double v = PhysicsConstants.speedOfLight() * 0.0001; + + public RungeKuttaDoca() {} + + /** Swim to Z position without updating the covariance matrix. */ + public void SwimToZ(int sector, StateVec vec, Swim swim, double z0, float[] bf) { + double stepSize = 1.0; + swim.Bfield(sector, vec.x, vec.y, vec.z, bf); + + vec.B = Math.sqrt(bf[0]*bf[0] + bf[1]*bf[1] + bf[2]*bf[2]); + double s = vec.B; + final double travelSign = Math.signum(z0 - vec.z); + double BatMeas = 0; + + while(travelSign * vec.z < travelSign * z0) { + s = travelSign * stepSize; + if (travelSign*(vec.z+s) > travelSign*z0) s = travelSign*Math.abs(z0-vec.z); + + this.RK4transport(sector, s, swim, vec); + + if (Math.abs(vec.B - BatMeas) < 0.0001) stepSize *= 2; + BatMeas = vec.B; + } + } + + /** + * Transport using Runge Kutta 4 without updating the covariance matrix. Lab system = 1, TSC = 0. + * Internal state array (sN) is defined as {x, y, tx, ty}, since q doesn't change. + */ + private void RK4transport(int sector, double h, Swim swim, StateVec vec) { + // Set initial state. + double qv = vec.Q*v; + double[] s0 = {vec.x, vec.y, vec.tx, vec.ty}; + double[] sNull = {0, 0, 0, 0}; + + // Transport. + double[] s1 = RK4step(sector, vec.z, 0, swim, s0, sNull, qv); + double[] s2 = RK4step(sector, vec.z, 0.5*h, swim, s0, s1, qv); + double[] s3 = RK4step(sector, vec.z, 0.5*h, swim, s0, s2, qv); + double[] s4 = RK4step(sector, vec.z, h, swim, s0, s3, qv); + + // Set final state. + vec.z += h; + vec.x += this.RK4(s1[0], s2[0], s3[0], s4[0], h); + vec.y += this.RK4(s1[1], s2[1], s3[1], s4[1], h); + vec.tx += this.RK4(s1[2], s2[2], s3[2], s4[2], h); + vec.ty += this.RK4(s1[3], s2[3], s3[3], s4[3], h); + + vec.B = Math.sqrt(_b[0]*_b[0] + _b[1]*_b[1] + _b[2]*_b[2]); + vec.deltaPath += Math.sqrt((s0[0]-vec.x)*(s0[0]-vec.x)+(s0[1]-vec.y)*(s0[1]-vec.y)+h*h); + } + + /** Perform a single RK4 step without updating the covariance matrix. */ + private double[] RK4step(int sector, double z0, double h, Swim swim, double[] sInit, + double[] sPrev, double qv) { + swim.Bfield(sector, sInit[0]+h*sPrev[0], sInit[1]+h*sPrev[1], z0+h, _b); + double[] sNext = {0,0,0,0}; + sNext[0] = sInit[2] + h*sPrev[2]; + sNext[1] = sInit[3] + h*sPrev[3]; + double C = C(sNext[0], sNext[1]); + sNext[2] = qv * Ax(C, sNext[0], sNext[1]); + sNext[3] = qv * Ay(C, sNext[0], sNext[1]); + return sNext; + } + + /** Transport using Runge Kutta 4, updating the covariance matrix. */ + public void RK4transport(int sector, double h, Swim swim, Matrix cMat, StateVec vec) { + // Set initial state and Jacobian. + double qv = vec.Q*v; + RK4Vec s0 = new RK4Vec(vec); + RK4Vec sNull = new RK4Vec(); + + // Perform steps. + RK4Vec s1 = RK4step(sector, vec.z, 0, swim, s0, sNull, qv); + RK4Vec s2 = RK4step(sector, vec.z, 0.5*h, swim, s0, s1, qv); + RK4Vec s3 = RK4step(sector, vec.z, 0.5*h, swim, s0, s2, qv); + RK4Vec s4 = RK4step(sector, vec.z, h, swim, s0, s3, qv); + + // Compute and set final state and covariance matrix. + RK4Vec sF = computeFinalState(h, s0, s1, s2, s3, s4); + + vec.x = sF.x; + vec.y = sF.y; + vec.tx = sF.tx; + vec.ty = sF.ty; + vec.z += h; + vec.B = Math.sqrt(_b[0]*_b[0]+_b[1]*_b[1]+_b[2]*_b[2]); + vec.deltaPath += Math.sqrt((s0.x-vec.x)*(s0.x-vec.x) + (s0.y-vec.y)*(s0.y-vec.y) + h*h); + vec.CM.set(computeCovMat(cMat, sF)); + } + + /** Perform one RK4 step, updating the covariance matrix. */ + private RK4Vec RK4step(int sector, double z0, double h, Swim swim, + RK4Vec sInit, RK4Vec sPrev, double qv) { + RK4Vec sNext = new RK4Vec(); + swim.Bfield(sector, sInit.x + h*sPrev.x, sInit.y + h*sPrev.y, z0 + h, _b); + + // State. + sNext.x = sInit.tx + h*sPrev.tx; + sNext.y = sInit.ty + h*sPrev.ty; + + double Csq = Csq(sNext.x, sNext.y); + double C = C(Csq); + double Ax = Ax(C, sNext.x, sNext.y); + double Ay = Ay(C, sNext.x, sNext.y); + + sNext.tx = qv * Ax; + sNext.ty = qv * Ay; + + // Jacobian. + sNext.dxdtx0 = sInit.dtxdtx0 + h*sPrev.dtxdtx0; + sNext.dxdty0 = sInit.dtxdty0 + h*sPrev.dtxdty0; + sNext.dxdq0 = sInit.dtxdq0 + h*sPrev.dtxdq0; + sNext.dydtx0 = sInit.dtydtx0 + h*sPrev.dtydtx0; + sNext.dydty0 = sInit.dtydty0 + h*sPrev.dtydty0; + sNext.dydq0 = sInit.dtydq0 + h*sPrev.dtydq0; + + double dAx_dtx = dAx_dtx(C, Csq, Ax, sNext.x, sNext.y); + double dAx_dty = dAx_dty(C, Csq, Ax, sNext.x, sNext.y); + double dAy_dtx = dAy_dtx(C, Csq, Ay, sNext.x, sNext.y); + double dAy_dty = dAy_dty(C, Csq, Ay, sNext.x, sNext.y); + + sNext.dtxdtx0 = this.dtx_dtx0(qv, dAx_dtx, dAx_dty, sNext.dxdtx0, sNext.dydtx0); + sNext.dtxdty0 = this.dtx_dty0(qv, dAx_dty, sNext.dxdty0, sNext.dydty0); + sNext.dtxdq0 = this.dtx_dq0( qv, Ax, dAx_dtx, dAx_dty, sNext.dxdq0, sNext.dydq0); + sNext.dtydtx0 = this.dty_dtx0(qv, dAy_dtx, dAy_dty, sNext.dxdtx0, sNext.dydtx0); + sNext.dtydty0 = this.dty_dty0(qv, dAy_dty, sNext.dxdty0, sNext.dydty0); + sNext.dtydq0 = this.dty_dq0( qv, Ay, dAy_dtx, dAy_dty, sNext.dxdq0, sNext.dydq0); + + return sNext; + } + + /** Compute the final state for each entry in the internal state matrix. */ + private RK4Vec computeFinalState(double h, RK4Vec s0, RK4Vec s1, RK4Vec s2, RK4Vec s3, + RK4Vec s4) { + RK4Vec sF = new RK4Vec(); + + sF.x = s0.x + this.RK4(s1.x, s2.x, s3.x, s4.x, h); + sF.dxdtx0 = this.RK4(s1.dxdtx0, s2.dxdtx0, s3.dxdtx0, s4.dxdtx0, h); + sF.dxdty0 = this.RK4(s1.dxdty0, s2.dxdty0, s3.dxdty0, s4.dxdty0, h); + sF.dxdq0 = this.RK4(s1.dxdq0, s2.dxdq0, s3.dxdq0, s4.dxdq0, h); + + sF.y = s0.y + this.RK4(s1.y, s2.y, s3.y, s4.y, h); + sF.dydtx0 = this.RK4(s1.dydtx0, s2.dydtx0, s3.dydtx0, s4.dydtx0, h); + sF.dydty0 = this.RK4(s1.dydty0, s2.dydty0, s3.dydty0, s4.dydty0, h); + sF.dydq0 = this.RK4(s1.dydq0, s2.dydq0, s3.dydq0, s4.dydq0, h); + + sF.tx = s0.tx + this.RK4(s1.tx, s2.tx, s3.tx, s4.tx, h); + sF.dtxdtx0 = 1 + this.RK4(s1.dtxdtx0, s2.dtxdtx0, s3.dtxdtx0, s4.dtxdtx0, h); + sF.dtxdty0 = this.RK4(s1.dtxdty0, s2.dtxdty0, s3.dtxdty0, s4.dtxdty0, h); + sF.dtxdq0 = this.RK4(s1.dtxdq0, s2.dtxdq0, s3.dtxdq0, s4.dtxdq0, h); + + sF.ty = s0.ty + this.RK4(s1.ty, s2.ty, s3.ty, s4.ty, h); + sF.dtydtx0 = this.RK4(s1.dtydtx0, s2.dtydtx0, s3.dtydtx0, s4.dtydtx0, h); + sF.dtydty0 = 1 + this.RK4(s1.dtydty0, s2.dtydty0, s3.dtydty0, s4.dtydty0, h); + sF.dtydq0 = this.RK4(s1.dtydq0, s2.dtydq0, s3.dtydq0, s4.dtydq0, h); + + return sF; + } + + /** Compute the final covariance matrix. covMat = FCF^T. */ + private double[][] computeCovMat(Matrix C, RK4Vec sF) { + double[][] cNext = new double[5][5]; + cNext[0][0] = C.get(0,0)+C.get(2,0)*sF.dxdtx0+C.get(3,0)*sF.dxdty0+C.get(4,0)*sF.dxdq0 + + sF.dxdq0 *(C.get(0,4)+C.get(2,4)*sF.dxdtx0+C.get(3,4)*sF.dxdty0+C.get(4,4)*sF.dxdq0) + + sF.dxdtx0*(C.get(0,2)+C.get(2,2)*sF.dxdtx0+C.get(3,2)*sF.dxdty0+C.get(4,2)*sF.dxdq0) + + sF.dxdty0*(C.get(0,3)+C.get(2,3)*sF.dxdtx0+C.get(3,3)*sF.dxdty0+C.get(4,3)*sF.dxdq0); + + cNext[0][1] = C.get(0,1)+C.get(2,1)*sF.dxdtx0+C.get(3,1)*sF.dxdty0+C.get(4,1)*sF.dxdq0 + + sF.dydq0 *(C.get(0,4)+C.get(2,4)*sF.dxdtx0+C.get(3,4)*sF.dxdty0+C.get(4,4)*sF.dxdq0) + + sF.dydtx0*(C.get(0,2)+C.get(2,2)*sF.dxdtx0+C.get(3,2)*sF.dxdty0+C.get(4,2)*sF.dxdq0) + + sF.dydty0*(C.get(0,3)+C.get(2,3)*sF.dxdtx0+C.get(3,3)*sF.dxdty0+C.get(4,3)*sF.dxdq0); + + cNext[0][2] = sF.dtxdq0 *(C.get(0,4)+C.get(2,4)*sF.dxdtx0+C.get(3,4)*sF.dxdty0+C.get(4,4)*sF.dxdq0) + + sF.dtxdtx0*(C.get(0,2)+C.get(2,2)*sF.dxdtx0+C.get(3,2)*sF.dxdty0+C.get(4,2)*sF.dxdq0) + + sF.dtxdty0*(C.get(0,3)+C.get(2,3)*sF.dxdtx0+C.get(3,3)*sF.dxdty0+C.get(4,3)*sF.dxdq0); + + cNext[0][3] = sF.dtydq0 *(C.get(0,4)+C.get(2,4)*sF.dxdtx0+C.get(3,4)*sF.dxdty0+C.get(4,4)*sF.dxdq0) + + sF.dtydtx0*(C.get(0,2)+C.get(2,2)*sF.dxdtx0+C.get(3,2)*sF.dxdty0+C.get(4,2)*sF.dxdq0) + + sF.dtydty0*(C.get(0,3)+C.get(2,3)*sF.dxdtx0+C.get(3,3)*sF.dxdty0+C.get(4,3)*sF.dxdq0); + + cNext[0][4] = C.get(0,4)+C.get(2,4)*sF.dxdtx0+C.get(3,4)*sF.dxdty0+C.get(4,4)*sF.dxdq0; + + cNext[1][0] = C.get(1,0)+C.get(2,0)*sF.dydtx0+C.get(3,0)*sF.dydty0+C.get(4,0)*sF.dydq0 + + sF.dxdq0 *(C.get(1,4)+C.get(2,4)*sF.dydtx0+C.get(3,4)*sF.dydty0+C.get(4,4)*sF.dydq0) + + sF.dxdtx0*(C.get(1,2)+C.get(2,2)*sF.dydtx0+C.get(3,2)*sF.dydty0+C.get(4,2)*sF.dydq0) + + sF.dxdty0*(C.get(1,3)+C.get(2,3)*sF.dydtx0+C.get(3,3)*sF.dydty0+C.get(4,3)*sF.dydq0); + + cNext[1][1] = C.get(1,1)+C.get(2,1)*sF.dydtx0+C.get(3,1)*sF.dydty0+C.get(4,1)*sF.dydq0 + + sF.dydq0 *(C.get(1,4)+C.get(2,4)*sF.dydtx0+C.get(3,4)*sF.dydty0+C.get(4,4)*sF.dydq0) + + sF.dydtx0*(C.get(1,2)+C.get(2,2)*sF.dydtx0+C.get(3,2)*sF.dydty0+C.get(4,2)*sF.dydq0) + + sF.dydty0*(C.get(1,3)+C.get(2,3)*sF.dydtx0+C.get(3,3)*sF.dydty0+C.get(4,3)*sF.dydq0); + + cNext[1][2] = sF.dtxdq0 *(C.get(1,4)+C.get(2,4)*sF.dydtx0+C.get(3,4)*sF.dydty0+C.get(4,4)*sF.dydq0) + + sF.dtxdtx0*(C.get(1,2)+C.get(2,2)*sF.dydtx0+C.get(3,2)*sF.dydty0+C.get(4,2)*sF.dydq0) + + sF.dtxdty0*(C.get(1,3)+C.get(2,3)*sF.dydtx0+C.get(3,3)*sF.dydty0+C.get(4,3)*sF.dydq0); + + cNext[1][3] = sF.dtydq0 *(C.get(1,4)+C.get(2,4)*sF.dydtx0+C.get(3,4)*sF.dydty0+C.get(4,4)*sF.dydq0) + + sF.dtydtx0*(C.get(1,2)+C.get(2,2)*sF.dydtx0+C.get(3,2)*sF.dydty0+C.get(4,2)*sF.dydq0) + + sF.dtydty0*(C.get(1,3)+C.get(2,3)*sF.dydtx0+C.get(3,3)*sF.dydty0+C.get(4,3)*sF.dydq0); + + cNext[1][4] = C.get(1,4)+C.get(2,4)*sF.dydtx0+C.get(3,4)*sF.dydty0+C.get(4,4)*sF.dydq0; + + cNext[2][0] = C.get(2,0)*sF.dtxdtx0+C.get(3,0)*sF.dtxdty0+C.get(4,0)*sF.dtxdq0 + + sF.dxdq0 *(C.get(2,4)*sF.dtxdtx0+C.get(3,4)*sF.dtxdty0+C.get(4,4)*sF.dtxdq0) + + sF.dxdtx0*(C.get(2,2)*sF.dtxdtx0+C.get(3,2)*sF.dtxdty0+C.get(4,2)*sF.dtxdq0) + + sF.dxdty0*(C.get(2,3)*sF.dtxdtx0+C.get(3,3)*sF.dtxdty0+C.get(4,3)*sF.dtxdq0); + + cNext[2][1] = C.get(2,1)*sF.dtxdtx0+C.get(3,1)*sF.dtxdty0+C.get(4,1)*sF.dtxdq0 + + sF.dydq0 *(C.get(2,4)*sF.dtxdtx0+C.get(3,4)*sF.dtxdty0+C.get(4,4)*sF.dtxdq0) + + sF.dydtx0*(C.get(2,2)*sF.dtxdtx0+C.get(3,2)*sF.dtxdty0+C.get(4,2)*sF.dtxdq0) + + sF.dydty0*(C.get(2,3)*sF.dtxdtx0+C.get(3,3)*sF.dtxdty0+C.get(4,3)*sF.dtxdq0); + + cNext[2][2] = sF.dtxdq0 *(C.get(2,4)*sF.dtxdtx0+C.get(3,4)*sF.dtxdty0+C.get(4,4)*sF.dtxdq0) + + sF.dtxdtx0*(C.get(2,2)*sF.dtxdtx0+C.get(3,2)*sF.dtxdty0+C.get(4,2)*sF.dtxdq0) + + sF.dtxdty0*(C.get(2,3)*sF.dtxdtx0+C.get(3,3)*sF.dtxdty0+C.get(4,3)*sF.dtxdq0); + + cNext[2][3] = sF.dtydq0 *(C.get(2,4)*sF.dtxdtx0+C.get(3,4)*sF.dtxdty0+C.get(4,4)*sF.dtxdq0) + + sF.dtydtx0*(C.get(2,2)*sF.dtxdtx0+C.get(3,2)*sF.dtxdty0+C.get(4,2)*sF.dtxdq0) + + sF.dtydty0*(C.get(2,3)*sF.dtxdtx0+C.get(3,3)*sF.dtxdty0+C.get(4,3)*sF.dtxdq0); + + cNext[2][4] = C.get(2,4)*sF.dtxdtx0+C.get(3,4)*sF.dtxdty0+C.get(4,4)*sF.dtxdq0; + + cNext[3][0] = C.get(2,0)*sF.dtydtx0+C.get(3,0)*sF.dtydty0+C.get(4,0)*sF.dtydq0 + + sF.dxdq0 *(C.get(2,4)*sF.dtydtx0+C.get(3,4)*sF.dtydty0+C.get(4,4)*sF.dtydq0) + + sF.dxdtx0*(C.get(2,2)*sF.dtydtx0+C.get(3,2)*sF.dtydty0+C.get(4,2)*sF.dtydq0) + + sF.dxdty0*(C.get(2,3)*sF.dtydtx0+C.get(3,3)*sF.dtydty0+C.get(4,3)*sF.dtydq0); + + cNext[3][1] = C.get(2,1)*sF.dtydtx0+C.get(3,1)*sF.dtydty0+C.get(4,1)*sF.dtydq0 + + sF.dydq0 *(C.get(2,4)*sF.dtydtx0+C.get(3,4)*sF.dtydty0+C.get(4,4)*sF.dtydq0) + + sF.dydtx0*(C.get(2,2)*sF.dtydtx0+C.get(3,2)*sF.dtydty0+C.get(4,2)*sF.dtydq0) + + sF.dydty0*(C.get(2,3)*sF.dtydtx0+C.get(3,3)*sF.dtydty0+C.get(4,3)*sF.dtydq0); + + cNext[3][2] = sF.dtxdq0 *(C.get(2,4)*sF.dtydtx0+C.get(3,4)*sF.dtydty0+C.get(4,4)*sF.dtydq0) + + sF.dtxdtx0*(C.get(2,2)*sF.dtydtx0+C.get(3,2)*sF.dtydty0+C.get(4,2)*sF.dtydq0) + + sF.dtxdty0*(C.get(2,3)*sF.dtydtx0+C.get(3,3)*sF.dtydty0+C.get(4,3)*sF.dtydq0); + + cNext[3][3] = sF.dtydq0 *(C.get(2,4)*sF.dtydtx0+C.get(3,4)*sF.dtydty0+C.get(4,4)*sF.dtydq0) + + sF.dtydtx0*(C.get(2,2)*sF.dtydtx0+C.get(3,2)*sF.dtydty0+C.get(4,2)*sF.dtydq0) + + sF.dtydty0*(C.get(2,3)*sF.dtydtx0+C.get(3,3)*sF.dtydty0+C.get(4,3)*sF.dtydq0); + + cNext[3][4] = C.get(2,4)*sF.dtydtx0+C.get(3,4)*sF.dtydty0+C.get(4,4)*sF.dtydq0; + + cNext[4][0] = C.get(4,0)+C.get(4,2)*sF.dxdtx0+C.get(4,3)*sF.dxdty0+C.get(4,4)*sF.dxdq0; + + cNext[4][1] = C.get(4,1)+C.get(4,2)*sF.dydtx0+C.get(4,3)*sF.dydty0+C.get(4,4)*sF.dydq0; + + cNext[4][2] = C.get(4,2)*sF.dtxdtx0+C.get(4,3)*sF.dtxdty0+C.get(4,4)*sF.dtxdq0; + + cNext[4][3] = C.get(4,2)*sF.dtydtx0+C.get(4,3)*sF.dtydty0+C.get(4,4)*sF.dtydq0; + + cNext[4][4] = C.get(4,4); + + return cNext; + } + + /** Get the final RK4 estimate. */ + private double RK4(double k1, double k2, double k3, double k4, double h) { + return (h/6) * (k1 + 2*k2 + 2*k3 + k4); + } + + // Auxiliary calculations. + private double C(double tx, double ty) { + return Math.sqrt(1 + tx*tx + ty*ty); + } + private double C(double Csq) { + return Math.sqrt(Csq); + } + private double Csq(double tx, double ty) { + return 1 + tx*tx + ty*ty; + } + + private double Ax(double C, double tx, double ty) { + return C * (ty * (tx * _b[0] + _b[2]) - (1 + tx * tx) * _b[1]); + } + private double Ay(double C, double tx, double ty) { + return C * (-tx * (ty * _b[1] + _b[2]) + (1 + ty * ty) * _b[0]); + } + + private double dAx_dtx(double C, double C2, double Ax, double tx, double ty) { + return tx * Ax/C2 + C * (ty*_b[0] - 2*tx*_b[1]); + } + private double dAx_dty(double C, double C2, double Ax, double tx, double ty) { + return ty * Ax/C2 + C * (tx*_b[0] + _b[2]); + } + private double dAy_dtx(double C, double C2, double Ay, double tx, double ty) { + return tx * Ay/C2 + C * (-ty*_b[1] - _b[2]); + } + private double dAy_dty(double C, double C2, double Ay, double tx, double ty) { + return ty * Ay/C2 + C * (-tx*_b[1] + 2*ty*_b[0]); + } + + // Total derivatives. + private double dtx_dtx0(double qv, double dAx_dtx, double dAx_dty, + double dtx_dtx0, double dty_dtx0) { + return qv * (dAx_dtx*dtx_dtx0 + dAx_dty*dty_dtx0); + } + private double dtx_dty0(double qv, double dAx_dty, double dtx_dty0, double dty_dty0) { + return qv * (dAx_dty*dtx_dty0 + dAx_dty*dty_dty0); + } + private double dtx_dq0(double qv, double Ax, double dAx_dtx, double dAx_dty, + double dtx_dq0, double dty_dq0) { + return v*Ax + qv * (dAx_dtx*dtx_dq0 + dAx_dty*dty_dq0); + } + private double dty_dtx0(double qv, double dAy_dtx, double dAy_dty, + double dtx_dtx0, double dty_dtx0) { + return qv * (dAy_dtx*dtx_dtx0 + dAy_dty*dty_dtx0); + } + private double dty_dty0(double qv, double dAy_dty, double dtx_dty0, double dty_dty0) { + return qv * (dAy_dty*dtx_dty0 + dAy_dty*dty_dty0); + } + private double dty_dq0(double qv, double Ay, double dAy_dtx, double dAy_dty, + double dtx_dq0, double dty_dq0) { + return v*Ay + qv * (dAy_dtx*dtx_dq0 + dAy_dty*dty_dq0); + } + + /** State vector and its derivatives used internally. */ + private class RK4Vec { + public double x = 0; + public double dxdtx0 = 0; + public double dxdty0 = 0; + public double dxdq0 = 0; + + public double y = 0; + public double dydtx0 = 0; + public double dydty0 = 0; + public double dydq0 = 0; + + public double tx = 0; + public double dtxdtx0 = 0; + public double dtxdty0 = 0; + public double dtxdq0 = 0; + + public double ty = 0; + public double dtydtx0 = 0; + public double dtydty0 = 0; + public double dtydq0 = 0; + + RK4Vec() {} + RK4Vec(StateVec vec) { + this.x = vec.x; + this.y = vec.y; + this.tx = vec.tx; + this.ty = vec.ty; + + this.dtxdtx0 = 1; + this.dtydty0 = 1; + } + } +} diff --git a/common-tools/cnuphys/swimmer/src/main/java/cnuphys/swimZ/SwimZResult.java b/common-tools/cnuphys/swimmer/src/main/java/cnuphys/swimZ/SwimZResult.java index cb7754928..38fcff515 100644 --- a/common-tools/cnuphys/swimmer/src/main/java/cnuphys/swimZ/SwimZResult.java +++ b/common-tools/cnuphys/swimmer/src/main/java/cnuphys/swimZ/SwimZResult.java @@ -209,6 +209,58 @@ public double sectorGetBDL(int sector, FieldProbe probe) { return _bdl; } + + /** + * Get the approximate integral |B x dL| in the middle plane + * + * @param sector sector 1..6 + * @param probe the probe use to compute this result trajectory + * @return the approximate integral |B x dL| in kG*cm + */ + public double sectorGetBDLXZPlane(int sector, FieldProbe probe) { + + // only compute if necessary + if (Double.isNaN(_bdl)) { + _bdl = 0; + _pathLength = 0; + + int size = size(); + + SwimZStateVector prev = null; + if (size > 1) { + + double dr[] = new double[3]; + + float b[] = new float[3]; + double bxdl[] = new double[3]; + double bxdlxz[] = new double[3]; + + for (SwimZStateVector next : _trajectory) { + if (prev != null) { + prev.dR(next, dr); + _pathLength += vecmag(dr); + + //get the field at the midpoint + float xmid = (float) ((prev.x + next.x) / 2); + float ymid = (float) ((prev.y + next.y) / 2); + float zmid = (float) ((prev.z + next.z) / 2); + probe.field(sector, xmid, ymid, zmid, b); + + cross(b, dr, bxdl); + bxdlxz[0] = bxdl[0]; + bxdlxz[1] = 0; + bxdlxz[2] = bxdl[2]; + + _bdl += vecmag(bxdlxz); + + } + prev = next; + } + } + } + + return _bdl; + } // usual cross product c = a x b private static void cross(float a[], double b[], double c[]) { diff --git a/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/Swim.java b/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/Swim.java index 5fb3fee46..5cec9b2b5 100644 --- a/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/Swim.java +++ b/common-tools/swim-tools/src/main/java/org/jlab/clas/swimtools/Swim.java @@ -279,6 +279,88 @@ public double[] SwimToPlaneTiltSecSys(int sector, double z_cm) { return value; } + + public double[] SwimToPlaneTiltSecSysBdlXZPlane(int sector, double z_cm) { + double z = z_cm / 100; // the magfield method uses meters + double[] value = new double[8]; + + if (_pTot < MINTRKMOM || this.SwimUnPhys==true) // fiducial cut + { + return null; + } + + // use a SwimZResult instead of a trajectory (dph) + SwimZResult szr = null; + + SwimTrajectory traj = null; + double hdata[] = new double[3]; + + try { + + if (_pTot > SWIMZMINMOM) { + + // use the new z swimmer (dph) + // NOTE THE DISTANCE, UNITS FOR swimZ are cm, NOT m like the old + // swimmer (dph) + + double stepSizeCM = stepSize * 100; // convert to cm + + // create the starting SwimZ state vector + SwimZStateVector start = new SwimZStateVector(_x0 * 100, _y0 * 100, _z0 * 100, _pTot, _theta, _phi); + + try { + szr = PC.RCF_z.sectorAdaptiveRK(sector, _charge, _pTot, start, z_cm, stepSizeCM, hdata); + } catch (SwimZException e) { + szr = null; + //System.err.println("[WARNING] Tilted SwimZ Failed for p = " + _pTot); + } + } + + if (szr != null) { + double bdl = szr.sectorGetBDLXZPlane(sector, PC.RCF_z.getProbe()); + double pathLength = szr.getPathLength(); // already in cm + + SwimZStateVector last = szr.last(); + double p3[] = szr.getThreeMomentum(last); + + value[0] = last.x; // xf in cm + value[1] = last.y; // yz in cm + value[2] = last.z; // zf in cm + value[3] = p3[0]; + value[4] = p3[1]; + value[5] = p3[2]; + value[6] = pathLength; + value[7] = bdl / 10; // convert from kg*cm to T*cm + } else { // use old swimmer. Either low momentum or SwimZ failed. + // (dph) + + traj = PC.RCF.sectorSwim(sector, _charge, _x0, _y0, _z0, _pTot, _theta, _phi, z, accuracy, _rMax, + _maxPathLength, stepSize, cnuphys.swim.Swimmer.CLAS_Tolerance, hdata); + + // traj.computeBDL(sector, rprob); + if(traj==null) + return null; + + traj.sectorComputeBDL(sector, PC.RCP); + // traj.computeBDL(rcompositeField); + + double lastY[] = traj.lastElement(); + value[0] = lastY[0] * 100; // convert back to cm + value[1] = lastY[1] * 100; // convert back to cm + value[2] = lastY[2] * 100; // convert back to cm + value[3] = lastY[3] * _pTot; + value[4] = lastY[4] * _pTot; + value[5] = lastY[5] * _pTot; + value[6] = lastY[6] * 100; + value[7] = lastY[7] * 10; + } // use old swimmer + } catch (Exception e) { + e.printStackTrace(); + } + return value; + + } + /** * * @param z_cm diff --git a/etc/bankdefs/hipo4/dc.json b/etc/bankdefs/hipo4/dc.json index 2bba41bd8..e8dd22f34 100644 --- a/etc/bankdefs/hipo4/dc.json +++ b/etc/bankdefs/hipo4/dc.json @@ -266,7 +266,7 @@ {"name":"t1_z", "type":"F", "info":"Upstream Region 1 track z-position in the lab (in cm)"}, {"name":"t1_px", "type":"F", "info":"Upstream Region 1 track unit x-momentum vector in the lab"}, {"name":"t1_py", "type":"F", "info":"Upstream Region 1 track unit y-momentum vector in the lab"}, - {"name":"t1_pz", "type":"F", "info":"Upstream Region 1 track unit z-momentum vector in the lab"}, + {"name":"t1_pz", "type":"F", "info":"Upstream Region 1 track unit z-momentum vector in the lab"}, {"name":"Vtx0_x", "type":"F", "info":"Vertex x-position of the swam track to the DOCA to the beamline (in cm)"}, {"name":"Vtx0_y", "type":"F", "info":"Vertex y-position of the swam track to the DOCA to the beamline (in cm)"}, {"name":"Vtx0_z", "type":"F", "info":"Vertex z-position of the swam track to the DOCA to the beamline (in cm)"}, @@ -347,6 +347,7 @@ {"name":"trkDoca", "type":"F", "info":"track doca of the hit (in cm)"}, {"name":"timeResidual", "type":"F", "info":"time residual of the hit (in cm)"}, {"name":"fitResidual", "type":"F", "info":"fit residual of the hit (in cm, from KF)"}, + {"name":"DAFWeight", "type":"F", "info":"Weight by DAF; the 1st bit of status indicates that a hit is belong to single or double"}, {"name":"LR", "type":"B", "info":"Left/Right ambiguity of the hit"}, {"name":"X", "type":"F", "info":"wire x-coordinate in tilted-sector"}, {"name":"Z", "type":"F", "info":"wire z-coordinate in tilted-sector"}, @@ -499,7 +500,7 @@ {"name":"t1_z", "type":"F", "info":"Upstream Region 1 track z-position in the lab (in cm)"}, {"name":"t1_px", "type":"F", "info":"Upstream Region 1 track unit x-momentum vector in the lab"}, {"name":"t1_py", "type":"F", "info":"Upstream Region 1 track unit y-momentum vector in the lab"}, - {"name":"t1_pz", "type":"F", "info":"Upstream Region 1 track unit z-momentum vector in the lab"}, + {"name":"t1_pz", "type":"F", "info":"Upstream Region 1 track unit z-momentum vector in the lab"}, {"name":"Vtx0_x", "type":"F", "info":"Vertex x-position of the swam track to the DOCA to the beamline (in cm)"}, {"name":"Vtx0_y", "type":"F", "info":"Vertex y-position of the swam track to the DOCA to the beamline (in cm)"}, {"name":"Vtx0_z", "type":"F", "info":"Vertex z-position of the swam track to the DOCA to the beamline (in cm)"}, @@ -518,7 +519,8 @@ {"name":"q", "type":"B", "info":"charge of the track"}, {"name":"pathlength", "type":"F", "info":"pathlength of the track"}, {"name":"chi2", "type":"F", "info":"fit chi2 of the track"}, - {"name":"ndf", "type":"S", "info":"fit ndf of the track"} + {"name":"ndf", "type":"S", "info":"fit ndf weightd by DAF for the track"}, + {"name":"ndf0", "type":"S", "info":"traditional ndf for the track"} ] }, { diff --git a/etc/bankdefs/hipo4/dcnn.json b/etc/bankdefs/hipo4/dcnn.json index a007771fe..7a2aa7be5 100644 --- a/etc/bankdefs/hipo4/dcnn.json +++ b/etc/bankdefs/hipo4/dcnn.json @@ -224,6 +224,7 @@ {"name":"timeResidual", "type":"F", "info":"time residual of the hit (in cm)"}, {"name":"fitResidual", "type":"F", "info":"fit residual of the hit (in cm, from KF)"}, {"name":"dDoca", "type":"F", "info":"delta Doca correction (cm)"}, + {"name":"DAFWeight", "type":"F", "info":"Weight by DAF; the 1st bit of status indicates that a hit is belong to single or double"}, {"name":"LR", "type":"B", "info":"Left/Right ambiguity of the hit"}, {"name":"X", "type":"F", "info":"wire x-coordinate in tilted-sector"}, {"name":"Z", "type":"F", "info":"wire z-coordinate in tilted-sector"}, @@ -380,7 +381,8 @@ {"name":"q", "type":"B", "info":"charge of the track"}, {"name":"pathlength", "type":"F", "info":"pathlength of the track"}, {"name":"chi2", "type":"F", "info":"fit chi2 of the track"}, - {"name":"ndf", "type":"S", "info":"fit ndf of the track"} + {"name":"ndf", "type":"S", "info":"fit ndf weightd by DAF for the track"}, + {"name":"ndf0", "type":"S", "info":"traditional ndf for the track"} ] }, { diff --git a/etc/bankdefs/hipo4/urwell.json b/etc/bankdefs/hipo4/urwell.json index 0981d24a0..913309dd6 100644 --- a/etc/bankdefs/hipo4/urwell.json +++ b/etc/bankdefs/hipo4/urwell.json @@ -55,5 +55,5 @@ {"name":"cluster2", "type":"S", "info":"id of the cluster in the W layer"}, {"name":"status", "type":"S", "info":"status of the cluster"} ] - } + } ] \ No newline at end of file diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index b332bd7cc..5a9f38b25 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -18,6 +18,18 @@ + + + org.jlab.clas12.detector + clas12detector-urwell + 1.0-SNAPSHOT + + + + org.jlab.clas + clas-tracking + 10.0.11-SNAPSHOT + org.jlab.clas diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java index d29dfc291..11f0267af 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java @@ -17,7 +17,6 @@ import org.jlab.geom.base.Detector; import org.jlab.rec.dc.trajectory.TrajectorySurfaces; import org.jlab.utils.groups.IndexedTable; -import org.jlab.clas.clas.math.FastMath; import org.jlab.detector.banks.RawBank.OrderType; /** @@ -52,20 +51,36 @@ public static Constants getInstance() { public static boolean DEBUG = false; // CONSTATNS for TRANSFORMATION - public static final double SIN25 = FastMath.sin(Math.toRadians(25.)); - public static final double COS25 = FastMath.cos(Math.toRadians(25.)); - public static final double COS30 = FastMath.cos(Math.toRadians(30.)); - public static final double SIN6 = FastMath.sin(Math.toRadians(6.)); - public static final double COS6 = FastMath.cos(Math.toRadians(6.)); + public static final double SIN25 = Math.sin(Math.toRadians(25.)); + public static final double COS25 = Math.cos(Math.toRadians(25.)); + public static final double COS30 = Math.cos(Math.toRadians(30.)); + public static final double SIN6 = Math.sin(Math.toRadians(6.)); + public static final double COS6 = Math.cos(Math.toRadians(6.)); public static final double TAN6 = Math.tan(Math.toRadians(6.)); - public static final double CTAN6 = 1 / TAN6; - public static final double[] SINSECTOR60 = {0, FastMath.sin(Math.toRadians(60.)), FastMath.sin(Math.toRadians(120.)), 0, - FastMath.sin(Math.toRadians(240.)), FastMath.sin(Math.toRadians(300.))}; + public static final double CTAN6 = 1/TAN6; + public static final double[] SINSECTOR60 = {0, Math.sin(Math.toRadians(60.)), Math.sin(Math.toRadians(120.)), 0, + Math.sin(Math.toRadians(240.)), Math.sin(Math.toRadians(300.))}; public static final double[] COSSECTOR60 = {1, 0.5, -0.5, -1, -0.5, 0.5}; - public static final double[] SINSECTORNEG60 = {0, FastMath.sin(Math.toRadians(-60.)), FastMath.sin(Math.toRadians(-120.)), 0, - FastMath.sin(Math.toRadians(-240.)), FastMath.sin(Math.toRadians(-300.))}; + public static final double[] SINSECTORNEG60 = {0, Math.sin(Math.toRadians(-60.)), Math.sin(Math.toRadians(-120.)), 0, + Math.sin(Math.toRadians(-240.)), Math.sin(Math.toRadians(-300.))}; public static final double[] COSSECTORNEG60 = {1, 0.5, -0.5, -1, -0.5, 0.5}; - + + ////////////// Uncertainties for initial state + ////// DC only + public static final double HBINITIALSTATEUNCSCALE = 1.5; + public static final double HBINITIALSTATEXUNC = 7.8; + public static final double HBINITIALSTATEYUNC = 5.7; + public static final double HBINITIALSTATETXUNC = 0.063; + public static final double HBINITIALSTATETYUNC = 0.036; + public static final double HBINITIALSTATEQUNC = 0.13; + + public static final double TBINITIALSTATEUNCSCALE = 1.5; + public static final double TBINITIALSTATEXUNC = 0.14; + public static final double TBINITIALSTATEYUNC = 1.03; + public static final double TBINITIALSTATETXUNC = 0.0025; + public static final double TBINITIALSTATETYUNC = 0.0091; + public static final double TBINITIALSTATEQUNC = 0.0084; + // PHYSICS CONSTANTS public static final double SPEEDLIGHT = 29.97924580; public static final double LIGHTVEL = 0.00299792458; // velocity of light (cm/ns) - conversion factor from radius in cm to momentum in GeV/c diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/Banks.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/Banks.java index 9f4577349..224380884 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/Banks.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/Banks.java @@ -120,7 +120,7 @@ public String getSegmentsBank() { public String getCrossesBank() { return this.getOutputBank("Crosses"); - } + } public String getTracksBank() { return this.getOutputBank("Tracks"); diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/RecoBankWriter.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/RecoBankWriter.java index 8f9735b5a..3be9e11d4 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/RecoBankWriter.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/RecoBankWriter.java @@ -322,7 +322,7 @@ public DataBank fillHBCrossesBank(DataEvent event, List crosslist) { } return bank; } - + public DataBank fillHBTracksBank(DataEvent event, List candlist) { String name = bankNames.getTracksBank(); DataBank bank = event.createBank(name, candlist.size()); @@ -398,7 +398,7 @@ public DataBank fillHBTracksBank(DataEvent event, List candlist) { //bank.show(); return bank; } - + public DataBank fillHBTrajectoryBank(DataEvent event, List candlist) { return this.fillTrajectoryBank(event, candlist); } @@ -495,6 +495,7 @@ private DataBank fillTBHitsBank(DataEvent event, List hitlist) { bank.setShort("clusterID", i, (short) hitlist.get(i).get_AssociatedClusterID()); bank.setByte("trkID", i, (byte) hitlist.get(i).get_AssociatedTBTrackID()); bank.setFloat("timeResidual", i, (float) hitlist.get(i).get_TimeResidual()); + bank.setFloat("DAFWeight", i, (float) hitlist.get(i).getDAFWeight()); bank.setInt("TDC",i,hitlist.get(i).get_TDC()); bank.setByte("jitter",i, (byte) hitlist.get(i).getJitter()); @@ -702,6 +703,7 @@ private DataBank fillTBTracksBank(DataEvent event, List candlist) { DataBank bank = event.createBank(name, candlist.size()); for (int i = 0; i < candlist.size(); i++) { bank.setShort("id", i, (short) candlist.get(i).get_Id()); + //bank.setShort("status", i, (short) (100+candlist.get(i).get_Status()*10+candlist.get(i).get_MissingSuperlayer())); bank.setShort("status", i, (short) candlist.get(i).getBitStatus()); bank.setByte("sector", i, (byte) candlist.get(i).getSector()); @@ -761,7 +763,17 @@ private DataBank fillTBTracksBank(DataEvent event, List candlist) { i, (short) candlist.get(i).getSingleSuperlayer().get_fittedCluster().get_Id()); } bank.setFloat("chi2", i, (float) candlist.get(i).get_FitChi2()); - bank.setShort("ndf", i, (short) candlist.get(i).get_FitNDF()); + // To not interrupt current type of ndf, ndf weighted by DAF is converted from float to interger + int ndfDAF = 999; + if(candlist.get(i).get_NDFDAF() > 0){ + ndfDAF = (int) Math.ceil(candlist.get(i).get_NDFDAF()); + } + else if (candlist.get(i).get_NDFDAF() < 0){ + ndfDAF = (int) Math.floor(candlist.get(i).get_NDFDAF()); + } + bank.setShort("ndf", i, (short) ndfDAF); + // ndf0 is for traditional ndf for the track; # of hits can be obtained through it + bank.setShort("ndf0", i, (short) candlist.get(i).get_FitNDF()); } return bank; @@ -866,9 +878,9 @@ else if (fhits != null && clusters == null) { ); } } - + public void fillAllTBBanks(DataEvent event, List fhits, List clusters, - List segments, List crosses, + List segments, List crosses, List trkcands) { if (event == null) { @@ -905,5 +917,5 @@ public void fillAllTBBanks(DataEvent event, List fhits, List { private double _tProp; private double _tStart; // The event start time private double _Time; //Time = TDC - tFlight - tProp - T0 - TStart + + private double _DAFWeight = -999; // Weight by DAF + /** * identifying outoftimehits; */ @@ -1037,13 +1040,30 @@ public double get_Beta0to1() { return beta; } + /** + * @return _DAFWeight + */ + public double getDAFWeight() { + return _DAFWeight; + } + + /** + * @param weight the _DAFWeight to set + */ + public void setDAFWeight(double weight) { + this._DAFWeight = weight; + } + public void updateHitfromSV(StateVec st, DCGeant4Factory DcDetector) { // this.set_Id(this.get_Id()); // this.set_TDC(this.get_TDC()); // this.set_AssociatedHBTrackID(trk.get_Id()); // this.set_AssociatedClusterID(this.get_AssociatedClusterID()); this.setAssociatedStateVec(st); - this.set_TrkResid(this.get_Doca() * Math.signum(st.getProjectorDoca()) - st.getProjectorDoca()); + this.set_TrkResid(this.get_Doca() * this.get_LeftRightAmb() - st.getProjectorDoca()); + this.setDAFWeight(st.getDAFWeight()); + //Set the first bit of TB hit status to indicate that a hit is belong to single or double + if(st.getIsDoubleHit() == 1) this.set_QualityFac(1); this.setB(st.getB()); this.setSignalPropagTimeAlongWire(st.x(), st.y(), DcDetector); this.setSignalTimeOfFlight(); diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java index 3cb01b215..b4617909f 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java @@ -286,14 +286,14 @@ public void set_SegmentEndPointsSecCoordSys(DCGeant4Factory DcDetector) { //double Z_1 = GeometryLoader.dcDetector.getSector(0).getSuperlayer(this.get_Superlayer()-1).getLayer(0).getComponent(0).getMidpoint().z(); double Z_1 = DcDetector.getWireMidpoint(this.get_Sector() - 1, this.get_Superlayer() - 1, 0, 0).z; double X_1 = this.get_fittedCluster().get_clusterLineFitSlope() * Z_1 + this.get_fittedCluster().get_clusterLineFitIntercept(); - + double x1 = Constants.COS25 * X_1 + Constants.SIN25 * Z_1; double z1 = -Constants.SIN25 * X_1 + Constants.COS25 * Z_1; //double Z_2 = GeometryLoader.dcDetector.getSector(0).getSuperlayer(this.get_Superlayer()-1).getLayer(5).getComponent(0).getMidpoint().z(); double Z_2 = DcDetector.getWireMidpoint(this.get_Sector() - 1, this.get_Superlayer() - 1, 5, 0).z; double X_2 = this.get_fittedCluster().get_clusterLineFitSlope() * Z_2 + this.get_fittedCluster().get_clusterLineFitIntercept(); - + double x2 = Constants.COS25 * X_2 + Constants.SIN25 * Z_2; double z2 = -Constants.SIN25 * X_2 + Constants.COS25 * Z_2; @@ -349,7 +349,6 @@ public void set_SegmentEndPoints(double[] _SegmentEndPoints) { * by a point on the plane and a unit normal vector. */ private Plane3D calc_fitPlane(Point3D refPoint, Vector3D refDir) { - double X = Math.pow(-1, (this.get_Superlayer() - 1)) * Constants.SIN6; double Y = Constants.COS6; diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/Track.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/Track.java index a0f92fb32..5105388bc 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/Track.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/Track.java @@ -59,16 +59,17 @@ public void setFinalStateVec(StateVec finalStateVec) { private Vector3D _pAtOrig_TiltedCS; private String _trking; private int _FitNDF; + private double _NDFDAF; private double _fitChisq; public boolean fit_Successful; private int _missingSuperlayer; private Segment _singleSuperlayer ; private int _fitConvergenceStatus; private StateVec finalStateVec ; - - + public Track() { } + /** * * @return missing superlayer of the track @@ -122,6 +123,24 @@ public int getBitStatus() { } + /** + * Status for different cross combos: + * 1: combos from R0R1R2R3 + * 2: combos from R1R2R3 + * 3: combos from R0R2R3 + * 4: combos from R0R1R3 + * 5: combos from R0R1R2 + */ + private int _Status_crossCombo=0; + + public int get_Status_crossCombo() { + return _Status_crossCombo; + } + + public void set_Status_crossCombo(int _Status) { + this._Status_crossCombo = _Status; + } + /** * * @return id of the track @@ -333,6 +352,22 @@ public int get_FitNDF() { public void set_FitNDF(int _FitNDF) { this._FitNDF = _FitNDF; } + + /** + * + * @return Kalman fit NDF weighted DAF + */ + public double get_NDFDAF() { + return _NDFDAF; + } + /** + * + * @param _NDFDAF Kalman fit NDF weighted by DAF + */ + public void set_NDFDAF(double _NDFDAF) { + this._NDFDAF = _NDFDAF; + } + /** * * @return Kalman fit covariance matrix @@ -420,7 +455,7 @@ public boolean overlaps(Track o) { } return value; } - + public boolean bestChi2(Track o) { return this.get_FitChi2() trkcands) { // LOGGER.log(Level.FINE, "Checking overlaps for tracks "); // t1.printInfo();t2.printInfo(); if(i!=j && t1.overlaps(t2)) { - if(t1.get_FitChi2()>t2.get_FitChi2()) + if(t1.get_FitChi2()/t1.get_FitNDF()>t2.get_FitChi2()/t2.get_FitNDF()) overlap=true; - else if(t1.get_FitChi2()==t2.get_FitChi2() && i>j) + else if(t1.get_FitChi2()/t1.get_FitNDF()==t2.get_FitChi2()/t2.get_FitNDF() && i>j) overlap=true; } // LOGGER.log(Level.FINE, overlap); @@ -690,24 +696,6 @@ else if(t1.get_FitChi2()==t2.get_FitChi2() && i>j) trkcands.addAll(selectedTracks); } -// public void removeOverlappingTracks(List trkcands) { -// List selectedTracks = new ArrayList(); -// List list = new ArrayList(); -// int size = trkcands.size(); -// for (int i = 0; i < size; i++) { -// list.clear(); -// this.getOverlapLists(trkcands.get(i), trkcands, list); -// trkcands.removeAll(list); -// size -= list.size(); -// Track selectedTrk = this.FindBestTrack(list); -// if (selectedTrk == null) -// continue; -// //if(this.ListContainsTrack(selectedTracks, selectedTrk)==false) -// selectedTracks.add(selectedTrk); -// } -// //trkcands.removeAll(trkcands); -// trkcands.addAll(selectedTracks); -// } /** * @param selectedTracks the list of selected tracks * @param selectedTrk the selected track @@ -787,7 +775,7 @@ public void matchHits(List stateVecAtPlanesList, Track trk, c.get_Segment2().isOnTrack=true; for (FittedHit h1 : c.get_Segment1()) { if (Math.abs(st.getZ() - h1.get_Z()) < 0.1 && c.get_Segment1().get_Id() > -1 - && (h1.get_XWire() - st.getProjector()) < 0.1) { + && Math.abs(h1.get_XWire() - st.getProjector()) < 0.1) { h1.set_AssociatedHBTrackID(trk.get_Id()); h1.updateHitfromSV(st, DcDetector); @@ -796,7 +784,7 @@ public void matchHits(List stateVecAtPlanesList, Track trk, } for (FittedHit h1 : c.get_Segment2()) { if (Math.abs(st.getZ() - h1.get_Z()) < 0.1 && c.get_Segment2().get_Id() > -1 - && (h1.get_XWire() - st.getProjector()) < 0.1) { + && Math.abs(h1.get_XWire() - st.getProjector()) < 0.1) { h1.set_AssociatedHBTrackID(trk.get_Id()); h1.updateHitfromSV(st, DcDetector); @@ -825,7 +813,7 @@ public void setHitDoubletsInfo(Segment seg) { h.setB(o.getB()); h.setTProp(o.getTProp()); h.setTFlight(o.getTFlight()); - h.set_QualityFac(1); + //h.set_QualityFac(1); } } } @@ -903,48 +891,48 @@ private List findStraightTracks(CrossList crossList, DCGeant4Factory DcDe cand.get(0).get_Dir().x() / cand.get(0).get_Dir().z(), cand.get(0).get_Dir().y() / cand.get(0).get_Dir().z()); cand.set_StateVecAtReg1MiddlePlane(VecAtReg1MiddlePlane); - // initialize the fitter with the candidate track - KFitterDoca kFit = new KFitterDoca(cand, DcDetector, false, dcSwim, 0); - kFit.totNumIter = 1; - if(LOGGER.getLevel()==Level.FINE) { - startTime = System.currentTimeMillis(); - } - kFit.runFitter(cand.get(0).get_Sector()); - LOGGER.log(Level.FINE, "Kalman fitter = " + (System.currentTimeMillis() - startTime)); - + LOGGER.log(Level.FINE, "Kalman fitter - 2 = " + (System.currentTimeMillis() - startTime)); + + KFitterStraight kFZRef = new KFitterStraight(true, 1, 1, dcSwim, Constants.getInstance().Z, Libr.JNP); + List measSurfaces = getMeasSurfaces(cand, DcDetector); + StateVecs svs = new StateVecs(); + org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec initSV = svs.new StateVec(0); + getInitState(cand, measSurfaces.get(0).measPoint.z(), 0, initSV, dcSwim, new float[3]); + kFZRef.init(measSurfaces, initSV); + + kFZRef.runFitter(); - if (kFit.finalStateVec == null) { + if (kFZRef.finalStateVec == null) { continue; } - // initialize the state vector corresponding to the last measurement site - StateVec fn = new StateVec(); + List kfStateVecsAlongTrajectory = setKFStateVecsAlongTrajectory(kFZRef); - //LOGGER.log(Level.FINE, " fit failed due to chi2 "+kFit.setFitFailed+" p "+1./Math.abs(kFit.finalStateVec.Q)); - if (!kFit.setFitFailed && kFit.finalStateVec != null) { - // set the state vector at the last measurement site - fn.set(kFit.finalStateVec.x, kFit.finalStateVec.y, kFit.finalStateVec.tx, kFit.finalStateVec.ty); - //set the track parameters if the filter does not fail - fn.setZ(kFit.finalStateVec.z); + StateVec fn = new StateVec(); + if (!kFZRef.setFitFailed && kFZRef.finalStateVec != null) { + fn.set(kFZRef.finalStateVec.x, kFZRef.finalStateVec.y, kFZRef.finalStateVec.tx, kFZRef.finalStateVec.ty); + fn.setZ(kFZRef.finalStateVec.z); cand.setFinalStateVec(fn); - cand.set_P(1. / Math.abs(kFit.finalStateVec.Q)); - cand.set_Q((int) Math.signum(kFit.finalStateVec.Q)); - this.setTrackPars(cand, traj, trjFind, fn, kFit.finalStateVec.z, DcDetector, dcSwim); - if(cand.fit_Successful==true) { - // candidate parameters are set from the state vector - cand.set_FitChi2(kFit.chi2); - cand.set_FitNDF(kFit.NDF); - cand.set_FitConvergenceStatus(kFit.ConvStatus); + + // set the track parameters + cand.set_P(1. / Math.abs(kFZRef.finalStateVec.Q)); + cand.set_Q((int) Math.signum(kFZRef.finalStateVec.Q)); + this.setTrackPars(cand, traj, trjFind, fn, kFZRef.finalStateVec.z, DcDetector, dcSwim); + + if (cand.fit_Successful == true) { + // candidate parameters + cand.set_FitChi2(kFZRef.chi2); + cand.set_FitNDF(kFZRef.NDF); + cand.set_FitConvergenceStatus(kFZRef.ConvStatus); cand.set_Id(cands.size() + 1); - cand.set_CovMat(kFit.finalCovMat.covMat); - cand.setStateVecs(kFit.kfStateVecsAlongTrajectory); - // add candidate to list of tracks + cand.set_CovMat(kFZRef.finalStateVec.CM); + cand.setStateVecs(kfStateVecsAlongTrajectory); + + // add candidate to list of tracks cands.add(cand); } } - //this.matchHits(traj.getStateVecs(), cand, DcDetector); -// cands.add(cand); } } } @@ -953,6 +941,8 @@ private List findStraightTracks(CrossList crossList, DCGeant4Factory DcDe private List findCurvedTracks(CrossList crossList, DCGeant4Factory DcDetector, double TORSCALE, Swim dcSwim, boolean donotapplyCuts) { + + if(LOGGER.getLevel()==Level.FINE) { startTime2 = System.currentTimeMillis(); } @@ -1018,95 +1008,16 @@ private List findCurvedTracks(CrossList crossList, DCGeant4Factory DcDete double theta3s1 = Math.atan(cand.get(2).get_Segment1().get_fittedCluster().get_clusterLineFitSlope()); double theta1s1 = Math.atan(cand.get(0).get_Segment1().get_fittedCluster().get_clusterLineFitSlope()); - if (cand.get(0).get_Segment2().get_Id() == -1) { - theta1s2 = theta1s1; //do not use - } //theta1s2=-999; //do not use - if (cand.get(0).get_Segment1().get_Id() == -1) { - theta1s1 = theta1s2; - } - //theta1s1=-999; - if (cand.get(2).get_Segment2().get_Id() == -1) { - theta3s2 = theta3s1; - } - //theta3s2=-999; - if (cand.get(2).get_Segment1().get_Id() == -1) { - theta3s1 = theta3s2; - } - //theta3s1=-999; - double theta3 = 0; - double theta1 = 0; - - double chisq = Double.POSITIVE_INFINITY; - double chi2; - double iBdl = traj.getIntegralBdl(); - double[] pars; - - if(LOGGER.getLevel()==Level.FINE) { - startTime = System.currentTimeMillis(); - } - pars = getTrackInitFit(cand.get(0).get_Sector(), x1, y1, z1, x2, y2, z2, x3, y3, z3, - ux, uy, uz, thX, thY, - theta1s1, theta3s1, - traj.getIntegralBdl(), TORSCALE, dcSwim); - chi2 = pars[0]; - if (chi2 < chisq) { - chisq = chi2; - theta1 = theta1s1; - theta3 = theta3s1; - iBdl = pars[1]; - } - - LOGGER.log(Level.FINE, "TrackInitFit-1 = " + (System.currentTimeMillis() - startTime)); + double theta1 = 0.5 * (theta1s1 + theta1s2); + double theta3 = 0.5 * (theta3s1 + theta3s2); - if(LOGGER.getLevel()==Level.FINE) { - startTime = System.currentTimeMillis(); - } - pars = getTrackInitFit(cand.get(0).get_Sector(), x1, y1, z1, x2, y2, z2, x3, y3, z3, + double[] pars = getTrackInitFit(cand.get(0).get_Sector(), x1, y1, z1, x2, y2, z2, x3, y3, z3, ux, uy, uz, thX, thY, - theta1s1, theta3s2, + theta1, theta3, traj.getA(), traj.getIntegralBdl(), TORSCALE, dcSwim); - chi2 = pars[0]; - if (chi2 < chisq) { - chisq = chi2; - theta1 = theta1s1; - theta3 = theta3s2; - iBdl = pars[1]; - } - LOGGER.log(Level.FINE, "TrackInitFit-2 = " + (System.currentTimeMillis() - startTime)); - - if(LOGGER.getLevel()==Level.FINE) { - startTime = System.currentTimeMillis(); - } - pars = getTrackInitFit(cand.get(0).get_Sector(), x1, y1, z1, x2, y2, z2, x3, y3, z3, - ux, uy, uz, thX, thY, - theta1s2, theta3s1, - traj.getIntegralBdl(), TORSCALE, dcSwim); - chi2 = pars[0]; - if (chi2 < chisq) { - chisq = chi2; - theta1 = theta1s2; - theta3 = theta3s1; - iBdl = pars[1]; - } - - LOGGER.log(Level.FINE, "TrackInitFit-3 = " + (System.currentTimeMillis() - startTime)); - - if(LOGGER.getLevel()==Level.FINE) { - startTime = System.currentTimeMillis(); - } - pars = getTrackInitFit(cand.get(0).get_Sector(), x1, y1, z1, x2, y2, z2, x3, y3, z3, - ux, uy, uz, thX, thY, - theta1s2, theta3s2, - traj.getIntegralBdl(), TORSCALE, dcSwim); - chi2 = pars[0]; - if (chi2 < chisq) { - theta1 = theta1s2; - theta3 = theta3s2; - iBdl = pars[1]; - } - - LOGGER.log(Level.FINE, "TrackInitFit-4 = " + (System.currentTimeMillis() - startTime)); + double chi2 = pars[0]; + double iBdl = pars[1]; if (chi2 > Constants.SEEDCUT && donotapplyCuts == false) { continue; @@ -1117,13 +1028,11 @@ private List findCurvedTracks(CrossList crossList, DCGeant4Factory DcDete //double iBdl = traj.getIntegralBdl(); if (iBdl != 0) { // momentum estimate if Bdl is non zero and the track has curvature - double p = calcInitTrkP(ux, uy, uz, thX, thY, - theta1, theta3, - iBdl, TORSCALE); + double p = calcInitTrkP(thX, thY, theta1, theta3, iBdl); if(LOGGER.getLevel()==Level.FINE) { startTime = System.currentTimeMillis(); } - int q = this.calcInitTrkQ(theta1, theta3, TORSCALE); + int q = this.calcInitTrkQ(traj.getA(), TORSCALE); LOGGER.log(Level.FINE, "calcInitTrkQ = " + (System.currentTimeMillis() - startTime)); @@ -1143,42 +1052,49 @@ private List findCurvedTracks(CrossList crossList, DCGeant4Factory DcDete cand.get(0).get_Dir().x() / cand.get(0).get_Dir().z(), cand.get(0).get_Dir().y() / cand.get(0).get_Dir().z()); cand.set_StateVecAtReg1MiddlePlane(VecAtReg1MiddlePlane); - // initialize the fitter with the candidate track - KFitterDoca kFit = null; - StateVec fitStateVec = null; - LOGGER.log(Level.FINE, "Kalman fitter - 2 = " + (System.currentTimeMillis() - startTime)); + StateVec fitStateVec = null; // prefer to initialize the seed with region 2 cross due to higher background in region 1 int crossIdxinList = 1; if (cand.get(1).isPseudoCross) { crossIdxinList = 0; } - kFit = new KFitterDoca(cand, DcDetector, false, dcSwim, crossIdxinList); - kFit.totNumIter = 10; - kFit.runFitter(cand.get(0).get_Sector()); - if (kFit.finalStateVec == null) { + + LOGGER.log(Level.FINE, "Kalman fitter - 2 = " + (System.currentTimeMillis() - startTime)); + + KFitter kFZRef = new KFitter(true, 10, 1, dcSwim, Constants.getInstance().Z, Libr.JNP); + List measSurfaces = getMeasSurfaces(cand, DcDetector); + StateVecs svs = new StateVecs(); + org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec initSV = svs.new StateVec(0); + getInitState(cand, measSurfaces.get(0).measPoint.z(), crossIdxinList, initSV, dcSwim, new float[3]); + kFZRef.init(measSurfaces, initSV); + + kFZRef.runFitter(); + List kfStateVecsAlongTrajectory = setKFStateVecsAlongTrajectory(kFZRef); + + if (kFZRef.finalStateVec == null) { continue; } else { - if (kFit.chi2 < Constants.MAXCHI2) { + if (kFZRef.chi2 < Constants.MAXCHI2) { - fitStateVec = new StateVec(kFit.finalStateVec.x, - kFit.finalStateVec.y, kFit.finalStateVec.tx, kFit.finalStateVec.ty); - q = (int) Math.signum(kFit.finalStateVec.Q); - p = 1. / Math.abs(kFit.finalStateVec.Q); - fitStateVec.setZ(kFit.finalStateVec.z); + fitStateVec = new StateVec(kFZRef.finalStateVec.x, + kFZRef.finalStateVec.y, kFZRef.finalStateVec.tx, kFZRef.finalStateVec.ty); + q = (int) Math.signum(kFZRef.finalStateVec.Q); + p = 1. / Math.abs(kFZRef.finalStateVec.Q); + fitStateVec.setZ(kFZRef.finalStateVec.z); //set the track parameters cand.set_P(p); cand.set_Q(q); // candidate parameters - cand.set_FitChi2(kFit.chi2); - cand.set_FitNDF(kFit.NDF); - cand.set_FitConvergenceStatus(kFit.ConvStatus); + cand.set_FitChi2(kFZRef.chi2); + cand.set_FitNDF(kFZRef.NDF); + cand.set_FitConvergenceStatus(kFZRef.ConvStatus); - cand.set_CovMat(kFit.finalCovMat.covMat); - cand.setStateVecs(kFit.kfStateVecsAlongTrajectory); + cand.set_CovMat(kFZRef.finalStateVec.CM); + cand.setStateVecs(kfStateVecsAlongTrajectory); cand.setFinalStateVec(fitStateVec); cand.set_Id(cands.size() + 1); @@ -1188,15 +1104,207 @@ private List findCurvedTracks(CrossList crossList, DCGeant4Factory DcDete DcDetector, dcSwim); // add candidate to list of tracks if (cand.fit_Successful = true) { - cands.add(cand); + cands.add(cand); } } } + + } } } } return cands; } + + public List setKFStateVecsAlongTrajectory(KFitter kFZRef) { + List kfStateVecsAlongTrajectory = new ArrayList<>(); + + for(int i = 0; i < kFZRef.kfStateVecsAlongTrajectory.size(); i++) { + org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec svc = kFZRef.kfStateVecsAlongTrajectory.get(i); + org.jlab.rec.dc.trajectory.StateVec sv = new org.jlab.rec.dc.trajectory.StateVec(svc.x, svc.y, svc.tx, svc.ty); + sv.setZ(svc.z); + sv.setB(svc.B); + sv.setPathLength(svc.getPathLength()); + sv.setProjector(svc.getProjector()); + sv.setProjectorDoca(svc.getProjectorDoca()); + kfStateVecsAlongTrajectory.add(sv); + } + + return kfStateVecsAlongTrajectory; + } + + public List setKFStateVecsAlongTrajectory(KFitterStraight kFZRef) { + List kfStateVecsAlongTrajectory = new ArrayList<>(); + + for(int i = 0; i < kFZRef.kfStateVecsAlongTrajectory.size(); i++) { + org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec svc = kFZRef.kfStateVecsAlongTrajectory.get(i); + org.jlab.rec.dc.trajectory.StateVec sv = new org.jlab.rec.dc.trajectory.StateVec(svc.x, svc.y, svc.tx, svc.ty); + sv.setZ(svc.z); + sv.setB(svc.B); + sv.setPathLength(svc.getPathLength()); + sv.setProjector(svc.getProjector()); + sv.setProjectorDoca(svc.getProjectorDoca()); + kfStateVecsAlongTrajectory.add(sv); + } + + return kfStateVecsAlongTrajectory; + } + + public void getInitState(Track trkcand, double z0, int c, org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec initStateVec, Swim dcSwim, float[] bf) { + + Point3D trkCrs = trkcand.get(c).get_Point(); + Point3D trkCrsD = trkcand.get(c).get_Dir(); + //org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec initSV = svs.new StateVec(0); + initStateVec.x = trkCrs.x(); + initStateVec.y = trkCrs.y(); + initStateVec.z = trkCrs.z(); + initStateVec.tx = trkCrsD.x()/trkCrsD.z(); + initStateVec.ty = trkCrsD.y()/trkCrsD.z(); + initStateVec.Q = trkcand.get_Q() / trkcand.get_P(); + + RungeKuttaDoca rk = new RungeKuttaDoca(); + rk.SwimToZ(trkcand.get(0).get_Sector(), initStateVec, dcSwim, z0, bf); + + double ex = Constants.HBINITIALSTATEUNCSCALE * Constants.HBINITIALSTATEXUNC; + double ey = Constants.HBINITIALSTATEUNCSCALE * Constants.HBINITIALSTATEYUNC; + double etx = Constants.HBINITIALSTATEUNCSCALE * Constants.HBINITIALSTATETXUNC; + double ety = Constants.HBINITIALSTATEUNCSCALE * Constants.HBINITIALSTATETYUNC; + double eQ = Constants.HBINITIALSTATEUNCSCALE * Constants.HBINITIALSTATEQUNC; + + Matrix initCMatrix = new Matrix(); + initCMatrix.set(ex * ex, 0, 0, 0, 0, + 0, ey * ey, 0, 0, 0, + 0, 0, etx * etx, 0, 0, + 0, 0, 0, ety * ety, 0, + 0, 0, 0, 0, eQ * eQ + ); + initStateVec.CM = initCMatrix; + } + + public List getMeasSurfaces(Track trkcand, DCGeant4Factory DcDetector) { + + List hOTS = new ArrayList<>(); // the list of hits on track + FittedHit hitOnTrk; + // loops over the regions (1 to 3) and the superlayers in a region (1 to 2) and obtains the hits on track + for (int c = 0; c < 3; c++) { + for (int s = 0; s < 2; s++) { + for (int h = 0; h < trkcand.get(c).get(s).size(); h++) { + // if (trkcand.get(c).get(s).get(h).get_Id() == -1 /*|| trkcand.get(c).get(s).get(h).get_Id() == 0*/) { //PASS1 + if (trkcand.get(c).get(s).get(h).get_Id() == -1 || trkcand.get(c).get(s).get(h).get_Id() == 0) { + continue; + } + trkcand.get(c).get(s).get(h).calc_CellSize(DcDetector); + hitOnTrk = trkcand.get(c).get(s).get(h); + int slayr = trkcand.get(c).get(s).get(h).get_Superlayer(); + + double sl1 = trkcand.get(c).get(s).get_fittedCluster().get_clusterLineFitSlope(); + double it1 = trkcand.get(c).get(s).get_fittedCluster().get_clusterLineFitIntercept(); + + double Z = hitOnTrk.get_Z(); + double X = sl1 * Z + it1; + + HitOnTrack hot = new HitOnTrack(slayr, X, Z, + trkcand.get(c).get(s).get(h).get_WireMaxSag(), + trkcand.get(c).get(s).get(h).get_WireLine() + ); + double err_sl1 = trkcand.get(c).get(s).get_fittedCluster().get_clusterLineFitSlopeErr(); + + double err_it1 = trkcand.get(c).get(s).get_fittedCluster().get_clusterLineFitInterceptErr(); + double err_cov1 = trkcand.get(c).get(s).get_fittedCluster().get_clusterLineFitSlIntCov(); + + hot._Unc[0] = Math.sqrt(err_sl1 * err_sl1 * Z * Z + err_it1 * err_it1); + hot._hitError = err_sl1 * err_sl1 * Z * Z + err_it1 * err_it1 + 2 * Z * err_cov1 + trkcand.get(c).get(s).get(h).get_DocaErr()*trkcand.get(c).get(s).get(h).get_DocaErr(); + //if(trkcand.get(c).get(s).get(h).get_Time()/CCDBConstants.getTMAXSUPERLAYER()[trkcand.get(c).get(s).get(h).get_Sector()-1][trkcand.get(c).get(s).get(h).get_Superlayer()-1]<1.1) + // hot._hitError = 100000; //exclude outoftimers from fit + hot.region = trkcand.get(c).get(s).get(h).get_Region(); + hot.sector = trkcand.get(c).get(s).get(h).get_Sector(); + hot.superlayer = trkcand.get(c).get(s).get(h).get_Superlayer(); + hot.layer = trkcand.get(c).get(s).get(h).get_Layer(); + + hot._doca[0] = trkcand.get(c).get(s).get(h).get_ClusFitDoca(); + + double LR = Math.signum(trkcand.get(c).get(s).get(h).get_XWire()-trkcand.get(c).get(s).get(h).get_X()); + + hot._doca[0]*=-LR; + hot._hitError = trkcand.get(c).get(s).get(h).get_DocaErr()*trkcand.get(c).get(s).get(h).get_DocaErr(); + //LOGGER.log(Level.FINE, " Z "+Z+" ferr "+(float)(hot._Unc /(hot._hitError/4.))); + hot._Unc[0] = hot._hitError; + hOTS.add(hot); + + } + } + } + Collections.sort(hOTS); // sort the collection in order of increasing Z value (i.e. going downstream from the target) + // identify double hits and take the average position + for (int i = 0; i < hOTS.size(); i++) { + if (i > 0) { + if (Math.abs(hOTS.get(i - 1)._Z - hOTS.get(i)._Z)<0.01) { + hOTS.get(i - 1)._doca[1] = hOTS.get(i)._doca[0]; + hOTS.get(i - 1)._Unc[1] = hOTS.get(i)._Unc[0]; + hOTS.get(i - 1)._wireLine[1] = hOTS.get(i)._wireLine[0]; + hOTS.remove(i); + hOTS.get(i - 1).nMeas = 2; + } + } + } + + List surfaces = new ArrayList<>(hOTS.size()); + for (int i = 0; i < hOTS.size(); i++) { + Surface surf = new Surface(hOTS.get(i).region, hOTS.get(i)._doca, hOTS.get(i)._Unc, hOTS.get(i)._hitError, hOTS.get(i)._wireLine); + surf.setSector(hOTS.get(i).sector); + surf.setSuperLayer(hOTS.get(i).superlayer); + surf.setLayer(hOTS.get(i).layer); + surf.setNMeas(hOTS.get(i).nMeas); + surfaces.add(i, surf); + } + + return surfaces; + } + + public class HitOnTrack implements Comparable { + + public double _hitError; + public double _X; + public double _Z; + public double[] _Unc = new double[2]; + public double _tilt; + public double[] _doca = new double[2]; + public double _wireMaxSag; + public Line3D[] _wireLine = new Line3D[2]; + public int region; + public int superlayer; + public int sector; + public int layer; + public int nMeas = 1; + + + public HitOnTrack(int superlayer, double X, double Z, double wiremaxsag, Line3D wireLine) { + _X = X; + _Z = Z; + _wireMaxSag = wiremaxsag; + _wireLine[0] = wireLine; + _doca[0] = -99; + _doca[1] = -99; + _Unc[0] = 1; + _Unc[1] = 1; + + //use stereo angle in fit based on wire direction + _tilt = 90-Math.toDegrees(wireLine.direction().asUnit().angle(new Vector3D(1,0,0))); + } + + @Override + public int compareTo(HitOnTrack o) { + if (this._Z == o._Z) { + return 0; + } + if (this._Z > o._Z) { + return 1; + } else { + return -1; + } + } + } + } diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/MeasVecsDoca.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/MeasVecsDoca.java index 1e36fdaa3..6dba453a0 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/MeasVecsDoca.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/MeasVecsDoca.java @@ -48,7 +48,7 @@ public double h(double[] stateV, double Z, Line3D wireLine) { //LOGGER.log(Level.FINE, Math.signum(-WL.direction().x())+ // wireLine.origin().toString()+WL.toString()+" "+stateV[0]+" ,"+stateV[1]); - return WL.length()*Math.signum(-WL.direction().x()); + return WL.length()*Math.signum(WL.direction().x()); } public void setMeasVecs(Track trkcand, DCGeant4Factory DcDetector) { diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/StateVec.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/StateVec.java index 1bc2f7fa1..6d8c5b296 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/StateVec.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/StateVec.java @@ -33,7 +33,27 @@ public double getPathLength() { public void setPathLength(double _PathLength) { this._PathLength = _PathLength; } + + private double _DAFWeight = -999; + + public double getDAFWeight() { + return _DAFWeight; + } + + public void setDAFWeight(double weight) { + this._DAFWeight = weight; + } + + private int _isDoubleHit = -1; + + public int getIsDoubleHit() { + return _isDoubleHit; + } + public void setIsDoubleHit(int _isDoubleHit) { + this._isDoubleHit = _isDoubleHit; + } + /** * Sets the. * diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrackVec.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrackVec.java index a1b3473d3..ac991d140 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrackVec.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrackVec.java @@ -228,7 +228,7 @@ public void TransformToTiltSectorFrame() { * @param t <0 going to lab, >0 going to tilted system * @return */ - public double[] tilt(double X, double Z, int t) { + public double[] tilt(double X, double Z, int t) { double rz = (double)t *X * Constants.SIN25 + Z * Constants.COS25; double rx = X * Constants.COS25 -(double)t* Z * Constants.SIN25; @@ -244,15 +244,16 @@ public double[] tilt(double X, double Z, int t) { */ public double[] rotateToSec(int sector, double x, double y, int t) { if(sector>0 && sector<7) { - if (t == 1) { + if(t == 1){ double rx = x * Constants.COSSECTOR60[sector - 1] - y * Constants.SINSECTOR60[sector - 1]; double ry = x * Constants.SINSECTOR60[sector - 1] + y * Constants.COSSECTOR60[sector - 1]; - return new double[]{rx, ry}; - } else { + return new double[] {rx, ry}; + } + else{ double rx = x * Constants.COSSECTORNEG60[sector - 1] - y * Constants.SINSECTORNEG60[sector - 1]; double ry = x * Constants.SINSECTORNEG60[sector - 1] + y * Constants.COSSECTORNEG60[sector - 1]; - return new double[]{rx, ry}; - } + return new double[] {rx, ry}; + } } else { return null; } diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Trajectory.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Trajectory.java index a9f0fc80b..ddb69ebf9 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Trajectory.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Trajectory.java @@ -31,9 +31,20 @@ public Trajectory() { private double pathLength; private List stateVecs; private List trajStateVecs = new ArrayList<>(); - + private final static double TOLERANCE = 0.1; // trajectory toleerance (cm) - + + private double a; // Parameter a for fitting function in xz plane: f(x) = a*z^2 + b*z + c + + public void setA(double a){ + this.a = a; + } + + // Return parameter a for fitting function f(x) = a*z^2 + b*z + c in xz plane + public double getA(){ + return a; + } + public List getStateVecs() { return stateVecs; } @@ -197,7 +208,7 @@ public void calcTrajectory(int trackId, Swim dcSwim, Point3D v, Vector3D p, int double[] htccPars = dcSwim.SwimToSphere(Constants.HTCCRADIUS); if(htccPars==null) return; this.addTrajectoryPoint(htccPars[0], htccPars[1], htccPars[2], htccPars[3], htccPars[4], htccPars[5], htccPars[6], htccPars[7], DetectorType.HTCC, 1); - + //Swim to planes for(int j = 0; j candCrossList, DCGeant4Factory DcDe traj.addAll(candCrossList); traj.setSector(candCrossList.get(0).get_Sector()); fitTrajectory(traj); - if (this.TrajChisqProbFitXZ getStateVecsAlongTrajectory(double x0, double y0, double z0, double tanTheta_x, double tanTheta_y, double p, int q, DCGeant4Factory DcDetector) { -// //initialize at target -// dcSwim.SetSwimParameters(x0, y0, z0, tanTheta_x, tanTheta_y, p, q); -// //position array -// double[] X = new double[36]; -// double[] Y = new double[36]; -// double[] Z = new double[36]; -// double[] thX = new double[36]; -// double[] thY = new double[36]; -// -// //Z[0] = GeometryLoader.dcDetector.getSector(0).getSuperlayer(0).getLayer(0).getPlane().point().z(); -// Z[0] = DcDetector.getLayerMidpoint(0, 0).z; -// double[] swamPars = dcSwim.SwimToPlane(Z[0]) ; -// X[0] = swamPars[0]; -// Y[0] = swamPars[1]; -// thX[0] = swamPars[3]/swamPars[5]; -// thY[0] = swamPars[4]/swamPars[5]; -// double pathLen = swamPars[6]; -// int planeIdx = 0; -// int lastSupLyrIdx = 0; -// int lastLyrIdx = 0; -// List stateVecAtPlanesList = new ArrayList(36); -// -// stateVecAtPlanesList.add(new StateVec(X[0],Y[0],thX[0], thY[0])); -// stateVecAtPlanesList.get(stateVecAtPlanesList.size()-1).setPathLength(pathLen); -// for(int superlayerIdx =0; superlayerIdx<6; superlayerIdx++) { -// for(int layerIdx =0; layerIdx<6; layerIdx++) { -// if(superlayerIdx ==0 && layerIdx==0) { -// continue; -// } else { -// // move to the next plane and determine the swam track parameters at that plane -// planeIdx++; -// dcSwim.SetSwimParameters(X[planeIdx-1], Y[planeIdx-1], Z[planeIdx-1], thX[planeIdx-1], thY[planeIdx-1], p, q); -// //Z[layerIdx] = GeometryLoader.dcDetector.getSector(0).getSuperlayer(superlayerIdx).getLayer(layerIdx).getPlane().point().z(); -// Z[planeIdx] = DcDetector.getLayerMidpoint(superlayerIdx, layerIdx).z; -// -// swamPars = dcSwim.SwimToPlane(Z[planeIdx]) ; -// X[planeIdx] = swamPars[0]; -// Y[planeIdx] = swamPars[1]; -// thX[planeIdx] = swamPars[3]/swamPars[5]; -// thY[planeIdx] = swamPars[4]/swamPars[5]; -// pathLen+=swamPars[6]; -// StateVec stVec = new StateVec(X[planeIdx],Y[planeIdx],thX[planeIdx], thY[planeIdx]); -// stVec.set_planeIdx(planeIdx); -// stVec.setPathLength(pathLen); -// stateVecAtPlanesList.add(stVec); -// } -// lastSupLyrIdx = superlayerIdx; -// lastLyrIdx = layerIdx; -// } -// } -// // return the list of state vectors at the list of measurement planes -// return stateVecAtPlanesList; -// } -// + /** * * @param DcDetector @@ -205,109 +143,100 @@ public List getStateVecsAlongTrajectory(DCGeant4Factory DcDetector) { * and constraining the quadratic parameters of the function describing the position values of the state vecs. * @param candCrossList list of crosses used in the fit */ - public void fitTrajectory(List candCrossList) { - tanTheta_x_fitCoeff = new double[2]; - tanTheta_y_fitCoeff = new double[2]; + public void fitTrajectory(List candCrossList) { x_fitCoeff = new double[3]; y_fitCoeff = new double[3]; - - + double[] theta_x = new double[3]; double[] theta_x_err = new double[3]; - double[] theta_y = new double[3]; - double[] theta_y_err = new double[3]; double[] x = new double[3]; - double[] x_err = new double[3]; double[] y = new double[3]; - double[] y_err = new double[3]; double[] z = new double[3]; - for (int i =0; i<3; i++) { + double[] x_err = new double[3]; + double[] y_err = new double[3]; + + for (int i = 0; i < 3; i++) { // make sure that the track direction makes sense - if(candCrossList.get(i).get_Dir().z()==0) { + if (candCrossList.get(i).get_Dir().z() == 0) { return; } x[i] = candCrossList.get(i).get_Point().x(); - x_err[i] = candCrossList.get(i).get_PointErr().x(); y[i] = candCrossList.get(i).get_Point().y(); - y_err[i] = candCrossList.get(i).get_PointErr().y(); z[i] = candCrossList.get(i).get_Point().z(); - theta_x[i] = candCrossList.get(i).get_Dir().x()/candCrossList.get(i).get_Dir().z(); - theta_x_err[i] = calcTanErr(candCrossList.get(i).get_Dir().x(),candCrossList.get(i).get_Dir().z(),candCrossList.get(i).get_DirErr().x(),candCrossList.get(i).get_DirErr().z()); - theta_y[i] = candCrossList.get(i).get_Dir().y()/candCrossList.get(i).get_Dir().z(); - theta_y_err[i] = calcTanErr(candCrossList.get(i).get_Dir().y(),candCrossList.get(i).get_Dir().z(),candCrossList.get(i).get_DirErr().y(),candCrossList.get(i).get_DirErr().z()); + x_err[i] = candCrossList.get(i).get_PointErr().x(); + y_err[i] = candCrossList.get(i).get_PointErr().x(); + + theta_x[i] = candCrossList.get(i).get_Dir().x() / candCrossList.get(i).get_Dir().z(); + theta_x_err[i] = calcTanErr(candCrossList.get(i).get_Dir().x(), candCrossList.get(i).get_Dir().z(), candCrossList.get(i).get_DirErr().x(), candCrossList.get(i).get_DirErr().z()); } lineFit = new LineFitter(); boolean linefitstatusOK = lineFit.fitStatus(z, theta_x, new double[3], theta_x_err, 3); - - // tan_thetax = alpha*z + beta; - // x = a*z^2 +b*z +c - if (linefitstatusOK) { - double alpha = lineFit.getFit().slope(); - double beta = lineFit.getFit().intercept(); - - - double a = alpha/2; - double b = beta; - - double sum_inv_xerr = 0; - double sum_X_ov_errX = 0; - for (int i =0; i<3; i++) { - x[i]-=a*z[i]*z[i]+b*z[i]; - sum_inv_xerr += 1./x_err[i]; - sum_X_ov_errX += x[i]/x_err[i]; - } - if(sum_inv_xerr==0) { - return; - } - double c = sum_X_ov_errX/sum_inv_xerr; - - tanTheta_x_fitCoeff[0] = alpha; - tanTheta_x_fitCoeff[1] = beta; - - x_fitCoeff[0] = a; - x_fitCoeff[1] = b; - x_fitCoeff[2] = c; - } TrajChisqProbFitXZ = lineFit.getFit().getProb(); - lineFit = new LineFitter(); - linefitstatusOK = lineFit.fitStatus(z, theta_y, new double[3], theta_y_err, 3); - - // tan_thetay = alpha*z + beta; - // y = a*z^2 +b*z +c - if (linefitstatusOK) { - double alpha = lineFit.getFit().slope(); - double beta = lineFit.getFit().intercept(); - - double a = alpha/2; - double b = beta; - - double sum_inv_yerr = 0; - double sum_Y_ov_errY = 0; - for (int i =0; i<3; i++) { - y[i]-=a*z[i]*z[i]+b*z[i]; - sum_inv_yerr += 1./y_err[i]; - sum_Y_ov_errY += y[i]/y_err[i]; - } - if(sum_inv_yerr==0) { - return; + x_fitCoeff = quadraticLRFit(z, x, x_err); + y_fitCoeff = quadraticLRFit(z, y, y_err); + } + + private double[] quadraticLRFit(double[] x, double[] y, double[] err) { + double[] ret = {0., 0., 0.}; + + Matrix A = new Matrix(3, 3); + Matrix V = new Matrix(3, 1); + double sum1 = 0.0; + double sum2 = 0.0; + double sum3 = 0.0; + double sum4 = 0.0; + double sum5 = 0.0; + double sum6 = 0.0; + double sum7 = 0.0; + double sum8 = 0.0; + for (int i = 0; i < x.length; ++i) { + double y1 = y[i]; + double x1 = x[i]; + double x2 = x1 * x1; + double x3 = x2 * x1; + double x4 = x2 * x2; + double e2 = err[i] * err[i]; + sum1 += x4 / e2; + sum2 += x3 / e2; + sum3 += x2 / e2; + sum4 += x1 / e2; + sum5 += 1.0 / e2; + sum6 += y1 * x2 / e2; + sum7 += y1 * x1 / e2; + sum8 += y1 / e2; + } + A.set(0, 0, sum1); + A.set(0, 1, sum2); + A.set(0, 2, sum3); + A.set(1, 0, sum2); + A.set(1, 1, sum3); + A.set(1, 2, sum4); + A.set(2, 0, sum3); + A.set(2, 1, sum4); + A.set(2, 2, sum5); + V.set(0, 0, sum6); + V.set(1, 0, sum7); + V.set(2, 0, sum8); + Matrix Ainv = A.inverse(); + Matrix X; + try { + X = Ainv.times(V); + for (int i = 0; i < 3; ++i) { + ret[i] = X.get(i, 0); } - double c = sum_Y_ov_errY/sum_inv_yerr; - tanTheta_y_fitCoeff[0] = alpha; - tanTheta_y_fitCoeff[1] = beta; - - y_fitCoeff[0] = a; - y_fitCoeff[1] = b; - y_fitCoeff[2] = c; + } catch (ArithmeticException e) { + // TODO Auto-generated catch block } - TrajChisqProbFitYZ = lineFit.getFit().getProb(); + return (ret); } + /** * * @param num diff --git a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java index c7dde27cb..80064a036 100644 --- a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java +++ b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java @@ -10,6 +10,8 @@ import org.jlab.io.base.DataEvent; import org.jlab.rec.dc.Constants; import org.jlab.rec.dc.banks.Banks; +import org.jlab.clas.tracking.kalmanfilter.zReference.KFitter; +import org.jlab.clas.tracking.kalmanfilter.zReference.DAFilter; public class DCEngine extends ReconstructionEngine { @@ -31,6 +33,9 @@ public class DCEngine extends ReconstructionEngine { private String inBankPrefix = null; private String outBankPrefix = null; private double[][] shifts = new double[Constants.NREG][6]; + protected boolean useDAF = true; + private String dafChi2Cut = null; + private String dafAnnealingFactorsTB = null; public static final Logger LOGGER = Logger.getLogger(ReconstructionEngine.class.getName()); @@ -99,6 +104,20 @@ else if(this.getEngineConfigString("dcT2DFunc").equalsIgnoreCase("Polynomial")) outBankPrefix = this.getEngineConfigString("outputBankPrefix"); } + //Set if use DAF + if(this.getEngineConfigString("useDAF")!=null) + useDAF=Boolean.valueOf(this.getEngineConfigString("useDAF")); + + if(this.getEngineConfigString("dafChi2Cut")!=null) { + dafChi2Cut=this.getEngineConfigString("dafChi2Cut"); + DAFilter.setDafChi2Cut(Double.valueOf(dafChi2Cut)); + } + + if(this.getEngineConfigString("dafAnnealingFactorsTB")!=null){ + dafAnnealingFactorsTB=this.getEngineConfigString("dafAnnealingFactorsTB"); + KFitter.setDafAnnealingFactorsTB(dafAnnealingFactorsTB); + } + // Set geometry shifts for alignment code if(this.getEngineConfigString("alignmentShifts")!=null) { String[] alignmentShift = this.getEngineConfigString("alignmentShifts").split(","); diff --git a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCTBEngine.java b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCTBEngine.java index 98b00e3e6..2bd9d1e9f 100644 --- a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCTBEngine.java +++ b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCTBEngine.java @@ -1,16 +1,21 @@ package org.jlab.service.dc; import java.util.ArrayList; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Level; import org.jlab.clas.swimtools.Swim; +import org.jlab.clas.swimtools.Swimmer; +import org.jlab.detector.geant4.v2.DCGeant4Factory; +import org.jlab.geom.prim.Line3D; import org.jlab.geom.prim.Point3D; import org.jlab.geom.prim.Vector3D; import org.jlab.io.base.DataBank; import org.jlab.io.base.DataEvent; +import org.jlab.jnp.matrix.Matrix; import org.jlab.rec.dc.Constants; import org.jlab.rec.dc.banks.HitReader; import org.jlab.rec.dc.banks.RecoBankWriter; @@ -27,12 +32,18 @@ import org.jlab.rec.dc.timetodistance.TimeToDistanceEstimator; import org.jlab.rec.dc.track.Track; import org.jlab.rec.dc.track.TrackCandListFinder; -import org.jlab.rec.dc.track.fit.KFitterDoca; import org.jlab.rec.dc.trajectory.StateVec; import org.jlab.rec.dc.trajectory.Trajectory; import org.jlab.rec.dc.trajectory.TrajectoryFinder; import org.jlab.utils.groups.IndexedTable; +import org.jlab.clas.tracking.kalmanfilter.Surface; +import org.jlab.clas.tracking.kalmanfilter.zReference.KFitter; +import org.jlab.clas.tracking.kalmanfilter.zReference.KFitterStraight; +import org.jlab.clas.tracking.kalmanfilter.zReference.StateVecs; +import org.jlab.clas.tracking.utilities.MatrixOps.Libr; +import org.jlab.clas.tracking.utilities.RungeKuttaDoca; + public class DCTBEngine extends DCEngine { private TimeToDistanceEstimator tde = null; @@ -60,7 +71,6 @@ public void setDropBanks() { @Override public boolean processDataEvent(DataEvent event) { - int run = this.getRun(event); if(run==0) return true; @@ -165,9 +175,6 @@ public boolean processDataEvent(DataEvent event) { DataBank trkbank = event.getBank(this.getBanks().getInputTracksBank()); //DataBank trkcovbank = event.getBank("TimeBasedTrkg::TBCovMat"); int trkrows = trkbank.rows(); - //if(trkbank.rows()!=trkcovbank.rows()) { - // return true; // HB tracks not saved correctly - //} Track[] TrackArray = new Track[trkrows]; for (int i = 0; i < trkrows; i++) { Track HBtrk = new Track(); @@ -182,15 +189,6 @@ public boolean processDataEvent(DataEvent event) { trkbank.getFloat("tx", i), trkbank.getFloat("ty", i)); HBFinalSV.setZ(trkbank.getFloat("z", i)); HBtrk.setFinalStateVec(HBFinalSV); -// Matrix initCMatrix = new Matrix(); -// initCMatrix.set(new double[][]{ -// {trkcovbank.getFloat("C11", i), trkcovbank.getFloat("C12", i), trkcovbank.getFloat("C13", i), trkcovbank.getFloat("C14", i), trkcovbank.getFloat("C15", i)}, -// {trkcovbank.getFloat("C21", i), trkcovbank.getFloat("C22", i), trkcovbank.getFloat("C23", i), trkcovbank.getFloat("C24", i), trkcovbank.getFloat("C25", i)}, -// {trkcovbank.getFloat("C31", i), trkcovbank.getFloat("C32", i), trkcovbank.getFloat("C33", i), trkcovbank.getFloat("C34", i), trkcovbank.getFloat("C35", i)}, -// {trkcovbank.getFloat("C41", i), trkcovbank.getFloat("C42", i), trkcovbank.getFloat("C43", i), trkcovbank.getFloat("C44", i), trkcovbank.getFloat("C45", i)}, -// {trkcovbank.getFloat("C51", i), trkcovbank.getFloat("C52", i), trkcovbank.getFloat("C53", i), trkcovbank.getFloat("C54", i), trkcovbank.getFloat("C55", i)} -// }); -// HBtrk.set_CovMat(initCMatrix); TrackArray[HBtrk.get_Id()-1] = HBtrk; // TrackArray[HBtrk.get_Id()-1].set_Status(0); } @@ -218,6 +216,7 @@ public boolean processDataEvent(DataEvent event) { } TrackCandListFinder trkcandFinder = new TrackCandListFinder("TimeBased"); TrajectoryFinder trjFind = new TrajectoryFinder(); + for (Track TrackArray1 : TrackArray) { if (TrackArray1 == null || TrackArray1.get_ListOfHBSegments() == null || TrackArray1.get_ListOfHBSegments().size() < 5) { continue; @@ -228,44 +227,96 @@ public boolean processDataEvent(DataEvent event) { continue; } crosses.addAll(TrackArray1); - //if(TrackArray[i].get_FitChi2()>200) { - // resetTrackParams(TrackArray[i], new DCSwimmer()); - //} - KFitterDoca kFit = new KFitterDoca(TrackArray1, Constants.getInstance().dcDetector, true, dcSwim, 0); - StateVec fn = new StateVec(); - kFit.runFitter(TrackArray1.get(0).get_Sector()); - if (kFit.setFitFailed==false && kFit.finalStateVec!=null) { - // set the state vector at the last measurement site - fn.set(kFit.finalStateVec.x, kFit.finalStateVec.y, kFit.finalStateVec.tx, kFit.finalStateVec.ty); - //set the track parameters if the filter does not fail - TrackArray1.set_P(1./Math.abs(kFit.finalStateVec.Q)); - TrackArray1.set_Q((int)Math.signum(kFit.finalStateVec.Q)); - trkcandFinder.setTrackPars(TrackArray1, new Trajectory(), trjFind, fn, kFit.finalStateVec.z, Constants.getInstance().dcDetector, dcSwim, beamXoffset, beamYoffset); - // candidate parameters are set from the state vector - if (TrackArray1.fit_Successful == false) { - continue; - } - TrackArray1.set_FitChi2(kFit.chi2); - TrackArray1.set_FitNDF(kFit.NDF); - TrackArray1.setStateVecs(kFit.kfStateVecsAlongTrajectory); - TrackArray1.set_FitConvergenceStatus(kFit.ConvStatus); - //TrackArray[i].set_Id(TrackArray[i].size()+1); - //TrackArray[i].set_CovMat(kFit.finalCovMat.covMat); - if (TrackArray1.get_Vtx0().toVector3D().mag() > 500) { - continue; - } - // get CovMat at vertex - Point3D VTCS = crosses.get(0).getCoordsInSector(TrackArray1.get_Vtx0().x(), TrackArray1.get_Vtx0().y(), TrackArray1.get_Vtx0().z()); - TrackArray1.set_CovMat(kFit.propagateToVtx(crosses.get(0).get_Sector(), VTCS.z())); - if (TrackArray1.isGood()) { - trkcands.add(TrackArray1); - } + if(Math.abs(Swimmer.getTorScale()) < 0.001){ + KFitterStraight kFZRef = new KFitterStraight(true, 30, 1, dcSwim, Constants.getInstance().Z, Libr.JNP); + List measSurfaces = getMeasSurfaces(TrackArray1, Constants.getInstance().dcDetector); + StateVecs svs = new StateVecs(); + org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec initSV = svs.new StateVec(0); + getInitState(TrackArray1, measSurfaces.get(0).measPoint.z(), initSV, kFZRef, dcSwim, new float[3]); + kFZRef.initFromHB(measSurfaces, initSV, TrackArray1.get(0).get(0).get(0).get_Beta()); + kFZRef.runFitter(); + List kfStateVecsAlongTrajectory = setKFStateVecsAlongTrajectory(kFZRef); + + StateVec fn = new StateVec(); + if (kFZRef.setFitFailed==false && kFZRef.finalStateVec!=null) { + // set the state vector at the last measurement site + fn.set(kFZRef.finalStateVec.x, kFZRef.finalStateVec.y, kFZRef.finalStateVec.tx, kFZRef.finalStateVec.ty); + //set the track parameters if the filter does not fail + TrackArray1.set_P(1./Math.abs(kFZRef.finalStateVec.Q)); + TrackArray1.set_Q((int)Math.signum(kFZRef.finalStateVec.Q)); + + trkcandFinder.setTrackPars(TrackArray1, new Trajectory(), trjFind, fn, kFZRef.finalStateVec.z, Constants.getInstance().dcDetector, dcSwim, beamXoffset, beamYoffset); + // candidate parameters are set from the state vector + if (TrackArray1.fit_Successful == false) { + continue; + } + + TrackArray1.set_FitChi2(kFZRef.chi2); + TrackArray1.set_FitNDF(kFZRef.NDF); + TrackArray1.setStateVecs(kfStateVecsAlongTrajectory); + TrackArray1.set_FitConvergenceStatus(kFZRef.ConvStatus); + if (TrackArray1.get_Vtx0().toVector3D().mag() > 500) { + continue; + } + + // get CovMat at vertex + Point3D VTCS = crosses.get(0).getCoordsInSector(TrackArray1.get_Vtx0().x(), TrackArray1.get_Vtx0().y(), TrackArray1.get_Vtx0().z()); + TrackArray1.set_CovMat(kFZRef.propagateToVtx(crosses.get(0).get_Sector(), VTCS.z())); + + if (TrackArray1.isGood()) { + trkcands.add(TrackArray1); + } + } } - } - + else{ + KFitter kFZRef = new KFitter(true, 30, 1, dcSwim, Constants.getInstance().Z, Libr.JNP); + List measSurfaces = getMeasSurfaces(TrackArray1, Constants.getInstance().dcDetector); + StateVecs svs = new StateVecs(); + org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec initSV = svs.new StateVec(0); + getInitState(TrackArray1, measSurfaces.get(0).measPoint.z(), initSV, kFZRef, dcSwim, new float[3]); + kFZRef.initFromHB(measSurfaces, initSV, TrackArray1.get(0).get(0).get(0).get_Beta(), useDAF); + kFZRef.runFitter(useDAF); + + List kfStateVecsAlongTrajectory = setKFStateVecsAlongTrajectory(kFZRef); + + StateVec fn = new StateVec(); + if (kFZRef.setFitFailed==false && kFZRef.finalStateVec!=null) { + // set the state vector at the last measurement site + fn.set(kFZRef.finalStateVec.x, kFZRef.finalStateVec.y, kFZRef.finalStateVec.tx, kFZRef.finalStateVec.ty); + //set the track parameters if the filter does not fail + TrackArray1.set_P(1./Math.abs(kFZRef.finalStateVec.Q)); + TrackArray1.set_Q((int)Math.signum(kFZRef.finalStateVec.Q)); + + trkcandFinder.setTrackPars(TrackArray1, new Trajectory(), trjFind, fn, kFZRef.finalStateVec.z, Constants.getInstance().dcDetector, dcSwim, beamXoffset, beamYoffset); + // candidate parameters are set from the state vector + if (TrackArray1.fit_Successful == false) { + continue; + } + + TrackArray1.set_FitChi2(kFZRef.chi2); + TrackArray1.set_FitNDF(kFZRef.NDF); + TrackArray1.set_NDFDAF(kFZRef.getNDFDAF()); + TrackArray1.setStateVecs(kfStateVecsAlongTrajectory); + TrackArray1.set_FitConvergenceStatus(kFZRef.ConvStatus); + if (TrackArray1.get_Vtx0().toVector3D().mag() > 500) { + continue; + } + + // get CovMat at vertex + Point3D VTCS = crosses.get(0).getCoordsInSector(TrackArray1.get_Vtx0().x(), TrackArray1.get_Vtx0().y(), TrackArray1.get_Vtx0().z()); + TrackArray1.set_CovMat(kFZRef.propagateToVtx(crosses.get(0).get_Sector(), VTCS.z())); + + if (TrackArray1.isGood()) { + trkcands.add(TrackArray1); + } + } + } + + } + if(!trkcands.isEmpty()) { - //trkcandFinder.removeOverlappingTracks(trkcands); // remove overlaps + //trkcandFinder.removeOverlappingTracks(trkcands); // remove overlaps for(Track trk: trkcands) { int trkId = trk.get_Id(); // reset the id @@ -309,9 +360,295 @@ public boolean processDataEvent(DataEvent event) { return true; } + + public List setKFStateVecsAlongTrajectory(KFitter kFZRef) { + List kfStateVecsAlongTrajectory = new ArrayList<>(); + + for(int i = 0; i < kFZRef.kfStateVecsAlongTrajectory.size(); i++) { + org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec svc = kFZRef.kfStateVecsAlongTrajectory.get(i); + org.jlab.rec.dc.trajectory.StateVec sv = new org.jlab.rec.dc.trajectory.StateVec(svc.x, svc.y, svc.tx, svc.ty); + sv.setZ(svc.z); + sv.setB(svc.B); + sv.setPathLength(svc.getPathLength()); + sv.setProjector(svc.getProjector()); + sv.setProjectorDoca(svc.getProjectorDoca()); + sv.setDAFWeight(svc.getFinalDAFWeight()); + sv.setIsDoubleHit(svc.getIsDoubleHit()?1:0); + kfStateVecsAlongTrajectory.add(sv); + } + + return kfStateVecsAlongTrajectory; + } + + public List setKFStateVecsAlongTrajectory(KFitterStraight kFZRef) { + List kfStateVecsAlongTrajectory = new ArrayList<>(); + + for(int i = 0; i < kFZRef.kfStateVecsAlongTrajectory.size(); i++) { + org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec svc = kFZRef.kfStateVecsAlongTrajectory.get(i); + org.jlab.rec.dc.trajectory.StateVec sv = new org.jlab.rec.dc.trajectory.StateVec(svc.x, svc.y, svc.tx, svc.ty); + sv.setZ(svc.z); + sv.setB(svc.B); + sv.setPathLength(svc.getPathLength()); + sv.setProjector(svc.getProjector()); + sv.setProjectorDoca(svc.getProjectorDoca()); + kfStateVecsAlongTrajectory.add(sv); + } + + return kfStateVecsAlongTrajectory; + } + + public void getInitState(Track trkcand, double z0, org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec initStateVec, KFitter kf, Swim dcSwim, float[] bf) { + if (trkcand != null && trkcand.getFinalStateVec()!=null ) { + initStateVec.x = trkcand.getFinalStateVec().x(); + initStateVec.y = trkcand.getFinalStateVec().y(); + initStateVec.z = trkcand.getFinalStateVec().getZ(); + initStateVec.tx = trkcand.getFinalStateVec().tanThetaX(); + initStateVec.ty = trkcand.getFinalStateVec().tanThetaY(); + initStateVec.Q = ((double) trkcand.get_Q())/trkcand.get_P(); + + RungeKuttaDoca rk = new RungeKuttaDoca(); + rk.SwimToZ(trkcand.get(0).get_Sector(), initStateVec, dcSwim, z0, bf); + + double ex = Constants.TBINITIALSTATEUNCSCALE * Constants.TBINITIALSTATEXUNC; + double ey = Constants.TBINITIALSTATEUNCSCALE * Constants.TBINITIALSTATEYUNC; + double etx = Constants.TBINITIALSTATEUNCSCALE * Constants.TBINITIALSTATETXUNC; + double ety = Constants.TBINITIALSTATEUNCSCALE * Constants.TBINITIALSTATETYUNC; + double eQ = Constants.TBINITIALSTATEUNCSCALE * Constants.TBINITIALSTATEQUNC; + + //Matrix initCMatrix = new Matrix(FTF); + Matrix initCMatrix = new Matrix(); + initCMatrix.set(ex * ex, 0, 0, 0, 0, + 0, ey * ey, 0, 0, 0, + 0, 0, etx * etx, 0, 0, + 0, 0, 0, ety * ety, 0, + 0, 0, 0, 0, eQ * eQ + ); + initStateVec.CM = initCMatrix; + + } else { + kf.setFitFailed = true; + } + + } + + public void getInitState(Track trkcand, double z0, org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec initStateVec, KFitterStraight kf, Swim dcSwim, float[] bf) { + if (trkcand != null && trkcand.getFinalStateVec()!=null ) { + initStateVec.x = trkcand.getFinalStateVec().x(); + initStateVec.y = trkcand.getFinalStateVec().y(); + initStateVec.z = trkcand.getFinalStateVec().getZ(); + initStateVec.tx = trkcand.getFinalStateVec().tanThetaX(); + initStateVec.ty = trkcand.getFinalStateVec().tanThetaY(); + initStateVec.Q = ((double) trkcand.get_Q())/trkcand.get_P(); + + RungeKuttaDoca rk = new RungeKuttaDoca(); + rk.SwimToZ(trkcand.get(0).get_Sector(), initStateVec, dcSwim, z0, bf); + + double ex = Constants.TBINITIALSTATEUNCSCALE * Constants.TBINITIALSTATEXUNC; + double ey = Constants.TBINITIALSTATEUNCSCALE * Constants.TBINITIALSTATEYUNC; + double etx = Constants.TBINITIALSTATEUNCSCALE * Constants.TBINITIALSTATETXUNC; + double ety = Constants.TBINITIALSTATEUNCSCALE * Constants.TBINITIALSTATETYUNC; + double eQ = Constants.TBINITIALSTATEUNCSCALE * Constants.TBINITIALSTATEQUNC; + + //Matrix initCMatrix = new Matrix(FTF); + Matrix initCMatrix = new Matrix(); + initCMatrix.set(ex * ex, 0, 0, 0, 0, + 0, ey * ey, 0, 0, 0, + 0, 0, etx * etx, 0, 0, + 0, 0, 0, ety * ety, 0, + 0, 0, 0, 0, eQ * eQ + ); + initStateVec.CM = initCMatrix; + + } else { + kf.setFitFailed = true; + } + + } + + private org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec reset(org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec sv, org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec stateVec) { + StateVecs svs = new StateVecs(); + sv = svs.new StateVec(stateVec.k); + sv.x = stateVec.x; + sv.y = stateVec.y; + sv.tx = stateVec.tx; + sv.ty = stateVec.ty; + sv.z = stateVec.z; + sv.Q = stateVec.Q; + + return sv; + } + private void swimToSite(int sector, double z0, + org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec SVplus, org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec SVminus, RungeKuttaDoca rk, Swim dcSwim, float[] bf) { + rk.SwimToZ(sector, SVplus, dcSwim, z0, bf); + rk.SwimToZ(sector, SVminus, dcSwim, z0, bf); + } + double[] F(int sector, double z0, org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec stateVec, RungeKuttaDoca rk, Swim dcSwim, float[] bf) { + double[] _F = new double[5]; + org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec SVplus = null; + org.jlab.clas.tracking.kalmanfilter.AStateVecs.StateVec SVminus = null; + + SVplus = this.reset(SVplus, stateVec); + SVminus = this.reset(SVminus, stateVec); + + double delt_x = 0.05; + SVplus.x += delt_x/2.; + SVminus.x-= delt_x/2.; + + this.swimToSite(sector, z0, SVplus, SVminus, rk, dcSwim, bf); + + _F[0] = (SVplus.x - SVminus.x)/delt_x; + + SVplus = this.reset(SVplus, stateVec); + SVminus = this.reset(SVminus, stateVec); + + double delt_y = 0.05; + SVplus.y += delt_y/2.; + SVminus.y-= delt_y/2.; + + this.swimToSite(sector, z0, SVplus, SVminus, rk, dcSwim, bf); + + _F[1] = (SVplus.y - SVminus.y)/delt_y; + + SVplus = this.reset(SVplus, stateVec); + SVminus = this.reset(SVminus, stateVec); + + double delt_tx = 0.001; + SVplus.tx += delt_tx/2.; + SVminus.tx-= delt_tx/2.; + this.swimToSite(sector, z0, SVplus, SVminus, rk, dcSwim, bf); + + _F[2] = (SVplus.tx - SVminus.tx)/delt_tx; + + SVplus = this.reset(SVplus, stateVec); + SVminus = this.reset(SVminus, stateVec); + + double delt_ty = 0.001; + SVplus.ty += delt_ty/2.; + SVminus.ty-= delt_ty/2.; + + this.swimToSite(sector, z0, SVplus, SVminus, rk, dcSwim, bf); + + _F[3] = (SVplus.ty - SVminus.ty)/delt_ty; + + SVplus = this.reset(SVplus, stateVec); + SVminus = this.reset(SVminus, stateVec); + + + _F[4] = 0.01/Math.abs(SVplus.Q); + + return _F; + + } + + public List getMeasSurfaces(Track trk, DCGeant4Factory DcDetector) { + List hOTS = new ArrayList<>(); // the list of hits on track + FittedHit hitOnTrk; + for(int s = 0; s < trk.get_ListOfHBSegments().size(); s++) { + for(int h = 0; h < trk.get_ListOfHBSegments().get(s).size(); h++) { + trk.get_ListOfHBSegments().get(s).get(h).calc_CellSize(DcDetector); + hitOnTrk = trk.get_ListOfHBSegments().get(s).get(h); + int slayr = trk.get_ListOfHBSegments().get(s).get(h).get_Superlayer(); + + double sl1 = trk.get_ListOfHBSegments().get(s).get_fittedCluster().get_clusterLineFitSlope(); + double it1 = trk.get_ListOfHBSegments().get(s).get_fittedCluster().get_clusterLineFitIntercept(); + + double Z = hitOnTrk.get_Z(); + double X = sl1 * Z + it1; + HitOnTrack hot = new HitOnTrack(slayr, X, Z, + hitOnTrk.get_WireMaxSag(), + hitOnTrk.get_WireLine()); + + hot._doca[0] = trk.get_ListOfHBSegments().get(s).get(h).get_Doca(); + + double LR = Math.signum(trk.get_ListOfHBSegments().get(s).get(h).get_XWire()-trk.get_ListOfHBSegments().get(s).get(h).get_X()); + hot._doca[0]*=-LR; + hot._hitError = trk.get_ListOfHBSegments().get(s).get(h).get_DocaErr()*trk.get_ListOfHBSegments().get(s).get(h).get_DocaErr(); + //LOGGER.log(Level.FINE, " Z "+Z+" ferr "+(float)(hot._Unc /(hot._hitError/4.))); + hot._Unc[0] = hot._hitError; + hot.region = trk.get_ListOfHBSegments().get(s).get(h).get_Region(); + hot.sector = trk.get_ListOfHBSegments().get(s).get(h).get_Sector(); + hot.superlayer = trk.get_ListOfHBSegments().get(s).get(h).get_Superlayer(); + hot.layer = trk.get_ListOfHBSegments().get(s).get(h).get_Layer(); + hOTS.add(hot); + } + } + + Collections.sort(hOTS); // sort the collection in order of increasing Z value (i.e. going downstream from the target) + // identify double hits and take the average position + for (int i = 0; i < hOTS.size(); i++) { + if (i > 0) { + if (Math.abs(hOTS.get(i - 1)._Z - hOTS.get(i)._Z)<0.01) { + hOTS.get(i - 1)._doca[1] = hOTS.get(i)._doca[0]; + hOTS.get(i - 1)._Unc[1] = hOTS.get(i)._Unc[0]; + hOTS.get(i - 1)._wireLine[1] = hOTS.get(i)._wireLine[0]; + hOTS.remove(i); + hOTS.get(i - 1).nMeas = 2; + } + } + } + + List surfaces = new ArrayList<>(hOTS.size()); + + for (int i = 0; i < hOTS.size(); i++) { + Surface surf = new Surface(hOTS.get(i).region, hOTS.get(i)._doca, hOTS.get(i)._Unc, hOTS.get(i)._hitError, hOTS.get(i)._wireLine); + surf.setSector(hOTS.get(i).sector); + surf.setSuperLayer(hOTS.get(i).superlayer); + surf.setLayer(hOTS.get(i).layer); + surf.setNMeas(hOTS.get(i).nMeas); + surfaces.add(i, surf); + } + + return surfaces; + } + + public class HitOnTrack implements Comparable { + + public double _hitError; + public double _X; + public double _Z; + public double[] _Unc = new double[2]; + public double _tilt; + public double[] _doca = new double[2]; + public double _wireMaxSag; + public Line3D[] _wireLine = new Line3D[2]; + public int region; + public int superlayer; + public int sector; + public int layer; + public int nMeas = 1; + + + public HitOnTrack(int superlayer, double X, double Z, double wiremaxsag, Line3D wireLine) { + _X = X; + _Z = Z; + _wireMaxSag = wiremaxsag; + _wireLine[0] = wireLine; + _doca[0] = -99; + _doca[1] = -99; + _Unc[0] = 1; + _Unc[1] = 1; + + //use stereo angle in fit based on wire direction + _tilt = 90-Math.toDegrees(wireLine.direction().asUnit().angle(new Vector3D(1,0,0))); + } + + @Override + public int compareTo(HitOnTrack o) { + if (this._Z == o._Z) { + return 0; + } + if (this._Z > o._Z) { + return 1; + } else { + return -1; + } + } + } + + private int get_Status(Track track) { int miss = 0; diff --git a/reconstruction/dc/src/test/java/org/jlab/service/dc/DCReconstructionTest.java b/reconstruction/dc/src/test/java/org/jlab/service/dc/DCReconstructionTest.java index 645a24221..0954c9cd3 100644 --- a/reconstruction/dc/src/test/java/org/jlab/service/dc/DCReconstructionTest.java +++ b/reconstruction/dc/src/test/java/org/jlab/service/dc/DCReconstructionTest.java @@ -85,8 +85,8 @@ public void testDCReconstruction() { assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("Vtx0_x", 0) < 0.2, true); assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("Vtx0_x", 0) > -0.2, true); - assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("Vtx0_y", 0) < 0.18, true); - assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("Vtx0_y", 0) > -0.228, true); + assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("Vtx0_y", 0) < 0.5, true); + assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("Vtx0_y", 0) > -0.5, true); assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("Vtx0_z", 0) < 0.885, true); assertEquals(testEvent.getBank("TimeBasedTrkg::TBTracks").getFloat("Vtx0_z", 0) > -0.0753, true); diff --git a/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellConstants.java b/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellConstants.java index 732c923fb..a82541880 100644 --- a/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellConstants.java +++ b/reconstruction/urwell/src/main/java/org/jlab/service/urwell/URWellConstants.java @@ -25,5 +25,5 @@ public class URWellConstants { // cluster public final static double COINCTIME = 100; - + } From 48718d656b7b6980db66ad48719a1fdffed0f4aa Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Fri, 19 Apr 2024 09:36:11 -0400 Subject: [PATCH 050/201] feat: generate and deploy `javadoc` documentation (#257) * feat: generate `javadoc` documentation * ci: re-trigger * fix: `needs` * fix: runner name * fix: needs * fix: `set -e` * fix: maybe we do need the build targets * feat: generate front page * fix: use `bash` * fix: the script is `bash` too * fix: re-enable full workflow --- .github/workflows/maven.yml | 62 ++++++++++++++++++++++++++++++++----- README.md | 8 +++-- build-javadocs.sh | 45 +++++++++++++++++++++++++-- docs/javadoc/.gitignore | 3 +- docs/javadoc/index.html | 47 ---------------------------- 5 files changed, 102 insertions(+), 63 deletions(-) delete mode 100644 docs/javadoc/index.html diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 43f3bb51d..304078366 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -16,6 +16,10 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true +defaults: + run: + shell: bash + env: java_version: 11 java_distribution: zulu @@ -33,8 +37,6 @@ jobs: runner: - ubuntu-latest - macos-latest - outputs: - default_runner: ubuntu-latest runs-on: ${{ matrix.runner }} steps: - uses: actions/checkout@v4 @@ -57,8 +59,9 @@ jobs: run: validation/jacoco-aggregate.sh - name: publish jacoco report if: ${{ matrix.runner == 'ubuntu-latest' }} - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-artifact@v4 with: + name: jacoco_report path: publish/ retention-days: 1 @@ -110,7 +113,7 @@ jobs: test_run-groovy: needs: [ build ] - runs-on: ${{ needs.build.outputs.default_runner }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK @@ -124,7 +127,7 @@ jobs: groovy-version: ${{ env.groovy_version }} - uses: actions/download-artifact@v4 with: - name: build_${{ needs.build.outputs.default_runner }} + name: build_ubuntu-latest - name: untar build run: tar xzvf coatjava.tar.gz - name: test run-groovy @@ -135,17 +138,60 @@ jobs: - build - test_coatjava - test_run-groovy - runs-on: ${{ needs.build.outputs.default_runner }} + runs-on: ubuntu-latest steps: - name: pass run: exit 0 + # generate documentation + ############################################################################# + + generate_documentation: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: ${{ env.java_version }} + distribution: ${{ env.java_distribution }} + - name: build + run: ./build-coatjava.sh + - name: generate documentation + run: ./build-javadocs.sh + - uses: actions/upload-artifact@v4 + with: + name: javadoc + path: docs/javadoc/ + retention-days: 1 + # deploy web pages ############################################################################# + collect_webpages: + if: ${{ github.head_ref == 'development' || github.ref_name == 'development' }} + needs: [ build, generate_documentation ] + runs-on: ubuntu-latest + steps: + - name: download jacoco report + uses: actions/download-artifact@v4 + with: + name: jacoco_report + path: pages/jacoco + - name: download javadoc documentation + uses: actions/download-artifact@v4 + with: + name: javadoc + path: pages/javadoc + - run: tree pages + - uses: actions/upload-pages-artifact@v3 + with: + retention-days: 1 + path: pages/ + deploy_web_pages: - if: ${{ github.event_name == 'push' }} - needs: build + if: ${{ github.head_ref == 'development' || github.ref_name == 'development' }} + needs: collect_webpages permissions: pages: write id-token: write diff --git a/README.md b/README.md index 7dc9615ff..932aa457c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,11 @@ # COATJAVA [![Build Status](https://github.com/jeffersonlab/coatjava/workflows/Coatjava-CI/badge.svg)](https://github.com/jeffersonlab/coatjava/actions) [![Validation Status](https://github.com/JeffersonLab/coatjava/actions/workflows/validation.yml/badge.svg)](https://github.com/JeffersonLab/coatjava/actions/workflows/validation.yml) -[![Coverage](https://badgen.net/static/JaCoCo/coverage/purple)](https://jeffersonlab.github.io/coatjava) +[![Coverage](https://badgen.net/static/JaCoCo/coverage/purple)](https://jeffersonlab.github.io/coatjava/jacoco) + +- [API Documentation (Javadoc)](https://jeffersonlab.github.io/coatjava/javadoc) + +---- The original repository for COATJAVA was named "clas12-offline-software" and is [now archived and read-only](https://github.com/JeffersonLab/clas12-offline-software). On May 17, 2023, this new repository was created by running BFG Repo Cleaner to get rid of old, large data files and things that should never have been in the repository, giving 10x reduction in repository size, clone time, etc, and renamed `coatjava`. The most critical, GitHub-specific aspects have been transferred to this new repository: @@ -27,8 +31,6 @@ For anything more, see the "General Developer Documentation" link on that softwa The [troubleshooting](https://github.com/JeffersonLab/clas12-offline-software/wiki/Troubleshooting) wiki page may also still be useful but likely outdated. - - From fe5636d324eed024367523aa413c85bbc79bee25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 15:29:26 -0400 Subject: [PATCH 055/201] build(deps): bump org.apache.maven.plugins:maven-jar-plugin (#260) Bumps [org.apache.maven.plugins:maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.2.2 to 3.4.1. - [Release notes](https://github.com/apache/maven-jar-plugin/releases) - [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.2.2...maven-jar-plugin-3.4.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-jar-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parent/pom.xml b/parent/pom.xml index 70c170e74..6a6707ed7 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -100,7 +100,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.2 + 3.4.1 From 31d13b8364334914bc46175b7b22baa142b8f8ca Mon Sep 17 00:00:00 2001 From: hauenst Date: Wed, 24 Apr 2024 09:51:53 -0400 Subject: [PATCH 056/201] Add DC::jitter to dchv schema. Add RECHB banks to dchv by replacing dst with dsthb in list (#264) --- etc/bankdefs/util/bankSplit.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etc/bankdefs/util/bankSplit.py b/etc/bankdefs/util/bankSplit.py index 8f3c2f2c6..b8f5e9da0 100755 --- a/etc/bankdefs/util/bankSplit.py +++ b/etc/bankdefs/util/bankSplit.py @@ -100,8 +100,8 @@ def create(dirname, banklist): dcalign.extend(["ai::tracks", "aidn::tracks", "TimeBasedTrkg::AIClusters", "TimeBasedTrkg::AIHits", "TimeBasedTrkg::AISegments", "TimeBasedTrkg::AITracks", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBHits", "TimeBasedTrkg::TBSegments", "TimeBasedTrkg::TBSegmentTrajectory", "TimeBasedTrkg::TBTracks"]) # DC HV studies schema: -dchv = list(dst) -dchv.extend(["DC::tdc", "HitBasedTrkg::HBClusters", "HitBasedTrkg::HBHitTrkId", "HitBasedTrkg::HBHits", "HitBasedTrkg::HBSegmentTrajectory", "HitBasedTrkg::HBSegments", "HitBasedTrkg::HBTracks", "HitBasedTrkg::Hits", "HitBasedTrkg::Trajectory", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBHits", "TimeBasedTrkg::TBSegments", "TimeBasedTrkg::TBSegmentTrajectory", "TimeBasedTrkg::TBTracks"]) +dchv = list(dsthb) +dchv.extend(["DC::tdc","DC::jitter", "HitBasedTrkg::HBClusters", "HitBasedTrkg::HBHitTrkId", "HitBasedTrkg::HBHits", "HitBasedTrkg::HBSegmentTrajectory", "HitBasedTrkg::HBSegments", "HitBasedTrkg::HBTracks", "HitBasedTrkg::Hits", "HitBasedTrkg::Trajectory", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBHits", "TimeBasedTrkg::TBSegments", "TimeBasedTrkg::TBSegmentTrajectory", "TimeBasedTrkg::TBTracks"]) # Level3 validation schema: level3 = list(dst) From 5bd1800f339f8d2b7d8b1947f2c3eb6902beb71b Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Wed, 24 Apr 2024 15:27:43 -0400 Subject: [PATCH 057/201] fix(ci): don't deploy webpages from forks (#265) --- .github/workflows/maven.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 304078366..7c4df2efa 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -169,7 +169,7 @@ jobs: ############################################################################# collect_webpages: - if: ${{ github.head_ref == 'development' || github.ref_name == 'development' }} + if: ${{ github.ref == 'refs/heads/development' }} needs: [ build, generate_documentation ] runs-on: ubuntu-latest steps: @@ -190,7 +190,7 @@ jobs: path: pages/ deploy_web_pages: - if: ${{ github.head_ref == 'development' || github.ref_name == 'development' }} + if: ${{ github.ref == 'refs/heads/development' }} needs: collect_webpages permissions: pages: write From 9c5dfd6d36644a938cdb20a2c93dd8c77b361785 Mon Sep 17 00:00:00 2001 From: tongtongcao Date: Thu, 2 May 2024 14:45:36 -0400 Subject: [PATCH 058/201] update for DC stereo angle --- .../dc/src/main/java/org/jlab/rec/dc/Constants.java | 7 ++++--- .../dc/src/main/java/org/jlab/rec/dc/segment/Segment.java | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java index 11f0267af..c406da212 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java @@ -54,9 +54,10 @@ public static Constants getInstance() { public static final double SIN25 = Math.sin(Math.toRadians(25.)); public static final double COS25 = Math.cos(Math.toRadians(25.)); public static final double COS30 = Math.cos(Math.toRadians(30.)); - public static final double SIN6 = Math.sin(Math.toRadians(6.)); - public static final double COS6 = Math.cos(Math.toRadians(6.)); - public static final double TAN6 = Math.tan(Math.toRadians(6.)); + public static final double STEREOANGLE = 6.; + public static final double SIN6 = Math.sin(Math.toRadians(STEREOANGLE)); + public static final double COS6 = Math.cos(Math.toRadians(STEREOANGLE)); + public static final double TAN6 = Math.tan(Math.toRadians(STEREOANGLE)); public static final double CTAN6 = 1/TAN6; public static final double[] SINSECTOR60 = {0, Math.sin(Math.toRadians(60.)), Math.sin(Math.toRadians(120.)), 0, Math.sin(Math.toRadians(240.)), Math.sin(Math.toRadians(300.))}; diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java index b4617909f..793dfe0e5 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java @@ -244,7 +244,7 @@ public boolean hasConsistentSlope(Segment otherseg) { boolean value = false; if (this.get_fitPlane() != null && otherseg.get_fitPlane() != null) { - if (Math.abs(Math.toDegrees(Math.acos(this.get_fitPlane().normal().dot(otherseg.get_fitPlane().normal()))) - 12.) < Constants.SEGMENTPLANESANGLE) // the angle between the plane normals is 12 degrees with some tolerance + if (Math.abs(Math.toDegrees(Math.acos(this.get_fitPlane().normal().dot(otherseg.get_fitPlane().normal()))) - 2*Constants.STEREOANGLE) < Constants.SEGMENTPLANESANGLE) // the angle between the plane normals is 2*Constants.STEREOANGLE degrees with some tolerance { value = true; } From 94c7a6ef18ee32a8f98dcccdefacc331c13afeb6 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 24 Apr 2024 14:05:20 -0400 Subject: [PATCH 059/201] bump version --- common-tools/clara-io/pom.xml | 4 ++-- common-tools/clas-analysis/pom.xml | 20 ++++++++--------- common-tools/clas-detector/pom.xml | 10 ++++----- common-tools/clas-geometry/pom.xml | 4 ++-- common-tools/clas-io/pom.xml | 8 +++---- common-tools/clas-jcsg/pom.xml | 8 +++---- common-tools/clas-logging/pom.xml | 4 ++-- common-tools/clas-math/pom.xml | 4 ++-- common-tools/clas-physics/pom.xml | 4 ++-- common-tools/clas-reco/pom.xml | 16 +++++++------- common-tools/clas-tracking/pom.xml | 6 +++--- common-tools/clas-utils/pom.xml | 6 +++--- common-tools/cnuphys/magfield/pom.xml | 2 +- common-tools/cnuphys/swimmer/pom.xml | 2 +- common-tools/coat-lib/deployDistribution.sh | 2 +- common-tools/coat-lib/pom.xml | 24 ++++++++++----------- common-tools/parent/pom.xml | 2 +- common-tools/pom.xml | 4 ++-- common-tools/swim-tools/pom.xml | 6 +++--- parent/pom.xml | 2 +- pom.xml | 4 ++-- reconstruction/alert/pom.xml | 10 ++++----- reconstruction/band/pom.xml | 4 ++-- reconstruction/cnd/pom.xml | 2 +- reconstruction/cvt/pom.xml | 6 +++--- reconstruction/dc/pom.xml | 14 ++++++------ reconstruction/eb/pom.xml | 10 ++++----- reconstruction/ec/pom.xml | 6 +++--- reconstruction/fmt/pom.xml | 6 +++--- reconstruction/ft/pom.xml | 4 ++-- reconstruction/htcc/pom.xml | 4 ++-- reconstruction/ltcc/pom.xml | 4 ++-- reconstruction/mc/pom.xml | 4 ++-- reconstruction/mltn/pom.xml | 6 +++--- reconstruction/pom.xml | 4 ++-- reconstruction/raster/pom.xml | 4 ++-- reconstruction/rich/pom.xml | 6 +++--- reconstruction/rtpc/pom.xml | 6 +++--- reconstruction/swaps/pom.xml | 8 +++---- reconstruction/tof/pom.xml | 4 ++-- reconstruction/urwell/pom.xml | 6 +++--- reconstruction/vtx/pom.xml | 6 +++--- 42 files changed, 133 insertions(+), 133 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index 1abf7a758..75b8b9b76 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clara-io - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml index 7116080a5..606802087 100644 --- a/common-tools/clas-analysis/pom.xml +++ b/common-tools/clas-analysis/pom.xml @@ -3,63 +3,63 @@ 4.0.0 org.jlab.clas clas-analysis - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-utils - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-physics - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-io - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-geometry - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas swim-tools - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-detector - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml index 8deae31a9..79525115f 100644 --- a/common-tools/clas-detector/pom.xml +++ b/common-tools/clas-detector/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-detector - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-utils - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -29,13 +29,13 @@ org.jlab.clas clas-io - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-geometry - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index 6b117f0f4..0828d4822 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-geometry - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 308aafecc..b280f00d0 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-io - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -87,13 +87,13 @@ org.jlab.clas clas-utils - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-logging - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT compile diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index ebbca4615..2ef10f56a 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-jcsg - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -27,12 +27,12 @@ org.jlab.clas clas-geometry - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-detector - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT java3d diff --git a/common-tools/clas-logging/pom.xml b/common-tools/clas-logging/pom.xml index c1a829ace..b3220df01 100644 --- a/common-tools/clas-logging/pom.xml +++ b/common-tools/clas-logging/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-logging - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml index 053a41b97..df0658d47 100644 --- a/common-tools/clas-math/pom.xml +++ b/common-tools/clas-math/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-math - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml index 95175d742..f7de3f2f8 100644 --- a/common-tools/clas-physics/pom.xml +++ b/common-tools/clas-physics/pom.xml @@ -4,14 +4,14 @@ org.jlab.clas clas-physics - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml index d383ef989..c42e1931f 100644 --- a/common-tools/clas-reco/pom.xml +++ b/common-tools/clas-reco/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -42,37 +42,37 @@ org.jlab.clas clas-math - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-io - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-logging - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-physics - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-utils - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-detector - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index 6c0d3277e..06216ff63 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-tracking - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -22,7 +22,7 @@ org.jlab.clas swim-tools - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index 35fd7588b..40dbed05d 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-utils - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-logging - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.apache.commons diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml index c385bfd21..5d3fcdfb4 100644 --- a/common-tools/cnuphys/magfield/pom.xml +++ b/common-tools/cnuphys/magfield/pom.xml @@ -23,7 +23,7 @@ org.jlab.clas clas-math - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml index 8015fac10..3710926a8 100644 --- a/common-tools/cnuphys/swimmer/pom.xml +++ b/common-tools/cnuphys/swimmer/pom.xml @@ -35,7 +35,7 @@ org.jlab.clas clas-math - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/coat-lib/deployDistribution.sh b/common-tools/coat-lib/deployDistribution.sh index b663b6611..cc16fed27 100755 --- a/common-tools/coat-lib/deployDistribution.sh +++ b/common-tools/coat-lib/deployDistribution.sh @@ -8,7 +8,7 @@ cd `dirname $0` # Script is exporting existing Jar files to repository #------------------------------------------------------------------------------------------------- -VERSION=10.1.0 +VERSION=10.1.1 mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -Dfile=target/coat-libs-${VERSION}-SNAPSHOT.jar \ diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index f097c6fb4..26d8ce4eb 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jlab.clas coat-libs - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT pom @@ -93,67 +93,67 @@ org.jlab.clas clas-io - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clara-io - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-utils - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-detector - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-analysis - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-geometry - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-physics - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas swim-tools - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-tracking - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index 7decafa17..c3b326390 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas common-tools - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT pom diff --git a/common-tools/pom.xml b/common-tools/pom.xml index 566c3a430..a98298d6d 100644 --- a/common-tools/pom.xml +++ b/common-tools/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas common-tools - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml index be97a0b60..f4abd013f 100644 --- a/common-tools/swim-tools/pom.xml +++ b/common-tools/swim-tools/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas swim-tools - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/parent/pom.xml b/parent/pom.xml index 6a6707ed7..4f1985b3b 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas clas12rec - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index c87faabe7..0f9a32e25 100644 --- a/pom.xml +++ b/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas clas12 - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT pom org.jlab.clas clas12rec parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml index 9fe14795e..11accf88e 100644 --- a/reconstruction/alert/pom.xml +++ b/reconstruction/alert/pom.xml @@ -13,31 +13,31 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-io - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT compile org.jlab.clas clas-tracking - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT compile org.jlab.clas clas-geometry - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT compile diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml index 55da3aeaf..194b13d89 100644 --- a/reconstruction/band/pom.xml +++ b/reconstruction/band/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml index bca65b281..5d06d8487 100644 --- a/reconstruction/cnd/pom.xml +++ b/reconstruction/cnd/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml index 60ee1eebf..98a0e301a 100644 --- a/reconstruction/cvt/pom.xml +++ b/reconstruction/cvt/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -47,7 +47,7 @@ org.jlab.clas clas-tracking - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index d6eba363e..c60789948 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -28,25 +28,25 @@ org.jlab.clas clas-tracking - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-analysis - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -75,13 +75,13 @@ org.jlab.clas swim-tools - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-math - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml index 9dd6664f6..2ac2bd5a6 100644 --- a/reconstruction/eb/pom.xml +++ b/reconstruction/eb/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,25 +21,25 @@ org.jlab.clas clas-utils - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-io - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-analysis - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml index 71c49d130..8f8155a63 100644 --- a/reconstruction/ec/pom.xml +++ b/reconstruction/ec/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-analysis - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml index d08ea2180..b6273f1a0 100644 --- a/reconstruction/fmt/pom.xml +++ b/reconstruction/fmt/pom.xml @@ -15,21 +15,21 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas swim-tools - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml index a06100e18..5c70b0eb2 100644 --- a/reconstruction/ft/pom.xml +++ b/reconstruction/ft/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml index afe7c1590..33e728300 100644 --- a/reconstruction/htcc/pom.xml +++ b/reconstruction/htcc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml index fdc3acc50..01bddfb54 100644 --- a/reconstruction/ltcc/pom.xml +++ b/reconstruction/ltcc/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml index 74f9fa624..0822968d7 100644 --- a/reconstruction/mc/pom.xml +++ b/reconstruction/mc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml index a98f0dc9e..c99d7c60d 100644 --- a/reconstruction/mltn/pom.xml +++ b/reconstruction/mltn/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -34,13 +34,13 @@ org.jlab.clas clas-io - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index 8c9f8ce2a..03f586099 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -3,14 +3,14 @@ org.jlab.clas reconstruction - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml index bff75598d..cda1241f5 100644 --- a/reconstruction/raster/pom.xml +++ b/reconstruction/raster/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml index 4f8849f35..eff53f952 100644 --- a/reconstruction/rich/pom.xml +++ b/reconstruction/rich/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml index 98ef95d79..1cb9052c0 100644 --- a/reconstruction/rtpc/pom.xml +++ b/reconstruction/rtpc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,12 +21,12 @@ org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-tracking - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT compile diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml index 364303745..685d76ceb 100644 --- a/reconstruction/swaps/pom.xml +++ b/reconstruction/swaps/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-detector - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-io - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-reco - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml index 4ac339991..e1213fdbd 100644 --- a/reconstruction/tof/pom.xml +++ b/reconstruction/tof/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/urwell/pom.xml b/reconstruction/urwell/pom.xml index 230177a4a..a57ea180b 100644 --- a/reconstruction/urwell/pom.xml +++ b/reconstruction/urwell/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT org.jlab.clas clas-analysis - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml index 36da9a281..b9471888b 100644 --- a/reconstruction/vtx/pom.xml +++ b/reconstruction/vtx/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT @@ -33,13 +33,13 @@ org.jlab.clas swim-tools - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar org.jlab.clas clas-tracking - 10.1.0-SNAPSHOT + 10.1.1-SNAPSHOT jar From cbe785ec37b664722d3941578f98e282f97de515 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 24 Apr 2024 14:07:28 -0400 Subject: [PATCH 060/201] switch to patched clara --- install-clara | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install-clara b/install-clara index c153ccff8..d0d7e5490 100755 --- a/install-clara +++ b/install-clara @@ -2,8 +2,8 @@ # Default versions: grapes=2.17 -clara=v0 -coatjava=10.0.8 +clara=5.0.2 +coatjava=10.1.0 # Abort on any non-zero exit codes: set -e From 0df2ea398ebf8a5e51f64a656e1e1c62a750e5fa Mon Sep 17 00:00:00 2001 From: raffaelladevita Date: Tue, 11 Jun 2024 17:42:03 -0400 Subject: [PATCH 061/201] added RG-D network per request of the run group --- etc/ejml/ejmlclas12.network | Bin 188502 -> 238121 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/etc/ejml/ejmlclas12.network b/etc/ejml/ejmlclas12.network index f2efe426c7bdc6103c77c0c9fdc1b11765ef5cc1..25030fe27394f09408f40aca17698a3ecc61a6d0 100644 GIT binary patch delta 27374 zcma&NV{~Qfw(mV>Y}=~XPQ^AWHY!%d&Ww{vQn6LBZQHh0LB+P;T6?X1&)Mg^x3xR} zUwRwQXya4wzo%<1cEgwSBl!gZ>%oM^5x^lZ05C8xfYyjH&E!f9APyu8HyblYGVuf$ zUfmEo5|H$-6TpA_G5)dbOr72A9j%%Ee)n(*jI<7mlNb-;uXp2P+5i2K$q6vrIy)s? z;NJ&6eg8fnodhFpiXZ|DMEHOBJR=<#DX2hm%??8n#pgjI+sBkYt<&v*As}0f3~WSf zkBo?tnLC}{x}FFe>AI`Pvwcp@T+V)Q8~dfXRY7B^qU_+tYN_KyV~bz2W5fISVd~{= zE#j@s?xEG7LQ%cz^_Dwg_4VPz*3Bbz=F-7wv;8Qf@<~~6ByKDRzjhB9|A*pY1!&FX zCH#F0vCsGBU|~ACcPcbfor$xr@x!G-A93k|?Y-?~nq$q*Z8Kx$d4oq z)&()&S>?;yvDpuVE(T+Fp3|!5x#SIrTkE4gF%8)a&CBfEZ{nJ$II{Y9{9W}2O z54P6^sk5ujm&en$>Xv0aM%Je%WRS{BWQG^9ZNa(w@q>7{%GuG!llX)NvCB~Af_dLv zqrqOg&QGSMeb={@-&?dDFTK|$zX5OY6RuwKDRaDI$v^KbL7Nww>%5vKkrx$r7W4;9 z7V-homgO(dCNo`~%N+#!&QO0_bFdARtK*Yt@Iz4#lSYRFz22LslpNjEYnL&|CzAk0hS@R$| zd{vtD)ly}Ib=F2);jcex25drrDZ5<(6H=U?dU{V6X0Iev zMCImCogk{?CUR|M0+NLJyOCDPDF87P#WkNse&^ddx3Dq)sH&dutAWm@p$S4laX(U) z!v0~?gTd*T$kaU&F9CASHDQ+h7>3v@Rq`9&l*`u2EuhHB5g0L*QNoAKpzF@_f^3NW ztO{>vK_|3h3VS0YZTJXNsC+6$tKAa4OHSQVlGsx#zmuZEKn+YtXr^8U(?R)4=5eG? z2X2E$$6&DrHcWadHp;b0#UAT#-45{yS)!Y&KrZ3xJ6b)>1{f&5E*u$quSV1)o z(gOZOwyBjiR)=O190y`W9#C*^>ljA^E=O(piOB*K`+%dtJ3%D9YAEwCbl$lzkoC~9AxoVy9o!A`owVbu&Wqv z#?V+CZ{UcEII-Vi2;Pd=wvK7)1hdqt$_7?UJ)=#<_k9q|476I3_*w{=GO2{#q)7r@ zI_<$@zD)2DA59bcBzUIEXDI^ddZtd!5m>`^+HNf_@pQc8t1tD0cQeBt+ldd5)NpRV z#WE$oI^}#>W_szIY7eW-g4#pG(s>9eG&FF2j<$AshmoMclUz|-=A_6e4GWa+@LBfO zdOR7&1y+#%_oz=S-%b6k84rYO7!;9m7wVCm#hjFCE#j3CB2Rf&F|C?q9kJ1WjExMM zHfxBlRGFAG>sZ+|jgFZObrvSGZLwxC3r z5Y)0ydDj_Djy?&IHpGc0HJ{Mj+UO*({p=yd8C0k90k8$f@4{sindx-S6!17Es9d9A zH}-si*pvf4uz1e~nQ+sW@r!53VGmT8amM%M!JC;@+uo;H@i1hv7rm1}WbdCMhXztW zbN&ETq5*Pkuf$jBe!SM4*2j{;(X7Ptu z*=xHCEf8<9t%-%q`{;q@CcDJg@DB;RXcs?C69n~Z2)|jQ5>(#r-!6N3{pNBfg_kZz zBe>B4y0wnItsHN0daD(kH+d4xcLgjWLJ|sUK*HOWozT}$s0#c13|4;pT@??%g5`@{ zCh==wWMX6lq$CRsgNb@bkpKk%*pdPOO0xfPwJH&T{rmDuSpg#gH6+R^t_h(GT|8k7 zFBLAHj|;S@LCnik2*Ifl7ejM#_f(vanER_FTx{xj$x|XCj(5>nG zc>DG9>*T_~6mK#YDEj9PeB4-X;?q+8&*q`E?ylMwdWJfyI3yo$jw`AMEf4IdI1dod z*;Fq2jIG~~)w^ktY7EbphI zFJo*bm!NKas>IUn9hP+WtZo+_E*B1Syy$N_LY5}I%dk3$K!Wt|9h&-fFk6)7C9hh_ zNiWEhV)j)GNtE%5*T>J>rX0Ki+$Z@h_4u`|fs7?B8SJ_@m;3vQ(snk@duxUfHW|0aRIs6G&pccV2Y`cC>Y=1{`*5$pb#cN4WJ4F zDnb5j{bTs40#zWTFiF(@(+Hr3d51B8pWqTch+c#oBnvdeLVf;f0T~UzE0{$bR>d_X z@k7WCO1j6Tud4;0$oGRv+C+zwn)iPD3j6wvA={X@S0Ay%wn1kY>-A*cpQ%Z)5($GC$S1SX=h5S&wEv*fG}|BVq~0yG7d3uFsbi|H@D z2i`tfnS%Kdd6{65a-N;_$iHCOGi~Ff-*@MmJt9a9l|WYemYj@=0HIdTO<~*U zPBD8x$I`G4YVYAW^}2(<>#twV%(CBLQe-|Qq3A`ibZa)18p5_1E&cd}AQ0*yo6VDd zwun|*m(>KZ19j42^L?{@=>_>O*FGJuJ1+tQ0G#0dr)$UmS6X+u0!9p)NK~|66+#)f z@D3kdYF#`p|B<;~s`SUT(Y~v`6%jNV$u@4J4eLwIh5hku=utMqB?Z+I-R+@q{I1MQ z{}+;ELDg@L7`o8~Gz(Ad^Xg1$C`bWrRgwbTuLpGGW3%xc3w0K>6_NT^HPH#`+Qd(M zd!+Cy1urt%I)_Z~Wu>5ti=}87#(IupQ52~A^T8XgmW0^YC;GJJSMT3svX)o^80EdK zrzZ9*I$GWu11r6FnPqb=sn~01pPRCcf7CvBT2=9mNCda@x7B!NC1+-2b&1{e-&IGa z-E=_t98-v`q<7tY+MKYnh2EOTTIS9B%yE%(P@(_m`!4ojMgJ2-AZ1_og-&pB(Ahq6 z%C1VjVX`=Nw5WrrtaW#@bk52extP=cN3r%ro>f!T?Sbv##M~u2sob!Jq3h63ONOgXb=XeD7VBms_f!6;Wr2o6c`qf0A?{MRMwzf29(bv z&O(QN)4&{X5$K@!KuaPJ3-{&CuMg~3@9GKf@+vFvbv-gMRtQgsYP(oUUR%o#lv#Ktd%k?oEpOI%(QkMCZWCSAuJ*@yR8_T0H~U55j^a2ca&53y$=QOb0~)+r#Y zAGo_R)u>3jQcHeV^Hw=lF^KQSujp{L29SA4{m%PYIX6FtxY)+h-O=|>=`Ns_pT#;C^0jt!LMO~i{D3!b2WQJn_+P@8Sk2NEgF5~lkXLwzg=l#8jjV~43nRJO>^`u1_)4*vwNsvUjDcU{CG>yl;dT@!3o8hAO5DwJUZHRl z=pa60{h?~x$6YZ0_~shYGqabK9WCa3`%Bivok-J7(X*@h(`~HXt&c0zzM_j-FxQ~z zMFqc29<3U`;G@=)q<8gkzx^3`DdY6_S5M-njZV#Z!LubBW4Bket|9!cB~ZiGAv@`N zo<17h97RVcc2GZpKRL`_M8zTBgMkE-ms$;Q5< z^veT}LgN0s{XYx{?r%50-m%xcW9$T0B^UhdNx?31gyciIQHB+=6{SoRsV{A+!596B zmx#iR@Q%p&#$C2OW;4^eJA?i4VHeo%`91jvV0p`NO?KAd#AhT};|ghPf$Xks zVx-~ci~(>G18SsM;B!y~;P8C-Vj{Rj6xPuUtirHs=RMi>u94j2wq>quNPN*gmRFHq zpBgEf?Mc50tVT+F{K-9`VTdBA!8reTmh=CDaPogSR`S*ApIkICX-xs21tsL-2E)QW zz48>7xTP$+I8oalLrHPR7=Eq#%r%e`DS>RW%6_7GMsOF?s+9opo?W`7hgM6e_fWLR*K=BIvMp}Oc|Q|Q zvxE1W(U#7q&TpVQly(EcFBzPb6@u8iy&HPa?^+wGraCTjjypGPCDH4uXJkR)p;w+O z$(dsU>Tgx8g8I#kN5_F$yeCc(g--e59h&zgEzTM`iG=qHXIBl@W*gpg1yuHycm4P+ zvK$AB2+yr*qzo^Yf(F|T_Y%C1yQkmVtWPS&bv!$j;X$A@LCg2fWqpD8PU%VQm%KvT zCN9da_NN_oCj1p`W0@CL%{!T8NFftGg|tw{Gu1m@eZB_ct;Fw3M>$(JTprQHAsz2? z2>1-LoUij$xWqRqjK45VOtSqjARwiMm8UTfAZ7iNA=)cz^aO2{@|?LDuq%&>>?$fE*KJS`S?M0O^yFg};HMp4hWt%Wo z$|Va%$22o)*6c9LO+xevICABO4p8)YRdmo67gSnVPeZlw;s-dYuq-%zpdh7x7g2i8 zlrU5X-_oPbI0?F@SxNv-%^?jC1`IAGii8`xh9eso0|Gyswfbu2vDAwXsh;9_$9M_7 zVk(w6exlm!X|n@_f}9QWyi2<}zjiK8REfyfrm;rH5%hr#+Gmwa*vGA(Ks~zP0!zkI zv7W4#wtV+YRPfVR0{d8|1Y;(R1Dhrx^+$;T1Zsi1yVb|xXy4q-^jX~gE2WhcB|JI* z6Cr5s|0_iPtA`nH?}Q6#P?xt~lR)Ws(ST`Hr*t*DXKUiLn+Bs%>843*gn?T$Q*A88 z77-xwXX=TM-?k>+2Yi|=nPsi$4h zFWwb)SYowt!8f=!JQi*wX=PEOgDA&PaN;PMnBo@fUDvo?5B4#2-cM$hkw*?c8b@}L zl}c{sybBCnaB0n1RZwx&$S_#c`rEfXdTs&^Ag5rn(D^`A?h2RX+gd$!0p^fXFj=U4 zLFSR zS`eC$_-F9Qm14jq5kQ@j0H6i|olWNm31h;UG=t-i_#keDDS{m4zu*fv&GG}EP7Lm2 zNeUW_HJJ{Da4uyao~yZ1Fakl@n9b|bfyckXZ%YbgLjxwgPW?-Sa`-8#4bMm$)QrmI zJqXI~bDF_4H89dtQ-RH*0ZPIvr3p3`xkX^zFvYVbk~OE)>R;iq2aT@$#s>2k{P5@u z4N4GlUE$O);Q_{wHN$r8sd ztf@;#^T1|biX$A<0&A1!tOtR^3_L;$6ZFgVlkSPp2Gk2m(H5&~vC)GUO%tJ1?>WN` z@noRjP#Tb$LSMIqcby#^+;5v;HK(Kh#kSgD95cjdrCS3B4`d7z7>K~WbV>vMZFQ#m z7w$11+9JoL#9T`U%$_Say3{l&bqAA~Yi6?|a(n+5}7q0s!bl`JaXL|0$N@)7X*!8Ovm>f#HG@ z|KJE;65(GsTGU72+4J6897NP65r^XzpMw&vY2Z3`61 zx_02%^QwEV)olW~jhRR67q*?-FLwR9zWw?%_i%7T7cXE?xw^I%6r%X%;l}WMiZQAbrn6v6UM6K&QYpdLjvp}qih&G8w>ZPR%@0~l`wbN3t zNjC{P~XBSl;UiR07ES_7j02z=l# z1!nT^jo0M|oUKR(xs1=VV=7aqDe}v>ibP6&l)0=Rmeq#ZZ_BKqi0=6uC-op_4(IeAucG&-XOq@`ekc}A6IUFDGt7K)Yd%zA(z?qU z6|{ao$nSN8FlZDY`!$eeLf7kx7iPQxW2F5lKe#lgu^Dkm3Ty4 zZtK{C8WU!+Yt%5ub{CWbTzC8Ov+Et;NGk$NJJqCLMLi+gC8LNR0vYJ@Fu_bhQ8!!l zY~29@n9gn?7-vJE*haom4Oz;x{AvM?e1^=+Add*!1Eo!ENw-DBDt{6)#G0vrv|v)( zh(i(%z#JvRBz|sLtVQ1uh)&qnQXgyGt6<5>1w&MHL(wvd)kx_C#j;1PX^F^9JjtUB z^VQHMWr{qv+9(UZkO3r@F55jU%(E8{rA7XTkfG}8Bqs3Uhf87-c~cuHnJzna!WJ-= ztF)$YfQl<8;`l?{__v)3rWjSk;eA-uY;ok$jBfYn!Vea?sTF1K{kXnsY-Pik6Hf#G zaHnNIN$olXFE>Y!<2CVLWyD+3O0403;tBenaq)j8Ny!&~V@df>mW1FtRmJ@JSrWxV za#L@s(QE+9`4Hfy*<_4UFLqb&;rfgEY?bW8hwtbs;TiRpxX?Yerz`5s2j%zLb+wQA zzp#|E$^No&Vb;>B`F{JR_F5eIVPIdjwidP;JyFX z&=~qVx((ELF7O^_#bm&B*63TO%dn<+@h3}qR>EAfYNA<;>spiA6K&{-$k~6Bne+8v zJqta)bn|g{S+Yyld-LwvARa`UsGQK;r#L(KUHImNb#|=e<9*keII}VN7nPjuwIv=g zIJ;N;d^5$zEtx*-8Na2y9db|BE}a$G@>{#VfyNIWW)G^;r{edI{BMU=mG=$U*Us`L zbh8SkK#R$Dg_|3EPqnSQSp(Yk=_j5wpr-DD^Z~93#;WUfwkvS8kZz@XrdC_}m(1Iy7!6#J-G1Dlefl>P3m{W9F8h?I&NaB@C8*| zOaJ%ibOmtDmRU7fWW?@vp!P2&Hbo z_AL_YHr14WZzQB@1G=Fki6fyujXOj_k!k247!+D}JDv;&4tXIU9XKW#BaNI#A)!Fc zN9dn{-V9C2Y4r`T6H7WF#UUusUqBFzX}C+C0!lD5;V?-h&*pY_rUX)hLG=RxGcjht zec$K}adp9TtKm&}ZEhr3BF}JG!7m}B6-Rfscb$8=3F&d_aKEJjO;`csRBUp(7QPS( zl5)OlDPxdM!PMCV2b76Y@d26Y?J{59X{dVY4+?vn8wmOrl!%e8gHKmT7oRTz~C=z<5@)Z^!iMY_2v7!{J+p z+ZEEF-XG$0E0ZJ}Gw!}v3oc8tnR7R>-5=~XzL#kUXwg4R6mHmp_V8Fg=_S!8Gvxp6n@ zq4i^)qb`l>7Ub>A82HipcJS5RC;CP7Na)erc8Nb_{E6`4sX@S=bK?GZrcZ|L4`1BQ zOzW0AbczSc2L8Y>@|ykoV-|Iu5klO2r<6+9y6sjlF%wh3URPF-PkPY1TRMfWLZXzx zghqh+L1*n}a@1I?PjQCm!4tr#zXdk+mq1`sfWM^({M6m z#>xE*`$!>~<;?qr1n`;7RcP%g-d482AW$fMg-|u6M4|i))KDIYk#v^G?0JtATq}sGPHMUTRo^V+4b2WoJR8G00C?2V@Fb86#HPDkR zY^L3uk^WALn_8R+{`aG$HQ&El&`$>6%Y1TSlZ(o%=A#d;%s>-RjH26xELs<9ebYYJ zfE|cs;pv_s<2lk?{higoUT%x@jpD|bj^SYB0_1}?X*V_b4*6Gd5>Gi-5BYy3$Db+K zpG`KVucl^3E;i0gj;7|8_I3swj9-nMjhsxK_y4o0bMNJ3y$i(cq`?9eg9Zd1uUz_qePn7Lj@pyY< zU;Vs$X+1vn{Zg^gwN<_E^KY0K{246eY`!g=>aQc{t#K(fZMeE2%-oCipvBk!Tr2w( ztyLeP_x5X`&0p4ypKgx0i($o@@s|l`S?mGs*7NV4j^1JA!-(VhjXpAQo08(N2Ps+Y@=yk;c@LxY0^xRleZ@kWLrk>kZ*xwfN(i1)TA{x$D$INPc+NL8kBJ5W? z|HTr2YOg*4DU}y8={Lu>RP`~wrzzhMGC^|$^L zD*uZqiokyaruZ*K`$=|_Z_i{3e4V=Ch77HvqL59ewloBy^#@7{W5tl{F<$Z1)~Eah zlOQEMYQ9^DRmjXBO3@D^5WAt3VYcC-A%c;Jk-Jf)(cXWj$-iJy4KUj;y&X~^1;0}B=7g!De?^6?07cFZfJ+R^iM*qxezhNPM zUo^iIBmC~5Lk}z*79Q9_o;hG)sP06BI#gI$&dS+i@af2h1;=G|Oj3TArt2bn1P%5Q zh!?kAMo42-T7?s+0lA-#n|EaeBMcp%7u%44k$fM7mZl0NF|th^SPinsaKjwNOZ780 z(yowavkGdz)2Hg@N@dye2CF199vg;rfb=kTv^bM`Jj7}!M%2+|J13_you&nL3XEuy zvMI#{)vd_KxL7KRy@jMSjQLHCn@ahCF1SZ5*D@?n{2igLvXVKK1Tqq4XWy6C!7cTm z$Wq>)sf7LO`~oi=n`=~iK|^r>d8k7^-X^)$}` zWk1*w{1?}^p(*#y>1Kk0737S8X8H!*JRExp(y`IZP8=Bj|1@+8sU~@A~!R7X!I-Ax8@QAN`bNwAdslFeKJKRxkKl zEx)-B=2ym^Ug@@U6fWv+Rqo&FFKq83T^6;yH#+kgI_$LE&hDQymYPo0j&04C90eP^ zy$)LSE(m8ic{{G&vR>cYByi8}I}UW;+ap2Bt2B8RHG=zN6^ci7 zl`V}L4?1@HQ0sNC9GwCt4|VP^c}H6lN=wB~2`ep6dIP){z8#+48agJ}l`NVyDcw9q{}2&zsd*4 zTb>L-oYpSUTvfX|noH^{{e!jdYX)W=_L+B!m}8TM3aN<;rdymRnu;{*roSssSFJ95 zPQ4W9#d#A6iM%crm+yURLS2z>_(A1+#pZ-r9XcsJP4XbKE}Yp6JN%}z9|ujFWd=)= zT%jEn)&rbTgCg~8CuTpPqRsJ_hj8&5mYe;*C#-2%gQmv4Dh3wpST+{d-JtYZ@i$r; zxkc~i4z98{7YWA}EVlHX4XvTaG(MVNG?Vpuj}_$6^&sP$ZCvMmGjl=BXY@%%(3?0? zooVJ#H;aJM%kleOEF3GM9cW+J-db5Kmt4NJRl8OG9!Z~=N~~Baa(OpzZ?KdrujwrE zrtD&R+xgLC;q=yqR2dM>oPIpI3!7KPqM0^kNLMxtzG6EbRMnr%BgPb z_FFM1!1~?jo9!!0lYiGFCm>^XH*J;KYP}?M#3<}>%#daFtJj>Q)-z8{gni%ZYPX>x zH_T=fPi8Mpro7%bfx!^{tAiWGHWTMDkqMED;fG(cAe6Nhgjx5aVq>uQclIxSp^3ZC##dtq!*y%l^2#!lz8RHkAS{Dc9xEfKsCM!7WcBkk%DJ>j$cr$%L zw2MiT`(sr#+b8;soF-(UT2mn!dlSvjPGmu6sBJ#t+8HLl7;7T?3HWT!d-kt9T1wU? z!fG17C4Aq?U_OUSGmfWfa^7W0o8(+gq5p^Xr{%5#zB2 zQHw%|s^9sk4!f>k9d*NY2&e|B?H(uy~lk+&Q!9(lTzV2Yt5GJavd0(c>C`vgKzzN9QQ zt3XQ2#X1?C;e0kq+Bf=cZzFgfc*Husfi45X5P%DhJ=Od2h}9MNCHSg`2M5}X=a*@G z!%$V2V&yDK0yBlgPjbBpnC)HTF3_dIPVjGnZF6>>$PUMN=0=)dYu@cfE3*upW<(oj z9B^*Nb7qW{r8CA-G*$XR(3Uh`6fmdGuSJYlH=qmw*i@us!cJE85H6Zp&-A2(P390B z)6jJoYpp4}eQP}t)mZ>CmR~kGrVpvPx?;OKkGk=bh37KPAAU8)f$Zx@6hliqK zj%s9j&1D&sICPoN;35$Y({9C(n)EdiWfmf42nTELQY-regNS-bLAi?-ByISPGg0Yq zd5J5OVAL0!4CT*%rMwjYsS8?)idB^+(CkFShRXeLK~>|y)VPWUDo#$7tG%rIk788x%!fd} zxNcy=1bK!cxIpYwJ2|K@JRT(<_fmGanagsP;}x>Kk89*(Qf}3S0K>0p2$zqY{1uTn zyr$YOl%J!wt!Nw1D4@9&{B;FAWUhY}z*(6jwCFti!+M7U6TH0US1bGntq)(R{}C=+ zWdxLOpd(c2r6emNK^#77s+%BZXsVJQDxBjx9J0dglEl6@#I#hy?X%^M7dpXq%4^yT#Dt~UaW$q> zS&)-)!pKAvwG@bex>Z0?0cRJvoGr=4*sG1EKI};Xu3WcI92sm12B@mZgUaV?3t>9N zlI_l^UJn@=hi=3b;;I_3@Xdf#om>)$;G&t)T7LFR2*M(vG*obpT8?=lgzi0&+z-Cu z)}3bjmY&{naAcgl1$yDrYCbZhGF04tgLYKV!0jHUe=%rUI3~6mO~7IQP81Z)7Xq_1 z{*7b38mc9&#w59!;9fKzEb9BiIcLmJZrz%+T#sjrT}6Uar!hf#g$?QCh?E>-=xe5b zpaW&uwqiMr+kol{c5iXq;J3}eKr1tNXq^zRL2S$EI1#5Zyw34kXKs0xA^CUu8s`}& zPy)CipC#xv623d&pkdEU1#m6;E*%B`=)a!dy7X8QNNc(qSBpLFcPlE^_4lYSlX;H9(!gCRs<4d#hvt%16D zbhtSf)zZHm*6Z@+fJDV9F-`}byKbJ?oM&R;AEaBRn0*g0Xnb&WQ>T*XB-p*|I;VVH ztji;qAy|{gsXL>ZWW}dM^=&eu0;#)ZP<21{uvGvOCEp-7f)NxTV=>p}mQCnSO2zuc zcwa!&$U6QF2m#)q^Oo)3zp<64|Mt0o))Zp)vcK^5a^-w-}W z#(%<{qEoG(sfmOcTeg2Yp4_v>CLI{OyW8jpb0{Lj^ebu_0kKchWTku0RNIa1KJB>< zC1ppB`as#ymi0o)K(hvI#FIJW*YmJPHhnFKoSQUk@kanC1eL@yB|1a%OMrsfkuK`S z9@Qw#Wy)7z3I%UI843^JF)*|G(8!7e?5NmtnfMs4XMUa3U1s~H}3lpDDC_Ek=*?S0^OMe@SRMF@Ql~V!5 z-^L>_%z5wl-EhK#t1sUWM3!);BQ1tN?<}(>Y%NDVhpT?!5S{E+Pv>5etGIH4fnwh3 zQxeagE_S~+n8sWO6pf(-mQ*VP7FT;RaLA<)x=q^yl-=?i1!NvLkrSsW&7_gP_f3?| zvaZa4CocCGz)nr{>#(qJ0%!9EX_Z0I-%FiXmW*|`El;uKijN46Elk z$I?ONDOrTE2HzemO{k$yCd4OrQ3IyZm5aD5cl!VQ1EkO|qQvvlQ9=-~)eW+lE(<0> zbAFURBUY{IXMeUgoETS~NiPDs2w+H-*z^;}XUa3%5B~?lNcO?KD9nJQzW6(M779&4 zek>mXli9~|frkEU@?hl*pv2fB;m(8r4Rw zHrYwR89#cXUCHN5+Fs~Qafdmxt3J_0r4?-Nkt>w)`ZW%`MwJD z`AWCn#uOdcly;~^hX`VP-(48yef{JjoE)UBwx%942c z)^u5y<`u6_IQeI%(X7-dKAT1?CY#sLa)2vmjifU7iW`JH)!QGB;eZZtRnh(~l0-Wb zj?gUQrc>?}fVy7D`*?FHVw7Li{G%-GD!AV4nVA4vl)|o2?p5Q^6SOR}vdVMymG#n& zkOd*Oc%*I>9%thaTw7CW*kh-oG&5-Dp~FU0ChO=?1)oh+GdinokgYVV1$v#}m}3L| zr@8`jH`>?DAX7;M8DhfYpMFD=i1!zwznZ7yv~{}~eWpz3KKz25{!EzSD!21s@WwDE zD-W{@%SeoBCpF_uG(c==#i@gaWRX9Mg$CpdA$5^?q)FCL=r}=pS%fBp2>~{?L%CC! z*JBn{gBlD;#pD-)1wLp9`^nnZ%C8=@n}UQfN`?+40+_Lc1K65PMAa~|j!#b-cUo)W zW}DZ^N+t;T3hxW1$-=eThH}+;E z2zZ1gI8)1?=H=f4NoD#DESW0&rNpNN9?mQ-m+)u1yGR!MYG>V7vRZ&E@UT5U)`OU` zm1je;6=adR+07*!zLEAPI?RoIX0$xYF%9o_QuFtVS<4$7fUA|^I&O|yD7ArP&dMk~ z<9$rZ@ME53kOyrhL++joid9g1WPJ;0s3EGEb`)yWk(VttK}Lgiz4WQA`ZgnjCuPG($~3xz()- zj~`|;UIpU|1$R&n!^~O`uu+=$hZ>lCu$}g_?%X%4i@7^>j%6#S@*U7vGOqoDMe0Uj zoF0Q2qWhFW$fQ2``c?h@Zd%~a6oEfPqDi|wgcVX{4mWEg`S*U(RxON}!mL`;)gY*F z^R3d_(Sw7Wk}|fJYfJ|u&xWTER>!`gD|OMx5y6|mHS;@0k@dtB31$hFf1;C5K$$4F zF8iA0M5G*NCM)H8hGh5->qGU>rSsH>U`HJ>%>aoN;B7~e{~goftc3ClP*vw`B`~)u99oY?XK1F{OdFv>S3}QI9R{pZWilD=w zWm4I5v+^Bf9Z^X@`y&l)*V(~e+BDjWibbOUY(}Wa`OlD|ufN{lsd=-QVP`yQ;1;G5 z309>P!mlv9xytFi#3L9F2(M$iazW^OOZQbC!*E1qy&yLQqev%a|I*A+N!aiKQ zsA(_ABM?DlArUtW!#YJgz+&_cjpYrHWmgr^wVOMt8JG@;8Icu@gXX z48{H&KSQ96Vq2-t+=zh|O6*g)G`KX8SVB!b90rvHcrq=MvCAn;By_UL${aAd7A7I< zN?a`FK--FjAy^^@rb-9*D2a4YB0Dy*(<&JhE7q`|d--D5>0}@W^@tfJk>W8m9Po?p zPH&z?xI>TyG=(zYR_>m>q*?s?qd%lLSV+}+EDPFIM*#|9bDAoA+q+?*JQdKxiDB7R z?(k^Gl778812|VxLzwn71V+Sa`f9?cnpHEu4W!oV!BsUG+T`kVI9{Wtbn7 zy499FIOSZZI+n_yNZNpn%BW31-& zWn)If*>fsiz98mIeG8Apx#hM|E;Bg9WOs$AWDI7w8%sx*EUK2zQR4MYSz^ggt*S>s z3TsHO1TTL{NIq|iJYmAFWB~0xJPro*VPYH2Kdx$49B()B?U6}3gCBiJ32hyotdk}h}2TZpkP7rt0@6Zl_ouW zwsKW!&C;}E`6P4>OCzLpn|FqtXcN9`m*c8gOf?>FK=J1?(*{J`$vxiNm7v+F*42P6D{&Gh9p?X>n5M>=RuqD zg@J+b5^)lk@6oSt(4Tu1X^9L;;UPpc*k-J3DZ~2RP5B{pB25c6O;&i*u(Fs-ainyC z&!g~Ds4*<57-h}XXBK$g6@2;^Dpd(E(e+~BX)D?#&bC%6GK+A_!q*d^`+Eu;cP_TE zS9_h^vUQS)G991N^IPn%X63Y|6td58ZRKSsr%zJX58j;dAHd zUjPfs^riIv>DcE^k}+X>9+P}$t(wxrizb)F{Buth+D5$;eIz9VsMg;|vZq?`-L2tp z)UiN#Y@^6!3hQ3M(NMa_mx)+?B6pb4{1AOEaw16JsclrPiMlmcHIkvU*%Dd$0YX~t zDx1`CK#T-!Z@xlh z7hepAT@SJbeL9+q5)rySrO)C%6{(;>BHpJH?&iUMNm+E6zuI?>*mX-~7m0lX)_GW|F-o?_@vw{iJR! z6S2oQF~g-%K}w_Dk8%YS*lxu;GE4rpw7THXdKu&nD}212&gxHScQ2SC%R_ zL3CuS2r^domT}UoRhk8SWaFT=!=)5eBEjZ8R}$I0Z|HDJY9V3ZQ>5C0QBM%fulFq+ z%)1*OAC!60yBZY(yKr8Bt;R3DNPK(?AIx1i!_3&(LZ7@2W~VEWQpb$X7&As}GZe13 z%|*82_uGWXvu<3MybkJn5kl{!n3yn0_J4X@!iSETpDGb@yR00Nl1p?U=-8+OcqD~V zF<>ehz1a%`j9wZFL9)DdjmvI@IW6nZI`VXIJ#(0K#GKPHQDMkH;Vsys{Tq8ta>D9x zO4M4ZD>cFtHr@lsO+>Gs;;1VN+<^qSVd261k&3 z^7zC0Q3^&lMv40gKv{d{5k#6vnM=W5&M;9oi(WqU5ua*+uA?%JmCxvwek1kAq1=|1 zpEm0f$TK=vcj|lrf~Ckmc{d;qNMbBj(U4lT=40e)Y`&QjO+t$4L)Hri*y@fXf_q5E zf*U~7Y;^ZZvent-CvmM*hiMKkveGxo4SW_xmwj14Z?wxjZ&&i}53WMnzWaz?)JB&N zi@dZ^3!+B^j>(t}>7uD(-m^>%@0!ilyRhJ+8#D#P|41XfVa&C z{aoxK8#U$C%huGJ$j^XMW6C29pF7GRelM9oZzDPeWPM3jazzq{3fs@-dTWLFPQ|cF z54@`{NwPW#W%b*;A#}>+>9?}Dd8_lu24YY$s@&=6f#-!CAQ_Sot!l~fI|u1mC9NxR zMPa5EXXMh3F7CbtOzczs>WVpC#hui#ga(ArsuZGmQ>)sD3kAOhO&?x{6iQ&xz4rT` z{KzpuK-=>1^N;j2UO$Si@$o7Hc%*cB$FASM^zJ>ACfF?zCVINcnMl2un!}d3m0(A-{3h;=v5IibQ*sdg5BjftN5IL-{o(w9>YVV1Wz%>&4D&(h(`=;6 z{2Fv$WHJbUnvg)DiaQot>NnR55gkYHjZyZYH+wkbbC8CdQ7CKge3O&H7I#Yt+ieDs zuBgH0L%s!%WtXz3baM^7@rxe`o~y>Gp!7ntld4?}5b`Be zwFSn;=_!PlD7op>jt7FE%fK}7VD>z$D|Gng5=4d+Z5zVZvn@Ykjn+Z_yyf#2ucW54 zJKo>%<+qsgE1OJC_swy7Ex_z((qmC#@biW4$>W7?VTt!2?;#Uf{pjU`Q)l#^*`tN> zeXV~yUFs9hNHMA8qi*2`s-G_Xx?;keJIg>iOq~<7&&fsaoo!qnRh*QPQG~S?Yacc= z$PF)Gq64Hfi|0d(vk_O6ftkM2ZAXp+uQi+j)TdOIS(JOSQC2#2pKLk{`IN+(K&G0~ zAndLI&@eTfrL3=5KKojo4gG7u#l%e%71SNoK=5Y#hptWnb2_K77TfylMy=7~<#8Z% zgc0@ir-xz`piY0mV9@961@%4%HKWTcq{OM6}2# zSwAzTp79R~9v<&G*V(aKkwfJb;e=ZZ$59zt-bDTjb<=-S{x^}#OtNp{FY-?0Yr ztf+Tj`&S+zc)MR#wTJl5sSYp%G=Biu61sa}iKd^rh+i6`vNhsy=S%3xPGF7IH|?Y= z)9uuL@WDsZ&LDMItVFm^+zKEDFF##$T6)W@!)})Wwjx zdKNCs1?dVf{UrZPpB3tWy}C93$qY^|-y7g1T5SO>1o0Eji6}0t8mwXbxn>cF{6?Sc z17)Z7S5To@5?wJq1sKz%=p_RCKI$2TK93^n!F|UaPmhW()yxVuO`3#0TK-lD0u~9dS$+t#<{k*O$ ztu#^MH^kF2Dx*u^PaW^wOl_rAN0=Wtxe1Gb={5H>X}p#@A34PdCfzjytrL4!?jJua zA`*pBQ3?qlWv2C*6;drDHRpy@)LFw~7N;5<=5H6FrMAQrf3Xc*)LK^pU1WYjry9g~TfQ z7Y{(yOCNXJEw7+E4xnoqM&}PeZv#H^I;H72P9@Ea_zM&=u&IDuAG@=m;Ms5= z9e->~d;a5h{cL}fcx`1of@MMjSxz~P-IA6{_b*Zc)5@o(iU_sG{wiGce#fRwZ>R!e zBoLE7FINXMY{q1F(lrm(5*(b-EKwWJ99+DYq8Z1^ILe9V|9+gC=AqOq;}4%b#kcB*`QSra$nqnRpU z{C#Q*BGume)4;_cR(80f!HS=@IL7C22~TkOSR#2h*hBhR0X)RS4#^F>8V|4{8A`-t zHXS-Z&(2bfJMea%biIz5+s3JkaeU%lS^v)O&ME#{g?;NxHIbo9L}{@Q>bh-j2C$hn z-#FvKmv5@o(0(-kdQDLE-ZB1ZR_NjWbgT}h*D>swJ38sdvF@d;WCK}y&PD-AQjPg- ze)N2Vb9OaAe5)S}y13l`$3b#hqlAYog=B}jXZ11jF)-mtxd?c!j8nZfAD-4*qQwGY z9yH98w4iAfc1gArD-YL3UVlG<=kyoeH7w{|C-m4J6C@WZZn@AVy`hpR5 zO;iD7C9sSOWR>TA)zDY^W}!k1j#pa^jjL=pqTyo!LU$)0o%tOzQ(KsCM$Zpg5a`sS zz^?L$KD+bE_-286(e)C|X^XKh1^v`4!g-wsji~29{I;pPQG{dCxZzrA=JDBuMGmXj z=)G1n?wwQ29pd%v2ujAG1C|d#6QkI{3xPSjHPH9a29tS+MbrD)1iRuyI)U#Ai{H|C zv*lyOS1e2i95qZd%ZCgDoc7~!l zo4{JLfOt^A*{z3xEKQ!{JJD#8yiwsMspxdWMXy+u#B9TJ8w8r?_WJw4*h7EHB;}Q} zaY+qcFTQ)n%*sWAYyJn8m=dtA6o#cf0tJXhbHA~kx*E2P$+SwAy z(45@VIDguq94|N+f^kX*;|R#(`&`Evepn;iss5e;O&W4;3tJ$HvxQz_Ytm7SWSbdN}U61_l_mAJrA#usKdAC^o6Yfo11Dj%Gr>(B&=ds#f` z_IKo5NsKp&j=Xyz$PdoE(P(%mdtk*D72lR1WK28F3Nm87zEH;4E%&3Q%t~B+KMZD; z;b1yUtv>GukNZj+!g1~@kw4~*7h4v6dg&pyc$n^_5C>Vm2(gK0^1YHJUS1zKsvsU` zfL(qKUcvksNFP6Ulpw}739k)}_qFk@135tDd_Emvq)Ze6cpGIMgqLRBNy4G-ZmQLr zNI}SVOgoC}NbbPL%bTsybL!Q(5yChINvsfS3O_xLE7cx3Y#haivCnFtzs-G56SeTc za_1YzUJXgFJG~gj^%I%3KgA?)7DFqFF^qd@y!=t+yJ7zu&tZ3iyBD2yC41>z1yo$~ zY;20kTF0n^f$BMDrt}K7x# zP&l~4qb(CRw~~LpTb&`#LGHYe0p~}463B-{n_cWSn+(b#<(?5uik3Hfck&p-u;!lR zEf5%IAw63rjU18!nC0!0c5{b~oN;$d0}VpsU%R9$PTptQrDdsAic2k zN2i)?Dgj?0e*LqLhh7=VfD!;WQ~bMNG9KxFiY?$YI37^%lU>YqYmDg2g7zW%6}{sN zUWT(IHWRBa5#e%{ybfs)su0bj1ChY-x0t61oxSKL;ET=60QX)e9&`RnBk)I+_XGZM z^nh90)0m%EMs0fr&meEU0^z2sfXTI=!xgB-w~=jr{}G5NuATJm z%V=Y>#tK}IOg;7UzF|}N$bP|cANjVr-*mI-+xmo--NcYaQ`>H{`%l=D^>&Y}aJLJs zEK0^Mp#Eq`&QhyQdU@yg%;fHz2`~2Z;=!&G-^Gn<{`eZ6!(^dLw)^63)@WN0?6K=o zSlc?UCojJ)&X=`y-KKtP9zT!QX`b<~5uQILYANoVj|{=A>Y2mtqP8& zYWSC$>a}mBo6o~P?lVocdl$Tp37*fh5k+h$!*$4_agzDM&wMMU+K8|- zc23(^1uP)B(%yBwJT6EvBKX>%S}(YLZhAV=?-}J@`Y2D#Jvm_ufe$|2CqGbcr%doQ z03j8)HP8lX5;9$L+l|D|jyK5md&WZG!Yq6r{5Oywp@zrEJwJE3V&K7>+V=r7C zYfHxd+bi}5vLvHjrybHH478lcL!H&0@z0rZ$fRF@UujDO<^54^1MRx(a^5taoZc=x zidgE8r96CWyf=AzQb&OUut7Gm4C#EV>{#`$aRC_+(W`eCzf(o-hW_ zjkQUWoFgwG$n^fXEaarg2E z5U5h)p?Y?$MKQm~<`F<+--(N4O`bI^`JGEaGqE9kQX4XnGQRucNcPdg#cuXW9Xa<7 z_mHw4h|+&eo!^^rgm6{_^#r2(VpdAp`|*l|5nix5kHzGG_Jnx2Vpr9)$yT)Nw2X!@ zsSA0{(ZFu+LgD;lYTg#VbwcI~1vqR25Mq$rOcwqTiKQz+F;~M$R`WFKBb`;V69KLC z&{*%fNhc{Q_&5?_MogkiSYBlq&&~MCjI;1P>0~Ob8>Q_b8m+tBDViZeBLnjMM5CV_6tHP%r6`k= z7aN{G(Lqs6=bOs#&a~t3l--n@v(RQ$g6By@5D=XcA}HSPZqbe)PV-sxp{Iphi9vTv zg3;TORAMn0Jj4EnE0S+0i`LR07&+?9%w=AX%T!OSlJ4kW0FGdgG1bTq1_~}2DG==%)}=Vh65Ey1?fMrtaw1SM}^QEjADlTnC{ zY3k{Dh2>F_f0M2)VFUKXjFzFbz;jUeMSiB{eEbs9)f_ym^>)CzryJ#D^bnGS2O^TY zFQi<%wO*pg9wY>G-f{0hmpnm_dt0TDE1uqyoZ*fWI;Ly&6V4 z1E+U@P%`hxl1vKuoQDalhkB3MJLOwFZ zmJE?wgFFPhHaj`2OU)r~x6xr+T<)AUi{oOo?^QD~V^?t)llMJdBvdWml9;y?E9ds{ zMSkY}{x!>xBfo)#P6w-Zb~OoNDD{F|)|CUbC~&GuWmyzEWHfAGh0bm|{Jm=fEP-r` zRpxgK_E3OOoV*N>d0LlGPf)lTLDh0-U|a_03imOlLuw-J>{gYYrTjX6mpq>Piyqh~6NeMXqS+oUI{UkP(`EO5kA( zDEC_C7@SBjYRnW5VAsuha8v0$_sf^mlgmYstOu2Apc%6J(G4tQYeZThf{3ot zL%x9gG9;5+4iQCpH$-jjQTY6~Q7VfP7t@7sGP2=GULRZ{MZ%x;hb&CHqXS5UlI`){ zKA1l92{5%l4Gfyh$LIUPfcS$(%#gQr@TQKrWC-YA3i|_bZ}ysq6zdMCysU+@j3L83 zdFc8NJ@JRfzZ|oxZXk4w49-kwF`oX&UE~X?BKeLh@_EHb0Kle0s*Ab_&|ac81s5sO zzy5G7I2g-{!ji#~c3(x3S&54ieJ^JOg;ekRtT7D(1nX|uhU|91F3VN8W)L`Gmu!5m zU<3I>Pe++t@yZ}u9AXB;@sxd}2r=#9d`5R#WuptNg44yG@H1(C5pfi}2X_dDUP!0l z#zZX`IqX)=^;M$+ZAq#&8y3KNI)l$e%mbHK>C!@@RCaaBS6)I9Hxk3ezk( z7HgARqr=wB?MH*f($V5F1bH1P=`|J1>9ctPoTTD`ol>}|{w|W*MO>1(tr)BqQZi85 zbPrKlpQEx>pRK*)K{~LEHj!y+Kk2 zw$u&t?(>`!jAUv2=PB&%aXLuPK76%mR=E_15ho%uEVwTV2Ig9eYz4Gv)FdlvB5&F8 zfSgV>mIFt<4P`)*U3qY5hm@T_E3T=ha+gSr_PDi9O$?M_KH00YgKlvg@fO!mU zJL~snXX_uBw@LElAs9g;pFJIvDwF$Xx67c!xnDU4h*-?E+U&$*hc_ht5?=ZR?&qGAYAqwPzr1Xp~XVcF0=|;Vpp*{(&%YMChW|HpRbM4-)Pyl1lyzd&Pg^JFnGJ#noKxh+t#*@ z6m!SZVFX7Uy)w5EjjO{sC*p6v2qb?=)eo&o_w|F2By`8LD9-OXC~MJc(Y7T%Quv?1hYOQ&QM zLgtA_aFz}m`QZw;{Gf};CK)}wHwPBX$KhDWSS}cyL>kNJROQf;E=GP^{9U}Wh2qg= zF$=`j@*W$0IADTom!-m#5s0`O?nH<}H)3fGBw)9k%dEPoR(S4Ws{9^cZi;rcd zPOM2n#93|pWja78k{ejB)LI--7qsuHYHrPoyMJ9LL4@F_Os@1Cv%lrs%hkN#AtM{4 zi@3PW&&@2`Dr}`$cY0`&J zlTynZ8N4@aOYo-fB`R{v?t?_E6Zp%b(#e<8LMDKF+ODq+4p%@mF6fnBxCoOTThy=9 zMSw+Ib9izX%gombPS{w8@H?)Zh3*N|4pxgR+nj2~H?CMz1W@y4mN>pQjWZ3iT`8-j z!Or=Iws{P)()YWWe9a_SJ0Y0 zFr}qaDfC=x2h>3Ki5!Yybsn+4tj`{ci3|IMtoY{_dLp^prPjuoTOsl{u~WT0MHT6n zhA2CnIhiM)df@9fTV&3$pbt1t?>KpQ{8mCfc@a>!E;7!KYH{1Wa}w3O6pT!nZVBCU zTZ<&)aWm)_)!fruYEJ1g7*rvJ-L4wp(3szoq}$xFRmKNGY#$VDT`pbqa!pDE?Q1Bm zD$S78TXM1uot9-W1XZS?z-Sa%+?)!AzVWZmAAc%Em3D{r>+A_=>^mQ!eJRY@S*ys! zHSEr>2J=}8;&x~GF25w_4*%-NcqkI!t}4$fzk4ISPFFglA4BVCD{%Wp=}g@NRkxn` zz;k;1&E{JfOmJyo~{-gtLHX?tV}pT;%fxa+sF@MU6KBz6q}pFLue_!18b zTnn#1r9L#1%%tGihkXAlYEKUgWle0pW$ab?45dc2( z2OHa(LA8j7lT8zuFE@1&5By#EQ1qBI+g}jCO5VnwHX3q8I92gJ5{R;(iuWc6I4l&% z?9(CVc8oE7#q2y0$jI6lPgTtE#teG#KgkIZ2w#|v3%PyECA2y`w1x(ApZuX1 z3V-JaERp^e)VEs|3vs!p%JDp4X%Ftb*<%NF$R+>NqaMjlo78F7gNJD8VnaZ_FprB* zi%@342x|bxL<~|93UrUZ>(QQOVK(vA@+J&@1~-OVyqiLK0BSf7vj^#+7g~dkN3yPLeEiht!mmNn%rx*+baSlTra)ZvzI5|RGIN1u=8wY=@d$zG1u>( z`G_cs^UShQkhrT(xtQWt+ess%X5$8*v;PM6!(uk0MnWEKchZfD-utP?)8ZHO_D0&v z>Ol|lJ5TtdG=%ivDC_|${#)hb$;zp@YoMm~+d-4wTR+*LPr>UuyFRGSEH<15o$zmg z^m02DWMp6)o&r2NM8Z!I5EHqItbBmztEFp~toiCbFwvOO=hCsW7z zwm3PRZ(zj}FjdwEg@Ci69QY1(fryA?aa==l7(--*d4+p)8{P{G7A}P2>Ft}J=-(i# z?{wZ~x|Tz{gA5~=RO#YUJ{OetE|m}f9x_9N5tK4KZ~{RuR5iN5x&pXrgL=ifY#$!a zJ0vj8)9VGU>5ML;GhSn>9jBvK0x#+&cfVq-1$GRz2S4iXsPdOg>Cr)X8WRvC!_ETgbv7)CQ&@DZF%QFn$hM* ztFYbyeK~&tgbUHQN?@0#GCRg0Z;<66$cEx*ZWTH+gi^lAZ-q6vzH$NG)@`B>4aU_v z7s0}v=IY@(G)N8}(ag$K+aAR2vZEH+ovNl zB1JD60Fd_XpGmP_nx4RquU%dEGQn`bxmZ#bz$74lE%;CUD;En>;)ie&P|Pzv*6+oy zvuBXZuS-*f*1++bHjcrL&>)-t$3y%omkn44$4teG14pB-XJThjlN^%)1C3!!UqoR9 zuDa@Bz@tS)y=nO!j&E})`>#GROiesv;4m1em22SejK7-0ScB*tu3lfrdacZTox}TQ z6a?^(f&bN3=CuXQyWddW{Yn=UE&xz34gmam*Z+-zfUxnuq1RqC^uHkj&5w*PuWO#Z z8XjK{%0HtZV1Ms#=(SG`#cv3%n!C#i5dc_z75LNrg8%>p0XzqPL$5t-Xn#Zhw*LPa z-t+a}(63%LsrpOch`-5yOVw%r*xbqE-{fo80Gi*B{oViDwf~IqQWD}=wGUt-SGoT>kA?cbWJKfyOBe}Sp54!!@J?SG4B{)Bok{)S!+ zSO0ufpY?-Y<~Jr9nHoTU4&6@KRptkm)~ za72b*$wNQw@dG#(0MPjQ(fc!?`#-VY+2waUzd74Y{`l$F1eNf*>wm_h;rz$ue&-)5 thF_WIpDgkk|LYg>pHUD14E-1L-_(SS0R{bQ6{Xh)HXZ=*___`N@PDMUOl1H7 delta 40 scmZ2^gzwq`?uHh|Eldt)w*PBmW)cx$Wn%yW8z5v7VPLR3!vy3302b*9@c;k- From a145248fcbd5c6a2a162fa24015aeabec2a5f0df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 07:44:53 +0000 Subject: [PATCH 062/201] build(deps): bump org.glassfish.jaxb:jaxb-runtime from 2.3.2 to 4.0.5 Bumps org.glassfish.jaxb:jaxb-runtime from 2.3.2 to 4.0.5. --- updated-dependencies: - dependency-name: org.glassfish.jaxb:jaxb-runtime dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- common-tools/clas-io/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index b280f00d0..1e2eaca44 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -32,7 +32,7 @@ org.glassfish.jaxb jaxb-runtime - 2.3.2 + 4.0.5 From 3ab639cfc7703bb3c70231524667eaf7f9688422 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 07:44:51 +0000 Subject: [PATCH 063/201] build(deps): bump jakarta.xml.bind:jakarta.xml.bind-api Bumps [jakarta.xml.bind:jakarta.xml.bind-api](https://github.com/jakartaee/jaxb-api) from 2.3.2 to 4.0.2. - [Release notes](https://github.com/jakartaee/jaxb-api/releases) - [Commits](https://github.com/jakartaee/jaxb-api/compare/2.3.2...4.0.2) --- updated-dependencies: - dependency-name: jakarta.xml.bind:jakarta.xml.bind-api dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- common-tools/clas-io/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 1e2eaca44..38734afaf 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -25,7 +25,7 @@ jakarta.xml.bind jakarta.xml.bind-api - 2.3.2 + 4.0.2 From f3c6b7cfc5d9c7e2943e7b08ae34fd6e673ce91d Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 14 Jun 2024 16:22:47 -0400 Subject: [PATCH 064/201] add required dependencies for Java 11+ --- common-tools/clas-io/pom.xml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 38734afaf..71a6f5b67 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -34,7 +34,20 @@ jaxb-runtime 4.0.5 - + + + + jakarta.xml.bind + jakarta.xml.bind-api + 4.0.0 + + + com.sun.xml.bind + jaxb-impl + 4.0.0 + runtime + + org.jlab.coda jevio From 4bee5ecfe3caab5b98b8bccbbb2d02b2b5fc4aca Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 14 Jun 2024 16:31:57 -0400 Subject: [PATCH 065/201] roll back --- common-tools/clas-io/pom.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 71a6f5b67..c8b476f4d 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -37,17 +37,17 @@ - jakarta.xml.bind - jakarta.xml.bind-api - 4.0.0 + jakarta.xml.bind + jakarta.xml.bind-api + 2.3.3 - com.sun.xml.bind - jaxb-impl - 4.0.0 - runtime + com.sun.xml.bind + jaxb-impl + 2.3.3 + runtime - + org.jlab.coda jevio From c56fb7a53d47f2832fff46340195507dcb06d213 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 07:30:59 +0000 Subject: [PATCH 066/201] build(deps): bump org.jacoco:jacoco-maven-plugin from 0.8.10 to 0.8.12 Bumps [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.10 to 0.8.12. - [Release notes](https://github.com/jacoco/jacoco/releases) - [Commits](https://github.com/jacoco/jacoco/compare/v0.8.10...v0.8.12) --- updated-dependencies: - dependency-name: org.jacoco:jacoco-maven-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- parent/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/parent/pom.xml b/parent/pom.xml index 4f1985b3b..4114e9ecb 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -43,7 +43,7 @@ org.jacoco jacoco-maven-plugin - 0.8.10 + 0.8.12 @@ -124,7 +124,7 @@ org.jacoco jacoco-maven-plugin - 0.8.10 + 0.8.12 From fe384e495d0d4e9e0a4b6e044413510220977ff2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 07:31:01 +0000 Subject: [PATCH 067/201] build(deps): bump org.apache.commons:commons-text from 1.11.0 to 1.12.0 Bumps org.apache.commons:commons-text from 1.11.0 to 1.12.0. --- updated-dependencies: - dependency-name: org.apache.commons:commons-text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- common-tools/clara-io/pom.xml | 2 +- common-tools/clas-utils/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index 75b8b9b76..2ba419a4f 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -61,7 +61,7 @@ org.apache.commons commons-text - 1.11.0 + 1.12.0 diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index 40dbed05d..1f048894e 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -22,7 +22,7 @@ org.apache.commons commons-text - 1.11.0 + 1.12.0 org.apache.commons From a7c5035423c53934b8973149dce4ba065fbcf50d Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 20 Jun 2024 16:55:23 -0400 Subject: [PATCH 068/201] version bump --- common-tools/clara-io/pom.xml | 4 ++-- common-tools/clas-analysis/pom.xml | 20 ++++++++--------- common-tools/clas-detector/pom.xml | 10 ++++----- common-tools/clas-geometry/pom.xml | 4 ++-- common-tools/clas-io/pom.xml | 8 +++---- common-tools/clas-jcsg/pom.xml | 8 +++---- common-tools/clas-logging/pom.xml | 4 ++-- common-tools/clas-math/pom.xml | 4 ++-- common-tools/clas-physics/pom.xml | 4 ++-- common-tools/clas-reco/pom.xml | 16 +++++++------- common-tools/clas-tracking/pom.xml | 6 +++--- common-tools/clas-utils/pom.xml | 6 +++--- common-tools/cnuphys/magfield/pom.xml | 2 +- common-tools/cnuphys/swimmer/pom.xml | 2 +- common-tools/coat-lib/deployDistribution.sh | 2 +- common-tools/coat-lib/pom.xml | 24 ++++++++++----------- common-tools/parent/pom.xml | 2 +- common-tools/pom.xml | 4 ++-- common-tools/swim-tools/pom.xml | 6 +++--- parent/pom.xml | 2 +- pom.xml | 4 ++-- reconstruction/alert/pom.xml | 10 ++++----- reconstruction/band/pom.xml | 4 ++-- reconstruction/cnd/pom.xml | 2 +- reconstruction/cvt/pom.xml | 6 +++--- reconstruction/dc/pom.xml | 14 ++++++------ reconstruction/eb/pom.xml | 10 ++++----- reconstruction/ec/pom.xml | 6 +++--- reconstruction/fmt/pom.xml | 6 +++--- reconstruction/ft/pom.xml | 4 ++-- reconstruction/htcc/pom.xml | 4 ++-- reconstruction/ltcc/pom.xml | 4 ++-- reconstruction/mc/pom.xml | 4 ++-- reconstruction/mltn/pom.xml | 6 +++--- reconstruction/pom.xml | 4 ++-- reconstruction/raster/pom.xml | 4 ++-- reconstruction/rich/pom.xml | 6 +++--- reconstruction/rtpc/pom.xml | 6 +++--- reconstruction/swaps/pom.xml | 8 +++---- reconstruction/tof/pom.xml | 4 ++-- reconstruction/urwell/pom.xml | 6 +++--- reconstruction/vtx/pom.xml | 6 +++--- 42 files changed, 133 insertions(+), 133 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index 2ba419a4f..8a20d4694 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clara-io - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml index 606802087..ec397899a 100644 --- a/common-tools/clas-analysis/pom.xml +++ b/common-tools/clas-analysis/pom.xml @@ -3,63 +3,63 @@ 4.0.0 org.jlab.clas clas-analysis - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-utils - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-physics - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-io - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-geometry - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas swim-tools - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-detector - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml index 79525115f..a248a3824 100644 --- a/common-tools/clas-detector/pom.xml +++ b/common-tools/clas-detector/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-detector - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-utils - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -29,13 +29,13 @@ org.jlab.clas clas-io - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-geometry - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index 0828d4822..0335aabb7 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-geometry - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index c8b476f4d..7c64d3c22 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-io - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -100,13 +100,13 @@ org.jlab.clas clas-utils - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-logging - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT compile diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index 2ef10f56a..42d34049c 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-jcsg - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -27,12 +27,12 @@ org.jlab.clas clas-geometry - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-detector - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT java3d diff --git a/common-tools/clas-logging/pom.xml b/common-tools/clas-logging/pom.xml index b3220df01..578c10ff8 100644 --- a/common-tools/clas-logging/pom.xml +++ b/common-tools/clas-logging/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-logging - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml index df0658d47..b19ce93ef 100644 --- a/common-tools/clas-math/pom.xml +++ b/common-tools/clas-math/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-math - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml index f7de3f2f8..8f9b0fc16 100644 --- a/common-tools/clas-physics/pom.xml +++ b/common-tools/clas-physics/pom.xml @@ -4,14 +4,14 @@ org.jlab.clas clas-physics - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml index c42e1931f..01fdab690 100644 --- a/common-tools/clas-reco/pom.xml +++ b/common-tools/clas-reco/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -42,37 +42,37 @@ org.jlab.clas clas-math - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-io - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-logging - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-physics - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-utils - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-detector - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index 06216ff63..e70be6027 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-tracking - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -22,7 +22,7 @@ org.jlab.clas swim-tools - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index 1f048894e..cbbd5b7ae 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-utils - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-logging - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.apache.commons diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml index 5d3fcdfb4..186ad3a2d 100644 --- a/common-tools/cnuphys/magfield/pom.xml +++ b/common-tools/cnuphys/magfield/pom.xml @@ -23,7 +23,7 @@ org.jlab.clas clas-math - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml index 3710926a8..15e04cdb1 100644 --- a/common-tools/cnuphys/swimmer/pom.xml +++ b/common-tools/cnuphys/swimmer/pom.xml @@ -35,7 +35,7 @@ org.jlab.clas clas-math - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/coat-lib/deployDistribution.sh b/common-tools/coat-lib/deployDistribution.sh index cc16fed27..d240b8718 100755 --- a/common-tools/coat-lib/deployDistribution.sh +++ b/common-tools/coat-lib/deployDistribution.sh @@ -8,7 +8,7 @@ cd `dirname $0` # Script is exporting existing Jar files to repository #------------------------------------------------------------------------------------------------- -VERSION=10.1.1 +VERSION=10.1.2 mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -Dfile=target/coat-libs-${VERSION}-SNAPSHOT.jar \ diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index 26d8ce4eb..2c6445333 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jlab.clas coat-libs - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT pom @@ -93,67 +93,67 @@ org.jlab.clas clas-io - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clara-io - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-utils - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-detector - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-analysis - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-geometry - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-physics - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas swim-tools - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-tracking - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index c3b326390..a596f94e0 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas common-tools - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT pom diff --git a/common-tools/pom.xml b/common-tools/pom.xml index a98298d6d..6da86be8b 100644 --- a/common-tools/pom.xml +++ b/common-tools/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas common-tools - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml index f4abd013f..029b1eae6 100644 --- a/common-tools/swim-tools/pom.xml +++ b/common-tools/swim-tools/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas swim-tools - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/parent/pom.xml b/parent/pom.xml index 4114e9ecb..b21673e2d 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas clas12rec - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index 0f9a32e25..cd341cc8e 100644 --- a/pom.xml +++ b/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas clas12 - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT pom org.jlab.clas clas12rec parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml index 11accf88e..d0a2a6a53 100644 --- a/reconstruction/alert/pom.xml +++ b/reconstruction/alert/pom.xml @@ -13,31 +13,31 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-io - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT compile org.jlab.clas clas-tracking - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT compile org.jlab.clas clas-geometry - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT compile diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml index 194b13d89..2da190fe4 100644 --- a/reconstruction/band/pom.xml +++ b/reconstruction/band/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml index 5d06d8487..b8a574589 100644 --- a/reconstruction/cnd/pom.xml +++ b/reconstruction/cnd/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml index 98a0e301a..1016c6e1c 100644 --- a/reconstruction/cvt/pom.xml +++ b/reconstruction/cvt/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -47,7 +47,7 @@ org.jlab.clas clas-tracking - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index c60789948..6eb3261dd 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -28,25 +28,25 @@ org.jlab.clas clas-tracking - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-analysis - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -75,13 +75,13 @@ org.jlab.clas swim-tools - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-math - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml index 2ac2bd5a6..30c6bdca3 100644 --- a/reconstruction/eb/pom.xml +++ b/reconstruction/eb/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,25 +21,25 @@ org.jlab.clas clas-utils - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-io - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-analysis - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml index 8f8155a63..84ee2af3b 100644 --- a/reconstruction/ec/pom.xml +++ b/reconstruction/ec/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-analysis - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml index b6273f1a0..3d9f9ae16 100644 --- a/reconstruction/fmt/pom.xml +++ b/reconstruction/fmt/pom.xml @@ -15,21 +15,21 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas swim-tools - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml index 5c70b0eb2..0779e8811 100644 --- a/reconstruction/ft/pom.xml +++ b/reconstruction/ft/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml index 33e728300..bcedb567a 100644 --- a/reconstruction/htcc/pom.xml +++ b/reconstruction/htcc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml index 01bddfb54..c3e594e71 100644 --- a/reconstruction/ltcc/pom.xml +++ b/reconstruction/ltcc/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml index 0822968d7..ed56bd8c4 100644 --- a/reconstruction/mc/pom.xml +++ b/reconstruction/mc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml index c99d7c60d..6f50ff2e0 100644 --- a/reconstruction/mltn/pom.xml +++ b/reconstruction/mltn/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -34,13 +34,13 @@ org.jlab.clas clas-io - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index 03f586099..0e2c556c9 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -3,14 +3,14 @@ org.jlab.clas reconstruction - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml index cda1241f5..cce67f303 100644 --- a/reconstruction/raster/pom.xml +++ b/reconstruction/raster/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml index eff53f952..34219bb0a 100644 --- a/reconstruction/rich/pom.xml +++ b/reconstruction/rich/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml index 1cb9052c0..af7e9b915 100644 --- a/reconstruction/rtpc/pom.xml +++ b/reconstruction/rtpc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,12 +21,12 @@ org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-tracking - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT compile diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml index 685d76ceb..ffc95ac2e 100644 --- a/reconstruction/swaps/pom.xml +++ b/reconstruction/swaps/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-detector - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-io - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-reco - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml index e1213fdbd..7ead27814 100644 --- a/reconstruction/tof/pom.xml +++ b/reconstruction/tof/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/urwell/pom.xml b/reconstruction/urwell/pom.xml index a57ea180b..305b17164 100644 --- a/reconstruction/urwell/pom.xml +++ b/reconstruction/urwell/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT org.jlab.clas clas-analysis - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml index b9471888b..4b48f471b 100644 --- a/reconstruction/vtx/pom.xml +++ b/reconstruction/vtx/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT @@ -33,13 +33,13 @@ org.jlab.clas swim-tools - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar org.jlab.clas clas-tracking - 10.1.1-SNAPSHOT + 10.1.2-SNAPSHOT jar From cd96410511369152ef1a401b55bb770455b449f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 08:01:13 +0000 Subject: [PATCH 069/201] build(deps): bump org.apache.maven.plugins:maven-javadoc-plugin Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.6.3 to 3.7.0. - [Release notes](https://github.com/apache/maven-javadoc-plugin/releases) - [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.6.3...maven-javadoc-plugin-3.7.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-javadoc-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parent/pom.xml b/parent/pom.xml index b21673e2d..1d5670718 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -71,7 +71,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.6.3 + 3.7.0 coatjavadocs coatjavadocs From db256ded268b1cf37a1f51257c6982d95fae15f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 08:01:20 +0000 Subject: [PATCH 070/201] build(deps): bump jakarta.xml.bind:jakarta.xml.bind-api Bumps [jakarta.xml.bind:jakarta.xml.bind-api](https://github.com/jakartaee/jaxb-api) from 2.3.3 to 4.0.2. - [Release notes](https://github.com/jakartaee/jaxb-api/releases) - [Commits](https://github.com/jakartaee/jaxb-api/compare/2.3.3...4.0.2) --- updated-dependencies: - dependency-name: jakarta.xml.bind:jakarta.xml.bind-api dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- common-tools/clas-io/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 7c64d3c22..679e1e4ce 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -39,7 +39,7 @@ jakarta.xml.bind jakarta.xml.bind-api - 2.3.3 + 4.0.2 com.sun.xml.bind From cbac1979633b9a4e4de15dae9755716c260a7d44 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 24 Jun 2024 10:10:47 -0400 Subject: [PATCH 071/201] api moved to different packages --- common-tools/clas-io/pom.xml | 6 +----- .../org/jlab/io/bos/BankDescriptorXML.java | 12 +++--------- .../org/jlab/io/bos/BankDictionaryXML.java | 18 ++++++------------ .../java/org/jlab/io/bos/BankEntryXML.java | 10 ++-------- 4 files changed, 12 insertions(+), 34 deletions(-) diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 679e1e4ce..ee83f46d9 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -33,14 +33,10 @@ org.glassfish.jaxb jaxb-runtime 4.0.5 + runtime - - jakarta.xml.bind - jakarta.xml.bind-api - 4.0.2 - com.sun.xml.bind jaxb-impl diff --git a/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankDescriptorXML.java b/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankDescriptorXML.java index f41d7a0b8..d3eff9373 100644 --- a/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankDescriptorXML.java +++ b/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankDescriptorXML.java @@ -1,15 +1,9 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - package org.jlab.io.bos; import java.util.ArrayList; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; /** * diff --git a/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankDictionaryXML.java b/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankDictionaryXML.java index 610117404..fdfbbb675 100644 --- a/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankDictionaryXML.java +++ b/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankDictionaryXML.java @@ -1,21 +1,15 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - package org.jlab.io.bos; import java.io.File; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Marshaller; -import javax.xml.bind.Unmarshaller; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Marshaller; +import jakarta.xml.bind.Unmarshaller; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; /** diff --git a/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankEntryXML.java b/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankEntryXML.java index c6a6754ea..59243e6e5 100644 --- a/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankEntryXML.java +++ b/common-tools/clas-io/src/main/java/org/jlab/io/bos/BankEntryXML.java @@ -1,13 +1,7 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - package org.jlab.io.bos; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlRootElement; /** * From bc19b74c557d7193ca5ea879da7273750c3b5c2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 07:14:02 +0000 Subject: [PATCH 072/201] build(deps): bump com.sun.xml.bind:jaxb-impl from 2.3.3 to 4.0.5 Bumps com.sun.xml.bind:jaxb-impl from 2.3.3 to 4.0.5. --- updated-dependencies: - dependency-name: com.sun.xml.bind:jaxb-impl dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- common-tools/clas-io/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index ee83f46d9..1db98ba4e 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -40,7 +40,7 @@ com.sun.xml.bind jaxb-impl - 2.3.3 + 4.0.5 runtime From 7e9ebf9304b277e2410170911cceab83999ce82a Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 2 Jul 2024 13:42:55 -0400 Subject: [PATCH 073/201] -h should have zero exit code --- .../src/main/java/org/jlab/utils/options/OptionParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionParser.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionParser.java index 3db1570e0..3f0c8989a 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionParser.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionParser.java @@ -127,7 +127,7 @@ public void parse(String[] args){ if(this.containsOptions(arguments, "-h","-help")==true){ this.printUsage(); - System.exit(101); + System.exit(0); } //this.show(arguments); From d004f0db33bf12fa98757e0d8c446eee85181e37 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Sun, 7 Jul 2024 19:35:08 -0400 Subject: [PATCH 074/201] remove unused (and unknown) dependency --- common-tools/clas-io/pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 1db98ba4e..3dce75673 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -87,12 +87,6 @@ 14.0 - - org.jlab.coda - xmsg - 2.3-SNAPSHOT - - org.jlab.clas clas-utils From 7fda01b7b0d8c2c7d362677f9d9b31d5bf0065ae Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 12 Jul 2024 16:49:08 -0400 Subject: [PATCH 075/201] copy all freehep maven repos to clasweb and use them (#296) --- common-tools/coat-lib/pom.xml | 7 ++++--- maven-settings.xml | 13 ++++++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index 2c6445333..144cf39b6 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -14,11 +14,12 @@ jnp-build https://clasweb.jlab.org/jhep/maven - + freehep-repo-public - https://srs.slac.stanford.edu/nexus/content/groups/freehep-maven2-public/ - + https://clasweb.jlab.org/clas12maven/ + + diff --git a/maven-settings.xml b/maven-settings.xml index 29775b4b4..3899e896c 100644 --- a/maven-settings.xml +++ b/maven-settings.xml @@ -9,10 +9,17 @@ that is pulling it in. new-freehep - freehep - freehep + freehep-jminuit + freehep-jminuit + https://clasweb.jlab.org/clas12maven - https://srs.slac.stanford.edu/nexus/content/groups/freehep-maven2-public/ + + + + new-freehep-repo-public + freehep-repo-public + freehep-repo-public + https://clasweb.jlab.org/clas12maven From 8a7f5a111811ed1bdf1d628c57da49abf5c6c1ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 07:29:09 +0000 Subject: [PATCH 076/201] build(deps): bump com.github.spotbugs:spotbugs from 3.1.12 to 4.8.6 Bumps [com.github.spotbugs:spotbugs](https://github.com/spotbugs/spotbugs) from 3.1.12 to 4.8.6. - [Release notes](https://github.com/spotbugs/spotbugs/releases) - [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md) - [Commits](https://github.com/spotbugs/spotbugs/compare/3.1.12...4.8.6) --- updated-dependencies: - dependency-name: com.github.spotbugs:spotbugs dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- common-tools/cnuphys/parent/pom.xml | 2 +- parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index ad9c444e4..ccbda47b1 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -21,7 +21,7 @@ com.github.spotbugs spotbugs - 3.1.12 + 4.8.6 diff --git a/parent/pom.xml b/parent/pom.xml index 1d5670718..39410c68f 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -30,7 +30,7 @@ com.github.spotbugs spotbugs - 3.1.12 + 4.8.6 From 0aeb5d9b9e7391e808dfce1a79a987ea7f80cb30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 07:29:16 +0000 Subject: [PATCH 077/201] build(deps): bump org.apache.maven.plugins:maven-jar-plugin Bumps [org.apache.maven.plugins:maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.4.1 to 3.4.2. - [Release notes](https://github.com/apache/maven-jar-plugin/releases) - [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.4.1...maven-jar-plugin-3.4.2) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-jar-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parent/pom.xml b/parent/pom.xml index 39410c68f..3b396653b 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -100,7 +100,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.1 + 3.4.2 From 675aa600be4c750e053681e5b389a4c94af0310f Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Thu, 11 Jul 2024 12:36:24 -0400 Subject: [PATCH 078/201] fix(PDGDatabase): add anti K0 (code -311) --- .../src/main/java/org/jlab/clas/pdg/PDGDatabase.java | 1 + 1 file changed, 1 insertion(+) diff --git a/common-tools/clas-physics/src/main/java/org/jlab/clas/pdg/PDGDatabase.java b/common-tools/clas-physics/src/main/java/org/jlab/clas/pdg/PDGDatabase.java index 02b448d36..7b313edfb 100644 --- a/common-tools/clas-physics/src/main/java/org/jlab/clas/pdg/PDGDatabase.java +++ b/common-tools/clas-physics/src/main/java/org/jlab/clas/pdg/PDGDatabase.java @@ -76,6 +76,7 @@ private static HashMap initDatabase() { particleMap.put(321, new PDGParticle("K+", 321, 11, 0.49367716, 1)); particleMap.put(-321, new PDGParticle("K-", -321, 12, 0.49367716, -1)); particleMap.put(311, new PDGParticle("K0", 311, 10, 0.49761424, 0)); + particleMap.put(-311, new PDGParticle("antiK0", -311, 10, 0.49761424, 0)); particleMap.put(130, new PDGParticle("K0L", 130, 10, 0.49761424, 0)); particleMap.put(310, new PDGParticle("K0S", 310, 10, 0.49761424, 0)); particleMap.put(2212, new PDGParticle("p", 2212, 14, 0.938272046, 1)); From fe54bfddeb3b5ff2cc13afd9cbfc4c39b90525c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 08:04:05 +0000 Subject: [PATCH 079/201] build(deps): bump com.github.spotbugs:spotbugs-maven-plugin Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.3.1 to 4.8.6.2. - [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases) - [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.3.1...spotbugs-maven-plugin-4.8.6.2) --- updated-dependencies: - dependency-name: com.github.spotbugs:spotbugs-maven-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- common-tools/cnuphys/parent/pom.xml | 2 +- parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index ccbda47b1..6abb26d7e 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -38,7 +38,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.3.1 + 4.8.6.2 spotbugs-exclude.xml diff --git a/parent/pom.xml b/parent/pom.xml index 3b396653b..1a26ba23c 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -62,7 +62,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.3.1 + 4.8.6.2 spotbugs-exclude.xml From ca0a756b5d5cf6ae6c1f6637b473ab028fbae889 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 07:42:45 +0000 Subject: [PATCH 080/201] build(deps): bump org.openjfx:javafx-controls from 11 to 22.0.2 Bumps org.openjfx:javafx-controls from 11 to 22.0.2. --- updated-dependencies: - dependency-name: org.openjfx:javafx-controls dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- common-tools/clas-geometry/pom.xml | 2 +- common-tools/clas-jcsg/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index 0335aabb7..8e2d60b53 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -17,7 +17,7 @@ org.openjfx javafx-controls - 11 + 22.0.2 org.jlab.ccdbrcdb diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index 42d34049c..8e364ac24 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -17,7 +17,7 @@ org.openjfx javafx-controls - 11 + 22.0.2 org.openjfx From 4a2587db1a8852df5287c3d5e1376d2c08400180 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 07:42:47 +0000 Subject: [PATCH 081/201] build(deps): bump org.openjfx:javafx-fxml from 11 to 22.0.2 Bumps org.openjfx:javafx-fxml from 11 to 22.0.2. --- updated-dependencies: - dependency-name: org.openjfx:javafx-fxml dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- common-tools/clas-jcsg/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index 42d34049c..a8d6b9397 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -22,7 +22,7 @@ org.openjfx javafx-fxml - 11 + 22.0.2 org.jlab.clas From 06536ec4c2691f14d82cefa29329d560d2d4275f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 07:43:03 +0000 Subject: [PATCH 082/201] build(deps): bump org.apache.maven.plugins:maven-javadoc-plugin Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.7.0 to 3.8.0. - [Release notes](https://github.com/apache/maven-javadoc-plugin/releases) - [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.7.0...maven-javadoc-plugin-3.8.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-javadoc-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parent/pom.xml b/parent/pom.xml index 1a26ba23c..4a870e71c 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -71,7 +71,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.7.0 + 3.8.0 coatjavadocs coatjavadocs From 177ffd53c1449318e5a077cfd1bd2ec2ab06d064 Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Tue, 30 Jul 2024 10:22:09 -0400 Subject: [PATCH 083/201] fix: Missing rho- definition in PDGDatabase class --- .../src/main/java/org/jlab/clas/pdg/PDGDatabase.java | 1 + 1 file changed, 1 insertion(+) diff --git a/common-tools/clas-physics/src/main/java/org/jlab/clas/pdg/PDGDatabase.java b/common-tools/clas-physics/src/main/java/org/jlab/clas/pdg/PDGDatabase.java index 7b313edfb..b2080041b 100644 --- a/common-tools/clas-physics/src/main/java/org/jlab/clas/pdg/PDGDatabase.java +++ b/common-tools/clas-physics/src/main/java/org/jlab/clas/pdg/PDGDatabase.java @@ -71,6 +71,7 @@ private static HashMap initDatabase() { particleMap.put(223, new PDGParticle("omega", 223, 0.78265, 0)); particleMap.put(333, new PDGParticle("phi", 333, 0.1019455, 0)); particleMap.put(213, new PDGParticle("rho+", 213, 0.7754, 1)); + particleMap.put(-213, new PDGParticle("rho-", -213, 0.7754, -1)); particleMap.put(211, new PDGParticle("pi+", 211, 8, 0.13957018, 1)); particleMap.put(-211, new PDGParticle("pi-", -211, 9, 0.13957018, -1)); particleMap.put(321, new PDGParticle("K+", 321, 11, 0.49367716, 1)); From 515dd5c9ecd822448312a745684f48a0608f1ce0 Mon Sep 17 00:00:00 2001 From: raffaelladevita Date: Fri, 9 Aug 2024 15:52:39 -0400 Subject: [PATCH 084/201] Fixes to DC geometry (#299) * account for the fact the R3 reference wire is ministaggered * accounting for the wire feedthroughs in DC geometry * account for tilt * account for tilt * account for tilt * moved feedthrough parameters to CCDB, code cleanups * removed unnecessary code * more cleanups and comments * introduced yaml variables to turn on/off ministagger and feedthrough fixes gor compatibility with old alignment * bug fix * another bug fix * making R3 Geant4 volumes independent from ministagger * Changed ministagger status enum name to more meaningful set * version bump * added printouts and comments * added comments and printouts as per review bullets 1, 2, and 3 * added comments addressing review points 5,6,8, and 9 * few more comments improvement * added examples of usage of new dc geometry variables to yaml files * version bump --------- Co-authored-by: Christopher Dilks Co-authored-by: Nathan Baltzell --- common-tools/clara-io/pom.xml | 4 +- common-tools/clas-analysis/pom.xml | 20 +- common-tools/clas-detector/pom.xml | 10 +- .../jlab/detector/base/GeometryFactory.java | 1 + common-tools/clas-geometry/pom.xml | 4 +- common-tools/clas-io/pom.xml | 8 +- common-tools/clas-jcsg/pom.xml | 8 +- .../detector/geant4/v2/DCGeant4Factory.java | 273 ++++++++++++++++-- .../jlab/detector/geom/dc/DCGeantFactory.java | 2 +- common-tools/clas-logging/pom.xml | 4 +- common-tools/clas-math/pom.xml | 4 +- common-tools/clas-physics/pom.xml | 4 +- common-tools/clas-reco/pom.xml | 16 +- common-tools/clas-tracking/pom.xml | 6 +- common-tools/clas-utils/pom.xml | 6 +- common-tools/cnuphys/magfield/pom.xml | 2 +- common-tools/cnuphys/swimmer/pom.xml | 2 +- common-tools/coat-lib/deployDistribution.sh | 2 +- common-tools/coat-lib/pom.xml | 24 +- common-tools/parent/pom.xml | 2 +- common-tools/pom.xml | 4 +- common-tools/swim-tools/pom.xml | 6 +- etc/services/data-ai.yaml | 5 +- etc/services/data-aicv.yaml | 5 +- etc/services/data-cv.yaml | 7 +- etc/services/denoise.yaml | 5 +- etc/services/mc-ai.yaml | 6 +- etc/services/mc-aicv.yaml | 4 + etc/services/mc-cv.yaml | 4 +- parent/pom.xml | 2 +- pom.xml | 4 +- reconstruction/alert/pom.xml | 10 +- reconstruction/band/pom.xml | 4 +- reconstruction/cnd/pom.xml | 2 +- reconstruction/cvt/pom.xml | 6 +- reconstruction/dc/pom.xml | 14 +- .../main/java/org/jlab/rec/dc/Constants.java | 29 +- .../java/org/jlab/service/dc/DCEngine.java | 12 + reconstruction/eb/pom.xml | 10 +- reconstruction/ec/pom.xml | 6 +- reconstruction/fmt/pom.xml | 6 +- reconstruction/ft/pom.xml | 4 +- reconstruction/htcc/pom.xml | 4 +- reconstruction/ltcc/pom.xml | 4 +- reconstruction/mc/pom.xml | 4 +- reconstruction/mltn/pom.xml | 6 +- reconstruction/pom.xml | 4 +- reconstruction/raster/pom.xml | 4 +- reconstruction/rich/pom.xml | 6 +- reconstruction/rtpc/pom.xml | 6 +- reconstruction/swaps/pom.xml | 8 +- reconstruction/tof/pom.xml | 4 +- reconstruction/urwell/pom.xml | 6 +- reconstruction/vtx/pom.xml | 6 +- 54 files changed, 439 insertions(+), 180 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index 8a20d4694..b52690dae 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clara-io - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml index ec397899a..a8a4a241c 100644 --- a/common-tools/clas-analysis/pom.xml +++ b/common-tools/clas-analysis/pom.xml @@ -3,63 +3,63 @@ 4.0.0 org.jlab.clas clas-analysis - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-utils - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-physics - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-io - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-geometry - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas swim-tools - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-detector - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml index a248a3824..b42c05462 100644 --- a/common-tools/clas-detector/pom.xml +++ b/common-tools/clas-detector/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-detector - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-utils - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -29,13 +29,13 @@ org.jlab.clas clas-io - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-geometry - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java index 6a14e9c45..6b3ab66f8 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/GeometryFactory.java @@ -48,6 +48,7 @@ public static ConstantProvider getConstants(DetectorType type, int run, String v provider.loadTable("/geometry/dc/alignment"); provider.loadTable("/geometry/dc/ministagger"); provider.loadTable("/geometry/dc/endplatesbow"); + provider.loadTable("/geometry/dc/feedthroughs"); } if(type==DetectorType.ECAL){ diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index 0335aabb7..f55d17013 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-geometry - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 3dce75673..3fdff270e 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-io - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -90,13 +90,13 @@ org.jlab.clas clas-utils - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-logging - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT compile diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index 42d34049c..652f031ac 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-jcsg - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -27,12 +27,12 @@ org.jlab.clas clas-geometry - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-detector - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT java3d diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java index 45b2d62e6..947ba6479 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java @@ -2,6 +2,10 @@ import eu.mihosoft.vrl.v3d.Vector3d; import java.util.HashMap; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.jlab.detector.base.DetectorType; +import org.jlab.detector.base.GeometryFactory; import org.jlab.detector.units.SystemOfUnits.Length; import org.jlab.detector.volume.G4Trap; import org.jlab.detector.volume.G4World; @@ -10,6 +14,7 @@ import org.jlab.geom.prim.Line3D; import org.jlab.geom.prim.Point3D; import org.jlab.geom.prim.Trap3D; +import org.jlab.logging.DefaultLogger; /** * @@ -52,7 +57,7 @@ final class DCdatabase { private int nsensewires; private int nguardwires; - private boolean ministaggerStatus = false; + private DCGeant4Factory.MinistaggerStatus ministaggerStatus = DCGeant4Factory.MinistaggerStatus.ON; private double ministagger ; private boolean endplatesStatus = false; @@ -60,8 +65,15 @@ final class DCdatabase { private final String dcdbpath = "/geometry/dc/"; private static DCdatabase instance = null; - private DCdatabase() { - } + private final double[][] feedThroughExt = new double[nSectors][nSupers]; // extension from the endplate, inside the chamber volume + private final double[][] feedThroughLength = new double[nSectors][nSupers]; // length of the curved, trumpet-like, part of the feedthrough + private final double[][] feedThroughRmin = new double[nSectors][nSupers]; // inner radius at the beginning of the curved part + private final double[][] feedThroughRmax = new double[nSectors][nSupers]; // inner radius at the end of the curved part, i.e. on the surface + private final double[][] feedThroughRcurv = new double[nSectors][nSupers]; // curvature radius of the trumpet-like part + private DCGeant4Factory.FeedthroughsStatus feedthroughsStatus = DCGeant4Factory.FeedthroughsStatus.SHIFT; + + + private DCdatabase() {} public static DCdatabase getInstance() { if (instance == null) { @@ -100,6 +112,17 @@ public void connect(ConstantProvider cp, double[][] shifts) { superwidth[isuper] = wpdist[isuper] * (nsenselayers[isuper] + nguardlayers[isuper] - 1) * cellthickness[isuper]; } + int feedthroughrows = cp.length(dcdbpath+"feedthroughs/sector"); + for(int irow = 0; irow< feedthroughrows; irow++) { + int isec = cp.getInteger(dcdbpath + "feedthroughs/sector",irow)-1; + int isl = cp.getInteger(dcdbpath + "feedthroughs/superlayer",irow)-1; + feedThroughExt[isec][isl] = cp.getDouble(dcdbpath + "feedthroughs/extension", irow); + feedThroughLength[isec][isl] = cp.getDouble(dcdbpath + "feedthroughs/length", irow); + feedThroughRmin[isec][isl] = cp.getDouble(dcdbpath + "feedthroughs/rmin", irow); + feedThroughRmax[isec][isl] = cp.getDouble(dcdbpath + "feedthroughs/rmax", irow); + feedThroughRcurv[isec][isl] = (Math.pow(feedThroughRmax[isec][isl]-feedThroughRmin[isec][isl], 2)+Math.pow(feedThroughLength[isec][isl], 2)) + /(feedThroughRmax[isec][isl]-feedThroughRmin[isec][isl])/2; + } double scaleTest=1; int alignrows = cp.length(dcdbpath+"alignment/dx"); for(int irow = 0; irow< alignrows; irow++) { @@ -218,11 +241,11 @@ public double ministagger() { return ministagger; } - public void setMinistaggerStatus(boolean ministaggerStatus) { + public void setMinistaggerType(DCGeant4Factory.MinistaggerStatus ministaggerStatus) { this.ministaggerStatus = ministaggerStatus; } - public boolean getMinistaggerStatus(){ + public DCGeant4Factory.MinistaggerStatus getMinistaggerStatus(){ return ministaggerStatus; } @@ -237,6 +260,34 @@ public void setEndPlatesStatus(boolean endplatesStatus) { public boolean getEndPlatesStatus(){ return endplatesStatus; } + + public DCGeant4Factory.FeedthroughsStatus feedthroughsStatus() { + return feedthroughsStatus; + } + + public void setFeedthroughsStatus(DCGeant4Factory.FeedthroughsStatus feedthroughsStatus) { + this.feedthroughsStatus = feedthroughsStatus; + } + + public double feedThroughExt(int isec, int isl) { + return feedThroughExt[isec][isl]; + } + + public double feedThroughLength(int isec, int isl) { + return feedThroughLength[isec][isl]; + } + + public double feedThroughRmin(int isec, int isl) { + return feedThroughRmin[isec][isl]; + } + + public double feedThroughRmax(int isec, int isl) { + return feedThroughRmax[isec][isl]; + } + + public double feedThroughRcurv(int isec, int isl) { + return feedThroughRcurv[isec][isl]; + } public double getAlignmentThetaX(int isec, int ireg) { return align_dthetax[isec][ireg]; @@ -264,9 +315,9 @@ final class Wire { private final int wire; private final DCdatabase dbref = DCdatabase.getInstance(); - private final Vector3d midpoint; - private final Vector3d center; - private final Vector3d direction; + private Vector3d midpoint; + private Vector3d center; + private Vector3d direction; private Vector3d leftend; private Vector3d rightend; @@ -306,22 +357,67 @@ public Wire rotateZ(double rotZ) { } private void findEnds() { - // define vector from wire midpoint to chamber tip (z is wrong!!) - Vector3d vnum = new Vector3d(0, dbref.xdist(ireg), 0); - vnum.sub(midpoint); double copen = Math.cos(dbref.thopen(ireg) / 2.0); double sopen = Math.sin(dbref.thopen(ireg) / 2.0); - // define unit vector normal to the sides of the chamber and pointing inside + // define unit vector normal to the endplates of the chamber and pointing inside, projected onto the z=0 plane in the sector frame Vector3d rnorm = new Vector3d(copen, sopen, 0); Vector3d lnorm = new Vector3d(-copen, sopen, 0); + // define unit vector parallel to the sides of the chamber and pointing to the chamber tip, projected onto the z=0 plane in the sector frame + Vector3d rpar = new Vector3d(sopen, -copen, 0); + Vector3d lpar = new Vector3d(-sopen, -copen, 0); + // define unit vector perpendicular to the layer plane, pointing upstream in the sector frame + Vector3d vperp = rnorm.cross(rpar).rotateX(-dbref.thtilt(ireg)); + // define unit vectors perpendicular to the end plates in the sector frame + Vector3d rperp = rnorm.clone().rotateX(-dbref.thtilt(ireg)); + Vector3d lperp = lnorm.clone().rotateX(-dbref.thtilt(ireg)); + + // define vector from wire midpoint to chamber tip in the sector frame, projected onto the z=0 plane + Vector3d vnum = new Vector3d(0, dbref.xdist(ireg), 0); + if(dbref.feedthroughsStatus()!=DCGeant4Factory.FeedthroughsStatus.OFF) + vnum.add(0, dbref.feedThroughExt(sector-1,isuper)/copen, 0); + vnum.sub(midpoint); + // calculate the end points, exploiting the identity between the component perpendicular to the end plates, projected onto the z=0 plane, + // of the vector connecting the chamber tip to the midpoint and the vector connecting the midpoint and the endpoint double wlenl = vnum.dot(lnorm) / direction.dot(lnorm); leftend = direction.times(wlenl).add(midpoint); - double wlenr = vnum.dot(rnorm) / direction.dot(rnorm); rightend = direction.times(wlenr).add(midpoint); + + if(dbref.feedthroughsStatus()==DCGeant4Factory.FeedthroughsStatus.OFF) return; + + // define the center of the circles that describe the trumpet-like part of the feedthrough in the sector frame + Vector3d rcirc = rnorm.times(-dbref.feedThroughLength(sector-1, isuper)).add(rpar.times(dbref.feedThroughRmin(sector-1, isuper)+dbref.feedThroughRcurv(sector-1, isuper))).rotateX(-dbref.thtilt(ireg)).add(rightend); + Vector3d lcirc = lnorm.times(-dbref.feedThroughLength(sector-1, isuper)).add(lpar.times(dbref.feedThroughRmin(sector-1, isuper)+dbref.feedThroughRcurv(sector-1, isuper))).rotateX(-dbref.thtilt(ireg)).add(leftend); + + // recalculate the wire direction assuming the wire is tangent to the left and right circles in the sector frame + Vector3d newDirection = lcirc.minus(rcirc).normalized(); + + // update the wire direction only if the flag is >1 + if(dbref.feedthroughsStatus()==DCGeant4Factory.FeedthroughsStatus.SHIFTANDDIR) + direction = newDirection; + + // recalculate the wire end point in the sector frame + // first define a vector parallel to the one connecting the circle center and the point at the beginning of the trumpet-like part + Vector3d rtang = rpar.times(-dbref.feedThroughRcurv(sector-1, isuper)).rotateX(-dbref.thtilt(ireg)); + // rotate rtang to be parallel to the vector connecting the circle center to the point where the wire is tangent to the circle + double rangle = newDirection.angle(rperp); + double langle = newDirection.negated().angle(lperp); //not used but kept for reference + vperp.rotate(rtang,rangle); + // shift the origin to coincide with the circle center so that the end point is where the wire is tangent to the circle + rtang = rtang.add(rcirc); + // recalculate the wire midpoint as the point on the wire line defined by rtang and newDirection with x=0 + midpoint = rtang.plus(newDirection.times(-rtang.x/newDirection.x)); + + // recalculate the wire endpoints + vnum = new Vector3d(0, dbref.xdist(ireg)+dbref.feedThroughExt(sector-1,isuper)/copen, 0); + vnum.sub(midpoint); + wlenl = vnum.dot(lnorm) / direction.dot(lnorm); + leftend = direction.times(wlenl).add(midpoint); + wlenr = vnum.dot(rnorm) / direction.dot(rnorm); + rightend = direction.times(wlenr).add(midpoint); } /** @@ -397,8 +493,13 @@ public Wire(int sector, int isuperl, int layer, int wire) { // hh: wire distance in the wire plane double hh = (wire-1 + ((double)(layer % 2)) / 2.0) * dw2; - if(ireg==2 && isSensitiveWire(isuper, layer, wire) && dbref.getMinistaggerStatus()) + if(ireg==2 && isSensitiveWire(isuper, layer, wire)) { // apply the ministagger only to sense wires because guard wires are actually used to define the geant4 volumes + if(dbref.getMinistaggerStatus()==DCGeant4Factory.MinistaggerStatus.ON) + hh += ((layer%2)*2)*dbref.ministagger(); + else if(dbref.getMinistaggerStatus()==DCGeant4Factory.MinistaggerStatus.NOTONREFWIRE) hh += ((layer%2)*2-1)*dbref.ministagger(); + } + // ll: layer distance double tt = dbref.cellthickness(isuper) * dbref.wpdist(isuper); @@ -473,8 +574,9 @@ public Vector3d center() { /////////////////////////////////////////////////// public final class DCGeant4Factory extends Geant4Factory { - DCdatabase dbref = DCdatabase.getInstance(); - + private static final Logger LOGGER = Logger.getLogger("DCGeant4Factory"); + DCdatabase dbref = null; + private final HashMap properties = new HashMap<>(); private int nsgwires; @@ -485,29 +587,108 @@ public final class DCGeant4Factory extends Geant4Factory { private final Wire[][][][] wires; private final Vector3d[][][] layerMids; private final Vector3d[][] regionMids; - - public static boolean MINISTAGGERON=true; - public static boolean MINISTAGGEROFF=false; + public static enum MinistaggerStatus { + OFF ( 0, "OFF"), // no ministagger + NOTONREFWIRE ( 1, "NOTONREFWIRE"), // ministagger is applied assuming the reference wire position, defined by dist2tgt and thmin, has no ministagger + ON ( 2, "ON"); // ministagger is applied assuming the reference wire position, defined by dist2tgt and thmin, HAS ministagger (default) + + private final int id; + private final String name; + private final static MinistaggerStatus DEFAULT = ON; + + private MinistaggerStatus(int id, String name) { + this.id = id; + this.name = name; + } + + public int getId() { return id; } + public String getName() { return name; } + + public static MinistaggerStatus getStatus(String name) { + if(name!=null) { + name = name.trim(); + for(MinistaggerStatus status: MinistaggerStatus.values()) + if (status.getName().equalsIgnoreCase(name)) + return status; + } + LOGGER.log(Level.WARNING, "Invalid MinistaggerStatus value, setting default status " + DEFAULT.getName()); + return DEFAULT; + } + + // this method is to support the old API that was accepting booleans as inputs + public static MinistaggerStatus getStatus(boolean status) { + return status ? ON : OFF; + } + } + + public static enum FeedthroughsStatus { + OFF ( 0, "OFF"), // do not account for the feedthroughs + SHIFT ( 1, "SHIFT"), // account for wire midpoint shift only (default) + SHIFTANDDIR ( 2, "SHIFTANDDIR"); // account for wire shift and tilt + + private final int id; + private final String name; + private final static FeedthroughsStatus DEFAULT = SHIFT; + + private FeedthroughsStatus(int id, String name) { + this.id = id; + this.name = name; + } + + public int getId() { return id; } + public String getName() { return name; } + + public static FeedthroughsStatus getStatus(String name) { + if(name!=null) { + name = name.trim(); + for(FeedthroughsStatus status: FeedthroughsStatus.values()) + if (status.getName().equalsIgnoreCase(name)) + return status; + } + LOGGER.log(Level.WARNING, "Invalid FeedthroughsStatus value, setting default status " + DEFAULT.getName()); + return DEFAULT; + } + } + public static boolean ENDPLATESBOWON=true; public static boolean ENDPLATESBOWOFF=false; /////////////////////////////////////////////////// public DCGeant4Factory(ConstantProvider provider) { - this(provider, MINISTAGGEROFF, ENDPLATESBOWOFF, null); + this(provider, MinistaggerStatus.OFF, FeedthroughsStatus.SHIFT, ENDPLATESBOWOFF, null); } /////////////////////////////////////////////////// - public DCGeant4Factory(ConstantProvider provider, boolean ministaggerStatus, - boolean endplatesStatus) { - this(provider, ministaggerStatus, endplatesStatus, null); + public DCGeant4Factory(ConstantProvider provider, + boolean ministaggerStatus, + boolean endplatesStatus) { + this(provider, MinistaggerStatus.getStatus(ministaggerStatus), FeedthroughsStatus.SHIFT, endplatesStatus, null); + } + + /////////////////////////////////////////////////// + public DCGeant4Factory(ConstantProvider provider, + boolean ministaggerStatus, + boolean endplatesStatus, + double[][] shifts) { + this(provider, MinistaggerStatus.getStatus(ministaggerStatus), FeedthroughsStatus.SHIFT, endplatesStatus, shifts); } /////////////////////////////////////////////////// - public DCGeant4Factory(ConstantProvider provider, boolean ministaggerStatus, - boolean endplatesStatus, double[][] shifts) { - dbref.setMinistaggerStatus(ministaggerStatus); + public DCGeant4Factory(ConstantProvider provider, + MinistaggerStatus ministaggerStatus, + FeedthroughsStatus feedthroughsStatus, + boolean endplatesStatus, + double[][] shifts) { + DefaultLogger.debug(); + dbref = DCdatabase.getInstance(); + dbref.setMinistaggerType(ministaggerStatus); + dbref.setFeedthroughsStatus(feedthroughsStatus); dbref.setEndPlatesStatus(endplatesStatus); + LOGGER.log(Level.INFO, "DC Geometry Factory configured with:" + + "\n\t ministagger: " + dbref.getMinistaggerStatus().getName() + + "\n\t feedthroughs: " + dbref.feedthroughsStatus().getName() + + "\n\t endplates bow: " + dbref.getEndPlatesStatus()); motherVolume = new G4World("fc"); @@ -588,7 +769,7 @@ public DCGeant4Factory(ConstantProvider provider, boolean ministaggerStatus, wires[isec][isuper][ilayer][iwire].rotateX(Math.toRadians(dbref.getAlignmentThetaX(isec, isuper/2))); wires[isec][isuper][ilayer][iwire].rotateY(Math.toRadians(dbref.getAlignmentThetaY(isec, isuper/2))); wires[isec][isuper][ilayer][iwire].translate(regionMids[isec][isuper/2]); - } + } } } @@ -770,4 +951,42 @@ public void printWires(){ } } */ + + public static void main(String[] args) { + + ConstantProvider provider = GeometryFactory.getConstants(DetectorType.DC, 11, "default"); + DCGeant4Factory dc0 = new DCGeant4Factory(provider, MinistaggerStatus.ON, FeedthroughsStatus.OFF, false, null); + DCGeant4Factory dc1 = new DCGeant4Factory(provider, MinistaggerStatus.ON, FeedthroughsStatus.SHIFT, false, null); + DCGeant4Factory dc2 = new DCGeant4Factory(provider, MinistaggerStatus.ON, FeedthroughsStatus.SHIFTANDDIR, false, null); + + for(int il=0; il<36; il++) { + for(int iw=0; iw<112; iw=iw+111) { + int sector = 1; + int layer = il+1; + int wire = iw+1; + int isuper = il/6; + int ilayer = il%6; + + + System.out.println(sector + " " + layer + " " + wire + " " + + Math.toDegrees(Math.acos(-dc0.getWireDirection(isuper, ilayer, iw).y))*Math.signum(dc0.getWireDirection(isuper, ilayer, iw).x) + " " + + dc0.getWireMidpoint(isuper, ilayer, iw) + " " + + dc0.getWireDirection(isuper, ilayer, iw) + " " + + dc0.getWireLeftend(isuper, ilayer, iw) + " " + + dc0.getWireRightend(isuper, ilayer, iw) + " "); + System.out.println(sector + " " + layer + " " + wire + " " + + Math.toDegrees(Math.acos(-dc1.getWireDirection(isuper, ilayer, iw).y))*Math.signum(dc1.getWireDirection(isuper, ilayer, iw).x) + " " + + dc1.getWireMidpoint(isuper, ilayer, iw) + " " + + dc1.getWireDirection(isuper, ilayer, iw) + " " + + dc1.getWireLeftend(isuper, ilayer, iw) + " " + + dc1.getWireRightend(isuper, ilayer, iw) + " "); + System.out.println(sector + " " + layer + " " + wire + " " + + Math.toDegrees(Math.acos(-dc2.getWireDirection(isuper, ilayer, iw).y))*Math.signum(dc2.getWireDirection(isuper, ilayer, iw).x) + " " + + dc2.getWireMidpoint(isuper, ilayer, iw) + " " + + dc2.getWireDirection(isuper, ilayer, iw) + " " + + dc2.getWireLeftend(isuper, ilayer, iw) + " " + + dc2.getWireRightend(isuper, ilayer, iw) + " "); + } + } + } } diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geom/dc/DCGeantFactory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geom/dc/DCGeantFactory.java index 95aaaa32b..864302aca 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geom/dc/DCGeantFactory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geom/dc/DCGeantFactory.java @@ -38,7 +38,7 @@ public class DCGeantFactory implements Factory4.0.0 org.jlab.clas clas-logging - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml index b19ce93ef..bc38a112f 100644 --- a/common-tools/clas-math/pom.xml +++ b/common-tools/clas-math/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-math - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml index 8f9b0fc16..23187d747 100644 --- a/common-tools/clas-physics/pom.xml +++ b/common-tools/clas-physics/pom.xml @@ -4,14 +4,14 @@ org.jlab.clas clas-physics - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml index 01fdab690..5fb4f694d 100644 --- a/common-tools/clas-reco/pom.xml +++ b/common-tools/clas-reco/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -42,37 +42,37 @@ org.jlab.clas clas-math - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-io - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-logging - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-physics - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-utils - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-detector - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index e70be6027..cc8b89ed8 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-tracking - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -22,7 +22,7 @@ org.jlab.clas swim-tools - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index cbbd5b7ae..be6fc8859 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-utils - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-logging - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.apache.commons diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml index 186ad3a2d..6e0557f22 100644 --- a/common-tools/cnuphys/magfield/pom.xml +++ b/common-tools/cnuphys/magfield/pom.xml @@ -23,7 +23,7 @@ org.jlab.clas clas-math - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml index 15e04cdb1..5623cf55f 100644 --- a/common-tools/cnuphys/swimmer/pom.xml +++ b/common-tools/cnuphys/swimmer/pom.xml @@ -35,7 +35,7 @@ org.jlab.clas clas-math - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/coat-lib/deployDistribution.sh b/common-tools/coat-lib/deployDistribution.sh index d240b8718..6d686d138 100755 --- a/common-tools/coat-lib/deployDistribution.sh +++ b/common-tools/coat-lib/deployDistribution.sh @@ -8,7 +8,7 @@ cd `dirname $0` # Script is exporting existing Jar files to repository #------------------------------------------------------------------------------------------------- -VERSION=10.1.2 +VERSION=11.0.0 mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -Dfile=target/coat-libs-${VERSION}-SNAPSHOT.jar \ diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index 144cf39b6..c955dd875 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jlab.clas coat-libs - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT pom @@ -94,67 +94,67 @@ org.jlab.clas clas-io - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clara-io - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-utils - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-detector - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-analysis - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-geometry - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-physics - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas swim-tools - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-tracking - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index a596f94e0..edb910611 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas common-tools - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT pom diff --git a/common-tools/pom.xml b/common-tools/pom.xml index 6da86be8b..17ac306a9 100644 --- a/common-tools/pom.xml +++ b/common-tools/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas common-tools - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml index 029b1eae6..fa24dfd50 100644 --- a/common-tools/swim-tools/pom.xml +++ b/common-tools/swim-tools/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas swim-tools - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/etc/services/data-ai.yaml b/etc/services/data-ai.yaml index 8e76ac900..b15891fcc 100644 --- a/etc/services/data-ai.yaml +++ b/etc/services/data-ai.yaml @@ -62,7 +62,10 @@ services: configuration: global: variation: rgb_spring2019 -# timestamp: 12/31/2020-00:00:00 +# timestamp: 12/31/2020-00:00:00 +## uncomment the following two lines for compatibility with alignments before the DC fixes +# dcMinistagger: "NOTONREFWIRE" +# dcFeedthroughs: "OFF" # io-services: # writer: # schema_dir: "absolute-path-to-schema-folder" diff --git a/etc/services/data-aicv.yaml b/etc/services/data-aicv.yaml index 8728bd6d8..45e18a65a 100644 --- a/etc/services/data-aicv.yaml +++ b/etc/services/data-aicv.yaml @@ -73,7 +73,10 @@ services: configuration: global: variation: rgb_spring2019 -# timestamp: 12/31/2020-00:00:00 +# timestamp: 12/31/2020-00:00:00 +## uncomment the following two lines for compatibility with alignments before the DC fixes +# dcMinistagger: "NOTONREFWIRE" +# dcFeedthroughs: "OFF" # io-services: # writer: # schema_dir: "absolute-path-to-schema-folder" diff --git a/etc/services/data-cv.yaml b/etc/services/data-cv.yaml index 2f56001ec..510742ae0 100644 --- a/etc/services/data-cv.yaml +++ b/etc/services/data-cv.yaml @@ -60,8 +60,11 @@ services: configuration: global: variation: rgb_spring2019 -# timestamp: 12/31/2020-00:00:00 -# triggerMask: "0x1" +# timestamp: 12/31/2020-00:00:00 +# triggerMask: "0x1" +## uncomment the following two lines for compatibility with alignments before the DC fixes +# dcMinistagger: "NOTONREFWIRE" +# dcFeedthroughs: "OFF" # io-services: # writer: # schema_dir: "absolute-path-to-schema-folder" diff --git a/etc/services/denoise.yaml b/etc/services/denoise.yaml index 6d0c5b046..97d1c8d89 100644 --- a/etc/services/denoise.yaml +++ b/etc/services/denoise.yaml @@ -77,7 +77,10 @@ services: configuration: global: variation: rgb_spring2019 -# timestamp: 12/31/2020-00:00:00 +# timestamp: 12/31/2020-00:00:00 +## uncomment the following two lines for compatibility with alignments before the DC fixes +# dcMinistagger: "NOTONREFWIRE" +# dcFeedthroughs: "OFF" # io-services: # writer: # schema_dir: "absolute-path-to-schema-folder" diff --git a/etc/services/mc-ai.yaml b/etc/services/mc-ai.yaml index 02e90cf2b..ec8018add 100644 --- a/etc/services/mc-ai.yaml +++ b/etc/services/mc-ai.yaml @@ -61,8 +61,10 @@ services: name: RTPC configuration: # global: -# variation: rgb_spring2019 -# timestamp: 12/31/2020-00:00:00 +# variation: rga_fall2018_mc +# timestamp: 12/31/2020-00:00:00 +# dcMinistagger: "NOTONREFWIRE" +# dcFeedthroughs: "OFF" # io-services: # writer: # schema_dir: "absolute-path-to-schema-folder" diff --git a/etc/services/mc-aicv.yaml b/etc/services/mc-aicv.yaml index f5215c451..3481142e3 100644 --- a/etc/services/mc-aicv.yaml +++ b/etc/services/mc-aicv.yaml @@ -71,6 +71,10 @@ services: - class: org.jlab.service.rtpc.RTPCEngine name: RTPC configuration: +# global: +# variation: rga_fall2018_mc +# dcMinistagger: "NOTONREFWIRE" +# dcFeedthroughs: "OFF" # io-services: # writer: # schema_dir: "absolute-path-to-schema-folder" diff --git a/etc/services/mc-cv.yaml b/etc/services/mc-cv.yaml index 8abeb544d..01126121f 100644 --- a/etc/services/mc-cv.yaml +++ b/etc/services/mc-cv.yaml @@ -59,7 +59,9 @@ services: name: RTPC configuration: # global: -# variation: rga_fall2018_bg +# variation: rga_fall2018_mc +# dcMinistagger: "NOTONREFWIRE" +# dcFeedthroughs: "OFF" # io-services: # writer: # schema_dir: "absolute-path-to-schema-folder" diff --git a/parent/pom.xml b/parent/pom.xml index 4a870e71c..f2fd95532 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas clas12rec - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index cd341cc8e..9093d9550 100644 --- a/pom.xml +++ b/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas clas12 - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT pom org.jlab.clas clas12rec parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml index d0a2a6a53..8b96340a1 100644 --- a/reconstruction/alert/pom.xml +++ b/reconstruction/alert/pom.xml @@ -13,31 +13,31 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-io - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT compile org.jlab.clas clas-tracking - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT compile org.jlab.clas clas-geometry - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT compile diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml index 2da190fe4..39d28d395 100644 --- a/reconstruction/band/pom.xml +++ b/reconstruction/band/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml index b8a574589..8a0bab6cf 100644 --- a/reconstruction/cnd/pom.xml +++ b/reconstruction/cnd/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml index 1016c6e1c..0d2d8c7b1 100644 --- a/reconstruction/cvt/pom.xml +++ b/reconstruction/cvt/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -47,7 +47,7 @@ org.jlab.clas clas-tracking - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index 6eb3261dd..64d5a57f4 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -28,25 +28,25 @@ org.jlab.clas clas-tracking - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-analysis - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -75,13 +75,13 @@ org.jlab.clas swim-tools - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-math - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java index c406da212..d02032247 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java @@ -17,7 +17,6 @@ import org.jlab.geom.base.Detector; import org.jlab.rec.dc.trajectory.TrajectorySurfaces; import org.jlab.utils.groups.IndexedTable; -import org.jlab.detector.banks.RawBank.OrderType; /** * Constants used in the reconstruction @@ -88,6 +87,8 @@ public static Constants getInstance() { // CONFIGURABLE PARAMETERS private String GEOVARIATION = "default"; + public DCGeant4Factory.MinistaggerStatus MINISTAGGERSTATUS = null; + public DCGeant4Factory.FeedthroughsStatus FEEDTHROUGHSSTATUS = null; private boolean ENDPLATESBOWING = false; private double WIREDIST = 0.0; public int SECTORSELECT = 0; @@ -369,6 +370,8 @@ public void setSWAPDCRBBITS(boolean SWAPDCRBBITS) { public synchronized void initialize(String engine, String variation, + String ministaggerStatus, + String feedthroughsStatus, boolean wireDistortion, boolean useStartTime, boolean useBetaCut, @@ -383,16 +386,18 @@ public synchronized void initialize(String engine, printConfig(engine); } else { - GEOVARIATION = variation; - ENDPLATESBOWING = wireDistortion; - USETSTART = useStartTime; - CHECKBETA = useBetaCut; - T2D = t2d; - USEDOUBLETS = useDoublets; - DCRBJITTER = dcrbJitter; - SWAPDCRBBITS = swapDCRBBits; + GEOVARIATION = variation; + MINISTAGGERSTATUS = DCGeant4Factory.MinistaggerStatus.getStatus(ministaggerStatus); + FEEDTHROUGHSSTATUS = DCGeant4Factory.FeedthroughsStatus.getStatus(feedthroughsStatus); + ENDPLATESBOWING = wireDistortion; + USETSTART = useStartTime; + CHECKBETA = useBetaCut; + T2D = t2d; + USEDOUBLETS = useDoublets; + DCRBJITTER = dcrbJitter; + SWAPDCRBBITS = swapDCRBBits; NSUPERLAYERTRACKING = nSuperLayer; - SECTORSELECT = selectedSector; + SECTORSELECT = selectedSector; LoadConstants(); @@ -421,6 +426,8 @@ public void printConfig(String engine) { LOGGER.log(Level.INFO, "["+engine+"] run with variation = " + GEOVARIATION); LOGGER.log(Level.INFO, "["+engine+"] run with sector selection = " + SECTORSELECT); LOGGER.log(Level.INFO, "["+engine+"] run with start time option = " + USETSTART); + LOGGER.log(Level.INFO, "["+engine+"] run with wire ministagger = " + MINISTAGGERSTATUS.getName()); + LOGGER.log(Level.INFO, "["+engine+"] run with wire feedthroughs = " + FEEDTHROUGHSSTATUS.getName()); LOGGER.log(Level.INFO, "["+engine+"] run with wire distortions = " + ENDPLATESBOWING); LOGGER.log(Level.INFO, "["+engine+"] run with with time Beta correction (is false for doca Beta correction) = " + USETIMETBETA); LOGGER.log(Level.INFO, "["+engine+"] run with with Beta cut = " + CHECKBETA); @@ -527,7 +534,7 @@ private void addReverseTT(int run, IndexedTable tt) { private synchronized void LoadGeometry(String geoVariation, double[][] shifts) { // Load the geometry ConstantProvider provider = GeometryFactory.getConstants(DetectorType.DC, 11, geoVariation); - dcDetector = new DCGeant4Factory(provider, DCGeant4Factory.MINISTAGGERON, ENDPLATESBOWING, shifts); + dcDetector = new DCGeant4Factory(provider, MINISTAGGERSTATUS, FEEDTHROUGHSSTATUS, ENDPLATESBOWING, shifts); for(int l=0; l<6; l++) { wpdist[l] = provider.getDouble("/geometry/dc/superlayer/wpdist", l); } diff --git a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java index 80064a036..cdc44a372 100644 --- a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java +++ b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java @@ -20,6 +20,8 @@ public class DCEngine extends ReconstructionEngine { // options configured from yaml private int selectedSector = 0; + private String ministaggerStatus = null; + private String feedthroughsStatus = null; private boolean wireDistortion = false; private boolean useStartTime = true; private boolean useBetaCut = false; @@ -60,6 +62,14 @@ else if(this.getEngineConfigString("variation")!=null) if(this.getEngineConfigString("dcUseStartTime")!=null) useStartTime = Boolean.valueOf(this.getEngineConfigString("dcUseStartTime")); + // R3 ministagger + if(this.getEngineConfigString("dcMinistagger")!=null) + ministaggerStatus = this.getEngineConfigString("dcMinistagger"); + + // Wire feedthroughs + if(this.getEngineConfigString("dcFeedthroughs")!=null) + feedthroughsStatus = this.getEngineConfigString("dcFeedthroughs"); + // Wire distortions if(this.getEngineConfigString("dcWireDistortion")!=null) wireDistortion = Boolean.parseBoolean(this.getEngineConfigString("dcWireDistortion")); @@ -169,6 +179,8 @@ public boolean init() { this.setOptions(); Constants.getInstance().initialize(this.getName(), geoVariation, + ministaggerStatus, + feedthroughsStatus, wireDistortion, useStartTime, useBetaCut, diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml index 30c6bdca3..19920fadf 100644 --- a/reconstruction/eb/pom.xml +++ b/reconstruction/eb/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,25 +21,25 @@ org.jlab.clas clas-utils - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-io - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-analysis - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml index 84ee2af3b..1389e761d 100644 --- a/reconstruction/ec/pom.xml +++ b/reconstruction/ec/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-analysis - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml index 3d9f9ae16..84bbed2fb 100644 --- a/reconstruction/fmt/pom.xml +++ b/reconstruction/fmt/pom.xml @@ -15,21 +15,21 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas swim-tools - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml index 0779e8811..2947fcbc4 100644 --- a/reconstruction/ft/pom.xml +++ b/reconstruction/ft/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml index bcedb567a..9bfca69af 100644 --- a/reconstruction/htcc/pom.xml +++ b/reconstruction/htcc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml index c3e594e71..b7673788b 100644 --- a/reconstruction/ltcc/pom.xml +++ b/reconstruction/ltcc/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml index ed56bd8c4..1d96e73e3 100644 --- a/reconstruction/mc/pom.xml +++ b/reconstruction/mc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml index 6f50ff2e0..5642944d7 100644 --- a/reconstruction/mltn/pom.xml +++ b/reconstruction/mltn/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -34,13 +34,13 @@ org.jlab.clas clas-io - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index 0e2c556c9..f34336a7b 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -3,14 +3,14 @@ org.jlab.clas reconstruction - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml index cce67f303..e2dad6dd9 100644 --- a/reconstruction/raster/pom.xml +++ b/reconstruction/raster/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml index 34219bb0a..3b1695702 100644 --- a/reconstruction/rich/pom.xml +++ b/reconstruction/rich/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-jcsg - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml index af7e9b915..416590d49 100644 --- a/reconstruction/rtpc/pom.xml +++ b/reconstruction/rtpc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,12 +21,12 @@ org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-tracking - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT compile diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml index ffc95ac2e..8b194d0a8 100644 --- a/reconstruction/swaps/pom.xml +++ b/reconstruction/swaps/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-detector - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-io - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-reco - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml index 7ead27814..64f7bb6f1 100644 --- a/reconstruction/tof/pom.xml +++ b/reconstruction/tof/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/urwell/pom.xml b/reconstruction/urwell/pom.xml index 305b17164..76643fa1b 100644 --- a/reconstruction/urwell/pom.xml +++ b/reconstruction/urwell/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT org.jlab.clas clas-analysis - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml index 4b48f471b..9f0eea5c4 100644 --- a/reconstruction/vtx/pom.xml +++ b/reconstruction/vtx/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT @@ -33,13 +33,13 @@ org.jlab.clas swim-tools - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar org.jlab.clas clas-tracking - 10.1.2-SNAPSHOT + 11.0.0-SNAPSHOT jar From 04394399acf4ff911766cac015f49ec3e35c4459 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 07:37:04 +0000 Subject: [PATCH 085/201] build(deps): bump org.slf4j:slf4j-simple from 2.0.13 to 2.0.16 Bumps org.slf4j:slf4j-simple from 2.0.13 to 2.0.16. --- updated-dependencies: - dependency-name: org.slf4j:slf4j-simple dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- common-tools/clas-jcsg/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index 652f031ac..fb7fcbdd2 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -42,7 +42,7 @@ org.slf4j slf4j-simple - 2.0.13 + 2.0.16 From 11eb5cc4253947b428394be071e88e5de26a94e4 Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Mon, 29 Jul 2024 11:26:31 -0400 Subject: [PATCH 086/201] fix!: `env.sh` sourceable should not be in `$PATH` Having `env.sh` in one's `$PATH` means that when some shells run `source env.sh` from anywhere, it may prioritize the `env.sh` from the `coatjava` installation, rather than the `env.sh` in the caller's present working directory. Since both `coatjava`'s `env.sh` and the caller's `./env.sh` may be silent, this can lead to confusion as to why the local `./env.sh` is not working. This PR moves `env.sh` to `libexec/`, which should not be in one's `$PATH`. Any downstream code which calls `source env.sh` may be affected, which is why the conventional commit label is `fix!` rather than `fix` (_i.e._, potential breaking change). --- bin/bg-merger | 2 +- bin/bos2hipo | 2 +- bin/cvt-compare | 2 +- bin/daqEventViewer | 2 +- bin/dclayereffs-ana | 2 +- bin/decoder | 2 +- bin/dict-generator | 2 +- bin/dict-maker | 2 +- bin/dict-merger | 2 +- bin/dict-validator | 2 +- bin/evio-viewer | 2 +- bin/evio2hipo | 2 +- bin/eviocure | 2 +- bin/eviodump | 2 +- bin/hipo-add | 2 +- bin/hipo-browser | 2 +- bin/hipo-diff | 2 +- bin/hipo-json | 2 +- bin/hipo-utils | 2 +- bin/postprocess | 2 +- bin/rebuild-scalers | 2 +- bin/recon-util | 2 +- bin/run-groovy | 2 +- bin/run-groovysh | 2 +- bin/run-jshell | 2 +- bin/trigger-filter | 2 +- bin/trigger-splitter | 2 +- build-coatjava.sh | 5 +++-- {bin => libexec}/env.sh | 0 validation/advanced-tests/run-eb-tests.sh | 2 +- 30 files changed, 31 insertions(+), 30 deletions(-) rename {bin => libexec}/env.sh (100%) diff --git a/bin/bg-merger b/bin/bg-merger index f7811527a..469d48796 100755 --- a/bin/bg-merger +++ b/bin/bg-merger @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/bos2hipo b/bin/bos2hipo index 8dd8b72a6..4f818369a 100755 --- a/bin/bos2hipo +++ b/bin/bos2hipo @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh java -Xms1024m -XX:+UseSerialGC \ -cp "$CLAS12DIR/lib/clas/*:$CLAS12DIR/lib/plugins/*" \ diff --git a/bin/cvt-compare b/bin/cvt-compare index b918e42ee..161061720 100755 --- a/bin/cvt-compare +++ b/bin/cvt-compare @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/daqEventViewer b/bin/daqEventViewer index 158893146..5cdad5409 100755 --- a/bin/daqEventViewer +++ b/bin/daqEventViewer @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh java -Xms1024m \ -cp "$CLAS12DIR/lib/clas/*:$CLAS12DIR/lib/services/*:$CLAS12DIR/lib/utils/*" \ diff --git a/bin/dclayereffs-ana b/bin/dclayereffs-ana index b37bc1f0b..b41ec34ff 100755 --- a/bin/dclayereffs-ana +++ b/bin/dclayereffs-ana @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh java -Dsun.java2d.pmoffscreen=false -Xmx2048m -Xms1024m \ -cp "$CLAS12DIR/lib/clas/*:$CLAS12DIR/lib/utils/*:$CLAS12DIR/lib/services/*" \ diff --git a/bin/decoder b/bin/decoder index fa6321f5c..1ea3657a9 100755 --- a/bin/decoder +++ b/bin/decoder @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/dict-generator b/bin/dict-generator index 459c3cb7b..2d311f9bf 100755 --- a/bin/dict-generator +++ b/bin/dict-generator @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/dict-maker b/bin/dict-maker index 545db8188..652a87841 100755 --- a/bin/dict-maker +++ b/bin/dict-maker @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/dict-merger b/bin/dict-merger index 95e555307..f57611ad3 100755 --- a/bin/dict-merger +++ b/bin/dict-merger @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/dict-validator b/bin/dict-validator index c16a97fc8..57810fb5f 100755 --- a/bin/dict-validator +++ b/bin/dict-validator @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/evio-viewer b/bin/evio-viewer index f3b5a88f4..4e88b1eec 100755 --- a/bin/evio-viewer +++ b/bin/evio-viewer @@ -1,5 +1,5 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh java -cp "$CLAS12DIR/lib/clas/*" org.jlab.coda.eventViewer.EventTreeFrame $* diff --git a/bin/evio2hipo b/bin/evio2hipo index 3edc72dc4..1a7e71037 100755 --- a/bin/evio2hipo +++ b/bin/evio2hipo @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/eviocure b/bin/eviocure index a651ca944..fa01967c0 100755 --- a/bin/eviocure +++ b/bin/eviocure @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/eviodump b/bin/eviodump index 87024f5d8..c1d3495f3 100755 --- a/bin/eviodump +++ b/bin/eviodump @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh java -Xms1024m \ -cp "$CLAS12DIR/lib/clas/*:$CLAS12DIR/lib/plugins/*" \ diff --git a/bin/hipo-add b/bin/hipo-add index 3cbaaf2ed..3b234699b 100755 --- a/bin/hipo-add +++ b/bin/hipo-add @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh java -Xms1024m \ -cp "$CLAS12DIR/lib/clas/*:$CLAS12DIR/lib/plugins/*" \ diff --git a/bin/hipo-browser b/bin/hipo-browser index fc0e8c129..920d84c4b 100755 --- a/bin/hipo-browser +++ b/bin/hipo-browser @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh java -Xms1024m \ -cp "$CLAS12DIR/lib/clas/*:$CLAS12DIR/lib/plugins/*" \ diff --git a/bin/hipo-diff b/bin/hipo-diff index b65fe07c7..96d47f9cf 100755 --- a/bin/hipo-diff +++ b/bin/hipo-diff @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/hipo-json b/bin/hipo-json index 9281af385..2077327fc 100755 --- a/bin/hipo-json +++ b/bin/hipo-json @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh java -Xms1024m \ -cp "$CLAS12DIR/lib/clas/*:$CLAS12DIR/lib/plugins/*" \ diff --git a/bin/hipo-utils b/bin/hipo-utils index 1b3f35587..47e579389 100755 --- a/bin/hipo-utils +++ b/bin/hipo-utils @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/postprocess b/bin/postprocess index e49393584..7c33355ec 100755 --- a/bin/postprocess +++ b/bin/postprocess @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/rebuild-scalers b/bin/rebuild-scalers index 26c6aa62e..3155086d7 100755 --- a/bin/rebuild-scalers +++ b/bin/rebuild-scalers @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/recon-util b/bin/recon-util index b7b439da3..a11a11e8c 100755 --- a/bin/recon-util +++ b/bin/recon-util @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/run-groovy b/bin/run-groovy index e9fca29ec..b8412ce50 100755 --- a/bin/run-groovy +++ b/bin/run-groovy @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh groovy +. `dirname $0`/../libexec/env.sh groovy echo """ **************************************** diff --git a/bin/run-groovysh b/bin/run-groovysh index 4466e0134..d217dfbf4 100755 --- a/bin/run-groovysh +++ b/bin/run-groovysh @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh groovy +. `dirname $0`/../libexec/env.sh groovy echo """ *************************************** diff --git a/bin/run-jshell b/bin/run-jshell index e017b08fa..72bb3754c 100755 --- a/bin/run-jshell +++ b/bin/run-jshell @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh jshell +. `dirname $0`/../libexec/env.sh jshell echo """ ********************************* diff --git a/bin/trigger-filter b/bin/trigger-filter index 172bf880d..91c3221b1 100755 --- a/bin/trigger-filter +++ b/bin/trigger-filter @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/bin/trigger-splitter b/bin/trigger-splitter index 5821b29bf..8c64dda6a 100755 --- a/bin/trigger-splitter +++ b/bin/trigger-splitter @@ -1,6 +1,6 @@ #!/bin/bash -. `dirname $0`/env.sh +. `dirname $0`/../libexec/env.sh export MALLOC_ARENA_MAX=1 diff --git a/build-coatjava.sh b/build-coatjava.sh index cd05cfe04..a7e7341b5 100755 --- a/build-coatjava.sh +++ b/build-coatjava.sh @@ -61,9 +61,9 @@ download () { } -# download the default field maps, as defined in bin/env.sh: +# download the default field maps, as defined in libexec/env.sh: # (and duplicated in etc/services/reconstruction.yaml): -source `dirname $0`/bin/env.sh +source `dirname $0`/libexec/env.sh if [ $downloadMaps == "yes" ]; then echo 'Retrieving field maps ...' webDir=https://clasweb.jlab.org/clas12offline/magfield @@ -87,6 +87,7 @@ rm -rf coatjava mkdir -p coatjava cp -r bin coatjava/ cp -r etc coatjava/ +cp -r libexec coatjava/ # create schema directories for partial reconstruction outputs which python3 >& /dev/null && python=python3 || python=python diff --git a/bin/env.sh b/libexec/env.sh similarity index 100% rename from bin/env.sh rename to libexec/env.sh diff --git a/validation/advanced-tests/run-eb-tests.sh b/validation/advanced-tests/run-eb-tests.sh index a4221b5f8..450e28d4a 100755 --- a/validation/advanced-tests/run-eb-tests.sh +++ b/validation/advanced-tests/run-eb-tests.sh @@ -87,7 +87,7 @@ esac if [ $useClara -eq 0 ] then COAT=../../coatjava - source $COAT/bin/env.sh + source $COAT/libexec/env.sh else CLARA_HOME=$PWD/clara_installation/ COAT=$CLARA_HOME/plugins/clas12/ From 7eb28d8d8f94eefc3c5a99cd2687c5a5fb284758 Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Tue, 30 Jul 2024 10:55:57 -0400 Subject: [PATCH 087/201] fix: kludge the clara coatjava plugin --- validation/advanced-tests/run-advanced-tests.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index b3e85ecb6..a7c73099a 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -31,6 +31,7 @@ esac chmod +x install-claracre-clas.sh echo Y | ./install-claracre-clas.sh -f 5.0.2 -j 11 -l local if [ $? != 0 ] ; then echo "clara installation error" ; exit 1 ; fi +cp -rp ../../coatjava/libexec $CLARA_HOME/plugins/clas12/ # FIXME: should go in `install-claracre-clas.sh`, or can we use `../../install-clara` instead? rm install-claracre-clas.sh # download test files From fcb162d673e93d405d6b3a0231ccacbbb2da636e Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Mon, 12 Aug 2024 15:49:24 -0400 Subject: [PATCH 088/201] test: use local `install-clara` --- .../advanced-tests/run-advanced-tests.sh | 19 +------------------ validation/advanced-tests/run-eb-tests.sh | 6 +----- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index a7c73099a..187eb8704 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -15,27 +15,10 @@ mv coatjava-local.tar.gz validation/advanced-tests/ cd - # install clara - -case $OS in - 'Linux') - wget --no-check-certificate https://claraweb.jlab.org/clara/_downloads/install-claracre-clas.sh - ;; - 'Darwin') - echo "Getting Clara..." - curl -OL "https://claraweb.jlab.org/clara/_downloads/install-claracre-clas.sh" -o install-claracre-clas.sh - ;; - *) ;; -esac - - -chmod +x install-claracre-clas.sh -echo Y | ./install-claracre-clas.sh -f 5.0.2 -j 11 -l local +../../install-clara -f 5.0.2 -j 11 -l $CLARA_HOME if [ $? != 0 ] ; then echo "clara installation error" ; exit 1 ; fi -cp -rp ../../coatjava/libexec $CLARA_HOME/plugins/clas12/ # FIXME: should go in `install-claracre-clas.sh`, or can we use `../../install-clara` instead? -rm install-claracre-clas.sh # download test files - case $OS in 'Linux') wget --no-check-certificate http://clasweb.jlab.org/clas12offline/distribution/coatjava/validation_files/twoTrackEvents_809_raw.evio.tar.gz diff --git a/validation/advanced-tests/run-eb-tests.sh b/validation/advanced-tests/run-eb-tests.sh index 450e28d4a..30645ecbd 100755 --- a/validation/advanced-tests/run-eb-tests.sh +++ b/validation/advanced-tests/run-eb-tests.sh @@ -117,11 +117,7 @@ then # install clara if ! [ -d clara_installation ] then - wget --no-check-certificate https://claraweb.jlab.org/clara/_downloads/install-claracre-clas.sh - chmod +x install-claracre-clas.sh - ./install-claracre-clas.sh -l local - if [ $? != 0 ] ; then echo "clara installation error" ; exit 1 ; fi - rm install-claracre-clas.sh + ../../install-clara clara_installation fi fi From db8c28f4c017835129909c075dbd2856dc568e15 Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Mon, 12 Aug 2024 15:59:12 -0400 Subject: [PATCH 089/201] fix: unknown `-l` --- validation/advanced-tests/run-advanced-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index 187eb8704..5196eb1da 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -15,7 +15,7 @@ mv coatjava-local.tar.gz validation/advanced-tests/ cd - # install clara -../../install-clara -f 5.0.2 -j 11 -l $CLARA_HOME +../../install-clara -f 5.0.2 -j 11 $CLARA_HOME if [ $? != 0 ] ; then echo "clara installation error" ; exit 1 ; fi # download test files From aa6a2fff9dc1a6475d4215b449c4fc1278cd1ef4 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 13 Aug 2024 10:49:15 -0400 Subject: [PATCH 090/201] fix --- install-clara | 2 +- validation/advanced-tests/run-advanced-tests.sh | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/install-clara b/install-clara index d0d7e5490..4b681713d 100755 --- a/install-clara +++ b/install-clara @@ -119,7 +119,7 @@ then coatjava=./coatjava fi mkdir -p clara-cre/plugins/clas12/config -cp -Lr $coatjava/etc $coatjava/bin $coatjava/lib clara-cre/plugins/clas12 +cp -Lr $coatjava/etc $coatjava/bin $coatjava/lib $coatjava/libexec clara-cre/plugins/clas12 # GRAPES: echo -e "\nRetrieving GRAPES version $grapes ..." diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index 5196eb1da..239fc7263 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -8,14 +8,8 @@ CLARA_HOME=$PWD/clara_installation/ ; export CLARA_HOME COAT=$CLARA_HOME/plugins/clas12/ classPath="$COAT/lib/services/*:$COAT/lib/clas/*:$COAT/lib/utils/*:../lib/*:src/" -# tar the local coatjava build so it can be installed with clara -cd ../.. -tar -zcvf coatjava-local.tar.gz coatjava -mv coatjava-local.tar.gz validation/advanced-tests/ -cd - - # install clara -../../install-clara -f 5.0.2 -j 11 $CLARA_HOME +../../install-clara -c ../../coatjava $CLARA_HOME if [ $? != 0 ] ; then echo "clara installation error" ; exit 1 ; fi # download test files From aa025e0eae91282b280774b1be5ee8c0310d51c8 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 13 Aug 2024 11:19:53 -0400 Subject: [PATCH 091/201] backward compatibility --- install-clara | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-clara b/install-clara index 4b681713d..32e8fc3ed 100755 --- a/install-clara +++ b/install-clara @@ -119,7 +119,7 @@ then coatjava=./coatjava fi mkdir -p clara-cre/plugins/clas12/config -cp -Lr $coatjava/etc $coatjava/bin $coatjava/lib $coatjava/libexec clara-cre/plugins/clas12 +cp -Lr $coatjava/etc $coatjava/bin $coatjava/lib* clara-cre/plugins/clas12 # GRAPES: echo -e "\nRetrieving GRAPES version $grapes ..." From a5ad1e75ac741b29bbc3c154afab5907d7e50f88 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 13 Aug 2024 11:22:11 -0400 Subject: [PATCH 092/201] clara is not supported on macos --- validation/advanced-tests/run-advanced-tests.sh | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index 239fc7263..eb954e50c 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -1,7 +1,6 @@ #!/bin/sh -f # coatjava must already be built at ../../coatjava/ -OS=$(uname) # set up environment CLARA_HOME=$PWD/clara_installation/ ; export CLARA_HOME @@ -13,17 +12,7 @@ classPath="$COAT/lib/services/*:$COAT/lib/clas/*:$COAT/lib/utils/*:../lib/*:src/ if [ $? != 0 ] ; then echo "clara installation error" ; exit 1 ; fi # download test files -case $OS in - 'Linux') - wget --no-check-certificate http://clasweb.jlab.org/clas12offline/distribution/coatjava/validation_files/twoTrackEvents_809_raw.evio.tar.gz - ;; - 'Darwin') - curl -OL "http://clasweb.jlab.org/clas12offline/distribution/coatjava/validation_files/twoTrackEvents_809_raw.evio.tar.gz" -o twoTrackEvents_809_raw.evio.tar.gz - ;; - *) ;; -esac - - +wget --no-check-certificate http://clasweb.jlab.org/clas12offline/distribution/coatjava/validation_files/twoTrackEvents_809_raw.evio.tar.gz if [ $? != 0 ] ; then echo "wget validation files failure" ; exit 1 ; fi tar -zxvf twoTrackEvents_809_raw.evio.tar.gz From aeaf80e16636e686b3c5a420c70e7037aeb2f4f4 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 13 Aug 2024 11:36:31 -0400 Subject: [PATCH 093/201] disable defunct test --- validation/advanced-tests/run-advanced-tests.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index eb954e50c..13d83f11c 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -1,5 +1,9 @@ #!/bin/sh -f +# this test needs rewritten, with more useful data (not KPP), +# meanwhile not worth maintaining ... +exit 0 + # coatjava must already be built at ../../coatjava/ # set up environment From d190d22ddb076902a4561160222f8b7126e094b1 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 13 Aug 2024 11:38:29 -0400 Subject: [PATCH 094/201] stop using yamls from clara installations --- validation/advanced-tests/run-advanced-tests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index 13d83f11c..38cb800dc 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -2,7 +2,7 @@ # this test needs rewritten, with more useful data (not KPP), # meanwhile not worth maintaining ... -exit 0 +#exit 0 # coatjava must already be built at ../../coatjava/ @@ -35,7 +35,7 @@ echo "set session s_cook" >> cook.clara echo "set description d_cook" >> cook.clara ls twoTrackEvents_809.hipo > files.list echo "set fileList $PWD/files.list" >> cook.clara -echo "set servicesFile $CLARA_HOME/plugins/clas12/config/kpp.yaml" >> cook.clara +echo "set servicesFile $COAT/etc/services/kpp.yaml" >> cook.clara echo "run local" >> cook.clara echo "exit" >> cook.clara $CLARA_HOME/bin/clara-shell cook.clara From 5959855282f57bda441210657b00a2831e87033c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 18:22:25 +0000 Subject: [PATCH 095/201] build(deps): bump org.ejml:ejml-all from 0.39 to 0.43.1 Bumps [org.ejml:ejml-all](https://github.com/lessthanoptimal/ejml) from 0.39 to 0.43.1. - [Release notes](https://github.com/lessthanoptimal/ejml/releases) - [Changelog](https://github.com/lessthanoptimal/ejml/blob/SNAPSHOT/docs/release-checklist.txt) - [Commits](https://github.com/lessthanoptimal/ejml/compare/v0.39...v0.43.1) --- updated-dependencies: - dependency-name: org.ejml:ejml-all dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- common-tools/clas-tracking/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index cc8b89ed8..609c24e16 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -17,7 +17,7 @@ org.ejml ejml-all - 0.39 + 0.43.1 org.jlab.clas From 19703d0ff2732be2f4011298f83a0cf377eb0184 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 13 Aug 2024 14:55:39 -0400 Subject: [PATCH 096/201] goto 17 --- common-tools/parent/pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index edb910611..8b7197886 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -31,8 +31,7 @@ org.apache.maven.plugins maven-compiler-plugin - 1.8 - 1.8 + 17 From 9ecc63494a3c1cd9ef8f147c97d6505ee2e1babf Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 13 Aug 2024 14:59:48 -0400 Subject: [PATCH 097/201] container needs 17 installed --- .github/workflows/maven.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 7c4df2efa..ba7cfa7f5 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -21,7 +21,7 @@ defaults: shell: bash env: - java_version: 11 + java_version: 17 java_distribution: zulu groovy_version: 4.0.3 From 8b4e2e3eec930c7b01db471b2eaf6b0b95871b23 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 16 Aug 2024 16:09:27 -0400 Subject: [PATCH 098/201] add convenience method, cleanup --- .../java/org/jlab/clas/reco/ReconstructionEngine.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java index 55541cfdd..8a4e88a62 100644 --- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java +++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java @@ -137,12 +137,12 @@ public ConstantsManager getConstantsManager(){ return constManagerMap.get(this.getClass().getName()); } + public String getEngineConfigString(String key, String def) { + return engineConfigMap.containsKey(key) ? engineConfigMap.get(key) : def; + } + public String getEngineConfigString(String key) { - String val=null; - if (this.engineConfigMap.containsKey(key)) { - val=this.engineConfigMap.get(key); - } - return val; + return getEngineConfigString(key, null); } /** From b36fbe0e94cbfa8cebd57d4c8aebb610419badbd Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 16 Aug 2024 16:11:07 -0400 Subject: [PATCH 099/201] add background merging service --- reconstruction/bg/pom.xml | 40 ++++++++++ .../org/jlab/service/bg/BackgroundEngine.java | 75 +++++++++++++++++++ reconstruction/pom.xml | 1 + 3 files changed, 116 insertions(+) create mode 100644 reconstruction/bg/pom.xml create mode 100644 reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java diff --git a/reconstruction/bg/pom.xml b/reconstruction/bg/pom.xml new file mode 100644 index 000000000..eaadf6707 --- /dev/null +++ b/reconstruction/bg/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + org.jlab.clas12.detector + clas12detector-bg + 1.0-SNAPSHOT + jar + + + org.jlab.clas + clas12rec + ../../parent/pom.xml + 11.0.0-SNAPSHOT + + + + + + org.jlab.clas + clas-io + 11.0.0-SNAPSHOT + + + + org.jlab.clas + clas-reco + 11.0.0-SNAPSHOT + + + + org.jlab.clas + clas-analysis + 11.0.0-SNAPSHOT + + + + diff --git a/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java new file mode 100644 index 000000000..eccb52078 --- /dev/null +++ b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java @@ -0,0 +1,75 @@ +package org.jlab.service.bg; + +import java.io.File; +import java.util.LinkedList; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.jlab.analysis.eventmerger.EventMerger; +import org.jlab.clas.reco.ReconstructionEngine; +import org.jlab.io.base.DataEvent; +import org.jlab.io.hipo.HipoDataSource; + +/** + * + * @author baltzell + */ +public class BackgroundEngine extends ReconstructionEngine { + + public static final String CONF_FILENAME = "filename"; + public static final String CONF_DETECTORS = "detectors"; + public static final String CONF_ORDERS = "orders"; + public static final String CONF_SUPPRESS_DOUBLES = "suppressDoubles"; + public static final String CONF_PRESERVE_ORDER = "preserveOrder"; + + static final Logger logger = Logger.getLogger(BackgroundEngine.class.getName()); + + EventMerger merger = null; + HipoDataSource reader = null; + LinkedList filenames = new LinkedList<>(); + + public BackgroundEngine() { + super("BG", "baltzell", "1.0"); + } + + @Override + public boolean init() { + String filename = getEngineConfigString(CONF_FILENAME); + if (filename == null) { + logger.severe("BackgroundEngine:: filename undefined."); + return false; + } + File f = new File(filename); + if (!f.exists() || !f.isFile() || !f.canRead()) { + logger.log(Level.SEVERE,"BackgroundEngine:: filename {} invalid: ",filename); + return false; + } + filenames.add(filename); + String detectors = getEngineConfigString(CONF_DETECTORS,"DC,FTOF"); + String orders = getEngineConfigString(CONF_ORDERS,"NOMINAL"); + Boolean suppressDoubles = Boolean.getBoolean(getEngineConfigString(CONF_SUPPRESS_DOUBLES,"true")); + Boolean preserveOrder = Boolean.getBoolean(getEngineConfigString(CONF_PRESERVE_ORDER,"true")); + logger.log(Level.INFO,"BackgroundEngine:: reading {0}",filename); + merger = new EventMerger(detectors.split(","), orders.split(","), suppressDoubles, preserveOrder); + reader = new HipoDataSource(); + reader.open(getEngineConfigString(CONF_FILENAME)); + return true; + } + + synchronized public DataEvent getBackgroundEvent() { + if (reader.hasEvent()) return reader.getNextEvent(); + String filename = filenames.remove(); + filenames.add(filename); + reader = new HipoDataSource(); + reader.open(filename); + return reader.getNextEvent(); + } + + @Override + public boolean processDataEvent(DataEvent event) { + DataEvent a = getBackgroundEvent(); + DataEvent b = getBackgroundEvent(); + merger.mergeEvents(event, a, b); + return true; + } + +} diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index f34336a7b..368fdfcaa 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -34,5 +34,6 @@ vtx urwell alert + bg From f90f13d9bc3d56846af15af5f80e805e7eb56b1d Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 16 Aug 2024 16:20:31 -0400 Subject: [PATCH 100/201] plug bgmerging into recon-util --- .../java/org/jlab/clas/reco/EngineProcessor.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java index 97602d06c..095d67039 100644 --- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java +++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java @@ -98,7 +98,7 @@ public void initDefault(){ public void initAll(){ String[] names = new String[]{ - "MAGFIELDS", + "MAGFIELDS","BG", "FTCAL", "FTHODO", "FTTRK", "FTEB", "URWELL", "DCCR", "DCHB","FTOFHB","EC","RASTER", "CVTFP","CTOF","CND","BAND", @@ -109,6 +109,7 @@ public void initAll(){ String[] services = new String[]{ "org.jlab.clas.swimtools.MagFieldsEngine", + "org.jlab.service.bg.BackgroundEngine", "org.jlab.rec.ft.cal.FTCALEngine", "org.jlab.rec.ft.hodo.FTHODOEngine", "org.jlab.rec.ft.trk.FTTRKEngine", @@ -324,7 +325,7 @@ public static void main(String[] args){ parser.addOption("-u","true","update dictionary from writer ? "); parser.addOption("-d","1","Debug level [0 - OFF, 1 - ON/default]"); parser.addOption("-S",null,"schema directory"); - parser.setDescription("previously known as notsouseful-util"); + parser.addOption("-B",null,"background file"); parser.parse(args); @@ -380,6 +381,17 @@ else if (config>0){ if (parser.getOption("-S").stringValue() != null) proc.setBanksToKeep(parser.getOption("-S").stringValue()); + // command-line filename for background merging overrides YAML: + if (parser.getOption("-B").stringValue() != null) { + if (proc.processorEngines.containsKey("org.jlab.service.bg.BackgroundEngine")) { + proc.processorEngines.get("org.jlab.service.bg.BackgroundEngine") + .engineConfigMap.put("filename", parser.getOption("-B").stringValue()); + } else { + LOGGER.severe("ERROR: -B background file specified without BackgroundEngine."); + System.exit(11); + } + } + proc.processFile(inputFile,outputFile,nskip,nevents); } } From 20f5d1877678f96625cb95d05120447b4344859c Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Sat, 17 Aug 2024 15:19:44 -0400 Subject: [PATCH 101/201] support lazy initialization --- .../org/jlab/service/bg/BackgroundEngine.java | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java index eccb52078..9a854ad27 100644 --- a/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java +++ b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java @@ -33,25 +33,26 @@ public BackgroundEngine() { @Override public boolean init() { - String filename = getEngineConfigString(CONF_FILENAME); - if (filename == null) { - logger.severe("BackgroundEngine:: filename undefined."); - return false; - } - File f = new File(filename); - if (!f.exists() || !f.isFile() || !f.canRead()) { - logger.log(Level.SEVERE,"BackgroundEngine:: filename {} invalid: ",filename); - return false; + init(getEngineConfigString(CONF_FILENAME)); + } + + public boolean init(String filename) { + if (filename != null) { + File f = new File(filename); + if (!f.exists() || !f.isFile() || !f.canRead()) { + logger.log(Level.SEVERE,"BackgroundEngine:: filename {} invalid: ",filename); + return false; + } + filenames.add(filename); + String detectors = getEngineConfigString(CONF_DETECTORS,"DC,FTOF"); + String orders = getEngineConfigString(CONF_ORDERS,"NOMINAL"); + Boolean suppressDoubles = Boolean.getBoolean(getEngineConfigString(CONF_SUPPRESS_DOUBLES,"true")); + Boolean preserveOrder = Boolean.getBoolean(getEngineConfigString(CONF_PRESERVE_ORDER,"true")); + logger.log(Level.INFO,"BackgroundEngine:: reading {0}",filename); + merger = new EventMerger(detectors.split(","), orders.split(","), suppressDoubles, preserveOrder); + reader = new HipoDataSource(); + reader.open(getEngineConfigString(CONF_FILENAME)); } - filenames.add(filename); - String detectors = getEngineConfigString(CONF_DETECTORS,"DC,FTOF"); - String orders = getEngineConfigString(CONF_ORDERS,"NOMINAL"); - Boolean suppressDoubles = Boolean.getBoolean(getEngineConfigString(CONF_SUPPRESS_DOUBLES,"true")); - Boolean preserveOrder = Boolean.getBoolean(getEngineConfigString(CONF_PRESERVE_ORDER,"true")); - logger.log(Level.INFO,"BackgroundEngine:: reading {0}",filename); - merger = new EventMerger(detectors.split(","), orders.split(","), suppressDoubles, preserveOrder); - reader = new HipoDataSource(); - reader.open(getEngineConfigString(CONF_FILENAME)); return true; } @@ -66,9 +67,11 @@ synchronized public DataEvent getBackgroundEvent() { @Override public boolean processDataEvent(DataEvent event) { - DataEvent a = getBackgroundEvent(); - DataEvent b = getBackgroundEvent(); - merger.mergeEvents(event, a, b); + if (filenames.size() > 0) { + DataEvent a = getBackgroundEvent(); + DataEvent b = getBackgroundEvent(); + merger.mergeEvents(event, a, b); + } return true; } From 0215731388225071853688b5cd717e87e1267f91 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Sun, 18 Aug 2024 10:31:18 -0400 Subject: [PATCH 102/201] oops --- .../bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java index 9a854ad27..d4c87e35b 100644 --- a/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java +++ b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java @@ -33,7 +33,7 @@ public BackgroundEngine() { @Override public boolean init() { - init(getEngineConfigString(CONF_FILENAME)); + return init(getEngineConfigString(CONF_FILENAME)); } public boolean init(String filename) { From 61212d6e9d216880920310eba1efcf5e62e6ec3c Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 10:21:14 -0400 Subject: [PATCH 103/201] no printing every event --- .../src/main/java/org/jlab/analysis/eventmerger/EventMerger.java | 1 - 1 file changed, 1 deletion(-) diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/eventmerger/EventMerger.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/eventmerger/EventMerger.java index f44455457..992516ae7 100644 --- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/eventmerger/EventMerger.java +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/eventmerger/EventMerger.java @@ -109,7 +109,6 @@ private void printOrders() { public void mergeEvents(DataEvent event, DataEvent bg1, DataEvent bg2) { if(!event.hasBank("RUN::config") || !bg1.hasBank("RUN::config") || !bg2.hasBank("RUN::config")) { - System.out.println("Missing RUN::config bank"); return; } From 853bee9a7f42f141cd0545c8d4f7c5d3ace5b2a6 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 10:23:23 -0400 Subject: [PATCH 104/201] CLI initialize BackgroundEngine --- .../org/jlab/clas/reco/EngineProcessor.java | 36 +++++++++++++------ 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java index 095d67039..380bd32c6 100644 --- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java +++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java @@ -16,7 +16,6 @@ import org.jlab.clara.engine.EngineDataType; import java.util.Arrays; import org.jlab.jnp.hipo4.data.SchemaFactory; -import org.jlab.utils.JsonUtils; import org.json.JSONObject; import org.jlab.logging.DefaultLogger; import org.jlab.utils.ClaraYaml; @@ -27,6 +26,8 @@ */ public class EngineProcessor { + public static final String ENGINE_CLASS_BG = "org.jlab.service.bg.BackgroundEngine"; + private final Map processorEngines = new LinkedHashMap<>(); private static final Logger LOGGER = Logger.getLogger(EngineProcessor.class.getPackage().getName()); private boolean updateDictionary = true; @@ -35,6 +36,27 @@ public class EngineProcessor { public EngineProcessor(){} + /** + * Get the (first) engine with the given class name. Note, this exists + * because engines are mapped by (what can be) a user-defined name, and . + * @param clazz + * @return + */ + private ReconstructionEngine findEngine(String clazz) { + for (String k : processorEngines.keySet()) { + if (processorEngines.get(k).getClass().getName().equals(clazz)) + return processorEngines.get(k); + } + return null; + } + + public void setBackgroundFiles(String filenames) { + if (findEngine(ENGINE_CLASS_BG) == null) + addEngine("BG",ENGINE_CLASS_BG); + findEngine(ENGINE_CLASS_BG).engineConfigMap.put("filename", filenames); + findEngine(ENGINE_CLASS_BG).init(); + } + private void updateDictionary(HipoDataSource source, HipoDataSync sync){ SchemaFactory fsync = sync.getWriter().getSchemaFactory(); SchemaFactory fsrc = source.getReader().getSchemaFactory(); @@ -382,16 +404,10 @@ else if (config>0){ proc.setBanksToKeep(parser.getOption("-S").stringValue()); // command-line filename for background merging overrides YAML: - if (parser.getOption("-B").stringValue() != null) { - if (proc.processorEngines.containsKey("org.jlab.service.bg.BackgroundEngine")) { - proc.processorEngines.get("org.jlab.service.bg.BackgroundEngine") - .engineConfigMap.put("filename", parser.getOption("-B").stringValue()); - } else { - LOGGER.severe("ERROR: -B background file specified without BackgroundEngine."); - System.exit(11); - } - } + if (parser.getOption("-B").stringValue() != null) + proc.setBackgroundFiles(parser.getOption("-B").stringValue()); proc.processFile(inputFile,outputFile,nskip,nevents); } + } From 9cfc76f2f5fce8e844e272711c1a36894916eb76 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 10:23:35 -0400 Subject: [PATCH 105/201] cleanup --- .../org/jlab/service/bg/BackgroundEngine.java | 51 ++++++++++--------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java index d4c87e35b..7c003199f 100644 --- a/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java +++ b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java @@ -23,9 +23,9 @@ public class BackgroundEngine extends ReconstructionEngine { static final Logger logger = Logger.getLogger(BackgroundEngine.class.getName()); - EventMerger merger = null; - HipoDataSource reader = null; - LinkedList filenames = new LinkedList<>(); + EventMerger bgmerger = null; + HipoDataSource bgreader = null; + LinkedList bgfilenames = new LinkedList<>(); public BackgroundEngine() { super("BG", "baltzell", "1.0"); @@ -33,44 +33,49 @@ public BackgroundEngine() { @Override public boolean init() { - return init(getEngineConfigString(CONF_FILENAME)); + if (getEngineConfigString(CONF_FILENAME) != null) + return init(getEngineConfigString(CONF_FILENAME).split(",")); + return true; } - public boolean init(String filename) { - if (filename != null) { + public boolean init(String... filenames) { + bgfilenames.clear(); + for (String filename : filenames) { File f = new File(filename); if (!f.exists() || !f.isFile() || !f.canRead()) { - logger.log(Level.SEVERE,"BackgroundEngine:: filename {} invalid: ",filename); + logger.log(Level.SEVERE,"BackgroundEngine:: filename {0} invalid.",filename); return false; } - filenames.add(filename); - String detectors = getEngineConfigString(CONF_DETECTORS,"DC,FTOF"); - String orders = getEngineConfigString(CONF_ORDERS,"NOMINAL"); - Boolean suppressDoubles = Boolean.getBoolean(getEngineConfigString(CONF_SUPPRESS_DOUBLES,"true")); - Boolean preserveOrder = Boolean.getBoolean(getEngineConfigString(CONF_PRESERVE_ORDER,"true")); logger.log(Level.INFO,"BackgroundEngine:: reading {0}",filename); - merger = new EventMerger(detectors.split(","), orders.split(","), suppressDoubles, preserveOrder); - reader = new HipoDataSource(); - reader.open(getEngineConfigString(CONF_FILENAME)); + bgfilenames.add(filename); } + String detectors = getEngineConfigString(CONF_DETECTORS,"DC,FTOF"); + String orders = getEngineConfigString(CONF_ORDERS,"NOMINAL"); + Boolean suppressDoubles = Boolean.getBoolean(getEngineConfigString(CONF_SUPPRESS_DOUBLES,"true")); + Boolean preserveOrder = Boolean.getBoolean(getEngineConfigString(CONF_PRESERVE_ORDER,"true")); + bgmerger = new EventMerger(detectors.split(","), orders.split(","), suppressDoubles, preserveOrder); + openNextFile(); return true; } + private void openNextFile() { + String filename = bgfilenames.remove(); + bgfilenames.add(filename); + bgreader = new HipoDataSource(); + bgreader.open(filename); + } + synchronized public DataEvent getBackgroundEvent() { - if (reader.hasEvent()) return reader.getNextEvent(); - String filename = filenames.remove(); - filenames.add(filename); - reader = new HipoDataSource(); - reader.open(filename); - return reader.getNextEvent(); + if (!bgreader.hasEvent()) openNextFile(); + return bgreader.getNextEvent(); } @Override public boolean processDataEvent(DataEvent event) { - if (filenames.size() > 0) { + if (!bgfilenames.isEmpty()) { DataEvent a = getBackgroundEvent(); DataEvent b = getBackgroundEvent(); - merger.mergeEvents(event, a, b); + bgmerger.mergeEvents(event, a, b); } return true; } From de7a05e7128b4a268caf47be005384a35ac4eb9d Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 10:40:00 -0400 Subject: [PATCH 106/201] bugfix on boolean string parsing --- .../src/main/java/org/jlab/service/bg/BackgroundEngine.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java index 7c003199f..8c464c35e 100644 --- a/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java +++ b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java @@ -51,8 +51,8 @@ public boolean init(String... filenames) { } String detectors = getEngineConfigString(CONF_DETECTORS,"DC,FTOF"); String orders = getEngineConfigString(CONF_ORDERS,"NOMINAL"); - Boolean suppressDoubles = Boolean.getBoolean(getEngineConfigString(CONF_SUPPRESS_DOUBLES,"true")); - Boolean preserveOrder = Boolean.getBoolean(getEngineConfigString(CONF_PRESERVE_ORDER,"true")); + Boolean suppressDoubles = Boolean.valueOf(getEngineConfigString(CONF_SUPPRESS_DOUBLES,"true")); + Boolean preserveOrder = Boolean.valueOf(getEngineConfigString(CONF_PRESERVE_ORDER,"true")); bgmerger = new EventMerger(detectors.split(","), orders.split(","), suppressDoubles, preserveOrder); openNextFile(); return true; From 419e287137a203cb35567db5053c8871b5c1b708 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 10:53:36 -0400 Subject: [PATCH 107/201] cleanup --- .../org/jlab/clas/reco/EngineProcessor.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java index 380bd32c6..0e1141ff7 100644 --- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java +++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java @@ -36,23 +36,20 @@ public class EngineProcessor { public EngineProcessor(){} - /** - * Get the (first) engine with the given class name. Note, this exists - * because engines are mapped by (what can be) a user-defined name, and . - * @param clazz - * @return - */ private ReconstructionEngine findEngine(String clazz) { for (String k : processorEngines.keySet()) { - if (processorEngines.get(k).getClass().getName().equals(clazz)) + if (processorEngines.get(k).getClass().getName().equals(clazz)) { return processorEngines.get(k); + } } return null; } public void setBackgroundFiles(String filenames) { - if (findEngine(ENGINE_CLASS_BG) == null) + if (findEngine(ENGINE_CLASS_BG) == null) { + LOGGER.info("Adding BackgroundEngine for -B option."); addEngine("BG",ENGINE_CLASS_BG); + } findEngine(ENGINE_CLASS_BG).engineConfigMap.put("filename", filenames); findEngine(ENGINE_CLASS_BG).init(); } @@ -120,7 +117,7 @@ public void initDefault(){ public void initAll(){ String[] names = new String[]{ - "MAGFIELDS","BG", + "MAGFIELDS", "FTCAL", "FTHODO", "FTTRK", "FTEB", "URWELL", "DCCR", "DCHB","FTOFHB","EC","RASTER", "CVTFP","CTOF","CND","BAND", @@ -131,7 +128,6 @@ public void initAll(){ String[] services = new String[]{ "org.jlab.clas.swimtools.MagFieldsEngine", - "org.jlab.service.bg.BackgroundEngine", "org.jlab.rec.ft.cal.FTCALEngine", "org.jlab.rec.ft.hodo.FTHODOEngine", "org.jlab.rec.ft.trk.FTTRKEngine", @@ -144,7 +140,6 @@ public void initAll(){ "org.jlab.service.raster.RasterEngine", "org.jlab.rec.cvt.services.CVTEngine", "org.jlab.service.ctof.CTOFEngine", - //"org.jlab.service.cnd.CNDEngine", "org.jlab.service.cnd.CNDCalibrationEngine", "org.jlab.service.band.BANDEngine", "org.jlab.service.htcc.HTCCReconstructionService", From dc209850c530f20731ab4b3494928fcb26f48906 Mon Sep 17 00:00:00 2001 From: raffaelladevita Date: Wed, 21 Aug 2024 14:27:37 -0400 Subject: [PATCH 108/201] imported AI-assisted tracking network for RG-C Fall2022: network trained on run 17277 and assigned to run range 16843-17408 --- etc/ejml/ejmlclas12.network | Bin 238121 -> 288420 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/etc/ejml/ejmlclas12.network b/etc/ejml/ejmlclas12.network index 25030fe27394f09408f40aca17698a3ecc61a6d0..16df05b401ae7a7b3ee5586a375e38c240af0b48 100644 GIT binary patch delta 28631 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 QzkJ4Cn$RNhBGLf%e@D~&F#rGn delta 494 zcmYjO&nrYx6n^i#GiKD#&}fVwPeT^WVwxgFF;6y9euUn<@#crgg3VBNl(7(FH#Ks~ z#>T=dC{d%(P)f=C5A4|3DM>hQuH@dj-S0c!ch0%z9+YbGx7F(#@)^u$m7~)xs_}yt zf<2TN!#0;9jgQzJ5-+e0i4y0~M5-U0w5MZxA)kf!w?c6UPim{#tXrC2<(iJoayd8r>vJm^4;6LngyMObp!;c5$rnadzN1hWN1^|LGz07DFpPb$RkDDW;wA7< zX9At%Gg$geAp<9&??pt94IF^4H{r8Ka1dTU1-P35x0;G!H+)$4 p=3F{cYYov!tWrT=W^xMBo5G%oW0l)hVSUB~Z%?BneQqj@egIrpj^zLV From e358d4617a2325b12193c9a76604fb27b6b410e9 Mon Sep 17 00:00:00 2001 From: raffaelladevita Date: Wed, 21 Aug 2024 14:48:09 -0400 Subject: [PATCH 109/201] version bump --- common-tools/clara-io/pom.xml | 4 ++-- common-tools/clas-analysis/pom.xml | 20 ++++++++--------- common-tools/clas-detector/pom.xml | 10 ++++----- common-tools/clas-geometry/pom.xml | 4 ++-- common-tools/clas-io/pom.xml | 8 +++---- common-tools/clas-jcsg/pom.xml | 8 +++---- common-tools/clas-logging/pom.xml | 4 ++-- common-tools/clas-math/pom.xml | 4 ++-- common-tools/clas-physics/pom.xml | 4 ++-- common-tools/clas-reco/pom.xml | 16 +++++++------- common-tools/clas-tracking/pom.xml | 6 +++--- common-tools/clas-utils/pom.xml | 6 +++--- common-tools/cnuphys/magfield/pom.xml | 2 +- common-tools/cnuphys/swimmer/pom.xml | 2 +- common-tools/coat-lib/deployDistribution.sh | 2 +- common-tools/coat-lib/pom.xml | 24 ++++++++++----------- common-tools/parent/pom.xml | 2 +- common-tools/pom.xml | 4 ++-- common-tools/swim-tools/pom.xml | 6 +++--- parent/pom.xml | 2 +- pom.xml | 4 ++-- reconstruction/alert/pom.xml | 10 ++++----- reconstruction/band/pom.xml | 4 ++-- reconstruction/bg/pom.xml | 8 +++---- reconstruction/cnd/pom.xml | 2 +- reconstruction/cvt/pom.xml | 6 +++--- reconstruction/dc/pom.xml | 14 ++++++------ reconstruction/eb/pom.xml | 10 ++++----- reconstruction/ec/pom.xml | 6 +++--- reconstruction/fmt/pom.xml | 6 +++--- reconstruction/ft/pom.xml | 4 ++-- reconstruction/htcc/pom.xml | 4 ++-- reconstruction/ltcc/pom.xml | 4 ++-- reconstruction/mc/pom.xml | 4 ++-- reconstruction/mltn/pom.xml | 6 +++--- reconstruction/pom.xml | 4 ++-- reconstruction/raster/pom.xml | 4 ++-- reconstruction/rich/pom.xml | 6 +++--- reconstruction/rtpc/pom.xml | 6 +++--- reconstruction/swaps/pom.xml | 8 +++---- reconstruction/tof/pom.xml | 4 ++-- reconstruction/urwell/pom.xml | 6 +++--- reconstruction/vtx/pom.xml | 6 +++--- 43 files changed, 137 insertions(+), 137 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index b52690dae..2dbc38aff 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clara-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml index a8a4a241c..d99afad8e 100644 --- a/common-tools/clas-analysis/pom.xml +++ b/common-tools/clas-analysis/pom.xml @@ -3,63 +3,63 @@ 4.0.0 org.jlab.clas clas-analysis - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-utils - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-physics - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-geometry - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas swim-tools - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-detector - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml index b42c05462..a0bee6c64 100644 --- a/common-tools/clas-detector/pom.xml +++ b/common-tools/clas-detector/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-detector - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-utils - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -29,13 +29,13 @@ org.jlab.clas clas-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-geometry - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index 485ff43e6..4633be055 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-geometry - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 3fdff270e..5e35aca62 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -90,13 +90,13 @@ org.jlab.clas clas-utils - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-logging - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT compile diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index 844be0596..d587ed48b 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-jcsg - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -27,12 +27,12 @@ org.jlab.clas clas-geometry - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-detector - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT java3d diff --git a/common-tools/clas-logging/pom.xml b/common-tools/clas-logging/pom.xml index eccfc5294..704e52c6a 100644 --- a/common-tools/clas-logging/pom.xml +++ b/common-tools/clas-logging/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-logging - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml index bc38a112f..52ddd4acd 100644 --- a/common-tools/clas-math/pom.xml +++ b/common-tools/clas-math/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-math - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml index 23187d747..d5696db3f 100644 --- a/common-tools/clas-physics/pom.xml +++ b/common-tools/clas-physics/pom.xml @@ -4,14 +4,14 @@ org.jlab.clas clas-physics - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml index 5fb4f694d..013a03d6f 100644 --- a/common-tools/clas-reco/pom.xml +++ b/common-tools/clas-reco/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -42,37 +42,37 @@ org.jlab.clas clas-math - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-logging - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-physics - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-utils - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-detector - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index 609c24e16..6f2ccd342 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-tracking - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -22,7 +22,7 @@ org.jlab.clas swim-tools - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index be6fc8859..a837399d8 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-utils - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-logging - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.apache.commons diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml index 6e0557f22..f49f034ca 100644 --- a/common-tools/cnuphys/magfield/pom.xml +++ b/common-tools/cnuphys/magfield/pom.xml @@ -23,7 +23,7 @@ org.jlab.clas clas-math - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml index 5623cf55f..194cd949e 100644 --- a/common-tools/cnuphys/swimmer/pom.xml +++ b/common-tools/cnuphys/swimmer/pom.xml @@ -35,7 +35,7 @@ org.jlab.clas clas-math - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/coat-lib/deployDistribution.sh b/common-tools/coat-lib/deployDistribution.sh index 6d686d138..3e20865c6 100755 --- a/common-tools/coat-lib/deployDistribution.sh +++ b/common-tools/coat-lib/deployDistribution.sh @@ -8,7 +8,7 @@ cd `dirname $0` # Script is exporting existing Jar files to repository #------------------------------------------------------------------------------------------------- -VERSION=11.0.0 +VERSION=11.0.1 mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -Dfile=target/coat-libs-${VERSION}-SNAPSHOT.jar \ diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index c955dd875..bd15df394 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jlab.clas coat-libs - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT pom @@ -94,67 +94,67 @@ org.jlab.clas clas-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clara-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-utils - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-detector - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-analysis - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-geometry - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-physics - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas swim-tools - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-tracking - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index 8b7197886..6db98ed08 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas common-tools - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT pom diff --git a/common-tools/pom.xml b/common-tools/pom.xml index 17ac306a9..785bf5f42 100644 --- a/common-tools/pom.xml +++ b/common-tools/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas common-tools - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml index fa24dfd50..b0374374b 100644 --- a/common-tools/swim-tools/pom.xml +++ b/common-tools/swim-tools/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas swim-tools - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/parent/pom.xml b/parent/pom.xml index f2fd95532..9e23e6ce0 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas clas12rec - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index 9093d9550..662f3062a 100644 --- a/pom.xml +++ b/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas clas12 - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT pom org.jlab.clas clas12rec parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml index 8b96340a1..5c23a5d6f 100644 --- a/reconstruction/alert/pom.xml +++ b/reconstruction/alert/pom.xml @@ -13,31 +13,31 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT compile org.jlab.clas clas-tracking - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT compile org.jlab.clas clas-geometry - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT compile diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml index 39d28d395..0165e2ed9 100644 --- a/reconstruction/band/pom.xml +++ b/reconstruction/band/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/bg/pom.xml b/reconstruction/bg/pom.xml index eaadf6707..94afa6d27 100644 --- a/reconstruction/bg/pom.xml +++ b/reconstruction/bg/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-analysis - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml index 8a0bab6cf..ca1159b5d 100644 --- a/reconstruction/cnd/pom.xml +++ b/reconstruction/cnd/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml index 0d2d8c7b1..10ab46789 100644 --- a/reconstruction/cvt/pom.xml +++ b/reconstruction/cvt/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -47,7 +47,7 @@ org.jlab.clas clas-tracking - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index 64d5a57f4..9e5561620 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -28,25 +28,25 @@ org.jlab.clas clas-tracking - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-analysis - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -75,13 +75,13 @@ org.jlab.clas swim-tools - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-math - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml index 19920fadf..83bd36459 100644 --- a/reconstruction/eb/pom.xml +++ b/reconstruction/eb/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,25 +21,25 @@ org.jlab.clas clas-utils - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-analysis - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml index 1389e761d..2c3707516 100644 --- a/reconstruction/ec/pom.xml +++ b/reconstruction/ec/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-analysis - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml index 84bbed2fb..e73a48210 100644 --- a/reconstruction/fmt/pom.xml +++ b/reconstruction/fmt/pom.xml @@ -15,21 +15,21 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas swim-tools - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml index 2947fcbc4..8884a4283 100644 --- a/reconstruction/ft/pom.xml +++ b/reconstruction/ft/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml index 9bfca69af..321dd21f5 100644 --- a/reconstruction/htcc/pom.xml +++ b/reconstruction/htcc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml index b7673788b..0762e8671 100644 --- a/reconstruction/ltcc/pom.xml +++ b/reconstruction/ltcc/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml index 1d96e73e3..ee80e0253 100644 --- a/reconstruction/mc/pom.xml +++ b/reconstruction/mc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml index 5642944d7..991f6ab21 100644 --- a/reconstruction/mltn/pom.xml +++ b/reconstruction/mltn/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -34,13 +34,13 @@ org.jlab.clas clas-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index 368fdfcaa..ebbad11fa 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -3,14 +3,14 @@ org.jlab.clas reconstruction - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml index e2dad6dd9..bb0568373 100644 --- a/reconstruction/raster/pom.xml +++ b/reconstruction/raster/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml index 3b1695702..93413b0b5 100644 --- a/reconstruction/rich/pom.xml +++ b/reconstruction/rich/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml index 416590d49..b8e912237 100644 --- a/reconstruction/rtpc/pom.xml +++ b/reconstruction/rtpc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,12 +21,12 @@ org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-tracking - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT compile diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml index 8b194d0a8..e72c64e6a 100644 --- a/reconstruction/swaps/pom.xml +++ b/reconstruction/swaps/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-detector - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml index 64f7bb6f1..6ca28c96a 100644 --- a/reconstruction/tof/pom.xml +++ b/reconstruction/tof/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/urwell/pom.xml b/reconstruction/urwell/pom.xml index 76643fa1b..e9cc63c63 100644 --- a/reconstruction/urwell/pom.xml +++ b/reconstruction/urwell/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-analysis - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml index 9f0eea5c4..bfa4dab29 100644 --- a/reconstruction/vtx/pom.xml +++ b/reconstruction/vtx/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -33,13 +33,13 @@ org.jlab.clas swim-tools - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar org.jlab.clas clas-tracking - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT jar From 1a62b5711f46b74461bedc22e9c9be96ecdfb4a8 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 22 Aug 2024 12:15:38 -0400 Subject: [PATCH 110/201] more 17 instances ... (#316) --- common-tools/cnuphys/parent/pom.xml | 2 +- common-tools/coat-lib/pom.xml | 2 +- parent/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index 6abb26d7e..0590ce905 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -49,7 +49,7 @@ 3.13.0 UTF-8 - 11 + 17 diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index bd15df394..6321a0ae2 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -187,7 +187,7 @@ 3.8.0 UTF-8 - 11 + 17 diff --git a/parent/pom.xml b/parent/pom.xml index 9e23e6ce0..2c721860b 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -83,7 +83,7 @@ maven-compiler-plugin 3.13.0 - 11 + 17 UTF-8 From 1fb9a239501b3076853d7edc4b2ab8ee423ff084 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 14:24:51 -0400 Subject: [PATCH 111/201] add convenience method --- .../main/java/org/jlab/clas/reco/ReconstructionEngine.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java index 8a4e88a62..79b4fc6f1 100644 --- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java +++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java @@ -129,6 +129,10 @@ public void requireConstants(List tables){ } } + public void requireConstants(String... tables){ + requireConstants(Arrays.asList(tables)); + } + public final String getEngineConfiguration(){ return this.engineConfiguration; } From c77843f2dd4143bedf266184862e015b5ce25bec Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 16:22:09 -0400 Subject: [PATCH 112/201] cleanup --- .../analysis/postprocess/RebuildScalers.java | 64 +---- .../analysis/postprocess/Tag1ToEvent.java | 33 +-- .../org/jlab/analysis/postprocess/Util.java | 226 ++++++++++++++++++ 3 files changed, 230 insertions(+), 93 deletions(-) create mode 100644 common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Util.java diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/RebuildScalers.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/RebuildScalers.java index a471522b8..8e99a8ab6 100644 --- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/RebuildScalers.java +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/RebuildScalers.java @@ -6,7 +6,6 @@ import java.util.List; import org.jlab.detector.calib.utils.ConstantsManager; import org.jlab.detector.calib.utils.RCDBConstants; -import org.jlab.detector.helicity.HelicitySequence; import org.jlab.detector.scalers.DaqScalers; import org.jlab.detector.helicity.HelicitySequenceManager; import org.jlab.jnp.hipo4.data.Bank; @@ -111,7 +110,7 @@ public static void main(String[] args) { runScalerBank = ds.createRunBank(writer.getSchemaFactory()); helScalerBank = ds.createHelicityBank(writer.getSchemaFactory()); - RebuildScalers.assignScalerHelicity(event, helScalerBank, helSeq); + Util.assignScalerHelicity(event, helScalerBank, helSeq); // put modified HEL/RUN::scaler back in the event: event.write(runScalerBank); @@ -125,65 +124,4 @@ public static void main(String[] args) { writer.close(); } - /** - * Assign the delay-corrected helicity to the HEL::scaler bank's rows - * @param event the event containing the scaler reading - * @param bank the HEL::scaler bank - * @param seq previously initialized helicity sequence - */ - public static void assignScalerHelicity(Event event, Bank bank, HelicitySequenceManager seq) { - - // Struck (helicity) scaler readout is always slightly after the helicity - // state change, i.e., as registered in the FADCs, so its true helicity - // is offset by one state from its event: - final int readoutStateOffset = -1; - - // Rows in the HEL::scaler bank correspond to the most recent, consecutive, - // time-ordered, T-stable intervals. The first row is the earliest in - // time, and the last row is the latest. Here we loop over them: - for (int row=0; row>> Initializing helicity configuration from CCDB ...\n"); ConstantsManager conman = new ConstantsManager(); conman.init("/runcontrol/hwp","/runcontrol/helicity"); - final int run = getRunNumber(parser.getInputList().get(0)); + final int run = Util.getRunNumber(parser.getInputList().get(0)); IndexedTable helTable = conman.getConstants(run, "/runcontrol/helicity"); // Initialize the scaler sequence from tag-1 events: @@ -137,7 +137,7 @@ public static void main(String[] args) { if (doHelicityDelay) { recEventBank.putByte("helicity",0,hb.value()); recEventBank.putByte("helicityRaw",0,hbraw.value()); - RebuildScalers.assignScalerHelicity(runConfigBank.getLong("timestamp",0), helScalerBank, helSeq); + Util.assignScalerHelicity(runConfigBank.getLong("timestamp",0), helScalerBank, helSeq); } // Write beam charge to REC::Event: @@ -154,7 +154,7 @@ public static void main(String[] args) { writer.addEvent(event, event.getEventTag()); // Copy config banks to new, tag-1 events: - createTag1Events(writer, event, configEvent, configBanks); + Util.createTag1Events(writer, event, configEvent, configBanks); } reader.close(); @@ -171,32 +171,5 @@ public static void main(String[] args) { LOGGER.info(String.format("Tag1ToEvent: Good Charge Fraction: %.2f%%",100*(float)goodCharge/(goodCharge+badCharge))); } - private static void createTag1Events(HipoWriterSorted writer, Event source, Event destination, Bank... banks) { - destination.reset(); - for (Bank bank : banks) { - source.read(bank); - if (bank.getRows()>0) - destination.write(bank); - } - if (!destination.isEmpty()) - writer.addEvent(destination,1); - } - - private static int getRunNumber(String... filenames) { - Event event = new Event(); - for (String filename : filenames) { - HipoReader reader = new HipoReader(); - reader.open(filename); - Bank bank = new Bank(reader.getSchemaFactory().getSchema("RUN::config")); - while (reader.hasNext()) { - reader.nextEvent(event); - event.read(bank); - if (bank.getRows()>0 && bank.getInt("run",0)>0) - return bank.getInt("run",0); - } - } - return -1; - } - } diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Util.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Util.java new file mode 100644 index 000000000..7ac75bcea --- /dev/null +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Util.java @@ -0,0 +1,226 @@ +package org.jlab.analysis.postprocess; + +import java.sql.Time; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.jlab.jnp.hipo4.data.Bank; +import org.jlab.jnp.hipo4.data.Event; +import org.jlab.jnp.hipo4.data.SchemaFactory; +import org.jlab.jnp.hipo4.io.HipoReader; +import org.jlab.jnp.hipo4.io.HipoWriterSorted; + +import org.jlab.utils.groups.IndexedTable; +import org.jlab.detector.calib.utils.ConstantsManager; +import org.jlab.detector.calib.utils.RCDBConstants; + +import org.jlab.detector.scalers.DaqScalers; +import org.jlab.detector.helicity.HelicitySequence; +import org.jlab.detector.helicity.HelicitySequenceDelayed; +import org.jlab.detector.helicity.HelicitySequenceManager; + +/** + * Static utility methods for postprocessing. + * @author baltzell + */ +class Util { + + static final Logger logger = Logger.getLogger(Util.class.getName()); + + /** + * Assign the delay-corrected helicity to the HEL::scaler bank's rows + * @param event the event containing the scaler reading + * @param bank the HEL::scaler bank + * @param seq previously initialized helicity sequence + */ + public static void assignScalerHelicity(Event event, Bank bank, HelicitySequenceManager seq) { + + // Struck (helicity) scaler readout is always slightly after the helicity + // state change, i.e., as registered in the FADCs, so its true helicity + // is offset by one state from its event: + final int readoutStateOffset = -1; + + // Rows in the HEL::scaler bank correspond to the most recent, consecutive, + // time-ordered, T-stable intervals. The first row is the earliest in + // time, and the last row is the latest. Here we loop over them: + for (int row=0; row filenames, SchemaFactory schema, boolean restream, ConstantsManager conman) { + final int run = getRunNumber(filenames); + IndexedTable helTable = conman.getConstants(run, "/runcontrol/helicity"); + HelicitySequenceDelayed seq = null; + if (helTable.getIntValue("delay", 0,0,0) == 0) { + logger.warning("CCDB's helicity delay is zero, disabling helicity postprocessing."); + } + else { + seq = new HelicitySequenceDelayed(helTable); + if (restream) seq.addStream(schema, conman, filenames); + else seq.initialize(filenames); + } + return seq; + } + + /** + * Rebuild the RUN::scaler and HEL::scaler banks from RAW::scaler + * @param schema + * @param conman + * @param runConfig a RUN::config bank + * @param rawScaler a RAW::scaler bank + * @return rebuilt banks + */ + public static Bank[] rebuildScalers(SchemaFactory schema, ConstantsManager conman, Bank runConfig, Bank rawScaler) { + if (runConfig.getRows()>0 && rawScaler.getRows()>0) { + int run = runConfig.getInt("run", 0); + IndexedTable fcup = conman.getConstants(run, "/runcontrol/fcup"); + IndexedTable slm = conman.getConstants(run, "/runcontrol/slm"); + IndexedTable hel = conman.getConstants(run, "/runcontrol/helicity"); + IndexedTable dsc = conman.getConstants(run, "/daq/config/scalers/dsc1"); + if (fcup != null) { + DaqScalers ds; + if (dsc.getIntValue("frequency",0,0,0) < 2e5) { + ds = DaqScalers.create(rawScaler, fcup, slm, hel, dsc); + } + else { + RCDBConstants rcdb = conman.getRcdbConstants(run); + Time rst = rcdb.getTime("run_start_time"); + Date uet = new Date(runConfig.getInt("unixtime",0)*1000L); + ds = DaqScalers.create(rawScaler, fcup, slm, hel, rst, uet); + } + Bank runScaler = ds.createRunBank(schema); + Bank helScaler = ds.createHelicityBank(schema); + return new Bank[]{runScaler,helScaler}; + } + } + return new Bank[]{}; + } + + /** + * Create a new file with all RUN::scaler and HEL::scaler banks rebuilt + * from RAW::scaler + * @param conman + * @param inputFile + * @param outputFile + */ + public static void rebuildScalers(ConstantsManager conman, String inputFile, String outputFile) { + try (HipoWriterSorted w = new HipoWriterSorted()) { + HipoReader r = new HipoReader(); + r.open(inputFile); + Event event = new Event(); + w.setCompressionType(2); + w.getSchemaFactory().copy(r.getSchemaFactory()); + w.open(outputFile); + Bank runConfig = new Bank(r.getSchemaFactory().getSchema("RUN::config")); + Bank rawScaler = new Bank(r.getSchemaFactory().getSchema("RAW::scaler")); + Bank runScaler = new Bank(r.getSchemaFactory().getSchema("RUN::scaler")); + Bank helScaler = new Bank(r.getSchemaFactory().getSchema("HEL::scaler")); + while (r.hasNext()) { + r.nextEvent(event); + event.read(runConfig); + event.read(rawScaler); + event.remove(runScaler.getSchema()); + event.remove(helScaler.getSchema()); + for (Bank b : rebuildScalers(r.getSchemaFactory(), conman, runConfig, rawScaler)) { + event.write(b); + } + w.addEvent(event, event.getEventTag()); + } + } + } + + /** + * Get the first "good" run number in RUN::config + * @param filenames + * @return run number + */ + public static int getRunNumber(List filenames) { + Event event = new Event(); + for (String filename : filenames) { + HipoReader reader = new HipoReader(); + reader.open(filename); + Bank bank = reader.getBank("RUN::config"); + while (reader.hasNext()) { + reader.nextEvent(event); + event.read(bank); + if (bank.getRows()>0 && bank.getInt("run",0)>0) { + logger.log(Level.INFO, "Found first good run number: {0}", bank.getInt("run",0)); + return bank.getInt("run",0); + } + } + } + return -1; + } + + /** + * @param filenames + * @return first "good" RUN::config.run found + */ + public static int getRunNumber(String... filenames) { + return getRunNumber(Arrays.asList(filenames)); + } + + public static void createTag1Events(HipoWriterSorted writer, Event source, Event destination, Bank... banks) { + destination.reset(); + for (Bank bank : banks) { + source.read(bank); + if (bank.getRows()>0) + destination.write(bank); + } + if (!destination.isEmpty()) + writer.addEvent(destination,1); + } + +} From 8acf1544ae39204d473542a089bd7c3cd822e6a0 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 16:23:20 -0400 Subject: [PATCH 113/201] add postprocess engine --- .../jlab/analysis/postprocess/Processor.java | 240 ++++++++++++++++++ reconstruction/pom.xml | 1 + reconstruction/pp/pom.xml | 40 +++ .../jlab/service/postproc/PostprocEngine.java | 55 ++++ 4 files changed, 336 insertions(+) create mode 100644 common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java create mode 100644 reconstruction/pp/pom.xml create mode 100644 reconstruction/pp/src/main/java/org/jlab/service/postproc/PostprocEngine.java diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java new file mode 100644 index 000000000..b54212f33 --- /dev/null +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java @@ -0,0 +1,240 @@ +package org.jlab.analysis.postprocess; + +import java.io.File; +import java.nio.file.FileSystems; +import java.nio.file.PathMatcher; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.logging.Logger; +import org.jlab.logging.DefaultLogger; + +import org.jlab.jnp.hipo4.data.Bank; +import org.jlab.jnp.hipo4.data.Event; +import org.jlab.jnp.hipo4.data.SchemaFactory; +import org.jlab.jnp.hipo4.io.HipoReader; +import org.jlab.io.base.DataBank; +import org.jlab.io.base.DataEvent; +import org.jlab.io.hipo.HipoDataBank; + +import org.jlab.detector.calib.utils.ConstantsManager; +import org.jlab.detector.scalers.DaqScalers; +import org.jlab.detector.scalers.DaqScalersSequence; +import org.jlab.detector.helicity.HelicityBit; +import org.jlab.detector.helicity.HelicitySequenceDelayed; + +/** + * + * @author baltzell + */ +public class Processor { + + static final Logger logger = Logger.getLogger(Util.class.getName()); + + public static final String CCDB_TABLES[] = {"/runcontrol/fcup","/runcontrol/slm", + "/runcontrol/helicity","/daq/config/scalers/dsc1","/runcontrol/hwp"}; + public static final String DEF_PRELOAD_GLOB = "*.{hipo,h5}"; + + private final String outputPrefix = "tmp_"; + + private boolean initialized; + private ConstantsManager conman = null; + private SchemaFactory schemaFactory = null; + private DaqScalersSequence chargeSequence = null; + private HelicitySequenceDelayed helicitySequence = null; + + public Processor(File file, boolean restream) { + configure(restream, Arrays.asList(file.getAbsolutePath())); + } + + public Processor(String dir, boolean restream) { + configure(restream, findPreloadFiles(dir,DEF_PRELOAD_GLOB)); + } + + public Processor(String dir, String glob, boolean restream) { + configure(restream, findPreloadFiles(dir,glob)); + } + + private void configure(boolean restream, List preloadFiles) { + if (preloadFiles.isEmpty()) { + logger.warning("<<<< No preload files found, postprocessing disabled."); + initialized = false; + } else { + HipoReader r = new HipoReader(); + r.open(preloadFiles.get(0)); + conman = new ConstantsManager(); + conman.init(CCDB_TABLES); + schemaFactory = r.getSchemaFactory(); + helicitySequence = Util.getHelicity(preloadFiles, schemaFactory, restream, conman); + chargeSequence = DaqScalersSequence.readSequence(preloadFiles); + r.close(); + initialized = true; + } + } + + /** + * Get a list of files to preload, from one directory and a glob. + * @param dir + * @param glob + * @return list of preload files + */ + private static List findPreloadFiles(String dir, String glob) { + List ret = new ArrayList<>(); + if (dir != null) { + PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:"+dir+"/"+glob); + for (File f : (new File(dir)).listFiles()) { + if (matcher.matches(f.toPath())) + ret.add(f.getPath()); + } + } + return ret; + } + + /** + * Modify REC::Event/HEL::scaler with the delay-corrected helicity + * @param event + * @param runConfig + * @param recEvent + */ + private void processEventHelicity(DataEvent event, DataBank runConfig, DataBank recEvent) { + HelicityBit hb = helicitySequence.search(runConfig.getLong("timestamp", 0)); + HelicityBit hbraw = helicitySequence.getHalfWavePlate() ? HelicityBit.getFlipped(hb) : hb; + recEvent.setByte("helicity",0,hb.value()); + recEvent.setByte("helicityRaw",0,hbraw.value()); + DataBank helScaler = event.getBank("HEL::scaler"); + if (helScaler.rows()>0) { + event.removeBank("HEL::scaler"); + Util.assignScalerHelicity(runConfig.getLong("timestamp",0), ((HipoDataBank)helScaler).getBank(), helicitySequence); + event.appendBank(helScaler); + } + } + + /** + * Modify REC::Event/HEL::scaler with the delay-corrected helicity + * @param event + * @param runConfig + * @param recEvent + */ + private void processEventHelicity(Event event, Bank runConfig, Bank recEvent) { + HelicityBit hb = helicitySequence.search(runConfig.getLong("timestamp", 0)); + HelicityBit hbraw = helicitySequence.getHalfWavePlate() ? HelicityBit.getFlipped(hb) : hb; + recEvent.setByte("helicity",0,hb.value()); + recEvent.setByte("helicityRaw",0,hbraw.value()); + Bank helScaler = new Bank(schemaFactory.getSchema("HEL::scaler")); + event.read(helScaler); + if (helScaler.getRows()>0) { + event.remove(schemaFactory.getSchema("HEL::scaler")); + Util.assignScalerHelicity(runConfig.getLong("timestamp",0), helScaler, helicitySequence); + //Util.assignScalerHelicity(runConfig.getLong("timestamp",0), ((HipoDataBank)helScaler).getBank(), helicitySequence); + event.write(helScaler); + } + } + + /** + * Modify REC::Event for beam charge and livetime + * @param runConfig + * @param recEvent + */ + private void processEventScalers(DataBank runConfig, DataBank recEvent) { + DaqScalers ds = chargeSequence.get(runConfig.getLong("timestamp", 0)); + if (ds != null) { + recEvent.setFloat("beamCharge",0, (float) ds.dsc2.getBeamChargeGated()); + recEvent.setDouble("liveTime",0,ds.dsc2.getLivetime()); + } + } + + /** + * Modify REC::Event for beam charge and livetime + * @param runConfig + * @param recEvent + */ + private void processEventScalers(Bank runConfig, Bank recEvent) { + DaqScalers ds = chargeSequence.get(runConfig.getLong("timestamp", 0)); + if (ds != null) { + recEvent.putFloat("beamCharge",0, (float) ds.dsc2.getBeamChargeGated()); + recEvent.putDouble("liveTime",0,ds.dsc2.getLivetime()); + } + } + + /** + * Postprocess one event + * @param e + */ + public void processEvent(DataEvent e) { + if (!initialized) return; + if (!e.hasBank("RUN::config")) return; + if (!e.hasBank("REC::Event")) return; + DataBank runConfig = e.getBank("RUN::config"); + DataBank recEvent = e.getBank("REC::Event"); + if (runConfig.rows()<1 || recEvent.rows()<1) return; + e.removeBank("REC::Event"); + if (helicitySequence != null) processEventHelicity(e, runConfig, recEvent); + if (chargeSequence != null) processEventScalers(runConfig, recEvent); + e.appendBank(recEvent); + } + + /** + * Postprocess one event + * @param e + */ + public void processEvent(Event e) { + if (!initialized) return; + if (!e.hasBank(schemaFactory.getSchema("RUN::config"))) return; + if (!e.hasBank(schemaFactory.getSchema("REC::Event"))) return; + Bank runConfig = new Bank(schemaFactory.getSchema("RUN::config")); + Bank recEvent = new Bank(schemaFactory.getSchema("REC::Event")); + e.read(runConfig); + e.read(recEvent); + if (runConfig.getRows()<1 || recEvent.getRows()<1) return; + e.remove(schemaFactory.getSchema("REC::Event")); + if (helicitySequence != null) processEventHelicity(e, runConfig, recEvent); + if (chargeSequence != null) processEventScalers(runConfig, recEvent); + e.write(recEvent); + } + + /** + * Create rebuilt files from preload files. + * @param preloadFiles + * @return map of rebuilt:preload files + */ + public Map rebuild(String dir, List preloadFiles) { + File d = new File(dir); + if (!d.canWrite()) { + throw new RuntimeException("No write permissions on "+dir); + } + Map rebuiltFiles = new HashMap<>(); + for (String preloadFile : preloadFiles) { + String rebuiltFile = dir+"/"+outputPrefix+preloadFile.replace(dir+"/",""); + Util.rebuildScalers(conman, preloadFile, rebuiltFile); + rebuiltFiles.put(rebuiltFile,preloadFile); + } + return rebuiltFiles; + } + + /** + * Replace files with new ones. + * @param files map of new:old filenames + */ + public static void replace(Map files) { + for (String rebuiltFile : files.keySet()) { + new File(files.get(rebuiltFile)).delete(); + new File(rebuiltFile).renameTo(new File(files.get(rebuiltFile))); + } + } + + /** + * Replace preload files with rebuilt ones. + */ + public void rebuildAndReplace(List preloadFiles) { + replace(rebuild(".",preloadFiles)); + } + + public static void main(String args[]) { + DefaultLogger.debug(); + Processor p = new Processor(System.getenv("HOME")+"/tmp","r*.hipo",false); + //p.rebuildAndReplace(); + } + +} diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index ebbad11fa..47984972e 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -35,5 +35,6 @@ urwell alert bg + pp diff --git a/reconstruction/pp/pom.xml b/reconstruction/pp/pom.xml new file mode 100644 index 000000000..82c4964d7 --- /dev/null +++ b/reconstruction/pp/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + org.jlab.clas12.detector + clas12detector-pp + 1.0-SNAPSHOT + jar + + + org.jlab.clas + clas12rec + ../../parent/pom.xml + 11.0.0-SNAPSHOT + + + + + + org.jlab.clas + clas-io + 11.0.0-SNAPSHOT + + + + org.jlab.clas + clas-reco + 11.0.0-SNAPSHOT + + + + org.jlab.clas + clas-analysis + 11.0.0-SNAPSHOT + + + + diff --git a/reconstruction/pp/src/main/java/org/jlab/service/postproc/PostprocEngine.java b/reconstruction/pp/src/main/java/org/jlab/service/postproc/PostprocEngine.java new file mode 100644 index 000000000..9c463c8bd --- /dev/null +++ b/reconstruction/pp/src/main/java/org/jlab/service/postproc/PostprocEngine.java @@ -0,0 +1,55 @@ +package org.jlab.service.postproc; + +import java.util.logging.Logger; +import org.jlab.analysis.postprocess.Processor; +import org.jlab.clas.reco.ReconstructionEngine; +import org.jlab.io.base.DataEvent; + +/** + * Post-processing as an engine. + * @author baltzell + */ +public class PostprocEngine extends ReconstructionEngine { + + public static final String CONF_PRELOAD_FILE = "preloadFile"; + public static final String CONF_PRELOAD_DIR = "preloadDir"; + public static final String CONF_PRELOAD_GLOB = "preloadGlob"; + public static final String CONF_RESTREAM_HELICITY = "restream"; + public static final String CONF_REBUILD_SCALERS = "rebuild"; + + static final Logger logger = Logger.getLogger(PostprocEngine.class.getName()); + + Processor processor = null; + + public PostprocEngine() { + super("PP", "baltzell", "1.0"); + } + + @Override + public boolean init() { + requireConstants(Processor.CCDB_TABLES); + if (getEngineConfigString(CONF_PRELOAD_FILE) != null) { + if (getEngineConfigString(CONF_PRELOAD_DIR) != null) { + } + } + if (getEngineConfigString(CONF_PRELOAD_DIR) != null) { + processor = new Processor( + getEngineConfigString(CONF_PRELOAD_DIR), + getEngineConfigString(CONF_PRELOAD_GLOB, Processor.DEF_PRELOAD_GLOB), + Boolean.parseBoolean(getEngineConfigString(CONF_RESTREAM_HELICITY,"false"))); + } + if (null != getEngineConfigString(CONF_REBUILD_SCALERS)) { + if (Boolean.getBoolean(getEngineConfigString(CONF_REBUILD_SCALERS))) { + //processor.rebuildAndReplace(); + } + } + return true; + } + + @Override + public boolean processDataEvent(DataEvent event) { + if (processor != null) processor.processEvent(event); + return true; + } + +} From a8c63bd6daeb1b409aaa80e944fb8e8ea6e8b79d Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 16:24:50 -0400 Subject: [PATCH 114/201] plug postprocessing in to recon-util --- .../org/jlab/clas/reco/EngineProcessor.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java index 0e1141ff7..2d706a8e2 100644 --- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java +++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java @@ -27,6 +27,7 @@ public class EngineProcessor { public static final String ENGINE_CLASS_BG = "org.jlab.service.bg.BackgroundEngine"; + public static final String ENGINE_CLASS_PP = "org.jlab.service.pp.PostprocEngine"; private final Map processorEngines = new LinkedHashMap<>(); private static final Logger LOGGER = Logger.getLogger(EngineProcessor.class.getPackage().getName()); @@ -45,7 +46,7 @@ private ReconstructionEngine findEngine(String clazz) { return null; } - public void setBackgroundFiles(String filenames) { + private void setBackgroundFiles(String filenames) { if (findEngine(ENGINE_CLASS_BG) == null) { LOGGER.info("Adding BackgroundEngine for -B option."); addEngine("BG",ENGINE_CLASS_BG); @@ -54,6 +55,15 @@ public void setBackgroundFiles(String filenames) { findEngine(ENGINE_CLASS_BG).init(); } + private void setPreloadFiles(String filenames) { + if (findEngine(ENGINE_CLASS_PP) == null) { + LOGGER.info("Adding PostprocEngine for -P option."); + addEngine("BG",ENGINE_CLASS_PP); + } + findEngine(ENGINE_CLASS_PP).engineConfigMap.put("preloadFile", filenames); + findEngine(ENGINE_CLASS_PP).init(); + } + private void updateDictionary(HipoDataSource source, HipoDataSync sync){ SchemaFactory fsync = sync.getWriter().getSchemaFactory(); SchemaFactory fsrc = source.getReader().getSchemaFactory(); @@ -343,6 +353,7 @@ public static void main(String[] args){ parser.addOption("-d","1","Debug level [0 - OFF, 1 - ON/default]"); parser.addOption("-S",null,"schema directory"); parser.addOption("-B",null,"background file"); + parser.addOption("-P",null,"preload file for post-processing"); parser.parse(args); @@ -401,6 +412,10 @@ else if (config>0){ // command-line filename for background merging overrides YAML: if (parser.getOption("-B").stringValue() != null) proc.setBackgroundFiles(parser.getOption("-B").stringValue()); + + // command-line filename for post-processing overrides YAML: + if (parser.getOption("-P").stringValue() != null) + proc.setPreloadFiles(parser.getOption("-P").stringValue()); proc.processFile(inputFile,outputFile,nskip,nevents); } From c65d660811e99cd168ec6848d0f872a083a58bba Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 16:28:55 -0400 Subject: [PATCH 115/201] file overrides dir --- .../java/org/jlab/service/postproc/PostprocEngine.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/reconstruction/pp/src/main/java/org/jlab/service/postproc/PostprocEngine.java b/reconstruction/pp/src/main/java/org/jlab/service/postproc/PostprocEngine.java index 9c463c8bd..66e7819a6 100644 --- a/reconstruction/pp/src/main/java/org/jlab/service/postproc/PostprocEngine.java +++ b/reconstruction/pp/src/main/java/org/jlab/service/postproc/PostprocEngine.java @@ -1,5 +1,6 @@ package org.jlab.service.postproc; +import java.io.File; import java.util.logging.Logger; import org.jlab.analysis.postprocess.Processor; import org.jlab.clas.reco.ReconstructionEngine; @@ -29,8 +30,10 @@ public PostprocEngine() { public boolean init() { requireConstants(Processor.CCDB_TABLES); if (getEngineConfigString(CONF_PRELOAD_FILE) != null) { - if (getEngineConfigString(CONF_PRELOAD_DIR) != null) { - } + if (getEngineConfigString(CONF_PRELOAD_DIR) != null) + logger.warning("PostprocEngine:: Using preloadFile, ignoring preloadDir."); + processor = new Processor(new File(getEngineConfigString(CONF_PRELOAD_FILE)), + Boolean.parseBoolean(getEngineConfigString(CONF_RESTREAM_HELICITY,"false"))); } if (getEngineConfigString(CONF_PRELOAD_DIR) != null) { processor = new Processor( From d9f114408c101ae87cab84ebdc15ac111b7efb93 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 17:47:39 -0400 Subject: [PATCH 116/201] fix class name --- .../src/main/java/org/jlab/clas/reco/EngineProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java index 2d706a8e2..b85916273 100644 --- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java +++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java @@ -27,7 +27,7 @@ public class EngineProcessor { public static final String ENGINE_CLASS_BG = "org.jlab.service.bg.BackgroundEngine"; - public static final String ENGINE_CLASS_PP = "org.jlab.service.pp.PostprocEngine"; + public static final String ENGINE_CLASS_PP = "org.jlab.service.postproc.PostprocEngine"; private final Map processorEngines = new LinkedHashMap<>(); private static final Logger LOGGER = Logger.getLogger(EngineProcessor.class.getPackage().getName()); From e4ebfd26d3b3f24d08e5bf87d745effffaad4834 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 17:47:54 -0400 Subject: [PATCH 117/201] cleanup --- .../main/java/org/jlab/analysis/postprocess/Processor.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java index b54212f33..b99b90a36 100644 --- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java @@ -127,7 +127,6 @@ private void processEventHelicity(Event event, Bank runConfig, Bank recEvent) { if (helScaler.getRows()>0) { event.remove(schemaFactory.getSchema("HEL::scaler")); Util.assignScalerHelicity(runConfig.getLong("timestamp",0), helScaler, helicitySequence); - //Util.assignScalerHelicity(runConfig.getLong("timestamp",0), ((HipoDataBank)helScaler).getBank(), helicitySequence); event.write(helScaler); } } @@ -199,7 +198,7 @@ public void processEvent(Event e) { * @param preloadFiles * @return map of rebuilt:preload files */ - public Map rebuild(String dir, List preloadFiles) { + private Map rebuild(String dir, List preloadFiles) { File d = new File(dir); if (!d.canWrite()) { throw new RuntimeException("No write permissions on "+dir); @@ -217,7 +216,7 @@ public Map rebuild(String dir, List preloadFiles) { * Replace files with new ones. * @param files map of new:old filenames */ - public static void replace(Map files) { + private static void replace(Map files) { for (String rebuiltFile : files.keySet()) { new File(files.get(rebuiltFile)).delete(); new File(rebuiltFile).renameTo(new File(files.get(rebuiltFile))); @@ -227,7 +226,7 @@ public static void replace(Map files) { /** * Replace preload files with rebuilt ones. */ - public void rebuildAndReplace(List preloadFiles) { + private void rebuildAndReplace(List preloadFiles) { replace(rebuild(".",preloadFiles)); } From 4d4366a84b39d130f59e22db5778c6d225a2b6b3 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 20 Aug 2024 19:52:21 -0400 Subject: [PATCH 118/201] add no-reuse-events option for background merging --- .../org/jlab/service/bg/BackgroundEngine.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java index 8c464c35e..9ca9e9406 100644 --- a/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java +++ b/reconstruction/bg/src/main/java/org/jlab/service/bg/BackgroundEngine.java @@ -20,9 +20,12 @@ public class BackgroundEngine extends ReconstructionEngine { public static final String CONF_ORDERS = "orders"; public static final String CONF_SUPPRESS_DOUBLES = "suppressDoubles"; public static final String CONF_PRESERVE_ORDER = "preserveOrder"; + public static final String CONF_REUSE_EVENTS = "reuseEvents"; static final Logger logger = Logger.getLogger(BackgroundEngine.class.getName()); + int filesUsed = 0; + boolean reuseEvents = true; EventMerger bgmerger = null; HipoDataSource bgreader = null; LinkedList bgfilenames = new LinkedList<>(); @@ -40,6 +43,11 @@ public boolean init() { public boolean init(String... filenames) { bgfilenames.clear(); + String detectors = getEngineConfigString(CONF_DETECTORS,"DC,FTOF"); + String orders = getEngineConfigString(CONF_ORDERS,"NOMINAL"); + boolean suppressDoubles = Boolean.valueOf(getEngineConfigString(CONF_SUPPRESS_DOUBLES,"true")); + boolean preserveOrder = Boolean.valueOf(getEngineConfigString(CONF_PRESERVE_ORDER,"true")); + boolean reuseEvents = Boolean.valueOf(getEngineConfigString(CONF_REUSE_EVENTS,"false")); for (String filename : filenames) { File f = new File(filename); if (!f.exists() || !f.isFile() || !f.canRead()) { @@ -49,20 +57,21 @@ public boolean init(String... filenames) { logger.log(Level.INFO,"BackgroundEngine:: reading {0}",filename); bgfilenames.add(filename); } - String detectors = getEngineConfigString(CONF_DETECTORS,"DC,FTOF"); - String orders = getEngineConfigString(CONF_ORDERS,"NOMINAL"); - Boolean suppressDoubles = Boolean.valueOf(getEngineConfigString(CONF_SUPPRESS_DOUBLES,"true")); - Boolean preserveOrder = Boolean.valueOf(getEngineConfigString(CONF_PRESERVE_ORDER,"true")); bgmerger = new EventMerger(detectors.split(","), orders.split(","), suppressDoubles, preserveOrder); openNextFile(); return true; } private void openNextFile() { + if (filesUsed>0 && filesUsed%bgfilenames.size()==0) { + if (reuseEvents) logger.info("BackgroundEngine:: Reopening previously used file."); + else throw new RuntimeException("BackgroundEngine:: Ran out of events."); + } String filename = bgfilenames.remove(); bgfilenames.add(filename); bgreader = new HipoDataSource(); bgreader.open(filename); + filesUsed++; } synchronized public DataEvent getBackgroundEvent() { From d0dbcd8b7fee647551ff22d6e6b5b85e00cb76de Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 21 Aug 2024 18:22:13 -0400 Subject: [PATCH 119/201] pp->postproc --- reconstruction/pom.xml | 2 +- reconstruction/{pp => postproc}/pom.xml | 2 +- .../src/main/java/org/jlab/service/postproc/PostprocEngine.java | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename reconstruction/{pp => postproc}/pom.xml (95%) rename reconstruction/{pp => postproc}/src/main/java/org/jlab/service/postproc/PostprocEngine.java (100%) diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index 47984972e..99053fa2f 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -35,6 +35,6 @@ urwell alert bg - pp + postproc diff --git a/reconstruction/pp/pom.xml b/reconstruction/postproc/pom.xml similarity index 95% rename from reconstruction/pp/pom.xml rename to reconstruction/postproc/pom.xml index 82c4964d7..6ba89c495 100644 --- a/reconstruction/pp/pom.xml +++ b/reconstruction/postproc/pom.xml @@ -5,7 +5,7 @@ 4.0.0 org.jlab.clas12.detector - clas12detector-pp + clas12detector-postproc 1.0-SNAPSHOT jar diff --git a/reconstruction/pp/src/main/java/org/jlab/service/postproc/PostprocEngine.java b/reconstruction/postproc/src/main/java/org/jlab/service/postproc/PostprocEngine.java similarity index 100% rename from reconstruction/pp/src/main/java/org/jlab/service/postproc/PostprocEngine.java rename to reconstruction/postproc/src/main/java/org/jlab/service/postproc/PostprocEngine.java From ffb636481b78aeed48dd46c7150d998bc0998e3c Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 23 Aug 2024 10:56:38 -0400 Subject: [PATCH 120/201] fix dependency version numbers --- reconstruction/postproc/pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/reconstruction/postproc/pom.xml b/reconstruction/postproc/pom.xml index 6ba89c495..27cc2a7af 100644 --- a/reconstruction/postproc/pom.xml +++ b/reconstruction/postproc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-io - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-reco - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT org.jlab.clas clas-analysis - 11.0.0-SNAPSHOT + 11.0.1-SNAPSHOT From bf917b9e9f7ea1de9edeefff021cbb23c7d69ce5 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 26 Aug 2024 10:17:58 -0400 Subject: [PATCH 121/201] bump version --- common-tools/clara-io/pom.xml | 4 ++-- common-tools/clas-analysis/pom.xml | 20 ++++++++--------- common-tools/clas-detector/pom.xml | 10 ++++----- common-tools/clas-geometry/pom.xml | 4 ++-- common-tools/clas-io/pom.xml | 8 +++---- common-tools/clas-jcsg/pom.xml | 8 +++---- common-tools/clas-logging/pom.xml | 4 ++-- common-tools/clas-math/pom.xml | 4 ++-- common-tools/clas-physics/pom.xml | 4 ++-- common-tools/clas-reco/pom.xml | 16 +++++++------- common-tools/clas-tracking/pom.xml | 6 +++--- common-tools/clas-utils/pom.xml | 6 +++--- common-tools/cnuphys/magfield/pom.xml | 2 +- common-tools/cnuphys/swimmer/pom.xml | 2 +- common-tools/coat-lib/deployDistribution.sh | 2 +- common-tools/coat-lib/pom.xml | 24 ++++++++++----------- common-tools/parent/pom.xml | 2 +- common-tools/pom.xml | 4 ++-- common-tools/swim-tools/pom.xml | 6 +++--- parent/pom.xml | 2 +- pom.xml | 4 ++-- reconstruction/alert/pom.xml | 10 ++++----- reconstruction/band/pom.xml | 4 ++-- reconstruction/bg/pom.xml | 8 +++---- reconstruction/cnd/pom.xml | 2 +- reconstruction/cvt/pom.xml | 6 +++--- reconstruction/dc/pom.xml | 14 ++++++------ reconstruction/eb/pom.xml | 10 ++++----- reconstruction/ec/pom.xml | 6 +++--- reconstruction/fmt/pom.xml | 6 +++--- reconstruction/ft/pom.xml | 4 ++-- reconstruction/htcc/pom.xml | 4 ++-- reconstruction/ltcc/pom.xml | 4 ++-- reconstruction/mc/pom.xml | 4 ++-- reconstruction/mltn/pom.xml | 6 +++--- reconstruction/pom.xml | 4 ++-- reconstruction/postproc/pom.xml | 8 +++---- reconstruction/raster/pom.xml | 4 ++-- reconstruction/rich/pom.xml | 6 +++--- reconstruction/rtpc/pom.xml | 6 +++--- reconstruction/swaps/pom.xml | 8 +++---- reconstruction/tof/pom.xml | 4 ++-- reconstruction/urwell/pom.xml | 6 +++--- reconstruction/vtx/pom.xml | 6 +++--- 44 files changed, 141 insertions(+), 141 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index 2dbc38aff..46749d240 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clara-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml index d99afad8e..550b9be84 100644 --- a/common-tools/clas-analysis/pom.xml +++ b/common-tools/clas-analysis/pom.xml @@ -3,63 +3,63 @@ 4.0.0 org.jlab.clas clas-analysis - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-utils - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-physics - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-geometry - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas swim-tools - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-detector - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml index a0bee6c64..20f607f30 100644 --- a/common-tools/clas-detector/pom.xml +++ b/common-tools/clas-detector/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-detector - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-utils - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -29,13 +29,13 @@ org.jlab.clas clas-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-geometry - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index 4633be055..7662ab84d 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-geometry - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 5e35aca62..0d600e86f 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -90,13 +90,13 @@ org.jlab.clas clas-utils - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-logging - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT compile diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index d587ed48b..24028d8d6 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-jcsg - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -27,12 +27,12 @@ org.jlab.clas clas-geometry - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-detector - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT java3d diff --git a/common-tools/clas-logging/pom.xml b/common-tools/clas-logging/pom.xml index 704e52c6a..d42442205 100644 --- a/common-tools/clas-logging/pom.xml +++ b/common-tools/clas-logging/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-logging - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml index 52ddd4acd..766803d13 100644 --- a/common-tools/clas-math/pom.xml +++ b/common-tools/clas-math/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-math - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml index d5696db3f..e653d85b1 100644 --- a/common-tools/clas-physics/pom.xml +++ b/common-tools/clas-physics/pom.xml @@ -4,14 +4,14 @@ org.jlab.clas clas-physics - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml index 013a03d6f..df584d353 100644 --- a/common-tools/clas-reco/pom.xml +++ b/common-tools/clas-reco/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -42,37 +42,37 @@ org.jlab.clas clas-math - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-logging - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-physics - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-utils - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-detector - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index 6f2ccd342..13c12cf7c 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-tracking - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -22,7 +22,7 @@ org.jlab.clas swim-tools - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index a837399d8..4fd730d04 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-utils - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-logging - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.apache.commons diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml index f49f034ca..61c8ddb80 100644 --- a/common-tools/cnuphys/magfield/pom.xml +++ b/common-tools/cnuphys/magfield/pom.xml @@ -23,7 +23,7 @@ org.jlab.clas clas-math - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml index 194cd949e..b3944a22f 100644 --- a/common-tools/cnuphys/swimmer/pom.xml +++ b/common-tools/cnuphys/swimmer/pom.xml @@ -35,7 +35,7 @@ org.jlab.clas clas-math - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/coat-lib/deployDistribution.sh b/common-tools/coat-lib/deployDistribution.sh index 3e20865c6..1e56391c1 100755 --- a/common-tools/coat-lib/deployDistribution.sh +++ b/common-tools/coat-lib/deployDistribution.sh @@ -8,7 +8,7 @@ cd `dirname $0` # Script is exporting existing Jar files to repository #------------------------------------------------------------------------------------------------- -VERSION=11.0.1 +VERSION=11.0.2 mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -Dfile=target/coat-libs-${VERSION}-SNAPSHOT.jar \ diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index 6321a0ae2..0cbc71102 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jlab.clas coat-libs - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT pom @@ -94,67 +94,67 @@ org.jlab.clas clas-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clara-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-utils - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-detector - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-analysis - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-geometry - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-physics - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas swim-tools - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-tracking - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index 6db98ed08..912a00d86 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas common-tools - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT pom diff --git a/common-tools/pom.xml b/common-tools/pom.xml index 785bf5f42..e9d85c151 100644 --- a/common-tools/pom.xml +++ b/common-tools/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas common-tools - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml index b0374374b..443fa1b4d 100644 --- a/common-tools/swim-tools/pom.xml +++ b/common-tools/swim-tools/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas swim-tools - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/parent/pom.xml b/parent/pom.xml index 2c721860b..f5273b1ab 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas clas12rec - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index 662f3062a..bde7c11cf 100644 --- a/pom.xml +++ b/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas clas12 - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT pom org.jlab.clas clas12rec parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml index 5c23a5d6f..6bea56299 100644 --- a/reconstruction/alert/pom.xml +++ b/reconstruction/alert/pom.xml @@ -13,31 +13,31 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT compile org.jlab.clas clas-tracking - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT compile org.jlab.clas clas-geometry - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT compile diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml index 0165e2ed9..4a94eacc9 100644 --- a/reconstruction/band/pom.xml +++ b/reconstruction/band/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/bg/pom.xml b/reconstruction/bg/pom.xml index 94afa6d27..ab6945173 100644 --- a/reconstruction/bg/pom.xml +++ b/reconstruction/bg/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-analysis - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml index ca1159b5d..327f9aea1 100644 --- a/reconstruction/cnd/pom.xml +++ b/reconstruction/cnd/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml index 10ab46789..e7841212d 100644 --- a/reconstruction/cvt/pom.xml +++ b/reconstruction/cvt/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -47,7 +47,7 @@ org.jlab.clas clas-tracking - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index 9e5561620..822c39cbf 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -28,25 +28,25 @@ org.jlab.clas clas-tracking - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-analysis - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -75,13 +75,13 @@ org.jlab.clas swim-tools - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-math - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml index 83bd36459..a1638f598 100644 --- a/reconstruction/eb/pom.xml +++ b/reconstruction/eb/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,25 +21,25 @@ org.jlab.clas clas-utils - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-analysis - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml index 2c3707516..19dd8cebc 100644 --- a/reconstruction/ec/pom.xml +++ b/reconstruction/ec/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-analysis - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml index e73a48210..38e7600c4 100644 --- a/reconstruction/fmt/pom.xml +++ b/reconstruction/fmt/pom.xml @@ -15,21 +15,21 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas swim-tools - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml index 8884a4283..82221c8fb 100644 --- a/reconstruction/ft/pom.xml +++ b/reconstruction/ft/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml index 321dd21f5..c3a911c4b 100644 --- a/reconstruction/htcc/pom.xml +++ b/reconstruction/htcc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml index 0762e8671..cd8720bfd 100644 --- a/reconstruction/ltcc/pom.xml +++ b/reconstruction/ltcc/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml index ee80e0253..f1268c258 100644 --- a/reconstruction/mc/pom.xml +++ b/reconstruction/mc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml index 991f6ab21..56ec517cd 100644 --- a/reconstruction/mltn/pom.xml +++ b/reconstruction/mltn/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -34,13 +34,13 @@ org.jlab.clas clas-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index 99053fa2f..a7565a73c 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -3,14 +3,14 @@ org.jlab.clas reconstruction - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/postproc/pom.xml b/reconstruction/postproc/pom.xml index 27cc2a7af..e9ed05d22 100644 --- a/reconstruction/postproc/pom.xml +++ b/reconstruction/postproc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-analysis - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml index bb0568373..dd8f28f16 100644 --- a/reconstruction/raster/pom.xml +++ b/reconstruction/raster/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml index 93413b0b5..281efcd0c 100644 --- a/reconstruction/rich/pom.xml +++ b/reconstruction/rich/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml index b8e912237..eab03722e 100644 --- a/reconstruction/rtpc/pom.xml +++ b/reconstruction/rtpc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,12 +21,12 @@ org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-tracking - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT compile diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml index e72c64e6a..b04924b62 100644 --- a/reconstruction/swaps/pom.xml +++ b/reconstruction/swaps/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-detector - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-io - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-reco - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml index 6ca28c96a..5de807863 100644 --- a/reconstruction/tof/pom.xml +++ b/reconstruction/tof/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/urwell/pom.xml b/reconstruction/urwell/pom.xml index e9cc63c63..f35f4b0d3 100644 --- a/reconstruction/urwell/pom.xml +++ b/reconstruction/urwell/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT org.jlab.clas clas-analysis - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml index bfa4dab29..4d16f416c 100644 --- a/reconstruction/vtx/pom.xml +++ b/reconstruction/vtx/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT @@ -33,13 +33,13 @@ org.jlab.clas swim-tools - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar org.jlab.clas clas-tracking - 11.0.1-SNAPSHOT + 11.0.2-SNAPSHOT jar From 47c77eb0889ca76ba19a85e561272fc66a51a9d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 07:11:02 +0000 Subject: [PATCH 122/201] build(deps): bump org.apache.maven.plugins:maven-javadoc-plugin Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.8.0 to 3.10.0. - [Release notes](https://github.com/apache/maven-javadoc-plugin/releases) - [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.8.0...maven-javadoc-plugin-3.10.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-javadoc-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parent/pom.xml b/parent/pom.xml index f5273b1ab..f99a88530 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -71,7 +71,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.8.0 + 3.10.0 coatjavadocs coatjavadocs From 29dfdfe7bfca2590995632f9c005cb94fdd648a0 Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Wed, 28 Aug 2024 16:43:17 -0400 Subject: [PATCH 123/201] fix: remove `hipo-add` Resolves #323 --- bin/hipo-add | 8 -------- 1 file changed, 8 deletions(-) delete mode 100755 bin/hipo-add diff --git a/bin/hipo-add b/bin/hipo-add deleted file mode 100755 index 3b234699b..000000000 --- a/bin/hipo-add +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -. `dirname $0`/../libexec/env.sh - -java -Xms1024m \ - -cp "$CLAS12DIR/lib/clas/*:$CLAS12DIR/lib/plugins/*" \ - org.jlab.groot.data.TDirectory \ - $* From ec9467362ab5940872f4c3c38ea3763e8ea0eec5 Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Wed, 28 Aug 2024 17:03:05 -0400 Subject: [PATCH 124/201] new file: bin/hipo-merge-histograms --- bin/hipo-merge-histograms | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 bin/hipo-merge-histograms diff --git a/bin/hipo-merge-histograms b/bin/hipo-merge-histograms new file mode 100755 index 000000000..cf8b3b6cd --- /dev/null +++ b/bin/hipo-merge-histograms @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +. `dirname $0`/../libexec/env.sh +cmd="java -Xms1024m -cp $CLAS12DIR/lib/clas/*:$CLAS12DIR/lib/plugins/* org.jlab.groot.data.TDirectory" + +if [ $# -eq 0 ]; then + echo """ + hipo-merge-histograms + - merge histogram HIPO files + - to merge HIPO data files, use 'hipo-utils -merge' instead""" + $cmd | sed 's;\;hipo-merge-histograms;g' + exit 2 +fi + +$cmd $* From 1c0eea7ce7566c04bd1e715c2003c62d297b20c2 Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Thu, 29 Aug 2024 10:10:29 -0400 Subject: [PATCH 125/201] fix: allow `run-groovy` users to set `JAVA_OPTS` `libexec/env.sh` hard codes a value of `$JAVA_OPTS` for groovy calls, (via `run-groovy`) making it impossible for `run-groovy` users to change any Java options, e.g., heap size limits. This PR allows users to override `env.sh`'s settings by appending user-level `JAVA_OPTS`. --- libexec/env.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/env.sh b/libexec/env.sh index a0c8a0c69..c1825694b 100644 --- a/libexec/env.sh +++ b/libexec/env.sh @@ -30,7 +30,7 @@ if [ $# -ge 1 ]; then # additional variables and settings for groovy if [ "$1" = "groovy" ]; then JYPATH="${JYPATH:+${JYPATH}:}${CLAS12DIR}/lib/packages" - export JAVA_OPTS="-Dsun.java2d.pmoffscreen=false -Djava.util.logging.config.file=$CLAS12DIR/etc/logging/debug.properties -Xms1024m -Xmx2048m -XX:+UseSerialGC" + export JAVA_OPTS="-Dsun.java2d.pmoffscreen=false -Djava.util.logging.config.file=$CLAS12DIR/etc/logging/debug.properties -Xms1024m -Xmx2048m -XX:+UseSerialGC ${JAVA_OPTS-}" fi export JYPATH From 6ee14a66440e1d1c4b8ff90cbc0c8057f5307224 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 5 Sep 2024 16:17:31 -0400 Subject: [PATCH 126/201] new wildcard feature from Gagik (#321) --- .../org/jlab/io/clara/HipoToHipoWriter.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/common-tools/clara-io/src/main/java/org/jlab/io/clara/HipoToHipoWriter.java b/common-tools/clara-io/src/main/java/org/jlab/io/clara/HipoToHipoWriter.java index 550d8e108..69d45b605 100644 --- a/common-tools/clara-io/src/main/java/org/jlab/io/clara/HipoToHipoWriter.java +++ b/common-tools/clara-io/src/main/java/org/jlab/io/clara/HipoToHipoWriter.java @@ -11,6 +11,7 @@ import org.jlab.clara.std.services.EventWriterException; import org.jlab.jnp.hipo4.data.Bank; import org.jlab.jnp.hipo4.data.Event; +import org.jlab.jnp.hipo4.data.SchemaFactory; import org.jlab.jnp.hipo4.io.HipoWriter; import org.jlab.jnp.hipo4.io.HipoWriterSorted; import org.jlab.jnp.utils.file.FileUtils; @@ -25,6 +26,8 @@ public class HipoToHipoWriter extends AbstractEventWriterService schemaBankList = new ArrayList(); private final StringSubstitutor envSubstitutor = new StringSubstitutor(System.getenv()); @@ -56,9 +59,19 @@ private void configure(HipoWriterSorted writer, JSONObject opts) { schemaDir = envSubstitutor.replace(schemaDir); System.out.printf("%s service: schema directory = %s%n", getName(), schemaDir); } - writer.getSchemaFactory().initFromDirectory(schemaDir); - if (opts.has(CONF_SCHEMA_DIR)) { + SchemaFactory factory = new SchemaFactory(); + factory.initFromDirectory(schemaDir); + + if(opts.has(CONF_SCHEMA_WILDCARD)==true){ + String wildcard = opts.getString("wildcard"); + SchemaFactory f2 = factory.reduce(wildcard); + writer.getSchemaFactory().copy(f2); + } else { + writer.getSchemaFactory().copy(factory); + } + + if (opts.has(CONF_SCHEMA_DIR)==true||opts.has(CONF_SCHEMA_WILDCARD)==true) { boolean useFilter = opts.optBoolean(CONF_SCHEMA_FILTER, true); System.out.printf("%s service: schema filter = %b%n", getName(), useFilter); if(useFilter==true){ @@ -69,6 +82,10 @@ private void configure(HipoWriterSorted writer, JSONObject opts) { } } } + + System.out.printf("SERVICE WRITER :: [filter] %s\n",opts.has(HipoToHipoWriter.CONF_SCHEMA_FILTER)); + System.out.printf("SERVICE WRITER :: [dir] %s\n",opts.has(HipoToHipoWriter.CONF_SCHEMA_DIR)); + System.out.printf("SERVICE WRITER :: [wildcard] %s\n",opts.has(HipoToHipoWriter.CONF_SCHEMA_WILDCARD)); } private Method getSchemaFilterSetter() throws NoSuchMethodException, SecurityException { From 9a562615c5ff8ddd74c23a0321fa30c50a0b817a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 07:34:53 +0000 Subject: [PATCH 127/201] build(deps): bump com.github.spotbugs:spotbugs-maven-plugin Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.6.2 to 4.8.6.3. - [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases) - [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.6.2...spotbugs-maven-plugin-4.8.6.3) --- updated-dependencies: - dependency-name: com.github.spotbugs:spotbugs-maven-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- common-tools/cnuphys/parent/pom.xml | 2 +- parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index 0590ce905..2c3928e4b 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -38,7 +38,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.6.2 + 4.8.6.3 spotbugs-exclude.xml diff --git a/parent/pom.xml b/parent/pom.xml index f99a88530..812cc1d04 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -62,7 +62,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.6.2 + 4.8.6.3 spotbugs-exclude.xml From 78bb224f7de6aa09a1978b71e1fddc4fcfb10501 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 08:01:40 +0000 Subject: [PATCH 128/201] build(deps): bump com.github.spotbugs:spotbugs-maven-plugin Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.6.3 to 4.8.6.4. - [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases) - [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.6.3...spotbugs-maven-plugin-4.8.6.4) --- updated-dependencies: - dependency-name: com.github.spotbugs:spotbugs-maven-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- common-tools/cnuphys/parent/pom.xml | 2 +- parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index 2c3928e4b..797daa050 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -38,7 +38,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.6.3 + 4.8.6.4 spotbugs-exclude.xml diff --git a/parent/pom.xml b/parent/pom.xml index 812cc1d04..cb26e1867 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -62,7 +62,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.6.3 + 4.8.6.4 spotbugs-exclude.xml From c760d2c5574062f3436c52222cc9ae68d216056f Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 26 Aug 2024 17:35:35 -0400 Subject: [PATCH 129/201] add logging --- .../java/org/jlab/detector/helicity/HelicitySequence.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/HelicitySequence.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/HelicitySequence.java index 5acd1f8bf..603591b1d 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/HelicitySequence.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/helicity/HelicitySequence.java @@ -480,6 +480,7 @@ public void initialize(HipoReader reader) { } public void initialize(List filenames) { + LOGGER.info("HelicitySequence: Reading sequence from "+String.join(",",filenames)); for (String filename : filenames) { HipoReader reader = new HipoReader(); reader.setTags(1); @@ -526,7 +527,14 @@ else if (!s.equals(this.states.get(this.states.size()-1))) { this.integrityCheck(); } + /** + * + * @param schema + * @param conman + * @param filenames + */ public void addStream(SchemaFactory schema, ConstantsManager conman, List filenames) { + LOGGER.info("HelicitySequence: Restreaming sequence from "+String.join(",",filenames)); Bank runConfigBank = new Bank(schema.getSchema("RUN::config")); Bank helAdcBank = new Bank(schema.getSchema("HEL::adc")); TreeSet stream = new TreeSet<>(); From 054a212d811c1368290d7dcd825e867c801eddb1 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 26 Aug 2024 17:38:40 -0400 Subject: [PATCH 130/201] add utilities for rebuilding scalers --- .../org/jlab/detector/scalers/DaqScalers.java | 39 ++++++++++++++++++- .../detector/scalers/DaqScalersSequence.java | 37 ++++++++++++++++++ .../org/jlab/detector/scalers/Dsc2Scaler.java | 2 + 3 files changed, 76 insertions(+), 2 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalers.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalers.java index ed730984b..67d60a858 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalers.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalers.java @@ -50,7 +50,10 @@ public class DaqScalers { public StruckScalers struck=null; private long timestamp=0; - public void setTimestamp(long timestamp) { this.timestamp=timestamp; } + public DaqScalers setTimestamp(long timestamp) { + this.timestamp=timestamp; + return this; + } public long getTimestamp(){ return this.timestamp; } /** @@ -137,6 +140,37 @@ public static DaqScalers create(Bank rawScalerBank,IndexedTable fcupTable,Indexe return DaqScalers.create(rawScalerBank,fcupTable,slmTable,helTable,dsc2.getGatedClockSeconds()); } + /** + * + * @param conman + * @param runConfig + * @param rawScaler + * @return + */ + public static DaqScalers create(ConstantsManager conman, Bank runConfig, Bank rawScaler) { + int run = runConfig.getInt("run", 0); + IndexedTable fcup = conman.getConstants(run, "/runcontrol/fcup"); + IndexedTable slm = conman.getConstants(run, "/runcontrol/slm"); + IndexedTable hel = conman.getConstants(run, "/runcontrol/helicity"); + IndexedTable dsc = conman.getConstants(run, "/daq/config/scalers/dsc1"); + if (fcup!=null && dsc!=null) { + if (dsc.getIntValue("frequency",0,0,0) < Dsc2Scaler.MAX_DSC2_CLOCK_FREQ) { + return DaqScalers.create(rawScaler, fcup, slm, hel, dsc) + .setTimestamp(runConfig.getLong("timestamp", 0)); + } + else { + try { + Time rst = (Time)conman.getRcdbConstant(run,"run_start_time").getValue(); + Date uet = new Date(runConfig.getInt("unixtime",0)*1000L); + return DaqScalers.create(rawScaler, fcup, slm, hel, rst, uet) + .setTimestamp(runConfig.getLong("timestamp", 0)); + } + catch (Exception e) {} + } + } + return null; + } + /** * @param schema bank schema * @return RUN::scaler banks @@ -253,7 +287,7 @@ public static List createBanks(int runnumber, SchemaFactory schema, Event IndexedTable hel = conman.getConstants(runnumber, "/runcontrol/helicity"); IndexedTable dsc = conman.getConstants(runnumber, "/daq/config/scalers/dsc1"); - if (dsc.getIntValue("frequency", 0,0,0) < 2e5) { + if (dsc.getIntValue("frequency", 0,0,0) < Dsc2Scaler.MAX_DSC2_CLOCK_FREQ) { ret.addAll(createBanks(schema,rawScaler,fcup, slm, hel, dsc)); } else { @@ -274,5 +308,6 @@ public static List createBanks(int runnumber, SchemaFactory schema, Event return ret; } + } diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalersSequence.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalersSequence.java index 37f884a25..313d5322f 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalersSequence.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalersSequence.java @@ -5,6 +5,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.Comparator; +import java.util.logging.Logger; +import org.jlab.detector.calib.utils.ConstantsManager; import org.jlab.jnp.hipo4.io.HipoReader; import org.jlab.jnp.hipo4.data.Event; @@ -27,6 +29,8 @@ public class DaqScalersSequence implements Comparator { private Bank rcfgBank=null; + static final Logger logger = Logger.getLogger(DaqScalersSequence.class.getName()); + public static class Interval { private DaqScalers previous = null; private DaqScalers next = null; @@ -187,6 +191,7 @@ public Interval getInterval(Event event1, Event event2) { * @return sequence */ public static DaqScalersSequence readSequence(List filenames) { + logger.info("DaqScalersSequence:: Reading scaler sequence from "+String.join(",", filenames)); DaqScalersSequence seq=new DaqScalersSequence(); @@ -229,6 +234,38 @@ public static DaqScalersSequence readSequence(List filenames) { return seq; } + + /** + * + * @param tags + * @param conman + * @param filenames + * @return + */ + public static DaqScalersSequence rebuildSequence(int tags, ConstantsManager conman, List filenames) { + logger.info("DaqScalersSequence:: Rebuilding scaler sequence from "+String.join(",", filenames)); + DaqScalersSequence seq=new DaqScalersSequence(); + for (String filename : filenames) { + HipoReader reader = new HipoReader(); + reader.setTags(tags); + reader.open(filename); + SchemaFactory schema = reader.getSchemaFactory(); + if (seq.rcfgBank==null) + seq.rcfgBank = new Bank(schema.getSchema("RUN::config")); + while (reader.hasNext()) { + Event event=new Event(); + Bank scaler=new Bank(schema.getSchema("RAW::scaler")); + Bank config=new Bank(schema.getSchema("RUN::config")); + reader.nextEvent(event); + event.read(scaler); + event.read(config); + if (scaler.getRows()<1 || config.getRows()<1) continue; + seq.add(DaqScalers.create(conman, config, scaler)); + } + reader.close(); + } + return seq; + } public static void main(String[] args) { diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/Dsc2Scaler.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/Dsc2Scaler.java index b2003a685..5f48d4342 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/Dsc2Scaler.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/Dsc2Scaler.java @@ -16,6 +16,8 @@ */ public class Dsc2Scaler extends DaqScaler{ + public static final long MAX_DSC2_CLOCK_FREQ = (long)2e5; + private static final boolean GATEINVERTED=true; // DSC has TRG and TDC thresholds, we use only TDC here: From b51871fa04164f8b1f6de87f28f75c2feb2557c2 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 26 Aug 2024 17:39:07 -0400 Subject: [PATCH 131/201] enable rebuilding scalers in postproc engine --- .../jlab/analysis/postprocess/Processor.java | 35 ++++++------------- .../jlab/service/postproc/PostprocEngine.java | 17 ++++----- 2 files changed, 18 insertions(+), 34 deletions(-) diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java index b99b90a36..bd9e8fa56 100644 --- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java +++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java @@ -31,8 +31,6 @@ */ public class Processor { - static final Logger logger = Logger.getLogger(Util.class.getName()); - public static final String CCDB_TABLES[] = {"/runcontrol/fcup","/runcontrol/slm", "/runcontrol/helicity","/daq/config/scalers/dsc1","/runcontrol/hwp"}; public static final String DEF_PRELOAD_GLOB = "*.{hipo,h5}"; @@ -45,32 +43,29 @@ public class Processor { private DaqScalersSequence chargeSequence = null; private HelicitySequenceDelayed helicitySequence = null; - public Processor(File file, boolean restream) { - configure(restream, Arrays.asList(file.getAbsolutePath())); + public Processor(File file, boolean restream, boolean rebuild) { + configure(Arrays.asList(file.getAbsolutePath()), restream, rebuild); } - public Processor(String dir, boolean restream) { - configure(restream, findPreloadFiles(dir,DEF_PRELOAD_GLOB)); + public Processor(String dir, boolean restream, boolean rebuild) { + configure(findPreloadFiles(dir,DEF_PRELOAD_GLOB), restream, rebuild); } - public Processor(String dir, String glob, boolean restream) { - configure(restream, findPreloadFiles(dir,glob)); + public Processor(String dir, String glob, boolean restream, boolean rebuild) { + configure(findPreloadFiles(dir,glob), restream, rebuild); } - private void configure(boolean restream, List preloadFiles) { - if (preloadFiles.isEmpty()) { - logger.warning("<<<< No preload files found, postprocessing disabled."); - initialized = false; - } else { + private void configure(List preloadFiles, boolean restream, boolean rebuild) { + if (!preloadFiles.isEmpty()) { HipoReader r = new HipoReader(); r.open(preloadFiles.get(0)); conman = new ConstantsManager(); conman.init(CCDB_TABLES); schemaFactory = r.getSchemaFactory(); helicitySequence = Util.getHelicity(preloadFiles, schemaFactory, restream, conman); - chargeSequence = DaqScalersSequence.readSequence(preloadFiles); + if (rebuild) chargeSequence = DaqScalersSequence.rebuildSequence(1, conman, preloadFiles); + else chargeSequence = DaqScalersSequence.readSequence(preloadFiles); r.close(); - initialized = true; } } @@ -223,17 +218,9 @@ private static void replace(Map files) { } } - /** - * Replace preload files with rebuilt ones. - */ - private void rebuildAndReplace(List preloadFiles) { - replace(rebuild(".",preloadFiles)); - } - public static void main(String args[]) { DefaultLogger.debug(); - Processor p = new Processor(System.getenv("HOME")+"/tmp","r*.hipo",false); - //p.rebuildAndReplace(); + Processor p = new Processor(System.getenv("HOME")+"/tmp","r*.hipo",false,false); } } diff --git a/reconstruction/postproc/src/main/java/org/jlab/service/postproc/PostprocEngine.java b/reconstruction/postproc/src/main/java/org/jlab/service/postproc/PostprocEngine.java index 66e7819a6..50515ac8c 100644 --- a/reconstruction/postproc/src/main/java/org/jlab/service/postproc/PostprocEngine.java +++ b/reconstruction/postproc/src/main/java/org/jlab/service/postproc/PostprocEngine.java @@ -31,27 +31,24 @@ public boolean init() { requireConstants(Processor.CCDB_TABLES); if (getEngineConfigString(CONF_PRELOAD_FILE) != null) { if (getEngineConfigString(CONF_PRELOAD_DIR) != null) - logger.warning("PostprocEngine:: Using preloadFile, ignoring preloadDir."); + logger.warning("PostprocEngine:: Ignoring preloadDir, using preloadFile."); processor = new Processor(new File(getEngineConfigString(CONF_PRELOAD_FILE)), - Boolean.parseBoolean(getEngineConfigString(CONF_RESTREAM_HELICITY,"false"))); + Boolean.parseBoolean(getEngineConfigString(CONF_RESTREAM_HELICITY,"false")), + Boolean.parseBoolean(getEngineConfigString(CONF_REBUILD_SCALERS,"true"))); } - if (getEngineConfigString(CONF_PRELOAD_DIR) != null) { + else if (getEngineConfigString(CONF_PRELOAD_DIR) != null) { processor = new Processor( getEngineConfigString(CONF_PRELOAD_DIR), getEngineConfigString(CONF_PRELOAD_GLOB, Processor.DEF_PRELOAD_GLOB), - Boolean.parseBoolean(getEngineConfigString(CONF_RESTREAM_HELICITY,"false"))); - } - if (null != getEngineConfigString(CONF_REBUILD_SCALERS)) { - if (Boolean.getBoolean(getEngineConfigString(CONF_REBUILD_SCALERS))) { - //processor.rebuildAndReplace(); - } + Boolean.parseBoolean(getEngineConfigString(CONF_RESTREAM_HELICITY,"false")), + Boolean.parseBoolean(getEngineConfigString(CONF_REBUILD_SCALERS,"true"))); } return true; } @Override public boolean processDataEvent(DataEvent event) { - if (processor != null) processor.processEvent(event); + processor.processEvent(event); return true; } From 0cf2a4d696c18a622facb03b17fadd7a397b4219 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 26 Aug 2024 17:39:22 -0400 Subject: [PATCH 132/201] add hooks to recon-util for rebuilding/restreaming --- .../java/org/jlab/clas/reco/EngineProcessor.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java index b85916273..ff1fc6ab2 100644 --- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java +++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java @@ -55,12 +55,14 @@ private void setBackgroundFiles(String filenames) { findEngine(ENGINE_CLASS_BG).init(); } - private void setPreloadFiles(String filenames) { + private void setPreloadFiles(String filenames, boolean restream, boolean rebuild) { if (findEngine(ENGINE_CLASS_PP) == null) { LOGGER.info("Adding PostprocEngine for -P option."); addEngine("BG",ENGINE_CLASS_PP); } findEngine(ENGINE_CLASS_PP).engineConfigMap.put("preloadFile", filenames); + findEngine(ENGINE_CLASS_PP).engineConfigMap.put("restream", String.valueOf(restream)); + findEngine(ENGINE_CLASS_PP).engineConfigMap.put("rebuild", String.valueOf(rebuild)); findEngine(ENGINE_CLASS_PP).init(); } @@ -354,6 +356,8 @@ public static void main(String[] args){ parser.addOption("-S",null,"schema directory"); parser.addOption("-B",null,"background file"); parser.addOption("-P",null,"preload file for post-processing"); + parser.addOption("-R","0","rebuild scalers"); + parser.addOption("-H","0","restream helicity"); parser.parse(args); @@ -414,8 +418,11 @@ else if (config>0){ proc.setBackgroundFiles(parser.getOption("-B").stringValue()); // command-line filename for post-processing overrides YAML: - if (parser.getOption("-P").stringValue() != null) - proc.setPreloadFiles(parser.getOption("-P").stringValue()); + if (parser.getOption("-P").stringValue() != null) { + proc.setPreloadFiles(parser.getOption("-P").stringValue(), + parser.getOption("-H").intValue()!=0, + parser.getOption("-R").intValue()!=0); + } proc.processFile(inputFile,outputFile,nskip,nevents); } From 23398cbe1c7b8afdd0cd77eaaaa8ee7b86710e81 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 26 Aug 2024 17:49:10 -0400 Subject: [PATCH 133/201] add example yaml --- etc/services/data-ai-pp.yaml | 81 ++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 etc/services/data-ai-pp.yaml diff --git a/etc/services/data-ai-pp.yaml b/etc/services/data-ai-pp.yaml new file mode 100644 index 000000000..8d9fc0818 --- /dev/null +++ b/etc/services/data-ai-pp.yaml @@ -0,0 +1,81 @@ +io-services: + reader: + class: org.jlab.io.clara.HipoToHipoReader + name: HipoToHipoReader + writer: + class: org.jlab.io.clara.HipoToHipoWriter + name: HipoToHipoWriter +services: + - class: org.jlab.service.postproc.PostprocEngine + name: POSTPROC + - class: org.jlab.clas.swimtools.MagFieldsEngine + name: MAGFIELDS + - class: org.jlab.rec.ft.cal.FTCALEngine + name: FTCAL + - class: org.jlab.rec.ft.hodo.FTHODOEngine + name: FTHODO + - class: org.jlab.rec.ft.trk.FTTRKEngine + name: FTTRK + - class: org.jlab.rec.ft.FTEBEngine + name: FTEB + - class: org.jlab.service.raster.RasterEngine + name: RASTER +# DC clustering: nominal algoritm, filled the cluster bank for ai and conventional tracking + - class: org.jlab.service.dc.DCHBClustering + name: DCCR +# This is where the AI plugin would go. THe AI code reads the HB clusters. + - class: org.jlab.service.mltn.MLTDEngine + name: MLTD +# DC using clustering on AI hits: NN assisted HB tracking + - class: org.jlab.service.dc.DCHBPostClusterAI + name: DCHAI + - class: org.jlab.service.ftof.FTOFHBEngine + name: FTOFHB + - class: org.jlab.service.ec.ECEngine + name: EC + - class: org.jlab.rec.cvt.services.CVTEngine + name: CVTFP + - class: org.jlab.service.ctof.CTOFEngine + name: CTOF + - class: org.jlab.service.cnd.CNDCalibrationEngine + name: CND + - class: org.jlab.service.band.BANDEngine + name: BAND + - class: org.jlab.service.htcc.HTCCReconstructionService + name: HTCC + - class: org.jlab.service.ltcc.LTCCEngine + name: LTCC + - class: org.jlab.service.eb.EBHBEngine + name: EBHB + - class: org.jlab.service.dc.DCTBEngine + name: DCTB + - class: org.jlab.service.fmt.FMTEngine + name: FMT + - class: org.jlab.rec.cvt.services.CVTSecondPassEngine + name: CVTSP + - class: org.jlab.service.ftof.FTOFTBEngine + name: FTOFTB + - class: org.jlab.service.eb.EBTBEngine + name: EBTB + - class: org.jlab.rec.rich.RICHEBEngine + name: RICH + - class: org.jlab.service.rtpc.RTPCEngine + name: RTPC +configuration: + global: + variation: rgb_spring2019 + services: + POSTPROC: + preloadDir: "." + preloadGlob: "*.hipo" + restream: "true" + rebuild: "true" + MAGFIELDS: + magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat + magfieldTorusMap: Full_torus_r251_phi181_z251_25Jan2021.dat + MLTD: + run: "6302" + DCHAI: + outputBankPrefix: "HB" +mime-types: + - binary/data-hipo From 80af5aa4785941798976bc0efdb34f578cb57885 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 26 Aug 2024 18:21:08 -0400 Subject: [PATCH 134/201] defaults to fallse --- .../main/java/org/jlab/service/postproc/PostprocEngine.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reconstruction/postproc/src/main/java/org/jlab/service/postproc/PostprocEngine.java b/reconstruction/postproc/src/main/java/org/jlab/service/postproc/PostprocEngine.java index 50515ac8c..3a45e064a 100644 --- a/reconstruction/postproc/src/main/java/org/jlab/service/postproc/PostprocEngine.java +++ b/reconstruction/postproc/src/main/java/org/jlab/service/postproc/PostprocEngine.java @@ -34,14 +34,14 @@ public boolean init() { logger.warning("PostprocEngine:: Ignoring preloadDir, using preloadFile."); processor = new Processor(new File(getEngineConfigString(CONF_PRELOAD_FILE)), Boolean.parseBoolean(getEngineConfigString(CONF_RESTREAM_HELICITY,"false")), - Boolean.parseBoolean(getEngineConfigString(CONF_REBUILD_SCALERS,"true"))); + Boolean.parseBoolean(getEngineConfigString(CONF_REBUILD_SCALERS,"false"))); } else if (getEngineConfigString(CONF_PRELOAD_DIR) != null) { processor = new Processor( getEngineConfigString(CONF_PRELOAD_DIR), getEngineConfigString(CONF_PRELOAD_GLOB, Processor.DEF_PRELOAD_GLOB), Boolean.parseBoolean(getEngineConfigString(CONF_RESTREAM_HELICITY,"false")), - Boolean.parseBoolean(getEngineConfigString(CONF_REBUILD_SCALERS,"true"))); + Boolean.parseBoolean(getEngineConfigString(CONF_REBUILD_SCALERS,"false"))); } return true; } From 1772f6960654c3518e0098de964d7d0da3fadaee Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 26 Aug 2024 18:21:27 -0400 Subject: [PATCH 135/201] add convenience script --- run-clara | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 run-clara diff --git a/run-clara b/run-clara new file mode 100755 index 000000000..1f89be87f --- /dev/null +++ b/run-clara @@ -0,0 +1,63 @@ +#!/bin/bash + +#ulimit -u 49152 +set -e + +export CLAS12DIR=${CLARA_HOME}/plugins/clas12 +export PATH=${PATH}:$CLAS12DIR/bin +unset CLARA_MONITOR_FE + +inputdir=. +outputdir=. +threads=2 +usage="asdf" +info="qwer" + +while [[ $# -gt 0 ]]; do + case $1 in + -h) echo -e "\n$usage" && echo -e "\n$info" && exit 1 ;; + -i) inputdir="$2" && shift && shift ;; + -o) outputdir="$2" && shift && shift ;; + -t) threads="$2" && shift && shift ;; + -n) nevents="$2" && shift && shift ;; + -y) yaml="$2" && shift && shift ;; + -*|--*) echo -e "$usage\n\nUnknown option: $1" && exit 1 ;; + *) args+=("$1") && shift ;; + esac +done + +function error() { + echo -e "\n$usage\n\nERROR: $@" + exit 1 +} + +clara_home="$args" +[ "${#args[@]}" -lt 1 ] && error "Missing PATH argument" +[ "${#args[@]}" -gt 1 ] && error "Extra PATH arguments: ${args[@]:1}" +[ ! -e "$clara_home" ] && error "Missing installation PATH: $clara_home" +[ -z ${yaml+x} ] && error "-y YAML must be specified." +[ -r $yaml ] || error "YAML file does not exist." +[ -d $inputdir ] || error "Input dir does not exist." + +[ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` + +export CLARA_USER_DATA=$(mktemp -d $outputdir/run-clara.tmp.XXXXXX) +cd $CLARA_USER_DATA +mkdir -p $CLARA_USER_DATA/log +mkdir -p $CLARA_USER_DATA/config +mkdir -p $CLARA_USER_DATA/data/output + +find $inputdir -maxdepth 1 -type f -name '*.hipo' | sed 's;^\./;;' | sort > filelist.txt +[ $(stat -L -c%s filelist.txt) -gt 0 ] || error "Found no input files" + +$CLARA_HOME/lib/clara/run-clara \ + -i $inputdir \ + -o $CLARA_USER_DATA \ + -z rec_ \ + -x $CLARA_USER_DATA/log \ + -t $threads \ + $nevents \ + -s recon \ + $yaml \ + ./filelist.txt + From 725a682358ebef39a980e2231b35e09900746768 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 26 Aug 2024 18:23:55 -0400 Subject: [PATCH 136/201] cleanup --- run-clara | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/run-clara b/run-clara index 1f89be87f..61835fd24 100755 --- a/run-clara +++ b/run-clara @@ -3,10 +3,6 @@ #ulimit -u 49152 set -e -export CLAS12DIR=${CLARA_HOME}/plugins/clas12 -export PATH=${PATH}:$CLAS12DIR/bin -unset CLARA_MONITOR_FE - inputdir=. outputdir=. threads=2 @@ -31,16 +27,17 @@ function error() { exit 1 } -clara_home="$args" [ "${#args[@]}" -lt 1 ] && error "Missing PATH argument" [ "${#args[@]}" -gt 1 ] && error "Extra PATH arguments: ${args[@]:1}" -[ ! -e "$clara_home" ] && error "Missing installation PATH: $clara_home" +export CLARA_HOME="$args" +[ ! -e "$CLARA_HOME" ] && error "Missing installation PATH: $CLARA_HOME" [ -z ${yaml+x} ] && error "-y YAML must be specified." [ -r $yaml ] || error "YAML file does not exist." [ -d $inputdir ] || error "Input dir does not exist." [ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` +unset CLARA_MONITOR_FE export CLARA_USER_DATA=$(mktemp -d $outputdir/run-clara.tmp.XXXXXX) cd $CLARA_USER_DATA mkdir -p $CLARA_USER_DATA/log From 2883b976aa886e5dbcbcf027e34b3b643a25187c Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 30 Aug 2024 17:42:54 -0400 Subject: [PATCH 137/201] add option to build clara --- install-clara | 47 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/install-clara b/install-clara index 32e8fc3ed..84b1e950f 100755 --- a/install-clara +++ b/install-clara @@ -23,8 +23,8 @@ function get() { function install() { find clara-cre -exec touch {} + - chmod -R a+r clara-cre - chmod a+x clara-cre/bin/* + chmod -f -R a+r clara-cre + chmod -f a+x clara-cre/bin/* mv clara-cre $clara_home } @@ -36,7 +36,7 @@ function litter() { then echo -e "\nSee temporary build directory for more info:\n\t$tmp_dir" else - rm -r $tmp_dir && echo -e "\nRemoved temporary build directory:\n\t$tmp_dir" + rm -rf $tmp_dir && echo -e "\nRemoved temporary build directory:\n\t$tmp_dir" fi fi } @@ -57,16 +57,28 @@ function cleanup() { [ "$exit_code" -eq 0 ] && check } +function build_clara { + export CLARA_HOME=$1 + git clone https://github.com/baltzell/clara-java + cd clara-java + git checkout java21 + ./gradlew && ./gradlew deploy + cd - +} + trap cleanup EXIT # Configure: debug=0 args=() -usage="Usage: install-clara [-v] [-f CLARA] [-c COATJAVA] [-g GRAPES] [-j JRE] PATH" +usage="Usage: install-clara [-v] [-b] [-f CLARA] [-c COATJAVA] [-g GRAPES] [-j JRE] PATH" info="\ - The default COATJAVA/CLARA/GRAPES versions are $coatjava/$clara/$grapes.\n\ - Unless requested, no JRE will be included in the installation.\n\ -- COATJAVA can also be specified as a local installation directory." +- COATJAVA can also be specified as a local installation directory.\n\ +- [-v adds verbosity and disables cleanup]\n\ +- [-b builds clara from source]" + while [[ $# -gt 0 ]] do case $1 in @@ -75,6 +87,7 @@ do -c) coatjava="$2" && shift && shift ;; -g) grapes="$2" && shift && shift ;; -j) jre="$2" && shift && shift ;; + -b) build=1 && shift ;; -v) let debug=$debug+1 && shift ;; -*|--*) echo -e "$usage\n\nUnknown option: $1" && exit 1 ;; *) args+=("$1") && shift ;; @@ -108,8 +121,14 @@ echo -e "\nCreating temporary build directory:\n\t$tmp_dir" cd $tmp_dir # CLARA: -echo -e "\nRetrieving CLARA version $clara ..." -get https://clasweb.jlab.org/clas12offline/distribution/clara/clara-cre-$clara.tar.gz +if ! [ -z ${build+x} ] +then + echo -e "\nBuilding CLARA from source ..." + build_clara $PWD/clara-cre +else + echo -e "\nRetrieving CLARA version $clara ..." + get https://clasweb.jlab.org/clas12offline/distribution/clara/clara-cre-$clara.tar.gz +fi # COATJAVA: if ! compgen -G "$coatjava/lib/clas/coat-libs-*.jar" > /dev/null @@ -125,13 +144,13 @@ cp -Lr $coatjava/etc $coatjava/bin $coatjava/lib* clara-cre/plugins/clas12 echo -e "\nRetrieving GRAPES version $grapes ..." get https://clasweb.jlab.org/clas12offline/distribution/grapes/grapes-$grapes.tar.gz mv grapes-$grapes clara-cre/plugins/grapes -cp -r clara-cre/plugins/grapes/bin/clara-grapes clara-cre/bin/ +mv -f clara-cre/plugins/grapes/bin/clara-grapes clara-cre/bin/ # JRE: -if ! [ -z ${jre+x} ] -then - echo -e "\nRetrieving JRE version $jre ..." - mkdir clara-cre/jre - get https://userweb.jlab.org/~gurjyan/clara-cre/linux-64-$jre.tar.gz clara-cre/jre -fi +#if ! [ -z ${jre+x} ] +#then +# echo -e "\nRetrieving JRE version $jre ..." +# mkdir clara-cre/jre +# get https://userweb.jlab.org/~gurjyan/clara-cre/linux-64-$jre.tar.gz clara-cre/jre +#fi From 5ba7a1d0406b767ca4962362624b13baac0e0ca7 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 30 Aug 2024 17:47:26 -0400 Subject: [PATCH 138/201] add usage info --- run-clara | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/run-clara b/run-clara index 61835fd24..c37858db6 100755 --- a/run-clara +++ b/run-clara @@ -6,12 +6,11 @@ set -e inputdir=. outputdir=. threads=2 -usage="asdf" -info="qwer" +usage="Usage: run-clara -y yamlfile [-i dir] [-o dir] [-t threads] [-n nevents] [CLARA_HOME]" while [[ $# -gt 0 ]]; do case $1 in - -h) echo -e "\n$usage" && echo -e "\n$info" && exit 1 ;; + -h) echo -e "$usage" && exit 0 ;; -i) inputdir="$2" && shift && shift ;; -o) outputdir="$2" && shift && shift ;; -t) threads="$2" && shift && shift ;; @@ -27,10 +26,13 @@ function error() { exit 1 } -[ "${#args[@]}" -lt 1 ] && error "Missing PATH argument" -[ "${#args[@]}" -gt 1 ] && error "Extra PATH arguments: ${args[@]:1}" -export CLARA_HOME="$args" -[ ! -e "$CLARA_HOME" ] && error "Missing installation PATH: $CLARA_HOME" +if [ "${#args[@]}" -lt 1 ]; then + [ -z ${CLARA_HOME+x} ] && error "CLARA_HOME undefined." +else + [ "${#args[@]}" -gt 1 ] && error "Extra arguments: ${args[@]:1}" + export CLARA_HOME="$args" +fi +[ ! -e "$CLARA_HOME" ] && error "Missing CLARA_HOME: $CLARA_HOME" [ -z ${yaml+x} ] && error "-y YAML must be specified." [ -r $yaml ] || error "YAML file does not exist." [ -d $inputdir ] || error "Input dir does not exist." From 1bff495a48ca3f6c1617f93091a2c84e7957fb60 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 30 Aug 2024 17:48:44 -0400 Subject: [PATCH 139/201] remove jre option --- install-clara | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/install-clara b/install-clara index 84b1e950f..ffa63d1e7 100755 --- a/install-clara +++ b/install-clara @@ -71,10 +71,9 @@ trap cleanup EXIT # Configure: debug=0 args=() -usage="Usage: install-clara [-v] [-b] [-f CLARA] [-c COATJAVA] [-g GRAPES] [-j JRE] PATH" +usage="Usage: install-clara [-v] [-b] [-f CLARA] [-c COATJAVA] [-g GRAPES] PATH" info="\ - The default COATJAVA/CLARA/GRAPES versions are $coatjava/$clara/$grapes.\n\ -- Unless requested, no JRE will be included in the installation.\n\ - COATJAVA can also be specified as a local installation directory.\n\ - [-v adds verbosity and disables cleanup]\n\ - [-b builds clara from source]" @@ -86,7 +85,6 @@ do -f) clara="$2" && shift && shift ;; -c) coatjava="$2" && shift && shift ;; -g) grapes="$2" && shift && shift ;; - -j) jre="$2" && shift && shift ;; -b) build=1 && shift ;; -v) let debug=$debug+1 && shift ;; -*|--*) echo -e "$usage\n\nUnknown option: $1" && exit 1 ;; @@ -146,11 +144,3 @@ get https://clasweb.jlab.org/clas12offline/distribution/grapes/grapes-$grapes.ta mv grapes-$grapes clara-cre/plugins/grapes mv -f clara-cre/plugins/grapes/bin/clara-grapes clara-cre/bin/ -# JRE: -#if ! [ -z ${jre+x} ] -#then -# echo -e "\nRetrieving JRE version $jre ..." -# mkdir clara-cre/jre -# get https://userweb.jlab.org/~gurjyan/clara-cre/linux-64-$jre.tar.gz clara-cre/jre -#fi - From 2f229027309e598821331d8e96ada2ea0c58a837 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 3 Sep 2024 17:01:27 -0400 Subject: [PATCH 140/201] cleanup --- bin/run-clara | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++ run-clara | 62 ------------------------------------------- 2 files changed, 73 insertions(+), 62 deletions(-) create mode 100755 bin/run-clara delete mode 100755 run-clara diff --git a/bin/run-clara b/bin/run-clara new file mode 100755 index 000000000..d6e1fca3b --- /dev/null +++ b/bin/run-clara @@ -0,0 +1,73 @@ +#!/bin/bash + +usage="Usage: run-clara -y yamlfile [-i dirorfile] [-o dir] [-t threads] [-n nevents] [-c CLARA_HOME]" + +function error() { + echo -e "\n$usage\n\nERROR: $@" && exit 1 +} + +function abspath() { + [ -d $1 ] && echo $(cd $1 && pwd) && return 0 + [ -f $1 ] && echo $(cd $(dirname $1) && pwd)/$1 && return 0 + return 1 +} + +ulimit -u 49152 >& /dev/null +set -e + +# Check user options: +input=. +output=. +threads=2 +while getopts i:o:y:t:n:c:h opt +do + case $opt in + i) input=$OPTARG ;; + o) output=$OPTARG ;; + y) yaml=$OPTARG ;; + t) threads=$OPTARG ;; + n) nevents="-e $OPTARG" ;; + c) CLARA_HOME=$OPTARG ;; + h) echo $usage && exit 0 ;; + ?) error "Unknown option: $1" ;; + esac +done +[ -z ${CLARA_HOME+x} ] && error "CLARA_HOME must be specified." +[ -d $CLARA_HOME ] || error "CLARA_HOME is missing: $CLARA_HOME" +[ -z ${yaml+x} ] && error "-y YAML must be specified." +[ -r $yaml ] || error "YAML file does not exist." +[ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` + +# Normalize all user paths: +export CLARA_HOME=$(abspath $CLARA_HOME) +input=$(abspath $input) +output=$(abspath $output) +yaml=$(abspath $yaml) + +# Set the environment variables and directories required by CLARA: +unset CLARA_MONITOR_FE +export CLARA_USER_DATA=$(mktemp -d $output/run-clara.tmp.XXXXXX) +cd $CLARA_USER_DATA +mkdir -p $CLARA_USER_DATA/log +mkdir -p $CLARA_USER_DATA/config +mkdir -p $CLARA_USER_DATA/data/output + +# Generate the required file containing a file list for CLARA: +# (Note, that file list must contain relative paths, not absolute.) +test -e $input || eror "Invalid inputs: $input" +test -d $input && find $input -maxdepth 1 -type f -name '*.hipo' -exec basename {} \; > filelist.txt +test -f $input && echo $(basename $input) > filelist.txt +[ $(cat filelist.txt | wc -l) -gt 0 ] || error "Found no input files." + +# Finally, run CLARA: +$CLARA_HOME/lib/clara/run-clara \ + -i $input \ + -o $CLARA_USER_DATA \ + -z rec_ \ + -x $CLARA_USER_DATA/log \ + -t $threads \ + $nevents \ + -s recon \ + $yaml \ + ./filelist.txt + diff --git a/run-clara b/run-clara deleted file mode 100755 index c37858db6..000000000 --- a/run-clara +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -#ulimit -u 49152 -set -e - -inputdir=. -outputdir=. -threads=2 -usage="Usage: run-clara -y yamlfile [-i dir] [-o dir] [-t threads] [-n nevents] [CLARA_HOME]" - -while [[ $# -gt 0 ]]; do - case $1 in - -h) echo -e "$usage" && exit 0 ;; - -i) inputdir="$2" && shift && shift ;; - -o) outputdir="$2" && shift && shift ;; - -t) threads="$2" && shift && shift ;; - -n) nevents="$2" && shift && shift ;; - -y) yaml="$2" && shift && shift ;; - -*|--*) echo -e "$usage\n\nUnknown option: $1" && exit 1 ;; - *) args+=("$1") && shift ;; - esac -done - -function error() { - echo -e "\n$usage\n\nERROR: $@" - exit 1 -} - -if [ "${#args[@]}" -lt 1 ]; then - [ -z ${CLARA_HOME+x} ] && error "CLARA_HOME undefined." -else - [ "${#args[@]}" -gt 1 ] && error "Extra arguments: ${args[@]:1}" - export CLARA_HOME="$args" -fi -[ ! -e "$CLARA_HOME" ] && error "Missing CLARA_HOME: $CLARA_HOME" -[ -z ${yaml+x} ] && error "-y YAML must be specified." -[ -r $yaml ] || error "YAML file does not exist." -[ -d $inputdir ] || error "Input dir does not exist." - -[ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` - -unset CLARA_MONITOR_FE -export CLARA_USER_DATA=$(mktemp -d $outputdir/run-clara.tmp.XXXXXX) -cd $CLARA_USER_DATA -mkdir -p $CLARA_USER_DATA/log -mkdir -p $CLARA_USER_DATA/config -mkdir -p $CLARA_USER_DATA/data/output - -find $inputdir -maxdepth 1 -type f -name '*.hipo' | sed 's;^\./;;' | sort > filelist.txt -[ $(stat -L -c%s filelist.txt) -gt 0 ] || error "Found no input files" - -$CLARA_HOME/lib/clara/run-clara \ - -i $inputdir \ - -o $CLARA_USER_DATA \ - -z rec_ \ - -x $CLARA_USER_DATA/log \ - -t $threads \ - $nevents \ - -s recon \ - $yaml \ - ./filelist.txt - From 217f6a00ad09e1939bbeb19a9e2a681a0bd788f8 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 3 Sep 2024 18:26:56 -0400 Subject: [PATCH 141/201] make it work (on linux) --- bin/run-clara | 71 ++++++++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 32 deletions(-) diff --git a/bin/run-clara b/bin/run-clara index d6e1fca3b..8e770c75f 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -1,63 +1,70 @@ -#!/bin/bash +#!/usr/bin/env bash -usage="Usage: run-clara -y yamlfile [-i dirorfile] [-o dir] [-t threads] [-n nevents] [-c CLARA_HOME]" +usage="Usage: run-clara -y YAML [-i INP] [-o OUT] [-c CLARA] [-t #] [-n #]" +info="\nOptions:\n +-y path to CLARA YAML steering file\n +-i input HIPO file or directory of *.hipo files (default=.)\n +-o output directory (default=.)\n +-c CLARA installation (default=\$CLARA_HOME)\n +-t number of threads (default=2)\n +-n number of events (default=-1)\n\n +Defaults will use \$CLARA_HOME to read all *.hipo files in \$PWD,\n +with all output written to \$PWD." function error() { - echo -e "\n$usage\n\nERROR: $@" && exit 1 + echo -e "\n$usage\n\nERROR: $@." && exit 1 } function abspath() { [ -d $1 ] && echo $(cd $1 && pwd) && return 0 - [ -f $1 ] && echo $(cd $(dirname $1) && pwd)/$1 && return 0 + [ -r $1 ] && echo $(cd $(dirname $1) && pwd)/$(basename $1) && return 0 return 1 } ulimit -u 49152 >& /dev/null set -e -# Check user options: +# Check user command-line options: input=. output=. threads=2 -while getopts i:o:y:t:n:c:h opt +while getopts i:o:c:y:t:n:h opt do case $opt in i) input=$OPTARG ;; o) output=$OPTARG ;; - y) yaml=$OPTARG ;; - t) threads=$OPTARG ;; - n) nevents="-e $OPTARG" ;; c) CLARA_HOME=$OPTARG ;; - h) echo $usage && exit 0 ;; - ?) error "Unknown option: $1" ;; + y) yaml=$OPTARG && [ -r $yaml ] || error "-y must be a YAML file" ;; + t) threads=$OPTARG && [[ $threads =~ '^[0-9]+$' ]] || error "-t must be an integer, threads" ;; + n) nevents="-e $OPTARG" && [[ $nevents =~ '^[0-9]+$' ]] || error "-n must be an integer, events" ;; + h) echo -e $usage && echo -e $info && exit 0 ;; esac done -[ -z ${CLARA_HOME+x} ] && error "CLARA_HOME must be specified." -[ -d $CLARA_HOME ] || error "CLARA_HOME is missing: $CLARA_HOME" -[ -z ${yaml+x} ] && error "-y YAML must be specified." -[ -r $yaml ] || error "YAML file does not exist." +shift $((OPTIND-1)) +[ $# -gt 0 ] && error "Unknown arguments: $@" +[ -z ${yaml+x} ] && error "-y YAML must be specified" +[ -z ${CLARA_HOME+x} ] && error "-c must be specified or \$CLARA_HOME set" +[ -d $CLARA_HOME ] || error "Invalid CLARA_HOME: $CLARA_HOME" [ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` +test -e $input && test -r $input || error "Invalid inputs -i: $input" -# Normalize all user paths: -export CLARA_HOME=$(abspath $CLARA_HOME) +# Create the environment variables and directories required by CLARA: +[ -e $output ] && echo "WARNING: Using existing directory: $output." +mkdir -p -v $output || error "Cannot create -o output directory: $output" +mkdir -p $output/log $output/config $output/data/output +export CLARA_USER_DATA=$output +unset CLARA_MONITOR_FE + +# Normalize all paths: input=$(abspath $input) output=$(abspath $output) yaml=$(abspath $yaml) +export CLARA_HOME=$(abspath $CLARA_HOME) -# Set the environment variables and directories required by CLARA: -unset CLARA_MONITOR_FE -export CLARA_USER_DATA=$(mktemp -d $output/run-clara.tmp.XXXXXX) -cd $CLARA_USER_DATA -mkdir -p $CLARA_USER_DATA/log -mkdir -p $CLARA_USER_DATA/config -mkdir -p $CLARA_USER_DATA/data/output - -# Generate the required file containing a file list for CLARA: -# (Note, that file list must contain relative paths, not absolute.) -test -e $input || eror "Invalid inputs: $input" -test -d $input && find $input -maxdepth 1 -type f -name '*.hipo' -exec basename {} \; > filelist.txt -test -f $input && echo $(basename $input) > filelist.txt -[ $(cat filelist.txt | wc -l) -gt 0 ] || error "Found no input files." +# Generate the file for CLARA containing a file list (of relative paths, not absolute): +test -d $input && find $input -maxdepth 1 -type f -name '*.hipo' -exec basename {} \; > $CLARA_USER_DATA/filelist.txt +test -f $input && echo $(basename $input) > $CLARA_USER_DATA/filelist.txt +[ $(cat $CLARA_USER_DATA/filelist.txt | wc -l) -gt 0 ] || error "Found no input files." # Finally, run CLARA: $CLARA_HOME/lib/clara/run-clara \ @@ -69,5 +76,5 @@ $CLARA_HOME/lib/clara/run-clara \ $nevents \ -s recon \ $yaml \ - ./filelist.txt + ./$CLARA_USER_DATA/filelist.txt From 4560f686ee9022069d963edf7421c7746afa6f11 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 4 Sep 2024 11:22:23 -0400 Subject: [PATCH 142/201] slimmer example yaml --- etc/services/data-ai-pp.yaml | 64 ++---------------------------------- 1 file changed, 2 insertions(+), 62 deletions(-) diff --git a/etc/services/data-ai-pp.yaml b/etc/services/data-ai-pp.yaml index 8d9fc0818..3a0db310f 100644 --- a/etc/services/data-ai-pp.yaml +++ b/etc/services/data-ai-pp.yaml @@ -8,74 +8,14 @@ io-services: services: - class: org.jlab.service.postproc.PostprocEngine name: POSTPROC - - class: org.jlab.clas.swimtools.MagFieldsEngine - name: MAGFIELDS - - class: org.jlab.rec.ft.cal.FTCALEngine - name: FTCAL - - class: org.jlab.rec.ft.hodo.FTHODOEngine - name: FTHODO - - class: org.jlab.rec.ft.trk.FTTRKEngine - name: FTTRK - - class: org.jlab.rec.ft.FTEBEngine - name: FTEB - - class: org.jlab.service.raster.RasterEngine - name: RASTER -# DC clustering: nominal algoritm, filled the cluster bank for ai and conventional tracking - - class: org.jlab.service.dc.DCHBClustering - name: DCCR -# This is where the AI plugin would go. THe AI code reads the HB clusters. - - class: org.jlab.service.mltn.MLTDEngine - name: MLTD -# DC using clustering on AI hits: NN assisted HB tracking - - class: org.jlab.service.dc.DCHBPostClusterAI - name: DCHAI - - class: org.jlab.service.ftof.FTOFHBEngine - name: FTOFHB - class: org.jlab.service.ec.ECEngine name: EC - - class: org.jlab.rec.cvt.services.CVTEngine - name: CVTFP - - class: org.jlab.service.ctof.CTOFEngine - name: CTOF - - class: org.jlab.service.cnd.CNDCalibrationEngine - name: CND - - class: org.jlab.service.band.BANDEngine - name: BAND - - class: org.jlab.service.htcc.HTCCReconstructionService - name: HTCC - - class: org.jlab.service.ltcc.LTCCEngine - name: LTCC - - class: org.jlab.service.eb.EBHBEngine - name: EBHB - - class: org.jlab.service.dc.DCTBEngine - name: DCTB - - class: org.jlab.service.fmt.FMTEngine - name: FMT - - class: org.jlab.rec.cvt.services.CVTSecondPassEngine - name: CVTSP - - class: org.jlab.service.ftof.FTOFTBEngine - name: FTOFTB - - class: org.jlab.service.eb.EBTBEngine - name: EBTB - - class: org.jlab.rec.rich.RICHEBEngine - name: RICH - - class: org.jlab.service.rtpc.RTPCEngine - name: RTPC configuration: - global: - variation: rgb_spring2019 services: POSTPROC: preloadDir: "." preloadGlob: "*.hipo" - restream: "true" - rebuild: "true" - MAGFIELDS: - magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat - magfieldTorusMap: Full_torus_r251_phi181_z251_25Jan2021.dat - MLTD: - run: "6302" - DCHAI: - outputBankPrefix: "HB" + restream: "false" + rebuild: "false" mime-types: - binary/data-hipo From 22aa469c3b442d7bc8aea46df4d32bc539cd5121 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 4 Sep 2024 11:22:33 -0400 Subject: [PATCH 143/201] make it work on macos --- bin/run-clara | 84 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 67 insertions(+), 17 deletions(-) diff --git a/bin/run-clara b/bin/run-clara index 8e770c75f..122183819 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -1,48 +1,79 @@ #!/usr/bin/env bash -usage="Usage: run-clara -y YAML [-i INP] [-o OUT] [-c CLARA] [-t #] [-n #]" +ulimit -u 49152 >& /dev/null +export JAVA_OPTS="${JAVA_OPTS} -XX:+IgnoreUnrecognizedVMOptions" + +usage="Usage: run-clara [-i IN] [-o OUT] [-c CLARA] [-t #] [-n #] YAML" info="\nOptions:\n --y path to CLARA YAML steering file\n --i input HIPO file or directory of *.hipo files (default=.)\n --o output directory (default=.)\n --c CLARA installation (default=\$CLARA_HOME)\n --t number of threads (default=2)\n --n number of events (default=-1)\n\n +YAML path to CLARA YAML steering file\n +-i input HIPO file or directory of *.hipo files (default=.)\n +-o output directory (default=.)\n +-c CLARA installation (default=\$CLARA_HOME)\n +-t number of threads (default=2)\n +-n number of events (default=-1)\n\n Defaults will use \$CLARA_HOME to read all *.hipo files in \$PWD,\n with all output written to \$PWD." function error() { echo -e "\n$usage\n\nERROR: $@." && exit 1 } - function abspath() { [ -d $1 ] && echo $(cd $1 && pwd) && return 0 [ -r $1 ] && echo $(cd $(dirname $1) && pwd)/$(basename $1) && return 0 return 1 } +function get_host_ip() { + if command -v ip >/dev/null 2>&1 + then + ip route get 1 | awk '{print $7; exit}' && return 0 + elif command -v ifconfig >/dev/null 2>&1 + then + while IFS=$': \t' read -r -a line + do + [ -z "${line%inet}" ] && + ip=${line[${#line[1]}>4?1:2]} && + [ "${ip#127.0.0.1}" ] && echo $ip && return 0 + done< <(LANG=C ifconfig) + fi + return 1 +} +function get_dpe_port() { + local ports + ports=$(seq 7000 20 8000) + if command -v shuf >/dev/null 2>&1; then + ports=$(echo "$ports" | shuf) + fi + for port in $ports; do + local ctrl_port=$((port + 2)) + if ! eval "exec 6<>/dev/tcp/127.0.0.1/$ctrl_port" 2> /dev/null; then + echo $port + return 0 + fi + done + return 1 +} -ulimit -u 49152 >& /dev/null set -e # Check user command-line options: input=. output=. threads=2 -while getopts i:o:c:y:t:n:h opt +while getopts i:o:c:t:n:h opt do case $opt in i) input=$OPTARG ;; o) output=$OPTARG ;; c) CLARA_HOME=$OPTARG ;; - y) yaml=$OPTARG && [ -r $yaml ] || error "-y must be a YAML file" ;; t) threads=$OPTARG && [[ $threads =~ '^[0-9]+$' ]] || error "-t must be an integer, threads" ;; n) nevents="-e $OPTARG" && [[ $nevents =~ '^[0-9]+$' ]] || error "-n must be an integer, events" ;; h) echo -e $usage && echo -e $info && exit 0 ;; esac done shift $((OPTIND-1)) -[ $# -gt 0 ] && error "Unknown arguments: $@" -[ -z ${yaml+x} ] && error "-y YAML must be specified" +[ $# -gt 1 ] && error "Extra arguments: ${@:2} (options must come before positionals)" +[ $# -lt 1 ] && error "YAML file argument is required" +[ -r $1 ] && yaml=$1 || error "YAML file does not exist: $yaml" [ -z ${CLARA_HOME+x} ] && error "-c must be specified or \$CLARA_HOME set" [ -d $CLARA_HOME ] || error "Invalid CLARA_HOME: $CLARA_HOME" [ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` @@ -60,14 +91,33 @@ input=$(abspath $input) output=$(abspath $output) yaml=$(abspath $yaml) export CLARA_HOME=$(abspath $CLARA_HOME) +export CLAS12DIR=$CLARA_HOME/plugins/clas12 # Generate the file for CLARA containing a file list (of relative paths, not absolute): -test -d $input && find $input -maxdepth 1 -type f -name '*.hipo' -exec basename {} \; > $CLARA_USER_DATA/filelist.txt +test -d $input && find $input -maxdepth 1 -name '*.hipo' \( -type f \) -o \( -type l \) -exec basename {} \; > $CLARA_USER_DATA/filelist.txt test -f $input && echo $(basename $input) > $CLARA_USER_DATA/filelist.txt [ $(cat $CLARA_USER_DATA/filelist.txt | wc -l) -gt 0 ] || error "Found no input files." # Finally, run CLARA: -$CLARA_HOME/lib/clara/run-clara \ +[ -f $input ] || [ -h $input ] && input=$(dirname $input) +if [ $(uname) == "Darwin" ] +then + ip=$(get_host_ip) || error "Unknown IP address" + port=$(get_dpe_port) || error "Unknown DPE port" + $CLARA_HOME/bin/j_dpe \ + --host $ip --port $port \ + --session recon --max-cores $threads \ + --max-sockets 5120 --report 5 \ + 2>&1 | tee $CLARA_USER_DATA/log/dpe.log & + echo "Sleeping 7 ......." && sleep 7 + unset JAVA_OPTS + $CLARA_HOME/bin/clara-orchestrator \ + -F -f ${ip}%${port}_java -s recon \ + -i $input -o $output -z rec_ \ + -p $threads -t $threads \ + $yaml $CLARA_USER_DATA/filelist.txt +else + $CLARA_HOME/lib/clara/run-clara \ -i $input \ -o $CLARA_USER_DATA \ -z rec_ \ @@ -75,6 +125,6 @@ $CLARA_HOME/lib/clara/run-clara \ -t $threads \ $nevents \ -s recon \ - $yaml \ - ./$CLARA_USER_DATA/filelist.txt + $yaml $CLARA_USER_DATA/filelist.txt +fi From ff49bf36daba02ae241ddfdaaa2c44732b9b71ab Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 4 Sep 2024 13:07:17 -0400 Subject: [PATCH 144/201] fix numerical check --- bin/run-clara | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/bin/run-clara b/bin/run-clara index 122183819..e31c614e9 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env zsh ulimit -u 49152 >& /dev/null export JAVA_OPTS="${JAVA_OPTS} -XX:+IgnoreUnrecognizedVMOptions" @@ -30,9 +30,12 @@ function get_host_ip() { then while IFS=$': \t' read -r -a line do - [ -z "${line%inet}" ] && - ip=${line[${#line[1]}>4?1:2]} && - [ "${ip#127.0.0.1}" ] && echo $ip && return 0 + if [ -z "${line%inet}" ] + then + ip=${line[${#line[1]}>4?1:2]} + [ "${ip#127.0.0.1}" ] + echo $ip && return 0 + fi done< <(LANG=C ifconfig) fi return 1 @@ -40,12 +43,12 @@ function get_host_ip() { function get_dpe_port() { local ports ports=$(seq 7000 20 8000) - if command -v shuf >/dev/null 2>&1; then - ports=$(echo "$ports" | shuf) - fi - for port in $ports; do + command -v shuf >/dev/null 2>&1 && ports=$(echo "$ports" | shuf) + for port in $ports + do local ctrl_port=$((port + 2)) - if ! eval "exec 6<>/dev/tcp/127.0.0.1/$ctrl_port" 2> /dev/null; then + if ! eval "exec 6<>/dev/tcp/127.0.0.1/$ctrl_port" 2> /dev/null + then echo $port return 0 fi @@ -65,11 +68,12 @@ do i) input=$OPTARG ;; o) output=$OPTARG ;; c) CLARA_HOME=$OPTARG ;; - t) threads=$OPTARG && [[ $threads =~ '^[0-9]+$' ]] || error "-t must be an integer, threads" ;; - n) nevents="-e $OPTARG" && [[ $nevents =~ '^[0-9]+$' ]] || error "-n must be an integer, events" ;; + t) threads=$OPTARG && echo $threads | grep -q -E '^[0-9]+$' || error "-t must be an integer, threads" ;; + n) nevents="-e $OPTARG" && echo $nevents | grep -q -E '^-e [0-9]+$' || error "-n must be an integer, events" ;; h) echo -e $usage && echo -e $info && exit 0 ;; esac done + shift $((OPTIND-1)) [ $# -gt 1 ] && error "Extra arguments: ${@:2} (options must come before positionals)" [ $# -lt 1 ] && error "YAML file argument is required" From fbdc05c2ef70161df30b012472b1fc9fae70e5a6 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 4 Sep 2024 16:59:38 -0400 Subject: [PATCH 145/201] use new run-clara --- validation/advanced-tests/run-advanced-tests.sh | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index 38cb800dc..b45d4056d 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -26,20 +26,8 @@ export JAVA_OPTS="-Djava.util.logging.config.file=$PWD/../../etc/logging/debug.p # run decoder $COAT/bin/decoder -t -0.5 -s 0.0 -i ./twoTrackEvents_809_raw.evio -o ./twoTrackEvents_809.hipo -c 2 -# run reconstruction with clara -echo "set inputDir $PWD/" > cook.clara -echo "set outputDir $PWD/" >> cook.clara -echo "set threads 1" >> cook.clara -echo "set javaOptions \"-Xmx2g -Djava.util.logging.config.file=$PWD/../../etc/logging/debug.properties\"" >> cook.clara -echo "set session s_cook" >> cook.clara -echo "set description d_cook" >> cook.clara -ls twoTrackEvents_809.hipo > files.list -echo "set fileList $PWD/files.list" >> cook.clara -echo "set servicesFile $COAT/etc/services/kpp.yaml" >> cook.clara -echo "run local" >> cook.clara -echo "exit" >> cook.clara -$CLARA_HOME/bin/clara-shell cook.clara -#if [ $? != 0 ] ; then echo "reconstruction with clara failure" ; exit 1 ; fi +# run clara +$COAT/bin/run-clara $COAT/etc/services.kpp.yaml || echo "reconstruction with clara failure" && exit 1 # compile test codes javac -cp $classPath src/kpptracking/KppTrackingTest.java From 0cc0e8c79f5f4d79577f47b6f96a7a6d0df3e5df Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 4 Sep 2024 17:01:53 -0400 Subject: [PATCH 146/201] use default prefix --- validation/advanced-tests/src/kpptracking/KppTrackingTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/advanced-tests/src/kpptracking/KppTrackingTest.java b/validation/advanced-tests/src/kpptracking/KppTrackingTest.java index 4f4974a9e..cfdbdff19 100644 --- a/validation/advanced-tests/src/kpptracking/KppTrackingTest.java +++ b/validation/advanced-tests/src/kpptracking/KppTrackingTest.java @@ -17,7 +17,7 @@ public class KppTrackingTest { public void testKppTracking() { HipoDataSource reader = new HipoDataSource(); - reader.open("out_twoTrackEvents_809.hipo"); + reader.open("rec_twoTrackEvents_809.hipo"); int totalCount = 0; int twoTrackCountCV = 0; From 5bdd3471bb140e4f20945e6145a93b14f6d8e810 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 4 Sep 2024 17:34:21 -0400 Subject: [PATCH 147/201] bash --- bin/run-clara | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/run-clara b/bin/run-clara index e31c614e9..f384b0b29 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -1,4 +1,4 @@ -#!/usr/bin/env zsh +#!/usr/bin/env bash ulimit -u 49152 >& /dev/null export JAVA_OPTS="${JAVA_OPTS} -XX:+IgnoreUnrecognizedVMOptions" From 9df5cacfb8b2fe5cf9d0515984398773577dfc64 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 4 Sep 2024 18:11:44 -0400 Subject: [PATCH 148/201] path bugfux, cleanup --- bin/run-clara | 12 ++++++------ validation/advanced-tests/run-advanced-tests.sh | 6 +----- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/bin/run-clara b/bin/run-clara index f384b0b29..d9c66e4f1 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -1,18 +1,18 @@ -#!/usr/bin/env bash +#!/bin/bash -f ulimit -u 49152 >& /dev/null export JAVA_OPTS="${JAVA_OPTS} -XX:+IgnoreUnrecognizedVMOptions" usage="Usage: run-clara [-i IN] [-o OUT] [-c CLARA] [-t #] [-n #] YAML" -info="\nOptions:\n -YAML path to CLARA YAML steering file\n +info='\nOptions:\n +YAML - path to CLARA YAML steering file\n -i input HIPO file or directory of *.hipo files (default=.)\n -o output directory (default=.)\n --c CLARA installation (default=\$CLARA_HOME)\n +-c CLARA installation (default=$CLARA_HOME)\n -t number of threads (default=2)\n -n number of events (default=-1)\n\n -Defaults will use \$CLARA_HOME to read all *.hipo files in \$PWD,\n -with all output written to \$PWD." +Defaults will use $CLARA_HOME to read all *.hipo files in $PWD,\n +with all output written to $PWD.' function error() { echo -e "\n$usage\n\nERROR: $@." && exit 1 diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index b45d4056d..9509335ba 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -1,9 +1,5 @@ #!/bin/sh -f -# this test needs rewritten, with more useful data (not KPP), -# meanwhile not worth maintaining ... -#exit 0 - # coatjava must already be built at ../../coatjava/ # set up environment @@ -27,7 +23,7 @@ export JAVA_OPTS="-Djava.util.logging.config.file=$PWD/../../etc/logging/debug.p $COAT/bin/decoder -t -0.5 -s 0.0 -i ./twoTrackEvents_809_raw.evio -o ./twoTrackEvents_809.hipo -c 2 # run clara -$COAT/bin/run-clara $COAT/etc/services.kpp.yaml || echo "reconstruction with clara failure" && exit 1 +$COAT/bin/run-clara $COAT/etc/services/kpp.yaml || echo "reconstruction with clara failure" && exit 1 # compile test codes javac -cp $classPath src/kpptracking/KppTrackingTest.java From 560c8f07de485f0decbdc7e81d59e1f232c3d09e Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 5 Sep 2024 20:06:31 -0400 Subject: [PATCH 149/201] cleanup --- .../advanced-tests/run-advanced-tests.sh | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index 9509335ba..c5eb2fd22 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -3,32 +3,34 @@ # coatjava must already be built at ../../coatjava/ # set up environment +JAVA_OPTS="-Djava.util.logging.config.file=$PWD/../../etc/logging/debug.properties" CLARA_HOME=$PWD/clara_installation/ ; export CLARA_HOME COAT=$CLARA_HOME/plugins/clas12/ classPath="$COAT/lib/services/*:$COAT/lib/clas/*:$COAT/lib/utils/*:../lib/*:src/" # install clara ../../install-clara -c ../../coatjava $CLARA_HOME -if [ $? != 0 ] ; then echo "clara installation error" ; exit 1 ; fi +[ $? -ne 0 ] && echo "clara installation error" && exit 1 # download test files wget --no-check-certificate http://clasweb.jlab.org/clas12offline/distribution/coatjava/validation_files/twoTrackEvents_809_raw.evio.tar.gz - -if [ $? != 0 ] ; then echo "wget validation files failure" ; exit 1 ; fi +[ $? -ne 0 ] && echo "wget validation files failure" && exit 2 tar -zxvf twoTrackEvents_809_raw.evio.tar.gz -export JAVA_OPTS="-Djava.util.logging.config.file=$PWD/../../etc/logging/debug.properties" - # run decoder $COAT/bin/decoder -t -0.5 -s 0.0 -i ./twoTrackEvents_809_raw.evio -o ./twoTrackEvents_809.hipo -c 2 +[ $? -ne 0 ] && echo "decoder failure" && exit 3 # run clara -$COAT/bin/run-clara $COAT/etc/services/kpp.yaml || echo "reconstruction with clara failure" && exit 1 +$COAT/bin/run-clara $COAT/etc/services/kpp.yaml +[ $? -ne 0 ] && echo "reconstruction with clara failure" && exit 4 # compile test codes javac -cp $classPath src/kpptracking/KppTrackingTest.java -if [ $? != 0 ] ; then echo "KppTrackingTest compilation failure" ; exit 1 ; fi +[ $? -ne 0 ] && echo "KppTrackingTest compilation failure" && exit 5 # run KppTracking junit tests java -DCLAS12DIR="$COAT" -Xmx1536m -Xms1024m -cp $classPath org.junit.runner.JUnitCore kpptracking.KppTrackingTest -if [ $? != 0 ] ; then echo "KppTracking unit test failure" ; exit 1 ; else echo "KppTracking passed unit tests" ; fi +[ $? -ne 0 ] && echo "KppTracking unit test failure" && exit 6 + +echo "KppTracking passed unit tests" From 044d5d978ce2e77c4249d846b6c1b0bac6a6091a Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 19 Sep 2024 17:03:26 -0400 Subject: [PATCH 150/201] let it be --- bin/run-clara | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/run-clara b/bin/run-clara index d9c66e4f1..368141700 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -98,7 +98,7 @@ export CLARA_HOME=$(abspath $CLARA_HOME) export CLAS12DIR=$CLARA_HOME/plugins/clas12 # Generate the file for CLARA containing a file list (of relative paths, not absolute): -test -d $input && find $input -maxdepth 1 -name '*.hipo' \( -type f \) -o \( -type l \) -exec basename {} \; > $CLARA_USER_DATA/filelist.txt +test -d $input && find $input -maxdepth 1 -name '*.hipo' -exec basename {} \; > $CLARA_USER_DATA/filelist.txt test -f $input && echo $(basename $input) > $CLARA_USER_DATA/filelist.txt [ $(cat $CLARA_USER_DATA/filelist.txt | wc -l) -gt 0 ] || error "Found no input files." From b2e9389a64ac4c9b16046f9d21e593f27fac1909 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Sun, 22 Sep 2024 13:39:16 -0400 Subject: [PATCH 151/201] initialize outside event loop --- .../org/jlab/detector/scalers/DaqScalersSequence.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalersSequence.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalersSequence.java index 313d5322f..1872f512b 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalersSequence.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/scalers/DaqScalersSequence.java @@ -206,13 +206,12 @@ public static DaqScalersSequence readSequence(List filenames) { } SchemaFactory schema = reader.getSchemaFactory(); - + Event event=new Event(); + Bank scalerBank=new Bank(schema.getSchema("RUN::scaler")); + Bank configBank=new Bank(schema.getSchema("RUN::config")); + while (reader.hasNext()) { - Event event=new Event(); - Bank scalerBank=new Bank(schema.getSchema("RUN::scaler")); - Bank configBank=new Bank(schema.getSchema("RUN::config")); - reader.nextEvent(event); event.read(scalerBank); event.read(configBank); @@ -325,4 +324,4 @@ public static void main(String[] args) { } } -} \ No newline at end of file +} From d0f2ee4e96aafd0ce9cd94c9679f7a11cf82fcac Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 23 Sep 2024 17:32:16 -0400 Subject: [PATCH 152/201] remove premature yaml --- etc/services/data-ai-pp.yaml | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 etc/services/data-ai-pp.yaml diff --git a/etc/services/data-ai-pp.yaml b/etc/services/data-ai-pp.yaml deleted file mode 100644 index 3a0db310f..000000000 --- a/etc/services/data-ai-pp.yaml +++ /dev/null @@ -1,21 +0,0 @@ -io-services: - reader: - class: org.jlab.io.clara.HipoToHipoReader - name: HipoToHipoReader - writer: - class: org.jlab.io.clara.HipoToHipoWriter - name: HipoToHipoWriter -services: - - class: org.jlab.service.postproc.PostprocEngine - name: POSTPROC - - class: org.jlab.service.ec.ECEngine - name: EC -configuration: - services: - POSTPROC: - preloadDir: "." - preloadGlob: "*.hipo" - restream: "false" - rebuild: "false" -mime-types: - - binary/data-hipo From 3abfcd34a65b0c579702f0e27a14fa84c8e62787 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 1 Oct 2024 10:41:10 -0400 Subject: [PATCH 153/201] let user set output prefix --- bin/run-clara | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bin/run-clara b/bin/run-clara index 368141700..92f7f118a 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -8,6 +8,7 @@ info='\nOptions:\n YAML - path to CLARA YAML steering file\n -i input HIPO file or directory of *.hipo files (default=.)\n -o output directory (default=.)\n +-p output prefix (default=rec_)\n -c CLARA installation (default=$CLARA_HOME)\n -t number of threads (default=2)\n -n number of events (default=-1)\n\n @@ -62,11 +63,13 @@ set -e input=. output=. threads=2 -while getopts i:o:c:t:n:h opt +prefix=rec_ +while getopts i:o:p:c:t:n:h opt do case $opt in i) input=$OPTARG ;; o) output=$OPTARG ;; + p) prefix=$OPTARG ;; c) CLARA_HOME=$OPTARG ;; t) threads=$OPTARG && echo $threads | grep -q -E '^[0-9]+$' || error "-t must be an integer, threads" ;; n) nevents="-e $OPTARG" && echo $nevents | grep -q -E '^-e [0-9]+$' || error "-n must be an integer, events" ;; @@ -117,14 +120,14 @@ then unset JAVA_OPTS $CLARA_HOME/bin/clara-orchestrator \ -F -f ${ip}%${port}_java -s recon \ - -i $input -o $output -z rec_ \ + -i $input -o $output -z $prefix \ -p $threads -t $threads \ $yaml $CLARA_USER_DATA/filelist.txt else $CLARA_HOME/lib/clara/run-clara \ -i $input \ -o $CLARA_USER_DATA \ - -z rec_ \ + -z $prefix \ -x $CLARA_USER_DATA/log \ -t $threads \ $nevents \ From 324d735f6203b1f7e3ba622ad027c90834e9e139 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 1 Oct 2024 15:58:44 -0400 Subject: [PATCH 154/201] let inputs be a glob --- bin/run-clara | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bin/run-clara b/bin/run-clara index 92f7f118a..4fe4d0094 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -6,7 +6,7 @@ export JAVA_OPTS="${JAVA_OPTS} -XX:+IgnoreUnrecognizedVMOptions" usage="Usage: run-clara [-i IN] [-o OUT] [-c CLARA] [-t #] [-n #] YAML" info='\nOptions:\n YAML - path to CLARA YAML steering file\n --i input HIPO file or directory of *.hipo files (default=.)\n +-i input HIPO file, directory of *.hipo files, or glob of HIPO files (default=.)\n -o output directory (default=.)\n -p output prefix (default=rec_)\n -c CLARA installation (default=$CLARA_HOME)\n @@ -84,7 +84,8 @@ shift $((OPTIND-1)) [ -z ${CLARA_HOME+x} ] && error "-c must be specified or \$CLARA_HOME set" [ -d $CLARA_HOME ] || error "Invalid CLARA_HOME: $CLARA_HOME" [ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` -test -e $input && test -r $input || error "Invalid inputs -i: $input" +! test -r $input && echo "WARNING: Interpreting -i as a glob: $input" +! test -r $input && ! compgen -G $input && error "Invalid glob -i: $input" # Create the environment variables and directories required by CLARA: [ -e $output ] && echo "WARNING: Using existing directory: $output." @@ -94,14 +95,15 @@ export CLARA_USER_DATA=$output unset CLARA_MONITOR_FE # Normalize all paths: -input=$(abspath $input) output=$(abspath $output) yaml=$(abspath $yaml) +test -r $input && input=$(abspath $input) export CLARA_HOME=$(abspath $CLARA_HOME) export CLAS12DIR=$CLARA_HOME/plugins/clas12 # Generate the file for CLARA containing a file list (of relative paths, not absolute): -test -d $input && find $input -maxdepth 1 -name '*.hipo' -exec basename {} \; > $CLARA_USER_DATA/filelist.txt +! test -r $input && compgen -G $input > $CLARA_USER_DATA/filelist.txt +test -d $input && find $input -maxdepth 1 -name "*.hipo" -exec basename {} \; > $CLARA_USER_DATA/filelist.txt test -f $input && echo $(basename $input) > $CLARA_USER_DATA/filelist.txt [ $(cat $CLARA_USER_DATA/filelist.txt | wc -l) -gt 0 ] || error "Found no input files." From ac28d5a5949ce4c843744b707667b19a2fc485c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 07:45:09 +0000 Subject: [PATCH 155/201] build(deps): bump org.apache.maven.plugins:maven-javadoc-plugin Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.10.0 to 3.10.1. - [Release notes](https://github.com/apache/maven-javadoc-plugin/releases) - [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.10.0...maven-javadoc-plugin-3.10.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-javadoc-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parent/pom.xml b/parent/pom.xml index cb26e1867..9fc32b558 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -71,7 +71,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.10.0 + 3.10.1 coatjavadocs coatjavadocs From 272095a92d5ce07fac23a9b4d024cdbbab563b08 Mon Sep 17 00:00:00 2001 From: mungaro Date: Tue, 8 Oct 2024 10:06:45 -0400 Subject: [PATCH 156/201] replaced fc with root --- .../src/main/java/org/jlab/detector/geant4/DCGeant4Factory.java | 2 +- .../main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java | 2 +- .../main/java/org/jlab/detector/geant4/v2/ECGeant4Factory.java | 2 +- .../java/org/jlab/detector/geant4/v2/FTOFGeant4Factory.java | 2 +- .../main/java/org/jlab/detector/geant4/v2/Geant4Factory.java | 2 +- .../java/org/jlab/detector/geant4/v2/PCALGeant4Factory.java | 2 +- .../java/org/jlab/detector/geant4/v2/RICHGeant4Factory.java | 2 +- .../org/jlab/detector/geant4/v2/URWELL/URWellGeant4Factory.java | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/common-tools/clas-geometry/src/main/java/org/jlab/detector/geant4/DCGeant4Factory.java b/common-tools/clas-geometry/src/main/java/org/jlab/detector/geant4/DCGeant4Factory.java index 448f50f26..6fc50fbec 100644 --- a/common-tools/clas-geometry/src/main/java/org/jlab/detector/geant4/DCGeant4Factory.java +++ b/common-tools/clas-geometry/src/main/java/org/jlab/detector/geant4/DCGeant4Factory.java @@ -277,7 +277,7 @@ public Vector3D center() { public class DCGeant4Factory { DCdatabase dbref = DCdatabase.getInstance(); - private Geant4Basic motherVolume = new Geant4Basic("fc", "Box", 0); + private Geant4Basic motherVolume = new Geant4Basic("root", "Box", 0); private HashMap properties = new HashMap(); private int nsgwires; diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java index 947ba6479..0a61504a8 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java @@ -690,7 +690,7 @@ public DCGeant4Factory(ConstantProvider provider, "\n\t feedthroughs: " + dbref.feedthroughsStatus().getName() + "\n\t endplates bow: " + dbref.getEndPlatesStatus()); - motherVolume = new G4World("fc"); + motherVolume = new G4World("root"); dbref.connect(provider, shifts); nsgwires = dbref.nsensewires() + dbref.nguardwires(); diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/ECGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/ECGeant4Factory.java index 9fbd59fc2..343bd0171 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/ECGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/ECGeant4Factory.java @@ -39,7 +39,7 @@ public final class ECGeant4Factory extends Geant4Factory { public ECGeant4Factory(ConstantProvider cp) { - motherVolume = new G4World("fc"); + motherVolume = new G4World("root"); nsectors = cp.getInteger("/geometry/ec/ec/nsectors", 0); nlayers = cp.getInteger("/geometry/ec/ec/nlayers", 0); diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/FTOFGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/FTOFGeant4Factory.java index 375bcf32c..9c95eb9df 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/FTOFGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/FTOFGeant4Factory.java @@ -43,7 +43,7 @@ public final class FTOFGeant4Factory extends Geant4Factory { private final int[] nPaddles = new int[stringLayers.length]; public FTOFGeant4Factory(ConstantProvider provider) { - motherVolume = new G4World("fc"); + motherVolume = new G4World("root"); int alignrows = provider.length("/geometry/ftof/alignment/sector"); for(int irow = 0; irow< alignrows; irow++) { diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/Geant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/Geant4Factory.java index 1465ebddd..2013318f3 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/Geant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/Geant4Factory.java @@ -19,7 +19,7 @@ */ public abstract class Geant4Factory { - protected G4World motherVolume = new G4World("fc"); + protected G4World motherVolume = new G4World("root"); protected final HashMap properties = new HashMap<>(); @Override diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/PCALGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/PCALGeant4Factory.java index d58534dc5..402d9bd92 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/PCALGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/PCALGeant4Factory.java @@ -44,7 +44,7 @@ public final class PCALGeant4Factory extends Geant4Factory { List sectorVolumes = new ArrayList<>(); public PCALGeant4Factory(ConstantProvider cp) { - motherVolume = new G4World("fc"); + motherVolume = new G4World("root"); nsectors = cp.getInteger("/geometry/pcal/pcal/nsectors", 0); nlayers = cp.getInteger("/geometry/pcal/pcal/nlayers", 0); diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/RICHGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/RICHGeant4Factory.java index 5b41d34c8..7a6d2047f 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/RICHGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/RICHGeant4Factory.java @@ -69,7 +69,7 @@ public RICHGeant4Factory() { int debugMode = 0; - motherVolume = new G4World("fc"); + motherVolume = new G4World("root"); //import the 5 mesh files int stlN=0; diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/URWELL/URWellGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/URWELL/URWellGeant4Factory.java index 2a9fd118f..deaac1cf2 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/URWELL/URWellGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/URWELL/URWellGeant4Factory.java @@ -36,7 +36,7 @@ public URWellGeant4Factory( DatabaseConstantProvider cp, boolean prototype, int public void init(DatabaseConstantProvider cp, boolean prototype, int regions ) { - motherVolume = new G4World("fc"); + motherVolume = new G4World("root"); isProto = prototype; if (prototype == false) { nRegions = Math.min(URWellConstants.NMAXREGIONS, regions); From ec71db1b01c40714a358a009af04d6341538cacf Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 7 Oct 2024 13:00:56 -0400 Subject: [PATCH 157/201] add option to merge outputs (requires yq for trains) --- bin/run-clara | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/bin/run-clara b/bin/run-clara index 4fe4d0094..62fef9ef3 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -64,7 +64,7 @@ input=. output=. threads=2 prefix=rec_ -while getopts i:o:p:c:t:n:h opt +while getopts i:o:p:c:t:n:mh opt do case $opt in i) input=$OPTARG ;; @@ -73,6 +73,7 @@ do c) CLARA_HOME=$OPTARG ;; t) threads=$OPTARG && echo $threads | grep -q -E '^[0-9]+$' || error "-t must be an integer, threads" ;; n) nevents="-e $OPTARG" && echo $nevents | grep -q -E '^-e [0-9]+$' || error "-n must be an integer, events" ;; + m) merge=1 ;; h) echo -e $usage && echo -e $info && exit 0 ;; esac done @@ -86,6 +87,7 @@ shift $((OPTIND-1)) [ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` ! test -r $input && echo "WARNING: Interpreting -i as a glob: $input" ! test -r $input && ! compgen -G $input && error "Invalid glob -i: $input" +! [ -z ${merge+x} ] && ! command -v hipo-utils >& /dev/null && error "Merging requested, but hipo-utils is not in \$PATH" # Create the environment variables and directories required by CLARA: [ -e $output ] && echo "WARNING: Using existing directory: $output." @@ -137,3 +139,17 @@ else $yaml $CLARA_USER_DATA/filelist.txt fi +# Merge outputs: +if ! [ -z ${merge+x} ] +then + if grep -q org.jlab.jnp.grapes $yaml >& /dev/null + then + for id in $(yq .configuration.services.*.id $yaml | uniq) + do + hipo-utils -merge -o $output/$prefix$id.hipo $output/$prefix$id*.hipo + done + else + outfiles=$(sed "s#^#$output/$prefix#" $CLARA_USER_DATA/filelist.txt) + hipo-utils -merge -o $output/$prefix.hipo $outfiles + fi +fi From 96dcfddc50a432c086101cdf793ea1cb4d22a32a Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 7 Oct 2024 16:54:23 -0400 Subject: [PATCH 158/201] document dependencies --- bin/run-clara | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/bin/run-clara b/bin/run-clara index 62fef9ef3..1087fd00d 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -3,17 +3,21 @@ ulimit -u 49152 >& /dev/null export JAVA_OPTS="${JAVA_OPTS} -XX:+IgnoreUnrecognizedVMOptions" -usage="Usage: run-clara [-i IN] [-o OUT] [-c CLARA] [-t #] [-n #] YAML" -info='\nOptions:\n -YAML - path to CLARA YAML steering file\n --i input HIPO file, directory of *.hipo files, or glob of HIPO files (default=.)\n --o output directory (default=.)\n --p output prefix (default=rec_)\n --c CLARA installation (default=$CLARA_HOME)\n --t number of threads (default=2)\n --n number of events (default=-1)\n\n +usage="\nUsage: run-clara [-i IN] [-o OUT] [-p PREFIX] [-c CLARA_HOME] [-t #] [-n #] [-m] [-h] YAML" +info='\nRequired Arguments:\n +\tYAML = path to CLARA YAML steering file\n +Options:\n +\t-i directory or shell glob of input HIPO files (default=.)\n +\t-o output directory (default=.)\n +\t-p output prefix (default=rec_)\n +\t-c CLARA installation (default=$CLARA_HOME)\n +\t-t number of threads (default=2)\n +\t-n number of events (default=-1)\n +\t-m merge output files (see dependencies below)\n +\t-h print this help and exit\n\n Defaults will use $CLARA_HOME to read all *.hipo files in $PWD,\n -with all output written to $PWD.' +with all output written to $PWD. Merging outputs (-m) requires\n +hipo-utils and yq (https://github.com/mikefarah/yq) in $PATH.' function error() { echo -e "\n$usage\n\nERROR: $@." && exit 1 From 6dbd155a7b2a487039b363f4e9858e93306b7266 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 8 Oct 2024 08:22:06 -0400 Subject: [PATCH 159/201] support unsorted YAMLs --- bin/run-clara | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/run-clara b/bin/run-clara index 1087fd00d..02b60b6bd 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -148,7 +148,7 @@ if ! [ -z ${merge+x} ] then if grep -q org.jlab.jnp.grapes $yaml >& /dev/null then - for id in $(yq .configuration.services.*.id $yaml | uniq) + for id in $(yq .configuration.services.*.id $yaml | sort -n | uniq) do hipo-utils -merge -o $output/$prefix$id.hipo $output/$prefix$id*.hipo done From 761352a147c10a036078fae048ea3271f4c57475 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 8 Oct 2024 15:41:49 -0400 Subject: [PATCH 160/201] fix glob --- bin/run-clara | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/run-clara b/bin/run-clara index 02b60b6bd..c97226a2c 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -108,7 +108,7 @@ export CLARA_HOME=$(abspath $CLARA_HOME) export CLAS12DIR=$CLARA_HOME/plugins/clas12 # Generate the file for CLARA containing a file list (of relative paths, not absolute): -! test -r $input && compgen -G $input > $CLARA_USER_DATA/filelist.txt +! test -r $input && compgen -G $input | xargs basename > $CLARA_USER_DATA/filelist.txt test -d $input && find $input -maxdepth 1 -name "*.hipo" -exec basename {} \; > $CLARA_USER_DATA/filelist.txt test -f $input && echo $(basename $input) > $CLARA_USER_DATA/filelist.txt [ $(cat $CLARA_USER_DATA/filelist.txt | wc -l) -gt 0 ] || error "Found no input files." From 9dc99ed19ca46ffddb0e71f33d475fa096eb206a Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 9 Oct 2024 14:29:35 -0400 Subject: [PATCH 161/201] switch to standard input list (and -y YAML) and symlink them for CLARA --- bin/run-clara | 41 +++++++++---------- .../advanced-tests/run-advanced-tests.sh | 2 +- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/bin/run-clara b/bin/run-clara index c97226a2c..263e31c33 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -3,11 +3,11 @@ ulimit -u 49152 >& /dev/null export JAVA_OPTS="${JAVA_OPTS} -XX:+IgnoreUnrecognizedVMOptions" -usage="\nUsage: run-clara [-i IN] [-o OUT] [-p PREFIX] [-c CLARA_HOME] [-t #] [-n #] [-m] [-h] YAML" +usage="\nUsage: run-clara -y YAML [-h] [-m] [-t #] [-n #] [-o DIR] [-p PREFIX] [-c CLARA_HOME] FILE..." info='\nRequired Arguments:\n -\tYAML = path to CLARA YAML steering file\n +\tFILE... (input data files)\n +\t-y YAML file\n Options:\n -\t-i directory or shell glob of input HIPO files (default=.)\n \t-o output directory (default=.)\n \t-p output prefix (default=rec_)\n \t-c CLARA installation (default=$CLARA_HOME)\n @@ -15,9 +15,7 @@ Options:\n \t-n number of events (default=-1)\n \t-m merge output files (see dependencies below)\n \t-h print this help and exit\n\n -Defaults will use $CLARA_HOME to read all *.hipo files in $PWD,\n -with all output written to $PWD. Merging outputs (-m) requires\n -hipo-utils and yq (https://github.com/mikefarah/yq) in $PATH.' +Merging outputs (-m) requires hipo-utils and yq (https://github.com/mikefarah/yq).' function error() { echo -e "\n$usage\n\nERROR: $@." && exit 1 @@ -64,14 +62,13 @@ function get_dpe_port() { set -e # Check user command-line options: -input=. output=. threads=2 prefix=rec_ -while getopts i:o:p:c:t:n:mh opt +while getopts y:o:p:c:t:n:mh opt do case $opt in - i) input=$OPTARG ;; + y) yaml=$OPTARG ;; o) output=$OPTARG ;; p) prefix=$OPTARG ;; c) CLARA_HOME=$OPTARG ;; @@ -83,14 +80,14 @@ do done shift $((OPTIND-1)) -[ $# -gt 1 ] && error "Extra arguments: ${@:2} (options must come before positionals)" -[ $# -lt 1 ] && error "YAML file argument is required" -[ -r $1 ] && yaml=$1 || error "YAML file does not exist: $yaml" +inputs=$@ + +[ $# -lt 1 ] && error "Input data files are required." +[ -z ${yaml+x} ] && error "-y YAML is required" +[ -r $yaml ] || error "YAML file does not exist: $yaml" [ -z ${CLARA_HOME+x} ] && error "-c must be specified or \$CLARA_HOME set" [ -d $CLARA_HOME ] || error "Invalid CLARA_HOME: $CLARA_HOME" [ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` -! test -r $input && echo "WARNING: Interpreting -i as a glob: $input" -! test -r $input && ! compgen -G $input && error "Invalid glob -i: $input" ! [ -z ${merge+x} ] && ! command -v hipo-utils >& /dev/null && error "Merging requested, but hipo-utils is not in \$PATH" # Create the environment variables and directories required by CLARA: @@ -103,18 +100,20 @@ unset CLARA_MONITOR_FE # Normalize all paths: output=$(abspath $output) yaml=$(abspath $yaml) -test -r $input && input=$(abspath $input) export CLARA_HOME=$(abspath $CLARA_HOME) export CLAS12DIR=$CLARA_HOME/plugins/clas12 # Generate the file for CLARA containing a file list (of relative paths, not absolute): -! test -r $input && compgen -G $input | xargs basename > $CLARA_USER_DATA/filelist.txt -test -d $input && find $input -maxdepth 1 -name "*.hipo" -exec basename {} \; > $CLARA_USER_DATA/filelist.txt -test -f $input && echo $(basename $input) > $CLARA_USER_DATA/filelist.txt +touch $CLARA_USER_DATA/filelist.txt +for x in $inputs +do + test -f $x && test -r $x || error "Invalid input file: $x" + echo $(basename $x) >> $CLARA_USER_DATA/filelist.txt + ln -s $(abspath $(dirname $x))/$(basename $x) $CLARA_USER_DATA +done [ $(cat $CLARA_USER_DATA/filelist.txt | wc -l) -gt 0 ] || error "Found no input files." # Finally, run CLARA: -[ -f $input ] || [ -h $input ] && input=$(dirname $input) if [ $(uname) == "Darwin" ] then ip=$(get_host_ip) || error "Unknown IP address" @@ -128,12 +127,12 @@ then unset JAVA_OPTS $CLARA_HOME/bin/clara-orchestrator \ -F -f ${ip}%${port}_java -s recon \ - -i $input -o $output -z $prefix \ + -i $CLARA_USER_DATA -o $output -z $prefix \ -p $threads -t $threads \ $yaml $CLARA_USER_DATA/filelist.txt else $CLARA_HOME/lib/clara/run-clara \ - -i $input \ + -i $CLARA_USER_DATA \ -o $CLARA_USER_DATA \ -z $prefix \ -x $CLARA_USER_DATA/log \ diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index c5eb2fd22..9f4645401 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -22,7 +22,7 @@ $COAT/bin/decoder -t -0.5 -s 0.0 -i ./twoTrackEvents_809_raw.evio -o ./twoTrackE [ $? -ne 0 ] && echo "decoder failure" && exit 3 # run clara -$COAT/bin/run-clara $COAT/etc/services/kpp.yaml +$COAT/bin/run-clara -y $COAT/etc/services/kpp.yaml *.hipo [ $? -ne 0 ] && echo "reconstruction with clara failure" && exit 4 # compile test codes From 1eb8f92734765e5b412d7ef11dd74cbd6fdb1f76 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 9 Oct 2024 15:39:42 -0400 Subject: [PATCH 162/201] cleanup printout --- bin/run-clara | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/run-clara b/bin/run-clara index 263e31c33..c064ba681 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -91,7 +91,7 @@ inputs=$@ ! [ -z ${merge+x} ] && ! command -v hipo-utils >& /dev/null && error "Merging requested, but hipo-utils is not in \$PATH" # Create the environment variables and directories required by CLARA: -[ -e $output ] && echo "WARNING: Using existing directory: $output." +[ -e $output ] && echo "WARNING: Using existing directory: $output" mkdir -p -v $output || error "Cannot create -o output directory: $output" mkdir -p $output/log $output/config $output/data/output export CLARA_USER_DATA=$output From 75518b67bacb4dd4d4ed2218d2aa196cbc54ff57 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 9 Oct 2024 15:40:45 -0400 Subject: [PATCH 163/201] use bash --- validation/advanced-tests/run-advanced-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index 9f4645401..f6e3572d4 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -1,4 +1,4 @@ -#!/bin/sh -f +#!/bin/bash -f # coatjava must already be built at ../../coatjava/ From 7a23c443c35a24bf0b74f43e8e240a55b73b8f47 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 9 Oct 2024 17:12:26 -0400 Subject: [PATCH 164/201] cleanup --- bin/run-clara | 137 +++++++++++++++++++++++++------------------------- 1 file changed, 68 insertions(+), 69 deletions(-) diff --git a/bin/run-clara b/bin/run-clara index c064ba681..814cc4338 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -2,8 +2,9 @@ ulimit -u 49152 >& /dev/null export JAVA_OPTS="${JAVA_OPTS} -XX:+IgnoreUnrecognizedVMOptions" +set -e -usage="\nUsage: run-clara -y YAML [-h] [-m] [-t #] [-n #] [-o DIR] [-p PREFIX] [-c CLARA_HOME] FILE..." +usage="Usage: run-clara -y YAML [-h] [-m] [-t #] [-n #] [-o DIR] [-p PREFIX] [-c CLARA_HOME] FILE..." info='\nRequired Arguments:\n \tFILE... (input data files)\n \t-y YAML file\n @@ -20,11 +21,57 @@ Merging outputs (-m) requires hipo-utils and yq (https://github.com/mikefarah/yq function error() { echo -e "\n$usage\n\nERROR: $@." && exit 1 } -function abspath() { - [ -d $1 ] && echo $(cd $1 && pwd) && return 0 - [ -r $1 ] && echo $(cd $(dirname $1) && pwd)/$(basename $1) && return 0 - return 1 -} + +# Interpret command line: +threads=2 +prefix=rec_ +CLARA_USER_DATA=. +while getopts y:o:p:c:t:n:mh opt +do + case $opt in + y) yaml=$OPTARG ;; + o) CLARA_USER_DATA=$OPTARG ;; + p) prefix=$OPTARG ;; + c) CLARA_HOME=$OPTARG ;; + t) threads=$OPTARG && echo $threads | grep -q -E '^[0-9]+$' || error "-t must be an integer, threads" ;; + n) nevents="-e $OPTARG" && echo $nevents | grep -q -E '^-e [0-9]+$' || error "-n must be an integer, events" ;; + m) merge=1 ;; + h) echo -e "\n$usage" && echo -e $info && exit 0 ;; + esac +done +shift $((OPTIND-1)) +inputs=("${@}") + +# Check configuration: +[ ${#inputs[@]} -lt 1 ] && error "Input data files are required" +[ -z ${yaml+x} ] && error "-y YAML is required" +[ -f $yaml ] && [ -r $yaml ] || error "YAML file does not exist: $yaml" +[ -z ${CLARA_HOME+x} ] && error "-c must be specified or \$CLARA_HOME set" +[ -d $CLARA_HOME ] || error "Invalid CLARA_HOME: $CLARA_HOME" +[ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` +! [ -z ${merge+x} ] && [ "${#inputs[@]}" -eq 1 ] && echo "WARNING: merging disabled for single file" +! [ -z ${merge+x} ] && ! command -v hipo-utils >& /dev/null && error "Merging requested, but hipo-utils is not in \$PATH" +yaml=$(cd $(dirname $yaml) && pwd)/$(basename $yaml) + +# Create the environment variables and directories required by CLARA: +[ -e $CLARA_USER_DATA ] && echo "WARNING: Using existing directory: $CLARA_USER_DATA" +mkdir -p -v $CLARA_USER_DATA || error "Cannot create -o output directory: $CLARA_USER_DATA" +mkdir -p $CLARA_USER_DATA/log $CLARA_USER_DATA/config $CLARA_USER_DATA/data/output +export CLARA_USER_DATA=$(cd $CLARA_USER_DATA && pwd) +export CLARA_HOME=$(cd $CLARA_HOME && pwd) +export CLAS12DIR=$CLARA_HOME/plugins/clas12 +unset CLARA_MONITOR_FE + +# Generate the file for CLARA containing a list of file basenames: +rm -f $CLARA_USER_DATA/filelist.txt && touch $CLARA_USER_DATA/filelist.txt +for x in $inputs +do + test -f $x && test -r $x || error "Invalid input file: $x" + echo $(basename $x) >> $CLARA_USER_DATA/filelist.txt + ln -sf $(cd $(dirname $x) && pwd)/$(basename $x) $CLARA_USER_DATA +done +[ $(cat $CLARA_USER_DATA/filelist.txt | wc -l) -gt 0 ] || error "Found no input files" + function get_host_ip() { if command -v ip >/dev/null 2>&1 then @@ -59,79 +106,30 @@ function get_dpe_port() { return 1 } -set -e - -# Check user command-line options: -output=. -threads=2 -prefix=rec_ -while getopts y:o:p:c:t:n:mh opt -do - case $opt in - y) yaml=$OPTARG ;; - o) output=$OPTARG ;; - p) prefix=$OPTARG ;; - c) CLARA_HOME=$OPTARG ;; - t) threads=$OPTARG && echo $threads | grep -q -E '^[0-9]+$' || error "-t must be an integer, threads" ;; - n) nevents="-e $OPTARG" && echo $nevents | grep -q -E '^-e [0-9]+$' || error "-n must be an integer, events" ;; - m) merge=1 ;; - h) echo -e $usage && echo -e $info && exit 0 ;; - esac -done - -shift $((OPTIND-1)) -inputs=$@ - -[ $# -lt 1 ] && error "Input data files are required." -[ -z ${yaml+x} ] && error "-y YAML is required" -[ -r $yaml ] || error "YAML file does not exist: $yaml" -[ -z ${CLARA_HOME+x} ] && error "-c must be specified or \$CLARA_HOME set" -[ -d $CLARA_HOME ] || error "Invalid CLARA_HOME: $CLARA_HOME" -[ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` -! [ -z ${merge+x} ] && ! command -v hipo-utils >& /dev/null && error "Merging requested, but hipo-utils is not in \$PATH" - -# Create the environment variables and directories required by CLARA: -[ -e $output ] && echo "WARNING: Using existing directory: $output" -mkdir -p -v $output || error "Cannot create -o output directory: $output" -mkdir -p $output/log $output/config $output/data/output -export CLARA_USER_DATA=$output -unset CLARA_MONITOR_FE - -# Normalize all paths: -output=$(abspath $output) -yaml=$(abspath $yaml) -export CLARA_HOME=$(abspath $CLARA_HOME) -export CLAS12DIR=$CLARA_HOME/plugins/clas12 - -# Generate the file for CLARA containing a file list (of relative paths, not absolute): -touch $CLARA_USER_DATA/filelist.txt -for x in $inputs -do - test -f $x && test -r $x || error "Invalid input file: $x" - echo $(basename $x) >> $CLARA_USER_DATA/filelist.txt - ln -s $(abspath $(dirname $x))/$(basename $x) $CLARA_USER_DATA -done -[ $(cat $CLARA_USER_DATA/filelist.txt | wc -l) -gt 0 ] || error "Found no input files." - # Finally, run CLARA: if [ $(uname) == "Darwin" ] then ip=$(get_host_ip) || error "Unknown IP address" port=$(get_dpe_port) || error "Unknown DPE port" - $CLARA_HOME/bin/j_dpe \ + set -v + echo $CLARA_HOME/bin/j_dpe \ --host $ip --port $port \ --session recon --max-cores $threads \ --max-sockets 5120 --report 5 \ 2>&1 | tee $CLARA_USER_DATA/log/dpe.log & - echo "Sleeping 7 ......." && sleep 7 + set +v + #echo "Sleeping 7 ......." && sleep 7 unset JAVA_OPTS - $CLARA_HOME/bin/clara-orchestrator \ + set -v + echo $CLARA_HOME/bin/clara-orchestrator \ -F -f ${ip}%${port}_java -s recon \ - -i $CLARA_USER_DATA -o $output -z $prefix \ + -i $CLARA_USER_DATA -o $CLARA_USER_DATA -z $prefix \ -p $threads -t $threads \ $yaml $CLARA_USER_DATA/filelist.txt + set +v else - $CLARA_HOME/lib/clara/run-clara \ + set -v + echo $CLARA_HOME/lib/clara/run-clara \ -i $CLARA_USER_DATA \ -o $CLARA_USER_DATA \ -z $prefix \ @@ -140,19 +138,20 @@ else $nevents \ -s recon \ $yaml $CLARA_USER_DATA/filelist.txt + set +v fi # Merge outputs: -if ! [ -z ${merge+x} ] +if [ ${#inputs[@]} -gt 1 ] && ! [ -z ${merge+x} ] then if grep -q org.jlab.jnp.grapes $yaml >& /dev/null then for id in $(yq .configuration.services.*.id $yaml | sort -n | uniq) do - hipo-utils -merge -o $output/$prefix$id.hipo $output/$prefix$id*.hipo + echo hipo-utils -merge -o $CLARA_USER_DATA/$prefix$id.hipo $CLARA_USER_DATA/$prefix$id*.hipo done else - outfiles=$(sed "s#^#$output/$prefix#" $CLARA_USER_DATA/filelist.txt) - hipo-utils -merge -o $output/$prefix.hipo $outfiles + outfiles=$(sed "s#^#$CLARA_USER_DATA/$prefix#" $CLARA_USER_DATA/filelist.txt) + echo hipo-utils -merge -o $CLARA_USER_DATA/$prefix.hipo $outfiles fi fi From e602847462801e1570e86165875857676f99f2b3 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 9 Oct 2024 17:31:44 -0400 Subject: [PATCH 165/201] avoid platform dependence --- bin/run-clara | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/bin/run-clara b/bin/run-clara index 814cc4338..6293ca75f 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -40,16 +40,15 @@ do esac done shift $((OPTIND-1)) -inputs=("${@}") +inputs=$@ # Check configuration: -[ ${#inputs[@]} -lt 1 ] && error "Input data files are required" +[ $# -lt 1 ] && error "Input data files are required" [ -z ${yaml+x} ] && error "-y YAML is required" [ -f $yaml ] && [ -r $yaml ] || error "YAML file does not exist: $yaml" [ -z ${CLARA_HOME+x} ] && error "-c must be specified or \$CLARA_HOME set" [ -d $CLARA_HOME ] || error "Invalid CLARA_HOME: $CLARA_HOME" [ $threads -eq 0 ] && threads=`grep -c ^processor /proc/cpuinfo` -! [ -z ${merge+x} ] && [ "${#inputs[@]}" -eq 1 ] && echo "WARNING: merging disabled for single file" ! [ -z ${merge+x} ] && ! command -v hipo-utils >& /dev/null && error "Merging requested, but hipo-utils is not in \$PATH" yaml=$(cd $(dirname $yaml) && pwd)/$(basename $yaml) @@ -142,7 +141,7 @@ else fi # Merge outputs: -if [ ${#inputs[@]} -gt 1 ] && ! [ -z ${merge+x} ] +if ! [ -z ${merge+x} ] then if grep -q org.jlab.jnp.grapes $yaml >& /dev/null then From 132f30843b8fd25828d2e8ff52a67bced6001adf Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 9 Oct 2024 17:37:15 -0400 Subject: [PATCH 166/201] reenable --- bin/run-clara | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/run-clara b/bin/run-clara index 6293ca75f..8de32a22f 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -111,7 +111,7 @@ then ip=$(get_host_ip) || error "Unknown IP address" port=$(get_dpe_port) || error "Unknown DPE port" set -v - echo $CLARA_HOME/bin/j_dpe \ + $CLARA_HOME/bin/j_dpe \ --host $ip --port $port \ --session recon --max-cores $threads \ --max-sockets 5120 --report 5 \ @@ -120,7 +120,7 @@ then #echo "Sleeping 7 ......." && sleep 7 unset JAVA_OPTS set -v - echo $CLARA_HOME/bin/clara-orchestrator \ + $CLARA_HOME/bin/clara-orchestrator \ -F -f ${ip}%${port}_java -s recon \ -i $CLARA_USER_DATA -o $CLARA_USER_DATA -z $prefix \ -p $threads -t $threads \ @@ -128,7 +128,7 @@ then set +v else set -v - echo $CLARA_HOME/lib/clara/run-clara \ + $CLARA_HOME/lib/clara/run-clara \ -i $CLARA_USER_DATA \ -o $CLARA_USER_DATA \ -z $prefix \ @@ -147,10 +147,10 @@ then then for id in $(yq .configuration.services.*.id $yaml | sort -n | uniq) do - echo hipo-utils -merge -o $CLARA_USER_DATA/$prefix$id.hipo $CLARA_USER_DATA/$prefix$id*.hipo + hipo-utils -merge -o $CLARA_USER_DATA/$prefix$id.hipo $CLARA_USER_DATA/$prefix$id*.hipo done else outfiles=$(sed "s#^#$CLARA_USER_DATA/$prefix#" $CLARA_USER_DATA/filelist.txt) - echo hipo-utils -merge -o $CLARA_USER_DATA/$prefix.hipo $outfiles + hipo-utils -merge -o $CLARA_USER_DATA/$prefix.hipo $outfiles fi fi From 52a3742a0aa92cfd85753e05c40495956f3ef21c Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 9 Oct 2024 17:46:04 -0400 Subject: [PATCH 167/201] debug --- validation/advanced-tests/run-advanced-tests.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index f6e3572d4..30f249178 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -22,6 +22,7 @@ $COAT/bin/decoder -t -0.5 -s 0.0 -i ./twoTrackEvents_809_raw.evio -o ./twoTrackE [ $? -ne 0 ] && echo "decoder failure" && exit 3 # run clara +ls -l $COAT/bin/run-clara -y $COAT/etc/services/kpp.yaml *.hipo [ $? -ne 0 ] && echo "reconstruction with clara failure" && exit 4 From da7ac951778ff65fc48127319bb82f4694dc6bd4 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 9 Oct 2024 17:49:11 -0400 Subject: [PATCH 168/201] -f disables expansion, donot need it anyway --- validation/advanced-tests/run-advanced-tests.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh index 30f249178..4922e0c48 100755 --- a/validation/advanced-tests/run-advanced-tests.sh +++ b/validation/advanced-tests/run-advanced-tests.sh @@ -22,8 +22,7 @@ $COAT/bin/decoder -t -0.5 -s 0.0 -i ./twoTrackEvents_809_raw.evio -o ./twoTrackE [ $? -ne 0 ] && echo "decoder failure" && exit 3 # run clara -ls -l -$COAT/bin/run-clara -y $COAT/etc/services/kpp.yaml *.hipo +$COAT/bin/run-clara -y $COAT/etc/services/kpp.yaml ./twoTrackEvents_809.hipo [ $? -ne 0 ] && echo "reconstruction with clara failure" && exit 4 # compile test codes From d57ffe0b118626c20b5d35d27c17a293021884aa Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 9 Oct 2024 18:21:06 -0400 Subject: [PATCH 169/201] only link if necessary --- bin/run-clara | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/run-clara b/bin/run-clara index 8de32a22f..36a830a29 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -67,7 +67,7 @@ for x in $inputs do test -f $x && test -r $x || error "Invalid input file: $x" echo $(basename $x) >> $CLARA_USER_DATA/filelist.txt - ln -sf $(cd $(dirname $x) && pwd)/$(basename $x) $CLARA_USER_DATA + test -f $CLARA_USER_DATA/$(basename $x) || ln -sf $(cd $(dirname $x) && pwd)/$(basename $x) $CLARA_USER_DATA done [ $(cat $CLARA_USER_DATA/filelist.txt | wc -l) -gt 0 ] || error "Found no input files" From 516e89a4f2c2ef7929604f857ee425054076580a Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 10 Oct 2024 12:03:35 -0400 Subject: [PATCH 170/201] fix glob --- bin/run-clara | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/run-clara b/bin/run-clara index 36a830a29..7973a39cb 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -147,7 +147,7 @@ then then for id in $(yq .configuration.services.*.id $yaml | sort -n | uniq) do - hipo-utils -merge -o $CLARA_USER_DATA/$prefix$id.hipo $CLARA_USER_DATA/$prefix$id*.hipo + hipo-utils -merge -o $CLARA_USER_DATA/$prefix$id.hipo $CLARA_USER_DATA/$prefix*$id.hipo done else outfiles=$(sed "s#^#$CLARA_USER_DATA/$prefix#" $CLARA_USER_DATA/filelist.txt) From 601d45eb6d78c5960c7234baff7f33ca86fa6aed Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 10 Oct 2024 07:51:53 -0400 Subject: [PATCH 171/201] publicize ccdb variation setter --- .../java/org/jlab/detector/decode/DetectorEventDecoder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java index 5d4535458..f1e9f8673 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java @@ -41,7 +41,7 @@ public void setTimestamp(String timestamp) { scalerManager.setTimeStamp(timestamp); } - private void setVariation(String variation) { + public void setVariation(String variation) { translationManager.setVariation(variation); fitterManager.setVariation(variation); scalerManager.setVariation(variation); From d8944113aebbdc5b97660cbdea660c722b6ef73a Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 10 Oct 2024 07:54:53 -0400 Subject: [PATCH 172/201] add decoder cli CCDB variation option --- .../main/java/org/jlab/detector/decode/CLASDecoder4.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java index dae7677ed..2b5410b68 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java @@ -679,6 +679,7 @@ public static void main(String[] args){ parser.addOption("-t", "-0.5","torus current in the header bank"); parser.addOption("-s", "0.5","solenoid current in the header bank"); parser.addOption("-x", null,"CCDB timestamp (MM/DD/YYYY-HH:MM:SS)"); + parser.addOption("-v","default","CCDB variation"); parser.parse(args); @@ -735,9 +736,10 @@ public static void main(String[] args){ decoder.setRunNumber(nrun,true); } - if (parser.getOption("-x").getValue() != null) { + if (parser.getOption("-x").getValue() != null) decoder.detectorDecoder.setTimestamp(parser.getOption("-x").stringValue()); - } + if (parser.getOption("-v").getValue() != null) + decoder.detectorDecoder.setVariation(parser.getOption("-v").stringValue()); // Store all helicity readings, ordered by timestamp: TreeSet helicityReadings = new TreeSet<>(); From f916ea1c1cc03fc49e3d4b4d87c89c726fcbccea Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 10 Oct 2024 08:00:21 -0400 Subject: [PATCH 173/201] let user set variation --- .../src/main/java/org/jlab/detector/decode/CLASDecoder4.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java index 2b5410b68..0796b64e0 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java @@ -78,6 +78,10 @@ public static CLASDecoder createDecoderDevel(){ return decoder; } + public void setVariation(String variation) { + detectorDecoder.setVariation(variation); + } + public void setDebugMode(int mode){ this.decoderDebugMode = mode; } From 90f57f19a8e89a24da1b0da5a7ccf9b97ea360b7 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 14 Oct 2024 14:02:13 -0400 Subject: [PATCH 174/201] bump version (#343) --- common-tools/clara-io/pom.xml | 4 ++-- common-tools/clas-analysis/pom.xml | 20 ++++++++--------- common-tools/clas-detector/pom.xml | 10 ++++----- common-tools/clas-geometry/pom.xml | 4 ++-- common-tools/clas-io/pom.xml | 8 +++---- common-tools/clas-jcsg/pom.xml | 8 +++---- common-tools/clas-logging/pom.xml | 4 ++-- common-tools/clas-math/pom.xml | 4 ++-- common-tools/clas-physics/pom.xml | 4 ++-- common-tools/clas-reco/pom.xml | 16 +++++++------- common-tools/clas-tracking/pom.xml | 6 +++--- common-tools/clas-utils/pom.xml | 6 +++--- common-tools/cnuphys/magfield/pom.xml | 2 +- common-tools/cnuphys/swimmer/pom.xml | 2 +- common-tools/coat-lib/deployDistribution.sh | 2 +- common-tools/coat-lib/pom.xml | 24 ++++++++++----------- common-tools/parent/pom.xml | 2 +- common-tools/pom.xml | 4 ++-- common-tools/swim-tools/pom.xml | 6 +++--- parent/pom.xml | 2 +- pom.xml | 4 ++-- reconstruction/alert/pom.xml | 10 ++++----- reconstruction/band/pom.xml | 4 ++-- reconstruction/bg/pom.xml | 8 +++---- reconstruction/cnd/pom.xml | 2 +- reconstruction/cvt/pom.xml | 6 +++--- reconstruction/dc/pom.xml | 14 ++++++------ reconstruction/eb/pom.xml | 10 ++++----- reconstruction/ec/pom.xml | 6 +++--- reconstruction/fmt/pom.xml | 6 +++--- reconstruction/ft/pom.xml | 4 ++-- reconstruction/htcc/pom.xml | 4 ++-- reconstruction/ltcc/pom.xml | 4 ++-- reconstruction/mc/pom.xml | 4 ++-- reconstruction/mltn/pom.xml | 6 +++--- reconstruction/pom.xml | 4 ++-- reconstruction/postproc/pom.xml | 8 +++---- reconstruction/raster/pom.xml | 4 ++-- reconstruction/rich/pom.xml | 6 +++--- reconstruction/rtpc/pom.xml | 6 +++--- reconstruction/swaps/pom.xml | 8 +++---- reconstruction/tof/pom.xml | 4 ++-- reconstruction/urwell/pom.xml | 6 +++--- reconstruction/vtx/pom.xml | 6 +++--- 44 files changed, 141 insertions(+), 141 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index 46749d240..387a592f1 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clara-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml index 550b9be84..1eafad931 100644 --- a/common-tools/clas-analysis/pom.xml +++ b/common-tools/clas-analysis/pom.xml @@ -3,63 +3,63 @@ 4.0.0 org.jlab.clas clas-analysis - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-utils - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-physics - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-geometry - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas swim-tools - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-detector - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml index 20f607f30..6572eb93a 100644 --- a/common-tools/clas-detector/pom.xml +++ b/common-tools/clas-detector/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-detector - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-utils - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -29,13 +29,13 @@ org.jlab.clas clas-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-geometry - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index 7662ab84d..870e32a2a 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-geometry - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 0d600e86f..4ddb1272d 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -90,13 +90,13 @@ org.jlab.clas clas-utils - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-logging - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT compile diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index 24028d8d6..e9ccd34f9 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-jcsg - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -27,12 +27,12 @@ org.jlab.clas clas-geometry - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-detector - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT java3d diff --git a/common-tools/clas-logging/pom.xml b/common-tools/clas-logging/pom.xml index d42442205..dd4da20b3 100644 --- a/common-tools/clas-logging/pom.xml +++ b/common-tools/clas-logging/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-logging - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml index 766803d13..4187e446c 100644 --- a/common-tools/clas-math/pom.xml +++ b/common-tools/clas-math/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-math - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml index e653d85b1..b77e86174 100644 --- a/common-tools/clas-physics/pom.xml +++ b/common-tools/clas-physics/pom.xml @@ -4,14 +4,14 @@ org.jlab.clas clas-physics - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml index df584d353..97399aa77 100644 --- a/common-tools/clas-reco/pom.xml +++ b/common-tools/clas-reco/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -42,37 +42,37 @@ org.jlab.clas clas-math - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-logging - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-physics - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-utils - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-detector - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index 13c12cf7c..36cf7cfd5 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-tracking - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -22,7 +22,7 @@ org.jlab.clas swim-tools - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index 4fd730d04..a8d8930b9 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-utils - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-logging - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.apache.commons diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml index 61c8ddb80..1242fdbdf 100644 --- a/common-tools/cnuphys/magfield/pom.xml +++ b/common-tools/cnuphys/magfield/pom.xml @@ -23,7 +23,7 @@ org.jlab.clas clas-math - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml index b3944a22f..94a0dde03 100644 --- a/common-tools/cnuphys/swimmer/pom.xml +++ b/common-tools/cnuphys/swimmer/pom.xml @@ -35,7 +35,7 @@ org.jlab.clas clas-math - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/coat-lib/deployDistribution.sh b/common-tools/coat-lib/deployDistribution.sh index 1e56391c1..fba9ce60b 100755 --- a/common-tools/coat-lib/deployDistribution.sh +++ b/common-tools/coat-lib/deployDistribution.sh @@ -8,7 +8,7 @@ cd `dirname $0` # Script is exporting existing Jar files to repository #------------------------------------------------------------------------------------------------- -VERSION=11.0.2 +VERSION=11.0.3 mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -Dfile=target/coat-libs-${VERSION}-SNAPSHOT.jar \ diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index 0cbc71102..e69de9882 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jlab.clas coat-libs - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT pom @@ -94,67 +94,67 @@ org.jlab.clas clas-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clara-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-utils - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-detector - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-analysis - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-geometry - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-physics - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas swim-tools - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-tracking - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index 912a00d86..a64d1f947 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas common-tools - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT pom diff --git a/common-tools/pom.xml b/common-tools/pom.xml index e9d85c151..868dd02b0 100644 --- a/common-tools/pom.xml +++ b/common-tools/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas common-tools - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml index 443fa1b4d..abbb6f748 100644 --- a/common-tools/swim-tools/pom.xml +++ b/common-tools/swim-tools/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas swim-tools - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/parent/pom.xml b/parent/pom.xml index 9fc32b558..fa2f706ee 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas clas12rec - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index bde7c11cf..66755e005 100644 --- a/pom.xml +++ b/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas clas12 - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT pom org.jlab.clas clas12rec parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml index 6bea56299..3396ba182 100644 --- a/reconstruction/alert/pom.xml +++ b/reconstruction/alert/pom.xml @@ -13,31 +13,31 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT compile org.jlab.clas clas-tracking - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT compile org.jlab.clas clas-geometry - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT compile diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml index 4a94eacc9..1d13527d9 100644 --- a/reconstruction/band/pom.xml +++ b/reconstruction/band/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/bg/pom.xml b/reconstruction/bg/pom.xml index ab6945173..d1700fe96 100644 --- a/reconstruction/bg/pom.xml +++ b/reconstruction/bg/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-analysis - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml index 327f9aea1..6a81b9261 100644 --- a/reconstruction/cnd/pom.xml +++ b/reconstruction/cnd/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml index e7841212d..e9ab2d037 100644 --- a/reconstruction/cvt/pom.xml +++ b/reconstruction/cvt/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -47,7 +47,7 @@ org.jlab.clas clas-tracking - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index 822c39cbf..f8cae8612 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -28,25 +28,25 @@ org.jlab.clas clas-tracking - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-analysis - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -75,13 +75,13 @@ org.jlab.clas swim-tools - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-math - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml index a1638f598..a89b8b592 100644 --- a/reconstruction/eb/pom.xml +++ b/reconstruction/eb/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,25 +21,25 @@ org.jlab.clas clas-utils - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-analysis - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml index 19dd8cebc..75aea6562 100644 --- a/reconstruction/ec/pom.xml +++ b/reconstruction/ec/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-analysis - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml index 38e7600c4..229439698 100644 --- a/reconstruction/fmt/pom.xml +++ b/reconstruction/fmt/pom.xml @@ -15,21 +15,21 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas swim-tools - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml index 82221c8fb..ae3f33936 100644 --- a/reconstruction/ft/pom.xml +++ b/reconstruction/ft/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml index c3a911c4b..4e11d3119 100644 --- a/reconstruction/htcc/pom.xml +++ b/reconstruction/htcc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml index cd8720bfd..b935db8e8 100644 --- a/reconstruction/ltcc/pom.xml +++ b/reconstruction/ltcc/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml index f1268c258..d4736ae06 100644 --- a/reconstruction/mc/pom.xml +++ b/reconstruction/mc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml index 56ec517cd..42ff1e53b 100644 --- a/reconstruction/mltn/pom.xml +++ b/reconstruction/mltn/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -34,13 +34,13 @@ org.jlab.clas clas-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index a7565a73c..5de19add4 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -3,14 +3,14 @@ org.jlab.clas reconstruction - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/postproc/pom.xml b/reconstruction/postproc/pom.xml index e9ed05d22..befb6ddc0 100644 --- a/reconstruction/postproc/pom.xml +++ b/reconstruction/postproc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-analysis - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml index dd8f28f16..565926605 100644 --- a/reconstruction/raster/pom.xml +++ b/reconstruction/raster/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml index 281efcd0c..c390575f4 100644 --- a/reconstruction/rich/pom.xml +++ b/reconstruction/rich/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml index eab03722e..3393212cb 100644 --- a/reconstruction/rtpc/pom.xml +++ b/reconstruction/rtpc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,12 +21,12 @@ org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-tracking - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT compile diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml index b04924b62..844a54124 100644 --- a/reconstruction/swaps/pom.xml +++ b/reconstruction/swaps/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-detector - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-io - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-reco - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml index 5de807863..ee7e8b0b2 100644 --- a/reconstruction/tof/pom.xml +++ b/reconstruction/tof/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/urwell/pom.xml b/reconstruction/urwell/pom.xml index f35f4b0d3..ebfc2164f 100644 --- a/reconstruction/urwell/pom.xml +++ b/reconstruction/urwell/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT org.jlab.clas clas-analysis - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml index 4d16f416c..9894f1e07 100644 --- a/reconstruction/vtx/pom.xml +++ b/reconstruction/vtx/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT @@ -33,13 +33,13 @@ org.jlab.clas swim-tools - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar org.jlab.clas clas-tracking - 11.0.2-SNAPSHOT + 11.0.3-SNAPSHOT jar From 182e4af6feb7525be45b4d3a9d4e597be2365109 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 23 Oct 2024 16:47:10 -0400 Subject: [PATCH 175/201] use clas12-config for gcards --- validation/advanced-tests/src/eb/scripts/.gitignore | 1 + validation/advanced-tests/src/eb/scripts/gemc.sh | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/validation/advanced-tests/src/eb/scripts/.gitignore b/validation/advanced-tests/src/eb/scripts/.gitignore index 840d3411c..e63297d7a 100644 --- a/validation/advanced-tests/src/eb/scripts/.gitignore +++ b/validation/advanced-tests/src/eb/scripts/.gitignore @@ -1,3 +1,4 @@ *.txt *.gz *.hipo +clas12-config diff --git a/validation/advanced-tests/src/eb/scripts/gemc.sh b/validation/advanced-tests/src/eb/scripts/gemc.sh index d94ba3200..9ec0197ea 100755 --- a/validation/advanced-tests/src/eb/scripts/gemc.sh +++ b/validation/advanced-tests/src/eb/scripts/gemc.sh @@ -11,11 +11,14 @@ then exit fi +v=5.10 +git clone https://github.com/jeffersonlab/clas12-config + run=11 nEvents=1000 -gcard=$GEMC/../config/clas12-default.gcard +gcard=clas12-config/gemc/$v/clas12-default.gcard -gemc \ +echo gemc \ $gcard \ -INPUT_GEN_FILE="LUND, $1.txt" \ -OUTPUT="hipo, $1.hipo" \ From db1c510b98161eb3c4753c88cb320856b48acd1b Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 23 Oct 2024 16:49:14 -0400 Subject: [PATCH 176/201] fix oops --- validation/advanced-tests/src/eb/scripts/gemc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/advanced-tests/src/eb/scripts/gemc.sh b/validation/advanced-tests/src/eb/scripts/gemc.sh index 9ec0197ea..061688f7c 100755 --- a/validation/advanced-tests/src/eb/scripts/gemc.sh +++ b/validation/advanced-tests/src/eb/scripts/gemc.sh @@ -18,7 +18,7 @@ run=11 nEvents=1000 gcard=clas12-config/gemc/$v/clas12-default.gcard -echo gemc \ +gemc \ $gcard \ -INPUT_GEN_FILE="LUND, $1.txt" \ -OUTPUT="hipo, $1.hipo" \ From fe47038676baae892904a125b5a1265c6803265a Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 23 Oct 2024 18:55:07 -0400 Subject: [PATCH 177/201] check existence --- validation/advanced-tests/src/eb/scripts/gemc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/advanced-tests/src/eb/scripts/gemc.sh b/validation/advanced-tests/src/eb/scripts/gemc.sh index 061688f7c..f6f904520 100755 --- a/validation/advanced-tests/src/eb/scripts/gemc.sh +++ b/validation/advanced-tests/src/eb/scripts/gemc.sh @@ -12,7 +12,7 @@ then fi v=5.10 -git clone https://github.com/jeffersonlab/clas12-config +test -d clas12-config || git clone https://github.com/jeffersonlab/clas12-config run=11 nEvents=1000 From b28ef330b474c93acafa2afe82222ad6ba8ec8ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 07:26:16 +0000 Subject: [PATCH 178/201] build(deps): bump com.github.spotbugs:spotbugs-maven-plugin Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.6.4 to 4.8.6.5. - [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases) - [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.6.4...spotbugs-maven-plugin-4.8.6.5) --- updated-dependencies: - dependency-name: com.github.spotbugs:spotbugs-maven-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- common-tools/cnuphys/parent/pom.xml | 2 +- parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index 797daa050..cd9c88c77 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -38,7 +38,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.6.4 + 4.8.6.5 spotbugs-exclude.xml diff --git a/parent/pom.xml b/parent/pom.xml index fa2f706ee..b42aba560 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -62,7 +62,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.6.4 + 4.8.6.5 spotbugs-exclude.xml From 28ca2d0c7247329583278bf06fa506e9537e0603 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 29 Oct 2024 11:04:11 -0400 Subject: [PATCH 179/201] remove clas6 bankdefs, do not belong here (#359) --- etc/bankdefs/clas6/CLAS6_BOS_Dictionary.xml | 3567 ------------------- etc/bankdefs/hipo4/clas6event.json | 260 -- 2 files changed, 3827 deletions(-) delete mode 100644 etc/bankdefs/clas6/CLAS6_BOS_Dictionary.xml delete mode 100644 etc/bankdefs/hipo4/clas6event.json diff --git a/etc/bankdefs/clas6/CLAS6_BOS_Dictionary.xml b/etc/bankdefs/clas6/CLAS6_BOS_Dictionary.xml deleted file mode 100644 index 8aea94f7d..000000000 --- a/etc/bankdefs/clas6/CLAS6_BOS_Dictionary.xml +++ /dev/null @@ -1,3567 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/etc/bankdefs/hipo4/clas6event.json b/etc/bankdefs/hipo4/clas6event.json deleted file mode 100644 index b6e73ae92..000000000 --- a/etc/bankdefs/hipo4/clas6event.json +++ /dev/null @@ -1,260 +0,0 @@ -[ - { - "name": "HEADER::info", - "group": 31000, - "item" : 1, - "info": "Event Header Information", - "entries": [ - {"name": "estatus", "type": "I", "info": "event status after reconstruction"}, - {"name": "nrun", "type": "I", "info": "run number"}, - {"name": "nevt", "type": "I", "info": "event number"}, - {"name": "type", "type": "I", "info": "event type (data or mc)"}, - {"name": "npgp", "type": "I", "info": "number of final reconstructed particles*100 + number of geometrically reconstructed particles"}, - {"name": "trgprs", "type": "I", "info": "trigger type*10000 + prescale factor for that trigger (event class)"}, - {"name": "trigger", "type": "I", "info": "trigger type"}, - {"name": "helicity", "type": "B", "info": "faraday cup gated"}, - {"name": "fc", "type": "F", "info": "faraday cup"}, - {"name": "fcg", "type": "F", "info": "faraday cup gated"}, - {"name": "tg", "type": "F", "info": "clock gated"}, - {"name": "stt", "type": "F", "info": "start time"}, - {"name": "rf1", "type": "F", "info": "rf time1"}, - {"name": "rf2", "type": "F", "info": "rf time2"}, - {"name": "con1", "type": "F", "info": "control rates1"}, - {"name": "con2", "type": "F", "info": "control rates2"}, - {"name": "con3", "type": "F", "info": "control rates3"}, - {"name": "rastr1", "type": "S", "info": "rastr 1"}, - {"name": "rastr2", "type": "S", "info": "rastr 2"} - ] - }, - { - "name": "HEADER::tgbi", - "group": 31000, - "item" : 43, - "info" : "TGBI Bank", - "entries": [ - {"name": "latch1", "type": "I", "info": "level1 trigger latch word (16 bits)"}, - {"name": "helicity_scaler", "type": "I", "info": "helicity interval count"}, - {"name": "interrupt_time", "type": "I", "info": "interrupt time from microsec clock"}, - {"name": "latch2", "type": "I", "info": "level2 trigger latch word (16 bits)"}, - {"name": "level3", "type": "I", "info": "level3 trigger word (32 bits)"} - ] - }, - { - "name": "EVENT::particle", - "group": 31000, - "item" : 21, - "info": "Container Bank for reconstructed CLAS6 Data", - "entries": [ - {"name": "status", "type": "B", "info": "status of the particle"}, - {"name": "charge", "type": "B", "info": "charge of the particle"}, - {"name": "pid", "type": "I", "info": "particle ID"}, - {"name": "beta", "type": "F", "info": "Particle velocity in the units of c (=R_trk/TOF/c)"}, - {"name": "mass", "type": "F", "info": "particle mass calculated from beta"}, - {"name": "px", "type": "F", "info": "x component of momentum"}, - {"name": "py", "type": "F", "info": "y component of momentum"}, - {"name": "pz", "type": "F", "info": "z component of momentum"}, - {"name": "vx", "type": "F", "info": "x component of vertex"}, - {"name": "vy", "type": "F", "info": "y component of vertex"}, - {"name": "vz", "type": "F", "info": "z component of vertex"}, - {"name": "dcstat", "type": "B", "info": "pointer to dc bank"}, - {"name": "ecstat", "type": "B", "info": "pointer to ec bank"}, - {"name": "scstat", "type": "B", "info": "pointer to sc bank"}, - {"name": "ccstat", "type": "B", "info": "pointer to cc bank"}, - {"name": "ststat", "type": "B", "info": "pointer to st bank"}, - {"name": "lcstat", "type": "B", "info": "pointer to cc bank"} - ] - }, - { - "name": "MC::particle", - "group": 31000, - "item" : 55, - "info": "Container Bank for reconstructed CLAS6 Data", - "entries": [ - {"name": "status", "type": "B", "info": "status of the particle"}, - {"name": "charge", "type": "B", "info": "charge of the particle"}, - {"name": "pid", "type": "I", "info": "particle ID"}, - {"name": "beta", "type": "F", "info": "Particle velocity in the units of c (=R_trk/TOF/c)"}, - {"name": "mass", "type": "F", "info": "particle mass calculated from beta"}, - {"name": "px", "type": "F", "info": "x component of momentum"}, - {"name": "py", "type": "F", "info": "y component of momentum"}, - {"name": "pz", "type": "F", "info": "z component of momentum"}, - {"name": "vx", "type": "F", "info": "x component of vertex"}, - {"name": "vy", "type": "F", "info": "y component of vertex"}, - {"name": "vz", "type": "F", "info": "z component of vertex"} - ] - }, - { - "name": "EVENT::detector", - "group": 31000, - "item" : 22, - "info": "Detector information for reconstructed CLAS6 Data", - "entries": [ - {"name": "scsector", "type": "I", "info": "sector of TOF"}, - {"name": "scpaddle", "type": "I", "info": "paddle of TOF"}, - {"name": "ecsector", "type": "I", "info": "sector of EC"}, - {"name": "ccnphe", "type": "F", "info": "number of photoelectrons in CC"}, - {"name": "sctime", "type": "F", "info": "time in TOF corrected with TOF"}, - {"name": "scpath", "type": "F", "info": "path in TOF corrected with TOF"}, - {"name": "ectime", "type": "F", "info": ""}, - {"name": "ecpath", "type": "F", "info": ""}, - {"name": "ecin", "type": "F", "info": ""}, - {"name": "ecout", "type": "F", "info": ""}, - {"name": "ectot", "type": "F", "info": ""}, - {"name": "ecu", "type": "F", "info": ""}, - {"name": "ecv", "type": "F", "info": ""}, - {"name": "ecw", "type": "F", "info": ""} - ] - }, - { - "name": "EVENT::beam", - "group": 31000, - "item": 23, - "info": "Beam information", - "entries": [ - {"name": "energy", "type": "F", "info": "Electron Beam Energy"}, - {"name": "itorus", "type": "F", "info": "Torus Magnet current in Amps"}, - {"name": "imini", "type": "F", "info": "Mini-Torus Magnet current in Amps"}, - {"name": "itag", "type": "F", "info": "Tagger Magnet current in Amps"} - ] - }, - { - "name": "DETECTOR::ecpb", - "group": 31000, - "item" : 31, - "info": "EC detector bank", - "entries": [ - {"name": "sector", "type": "B", "info": "hit sector"}, - {"name": "clusterid","type": "B", "info": "whole_hit_ID"}, - {"name": "etot", "type": "F", "info": "total energy of the hit"}, - {"name": "ein", "type": "F", "info": "inner energy of the hit"}, - {"name": "eout", "type": "F", "info": "outter energy of the hit"}, - {"name": "time", "type": "F", "info": "time of the hit"}, - {"name": "path", "type": "F", "info": "path of the hit"}, - {"name": "x", "type": "F", "info": "x coordinate of the hit"}, - {"name": "y", "type": "F", "info": "y coordinate of the hit"}, - {"name": "z", "type": "F", "info": "z coordinate of the hit"}, - {"name": "m2_hit", "type": "F", "info": "second moment of hit pattern"}, - {"name": "m3_hit", "type": "F", "info": "third moment of hit pattern"}, - {"name": "m4_hit", "type": "F", "info": "fourth moment of hit pattern"}, - {"name": "innstr", "type": "I", "info": "10000*UI+100*VI+WI"}, - {"name": "outstr", "type": "I", "info": "10000*UO+100*VO+WO"}, - {"name": "chi2", "type": "F", "info": "quality measure of geometrical tracking"}, - {"name": "status", "type": "I", "info": "Status word"} - ] - }, - { - "name": "DETECTOR::scpb", - "group": 31000, - "item" : 32, - "info": "SC detector bank", - "entries": [ - {"name": "sector", "type": "B", "info": "hit sector"}, - {"name": "paddle", "type": "B", "info": "hit sector"}, - {"name": "hit_id", "type": "B", "info": "hit ID"}, - {"name": "edep", "type": "F", "info": "deposited energy"}, - {"name": "time", "type": "F", "info": "time of the hit"}, - {"name": "path", "type": "F", "info": "path of the hit"}, - {"name": "chi2", "type": "F", "info": "quality measure of geometrical tracking"}, - {"name": "status", "type": "I", "info": "Status word"} - ] - }, - { - "name": "DETECTOR::ccpb", - "group": 31000, - "item" : 33, - "info": "CC detector bank", - "entries": [ - {"name": "sector", "type": "B", "info": "hit sector"}, - {"name": "clusterid","type": "I", "info": "cluster id"}, - {"name": "nphe", "type": "F", "info": "number of photo-electrons"}, - {"name": "time", "type": "F", "info": "time of the hit"}, - {"name": "path", "type": "F", "info": "path of the hit"}, - {"name": "chi2", "type": "F", "info": "Geometrical tracking: angle between cc hit and nearest sc hit"}, - {"name": "status", "type": "I", "info": "Status word - now 10*(CC segment number)"} - ] - }, - { - "name": "DETECTOR::lcpb", - "group": 31000, - "item" : 34, - "info": "LC detector bank", - "entries": [ - {"name": "sector", "type": "B", "info": "hit sector"}, - {"name": "hit_id", "type": "B", "info": "hit ID"}, - {"name": "etot", "type": "F", "info": "total energy of the hit"}, - {"name": "ein", "type": "F", "info": "inner energy of the hit"}, - {"name": "time", "type": "F", "info": "time of the hit"}, - {"name": "path", "type": "F", "info": "path of the hit"}, - {"name": "x", "type": "F", "info": "x coordinate of the hit"}, - {"name": "y", "type": "F", "info": "y coordinate of the hit"}, - {"name": "z", "type": "F", "info": "z coordinate of the hit"}, - {"name": "chi2", "type": "F", "info": "quality measure of geometrical tracking"}, - {"name": "status", "type": "I", "info": "Status word"} - ] - }, - { - "name": "DETECTOR::dcpb", - "group": 31000, - "item" : 35, - "info": "DC detector bank", - "entries": [ - {"name": "sector", "type": "B", "info": "sector"}, - {"name": "track_id", "type": "B", "info": "track_ID"}, - {"name": "x_sc", "type": "F", "info": "x coordinate of track intersection with SC plane"}, - {"name": "y_sc", "type": "F", "info": "y coordinate of track intersection with SC plane"}, - {"name": "z_sc", "type": "F", "info": "z coordinate of track intersection with SC plane"}, - {"name": "cx_sc", "type": "F", "info": "X dir cosine at (x_SC,y_SC,z_SC)"}, - {"name": "cy_sc", "type": "F", "info": "Y dir cosine at (x_SC,y_SC,z_SC)"}, - {"name": "cz_sc", "type": "F", "info": "Z dir cosine at (x_SC,y_SC,z_SC)"}, - {"name": "x_v", "type": "F", "info": "vertex X after fiting to the beam position"}, - {"name": "y_v", "type": "F", "info": "vertex Y after fiting to the beam position"}, - {"name": "z_v", "type": "F", "info": "vertex Z after fiting to the beam position"}, - {"name": "r_v", "type": "F", "info": "distance from production vertex to the beam"}, - {"name": "chi2", "type": "F", "info": "Chisquare of track fitting"}, - {"name": "status", "type": "I", "info": "Status word"} - ] - }, - { - "name": "TAGGER::tagr", - "group": 31000, - "item" : 41, - "info": "Tagger bank", - "entries": [ - {"name": "status", "type": "B", "info": "hit status"}, - {"name": "tid", "type": "S", "info": "T-counter id"}, - {"name": "eid", "type": "S", "info": "E-counter id"}, - {"name": "time", "type": "F", "info": "time of the tagger hit"}, - {"name": "energy", "type": "F", "info": "energy of the tagger hit"}, - {"name": "ttag", "type": "F", "info": "Time of the photon has reconstructed in the Tagger"} - ] - }, - { - "name": "TAGGER::tgpb", - "group": 31000, - "item" : 42, - "info": "TGPB Bank", - "entries": [ - {"name": "pointer", "type": "B", "info": "1000*i+tagstat where i is the pointer to the TAGR bank. Negative for trigger photon"}, - {"name": "time", "type": "F", "info": "starttime_TAG at interaction point(s)"}, - {"name": "energy", "type": "F", "info": "photon Energy"}, - {"name": "dt", "type": "F", "info": "starttime_ST - starttimeTAG (ns)"} - ] - }, - { - "name": "DETECTOR::icpb", - "group": 31000, - "item" : 51, - "info": "IC detector bank", - "entries": [ - {"name": "etc", "type": "F", "info": "Reconstructed total energy"}, - {"name": "ecc", "type": "F", "info": "Energy of central hit crystal in cluster"}, - {"name": "tc", "type": "F", "info": "Time relative to event start time"}, - {"name": "xc", "type": "F", "info": "x coord of hit (diff from ich_x)"}, - {"name": "yc", "type": "F", "info": "y coord of hit (diff from ich_y)"}, - {"name": "zc", "type": "F", "info": "z coordinate of hit (front face of IC)"}, - {"name": "m2_hit", "type": "F", "info": "second moment of _hit pattern"}, - {"name": "m3_hit", "type": "F", "info": "third moment of _hit pattern"}, - {"name": "status", "type": "I", "info": "Ncrystals+10000*Hit_ID in ICHB"} - ] - } -] From cbd85e42090b18983c06ab441012e1d2a1afbe6a Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Tue, 29 Oct 2024 12:46:31 -0400 Subject: [PATCH 180/201] doc: banks' group and item IDs (#357) --- etc/bankdefs/hipo4/README.md | 401 +++++++++++++++++++++++++++++++ etc/bankdefs/util/dumpBankIDs.rb | 87 +++++++ 2 files changed, 488 insertions(+) create mode 100644 etc/bankdefs/hipo4/README.md create mode 100755 etc/bankdefs/util/dumpBankIDs.rb diff --git a/etc/bankdefs/hipo4/README.md b/etc/bankdefs/hipo4/README.md new file mode 100644 index 000000000..8b0eac1a2 --- /dev/null +++ b/etc/bankdefs/hipo4/README.md @@ -0,0 +1,401 @@ +# Bank Group and Item IDs + +This file was generated by +```bash +etc/bankdefs/util/dumpBankIDs.rb etc/bankdefs/hipo4 +``` + +> [!IMPORTANT] +> Please re-run this script if you modify any of the bank definitions. + + +## Group 40 + +| Item ID | Name | Description | +| --- | --- | --- | +| 0 | `MC::Header` | Head bank for the generated event | +| 1 | `MC::Event` | Lund header bank for the generated event | +| 2 | `MC::Particle` | Generated Particle information | +| 3 | `MC::Lund` | Generated Particle information from Lund | +| 4 | `MC::True` | True detector information from GEANT4 | +| 5 | `MC::User` | User-defined information | +| 6 | `MC::GenMatch` | `MC::Particle` -> `REC::Particle` matching | +| 7 | `MC::RecMatch` | `Rec::Particle` -> `MC::Particle` matching | + +## Group 300 + +| Item ID | Name | Description | +| --- | --- | --- | +| 10 | `RECHB::Event` | Event Header Bank | +| 11 | `RECHB::Particle` | Reconstructed Particle Information | +| 12 | `RECHB::Calorimeter` | Calorimeter Responses for Particles bank | +| 13 | `RECHB::Cherenkov` | Cherenkov Responses for Particles bank | +| 14 | `RECHB::ForwardTagger` | Forward Tagger information for Particles bank | +| 15 | `RECHB::Scintillator` | Scintillator Responses for Particles bank | +| 16 | `RECHB::Track` | Track information for Particles bank | +| 17 | `RECHB::TrackCross` | Track Cross information for Particles bank (deprecated by `RECHB::Traj`) | +| 18 | `RECHB::Traj` | Trajectory information for Particles bank | +| 23 | `RECHB::ScintExtras` | Scintillator Cluster Parameters | +| 24 | `RECHB::CaloExtras` | Calorimeter Cluster Parameters | +| 30 | `REC::Event` | Event Header Bank | +| 31 | `REC::Particle` | Reconstructed Particle Information | +| 32 | `REC::Calorimeter` | Calorimeter Responses for Particles bank | +| 33 | `REC::Cherenkov` | Cherenkov Responses for Particles bank | +| 34 | `REC::ForwardTagger` | Forward Tagger information for Particles bank | +| 35 | `REC::Scintillator` | Scintillator Responses for Particles bank | +| 36 | `REC::Track` | Track information for Particles bank | +| 37 | `REC::TrackCross` | Track Cross information for Particles bank (deprecated by `REC::Traj`) | +| 38 | `REC::CovMat` | reconstructed track covariance matrix | +| 39 | `REC::VertDoca` | Track Cross information for Particles bank | +| 40 | `REC::Traj` | Trajectory information for Particles bank | +| 41 | `RECFT::Event` | Event Header Bank, shadowing `REC::Event` with FT-based start time | +| 42 | `RECFT::Particle` | Reconstructed Particle Information, shadowing `REC::Particle` with FT-based start time | +| 43 | `REC::ScintExtras` | Scintillator Cluster Parameters | +| 44 | `REC::UTrack` | Track information for Particles bank | +| 45 | `RECHB::UTrack` | Track information for Particles bank | +| 46 | `REC::CaloExtras` | Calorimeter Cluster Parameters | + +## Group 400 + +| Item ID | Name | Description | +| --- | --- | --- | +| 10 | `RECHBAI::Event` | Event Header Bank | +| 11 | `RECHBAI::Particle` | Reconstructed Particle Information | +| 12 | `RECHBAI::Calorimeter` | Calorimeter Responses for Particles bank | +| 13 | `RECHBAI::Cherenkov` | Cherenkov Responses for Particles bank | +| 14 | `RECHBAI::ForwardTagger` | Forward Tagger information for Particles bank | +| 15 | `RECHBAI::Scintillator` | Scintillator Responses for Particles bank | +| 16 | `RECHBAI::Track` | Track information for Particles bank | +| 17 | `RECHBAI::TrackCross` | Track Cross information for Particles bank (deprecated by `RECHBAI::Traj`) | +| 18 | `RECHBAI::Traj` | Trajectory information for Particles bank | +| 23 | `RECHBAI::ScintExtras` | Scintillator Cluster Parameters | +| 24 | `RECHBAI::CaloExtras` | Calorimeter Cluster Parameters | +| 30 | `RECAI::Event` | Event Header Bank | +| 31 | `RECAI::Particle` | Reconstructed Particle Information | +| 32 | `RECAI::Calorimeter` | Calorimeter Responses for Particles bank | +| 33 | `RECAI::Cherenkov` | Cherenkov Responses for Particles bank | +| 34 | `RECAI::ForwardTagger` | Forward Tagger information for Particles bank | +| 35 | `RECAI::Scintillator` | Scintillator Responses for Particles bank | +| 36 | `RECAI::Track` | Track information for Particles bank | +| 37 | `RECAI::TrackCross` | Track Cross information for Particles bank (deprecated by `RECAI::Traj`) | +| 38 | `RECAI::CovMat` | reconstructed track covariance matrix | +| 39 | `RECAI::VertDoca` | Track Cross information for Particles bank | +| 40 | `RECAI::Traj` | Trajectory information for Particles bank | +| 41 | `RECAIFT::Event` | Event Header Bank, shadowing `RECAI::Event` with FT-based start time | +| 42 | `RECAIFT::Particle` | Reconstructed Particle Information, shadowing `RECAI::Particle` with FT-based start time | +| 43 | `RECAI::ScintExtras` | Scintillator Cluster Parameters | +| 44 | `RECAI::UTrack` | Track information for Particles bank | +| 45 | `RECHBAI::UTrack` | Track information for Particles bank | +| 46 | `RECAI::CaloExtras` | Calorimeter Cluster Parameters | + +## Group 4200 + +| Item ID | Name | Description | +| --- | --- | --- | +| 1 | `nn::tracks` | track parameters from neural network | +| 2 | `nn::dchits` | index if the track hits in DC tdc bank. | +| 3 | `ai::tracks` | tracks identified with AI | +| 4 | `aidn::tracks` | tracks identified with denoised AI | + +## Group 10000 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `RUN::config` | Run Configuration | +| 12 | `RUN::rf` | RF information | +| 13 | `RUN::trigger` | RUN trigger information | +| 14 | `RUN::scaler` | Run-integrated, analyzed scalers. | +| 15 | `RUN::filter` | Random trigger filter information | +| 16 | `HEL::scaler` | Helicity-gated, analyzed scalers. | +| 17 | `COAT::config` | COATJAVA configuration, e.g. version numbers, CLARA YAML settings | + +## Group 20000 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `RAW::adc` | ADC bank for untranslated signals | +| 12 | `RAW::tdc` | TDC bank for untranslated signals | +| 13 | `RAW::scaler` | Scaler bank | +| 14 | `RAW::vtp` | VTP bank | +| 15 | `RAW::epics` | EPICS bank | + +## Group 20100 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `BMT::adc` | ADC bank for the Barrel MicroMegas Tracker | +| 21 | `BMTRec::Hits` | first pass reconstructed BMT hits on track | +| 22 | `BMTRec::Clusters` | first pass reconstructed BMT clusters | +| 25 | `BMTRec::Crosses` | first pass reconstructed BMT crosses | +| 26 | `BMTRec::LayerEffs` | layer efficiencies | +| 31 | `BMT::Hits` | reconstructed BMT hits on track | +| 32 | `BMT::Clusters` | reconstructed BMT clusters | +| 35 | `BMT::Crosses` | reconstructed BMT crosses | + +## Group 20200 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `BST::adc` | ADC bank for the Barrel Silicon Tracker | +| 21 | `BSTRec::Hits` | first pass reconstructed BST hits on track | +| 22 | `BSTRec::Clusters` | first pass reconstructed BST clusters | +| 25 | `BSTRec::Crosses` | first reconstructed BST crosses | +| 29 | `BSTRec::LayerEffs` | layer efficiencies | +| 31 | `BST::Hits` | reconstructed BST hits on track | +| 32 | `BST::Clusters` | reconstructed BST clusters | +| 35 | `BST::Crosses` | reconstructed BST crosses | + +## Group 20300 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `CND::adc` | ADC bank for the Central Neutron Detector | +| 12 | `CND::tdc` | TDC bank for the Central Neutron Detector | +| 21 | `CND::hits` | reconstructed hit info from CND | +| 22 | `CND::clusters` | reconstructed cluster info from CND and CTOF | + +## Group 20400 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `CTOF::adc` | ADC bank for the Central Time of Flight | +| 12 | `CTOF::tdc` | TDC bank for the Central Time of Flight | +| 20 | `CTOF::rawhits` | reconstructed hit info from U/D CTOF PMTs | +| 21 | `CTOF::hits` | reconstructed hit info from CTOF | +| 22 | `CTOF::clusters` | reconstructed clusters from CTOF | + +## Group 20500 + +| Item ID | Name | Description | +| --- | --- | --- | +| 25 | `CVTRec::Seeds` | first pass reconstructed CVT track seeds | +| 26 | `CVTRec::Tracks` | reconstructed CVT tracks | +| 27 | `CVTRec::UTracks` | reconstructed CVT tracks | +| 28 | `CVTRec::TrackCovMat` | reconstructed CVT tracks covariance matrix in track representation | +| 29 | `CVTRec::CosmicSeeds` | reconstructed CVT cosmic seed | +| 30 | `CVTRec::Cosmics` | reconstructed SVT cosmic tracks | +| 31 | `CVTRec::Trajectory` | Trajectory bank | +| 32 | `CVTRec::KFTrajectory` | Trajectory bank output from KF | +| 35 | `CVT::Seeds` | reconstructed CVT track seeds | +| 36 | `CVT::Tracks` | reconstructed CVT tracks | +| 37 | `CVT::UTracks` | reconstructed CVT tracks | +| 41 | `CVT::Trajectory` | Trajectory bank | +| 42 | `CVT::KFTrajectory` | Trajectory bank output from KF | +| 43 | `CVT::SeedClusters` | Ids of clusters on track for 12 layers of CVT | +| 44 | `CVTRec::SeedClusters` | Ids of clusters on track for 12 layers of CVT | + +## Group 20600 + +| Item ID | Name | Description | +| --- | --- | --- | +| 12 | `DC::tdc` | TDC bank for the Drift Chambers | +| 13 | `DC::jitter` | DCRB timestamps bank | +| 14 | `DC::doca` | Drift Chamber DOCA bank | +| 21 | `HitBasedTrkg::HBHits` | reconstructed hits using DC wire positions | +| 22 | `HitBasedTrkg::HBClusters` | reconstructed clusters using DC wire positions | +| 23 | `HitBasedTrkg::HBSegments` | reconstructed segments using DC wire positions | +| 24 | `HitBasedTrkg::HBSegmentTrajectory` | reconstructed segment trajectory from hit-based tracking | +| 25 | `HitBasedTrkg::HBCrosses` | reconstructed segments using DC wire positions | +| 26 | `HitBasedTrkg::HBTracks` | reconstructed tracks using DC wire positions | +| 27 | `HitBasedTrkg::HBHitTrkId` | pointers between track and hit banks | +| 28 | `HitBasedTrkg::Hits` | reconstructed hits using DC wire positions | +| 29 | `HitBasedTrkg::Clusters` | reconstructed clusters using DC wire positions | +| 30 | `HitBasedTrkg::Trajectory` | Trajectory bank | +| 31 | `TimeBasedTrkg::TBHits` | reconstructed hits using DC timing information | +| 32 | `TimeBasedTrkg::TBClusters` | reconstructed clusters using DC timing information | +| 33 | `TimeBasedTrkg::TBSegments` | reconstructed segments using DC timing information | +| 34 | `TimeBasedTrkg::TBSegmentTrajectory` | reconstructed segment trajectory from hit-based tracking | +| 35 | `TimeBasedTrkg::TBCrosses` | reconstructed segments using DC timing information | +| 36 | `TimeBasedTrkg::TBTracks` | reconstructed tracks using DC timing information | +| 37 | `TimeBasedTrkg::TBCovMat` | reconstructed track covariance matrix | +| 48 | `HitBasedTrkg::DNHits` | reconstructed hits using DC wire positions | +| 49 | `HitBasedTrkg::DNClusters` | reconstructed clusters using DC wire positions | +| 53 | `TimeBasedTrkg::Trajectory` | Trajectory bank | +| 61 | `HitBasedTrkg::AIHits` | reconstructed hits using DC wire positions | +| 62 | `HitBasedTrkg::AIClusters` | reconstructed clusters using DC wire positions | +| 63 | `HitBasedTrkg::AISegments` | reconstructed segments using DC wire positions | +| 65 | `HitBasedTrkg::AICrosses` | reconstructed segments using DC wire positions | +| 66 | `HitBasedTrkg::AITracks` | reconstructed tracks using DC wire positions | +| 67 | `HitBasedTrkg::AIHitTrkId` | pointers between track and hit banks | +| 68 | `HitBasedTrkg::AITrajectory` | Trajectory bank | +| 71 | `TimeBasedTrkg::AIHits` | reconstructed hits using DC timing information | +| 72 | `TimeBasedTrkg::AIClusters` | reconstructed clusters using DC timing information | +| 73 | `TimeBasedTrkg::AISegments` | reconstructed segments using DC timing information | +| 75 | `TimeBasedTrkg::AICrosses` | reconstructed segments using DC timing information | +| 76 | `TimeBasedTrkg::AITracks` | reconstructed tracks using DC timing information | +| 77 | `TimeBasedTrkg::AICovMat` | reconstructed track covariance matrix | +| 93 | `TimeBasedTrkg::AITrajectory` | Trajectory bank | + +## Group 20700 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `ECAL::adc` | ADC bank for the Electromagnetic Calorimeter | +| 12 | `ECAL::tdc` | TDC bank for the Electromagnetic Calorimeter | +| 21 | `ECAL::hits` | ECAL hits | +| 22 | `ECAL::peaks` | reconstructed peaks from ECAL | +| 23 | `ECAL::clusters` | reconstructed clusters in ECAL | +| 24 | `ECAL::calib` | Raw and recon peak energy and recon peak time from ECAL | +| 25 | `ECAL::moments` | ECCAL bank for clusters containing distances an moments | +| 26 | `ECAL::scaler` | Occupancy bank for the Electromagnetic Calorimeter | +| 27 | `ECAL::trigger` | Occupancy bank for trigger bits | + +## Group 20800 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `FMT::adc` | ADC bank for the Forward MicroMegas Tracker | +| 21 | `FMT::Hits` | reconstructed FMT hits | +| 22 | `FMT::Clusters` | reconstructed FMT clusters | +| 25 | `FMT::Crosses` | reconstructed FMT crosses | +| 36 | `FMT::Tracks` | reconstructed tracks using FMT information | +| 37 | `FMT::Trajectory` | FMT tracks trajectory bank | + +## Group 20900 + +| Item ID | Name | Description | +| --- | --- | --- | +| 24 | `FT::particles` | Reconstructed Particles in FT | + +## Group 21000 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `FTCAL::adc` | ADC bank for the Forward Tagger Calorimeter | +| 21 | `FTCAL::hits` | Reconstructed Hits in FT calorimeter | +| 22 | `FTCAL::clusters` | Reconstructed Clusters in FT calorimeter | + +## Group 21100 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `FTHODO::adc` | ADC bank for the Forward Tagger Hodoscope | +| 21 | `FTHODO::hits` | Reconstructed Hits in FT hodoscope | +| 22 | `FTHODO::clusters` | Reconstructed clusters in FT hodoscope | + +## Group 21200 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `FTOF::adc` | ADC bank for the Forward Time of Flight | +| 12 | `FTOF::tdc` | TDC bank for the Forward Time of Flight | +| 20 | `FTOF::rawhits` | reconstructed hit info from L/R FTOF PMTs | +| 21 | `FTOF::hbhits` | reconstructed hit info from FTOF | +| 22 | `FTOF::hbclusters` | reconstructed clusters from FTOF | +| 31 | `FTOF::hits` | reconstructed hit info from FTOF | +| 32 | `FTOF::clusters` | reconstructed clusters from FTOF | +| 33 | `FTOF::matchedclusters` | matched clusters from FTOF | + +## Group 21300 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `FTTRK::adc` | ADC bank for the Forward Tagger Tracker | +| 21 | `FTTRK::hits` | Reconstructed Hits in FT tracker | +| 22 | `FTTRK::clusters` | Reconstructed clusters in FT tracker | +| 23 | `FTTRK::crosses` | Reconstructed crosses in FT tracker | + +## Group 21500 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `HTCC::adc` | ADC bank for the High Threshold Cerenkov Counter | +| 12 | `HTCC::tdc` | TDC bank for the High Threshold Cerenkov Counter | +| 22 | `HTCC::rec` | reconstructed clusters in HTCC | + +## Group 21600 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `LTCC::adc` | ADC bank for the Low Threshold Cerenkov Counter | +| 12 | `LTCC::tdc` | TDC bank for the Low Threshold Cerenkov Counter | +| 22 | `LTCC::clusters` | reconstructed clusters from the LTCC | + +## Group 21700 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `RF::adc` | ADC bank for the RF signals | +| 12 | `RF::tdc` | TDC bank for the RF signals | + +## Group 21800 + +| Item ID | Name | Description | +| --- | --- | --- | +| 12 | `RICH::tdc` | TDC bank for the Ring Imaging Cerenkov Counter | +| 36 | `RICH::Ring` | Reconstructed Cherenov information for single photon | +| 37 | `RICH::Particle` | Reconstructed Cherenov information per track | +| 38 | `RICH::Hadron` | Reconstructed Hadrons in RICH | +| 39 | `RICH::Photon` | Reconstructed Photons in RICH | +| 40 | `RICH::Hit` | Reconstructed Hits in RICH | +| 41 | `RICH::Signal` | Reconstructed Signals in RICH | +| 42 | `RICH::Cluster` | Reconstructed Clusters in RICH | +| 43 | `RICH::Response` | RICH Responses for Particles bank | + +## Group 21900 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `RTPC::adc` | ADC bank for the Radial TPC | +| 14 | `RTPC::pos` | Digitized bank for the Radial TPC | +| 21 | `RTPC::hits` | reconstructed RTPC hits | +| 22 | `RTPC::tracks` | reconstructed track info | +| 23 | `RTPC::KFtracks` | Kalman Fitter track info | + +## Group 22000 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `HEL::adc` | ADC bank for the Helicity signals. Compoment 1/2/3 is helicity/sync/quartet. | +| 12 | `HEL::flip` | Helicity flips from ADC bank. State values are -1/0/+1, where 0 is invalid. | +| 13 | `HEL::online` | Helicity with online delay-correction in Level3 trigger | +| 14 | `HEL::decoder` | Helicity decoder board data | + +## Group 22100 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `BAND::adc` | ADC bank for the Backward Angle Neutron Detector | +| 12 | `BAND::tdc` | TDC bank for the Backward Angle Neutron Detector | +| 21 | `BAND::hits` | reconstructed coincidence hits from BAND | +| 22 | `BAND::rawhits` | single PMT hits from BAND | +| 23 | `BAND::laser` | laser hits from BAND | + +## Group 22200 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `RASTER::adc` | ADC bank for the Raster signals | +| 21 | `RASTER::position` | Reconstructed raster position | + +## Group 22300 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `URWELL::adc` | ADC bank for the URWELL | +| 21 | `URWELL::hits` | URWELL hits | +| 22 | `URWELL::clusters` | reconstructed clusters from URWELL | +| 23 | `URWELL::crosses` | reconstructed crosses from URWELL | + +## Group 22400 + +| Item ID | Name | Description | +| --- | --- | --- | +| 12 | `AHDC::tdc` | TDC bank for the ALERT Wire Chamber | + +## Group 22500 + +| Item ID | Name | Description | +| --- | --- | --- | +| 11 | `ATOF::adc` | ADC bank for the ALERT time-of-flight detector | + +## Group 23000 + +| Item ID | Name | Description | +| --- | --- | --- | +| 21 | `AHDC::Track` | Reco Tracks | +| 22 | `AHDC::MC` | MC Tracks | +| 23 | `AHDC::Hits` | Raw Hits | +| 24 | `AHDC::PreClusters` | Pre Clusters info | +| 25 | `AHDC::Clusters` | Clusters info | +| 26 | `AHDC::KFTrack` | Reco Kalman Filter Tracks | diff --git a/etc/bankdefs/util/dumpBankIDs.rb b/etc/bankdefs/util/dumpBankIDs.rb new file mode 100755 index 000000000..1f6ac8dc5 --- /dev/null +++ b/etc/bankdefs/util/dumpBankIDs.rb @@ -0,0 +1,87 @@ +#!/usr/bin/env ruby +# +# Dumps the bank names and ID information for all JSON files in specified directory +# + +require 'json' + +if ARGV.empty? + puts """ + USAGE: #{$0} [DIRECTORY] + + Dumps the bank names and ID information for all JSON files in [DIRECTORY] + """ + exit 2 +end +SpecDir = ARGV[0] + +# parse the JSON files +specs = Dir.glob(File.join SpecDir, '*.json').map do |spec_file_name| + JSON.parse File.read(spec_file_name) +end.flatten + +# check if each spec has the required keys +specs.each do |spec| + ['name', 'group', 'item', 'info'].each do |key| + unless spec.has_key? key + $stderr.puts "ERROR: missing key '#{key}' in one of the JSON files" + exit 1 + end + end +end + +# group the specs according to group ID +specs_grouped = Hash.new +specs.each do |spec| + group_num = spec['group'].to_i + specs_grouped[group_num] = Array.new unless specs_grouped.has_key? group_num + specs_grouped[group_num] << spec +end + +# sort by group ID +specs_grouped_sorted = specs_grouped.sort_by{|k,v|k}.to_h +# then sort each group's item IDs +specs_fully_sorted = Hash.new +specs_grouped_sorted.each do |group_id, spec_list| + specs_fully_sorted[group_id] = spec_list.sort do |spec_a, spec_b| + spec_a['item'].to_i <=> spec_b['item'].to_i + end +end + +# dump a table +puts """# Bank Group and Item IDs + +This file was generated by +```bash +#{$0} #{ARGV.join ' '} +``` + +> [!IMPORTANT] +> Please re-run this script if you modify any of the bank definitions. + +""" + +def row(cols) + puts "| #{cols.join ' | '} |" +end +specs_fully_sorted.each do |group_id, spec_list| + puts "\n## Group #{group_id}\n\n" + row ['Item ID', 'Name', 'Description'] + row ['---', '---', '---'] + spec_list.each do |spec| + desc = spec['info'].split.map do |word| + if word.include? '::' + "`#{word}`" + .gsub(')`','`)') + .gsub('`(','(`') + else + word + end + end.join(' ') + row [ + spec['item'], + '`' + spec['name'] + '`', + desc, + ] + end +end From 2cde78e087e2416dadf421f32b3404c4158e4818 Mon Sep 17 00:00:00 2001 From: Whitney Armstrong Date: Tue, 22 Oct 2024 13:43:56 -0500 Subject: [PATCH 181/201] Adding ATOF Coda Decoder - Added ALERT detector types - AHDC=24 and ATOF=25 - modified: base/DetectorType.java - modified: decode/CLASDecoder4.java - modified: decode/CodaEventDecoder.java - modified: decode/DetectorEventDecoder.java - modified: etc/bankdefs/hipo/DATA.json - modified: etc/bankdefs/hipo4/data.json modified: base/DetectorType.java modified: data.json modified: CodaEventDecoder.java modified: CodaEventDecoder.java modified: DetectorDataDgtz.java modified: CLASDecoder4.java modified: DetectorDataDgtz.java modified: DetectorEventDecoder.java modified: CodaEventDecoder.java modified: DetectorDataDgtz.java modified: CLASDecoder4.java modified: DetectorDataDgtz.java modified: CLASDecoder4.java modified: CodaEventDecoder.java modified: CLASDecoder4.java modified: CodaEventDecoder.java modified: CLASDecoder4.java new file: .containers/coatjava.Dockerfile new file: .gitlab-ci.yml modified: .gitlab-ci.yml modified: .gitlab-ci.yml modified: .gitlab-ci.yml modified: common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java modified: common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CodaEventDecoder.java --- .containers/coatjava.Dockerfile | 25 ++++++ .gitlab-ci.yml | 31 +++++++ .../org/jlab/detector/base/DetectorType.java | 2 + .../jlab/detector/decode/CLASDecoder4.java | 78 +++++++++++++++--- .../detector/decode/CodaEventDecoder.java | 82 ++++++++++++++++++- .../detector/decode/DetectorDataDgtz.java | 31 +++---- .../detector/decode/DetectorEventDecoder.java | 27 +++--- etc/bankdefs/hipo/DATA.json | 26 ++++++ etc/bankdefs/hipo4/data.json | 29 ++++--- 9 files changed, 275 insertions(+), 56 deletions(-) create mode 100644 .containers/coatjava.Dockerfile create mode 100644 .gitlab-ci.yml diff --git a/.containers/coatjava.Dockerfile b/.containers/coatjava.Dockerfile new file mode 100644 index 000000000..4d079d132 --- /dev/null +++ b/.containers/coatjava.Dockerfile @@ -0,0 +1,25 @@ +#syntax=docker/dockerfile:1 + +FROM ubuntu:noble + +LABEL name="coatjava" +LABEL maintainer="Whitney Armstrong " +LABEL architecture="amd64" + +USER root + + +RUN apt update && apt upgrade -y +RUN apt install cmake vim maven groovy git ca-certificates wget curl python-is-python3 \ + openjdk-17-jdk openjdk-17-jre openjdk-17-jdk-headless openjdk-17-jre-headless \ + python3-sqlalchemy -y && update-ca-certificates + +# CA certificates +ADD https://pki.jlab.org/JLabCA.crt /etc/ssl/certs/JLabCA.crt +#RUN trust anchor --store /image/JLabCA.crt + +ARG REF_NAME=development +# build coatjava +RUN java --version && cd /opt && \ + git clone https://code.jlab.org/hallb/alert/coatjava.git && cd coatjava && \ + git fetch origin && git checkout ${REF_NAME} && ./build-coatjava.sh --nomaps diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..d089cb1da --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,31 @@ +workflow: + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + - if: '$CI_PIPELINE_SOURCE == "web"' + - if: '$CI_PIPELINE_SOURCE == "webide"' + - if: '$CI_COMMIT_BRANCH == "master"' + - if: '$CI_COMMIT_BRANCH == "development"' + - if: '$CI_COMMIT_TAG' + +default: + image: ubuntu:noble + retry: 2 + +coatjava_build: + image: gcr.io/kaniko-project/executor:debug + script: + - echo "${CI_COMMIT_REF_NAME}" + - >- + /kaniko/executor + --context $CI_PROJECT_DIR/docker + --dockerfile $CI_PROJECT_DIR/.containers/coatjava.Dockerfile + --destination $CI_REGISTRY_IMAGE/coatjava:${CI_COMMIT_REF_NAME} + --build-arg REF_NAME=${CI_COMMIT_REF_NAME} + +alert_testing: + needs: ["coatjava_build"] + variables: + REF_NAME: "$CI_COMMIT_REF_NAME" + trigger: + project: hallb/alert/c12 + strategy: depend diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/DetectorType.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/DetectorType.java index 9aed37f7e..8695d8884 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/base/DetectorType.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/base/DetectorType.java @@ -29,6 +29,8 @@ public enum DetectorType { BAND (21, "BAND"), RASTER (22, "RASTER"), URWELL (23, "URWELL"), + AHDC (24, "AHDC"), + ATOF (25, "ATOF"), TARGET (100, "TARGET"), MAGNETS (101, "MAGNETS"), ECIN (110, "ECIN"), diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java index 0796b64e0..ccc36f4fc 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java @@ -181,6 +181,7 @@ public List getEntriesADC(DetectorType type, public List getEntriesTDC(DetectorType type){ return getEntriesTDC(type,dataList); } + /** * returns TDC entries from decoded data for given detector type * @param type detector type @@ -275,7 +276,10 @@ public Bank getDataBankADC(String name, DetectorType type){ public Bank getDataBankTDC(String name, DetectorType type){ List tdcDGTZ = this.getEntriesTDC(type); - if(schemaFactory.hasSchema(name)==false) return null; + if(schemaFactory.hasSchema(name)==false){ + System.out.println("WARNING: No schema for TDC type : " + type); + return null; + } Bank tdcBANK = new Bank(schemaFactory.getSchema(name), tdcDGTZ.size()); if(tdcBANK==null) return null; @@ -290,6 +294,31 @@ public Bank getDataBankTDC(String name, DetectorType type){ return tdcBANK; } + public Bank getDataBankTDCPetiroc(String name, DetectorType type){ + + List tdcDGTZ = this.getEntriesTDC(type); + if(schemaFactory.hasSchema(name)==false){ + System.out.println("WARNING: No schema for TDC type : " + type); + return null; + } + Bank tdcBANK = new Bank(schemaFactory.getSchema(name), tdcDGTZ.size()); + + if(tdcBANK==null) return null; + + // Not sure why the schemea information isn't used here. + for(int i = 0; i < tdcDGTZ.size(); i++){ + tdcBANK.putByte("sector", i, (byte) tdcDGTZ.get(i).getDescriptor().getSector()); + tdcBANK.putByte("layer", i, (byte) tdcDGTZ.get(i).getDescriptor().getLayer()); + tdcBANK.putShort("component", i, (short) tdcDGTZ.get(i).getDescriptor().getComponent()); + tdcBANK.putByte("order", i, (byte) tdcDGTZ.get(i).getDescriptor().getOrder()); + tdcBANK.putInt("TDC", i, tdcDGTZ.get(i).getTDCData(0).getTime()); + tdcBANK.putInt("ToT", i, tdcDGTZ.get(i).getTDCData(0).getToT()); + //System.err.println("event: " + tdcDGTZ.get(i).toString()); + } + return tdcBANK; + } + + public Bank getDataBankTimeStamp(String name, DetectorType type) { List tdcDGTZ = this.getEntriesTDC(type); @@ -300,7 +329,8 @@ public Bank getDataBankTimeStamp(String name, DetectorType type) { int hash = ((desc.getCrate()<<8)&0xFF00) | (desc.getSlot()&0x00FF); if(tsMap.containsKey(hash)) { if(tsMap.get(hash).getTimeStamp() != tdc.getTimeStamp()) - System.out.println("WARNING: inconsistent timestamp for DCRB crate/slot " + desc.getCrate() + "/" + desc.getSlot()); + System.out.println("WARNING: inconsistent timestamp for DCRB crate/slot " + + desc.getCrate() + "/" + desc.getSlot()); } else { tsMap.put(hash, tdc); @@ -393,16 +423,24 @@ public Event getDataEvent(){ Event event = new Event(); - String[] adcBankNames = new String[]{"FTOF::adc","ECAL::adc","FTCAL::adc","FTHODO::adc","FTTRK::adc", + String[] adcBankNames = new String[]{"FTOF::adc","ECAL::adc","FTCAL::adc","FTHODO::adc","FTTRK::adc", "HTCC::adc","BST::adc","CTOF::adc","CND::adc","LTCC::adc","BMT::adc", "FMT::adc","HEL::adc","RF::adc","BAND::adc","RASTER::adc"}; - DetectorType[] adcBankTypes = new DetectorType[]{DetectorType.FTOF,DetectorType.ECAL,DetectorType.FTCAL,DetectorType.FTHODO,DetectorType.FTTRK, - DetectorType.HTCC,DetectorType.BST,DetectorType.CTOF,DetectorType.CND,DetectorType.LTCC,DetectorType.BMT, - DetectorType.FMT,DetectorType.HEL,DetectorType.RF,DetectorType.BAND, DetectorType.RASTER}; - - String[] tdcBankNames = new String[]{"FTOF::tdc","ECAL::tdc","DC::tdc","HTCC::tdc","LTCC::tdc","CTOF::tdc","CND::tdc","RF::tdc","RICH::tdc","BAND::tdc"}; - DetectorType[] tdcBankTypes = new DetectorType[]{DetectorType.FTOF,DetectorType.ECAL, - DetectorType.DC,DetectorType.HTCC,DetectorType.LTCC,DetectorType.CTOF,DetectorType.CND,DetectorType.RF,DetectorType.RICH,DetectorType.BAND}; + DetectorType[] adcBankTypes = new DetectorType[]{DetectorType.FTOF,DetectorType.ECAL,DetectorType.FTCAL, + DetectorType.FTHODO,DetectorType.FTTRK, + DetectorType.HTCC,DetectorType.BST,DetectorType.CTOF, + DetectorType.CND,DetectorType.LTCC,DetectorType.BMT, + DetectorType.FMT,DetectorType.HEL,DetectorType.RF, + DetectorType.BAND, DetectorType.RASTER}; + + String[] tdcBankNames = new String[]{"FTOF::tdc","ECAL::tdc","DC::tdc", + "HTCC::tdc","LTCC::tdc","CTOF::tdc", + "CND::tdc","RF::tdc","RICH::tdc", + "BAND::tdc"}; + DetectorType[] tdcBankTypes = new DetectorType[]{DetectorType.FTOF,DetectorType.ECAL, + DetectorType.DC,DetectorType.HTCC,DetectorType.LTCC, + DetectorType.CTOF,DetectorType.CND,DetectorType.RF, + DetectorType.RICH,DetectorType.BAND}; for(int i = 0; i < adcBankTypes.length; i++){ Bank adcBank = getDataBankADC(adcBankNames[i],adcBankTypes[i]); @@ -421,6 +459,18 @@ public Event getDataEvent(){ } } } + try { + // Do ATOF + Bank tdcBank = getDataBankTDCPetiroc("ATOF::tdc",DetectorType.ATOF); + if(tdcBank!=null){ + if(tdcBank.getRows()>0){ + event.write(tdcBank); + } + } + } catch(Exception e) { + e.printStackTrace(); + } + try { Bank tsBank = getDataBankTimeStamp("DC::jitter", DetectorType.DC); @@ -432,10 +482,10 @@ public Event getDataEvent(){ } catch(Exception e) { e.printStackTrace(); } + /** * Adding un-decoded banks to the event */ - try { Bank adcBankUD = this.getDataBankUndecodedADC("RAW::adc", DetectorType.UNDEFINED); if(adcBankUD!=null){ @@ -671,6 +721,8 @@ public Bank createHelicityDecoderBank(EvioDataEvent event) { public static void main(String[] args){ OptionParser parser = new OptionParser("decoder"); + + parser.setDescription("CLAS12 Data Decoder"); parser.addOption("-n", "-1", "maximum number of events to process"); parser.addOption("-c", "2", "compression type (0-NONE, 1-LZ4 Fast, 2-LZ4 Best, 3-GZIP)"); parser.addOption("-d", "0","debug mode, set >0 for more verbose output"); @@ -721,8 +773,8 @@ public static void main(String[] args){ writer.setCompressionType(compression); writer.getSchemaFactory().initFromDirectory(ClasUtilsFile.getResourceDir("CLAS12DIR", "etc/bankdefs/hipo4")); - Bank rawScaler = new Bank(writer.getSchemaFactory().getSchema("RAW::scaler")); - Bank rawRunConf = new Bank(writer.getSchemaFactory().getSchema("RUN::config")); + Bank rawScaler = new Bank(writer.getSchemaFactory().getSchema("RAW::scaler")); + Bank rawRunConf = new Bank(writer.getSchemaFactory().getSchema("RUN::config")); Bank helicityAdc = new Bank(writer.getSchemaFactory().getSchema("HEL::adc")); Event scalerEvent = new Event(); diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CodaEventDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CodaEventDecoder.java index 6fce0dcea..40f54563d 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CodaEventDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CodaEventDecoder.java @@ -280,9 +280,12 @@ else if(node.getTag()==57622){ else if(node.getTag()==57636){ // RICH TDC data return this.getDataEntries_57636(crate, node, event); - } else if(node.getTag()==57641){ - // RTPC data decoding - return this.getDataEntries_57641(crate, node, event); + } else if (node.getTag() == 57657) { + // ATOF Petiroc TDC data + return this.getDataEntries_57657(crate, node, event); + } else if (node.getTag() == 57641) { + // RTPC data decoding + return this.getDataEntries_57641(crate, node, event); } } return bankEntries; @@ -1013,6 +1016,79 @@ public List getDataEntries_57636(Integer crate, EvioNode node return entries; } + /** + * Bank TAG=57657 used for ATOF PETIROC TDC values + * @param crate + * @param node + * @param event + * @return + * + * + * + * c "slot number" + * i "trigger number" + * l "time stamp" + * N "number of channels fired" + * c "channel number" + * i "tdc value" + * i "width value" + * + * + */ + public List getDataEntries_57657(Integer crate, EvioNode node, EvioDataEvent event){ + + ArrayList entries = new ArrayList<>(); + + if(node.getTag()==57657){ + try { + //System.err.println("Decoding ATOF PETIROC event!"); + ByteBuffer compBuffer = node.getByteData(true); + CompositeData compData = new CompositeData(compBuffer.array(),event.getByteOrder()); + + List cdatatypes = compData.getTypes(); + List cdataitems = compData.getItems(); + + if(cdatatypes.get(3) != DataType.NVALUE){ + System.err.println("[EvioRawDataSource] ** error ** corrupted " + + " bank. tag = " + node.getTag() + " num = " + node.getNum()); + return null; + } + + int position = 0; + while(position branches = this.getEventBranches(event); diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorDataDgtz.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorDataDgtz.java index 9d2979289..375c322b3 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorDataDgtz.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorDataDgtz.java @@ -8,7 +8,7 @@ import org.jlab.detector.helicity.HelicityState; import org.jlab.utils.data.DataUtils; -/** +/** * * @author gavalian */ @@ -162,10 +162,9 @@ public static List getDataADC(List list,Det return filtered; } - /** - * a class to hold ADC values + /** ADC Data holder. + * A class to hold ADC values (FADC) */ - public static class ADCData implements Comparable { private int adcOrder = 0; @@ -325,25 +324,29 @@ public int compareTo(ADCData o) { } } - /** - * a class to hold TDC data - */ - + /** TDC Data. + * A class to hold Multihit TDC data + * + */ public static class TDCData implements Comparable{ - private int tdcOrder = 0; - private int tdcTime = 0; + private int tdcOrder = 0; // Used for sorting + private int tdcTime = 0; + private int tdcToT = 0; // Time over threshold public TDCData() {} public TDCData(int time) { this.tdcTime = time;} + public TDCData(int time, int ToT) { this.tdcTime = time; this.tdcToT = ToT;} public int getTime() { return this.tdcTime;} - public int getOrder() { return tdcOrder;} - public TDCData setOrder(int order) { tdcOrder = order;return this;} - public TDCData setTime(short time) { tdcTime = time;return this;} + public int getToT() { return this.tdcToT;} + public int getOrder() { return tdcOrder;} + public TDCData setOrder(int order) { tdcOrder = order;return this;} + public TDCData setTime(short time) { tdcTime = time;return this;} + public TDCData setToT(short ToT) { tdcToT = ToT;return this;} @Override public String toString(){ - return String.format("TDC (%d) : %5d", getOrder(),getTime()); + return String.format("TDC (%d) : %5d : %5d", getOrder(),getTime(),getToT()); } public int compareTo(TDCData o) { diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java index f1e9f8673..2abb2f552 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java @@ -76,31 +76,37 @@ public final void initDecoderDev(){ tablesFitter = Arrays.asList(new String[]{"/daq/fadc/clasdev/htcc"}); translationManager.init(keysTrans,tablesTrans); fitterManager.init(keysFitter, tablesFitter); - scalerManager.init(Arrays.asList(new String[]{"/runcontrol/fcup","/runcontrol/slm","/runcontrol/hwp","/runcontrol/helicity","/daq/config/scalers/dsc1"})); + scalerManager.init(Arrays.asList(new String[]{"/runcontrol/fcup","/runcontrol/slm","/runcontrol/hwp", + "/runcontrol/helicity","/daq/config/scalers/dsc1"})); } public final void initDecoder(){ - keysTrans = Arrays.asList(new String[]{ - "FTCAL","FTHODO","FTTRK","LTCC","ECAL","FTOF","HTCC","DC","CTOF","CND","BST","RF","BMT","FMT","RICH","HEL","BAND","RTPC","RASTER" - }); + // Detector translation table + keysTrans = Arrays.asList(new String[]{"FTCAL","FTHODO","FTTRK","LTCC","ECAL","FTOF", + "HTCC","DC","CTOF","CND","BST","RF","BMT","FMT", + "RICH","HEL","BAND","RTPC","RASTER","ATOF" + }); tablesTrans = Arrays.asList(new String[]{ "/daq/tt/ftcal","/daq/tt/fthodo","/daq/tt/fttrk","/daq/tt/ltcc", "/daq/tt/ec","/daq/tt/ftof","/daq/tt/htcc","/daq/tt/dc","/daq/tt/ctof","/daq/tt/cnd","/daq/tt/svt", "/daq/tt/rf","/daq/tt/bmt","/daq/tt/fmt","/daq/tt/rich2","/daq/tt/hel","/daq/tt/band","/daq/tt/rtpc", - "/daq/tt/raster" + "/daq/tt/raster","/daq/tt/atof2" }); - translationManager.init(keysTrans,tablesTrans); - keysFitter = Arrays.asList(new String[]{"FTCAL","FTHODO","FTTRK","FTOF","LTCC","ECAL","HTCC","CTOF","CND","BMT","FMT","HEL","RF","BAND","RASTER"}); + // ADC waveform fitter translation table + keysFitter = Arrays.asList(new String[]{"FTCAL","FTHODO","FTTRK","FTOF","LTCC","ECAL", + "HTCC","CTOF","CND","BMT","FMT","HEL","RF","BAND","RASTER"}); tablesFitter = Arrays.asList(new String[]{ - "/daq/fadc/ftcal","/daq/fadc/fthodo","/daq/config/fttrk","/daq/fadc/ftof","/daq/fadc/ltcc","/daq/fadc/ec", - "/daq/fadc/htcc","/daq/fadc/ctof","/daq/fadc/cnd","/daq/config/bmt","/daq/config/fmt","/daq/fadc/hel","/daq/fadc/rf","/daq/fadc/band","/daq/fadc/raster" + "/daq/fadc/ftcal","/daq/fadc/fthodo","/daq/config/fttrk","/daq/fadc/ftof","/daq/fadc/ltcc", + "/daq/fadc/ec", "/daq/fadc/htcc","/daq/fadc/ctof","/daq/fadc/cnd","/daq/config/bmt", + "/daq/config/fmt","/daq/fadc/hel","/daq/fadc/rf","/daq/fadc/band","/daq/fadc/raster" }); fitterManager.init(keysFitter, tablesFitter); - scalerManager.init(Arrays.asList(new String[]{"/runcontrol/fcup","/runcontrol/slm","/runcontrol/hwp","/runcontrol/helicity","/daq/config/scalers/dsc1"})); + scalerManager.init(Arrays.asList(new String[]{"/runcontrol/fcup","/runcontrol/slm","/runcontrol/hwp", + "/runcontrol/helicity","/daq/config/scalers/dsc1"})); } /** @@ -119,7 +125,6 @@ public void translate(List detectorData){ for(String table : keysTrans){ IndexedTable tt = translationManager.getConstants(runNumber, table); DetectorType type = DetectorType.getType(table); - if(tt.hasEntry(crate,slot,channel)==true){ int sector = tt.getIntValue("sector", crate,slot,channel); int layer = tt.getIntValue("layer", crate,slot,channel); diff --git a/etc/bankdefs/hipo/DATA.json b/etc/bankdefs/hipo/DATA.json index 35062f2b8..a969659b6 100644 --- a/etc/bankdefs/hipo/DATA.json +++ b/etc/bankdefs/hipo/DATA.json @@ -390,6 +390,32 @@ {"name":"TDC", "id":5, "type":"int32", "info":"TDC value"} ] }, + { + "bank": "ATOF::adc", + "group": 22411, + "info": "digitized bank ALERT TOF", + "items": [ + {"name":"sector", "id":1, "type":"int8", "info":"sector of ATOF"}, + {"name":"layer", "id":2, "type":"int8", "info":"layer id of ATOF"}, + {"name":"component", "id":3, "type":"int16", "info":"paddle id of ATOF"}, + {"name":"order", "id":4, "type":"int8", "info":"order of (0 - ADCD , 1 - ADCN)"}, + {"name":"ADC", "id":5, "type":"int32", "info":"ADC integral from fit"}, + {"name":"time", "id":6, "type":"float", "info":"time from fitting the pulse"}, + {"name":"ped", "id":7, "type":"int16", "info":"pedestal from pulse"} + ] + }, + { + "bank": "ATOF::tdc", + "group": 22412, + "info": "digitized bank ALERT TOF", + "items": [ + {"name":"sector", "id":1, "type":"int8", "info":"sector of ATOF"}, + {"name":"layer", "id":2, "type":"int8", "info":"layer id of ATOF"}, + {"name":"component", "id":3, "type":"int16", "info":"paddle id of ATOF"}, + {"name":"order", "id":4, "type":"int8", "info":"order of (0 - TDCD , 1 - TDCN)"}, + {"name":"TDC", "id":5, "type":"int32", "info":"TDC value"} + ] + }, { "bank": "RAW::adc", "group": 20011, diff --git a/etc/bankdefs/hipo4/data.json b/etc/bankdefs/hipo4/data.json index a1ef21a08..f203f9757 100644 --- a/etc/bankdefs/hipo4/data.json +++ b/etc/bankdefs/hipo4/data.json @@ -1,19 +1,4 @@ [ - { - "name" : "ATOF::adc", - "group": 22500, - "item" : 11, - "info": "ADC bank for the ALERT time-of-flight detector", - "entries":[ - { "name":"sector" , "type":"B", "info":"sector (0-14) clockwise looking downstream, 0 = 12 o'clock"}, - { "name":"layer" , "type":"B", "info":"subsector (0-3) clockwise looking downstream"}, - { "name":"component" , "type":"S", "info":"PMT in row (0 = upstream)"}, - { "name":"order" , "type":"B", "info":"order: (0-1), 0 = inner, 1 = outer"}, - { "name":"ADC" , "type":"I", "info":"ADC maximum"}, - { "name":"time" , "type":"F", "info":"time from pulse fit"}, - { "name":"ped" , "type":"S", "info":"pedestal from pulse analysis"} - ] - }, { "name" : "AHDC::tdc", "group": 22400, @@ -27,6 +12,20 @@ { "name":"TDC" , "type":"I", "info":"TDC value"} ] }, + { + "name" : "ATOF::tdc", + "group": 22500, + "item" : 12, + "info": "TDC bank for the ALERT TOF", + "entries":[ + { "name":"sector" , "type":"B", "info":"sector (=1)"}, + { "name":"layer" , "type":"B", "info":"layer (=1)"}, + { "name":"component" , "type":"S", "info":"signal (1-2)"}, + { "name":"order" , "type":"B", "info":"order: 2 - TDCL , 3 - TDCR"}, + { "name":"TDC" , "type":"I", "info":"TDC value"}, + { "name":"ToT" , "type":"I", "info":"Time Over Threshold"} + ] + }, { "name" : "BMT::adc", "group": 20100, From 75f72047612c428ec668aa56c9b2c0c1ceb11aa4 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 29 Oct 2024 17:22:07 -0400 Subject: [PATCH 182/201] remove new printout in non-ALERT-specific code --- .../src/main/java/org/jlab/detector/decode/CLASDecoder4.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java index ccc36f4fc..d506e5b0f 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java @@ -276,10 +276,7 @@ public Bank getDataBankADC(String name, DetectorType type){ public Bank getDataBankTDC(String name, DetectorType type){ List tdcDGTZ = this.getEntriesTDC(type); - if(schemaFactory.hasSchema(name)==false){ - System.out.println("WARNING: No schema for TDC type : " + type); - return null; - } + if(schemaFactory.hasSchema(name)==false) return null; Bank tdcBANK = new Bank(schemaFactory.getSchema(name), tdcDGTZ.size()); if(tdcBANK==null) return null; From ba6749b8f65e30b608caf2bd7688a6cb5c98ed0b Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 29 Oct 2024 17:22:51 -0400 Subject: [PATCH 183/201] remove hipo3 additions --- etc/bankdefs/hipo/DATA.json | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/etc/bankdefs/hipo/DATA.json b/etc/bankdefs/hipo/DATA.json index a969659b6..35062f2b8 100644 --- a/etc/bankdefs/hipo/DATA.json +++ b/etc/bankdefs/hipo/DATA.json @@ -390,32 +390,6 @@ {"name":"TDC", "id":5, "type":"int32", "info":"TDC value"} ] }, - { - "bank": "ATOF::adc", - "group": 22411, - "info": "digitized bank ALERT TOF", - "items": [ - {"name":"sector", "id":1, "type":"int8", "info":"sector of ATOF"}, - {"name":"layer", "id":2, "type":"int8", "info":"layer id of ATOF"}, - {"name":"component", "id":3, "type":"int16", "info":"paddle id of ATOF"}, - {"name":"order", "id":4, "type":"int8", "info":"order of (0 - ADCD , 1 - ADCN)"}, - {"name":"ADC", "id":5, "type":"int32", "info":"ADC integral from fit"}, - {"name":"time", "id":6, "type":"float", "info":"time from fitting the pulse"}, - {"name":"ped", "id":7, "type":"int16", "info":"pedestal from pulse"} - ] - }, - { - "bank": "ATOF::tdc", - "group": 22412, - "info": "digitized bank ALERT TOF", - "items": [ - {"name":"sector", "id":1, "type":"int8", "info":"sector of ATOF"}, - {"name":"layer", "id":2, "type":"int8", "info":"layer id of ATOF"}, - {"name":"component", "id":3, "type":"int16", "info":"paddle id of ATOF"}, - {"name":"order", "id":4, "type":"int8", "info":"order of (0 - TDCD , 1 - TDCN)"}, - {"name":"TDC", "id":5, "type":"int32", "info":"TDC value"} - ] - }, { "bank": "RAW::adc", "group": 20011, From 3f3f403501c6d4f37043a736efd90d310ceb2598 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 29 Oct 2024 17:23:07 -0400 Subject: [PATCH 184/201] rename directory for clarity --- etc/bankdefs/{hipo => hipo3}/BAND.json | 0 etc/bankdefs/{hipo => hipo3}/BMT.json | 0 etc/bankdefs/{hipo => hipo3}/BST.json | 0 etc/bankdefs/{hipo => hipo3}/CLAS6EVENT.json | 0 etc/bankdefs/{hipo => hipo3}/CND.json | 0 etc/bankdefs/{hipo => hipo3}/CVT.json | 0 etc/bankdefs/{hipo => hipo3}/DATA.json | 0 etc/bankdefs/{hipo => hipo3}/DC.json | 0 etc/bankdefs/{hipo => hipo3}/DETECTOR.json | 0 etc/bankdefs/{hipo => hipo3}/ECAL.json | 0 etc/bankdefs/{hipo => hipo3}/EVENT.json | 0 etc/bankdefs/{hipo => hipo3}/FMT.json | 0 etc/bankdefs/{hipo => hipo3}/FT.json | 0 etc/bankdefs/{hipo => hipo3}/HEADER.json | 0 etc/bankdefs/{hipo => hipo3}/HTCC.json | 0 etc/bankdefs/{hipo => hipo3}/LTCC.json | 0 etc/bankdefs/{hipo => hipo3}/MC.json | 0 etc/bankdefs/{hipo => hipo3}/RICH.json | 0 etc/bankdefs/{hipo => hipo3}/RTPC.json | 0 etc/bankdefs/{hipo => hipo3}/TOF.json | 0 20 files changed, 0 insertions(+), 0 deletions(-) rename etc/bankdefs/{hipo => hipo3}/BAND.json (100%) rename etc/bankdefs/{hipo => hipo3}/BMT.json (100%) rename etc/bankdefs/{hipo => hipo3}/BST.json (100%) rename etc/bankdefs/{hipo => hipo3}/CLAS6EVENT.json (100%) rename etc/bankdefs/{hipo => hipo3}/CND.json (100%) rename etc/bankdefs/{hipo => hipo3}/CVT.json (100%) rename etc/bankdefs/{hipo => hipo3}/DATA.json (100%) rename etc/bankdefs/{hipo => hipo3}/DC.json (100%) rename etc/bankdefs/{hipo => hipo3}/DETECTOR.json (100%) rename etc/bankdefs/{hipo => hipo3}/ECAL.json (100%) rename etc/bankdefs/{hipo => hipo3}/EVENT.json (100%) rename etc/bankdefs/{hipo => hipo3}/FMT.json (100%) rename etc/bankdefs/{hipo => hipo3}/FT.json (100%) rename etc/bankdefs/{hipo => hipo3}/HEADER.json (100%) rename etc/bankdefs/{hipo => hipo3}/HTCC.json (100%) rename etc/bankdefs/{hipo => hipo3}/LTCC.json (100%) rename etc/bankdefs/{hipo => hipo3}/MC.json (100%) rename etc/bankdefs/{hipo => hipo3}/RICH.json (100%) rename etc/bankdefs/{hipo => hipo3}/RTPC.json (100%) rename etc/bankdefs/{hipo => hipo3}/TOF.json (100%) diff --git a/etc/bankdefs/hipo/BAND.json b/etc/bankdefs/hipo3/BAND.json similarity index 100% rename from etc/bankdefs/hipo/BAND.json rename to etc/bankdefs/hipo3/BAND.json diff --git a/etc/bankdefs/hipo/BMT.json b/etc/bankdefs/hipo3/BMT.json similarity index 100% rename from etc/bankdefs/hipo/BMT.json rename to etc/bankdefs/hipo3/BMT.json diff --git a/etc/bankdefs/hipo/BST.json b/etc/bankdefs/hipo3/BST.json similarity index 100% rename from etc/bankdefs/hipo/BST.json rename to etc/bankdefs/hipo3/BST.json diff --git a/etc/bankdefs/hipo/CLAS6EVENT.json b/etc/bankdefs/hipo3/CLAS6EVENT.json similarity index 100% rename from etc/bankdefs/hipo/CLAS6EVENT.json rename to etc/bankdefs/hipo3/CLAS6EVENT.json diff --git a/etc/bankdefs/hipo/CND.json b/etc/bankdefs/hipo3/CND.json similarity index 100% rename from etc/bankdefs/hipo/CND.json rename to etc/bankdefs/hipo3/CND.json diff --git a/etc/bankdefs/hipo/CVT.json b/etc/bankdefs/hipo3/CVT.json similarity index 100% rename from etc/bankdefs/hipo/CVT.json rename to etc/bankdefs/hipo3/CVT.json diff --git a/etc/bankdefs/hipo/DATA.json b/etc/bankdefs/hipo3/DATA.json similarity index 100% rename from etc/bankdefs/hipo/DATA.json rename to etc/bankdefs/hipo3/DATA.json diff --git a/etc/bankdefs/hipo/DC.json b/etc/bankdefs/hipo3/DC.json similarity index 100% rename from etc/bankdefs/hipo/DC.json rename to etc/bankdefs/hipo3/DC.json diff --git a/etc/bankdefs/hipo/DETECTOR.json b/etc/bankdefs/hipo3/DETECTOR.json similarity index 100% rename from etc/bankdefs/hipo/DETECTOR.json rename to etc/bankdefs/hipo3/DETECTOR.json diff --git a/etc/bankdefs/hipo/ECAL.json b/etc/bankdefs/hipo3/ECAL.json similarity index 100% rename from etc/bankdefs/hipo/ECAL.json rename to etc/bankdefs/hipo3/ECAL.json diff --git a/etc/bankdefs/hipo/EVENT.json b/etc/bankdefs/hipo3/EVENT.json similarity index 100% rename from etc/bankdefs/hipo/EVENT.json rename to etc/bankdefs/hipo3/EVENT.json diff --git a/etc/bankdefs/hipo/FMT.json b/etc/bankdefs/hipo3/FMT.json similarity index 100% rename from etc/bankdefs/hipo/FMT.json rename to etc/bankdefs/hipo3/FMT.json diff --git a/etc/bankdefs/hipo/FT.json b/etc/bankdefs/hipo3/FT.json similarity index 100% rename from etc/bankdefs/hipo/FT.json rename to etc/bankdefs/hipo3/FT.json diff --git a/etc/bankdefs/hipo/HEADER.json b/etc/bankdefs/hipo3/HEADER.json similarity index 100% rename from etc/bankdefs/hipo/HEADER.json rename to etc/bankdefs/hipo3/HEADER.json diff --git a/etc/bankdefs/hipo/HTCC.json b/etc/bankdefs/hipo3/HTCC.json similarity index 100% rename from etc/bankdefs/hipo/HTCC.json rename to etc/bankdefs/hipo3/HTCC.json diff --git a/etc/bankdefs/hipo/LTCC.json b/etc/bankdefs/hipo3/LTCC.json similarity index 100% rename from etc/bankdefs/hipo/LTCC.json rename to etc/bankdefs/hipo3/LTCC.json diff --git a/etc/bankdefs/hipo/MC.json b/etc/bankdefs/hipo3/MC.json similarity index 100% rename from etc/bankdefs/hipo/MC.json rename to etc/bankdefs/hipo3/MC.json diff --git a/etc/bankdefs/hipo/RICH.json b/etc/bankdefs/hipo3/RICH.json similarity index 100% rename from etc/bankdefs/hipo/RICH.json rename to etc/bankdefs/hipo3/RICH.json diff --git a/etc/bankdefs/hipo/RTPC.json b/etc/bankdefs/hipo3/RTPC.json similarity index 100% rename from etc/bankdefs/hipo/RTPC.json rename to etc/bankdefs/hipo3/RTPC.json diff --git a/etc/bankdefs/hipo/TOF.json b/etc/bankdefs/hipo3/TOF.json similarity index 100% rename from etc/bankdefs/hipo/TOF.json rename to etc/bankdefs/hipo3/TOF.json From 2b5706285691bda86cc05856ab09bb7b1a773c4b Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Tue, 29 Oct 2024 20:47:32 -0400 Subject: [PATCH 185/201] finalize ccdb table name --- .../java/org/jlab/detector/decode/DetectorEventDecoder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java index 2abb2f552..56ebbe9c7 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java @@ -91,7 +91,7 @@ public final void initDecoder(){ "/daq/tt/ftcal","/daq/tt/fthodo","/daq/tt/fttrk","/daq/tt/ltcc", "/daq/tt/ec","/daq/tt/ftof","/daq/tt/htcc","/daq/tt/dc","/daq/tt/ctof","/daq/tt/cnd","/daq/tt/svt", "/daq/tt/rf","/daq/tt/bmt","/daq/tt/fmt","/daq/tt/rich2","/daq/tt/hel","/daq/tt/band","/daq/tt/rtpc", - "/daq/tt/raster","/daq/tt/atof2" + "/daq/tt/raster","/daq/tt/atof" }); translationManager.init(keysTrans,tablesTrans); From 93955d5d1c71110460a08c89dbc0d66fd9a54482 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 23 Oct 2024 16:47:10 -0400 Subject: [PATCH 186/201] Added AHDC Decoder modified: CLASDecoder4.java modified: DetectorEventDecoder.java --- .../jlab/detector/decode/CLASDecoder4.java | 23 +++++++++++-------- .../detector/decode/DetectorEventDecoder.java | 14 +++++++---- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java index d506e5b0f..289c29c59 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java @@ -420,15 +420,20 @@ public Event getDataEvent(){ Event event = new Event(); - String[] adcBankNames = new String[]{"FTOF::adc","ECAL::adc","FTCAL::adc","FTHODO::adc","FTTRK::adc", - "HTCC::adc","BST::adc","CTOF::adc","CND::adc","LTCC::adc","BMT::adc", - "FMT::adc","HEL::adc","RF::adc","BAND::adc","RASTER::adc"}; - DetectorType[] adcBankTypes = new DetectorType[]{DetectorType.FTOF,DetectorType.ECAL,DetectorType.FTCAL, - DetectorType.FTHODO,DetectorType.FTTRK, - DetectorType.HTCC,DetectorType.BST,DetectorType.CTOF, - DetectorType.CND,DetectorType.LTCC,DetectorType.BMT, - DetectorType.FMT,DetectorType.HEL,DetectorType.RF, - DetectorType.BAND, DetectorType.RASTER}; + String[] adcBankNames = new String[]{"FTOF::adc","ECAL::adc","FTCAL::adc", + "FTHODO::adc", "FTTRK::adc", + "HTCC::adc","BST::adc","CTOF::adc", + "CND::adc","LTCC::adc","BMT::adc", + "FMT::adc","HEL::adc","RF::adc", + "BAND::adc","RASTER::adc", + "AHDC::adc"}; + DetectorType[] adcBankTypes = new DetectorType[]{DetectorType.FTOF,DetectorType.ECAL,DetectorType.FTCAL, + DetectorType.FTHODO,DetectorType.FTTRK, + DetectorType.HTCC,DetectorType.BST,DetectorType.CTOF, + DetectorType.CND,DetectorType.LTCC,DetectorType.BMT, + DetectorType.FMT,DetectorType.HEL,DetectorType.RF, + DetectorType.BAND, DetectorType.RASTER, + DetectorType.AHDC}; String[] tdcBankNames = new String[]{"FTOF::tdc","ECAL::tdc","DC::tdc", "HTCC::tdc","LTCC::tdc","CTOF::tdc", diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java index 56ebbe9c7..468c5ace2 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java @@ -85,23 +85,26 @@ public final void initDecoder(){ // Detector translation table keysTrans = Arrays.asList(new String[]{"FTCAL","FTHODO","FTTRK","LTCC","ECAL","FTOF", "HTCC","DC","CTOF","CND","BST","RF","BMT","FMT", - "RICH","HEL","BAND","RTPC","RASTER","ATOF" + "RICH","HEL","BAND","RTPC","RASTER","ATOF","AHDC" }); tablesTrans = Arrays.asList(new String[]{ "/daq/tt/ftcal","/daq/tt/fthodo","/daq/tt/fttrk","/daq/tt/ltcc", "/daq/tt/ec","/daq/tt/ftof","/daq/tt/htcc","/daq/tt/dc","/daq/tt/ctof","/daq/tt/cnd","/daq/tt/svt", "/daq/tt/rf","/daq/tt/bmt","/daq/tt/fmt","/daq/tt/rich2","/daq/tt/hel","/daq/tt/band","/daq/tt/rtpc", - "/daq/tt/raster","/daq/tt/atof" + "/daq/tt/raster","/daq/tt/atof","/daq/tt/ahdc" }); translationManager.init(keysTrans,tablesTrans); // ADC waveform fitter translation table - keysFitter = Arrays.asList(new String[]{"FTCAL","FTHODO","FTTRK","FTOF","LTCC","ECAL", - "HTCC","CTOF","CND","BMT","FMT","HEL","RF","BAND","RASTER"}); + keysFitter = Arrays.asList(new String[]{"FTCAL","FTHODO","FTTRK","FTOF","LTCC", + "ECAL","HTCC","CTOF","CND","BMT", + "FMT","HEL","RF","BAND","RASTER", + "AHDC"}); tablesFitter = Arrays.asList(new String[]{ "/daq/fadc/ftcal","/daq/fadc/fthodo","/daq/config/fttrk","/daq/fadc/ftof","/daq/fadc/ltcc", "/daq/fadc/ec", "/daq/fadc/htcc","/daq/fadc/ctof","/daq/fadc/cnd","/daq/config/bmt", - "/daq/config/fmt","/daq/fadc/hel","/daq/fadc/rf","/daq/fadc/band","/daq/fadc/raster" + "/daq/config/fmt","/daq/fadc/hel","/daq/fadc/rf","/daq/fadc/band","/daq/fadc/raster", + "/daq/config/ahdc" }); fitterManager.init(keysFitter, tablesFitter); @@ -155,6 +158,7 @@ public void fitPulses(List detectorData){ //custom MM fitter if( ( (table.equals("BMT"))&&(data.getDescriptor().getType().getName().equals("BMT")) ) || ( (table.equals("FMT"))&&(data.getDescriptor().getType().getName().equals("FMT")) ) + || ( (table.equals("AHDC"))&&(data.getDescriptor().getType().getName().equals("AHDC")) ) || ( (table.equals("FTTRK"))&&(data.getDescriptor().getType().getName().equals("FTTRK")) ) ){ IndexedTable daq = fitterManager.getConstants(runNumber, table); short adcOffset = (short) daq.getDoubleValue("adc_offset", 0, 0, 0); From 430a49fa08b5813f3ee5db79e3b3b60667e32c93 Mon Sep 17 00:00:00 2001 From: Whitney Armstrong Date: Thu, 31 Oct 2024 09:37:45 -0500 Subject: [PATCH 187/201] Fixed formatting. --- .../java/org/jlab/detector/decode/DetectorEventDecoder.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java index 468c5ace2..09a4ad7bf 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java @@ -85,7 +85,8 @@ public final void initDecoder(){ // Detector translation table keysTrans = Arrays.asList(new String[]{"FTCAL","FTHODO","FTTRK","LTCC","ECAL","FTOF", "HTCC","DC","CTOF","CND","BST","RF","BMT","FMT", - "RICH","HEL","BAND","RTPC","RASTER","ATOF","AHDC" + "RICH","HEL","BAND","RTPC", + "RASTER","ATOF","AHDC" }); tablesTrans = Arrays.asList(new String[]{ "/daq/tt/ftcal","/daq/tt/fthodo","/daq/tt/fttrk","/daq/tt/ltcc", From a34707c260bf6b92e8cef625d0882bfc2b83519c Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 1 Nov 2024 14:48:47 -0400 Subject: [PATCH 188/201] arg checker bugfix --- bin/run-clara | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/run-clara b/bin/run-clara index 7973a39cb..72c94ed42 100755 --- a/bin/run-clara +++ b/bin/run-clara @@ -34,7 +34,7 @@ do p) prefix=$OPTARG ;; c) CLARA_HOME=$OPTARG ;; t) threads=$OPTARG && echo $threads | grep -q -E '^[0-9]+$' || error "-t must be an integer, threads" ;; - n) nevents="-e $OPTARG" && echo $nevents | grep -q -E '^-e [0-9]+$' || error "-n must be an integer, events" ;; + n) nevents="-e $OPTARG" && echo "$nevents" | grep -q -E '^-e [0-9]+$' || error "-n must be an integer, events" ;; m) merge=1 ;; h) echo -e "\n$usage" && echo -e $info && exit 0 ;; esac From 7c418aaaf74033df7593eb4ba846f644d26e5d4a Mon Sep 17 00:00:00 2001 From: Veronique Ziegler Date: Fri, 1 Nov 2024 18:59:45 -0400 Subject: [PATCH 189/201] Iss117 cvt bmtc seed mv tar (#358) * Use Sla for straight tracks Add debug statement for RZ cross list finder * Fix to take the beam spot correctly into account at seeding level. * version bump * version bump * applying global CVT position shift to passive surfaces * Take into account beam spot in global track propagation to a given radius. * Take into account beam spot in updating the cross in seeding. --------- Co-authored-by: ziegler Co-authored-by: Raffaella De Vita --- .../detector/geant4/v2/SVT/SVTConstants.java | 13 +++- .../geant4/v2/SVT/SVTVolumeFactory.java | 3 +- .../org/jlab/rec/cvt/bmt/BMTConstants.java | 1 + .../org/jlab/rec/cvt/bmt/BMTGeometry.java | 2 + .../jlab/rec/cvt/bmt/CCDBConstantsLoader.java | 4 +- .../rec/cvt/services/CVTReconstruction.java | 4 ++ .../jlab/rec/cvt/services/RecUtilities.java | 19 +++--- .../rec/cvt/services/TracksFromTargetRec.java | 63 ++++++++++--------- .../org/jlab/rec/cvt/svt/SVTGeometry.java | 3 + .../java/org/jlab/rec/cvt/track/Seed.java | 14 +++-- .../rec/cvt/track/StraightTrackSeeder.java | 11 ++-- .../java/org/jlab/rec/cvt/track/Track.java | 6 +- .../org/jlab/rec/cvt/track/TrackSeeder.java | 17 ++--- .../org/jlab/rec/cvt/track/TrackSeederRZ.java | 2 +- .../org/jlab/rec/cvt/track/TrackSeederXY.java | 12 ++-- .../org/jlab/rec/cvt/trajectory/Helix.java | 8 +-- runtest.sh | 3 + 17 files changed, 114 insertions(+), 71 deletions(-) create mode 100644 runtest.sh diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java index a96bd20df..dd7c9275a 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTConstants.java @@ -40,6 +40,7 @@ public class SVTConstants { // data for alignment shifts // private static String filenameSectorShiftData = null; + private static double[] GLOBALSHIFTDATA = null; private static double[][][] LAYERSHIFTDATA = null; //private static double[][] LAYERSHIFTDATA = null; @@ -429,7 +430,8 @@ else if( value == "tube" ) // offset by boxNum to reset row for CCDB table double xpos = cp.getDouble(ccdbPath+"position/x", 0 ); double ypos = cp.getDouble(ccdbPath+"position/y", 0 ); double zpos = cp.getDouble(ccdbPath+"position/z", 0 ); - + GLOBALSHIFTDATA = new double[]{xpos, ypos, zpos, 0, 0, 1, 0}; + // double[] myShift = {0, 0, 0, -Math.toRadians(0), 0, 0, 0}; LAYERSHIFTDATA = new double[NSECTORS[3]][NLAYERS-2][]; for( int i = 0; i < (NTOTALSECTORS-NSECTORS[3])*2; i++ ) // layeralignment tables doesn't cover region 4 @@ -834,5 +836,14 @@ public static double[][][] getLayerSectorAlignmentData() { return LAYERSHIFTDATA; } + /** + * Returns the layer/sector alignment data + * @return + */ + public static double[] getGlobalAlignmentData() { + if(GLOBALSHIFTDATA == null ) { System.err.println("error: SVTConstants.getGlobalAlignmentData: GLOBALSHIFTDATA requested is null"); } + return GLOBALSHIFTDATA; + } + } diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTVolumeFactory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTVolumeFactory.java index dce713687..a30966c03 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTVolumeFactory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/SVT/SVTVolumeFactory.java @@ -223,7 +223,7 @@ public void makeVolumes() if( BUILDSENSORS ) System.out.println(" include sensor active and dead zones ? "+ BUILDSENSORZONES ); //System.out.println(" halve dimensions of boxes ? "+ HALFBOXES ); - this.makeCage(); + this.makeCage(); for( int region = regionMin-1; region < regionMax; region++ ) // NREGIONS { @@ -278,6 +278,7 @@ public void makeVolumes() }*/ // FIXME currently using shifts from bottom module of each region + // FIXME global shift should be applied to mother volume AlignmentFactory.applyShift( sectorVol, SVTConstants.getLayerSectorAlignmentData()[sector][region*2], fidTri3D.center(), scaleT, scaleR ); //System.out.println("S "+sectorVol.gemcString() ); } diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/BMTConstants.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/BMTConstants.java index 52e5064ab..8bd0bfb83 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/BMTConstants.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/BMTConstants.java @@ -83,6 +83,7 @@ private BMTConstants() { public static Line3D[][] AXES = new Line3D[NLAYERS][NSECTORS]; // detector AXES public static Transformation3D[][] TOLOCAL = new Transformation3D[NLAYERS][NSECTORS]; public static Transformation3D[][] TOGLOBAL = new Transformation3D[NLAYERS][NSECTORS]; + public static Transformation3D TOPOSITION = null; public static double[] ThetaL_grid = new double[405]; //Lorentz angle grid public static double[] E_grid = new double[405]; //Electric field value of the grid public static double[] B_grid = new double[405]; //Magnetic field value of the grid diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/BMTGeometry.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/BMTGeometry.java index 770b2d3e4..671c3b26a 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/BMTGeometry.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/BMTGeometry.java @@ -954,6 +954,7 @@ public Surface getInnerTube() { Vector3D axis = new Vector3D(0,0,1); Arc3D base = new Arc3D(origin, center, axis, 2*Math.PI); Cylindrical3D tube = new Cylindrical3D(base, 2*INNERTUBEDIM[2]); + BMTConstants.TOPOSITION.apply(tube); Surface surface = new Surface(tube, new Strip(0,0,0), Constants.DEFAULTSWIMACC); surface.addMaterial("CarbonFiber", INNERTUBEDIM[1]-INNERTUBEDIM[0], TUBEMAT[0], TUBEMAT[1], TUBEMAT[2], TUBEMAT[3], Units.MM); @@ -967,6 +968,7 @@ public Surface getOuterTube() { Vector3D axis = new Vector3D(0,0,1); Arc3D base = new Arc3D(origin, center, axis, 2*Math.PI); Cylindrical3D tube = new Cylindrical3D(base, 2*OUTERTUBEDIM[2]); + BMTConstants.TOPOSITION.apply(tube); Surface surface = new Surface(tube, new Strip(0,0,0), Constants.DEFAULTSWIMACC); surface.addMaterial("CarbonFiber", OUTERTUBEDIM[1]-OUTERTUBEDIM[0], TUBEMAT[0], TUBEMAT[1], TUBEMAT[2], TUBEMAT[3], Units.MM); diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/CCDBConstantsLoader.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/CCDBConstantsLoader.java index 00a147908..3cfad3e2d 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/CCDBConstantsLoader.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/bmt/CCDBConstantsLoader.java @@ -224,13 +224,15 @@ public static final synchronized void Load(DatabaseConstantProvider dbprovider) gemcCenter.rotateY(Math.toRadians(gemcRot.y())); gemcCenter.rotateX(Math.toRadians(gemcRot.x())); gemcShift.translateXYZ(-gemcCenter.x(), -gemcCenter.y(), -gemcCenter.z()); + BMTConstants.TOPOSITION = new Transformation3D(); + BMTConstants.TOPOSITION.translateXYZ(xpos+gemcShift.x(), ypos+gemcShift.y(), zpos+gemcShift.z()); for (int row = 0; row reFit(List seedlist, Swim swimmer, StraightTrackSeeder trseed) { + public List reFit(List seedlist, Swim swimmer, StraightTrackSeeder trseed, double xb, double yb) { List filtlist = new ArrayList<>(); if(seedlist==null) return filtlist; for (Seed bseed : seedlist) { if(bseed == null) continue; - List fseeds = this.reFitSeed(bseed, trseed); + List fseeds = this.reFitSeed(bseed, trseed, xb, yb); if(fseeds!=null) { filtlist.addAll(fseeds); } @@ -435,7 +435,7 @@ public List reFit(List seedlist, Swim swimmer, StraightTrackSeeder return filtlist; } - public List reFitSeed(Seed bseed, StraightTrackSeeder trseed) { + public List reFitSeed(Seed bseed, StraightTrackSeeder trseed, double xb, double yb) { List refib = new ArrayList<>(); List refi = new ArrayList<>(); @@ -461,7 +461,7 @@ public List reFitSeed(Seed bseed, StraightTrackSeeder trseed) { } } Collections.sort(refi); - List seedlist = trseed.findSeed(refi, refib, false); + List seedlist = trseed.findSeed(refi, refib, false, xb, yb); return seedlist; } @@ -497,7 +497,7 @@ public boolean reFitCircle(Seed seed, int iter, double xb, double yb) { seed.getHelix().setCurvature(pars.rho()); seed.getHelix().setDCA(-pars.doca()); seed.getHelix().setPhiAtDCA(pars.phi()); - seed.update_Crosses(); + seed.update_Crosses(xb,yb); } } return fitStatus; @@ -762,7 +762,8 @@ public double[][] getCovMatInTrackRep(Track trk) { return tCov; } - public List findCrossesFromClustersOnTrk(List allCrosses, List clsOnTrack, Track track) { + public List findCrossesFromClustersOnTrk(List allCrosses, List clsOnTrack, + Track track, double xb, double yb) { CrossMaker cm = new CrossMaker(); List crosses = new ArrayList<>(); for (Cluster cl1 : clsOnTrack) {//inner layer @@ -799,7 +800,9 @@ public List findCrossesFromClustersOnTrk(List allCrosses, List clsOnTrack = this.findClustersOnTrk(SVTclusters, seed.getClusters(), fittedTrack, swimmer); //VZ: finds missing clusters; RDV fix 0 error - List crsOnTrack = this.findCrossesFromClustersOnTrk(SVTcrosses, clsOnTrack, fittedTrack); + List crsOnTrack = this.findCrossesFromClustersOnTrk(SVTcrosses, clsOnTrack, fittedTrack, xb, yb); if(clsOnTrack.size()>0) { seed.add_Clusters(clsOnTrack); diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/TracksFromTargetRec.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/TracksFromTargetRec.java index 7e78c191f..6848a631f 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/TracksFromTargetRec.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/services/TracksFromTargetRec.java @@ -57,7 +57,7 @@ public class TracksFromTargetRec { private double xb; private double yb; public int totTruthHits; - + public boolean oldStraightTrackSeeder=false; public TracksFromTargetRec(Swim swimmer, double[] beamPos) { this.swimmer = swimmer; @@ -75,9 +75,9 @@ public List getSeeds(List> clusters, List seeds = new ArrayList<>(); // make list of crosses consistent with a track candidate - if(solenoidValue<0.001) { + if(oldStraightTrackSeeder) { StraightTrackSeeder trseed = new StraightTrackSeeder(xb, yb); - seeds = trseed.findSeed(this.SVTcrosses, this.BMTcrosses, Constants.getInstance().svtOnly); + seeds = trseed.findSeed(this.SVTcrosses, this.BMTcrosses, Constants.getInstance().svtOnly, xb, yb); // RDV, disabled because it seems to create fake tracks, skipping measurement in KF // if(Constants.getInstance().EXCLUDELAYERS==true) { // seeds = recUtil.reFit(seeds, swimmer, trseed); // RDV can we juts refit? @@ -223,7 +223,7 @@ public List getTracks(DataEvent event, boolean initFromMc, boolean kfFilt if(solenoidValue>0.001 && seed.getHelix().radius() getTracks(DataEvent event, boolean initFromMc, boolean kfFilt System.out.println("KF status ... failed "+kf.setFitFailed+" ndf "+kf.NDF+" helix "+kf.getHelix()); if (kf.setFitFailed == false && kf.NDF>0 && kf.getHelix()!=null) { Track fittedTrack = new Track(seed, kf, pid); - fittedTrack.update_Crosses(seed.getId()); + fittedTrack.update_Crosses(seed.getId(), xb, yb); for(Cross c : fittedTrack) { if(c.getDetector()==DetectorType.BST) { c.getCluster1().setAssociatedTrackID(0); @@ -242,7 +242,7 @@ public List getTracks(DataEvent event, boolean initFromMc, boolean kfFilt //refit adding missing clusters List clsOnTrack = recUtil.findClustersOnTrk(this.SVTclusters, seed.getClusters(), fittedTrack, swimmer); //VZ: finds missing clusters; RDV fix 0 error - List crsOnTrack = recUtil.findCrossesFromClustersOnTrk(this.SVTcrosses, clsOnTrack, fittedTrack); + List crsOnTrack = recUtil.findCrossesFromClustersOnTrk(this.SVTcrosses, clsOnTrack, fittedTrack, xb, yb); List bmtclsOnTrack = recUtil.findBMTClustersOnTrk(this.BMTclusters, seed.getCrosses(), fittedTrack.getHelix(), fittedTrack.getP(), fittedTrack.getQ(), swimmer); //VZ: finds missing clusters @@ -299,37 +299,40 @@ public List getTracks(DataEvent event, boolean initFromMc, boolean kfFilt fittedTrack = recUtil.recovTrkMisClusSearch(seed, hlx, cov, kf2, kf, pid, surfaces, xb, yb, this.SVTclusters, this.SVTcrosses, swimmer, solenoidScale, solenoidValue, measure); -// if(fittedTrack!=null) { -// fittedTrack.setStatus(1); -// if(Constants.getInstance().seedingDebugMode) -// System.out.println("RECOVERED..."+fittedTrack.toString()); -// } - } - if((Constants.getInstance().KFfailRecovMisCls && fittedTrack==null) ){ - //dump seed - kf2.init(hlx, cov, xb, yb, 0, surfaces, PDGDatabase.getParticleMass(pid)); - kf2.runFitterNoFiltFailSafe(); - if(kf2.getHelix()!=null) { - fittedTrack = new Track(seed, kf2, pid); + + if(fittedTrack!=null) { + fittedTrack.setStatus(1); if(Constants.getInstance().seedingDebugMode) - System.out.println("RECOVERED SEED..."+fittedTrack.toString()); - //fittedTrack.setStatus(-1); - for(Cross c : fittedTrack) { - if(c.getDetector()==DetectorType.BST) { - c.getCluster1().setAssociatedTrackID(0); - c.getCluster2().setAssociatedTrackID(0); + System.out.println("RECOVERED..."+fittedTrack.toString()); + } else { + if(Constants.getInstance().seedingDebugMode) + System.out.println("FAILED..."+seed.toString()); + if(Constants.getInstance().seedingDebugMode) + System.out.println("TRYING TO RUN FAIL SAFE..."+hlx.toString()); + //dump seed + kf2.init(hlx, cov, xb, yb, 0, surfaces, PDGDatabase.getParticleMass(pid)); + kf2.runFitterNoFiltFailSafe(); + if(Constants.getInstance().seedingDebugMode) + System.out.println("RUN FAIL SAFE..."+seed.toString()+" OK "+kf2.getHelix()!=null); + if(kf2.getHelix()!=null) { + fittedTrack = new Track(seed, kf2, pid); + if(Constants.getInstance().seedingDebugMode) + System.out.println("RECOVERED SEED..."+fittedTrack.toString()); + //fittedTrack.setStatus(-1); + for(Cross c : fittedTrack) { + if(c.getDetector()==DetectorType.BST) { + c.getCluster1().setAssociatedTrackID(0); + c.getCluster2().setAssociatedTrackID(0); + } } } } + if(fittedTrack!=null && this.missingSVTCrosses(fittedTrack) == false) + tracks.add(fittedTrack); } - if(fittedTrack!=null && this.missingSVTCrosses(fittedTrack) == false) - tracks.add(fittedTrack); - } } } - - // reset cross and cluster IDs if(SVTcrosses!=null) { for(Cross c : this.SVTcrosses) { @@ -361,7 +364,7 @@ public List getTracks(DataEvent event, boolean initFromMc, boolean kfFilt int id = it + 1; tracks.get(it).setId(id); tracks.get(it).findTrajectory(swimmer, Geometry.getInstance().geOuterSurfaces()); - tracks.get(it).update_Crosses(id); + tracks.get(it).update_Crosses(id, xb, yb); tracks.get(it).update_Clusters(id); tracks.get(it).setTrackCovMat(recUtil.getCovMatInTrackRep(tracks.get(it))); if(Constants.getInstance().seedingDebugMode) System.out.println("Fit " + tracks.get(it).toString()); diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/svt/SVTGeometry.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/svt/SVTGeometry.java index 81fbeae34..9f2b529f5 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/svt/SVTGeometry.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/svt/SVTGeometry.java @@ -261,6 +261,9 @@ public Surface getFaradayCageSurfaces(int i) { Vector3D axis = new Vector3D(0,0,1); Arc3D base = new Arc3D(origin, center, axis, 2*Math.PI); Cylindrical3D fcCylinder = new Cylindrical3D(base, SVTConstants.FARADAYCAGELENGTH[i]); + fcCylinder.translateXYZ(SVTConstants.getGlobalAlignmentData()[0], + SVTConstants.getGlobalAlignmentData()[1], + SVTConstants.getGlobalAlignmentData()[2]); Surface fcSurface = new Surface(fcCylinder, new Strip(0, 0, 0), Constants.DEFAULTSWIMACC); fcSurface.addMaterial("FaradayCage"+i, SVTConstants.FARADAYCAGERMAX[i]-SVTConstants.FARADAYCAGERMIN[i], diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java index 5b11f32d4..14da31acc 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Seed.java @@ -384,7 +384,7 @@ else if (c.getDetector()==DetectorType.BMT && c.getType()==BMTType.Z ) { if (fitTrk.getchisq()[0] < chisqMax) { chisqMax = fitTrk.getchisq()[0]; if(chisqMax crosses) { + public void update_Crosses(List crosses, double xb, double yb) { if (this.getHelix() != null && this.getHelix().getCurvature() != 0) { for (int i = 0; i < crosses.size(); i++) { Cross cross = crosses.get(i); - double R = Math.sqrt(cross.getPoint().x() * cross.getPoint().x() + cross.getPoint().y() * cross.getPoint().y()); + double Cx = cross.getPoint().x()-xb; + double Cy = cross.getPoint().y()-yb; + double R = Math.sqrt(Cx * Cx + Cy * Cy); Point3D trackPos = this.getHelix().getPointAtRadius(R); Vector3D trackDir = this.getHelix().getTrackDirectionAtRadius(R); cross.update(trackPos, trackDir); diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/StraightTrackSeeder.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/StraightTrackSeeder.java index 6450eef0d..e740e6d21 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/StraightTrackSeeder.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/StraightTrackSeeder.java @@ -219,7 +219,8 @@ private void findSeedCrossesFixedBin(List crosses, double phiShift) { List BMTmatches = new ArrayList<>(); - public List findSeed(List svt_crosses, List bmt_crosses, boolean isSVTOnly) { + public List findSeed(List svt_crosses, List bmt_crosses, boolean isSVTOnly, + double xb, double yb) { BMTmatches.clear(); seedScan.clear() ; List seedlist = new ArrayList<>(); @@ -302,7 +303,7 @@ public List findSeed(List svt_crosses, List bmt_crosses, boo List seedcrs = mseed.getCrosses(); Track cand = null; if(seedcrs.size()>=3) - cand = fitSeed(seedcrs, 5, false); + cand = fitSeed(seedcrs, 5, false, xb, yb); if (cand != null) { Seed seed = new Seed(); seed.setCrosses(seedcrs); @@ -319,7 +320,7 @@ public List findSeed(List svt_crosses, List bmt_crosses, boo for (Seed bseed : BMTmatches) { Collections.sort(bseed.getCrosses()); //refit using the BMT - Track bcand = fitSeed(bseed.getCrosses(), 5, false); + Track bcand = fitSeed(bseed.getCrosses(), 5, false, xb, yb); if (bcand != null) { seed = new Seed(); seed.setCrosses(bseed.getCrosses()); @@ -373,7 +374,7 @@ private List findCrossesInSameSectorAsSVTTrk(Seed seed, List bmt_c private final List SVTCrosses = new ArrayList<>(); public Track fitSeed(List VTCrosses, int fitIter, - boolean originConstraint) { + boolean originConstraint, double xb, double yb) { double chisqMax = Double.POSITIVE_INFINITY; Track cand = null; @@ -476,7 +477,7 @@ public Track fitSeed(List VTCrosses, int fitIter, //if(shift==0) // if(i==0) System.out.println(); // System.out.println(fitTrk.getChi2()[0] + " " + chisqMax + " " + Constants.CIRCLEFIT_MAXCHI2); - cand.update_Crosses(-1); + cand.update_Crosses(-1, xb, yb); if (fitTrk.getChi2()[0] < chisqMax) { chisqMax = fitTrk.getChi2()[0]; // if(chisqMax othercrs) { for (Cross c : othercrs ) { if(this.inSamePhiRange(seed, c)== true) { - double xi = c.getPoint().x(); - double yi = c.getPoint().y(); + double xi = c.getPoint().x()-xbeam; + double yi = c.getPoint().y()-ybeam; double ri = Math.sqrt(xi*xi+yi*yi); double fi = Math.atan2(yi,xi) ; @@ -96,7 +96,7 @@ public void fitSeed(List seedcrs) { Ys.add(c.getPoint().y()); Ws.add(1. / (c.getPointErr().x()*c.getPointErr().x()+c.getPointErr().y()*c.getPointErr().y())); - } + } CircleFitter circlefit = new CircleFitter(xbeam, ybeam); boolean circlefitstatusOK = circlefit.fitStatus(Xs, Ys, Ws, Xs.size()); CircleFitPars pars = circlefit.getFit(); @@ -108,14 +108,17 @@ public void fitSeed(List seedcrs) { boolean failed = false; for (Cross c : seedcrs ) { - double xi = c.getPoint().x(); - double yi = c.getPoint().y(); + double xi = c.getPoint().x()-xbeam; + double yi = c.getPoint().y()-ybeam; double ri = Math.sqrt(xi*xi+yi*yi); double fi = Math.atan2(yi,xi) ; double res = this.calcResi(r, ri, d, f, fi); if(Math.abs(res)>SVTParameters.RESIMAX) { failed = true; + if(Constants.getInstance().seedingDebugMode) { + System.out.println("SSA faailing on "+c.printInfo()+" with resi "+Math.abs(res)+" larger than "+SVTParameters.RESIMAX); + } return; } } @@ -295,8 +298,8 @@ public List findSeed(List bst_crosses, List bmt_crosses) { mseed.setRho(r); mseed.setPhi(f); for (Cross c : seedcrs) { - double xi = c.getPoint().x(); - double yi = c.getPoint().y(); + double xi = c.getPoint().x()-xbeam; + double yi = c.getPoint().y()-ybeam; double ri = Math.sqrt(xi * xi + yi * yi); double fi = Math.atan2(yi, xi); double res = this.calcResi(r, ri, d, f, fi); diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/TrackSeederRZ.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/TrackSeederRZ.java index 8c1e3bec3..ad41d64a6 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/TrackSeederRZ.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/TrackSeederRZ.java @@ -188,7 +188,7 @@ private boolean interceptOK(Cross c1, Cross c2) { if(Math.abs(targetCen-in) seedcrsrm = new ArrayList<>(); List seedcrs = seed.getCrosses(); for (Cross c : seedcrs) { - double xi = c.getPoint().x(); - double yi = c.getPoint().y(); + double xi = c.getPoint().x()-xbeam; + double yi = c.getPoint().y()-ybeam; double res = this.calcResi(r, d, f, xi, yi); if(res>worseResi) { worseResi = res; @@ -335,8 +335,8 @@ private void addMissingCrosses(List seedcrs, List crosses, CircleF double ave_resi =0; int[] L = new int[6]; for (Cross c : seedcrs) { - double xi = c.getPoint().x(); - double yi = c.getPoint().y(); + double xi = c.getPoint().x()-xbeam; + double yi = c.getPoint().y()-ybeam; double res = this.calcResi(r, d, f, xi, yi); ave_resi+=res; int rg = c.getRegion(); @@ -355,8 +355,8 @@ private void addMissingCrosses(List seedcrs, List crosses, CircleF if(L[rg-1] ==0) { //missing layer --> search for cross - double xi = c.getPoint().x(); - double yi = c.getPoint().y(); + double xi = c.getPoint().x()-xbeam; + double yi = c.getPoint().y()-ybeam; double res = this.calcResi(r, d, f, xi, yi); if(res 100 m, assume it's straight track - double x = -d0 * Math.sin(phi0) + r*Math.cos(phi0); - double y = d0 * Math.cos(phi0) + r*Math.sin(phi0); + double x = -d0 * Math.sin(phi0) + r*Math.cos(phi0)+xb; + double y = d0 * Math.cos(phi0) + r*Math.sin(phi0)+yb; double z = z0 + r*tandip; return new Point3D(x, y, z); } @@ -279,9 +279,9 @@ public Point3D getPointAtRadius(double r) { double alpha = -newPathLength * omega; double x = d0 * charge * Math.sin(phi0) + (charge / Math.abs(omega)) - * (Math.sin(phi0) - Math.cos(alpha) * Math.sin(phi0) - Math.sin(alpha) * Math.cos(phi0)); + * (Math.sin(phi0) - Math.cos(alpha) * Math.sin(phi0) - Math.sin(alpha) * Math.cos(phi0))+xb; double y = -d0 * charge * Math.cos(phi0) - (charge / Math.abs(omega)) - * (Math.cos(phi0) + Math.sin(alpha) * Math.sin(phi0) - Math.cos(alpha) * Math.cos(phi0)); + * (Math.cos(phi0) + Math.sin(alpha) * Math.sin(phi0) - Math.cos(alpha) * Math.cos(phi0))+yb; double z = z0 + newPathLength * tandip; return new Point3D(x, y, z); diff --git a/runtest.sh b/runtest.sh new file mode 100644 index 000000000..56ff212fb --- /dev/null +++ b/runtest.sh @@ -0,0 +1,3 @@ +rm ../../../../../Files/CVTDEBUG/rec_cvt1.hipo +./bin/recon-util -S etc/bankdefs/hipo4/ -i ../../../../../Files/CVTDEBUG/gen_cvt1.hipo -o ../../../../../Files/CVTDEBUG/rec_cvt1.hipo -y ../../../../../Files/CVTDEBUG/mc-fall2018-split.yaml -n 20 + From 41323472f608744ec15fea2fcc0cc06266be7a99 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Sun, 3 Nov 2024 20:10:36 -0500 Subject: [PATCH 190/201] cleanup --- runtest.sh | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 runtest.sh diff --git a/runtest.sh b/runtest.sh deleted file mode 100644 index 56ff212fb..000000000 --- a/runtest.sh +++ /dev/null @@ -1,3 +0,0 @@ -rm ../../../../../Files/CVTDEBUG/rec_cvt1.hipo -./bin/recon-util -S etc/bankdefs/hipo4/ -i ../../../../../Files/CVTDEBUG/gen_cvt1.hipo -o ../../../../../Files/CVTDEBUG/rec_cvt1.hipo -y ../../../../../Files/CVTDEBUG/mc-fall2018-split.yaml -n 20 - From 1f3dfd3d8ab10295c3b21e5a5a56d7f87aff1a78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 07:21:29 +0000 Subject: [PATCH 191/201] build(deps): bump org.apache.maven.plugins:maven-javadoc-plugin Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.10.1 to 3.11.1. - [Release notes](https://github.com/apache/maven-javadoc-plugin/releases) - [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.10.1...maven-javadoc-plugin-3.11.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-javadoc-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- parent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parent/pom.xml b/parent/pom.xml index b42aba560..5a00937f9 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -71,7 +71,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.10.1 + 3.11.1 coatjavadocs coatjavadocs From 454bf1c85b2ce7da258e20a7c504ab669d5a00d3 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 4 Nov 2024 08:49:46 -0500 Subject: [PATCH 192/201] version bump --- common-tools/clara-io/pom.xml | 4 ++-- common-tools/clas-analysis/pom.xml | 20 ++++++++--------- common-tools/clas-detector/pom.xml | 10 ++++----- common-tools/clas-geometry/pom.xml | 4 ++-- common-tools/clas-io/pom.xml | 8 +++---- common-tools/clas-jcsg/pom.xml | 8 +++---- common-tools/clas-logging/pom.xml | 4 ++-- common-tools/clas-math/pom.xml | 4 ++-- common-tools/clas-physics/pom.xml | 4 ++-- common-tools/clas-reco/pom.xml | 16 +++++++------- common-tools/clas-tracking/pom.xml | 6 +++--- common-tools/clas-utils/pom.xml | 6 +++--- common-tools/cnuphys/magfield/pom.xml | 2 +- common-tools/cnuphys/swimmer/pom.xml | 2 +- common-tools/coat-lib/deployDistribution.sh | 2 +- common-tools/coat-lib/pom.xml | 24 ++++++++++----------- common-tools/parent/pom.xml | 2 +- common-tools/pom.xml | 4 ++-- common-tools/swim-tools/pom.xml | 6 +++--- parent/pom.xml | 2 +- pom.xml | 4 ++-- reconstruction/alert/pom.xml | 10 ++++----- reconstruction/band/pom.xml | 4 ++-- reconstruction/bg/pom.xml | 8 +++---- reconstruction/cnd/pom.xml | 2 +- reconstruction/cvt/pom.xml | 6 +++--- reconstruction/dc/pom.xml | 14 ++++++------ reconstruction/eb/pom.xml | 10 ++++----- reconstruction/ec/pom.xml | 6 +++--- reconstruction/fmt/pom.xml | 6 +++--- reconstruction/ft/pom.xml | 4 ++-- reconstruction/htcc/pom.xml | 4 ++-- reconstruction/ltcc/pom.xml | 4 ++-- reconstruction/mc/pom.xml | 4 ++-- reconstruction/mltn/pom.xml | 6 +++--- reconstruction/pom.xml | 4 ++-- reconstruction/postproc/pom.xml | 8 +++---- reconstruction/raster/pom.xml | 4 ++-- reconstruction/rich/pom.xml | 6 +++--- reconstruction/rtpc/pom.xml | 6 +++--- reconstruction/swaps/pom.xml | 8 +++---- reconstruction/tof/pom.xml | 4 ++-- reconstruction/urwell/pom.xml | 6 +++--- reconstruction/vtx/pom.xml | 6 +++--- 44 files changed, 141 insertions(+), 141 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index 387a592f1..e29d5ea0f 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clara-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml index 1eafad931..57596921c 100644 --- a/common-tools/clas-analysis/pom.xml +++ b/common-tools/clas-analysis/pom.xml @@ -3,63 +3,63 @@ 4.0.0 org.jlab.clas clas-analysis - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-utils - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-physics - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-geometry - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas swim-tools - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-detector - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml index 6572eb93a..b40d2272c 100644 --- a/common-tools/clas-detector/pom.xml +++ b/common-tools/clas-detector/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-detector - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-utils - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -29,13 +29,13 @@ org.jlab.clas clas-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-geometry - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index 870e32a2a..289469a1f 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-geometry - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index 4ddb1272d..e70d61847 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -90,13 +90,13 @@ org.jlab.clas clas-utils - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-logging - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT compile diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index e9ccd34f9..dff1fc53d 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-jcsg - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -27,12 +27,12 @@ org.jlab.clas clas-geometry - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-detector - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT java3d diff --git a/common-tools/clas-logging/pom.xml b/common-tools/clas-logging/pom.xml index dd4da20b3..e36509411 100644 --- a/common-tools/clas-logging/pom.xml +++ b/common-tools/clas-logging/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-logging - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml index 4187e446c..6d7023817 100644 --- a/common-tools/clas-math/pom.xml +++ b/common-tools/clas-math/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-math - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml index b77e86174..eb94b47e8 100644 --- a/common-tools/clas-physics/pom.xml +++ b/common-tools/clas-physics/pom.xml @@ -4,14 +4,14 @@ org.jlab.clas clas-physics - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml index 97399aa77..047eadc9a 100644 --- a/common-tools/clas-reco/pom.xml +++ b/common-tools/clas-reco/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -42,37 +42,37 @@ org.jlab.clas clas-math - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-logging - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-physics - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-utils - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-detector - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index 36cf7cfd5..b6e0ad4b9 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-tracking - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -22,7 +22,7 @@ org.jlab.clas swim-tools - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index a8d8930b9..c68e40f86 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-utils - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-logging - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.apache.commons diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml index 1242fdbdf..9f1d55e96 100644 --- a/common-tools/cnuphys/magfield/pom.xml +++ b/common-tools/cnuphys/magfield/pom.xml @@ -23,7 +23,7 @@ org.jlab.clas clas-math - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml index 94a0dde03..d3783793d 100644 --- a/common-tools/cnuphys/swimmer/pom.xml +++ b/common-tools/cnuphys/swimmer/pom.xml @@ -35,7 +35,7 @@ org.jlab.clas clas-math - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/coat-lib/deployDistribution.sh b/common-tools/coat-lib/deployDistribution.sh index fba9ce60b..b740fcaff 100755 --- a/common-tools/coat-lib/deployDistribution.sh +++ b/common-tools/coat-lib/deployDistribution.sh @@ -8,7 +8,7 @@ cd `dirname $0` # Script is exporting existing Jar files to repository #------------------------------------------------------------------------------------------------- -VERSION=11.0.3 +VERSION=11.0.4 mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -Dfile=target/coat-libs-${VERSION}-SNAPSHOT.jar \ diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index e69de9882..959852b07 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jlab.clas coat-libs - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT pom @@ -94,67 +94,67 @@ org.jlab.clas clas-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clara-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-utils - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-detector - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-analysis - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-geometry - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-physics - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas swim-tools - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-tracking - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index a64d1f947..26dc50319 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas common-tools - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT pom diff --git a/common-tools/pom.xml b/common-tools/pom.xml index 868dd02b0..053ccee55 100644 --- a/common-tools/pom.xml +++ b/common-tools/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas common-tools - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml index abbb6f748..3a8ea68aa 100644 --- a/common-tools/swim-tools/pom.xml +++ b/common-tools/swim-tools/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas swim-tools - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/parent/pom.xml b/parent/pom.xml index 5a00937f9..8c46fd9ad 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas clas12rec - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index 66755e005..d39963e73 100644 --- a/pom.xml +++ b/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas clas12 - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT pom org.jlab.clas clas12rec parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml index 3396ba182..0bcc507a4 100644 --- a/reconstruction/alert/pom.xml +++ b/reconstruction/alert/pom.xml @@ -13,31 +13,31 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT compile org.jlab.clas clas-tracking - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT compile org.jlab.clas clas-geometry - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT compile diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml index 1d13527d9..cd3c85c5c 100644 --- a/reconstruction/band/pom.xml +++ b/reconstruction/band/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/bg/pom.xml b/reconstruction/bg/pom.xml index d1700fe96..8c3535d63 100644 --- a/reconstruction/bg/pom.xml +++ b/reconstruction/bg/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-analysis - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml index 6a81b9261..56994ac36 100644 --- a/reconstruction/cnd/pom.xml +++ b/reconstruction/cnd/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml index e9ab2d037..f40177855 100644 --- a/reconstruction/cvt/pom.xml +++ b/reconstruction/cvt/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -47,7 +47,7 @@ org.jlab.clas clas-tracking - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index f8cae8612..f80d921a6 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -28,25 +28,25 @@ org.jlab.clas clas-tracking - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-analysis - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -75,13 +75,13 @@ org.jlab.clas swim-tools - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-math - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml index a89b8b592..e4d112513 100644 --- a/reconstruction/eb/pom.xml +++ b/reconstruction/eb/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,25 +21,25 @@ org.jlab.clas clas-utils - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-analysis - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml index 75aea6562..b9132a08f 100644 --- a/reconstruction/ec/pom.xml +++ b/reconstruction/ec/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-analysis - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml index 229439698..322c20994 100644 --- a/reconstruction/fmt/pom.xml +++ b/reconstruction/fmt/pom.xml @@ -15,21 +15,21 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas swim-tools - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml index ae3f33936..42552e99e 100644 --- a/reconstruction/ft/pom.xml +++ b/reconstruction/ft/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml index 4e11d3119..72cedbc62 100644 --- a/reconstruction/htcc/pom.xml +++ b/reconstruction/htcc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml index b935db8e8..4fbde59f9 100644 --- a/reconstruction/ltcc/pom.xml +++ b/reconstruction/ltcc/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml index d4736ae06..b182b6227 100644 --- a/reconstruction/mc/pom.xml +++ b/reconstruction/mc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml index 42ff1e53b..e6de566ed 100644 --- a/reconstruction/mltn/pom.xml +++ b/reconstruction/mltn/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -34,13 +34,13 @@ org.jlab.clas clas-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index 5de19add4..6a9e3df8f 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -3,14 +3,14 @@ org.jlab.clas reconstruction - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/postproc/pom.xml b/reconstruction/postproc/pom.xml index befb6ddc0..2d32f9003 100644 --- a/reconstruction/postproc/pom.xml +++ b/reconstruction/postproc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-analysis - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml index 565926605..f6aed6437 100644 --- a/reconstruction/raster/pom.xml +++ b/reconstruction/raster/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml index c390575f4..9f3881497 100644 --- a/reconstruction/rich/pom.xml +++ b/reconstruction/rich/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml index 3393212cb..f336b48e4 100644 --- a/reconstruction/rtpc/pom.xml +++ b/reconstruction/rtpc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,12 +21,12 @@ org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-tracking - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT compile diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml index 844a54124..dce898136 100644 --- a/reconstruction/swaps/pom.xml +++ b/reconstruction/swaps/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-detector - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-io - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-reco - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml index ee7e8b0b2..eba23cb3c 100644 --- a/reconstruction/tof/pom.xml +++ b/reconstruction/tof/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/urwell/pom.xml b/reconstruction/urwell/pom.xml index ebfc2164f..8ee158888 100644 --- a/reconstruction/urwell/pom.xml +++ b/reconstruction/urwell/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT org.jlab.clas clas-analysis - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml index 9894f1e07..b6a8eb737 100644 --- a/reconstruction/vtx/pom.xml +++ b/reconstruction/vtx/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT @@ -33,13 +33,13 @@ org.jlab.clas swim-tools - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar org.jlab.clas clas-tracking - 11.0.3-SNAPSHOT + 11.0.4-SNAPSHOT jar From 32251196735580811f8477c891d63420dd341aa5 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 1 Nov 2024 18:57:00 -0400 Subject: [PATCH 193/201] switch to latest test files --- validation/advanced-tests/run-eb-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/advanced-tests/run-eb-tests.sh b/validation/advanced-tests/run-eb-tests.sh index 30645ecbd..70b776ba2 100755 --- a/validation/advanced-tests/run-eb-tests.sh +++ b/validation/advanced-tests/run-eb-tests.sh @@ -1,7 +1,7 @@ #!/bin/bash webDir=http://clasweb.jlab.org/clas12offline/distribution/coatjava/validation_files/eb -webVersion=5.1-fid-r11 +webVersion=5.10-fid-r11 webDir=$webDir/$webVersion # coatjava must already be built at ../../coatjava/ From 527d42eaac1e1fb1343039b5333b8f9ccf9a0313 Mon Sep 17 00:00:00 2001 From: Veronique Ziegler Date: Tue, 5 Nov 2024 11:03:05 -0500 Subject: [PATCH 194/201] Iss153 cvt straight trk angle (#351) * The updating of the cross position is shifted by -yB because the trajectory was using the helix method to compute the position at the cylinder radius and it was not accounting for the beam spot. Actually this computation was not needed because the KF already reports the trajectory. Both these issues have been fixed. The hemisphere was wrong in the making of the surfaces, as it took the middle of the cluster strip which for BMT C gives the wrong hemisphere for events in a particular phi range. This has been fixed by using the afore mentioned method to get the point from the seed and get the hemisphere from there. * version bump * Modified getMeasurements to account for hemisphere. --------- Co-authored-by: ziegler Co-authored-by: raffaelladevita --- .../rec/cvt/measurement/Measurements.java | 53 +++++++++++++------ .../rec/cvt/services/TracksFromTargetRec.java | 7 ++- .../java/org/jlab/rec/cvt/track/Track.java | 2 +- 3 files changed, 44 insertions(+), 18 deletions(-) diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java index dcefd1f33..b00ca82c4 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/measurement/Measurements.java @@ -16,6 +16,7 @@ import org.jlab.rec.cvt.Constants; import org.jlab.rec.cvt.Geometry; import org.jlab.rec.cvt.bmt.BMTGeometry; +import org.jlab.rec.cvt.bmt.BMTType; import org.jlab.rec.cvt.cluster.Cluster; import org.jlab.rec.cvt.svt.SVTGeometry; import org.jlab.rec.cvt.track.Seed; @@ -37,7 +38,7 @@ public class Measurements { private boolean cosmic = false; private Surface[] cvtSurfaces; private boolean debug = false; - + private Seed _seed; public Measurements(double xbeam, double ybeam, boolean beamSpot) { this.initTargetSurfaces(xbeam, ybeam, beamSpot); } @@ -254,12 +255,12 @@ public List getActiveMeasurements(StraightTrack cosmic) { } private void addClusters(Seed seed) { - this.addClusters(DetectorType.BST, this.getClusterSurfaces(DetectorType.BST, seed.getClusters())); - this.addClusters(DetectorType.BMT, this.getClusterSurfaces(DetectorType.BMT, seed.getClusters())); + this.addClusters(DetectorType.BST, this.getClusterSurfaces(DetectorType.BST, seed.getClusters(), seed)); + this.addClusters(DetectorType.BMT, this.getClusterSurfaces(DetectorType.BMT, seed.getClusters(), seed)); } private void addClusters(StraightTrack cosmic) { - this.addClusters(DetectorType.BST, this.getClusterSurfaces(DetectorType.BST, cosmic.getClusters())); + this.addClusters(DetectorType.BST, this.getClusterSurfaces(DetectorType.BST, cosmic.getClusters(), cosmic.getRay())); this.addClusters(DetectorType.BMT, this.getClusterSurfaces(DetectorType.BMT, cosmic.getClusters(), cosmic.getRay())); } @@ -283,27 +284,33 @@ private void addClusters(DetectorType type, List clusters) { private List getClusterSurfaces(DetectorType type, List clusters, Ray ray) { - List surfaces = this.getClusterSurfaces(type, clusters); + List surfaces = this.getClusterSurfaces(type, clusters, ray); for(Surface surf : surfaces) { - surf.hemisphere = this.getHemisphere(ray, surf); + surf.hemisphere = this.getHemisphere(ray, surf); } return surfaces; } - private List getClusterSurfaces(DetectorType type, List clusters) { - List surfaces = new ArrayList<>(); + private List getClusterSurfaces(DetectorType type, List clusters, Seed seed) { + List surfaces = new ArrayList<>(); for(Cluster cluster : clusters) { - if(cluster.getDetector()!=type) continue; - int layer = MLayer.getType(type, cluster.getLayer()).getCVTLayer(); - Surface measure = cluster.measurement(); - measure.hemisphere = Math.signum(cluster.center().y()); - if((int)Constants.getInstance().getUsedLayers().get(layer)<1) - measure.passive=true; - surfaces.add(measure); + Surface surf = this.getClusterSurface(type, cluster); + if(surf!=null) { + surf.hemisphere = this.getHemisphere(cluster, seed, surf); + surfaces.add(surf); + } } return surfaces; } + private Surface getClusterSurface(DetectorType type, Cluster cluster) { + if(cluster.getDetector()!=type) return null; + int layer = MLayer.getType(type, cluster.getLayer()).getCVTLayer(); + Surface surface = cluster.measurement(); + if((int)Constants.getInstance().getUsedLayers().get(layer)<1) + surface.passive=true; + return surface; + } private void addMissing(Seed seed) { for(int i=0; i getTracks(DataEvent event, boolean initFromMc, boolean kfFilt List surfaces = measure.getMeasurements(seed); if(pid==0) pid = this.getTrackPid(event, seed.getId()); - Point3D v = seed.getHelix().getVertex(); + Point3D v = seed.getHelix().getVertex(); Vector3D p = seed.getHelix().getPXYZ(solenoidValue); + if(Constants.getInstance().seedingDebugMode) + System.out.println("Seed vtx = "+v.toString()+" Seed p = "+p.toString()); + if(Constants.getInstance().preElossCorrection && pid!=Constants.DEFAULTPID) { double pcorr = measure.getELoss(p.mag(), PDGDatabase.getParticleMass(pid)); p.scale(pcorr/p.mag()); @@ -238,6 +241,8 @@ public List getTracks(DataEvent event, boolean initFromMc, boolean kfFilt c.getCluster2().setAssociatedTrackID(0); } } + if(Constants.getInstance().seedingDebugMode) + System.out.println("KF vtx = "+fittedTrack.getSecondaryHelix().getVertex().toString()); if (searchMissingCls) { //refit adding missing clusters List clsOnTrack = recUtil.findClustersOnTrk(this.SVTclusters, seed.getClusters(), fittedTrack, swimmer); //VZ: finds missing clusters; RDV fix 0 error diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Track.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Track.java index 4d173b247..eea7abe5e 100644 --- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Track.java +++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/track/Track.java @@ -224,7 +224,7 @@ public void update_Crosses(int trackId, double xb, double yb) { cross.setAssociatedTrackID(trackId); Point3D trackPos = null; Vector3D trackDir = null; - if(this.getKFTrajectories()!=null && Math.abs(this.getHelix().B)>0.0001) { + if(this.getKFTrajectories()!=null ) { int layer = cross.getCluster1().getLayer(); int index = MLayer.getType(cross.getDetector(), layer).getIndex(); HitOnTrack traj = this.getKFTrajectories().get(index); From b5bbe1f9b7621573abc40d0f361185a9ef6a0869 Mon Sep 17 00:00:00 2001 From: Raffaella De Vita Date: Fri, 19 Apr 2024 18:24:16 -0400 Subject: [PATCH 195/201] added DC superlayers as geant4 volumes --- .../detector/geant4/v2/DCGeant4Factory.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java index 0a61504a8..64f320d4d 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java @@ -856,6 +856,19 @@ public Geant4Basic createRegion(int isector, int iregion) { for (int isup = 0; isup < 2; isup++) { int isuper = iregion * 2 + isup; + Geant4Basic superlayerVolume = this.createSuperlayer(isuper); + superlayerVolume.setName("sl" + (isuper + 1) + "_s" + (isector + 1)); + + Vector3d slcenter = superlayerVolume.getLocalPosition(); + Vector3d slshift = slcenter.minus(reg_position0); + slshift.rotateX(reg_thtilt); + + superlayerVolume.rotate("zxy", -dbref.thster(isuper), 0.0, 0.0); + + superlayerVolume.setPosition(slshift.x, slshift.y, slshift.z); + superlayerVolume.setMother(regionVolume); + superlayerVolume.setId(isector + 1, iregion + 1, isuper + 1); + int nsglayers = dbref.nsenselayers(isuper) + dbref.nguardlayers(isuper); for (int ilayer = 1; ilayer < nsglayers - 1; ilayer++) { Geant4Basic layerVolume = this.createLayer(isuper, ilayer); @@ -876,6 +889,30 @@ public Geant4Basic createRegion(int isector, int iregion) { return regionVolume; } + /////////////////////////////////////////////////// + public Geant4Basic createSuperlayer(int isuper) { + int nsglayers = dbref.nsenselayers(isuper) + dbref.nguardlayers(isuper); + Wire lw0 = new Wire(1, isuper, 1, 0); + Wire lw1 = new Wire(1, isuper, nsglayers-2, nsgwires - 1); + + Vector3d midline = lw1.mid().minus(lw0.mid()); + double lay_dy = Math.sqrt(Math.pow(midline.magnitude(), 2.0) - Math.pow(midline.dot(lw0.dir()), 2.0)) / 2.0; + double lay_dx0 = lw0.length() / 2.0; + double lay_dx1 = lw1.length() / 2.0; + double lay_dz = dbref.cellthickness(isuper) * dbref.wpdist(isuper) * (nsglayers -2) / 2.0 - microgap; + double lay_skew = lw0.center().minus(lw1.center()).angle(lw1.dir()) - Math.toRadians(90.0); + + Vector3d lcent = lw0.center().plus(lw1.center()).dividedBy(2.0); + G4Trap superlayerVolume = new G4Trap("sl" + (isuper + 1), + lay_dz, -dbref.thtilt(isuper / 2), Math.toRadians(90.0), + lay_dy, lay_dx0, lay_dx1, lay_skew, + lay_dy, lay_dx0, lay_dx1, lay_skew); + + superlayerVolume.setPosition(lcent.x, lcent.y, lcent.z); + + return superlayerVolume; + } + /////////////////////////////////////////////////// public Geant4Basic createLayer(int isuper, int ilayer) { Wire lw0 = new Wire(1, isuper, ilayer, 0); From dd9626120bf2d1fca1438335b104d49248f984bb Mon Sep 17 00:00:00 2001 From: Raffaella De Vita Date: Wed, 24 Apr 2024 18:43:31 -0400 Subject: [PATCH 196/201] fixed the thickness of the new superlayer volumes --- .../main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java index 64f320d4d..574999888 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java @@ -899,7 +899,7 @@ public Geant4Basic createSuperlayer(int isuper) { double lay_dy = Math.sqrt(Math.pow(midline.magnitude(), 2.0) - Math.pow(midline.dot(lw0.dir()), 2.0)) / 2.0; double lay_dx0 = lw0.length() / 2.0; double lay_dx1 = lw1.length() / 2.0; - double lay_dz = dbref.cellthickness(isuper) * dbref.wpdist(isuper) * (nsglayers -2) / 2.0 - microgap; + double lay_dz = (dbref.cellthickness(isuper)*dbref.nsenselayers(isuper)+1) * dbref.wpdist(isuper) / 2.0; double lay_skew = lw0.center().minus(lw1.center()).angle(lw1.dir()) - Math.toRadians(90.0); Vector3d lcent = lw0.center().plus(lw1.center()).dividedBy(2.0); From 8707d16d52d346a2ea5acb04045a0aa1a0fb1019 Mon Sep 17 00:00:00 2001 From: Raffaella De Vita Date: Tue, 14 May 2024 18:03:44 -0400 Subject: [PATCH 197/201] corrected bug in G4Trap dz not accounting for the 25 deg tilt, adjusted region volume thickness accordingly --- .../detector/geant4/v2/DCGeant4Factory.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java index 574999888..28e5782fa 100644 --- a/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java +++ b/common-tools/clas-jcsg/src/main/java/org/jlab/detector/geant4/v2/DCGeant4Factory.java @@ -581,7 +581,7 @@ public final class DCGeant4Factory extends Geant4Factory { private int nsgwires; private final double y_enlargement = 3.65; - private final double z_enlargement = -2.96; + private final double z_enlargement = -2.46; private final double microgap = 0.01; private final Wire[][][][] wires; @@ -889,20 +889,30 @@ public Geant4Basic createRegion(int isector, int iregion) { return regionVolume; } - /////////////////////////////////////////////////// + + /** + * Create GEANT4 superlayer volume: + * - from first to last guard wire in layer=0 to define y + * - from first to last guard wire plane in z + * @param isuper + * @return + */ public Geant4Basic createSuperlayer(int isuper) { int nsglayers = dbref.nsenselayers(isuper) + dbref.nguardlayers(isuper); - Wire lw0 = new Wire(1, isuper, 1, 0); - Wire lw1 = new Wire(1, isuper, nsglayers-2, nsgwires - 1); + Wire lw0 = new Wire(1, isuper, 0, 0); + Wire lw1 = new Wire(1, isuper, 0, nsgwires - 1); + Wire lw2 = new Wire(1, isuper, 2, 0); - Vector3d midline = lw1.mid().minus(lw0.mid()); - double lay_dy = Math.sqrt(Math.pow(midline.magnitude(), 2.0) - Math.pow(midline.dot(lw0.dir()), 2.0)) / 2.0; + Vector3d yline = lw1.mid().minus(lw0.mid()); + double lay_dy = Math.sqrt(Math.pow(yline.magnitude(), 2.0) - Math.pow(yline.dot(lw0.dir()), 2.0)) / 2.0; double lay_dx0 = lw0.length() / 2.0; double lay_dx1 = lw1.length() / 2.0; - double lay_dz = (dbref.cellthickness(isuper)*dbref.nsenselayers(isuper)+1) * dbref.wpdist(isuper) / 2.0; + double lay_dz = (dbref.cellthickness(isuper)*dbref.nsenselayers(isuper)+1) * dbref.wpdist(isuper)/Math.cos(dbref.thtilt(isuper/2))/ 2.0; double lay_skew = lw0.center().minus(lw1.center()).angle(lw1.dir()) - Math.toRadians(90.0); - Vector3d lcent = lw0.center().plus(lw1.center()).dividedBy(2.0); + Vector3d zline = lw2.mid().minus(lw0.mid()).normalized(); + Vector3d lcent = lw0.center().plus(lw1.center()).dividedBy(2.0).plus(zline.times(lay_dz)); + G4Trap superlayerVolume = new G4Trap("sl" + (isuper + 1), lay_dz, -dbref.thtilt(isuper / 2), Math.toRadians(90.0), lay_dy, lay_dx0, lay_dx1, lay_skew, From 786e8296c5ca764dad7493744b5d8a8b2a276640 Mon Sep 17 00:00:00 2001 From: Raffaella De Vita Date: Mon, 4 Nov 2024 11:31:48 -0500 Subject: [PATCH 198/201] replaced AHDC::tdc definition with AHDC::adc --- etc/bankdefs/hipo4/data.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/etc/bankdefs/hipo4/data.json b/etc/bankdefs/hipo4/data.json index f203f9757..c65f5c948 100644 --- a/etc/bankdefs/hipo4/data.json +++ b/etc/bankdefs/hipo4/data.json @@ -1,15 +1,17 @@ [ { - "name" : "AHDC::tdc", + "name" : "AHDC::adc", "group": 22400, - "item" : 12, - "info": "TDC bank for the ALERT Wire Chamber", + "item" : 11, + "info": "ADC bank for the ALERT Wire Chamber", "entries":[ { "name":"sector" , "type":"B", "info":"sector 1"}, { "name":"layer" , "type":"B", "info":"layer 1-5"}, { "name":"component" , "type":"S", "info":"wire number"}, { "name":"order" , "type":"B", "info":"Stereo angle 0 - in, 1 - out"}, - { "name":"TDC" , "type":"I", "info":"TDC value"} + { "name":"ADC" , "type":"I", "info":"ADC maximum"}, + { "name":"time" , "type":"F", "info":"time from pulse fit"}, + { "name":"ped" , "type":"S", "info":"pedestal from pulse analysis"} ] }, { From 387ae54d9f62127bd026e9f1975708a93c4240a1 Mon Sep 17 00:00:00 2001 From: Raffaella De Vita Date: Tue, 5 Nov 2024 16:04:19 -0500 Subject: [PATCH 199/201] version bump --- common-tools/clara-io/pom.xml | 4 ++-- common-tools/clas-analysis/pom.xml | 20 ++++++++--------- common-tools/clas-detector/pom.xml | 10 ++++----- common-tools/clas-geometry/pom.xml | 4 ++-- common-tools/clas-io/pom.xml | 8 +++---- common-tools/clas-jcsg/pom.xml | 8 +++---- common-tools/clas-logging/pom.xml | 4 ++-- common-tools/clas-math/pom.xml | 4 ++-- common-tools/clas-physics/pom.xml | 4 ++-- common-tools/clas-reco/pom.xml | 16 +++++++------- common-tools/clas-tracking/pom.xml | 6 +++--- common-tools/clas-utils/pom.xml | 6 +++--- common-tools/cnuphys/magfield/pom.xml | 2 +- common-tools/cnuphys/swimmer/pom.xml | 2 +- common-tools/coat-lib/deployDistribution.sh | 2 +- common-tools/coat-lib/pom.xml | 24 ++++++++++----------- common-tools/parent/pom.xml | 2 +- common-tools/pom.xml | 4 ++-- common-tools/swim-tools/pom.xml | 6 +++--- parent/pom.xml | 2 +- pom.xml | 4 ++-- reconstruction/alert/pom.xml | 10 ++++----- reconstruction/band/pom.xml | 4 ++-- reconstruction/bg/pom.xml | 8 +++---- reconstruction/cnd/pom.xml | 2 +- reconstruction/cvt/pom.xml | 6 +++--- reconstruction/dc/pom.xml | 14 ++++++------ reconstruction/eb/pom.xml | 10 ++++----- reconstruction/ec/pom.xml | 6 +++--- reconstruction/fmt/pom.xml | 6 +++--- reconstruction/ft/pom.xml | 4 ++-- reconstruction/htcc/pom.xml | 4 ++-- reconstruction/ltcc/pom.xml | 4 ++-- reconstruction/mc/pom.xml | 4 ++-- reconstruction/mltn/pom.xml | 6 +++--- reconstruction/pom.xml | 4 ++-- reconstruction/postproc/pom.xml | 8 +++---- reconstruction/raster/pom.xml | 4 ++-- reconstruction/rich/pom.xml | 6 +++--- reconstruction/rtpc/pom.xml | 6 +++--- reconstruction/swaps/pom.xml | 8 +++---- reconstruction/tof/pom.xml | 4 ++-- reconstruction/urwell/pom.xml | 6 +++--- reconstruction/vtx/pom.xml | 6 +++--- 44 files changed, 141 insertions(+), 141 deletions(-) diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index e29d5ea0f..d0a4d8ab2 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clara-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml index 57596921c..7c713e877 100644 --- a/common-tools/clas-analysis/pom.xml +++ b/common-tools/clas-analysis/pom.xml @@ -3,63 +3,63 @@ 4.0.0 org.jlab.clas clas-analysis - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-utils - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-physics - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-geometry - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas swim-tools - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-detector - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml index b40d2272c..7a87270cb 100644 --- a/common-tools/clas-detector/pom.xml +++ b/common-tools/clas-detector/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-detector - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-utils - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -29,13 +29,13 @@ org.jlab.clas clas-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-geometry - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml index 289469a1f..3beadac4d 100644 --- a/common-tools/clas-geometry/pom.xml +++ b/common-tools/clas-geometry/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-geometry - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml index e70d61847..ab20d16ba 100644 --- a/common-tools/clas-io/pom.xml +++ b/common-tools/clas-io/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -90,13 +90,13 @@ org.jlab.clas clas-utils - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-logging - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT compile diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml index dff1fc53d..0d1b3d110 100644 --- a/common-tools/clas-jcsg/pom.xml +++ b/common-tools/clas-jcsg/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-jcsg - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -27,12 +27,12 @@ org.jlab.clas clas-geometry - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-detector - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT java3d diff --git a/common-tools/clas-logging/pom.xml b/common-tools/clas-logging/pom.xml index e36509411..67776298e 100644 --- a/common-tools/clas-logging/pom.xml +++ b/common-tools/clas-logging/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-logging - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml index 6d7023817..50e52e562 100644 --- a/common-tools/clas-math/pom.xml +++ b/common-tools/clas-math/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-math - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml index eb94b47e8..99a1698b5 100644 --- a/common-tools/clas-physics/pom.xml +++ b/common-tools/clas-physics/pom.xml @@ -4,14 +4,14 @@ org.jlab.clas clas-physics - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml index 047eadc9a..f298488d8 100644 --- a/common-tools/clas-reco/pom.xml +++ b/common-tools/clas-reco/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -42,37 +42,37 @@ org.jlab.clas clas-math - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-logging - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-physics - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-utils - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-detector - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml index b6e0ad4b9..1ee811abf 100644 --- a/common-tools/clas-tracking/pom.xml +++ b/common-tools/clas-tracking/pom.xml @@ -3,14 +3,14 @@ 4.0.0 org.jlab.clas clas-tracking - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -22,7 +22,7 @@ org.jlab.clas swim-tools - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml index c68e40f86..d41483e1a 100644 --- a/common-tools/clas-utils/pom.xml +++ b/common-tools/clas-utils/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas clas-utils - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-logging - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.apache.commons diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml index 9f1d55e96..58718633e 100644 --- a/common-tools/cnuphys/magfield/pom.xml +++ b/common-tools/cnuphys/magfield/pom.xml @@ -23,7 +23,7 @@ org.jlab.clas clas-math - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml index d3783793d..7fd6c127f 100644 --- a/common-tools/cnuphys/swimmer/pom.xml +++ b/common-tools/cnuphys/swimmer/pom.xml @@ -35,7 +35,7 @@ org.jlab.clas clas-math - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/coat-lib/deployDistribution.sh b/common-tools/coat-lib/deployDistribution.sh index b740fcaff..0ca91a3b4 100755 --- a/common-tools/coat-lib/deployDistribution.sh +++ b/common-tools/coat-lib/deployDistribution.sh @@ -8,7 +8,7 @@ cd `dirname $0` # Script is exporting existing Jar files to repository #------------------------------------------------------------------------------------------------- -VERSION=11.0.4 +VERSION=11.0.5 mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -Dfile=target/coat-libs-${VERSION}-SNAPSHOT.jar \ diff --git a/common-tools/coat-lib/pom.xml b/common-tools/coat-lib/pom.xml index 959852b07..422e63a2b 100644 --- a/common-tools/coat-lib/pom.xml +++ b/common-tools/coat-lib/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jlab.clas coat-libs - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT pom @@ -94,67 +94,67 @@ org.jlab.clas clas-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clara-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-utils - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-detector - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-analysis - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-geometry - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-physics - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas swim-tools - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-tracking - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/parent/pom.xml b/common-tools/parent/pom.xml index 26dc50319..0d14c4308 100644 --- a/common-tools/parent/pom.xml +++ b/common-tools/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas common-tools - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT pom diff --git a/common-tools/pom.xml b/common-tools/pom.xml index 053ccee55..866f2fd9e 100644 --- a/common-tools/pom.xml +++ b/common-tools/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas common-tools - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml index 3a8ea68aa..f424d1f52 100644 --- a/common-tools/swim-tools/pom.xml +++ b/common-tools/swim-tools/pom.xml @@ -3,21 +3,21 @@ 4.0.0 org.jlab.clas swim-tools - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/parent/pom.xml b/parent/pom.xml index 8c46fd9ad..9aa80916b 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -3,7 +3,7 @@ org.jlab.clas clas12rec - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index d39963e73..1933d67ca 100644 --- a/pom.xml +++ b/pom.xml @@ -2,14 +2,14 @@ 4.0.0 org.jlab.clas clas12 - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT pom org.jlab.clas clas12rec parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml index 0bcc507a4..4d7f9502a 100644 --- a/reconstruction/alert/pom.xml +++ b/reconstruction/alert/pom.xml @@ -13,31 +13,31 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT compile org.jlab.clas clas-tracking - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT compile org.jlab.clas clas-geometry - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT compile diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml index cd3c85c5c..0633db07f 100644 --- a/reconstruction/band/pom.xml +++ b/reconstruction/band/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/bg/pom.xml b/reconstruction/bg/pom.xml index 8c3535d63..6b7a60284 100644 --- a/reconstruction/bg/pom.xml +++ b/reconstruction/bg/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-analysis - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml index 56994ac36..5b0b5fd0e 100644 --- a/reconstruction/cnd/pom.xml +++ b/reconstruction/cnd/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml index f40177855..42d2bd64f 100644 --- a/reconstruction/cvt/pom.xml +++ b/reconstruction/cvt/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -47,7 +47,7 @@ org.jlab.clas clas-tracking - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/dc/pom.xml b/reconstruction/dc/pom.xml index f80d921a6..fa3624cf5 100644 --- a/reconstruction/dc/pom.xml +++ b/reconstruction/dc/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -28,25 +28,25 @@ org.jlab.clas clas-tracking - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-analysis - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -75,13 +75,13 @@ org.jlab.clas swim-tools - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-math - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml index e4d112513..34efd07dd 100644 --- a/reconstruction/eb/pom.xml +++ b/reconstruction/eb/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,25 +21,25 @@ org.jlab.clas clas-utils - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-analysis - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml index b9132a08f..8e2b2286a 100644 --- a/reconstruction/ec/pom.xml +++ b/reconstruction/ec/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-analysis - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml index 322c20994..d665f07c3 100644 --- a/reconstruction/fmt/pom.xml +++ b/reconstruction/fmt/pom.xml @@ -15,21 +15,21 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas swim-tools - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml index 42552e99e..6964490ee 100644 --- a/reconstruction/ft/pom.xml +++ b/reconstruction/ft/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml index 72cedbc62..2bc7825ca 100644 --- a/reconstruction/htcc/pom.xml +++ b/reconstruction/htcc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml index 4fbde59f9..3938f881e 100644 --- a/reconstruction/ltcc/pom.xml +++ b/reconstruction/ltcc/pom.xml @@ -13,14 +13,14 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml index b182b6227..bc9aaa2e8 100644 --- a/reconstruction/mc/pom.xml +++ b/reconstruction/mc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml index e6de566ed..1e764759b 100644 --- a/reconstruction/mltn/pom.xml +++ b/reconstruction/mltn/pom.xml @@ -14,7 +14,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -34,13 +34,13 @@ org.jlab.clas clas-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml index 6a9e3df8f..7f4f9f310 100644 --- a/reconstruction/pom.xml +++ b/reconstruction/pom.xml @@ -3,14 +3,14 @@ org.jlab.clas reconstruction - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT pom org.jlab.clas clas12rec ../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/postproc/pom.xml b/reconstruction/postproc/pom.xml index 2d32f9003..845149f71 100644 --- a/reconstruction/postproc/pom.xml +++ b/reconstruction/postproc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-analysis - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml index f6aed6437..33823fff5 100644 --- a/reconstruction/raster/pom.xml +++ b/reconstruction/raster/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml index 9f3881497..dc59cee98 100644 --- a/reconstruction/rich/pom.xml +++ b/reconstruction/rich/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-jcsg - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml index f336b48e4..3103d0cd9 100644 --- a/reconstruction/rtpc/pom.xml +++ b/reconstruction/rtpc/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,12 +21,12 @@ org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-tracking - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT compile diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml index dce898136..b60d8143d 100644 --- a/reconstruction/swaps/pom.xml +++ b/reconstruction/swaps/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,19 +21,19 @@ org.jlab.clas clas-detector - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-io - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-reco - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml index eba23cb3c..66030ce60 100644 --- a/reconstruction/tof/pom.xml +++ b/reconstruction/tof/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,7 +21,7 @@ org.jlab.clas clas-jcsg - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/urwell/pom.xml b/reconstruction/urwell/pom.xml index 8ee158888..b489a0320 100644 --- a/reconstruction/urwell/pom.xml +++ b/reconstruction/urwell/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -21,13 +21,13 @@ org.jlab.clas clas-detector - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT org.jlab.clas clas-analysis - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml index b6a8eb737..7abb20b21 100644 --- a/reconstruction/vtx/pom.xml +++ b/reconstruction/vtx/pom.xml @@ -13,7 +13,7 @@ org.jlab.clas clas12rec ../../parent/pom.xml - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT @@ -33,13 +33,13 @@ org.jlab.clas swim-tools - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar org.jlab.clas clas-tracking - 11.0.4-SNAPSHOT + 11.0.5-SNAPSHOT jar From d1f48d3ea781b533cdc33d006ebbec72017fe648 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 07:45:10 +0000 Subject: [PATCH 200/201] build(deps): bump com.github.spotbugs:spotbugs-maven-plugin Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.6.5 to 4.8.6.6. - [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases) - [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.6.5...spotbugs-maven-plugin-4.8.6.6) --- updated-dependencies: - dependency-name: com.github.spotbugs:spotbugs-maven-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- common-tools/cnuphys/parent/pom.xml | 2 +- parent/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/cnuphys/parent/pom.xml b/common-tools/cnuphys/parent/pom.xml index cd9c88c77..9948e6fdb 100644 --- a/common-tools/cnuphys/parent/pom.xml +++ b/common-tools/cnuphys/parent/pom.xml @@ -38,7 +38,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.6.5 + 4.8.6.6 spotbugs-exclude.xml diff --git a/parent/pom.xml b/parent/pom.xml index 9aa80916b..468305b11 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -62,7 +62,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.6.5 + 4.8.6.6 spotbugs-exclude.xml From 8e265ae1fc918d45399b759022adb5d19dc44c08 Mon Sep 17 00:00:00 2001 From: Christopher Dilks Date: Tue, 19 Nov 2024 12:31:48 -0500 Subject: [PATCH 201/201] feat: merge a set of HIPO files to a smaller set This tool merges a set of input HIPO files to a set of output HIPO files, where you may control the number of input files per output file; for example, use this tool if you have 1000 small HIPO files but would rather have 10 large HIPO files. --- bin/hipo-multi-merge | 107 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100755 bin/hipo-multi-merge diff --git a/bin/hipo-multi-merge b/bin/hipo-multi-merge new file mode 100755 index 000000000..5dcbacea8 --- /dev/null +++ b/bin/hipo-multi-merge @@ -0,0 +1,107 @@ +#!/usr/bin/env ruby + +require 'optparse' +require 'ostruct' +require 'fileutils' + +def print_log(name, val) + puts name.rjust(30) + " = #{val}" +end + +# user options +@args = OpenStruct.new +@args.inputs = nil +@args.output_dir = nil +@args.prefix = nil +@args.num_merge = nil +@args.use_batch = false +@args.dry_run = false +OptionParser.new do |o| + o.banner = ''' + This tool merges a set of input HIPO files to a set of output HIPO files, + where you may control the number of input files per output file; for example, + use this tool if you have 1000 small HIPO files but would rather have 10 + large HIPO files. + ''' + o.separator "USAGE: #{$0} [OPTIONS]..." + o.separator '' + o.separator 'REQUIRED OPTIONS:' + o.on('-i', '--input INPUTS', 'input directory or file glob;', 'surround file glob in quotes') { |a| @args.inputs = a } + o.on('-o', '--output OUTPUT_DIR', 'output directory') { |a| @args.output_dir = a } + o.on('-p', '--prefix OUTPUT_PREFIX', 'output filename prefix; names will be:', ' [OUTPUT_DIR]/[OUTPUT_PREFIX]_#####.hipo') { |a| @args.prefix = a } + o.on('-n', '--num NUM_FILES', 'number of files per output merged file') { |a| @args.num_merge = a.to_i } + o.separator '' + o.separator 'OPTIONAL OPTIONS:' + o.on('-b', '--batch', 'submit jobs to Slurm', '(default is sequential jobs)') { |a| @args.use_batch = true } + o.on('-d', '--dry-run', 'just print what would be done') { |a| @args.dry_run = true } + o.on_tail('-h', '--help', 'show this message') do + puts o + exit + end +end.parse! ARGV.empty? ? ['--help'] : ARGV + +# check required options +if [@args.inputs, @args.output_dir, @args.prefix, @args.num_merge].include? nil + raise 'missing required option(s;) re-run with "--help" for guidance.' +end +raise 'option "--num" must be greater than zero' unless @args.num_merge > 0 + +# glob inputs +input_glob = File.expand_path @args.inputs +input_glob = File.join input_glob, "*.hipo" if File.directory? input_glob +print_log 'input glob', input_glob +print_log 'output dir', @args.output_dir +print_log 'output prefix', @args.prefix +print_log 'num files per output', @args.num_merge + +# chunks +input_files = Dir.glob input_glob +raise "no input files found with glob '#{input_glob}'" if input_files.empty? +input_chunks = input_files.each_slice(@args.num_merge).to_a +print_log 'num input files', input_files.size +print_log 'num output files', input_chunks.size +raise 'option "--num" >= num input files, therefore there is nothing to do' if input_chunks.size == 1 + +# build commands +puts "="*82 +merge_cmds = input_chunks.each_with_index.map do |input_chunk, chunk_num| + out_name = File.join @args.output_dir, "#{@args.prefix}_#{chunk_num.to_s.rjust(5, '0')}.hipo" + raise "output file #{out_name} already exists; cannot overwrite! delete it or choose another path/name" if File.exist? out_name + [ 'hipo-utils', '-merge', '-o', out_name, *input_chunk ].join ' ' +end + +# sbatch commands +if @args.use_batch + sbatch_args = { + 'job-name' => "hipo_multi_merge___#{@args.prefix}", + 'account' => 'clas12', + 'partition' => 'production', + 'mem-per-cpu' => 500, + 'time' => '1:00:00', + 'ntasks' => 1, + 'cpus-per-task' => 1, + }.map{ |opt, val| "--#{opt}=#{val.to_s}" } + exe_cmds = merge_cmds.each_with_index.map do |merge_cmd, job_num| + log_name = "/farm_out/%u/%x_#{job_num.to_s.rjust(5, '0')}" + [ + 'sbatch', + *sbatch_args, + "--output=#{log_name}.out", + "--error=#{log_name}.err", + "--wrap='#{merge_cmd}'", + ].join ' ' + end +else + exe_cmds = merge_cmds +end + +# execute +if @args.dry_run + puts 'THIS IS JUST A DRY RUN. Here are the commands which would be executed:' + puts "="*82 + puts "mkdir -p #{@args.output_dir}" + exe_cmds.each do |cmd| puts cmd end +else + FileUtils.mkdir_p @args.output_dir + exe_cmds.each do |cmd| system cmd end +end