Skip to content

Commit 3697a0a

Browse files
committed
feat: range checks
1 parent be66472 commit 3697a0a

File tree

1 file changed

+39
-13
lines changed

1 file changed

+39
-13
lines changed

detectors/src/main/java/org/jlab/clas/timeline/util/Config.groovy

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,21 @@ import groovy.yaml.YamlSlurper
33

44
class Config {
55

6+
// instance variables -------------------------------------
7+
8+
// config file vars
69
private String configFileName
710
private File configFile
811
private Object configTree
912
private YamlSlurper slurper
1013

11-
private int runNum = 0
12-
private String runGroup = "unknown"
13-
private String runPeriod = "unknown"
14+
// run group and period
15+
private int runNum
16+
private Range<Integer> runNumRange
17+
private String runGroup
18+
private String runPeriod
1419

20+
// ------------------------------------------------------
1521

1622
/**
1723
* @param configFileName the configuration file name
@@ -41,6 +47,20 @@ class Config {
4147
checkNode("run group '$runGroupIt'", runGroupConfigTree, "runs")
4248
}
4349

50+
// initialize run period variables
51+
resetRunPeriod()
52+
53+
}
54+
55+
56+
/**
57+
* Reset the run period variables
58+
*/
59+
private void resetRunPeriod() {
60+
runNum = 0
61+
runNumRange = 0..0
62+
runGroup = "unknown"
63+
runPeriod = "unknown"
4464
}
4565

4666

@@ -49,17 +69,22 @@ class Config {
4969
* @param runNum the run number
5070
*/
5171
public void setRun(int runNum) {
52-
53-
// find the run group and run period
5472
this.runNum = runNum
5573
try {
74+
// if runNum is in the same run period as the previous call, do nothing
75+
if(runNumRange.contains(runNum)) return
76+
// reset run period variables
77+
resetRunPeriod()
78+
// search for the run period which contains this runNum
5679
def found = false
5780
configTree["run_groups"].find { runGroupIt, runGroupConfigTree ->
58-
runGroupConfigTree["runs"].find { runPeriodIt, runRange ->
59-
if(runNum >= runRange[0] && runNum <= runRange[1]) {
60-
runGroup = runGroupIt
61-
runPeriod = runPeriodIt
62-
found = true
81+
runGroupConfigTree["runs"].find { runPeriodIt, runNumRangeArr ->
82+
Range<Integer> runNumRangeIt = runNumRangeArr[0]..runNumRangeArr[1]
83+
if(runNumRangeIt.contains(runNum)) {
84+
runNumRange = runNumRangeIt
85+
runGroup = runGroupIt
86+
runPeriod = runPeriodIt
87+
found = true
6388
}
6489
return found
6590
}
@@ -71,7 +96,6 @@ class Config {
7196
ex.printStackTrace()
7297
System.exit(100)
7398
}
74-
7599
}
76100

77101

@@ -89,8 +113,10 @@ class Config {
89113
public void printConfig() {
90114
System.out.println """
91115
Configuration for run $runNum:
92-
Run Group: $runGroup
93-
Run Period: $runPeriod"""
116+
Run Group: $runGroup
117+
Run Period: $runPeriod
118+
Run Number Range: ${runNumRange.getFrom()} to ${runNumRange.getTo()}
119+
"""
94120
}
95121

96122
}

0 commit comments

Comments
 (0)