Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions bin/run-clara
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ 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" ;;
g) memory_gb="-e $OPTARG" && echo "$memory_gb" | grep -q -E '^-e [0-9]+$' || error "-g must be an integer, GB of memory" ;;
m) merge=1 ;;
q) quiet=1 ;;
h) echo -e "\n$usage" && echo -e $info && exit 0 ;;
Expand All @@ -43,8 +42,9 @@ done
shift $((OPTIND-1))
inputs=$@

# Configure JVM -Xmx memory setting:
[ -z ${memory_gb+x} ] && memory_gb=$((threads+2))
# Configure JVM memory settings (overridedable via $JAVA_OPTS):
gb=$((threads<3?threads+2:2+threads-threads/4))
java_opts=-Xmx${gb}g

# Check configuration:
[ $# -lt 1 ] && error "Input data files are required"
Expand Down Expand Up @@ -76,11 +76,14 @@ done
[ $(cat $CLARA_USER_DATA/filelist.txt | wc -l) -gt 0 ] || error "Found no input files"

# Set some JVM options:
export JAVA_OPTS="$JAVA_OPTS -Xmx${memory_gb}g -XX:+IgnoreUnrecognizedVMOptions"
export JAVA_OPTS="$JAVA_OPTS -Djava.io.tmpdir=$CLARA_USER_DATA -Dorg.sqlite.tmpdir=$CLARA_USER_DATA"
JAVA_OPTS="$java_opts $JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions"
JAVA_OPTS="$JAVA_OPTS -Djava.io.tmpdir=$CLARA_USER_DATA -Dorg.sqlite.tmpdir=$CLARA_USER_DATA"

# Set verbosity:
[ -z ${quiet+x} ] && stub=fine || stub=info
export JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.config.file=$CLAS12DIR/etc/logging/$stub.properties"
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.config.file=$CLAS12DIR/etc/logging/$stub.properties"

export JAVA_OPTS

function get_host_ip() {
if command -v ip >/dev/null 2>&1
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
package org.jlab.clas.reco;

import java.util.ArrayList;
import org.jlab.clara.engine.EngineData;
import org.jlab.io.base.DataEvent;

/**
* A ReconstructionEngine that is a chain of ReconstructionEngines.
*
* @author baltzell
*/
public abstract class UberEngine extends ReconstructionEngine {

private final ArrayList<ReconstructionEngine> engines = new ArrayList<>();

public UberEngine(String name, String author, String version) {
super(name,author,version);
}

/**
* Add engines to the chain.
* @param e
*/
protected void add(ReconstructionEngine... e) {
for (int i=0; i<e.length; ++i) {
if (UberEngine.class.isInstance(e[i]))
throw new RuntimeException("UberEngine cannot contain an UberEngine.");
engines.add(e[i]);
}
}

@Override
public boolean processDataEvent(DataEvent event) {
throw new RuntimeException("UberEngine does not implement processDataEvent.");
}

/**
* Process one event through the chain of engines.
* @param event
*/
@Override
public final void filterEvent(DataEvent event) {
for (ReconstructionEngine e : engines)
e.filterEvent(event);
}

/**
* Run all engines' init methods.
* @return
*/
@Override
public final boolean init() {
boolean ret = true;
for (ReconstructionEngine e : engines)
if (!e.init()) ret = false;
return ret;
}

/**
* Run all engines' configure methods.
* @param ed
* @return
*/
@Override
public EngineData configure(EngineData ed) {
for (ReconstructionEngine e : engines) {
e.configure(ed);
}
return ed;
}

/**
* Run all engines' execute methods.
* @param ed
* @return
*/
@Override
public EngineData execute(EngineData ed) {
for (ReconstructionEngine e : engines)
ed = e.execute(ed);
return ed;
}
}
34 changes: 34 additions & 0 deletions etc/services/data-ai-uber.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
io-services:
reader:
class: org.jlab.io.clara.DecoderReader
name: DecoderReader
writer:
class: org.jlab.io.clara.DecoderWriter
name: DecoderWriter
services:
- class: org.jlab.service.uber.Uber$First
name: 1ST
- class: org.jlab.service.uber.Uber$ForwardTagger
name: FT
- class: org.jlab.service.uber.Uber$Central
name: CD
- class: org.jlab.service.uber.Uber$HitBased
name: HB
- class: org.jlab.service.uber.Uber$TimeBased
name: TB
- class: org.jlab.service.uber.Uber$Last
name: NTH
configuration:
global:
variation: rgd_fall2023
io-services:
writer:
schema_dir: dst
services:
1ST:
magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat
magfieldTorusMap: Full_torus_r251_phi181_z251_25Jan2021.dat
HB:
run: "6302"
mime-types:
- binary/data-hipo
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ public DCHBPostClusterAI() {
this.getBanks().init("HitBasedTrkg", "", "AI");
}

public DCHBPostClusterAI(String outputBankPrefix) {
super("DCHAI");
this.getBanks().init("HitBasedTrkg", "", outputBankPrefix);
}

@Override
public void setDropBanks() {
Expand Down
1 change: 1 addition & 0 deletions reconstruction/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
<module>postproc</module>
<module>recoil</module>
<module>calib</module>
<module>uber</module>
</modules>

<build>
Expand Down
114 changes: 114 additions & 0 deletions reconstruction/uber/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-uber</artifactId>
<version>13.4.0-SNAPSHOT</version>
<packaging>jar</packaging>

<parent>
<groupId>org.jlab.clas12</groupId>
<artifactId>reconstruction</artifactId>
<version>13.4.0-SNAPSHOT</version>
</parent>

<dependencies>
<dependency>
<groupId>org.jlab.clas</groupId>
<artifactId>clas-reco</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas</groupId>
<artifactId>swim-tools</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-dc</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-ec</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-tof</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-htcc</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-ltcc</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-ft</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-cnd</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-band</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-cvt</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-raster</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-vtx</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-calib</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-rtpc</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-rich</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-eb</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-mltn</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jlab.clas12.detector</groupId>
<artifactId>clas12detector-fmt</artifactId>
<version>13.4.0-SNAPSHOT</version>
</dependency>
</dependencies>

</project>
Loading