Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • build_cleanup
  • main
  • v1_obsoleted
  • mark_original_version
4 results

Target

Select target project
  • cherenkov/fadc_decoder
  • zwzhao/fadc_decoder
2 results
Select Git revision
  • master
  • patch-1
  • mark_original_version
3 results
Show changes

Commits on Source 91

Showing
with 999 additions and 2157 deletions
......@@ -31,3 +31,17 @@
*.exe
*.out
*.app
# build
build/*
.root_build_dir/*
__pycache__
# outputs
plots/*
*.dat.*
*.dat
*.root
*.csv
*.evio*
image: eicweb.phy.anl.gov:4567/containers/image_recipes/root_base:latest
#
stages:
- phase1
- phase2
docker:
stage: phase1
tags:
- eic0 docker
script:
- cd containers/docker
- make login
- make release-cached
singularity:
stage: phase2
tags:
- singularity
when: manual
script:
- cp containers/singularity/fadc_decoder.def .
- /bin/bash .gitlabci/setup.sh
- /bin/bash .gitlabci/build.sh fadc_decoder.def
- mkdir -p build
- cp fadc_decoder.sif build/.
- cp fadc_decoder.def build/.
# This is where you can save job artifacts
# https://docs.gitlab.com/ee/user/project/pipelines/job_artifacts.html
# You can specify the path to containers or the build folder to save.
# Don't forget to save your recipes too!
artifacts:
paths:
- build/fadc_decoder.sif
- build/fadc_decoder.def
cmake_minimum_required(VERSION 3.5)
PROJECT(Analyzer C CXX)
option(USE_EXTERNAL_JSON "Use an external JSON library" OFF)
option(USE_EXTERNAL_EVIO "Use an external EVIO library" OFF)
option(USE_EXTERNAL_ET "Use an external ET library" OFF)
add_compile_options(-O2)
include(cmake/os.cmake)
include(FindThreads)
# required packages
find_package(ROOT 6.0 REQUIRED CONFIG)
include(${ROOT_USE_FILE})
#----------------------------------------------------------------------------
# Install in GNU-style directory layout
include(GNUInstallDirs)
set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/${MAIN_PROJECT_NAME_LC})
#----------------------------------------------------------------------------
add_subdirectory(third_party)
add_subdirectory(decoder)
add_subdirectory(ssp)
add_subdirectory(src)
add_subdirectory(tools)
################################################################################
# Makefile for building the core library for PRad analysis #
################################################################################
# passed by command line
#LIB_OPTION = PRIMEX_METHOD, MULTI_THREAD
include ./general.mk
HANA_ROOT = third_party/analyzer-1.6.0
CONF_ROOT = third_party/prconf
SIMP_ROOT = third_party/simple
FFLAGS = -fPIC -cpp -ffixed-line-length-none
CXXFLAGS = -O2 -g -pipe -Wall -fPIC
CXXFLAGS += $(shell root-config --cflags)
INCPATH = -I. -Iinclude \
-I$(ROOTSYS)/include \
-I$(CONF_ROOT)/include \
-I$(HANA_ROOT)/src -I$(HANA_ROOT)/evio -I$(HANA_ROOT)/hana_decode \
-I$(SIMP_ROOT)
LIBS = -lpthread \
-L$(CONF_ROOT) -lprconf \
-L$(HANA_ROOT) -ldc -lHallA -levio \
-L$(SIMP_ROOT) -lsimple \
-L$(ROOTSYS)/lib -lCore -lRint -lRIO -lNet -lHist \
-lGraf -lGraf3d -lGpad -lTree -lPostscript -lMatrix \
-lPhysics -lMathCore -lThread -lGui -lSpectrum
####### Targets, add new objects here
SOURCE_DIR = src
BUILD_DIR = bin
SOURCES := $(shell find $(SOURCE_DIR) -name '*.cpp')
TARGETS := $(addprefix $(BUILD_DIR)/, $(SOURCES:$(SOURCE_DIR)/%.cpp=%))
####### Build rules
first: all
.PHONY: lib exe
all: lib exe
lib:
$(MAKE) -C $(HANA_ROOT) -f Makefile
$(MAKE) -C $(CONF_ROOT) -f Makefile
$(MAKE) -C $(SIMP_ROOT) -f Makefile
exe: $(TARGETS)
$(BUILD_DIR)/%: $(SOURCE_DIR)/%.cpp
$(CXX) $(CXXFLAGS) -o $@ $< $(INCPATH) $(LIBS)
####### Clean
clean:
$(DEL_FILE) $(TARGETS)
cleanall: clean
# $(MAKE) -C $(HANA_ROOT) -f Makefile clean
# $(MAKE) -C $(CONF_ROOT) -f Makefile clean
# $(MAKE) -C $(SIMP_ROOT) -f Makefile clean
####### Install
install: FORCE
uninstall: FORCE
FORCE:
#!/bin/python3
import os
import argparse
import fnmatch
from collections import OrderedDict
ANALYZE_BIN = 'build/src/analyze'
# get split number of raw data
def get_split_number(fname):
try:
return int(fname.split('.')[-1])
except:
return -1
# find data
def search_raw_data(dirname, pattern, nmax):
files = []
for f in os.listdir(dirname):
if fnmatch.fnmatch(f, pattern):
files.append(os.path.join(dirname, f))
if nmax > 0 and len(files) >= nmax:
break;
return sorted(files, key=get_split_number)
def analysis_pipeline(raw_data, proc_data, modules, layouts, **kwargs):
run = kwargs['run']
# format commands
commands = OrderedDict()
# analyze data
binary = ANALYZE_BIN
arguments = [
'--module=database/modules/{}_module.json'.format(modules.lower()),
'-r {res} -t {thres} -p {npeds} -f {flat}'.format(**kwargs),
]
commands['analyze'] = [
'{} {} {} {}'.format(binary, raw, proc, ' '.join(arguments))
for raw, proc in zip(raw_data, proc_data)
]
# draw raw event samples
binary = 'python3 scripts/draw_events.py'
samples_dir = 'plots/run{}/samples'.format(run)
arguments = [
'--plot-dir={}'.format(samples_dir),
'-r {res} -t {thres} -p {npeds} -f {flat}'.format(**kwargs),
]
commands['draw_samples'] = [
'{} {} {} {}'.format(binary, layout.upper(), proc_data[0], ' '.join(arguments))
for layout in layouts
]
# raw distributions
binary = 'python3 scripts/plot_dist.py'
json_file = 'database/{}_raw_dist.json'.format(modules.lower())
rawdist_dir = 'plots/run{}/raw'.format(run)
arguments = [
'--plot-dir={}'.format(rawdist_dir),
'--root-plots',
]
commands['raw_dist'] = [
'{} {} {} {}'.format(binary, proc_data[0], json_file, ' '.join(arguments))
]
# trigger timing cut
binary = 'python3 scripts/trigger_timing_cuts.py'
tcuts_json = os.path.join('database', 'run{}_timing.json'.format(run))
trg_data = os.path.join('processed_data', 'run{}_trg.root'.format(run))
tcuts_dir = 'plots/run{}/tcuts'.format(run)
arguments= [
'--files={}'.format(','.join(proc_data)),
'--snapshot={}'.format(trg_data),
'--plot-dir={}'.format(tcuts_dir),
'-b',
]
commands['trg_tcuts'] = [
'{} {} {} {}'.format(binary, modules.upper(), tcuts_json, ' '.join(arguments))
]
# signal timing cut
binary = 'python3 scripts/signal_timing_cuts.py'
tcuts_data = os.path.join('processed_data', 'run{}_tcuts.root'.format(run))
arguments= [
'--snapshot={}'.format(tcuts_data),
'--plot-dir={}'.format(tcuts_dir),
'-b',
]
commands['signal_tcuts'] = [
'{} {} {} {} {}'.format(binary, modules.upper(), trg_data, tcuts_json, ' '.join(arguments))
]
# signal sums
binary = 'python scripts/plot_sum.py'
res_dir = 'plots/run{}/results'.format(run)
arguments = [
'--plot-dir={}'.format(res_dir),
]
commands['signal_sum'] = [
'{} {} {} {}'.format(binary, modules.upper(), tcuts_data, ' '.join(arguments))
]
return commands, [res_dir, tcuts_dir, rawdist_dir, samples_dir]
# execute the script
if __name__ == '__main__':
owd = os.getcwd()
script_dir = os.path.dirname(os.path.realpath(__file__))
os.chdir(os.path.join(script_dir, '..'))
print('working directory is ' + os.getcwd())
signal_types = {
'LAPPD': ['CALORIMETER', 'LAPPD'],
'MAPMT': ['CALORIMETER', 'MAPMT_SUMS', 'MAPMT_QUADS'],
}
# argument parser
parser = argparse.ArgumentParser('analyze and post plots')
parser.add_argument('stype', help='signal type')
parser.add_argument('run', help='run number to analyze')
parser.add_argument('--post', action='store_true', help='make a post to the logbook for the analysis')
parser.add_argument('--raw-dir', dest='raw_dir', default='./raw_data', help='raw data directory')
parser.add_argument('--proc-dir', dest='proc_dir', default='./processed_data', help='processed data directory')
parser.add_argument('-n', '--nsplit', dest='nsplit', type=int, default=-1,
help='maximum number of split evio files')
parser.add_argument('-r', type=int, default=1, dest='res',
help='spectrum resolution for analyzer')
parser.add_argument('-t', type=float, default=10.0, dest='thres',
help='spectrum peak height threshold resolution for analyzer')
parser.add_argument('-p', type=int, default=10, dest='npeds',
help='number of samples to check pedestal')
parser.add_argument('-f', type=float, default=2.0, dest='flat',
help='upper limit of the pedestal error (flatness requirement)')
args = parser.parse_args()
if args.stype not in signal_types:
print('signal type must be in {}'.format(list(signal_types)))
quit()
# recover paths
for attr in ['raw_dir', 'proc_dir']:
setattr(args, attr, os.path.join(owd, getattr(args, attr)))
# search raw data files
raw_data = search_raw_data(args.raw_dir, 'vtpCerenkov{}.dat.*'.format(args.run), args.nsplit)
if not len(raw_data):
print('no data found!')
quit()
# match processed data files
proc_data = [os.path.join(args.proc_dir, 'run{}_{}.root'.format(args.run, i)) for i, _ in enumerate(raw_data)]
commands, plot_dirs = analysis_pipeline(raw_data, proc_data, args.stype, signal_types[args.stype], **vars(args))
steps = [
'analyze',
'draw_samples',
'raw_dist',
'trg_tcuts',
'signal_tcuts',
'signal_sum',
]
for step in steps:
print('STEP - {}'.format(step))
for command in commands[step]:
print(command)
if os.system(command) != 0:
print('Failed at STEP - {}'.format(step))
exit(-1)
# make a post of the results
if args.post:
binary = '/site/ace/certified/apps/bin/logentry'
if not os.path.exists(binary):
print('Cannot find executable for posting logentry, abort posting.')
quit()
body_temp = 'body_temp.txt.tmp'
body = '<pre>\n'\
'{} split data files \n'\
'resolution: -r {res}\n'\
'threshold: -t {thres}\n'\
'pedestal window: -p {npeds}\n'\
'pedestal flatness: -f {flat}\n'\
'</pre>'.format(len(raw_data), **vars(args))
arguments = [
'-t \"Analysis plots: Run {}, Split 0 - {}\"'.format(args.run, len(raw_data) - 1),
'-b {}'.format(body_temp),
'-g \"Analysis\"',
'-l \"SOLID\"',
'--html',
'--noqueue',
# '--nosubmit',
]
# find all plots
for plot_dir in plot_dirs:
for (dirpath, dirnames, filenames) in os.walk(plot_dir):
for fname in filenames:
arguments.append('-a {}'.format(os.path.join(plot_dir, fname)))
os.system('echo \"{}\" > {}'.format(body, body_temp))
command = '{} {}'.format(binary, ' '.join(arguments))
print(command)
os.system(command)
## Set correct rpath on MacOs
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(CMAKE_MACOSX_RPATH 1)
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
message("Setting RPath to ${CMAKE_INSTALL_RPATH}")
endif()
# configuration of DAQ modules
# Module { crate, slot, mod_type, Channels { id, name, ch_type } }
Module
{
crate = 1
slot = 3
type = FADC250
Channels
{
0, Cer14_5, Signal
1, Cer13_4, Signal
2, Cer13_3, Signal
3, Cer13_2, Signal
4, Cer13_1, Signal
5, Cer13_5, Signal
6, Cer12_4, Signal
7, Cer12_3, Signal
8, Cer12_2, Signal
9, Cer12_1, Signal
10, Cer12_5, Signal
11, Cer11_4, Signal
12, Cer11_3, Signal
13, Cer11_2, Signal
14, Cer11_1, Signal
15, Cer11_5, Signal
}
}
Module
{
crate = 1
slot = 4
type = FADC250
Channels
{
0, Cer33_1, Signal
1, Cer33_5, Signal
2, Cer23_4, Signal
3, Cer23_3, Signal
4, Cer23_2, Signal
5, Cer23_1, Signal
6, Cer23_5, Signal
7, Cer24_4, Signal
8, Cer24_3, Signal
9, Cer24_2, Signal
10, Cer24_1, Signal
11, Cer24_5, Signal
12, Cer14_4, Signal
13, Cer14_3, Signal
14, Cer14_2, Signal
15, Cer14_1, Signal
}
}
Module
{
crate = 1
slot = 5
type = FADC250
Channels
{
1, Cer43_1, Signal
2, Cer43_5, Signal
3, Cer44_4, Signal
4, Cer44_3, Signal
5, Cer44_2, Signal
6, Cer44_1, Signal
7, Cer44_5, Signal
8, Cer34_4, Signal
9, Cer34_3, Signal
10, Cer34_2, Signal
11, Cer34_1, Signal
12, Cer34_5, Signal
13, Cer33_4, Signal
14, Cer33_3, Signal
15, Cer33_2, Signal
}
}
Module
{
crate = 1
slot = 6
type = FADC250
Channels
{
0, Cer31_3, Signal
1, Cer31_2, Signal
2, Cer31_1, Signal
3, Cer31_5, Signal
4, Cer41_4, Signal
5, Cer41_3, Signal
6, Cer41_2, Signal
7, Cer41_1, Signal
8, Cer41_5, Signal
9, Cer42_4, Signal
10, Cer42_3, Signal
11, Cer42_2, Signal
12, Cer42_1, Signal
13, Cer42_5, Signal
14, Cer43_3, Signal
15, Cer43_2, Signal
}
}
Module
{
crate = 1
slot = 7
type = FADC250
Channels
{
0, C7_4, Trigger
1, C7_3, Trigger
2, C7_2, Trigger
3, C7_1, Trigger
4, C6_4, Trigger
5, C6_3, Trigger
6, C6_2, Trigger
7, C6_1, Trigger
8, C5_4, Trigger
9, C5_3, Trigger
10, C5_2, Trigger
11, C5_1, Trigger
12, C4, Trigger
13, C3, Trigger
14, C2, Trigger
15, C1, Trigger
}
}
Module
{
crate = 1
slot = 8
type = FADC250
Channels
{
0, Cer22_1, Signal
1, Cer22_5, Signal
2, Cer32_4, Signal
3, Cer32_3, Signal
4, Cer32_2, Signal
5, Cer32_1, Signal
6, Cer32_5, Signal
7, Cer31_4, Signal
8, C9_4, Trigger
9, C9_3, Trigger
10, C9_2, Trigger
11, C9_1, Trigger
12, C8_4, Trigger
13, C8_3, Trigger
14, C8_2, Trigger
15, C8_1, Trigger
}
}
Module
{
crate = 1
slot = 9
type = FADC250
Channels
{
0, Cer43_4, Signal
2, Cer21_4, Signal
3, Cer21_3, Signal
4, Cer21_2, Signal
5, Cer21_1, Signal
6, Cer21_5, Signal
7, Cer22_4, Signal
8, Cer22_3, Signal
9, Cer22_2, Signal
10, S2_11, Trigger
11, S2_10, Trigger
12, S2_9, Trigger
13, S2_8, Trigger
14, S2_7, Trigger
15, S2_6, Trigger
}
}
Module
{
crate = 1
slot = 10
type = FADC250
Channels
{
0, S2_5, Trigger
1, S2_4, Trigger
2, S2_3, Trigger
3, S2_2, Trigger
4, S2_1, Trigger
5, S1_11, Trigger
6, S1_10, Trigger
7, S1_9, Trigger
8, S1_8, Trigger
9, S1_7, Trigger
10, S1_6, Trigger
11, S1_5, Trigger
12, S1_4, Trigger
13, S1_3, Trigger
14, S1_2, Trigger
15, S1_1, Trigger
}
}
# configuration of DAQ modules
# Module { crate, slot, mod_type, Channels { id, name, ch_type } }
Module
{
crate = 1
slot = 3
type = FADC250
Channels
{
0, Cer14_5, Signal
1, Cer13_4, Signal
2, Cer13_3, Signal
3, Cer13_2, Signal
4, Cer13_1, Signal
5, Cer13_5, Signal
6, Cer12_4, Signal
7, Cer12_3, Signal
8, Cer12_2, Signal
9, Cer12_1, Signal
10, Cer12_5, Signal
11, Cer11_4, Signal
12, Cer11_3, Signal
13, Cer11_2, Signal
14, Cer11_1, Signal
15, Cer11_5, Signal
}
}
Module
{
crate = 1
slot = 4
type = FADC250
Channels
{
0, Cer33_1, Signal
1, Cer33_5, Signal
2, Cer23_4, Signal
3, Cer23_3, Signal
4, Cer23_2, Signal
5, Cer23_1, Signal
6, Cer23_5, Signal
7, Cer24_4, Signal
8, Cer24_3, Signal
9, Cer24_2, Signal
10, Cer24_1, Signal
11, Cer24_5, Signal
12, Cer14_4, Signal
13, Cer14_3, Signal
14, Cer14_2, Signal
15, Cer14_1, Signal
}
}
Module
{
crate = 1
slot = 5
type = FADC250
Channels
{
0, Cer43_2, Signal
1, Cer43_1, Signal
2, Cer43_5, Signal
3, Cer44_4, Signal
4, Cer44_3, Signal
5, Cer44_2, Signal
6, Cer44_1, Signal
7, Cer44_5, Signal
8, Cer34_4, Signal
9, Cer34_3, Signal
10, Cer34_2, Signal
11, Cer34_1, Signal
12, Cer34_5, Signal
13, Cer33_4, Signal
14, Cer33_3, Signal
15, Cer33_2, Signal
}
}
Module
{
crate = 1
slot = 6
type = FADC250
Channels
{
0, Cer31_3, Signal
1, Cer31_2, Signal
2, Cer31_1, Signal
3, Cer31_5, Signal
4, Cer41_4, Signal
5, Cer41_3, Signal
6, Cer41_2, Signal
7, Cer41_1, Signal
8, Cer41_5, Signal
9, Cer42_4, Signal
10, Cer42_3, Signal
11, Cer42_2, Signal
12, Cer42_1, Signal
13, Cer42_5, Signal
14, Cer43_4, Signal
15, Cer43_3, Signal
}
}
Module
{
crate = 1
slot = 7
type = FADC250
Channels
{
0, C7_4, Trigger
1, C7_3, Trigger
2, C7_2, Trigger
3, C7_1, Trigger
4, C6_4, Trigger
5, C6_3, Trigger
6, C6_2, Trigger
7, C6_1, Trigger
8, C5_4, Trigger
9, C5_3, Trigger
10, C5_2, Trigger
11, C5_1, Trigger
12, C4, Trigger
13, C3, Trigger
14, C2, Trigger
15, C1, Trigger
}
}
Module
{
crate = 1
slot = 8
type = FADC250
Channels
{
0, Cer22_1, Signal
1, Cer22_5, Signal
2, Cer32_4, Signal
3, Cer32_3, Signal
4, Cer32_2, Signal
5, Cer32_1, Signal
6, Cer32_5, Signal
7, Cer31_4, Signal
8, C9_4, Trigger
9, C9_3, Trigger
10, C9_2, Trigger
11, C9_1, Trigger
12, C8_4, Trigger
13, C8_3, Trigger
14, C8_2, Trigger
15, C8_1, Trigger
}
}
Module
{
crate = 1
slot = 9
type = FADC250
Channels
{
2, Cer21_4, Signal
3, Cer21_3, Signal
4, Cer21_2, Signal
5, Cer21_1, Signal
6, Cer21_5, Signal
7, Cer22_4, Signal
8, Cer22_3, Signal
9, Cer22_2, Signal
10, S2_11, Trigger
11, S2_10, Trigger
12, S2_9, Trigger
13, S2_8, Trigger
14, S2_7, Trigger
15, S2_6, Trigger
}
}
Module
{
crate = 1
slot = 10
type = FADC250
Channels
{
0, S2_5, Trigger
1, S2_4, Trigger
2, S2_3, Trigger
3, S2_2, Trigger
4, S2_1, Trigger
5, S1_11, Trigger
6, S1_10, Trigger
7, S1_9, Trigger
8, S1_8, Trigger
9, S1_7, Trigger
10, S1_6, Trigger
11, S1_5, Trigger
12, S1_4, Trigger
13, S1_3, Trigger
14, S1_2, Trigger
15, S1_1, Trigger
}
}
{
"module_1_10": {
"channels": [
{
"channel": 0,
"name": "S2_5",
"type": "Trigger"
},
{
"channel": 1,
"name": "S2_4",
"type": "Trigger"
},
{
"channel": 2,
"name": "S2_3",
"type": "Trigger"
},
{
"channel": 3,
"name": "S2_2",
"type": "Trigger"
},
{
"channel": 4,
"name": "S2_1",
"type": "Trigger"
},
{
"channel": 5,
"name": "S1_11",
"type": "Trigger"
},
{
"channel": 6,
"name": "S1_10",
"type": "Trigger"
},
{
"channel": 7,
"name": "S1_9",
"type": "Trigger"
},
{
"channel": 8,
"name": "S1_8",
"type": "Trigger"
},
{
"channel": 9,
"name": "S1_7",
"type": "Trigger"
},
{
"channel": 10,
"name": "S1_6",
"type": "Trigger"
},
{
"channel": 11,
"name": "S1_5",
"type": "Trigger"
},
{
"channel": 12,
"name": "S1_4",
"type": "Trigger"
},
{
"channel": 13,
"name": "S1_3",
"type": "Trigger"
},
{
"channel": 14,
"name": "S1_2",
"type": "Trigger"
},
{
"channel": 15,
"name": "S1_1",
"type": "Trigger"
}
],
"crate": 1,
"slot": 10,
"type": "FADC250"
},
"module_1_3": {
"channels": [
{
"channel": 0,
"name": "Cer14_5",
"type": "Signal"
},
{
"channel": 1,
"name": "Cer13_4",
"type": "Signal"
},
{
"channel": 2,
"name": "Cer13_3",
"type": "Signal"
},
{
"channel": 3,
"name": "Cer13_2",
"type": "Signal"
},
{
"channel": 4,
"name": "Cer13_1",
"type": "Signal"
},
{
"channel": 5,
"name": "Cer13_5",
"type": "Signal"
},
{
"channel": 6,
"name": "Cer12_4",
"type": "Signal"
},
{
"channel": 7,
"name": "Cer12_3",
"type": "Signal"
},
{
"channel": 8,
"name": "Cer12_2",
"type": "Signal"
},
{
"channel": 9,
"name": "Cer12_1",
"type": "Signal"
},
{
"channel": 10,
"name": "Cer12_5",
"type": "Signal"
},
{
"channel": 11,
"name": "Cer11_4",
"type": "Signal"
},
{
"channel": 12,
"name": "Cer11_3",
"type": "Signal"
},
{
"channel": 13,
"name": "Cer11_2",
"type": "Signal"
},
{
"channel": 14,
"name": "Cer11_1",
"type": "Signal"
},
{
"channel": 15,
"name": "Cer11_5",
"type": "Signal"
}
],
"crate": 1,
"slot": 3,
"type": "FADC250"
},
"module_1_4": {
"channels": [
{
"channel": 0,
"name": "Cer33_1",
"type": "Signal"
},
{
"channel": 1,
"name": "Cer33_5",
"type": "Signal"
},
{
"channel": 2,
"name": "Cer23_4",
"type": "Signal"
},
{
"channel": 3,
"name": "Cer23_3",
"type": "Signal"
},
{
"channel": 4,
"name": "Cer23_2",
"type": "Signal"
},
{
"channel": 5,
"name": "Cer23_1",
"type": "Signal"
},
{
"channel": 6,
"name": "Cer23_5",
"type": "Signal"
},
{
"channel": 7,
"name": "Cer24_4",
"type": "Signal"
},
{
"channel": 8,
"name": "Cer24_3",
"type": "Signal"
},
{
"channel": 9,
"name": "Cer24_2",
"type": "Signal"
},
{
"channel": 10,
"name": "Cer24_1",
"type": "Signal"
},
{
"channel": 11,
"name": "Cer24_5",
"type": "Signal"
},
{
"channel": 12,
"name": "Cer14_4",
"type": "Signal"
},
{
"channel": 13,
"name": "Cer14_3",
"type": "Signal"
},
{
"channel": 14,
"name": "Cer14_2",
"type": "Signal"
},
{
"channel": 15,
"name": "Cer14_1",
"type": "Signal"
}
],
"crate": 1,
"slot": 4,
"type": "FADC250"
},
"module_1_5": {
"channels": [
{
"channel": 1,
"name": "Cer43_1",
"type": "Signal"
},
{
"channel": 2,
"name": "Cer43_5",
"type": "Signal"
},
{
"channel": 3,
"name": "Cer44_4",
"type": "Signal"
},
{
"channel": 4,
"name": "Cer44_3",
"type": "Signal"
},
{
"channel": 5,
"name": "Cer44_2",
"type": "Signal"
},
{
"channel": 6,
"name": "Cer44_1",
"type": "Signal"
},
{
"channel": 7,
"name": "Cer44_5",
"type": "Signal"
},
{
"channel": 8,
"name": "Cer34_4",
"type": "Signal"
},
{
"channel": 9,
"name": "Cer34_3",
"type": "Signal"
},
{
"channel": 10,
"name": "Cer34_2",
"type": "Signal"
},
{
"channel": 11,
"name": "Cer34_1",
"type": "Signal"
},
{
"channel": 12,
"name": "Cer34_5",
"type": "Signal"
},
{
"channel": 13,
"name": "Cer33_4",
"type": "Signal"
},
{
"channel": 14,
"name": "Cer33_3",
"type": "Signal"
},
{
"channel": 15,
"name": "Cer33_2",
"type": "Signal"
}
],
"crate": 1,
"slot": 5,
"type": "FADC250"
},
"module_1_6": {
"channels": [
{
"channel": 0,
"name": "Cer31_3",
"type": "Signal"
},
{
"channel": 1,
"name": "Cer31_2",
"type": "Signal"
},
{
"channel": 2,
"name": "Cer31_1",
"type": "Signal"
},
{
"channel": 3,
"name": "Cer31_5",
"type": "Signal"
},
{
"channel": 4,
"name": "Cer41_4",
"type": "Signal"
},
{
"channel": 5,
"name": "Cer41_3",
"type": "Signal"
},
{
"channel": 6,
"name": "Cer41_2",
"type": "Signal"
},
{
"channel": 7,
"name": "Cer41_1",
"type": "Signal"
},
{
"channel": 8,
"name": "Cer41_5",
"type": "Signal"
},
{
"channel": 9,
"name": "Cer42_4",
"type": "Signal"
},
{
"channel": 10,
"name": "Cer42_3",
"type": "Signal"
},
{
"channel": 11,
"name": "Cer42_2",
"type": "Signal"
},
{
"channel": 12,
"name": "Cer42_1",
"type": "Signal"
},
{
"channel": 13,
"name": "Cer42_5",
"type": "Signal"
},
{
"channel": 14,
"name": "Cer43_3",
"type": "Signal"
},
{
"channel": 15,
"name": "Cer43_2",
"type": "Signal"
}
],
"crate": 1,
"slot": 6,
"type": "FADC250"
},
"module_1_7": {
"channels": [
{
"channel": 0,
"name": "C7_4",
"type": "Trigger"
},
{
"channel": 1,
"name": "C7_3",
"type": "Trigger"
},
{
"channel": 2,
"name": "C7_2",
"type": "Trigger"
},
{
"channel": 3,
"name": "C7_1",
"type": "Trigger"
},
{
"channel": 4,
"name": "C6_4",
"type": "Trigger"
},
{
"channel": 5,
"name": "C6_3",
"type": "Trigger"
},
{
"channel": 6,
"name": "C6_2",
"type": "Trigger"
},
{
"channel": 7,
"name": "C6_1",
"type": "Trigger"
},
{
"channel": 8,
"name": "C5_4",
"type": "Trigger"
},
{
"channel": 9,
"name": "C5_3",
"type": "Trigger"
},
{
"channel": 10,
"name": "C5_2",
"type": "Trigger"
},
{
"channel": 11,
"name": "C5_1",
"type": "Trigger"
},
{
"channel": 12,
"name": "C4",
"type": "Trigger"
},
{
"channel": 13,
"name": "C3",
"type": "Trigger"
},
{
"channel": 14,
"name": "C2",
"type": "Trigger"
},
{
"channel": 15,
"name": "C1",
"type": "Trigger"
}
],
"crate": 1,
"slot": 7,
"type": "FADC250"
},
"module_1_8": {
"channels": [
{
"channel": 0,
"name": "Cer22_1",
"type": "Signal"
},
{
"channel": 1,
"name": "Cer22_5",
"type": "Signal"
},
{
"channel": 2,
"name": "Cer32_4",
"type": "Signal"
},
{
"channel": 3,
"name": "Cer32_3",
"type": "Signal"
},
{
"channel": 4,
"name": "Cer32_2",
"type": "Signal"
},
{
"channel": 5,
"name": "Cer32_1",
"type": "Signal"
},
{
"channel": 6,
"name": "Cer32_5",
"type": "Signal"
},
{
"channel": 7,
"name": "Cer31_4",
"type": "Signal"
},
{
"channel": 8,
"name": "C9_4",
"type": "Trigger"
},
{
"channel": 9,
"name": "C9_3",
"type": "Trigger"
},
{
"channel": 10,
"name": "C9_2",
"type": "Trigger"
},
{
"channel": 11,
"name": "C9_1",
"type": "Trigger"
},
{
"channel": 12,
"name": "C8_4",
"type": "Trigger"
},
{
"channel": 13,
"name": "C8_3",
"type": "Trigger"
},
{
"channel": 14,
"name": "C8_2",
"type": "Trigger"
},
{
"channel": 15,
"name": "C8_1",
"type": "Trigger"
}
],
"crate": 1,
"slot": 8,
"type": "FADC250"
},
"module_1_9": {
"channels": [
{
"channel": 0,
"name": "Cer43_4",
"type": "Signal"
},
{
"channel": 2,
"name": "Cer21_4",
"type": "Signal"
},
{
"channel": 3,
"name": "Cer21_3",
"type": "Signal"
},
{
"channel": 4,
"name": "Cer21_2",
"type": "Signal"
},
{
"channel": 5,
"name": "Cer21_1",
"type": "Signal"
},
{
"channel": 6,
"name": "Cer21_5",
"type": "Signal"
},
{
"channel": 7,
"name": "Cer22_4",
"type": "Signal"
},
{
"channel": 8,
"name": "Cer22_3",
"type": "Signal"
},
{
"channel": 9,
"name": "Cer22_2",
"type": "Signal"
},
{
"channel": 10,
"name": "S2_11",
"type": "Trigger"
},
{
"channel": 11,
"name": "S2_10",
"type": "Trigger"
},
{
"channel": 12,
"name": "S2_9",
"type": "Trigger"
},
{
"channel": 13,
"name": "S2_8",
"type": "Trigger"
},
{
"channel": 14,
"name": "S2_7",
"type": "Trigger"
},
{
"channel": 15,
"name": "S2_6",
"type": "Trigger"
}
],
"crate": 1,
"slot": 9,
"type": "FADC250"
}
}
# configuration of DAQ modules
# Module { crate, slot, mod_type, Channels { id, name, ch_type } }
Module
{
crate = 1
slot = 6
type = FADC250
Channels
{
0, Cer0, Signal
1, Cer1, Signal
2, Cer2, Signal
3, Cer3, Signal
4, Cer4, Signal
5, Cer5, Signal
6, Cer6, Signal
7, Cer7, Signal
8, Cer8, Signal
9, Cer9, Signal
10, Cer10, Signal
11, Cer11, Signal
12, Cer12, Signal
13, Cer13, Signal
14, Cer14, Signal
15, Cer15, Signal
}
}
Module
{
crate = 1
slot = 7
type = FADC250
Channels
{
0, Calo2, Trigger
1, Calo3, Trigger
2, Calo4, Trigger
3, Calo5, Trigger
4, CaloSum, Trigger
8, LED, Trigger
11, Ref, Reference
12, ScintLR, Trigger
13, ScintLL, Trigger
14, ScintUR, Trigger
15, ScintUL, Trigger
}
}
# timing information
# Channel name (need to be consistent with channel configuration), tdiff_center, tdiff_sigma
Cer0, -52.9091, 1.83442
Cer1, -59.0365, 9.50290
Cer2, -62.6354, 5.76648
Cer3, -63.0395, 2.02471
Cer4, -63.9112, 1.40395
Cer5, -64.1128, 1.30344
Cer6, -64.2142, 1.14487
Cer7, -60.8445, 1.21787
Cer8, -63.6743, 1.14452
Cer9, -63.1386, 1.47852
Cer10, -63.1737, 1.77535
Cer11, -62.1449, 1.95246
Cer12, -63.4090, 2.22384
Cer13, -64.2145, 2.39562
Cer14, -64.1233, 2.84946
Cer15, -49.5454, 9.40721
# configuration of DAQ modules
# Module { crate, slot, mod_type, Channels { id, name, ch_type } }
Module
{
crate = 1
slot = 6
type = FADC250
Channels
{
0, Cer0, Signal
1, Cer1, Signal
2, Cer2, Signal
3, Cer3, Signal
4, Cer4, Signal
5, Cer5, Signal
6, Cer6, Signal
7, Cer7, Signal
8, Cer8, Signal
9, Cer9, Signal
10, Cer10, Signal
11, Cer11, Signal
12, Cer12, Signal
13, Cer13, Signal
14, Cer14, Signal
15, Cer15, Signal
}
}
Module
{
crate = 1
slot = 7
type = FADC250
Channels
{
0, Calo2, Trigger
1, Calo3, Trigger
2, Calo4, Trigger
3, Calo5, Trigger
4, CaloSum, Trigger
8, LED, Trigger
11, Ref, Reference
12, ScintLR, Trigger
13, ScintLL, Trigger
14, ScintUR, Trigger
15, ScintUL, Trigger
}
}
# timing information
# Channel name (need to be consistent with channel configuration), tdiff_center, tdiff_sigma
Cer0, -13.0577, 1.32406
Cer1, -20.4277, 1.11184
Cer2, -25.8797, 1.45122
Cer3, -23.6766, 1.16813
Cer4, -24.9642, 1.76586
Cer5, -24.9211, 2.03816
Cer6, -17.6479, 1.22267
Cer7, -21.5343, 1.29963
Cer8, -21.1516, 0.849855
Cer9, -23.0179, 1.03700
Cer10, -23.0198, 1.10479
# Cer10, -24.5276, 0.252716
Cer11, -20, 1
Cer12, -22.4998, 1.17782
Cer13, -22.4566, 1.10258
Cer14, -24.4677, 0.766796
# Cer14, -25.0074, 0.299377
Cer15, -23.3521, 1.22068
# Cer15, -24.7613, 0.329350
# configuration for online monitoring
host = chpc11.jlab.org
port = 11111
etfile = /tmp/et_tcd
modules = ${THIS_DIR}/esb_module.conf
output = ${THIS_DIR}/../processed_data/offline.root
number_events = -1 # all events
update_interval = 2000 # ms
server_dir = /offline/latest/
server_port = 9100
# configuration for online monitoring
host = clrlpc.jlab.org
port = 23911
etfile = /tmp/et_solidcer_ER1
modules = ${THIS_DIR}/esb_module.conf
output = ${THIS_DIR}/../processed_data/online.root
number_events = -1 # all events
update_interval = 2000 # ms
server_dir = /online/latest/
server_port = 9100
{
"Calorimeter": [
[
"C4"
],
[
"C6_1",
"C6_4",
"C6_2",
"C6_3"
],
[
"C7_1",
"C7_4",
"C7_2",
"C7_3"
],
[
"C5_1",
"C5_4",
"C5_2",
"C5_3"
],
[
"C9_1",
"C9_2",
"C9_4",
"C9_3"
],
[
"C8_2",
"C8_3",
"C8_1",
"C8_4"
],
[
"C1"
],
[
"C2"
],
[
"C3"
]
],
"Scintillator1": [
[
"S1_1"
],
[
"S1_2"
],
[
"S1_3"
],
[
"S1_4"
],
[
"S1_5"
],
[
"S1_6"
],
[
"S1_7"
],
[
"S1_8"
],
[
"S1_9"
],
[
"S1_10"
],
[
"S1_11"
]
],
"Scintillator2": [
[
"S2_1"
],
[
"S2_2"
],
[
"S2_3"
],
[
"S2_4"
],
[
"S2_5"
],
[
"S2_6"
],
[
"S2_7"
],
[
"S2_8"
],
[
"S2_9"
],
[
"S2_10"
],
[
"S2_11"
]
],
"MaPMT Sums": [
[
"Cer11_5"
],
[
"Cer12_5"
],
[
"Cer13_5"
],
[
"Cer14_5"
],
[
"Cer21_5"
],
[
"Cer22_5"
],
[
"Cer23_5"
],
[
"Cer24_5"
],
[
"Cer31_5"
],
[
"Cer32_5"
],
[
"Cer33_5"
],
[
"Cer34_5"
],
[
"Cer41_5"
],
[
"Cer42_5"
],
[
"Cer43_5"
],
[
"Cer44_5"
]
],
"MaPMT Quads": [
[
"Cer11_1",
"Cer11_2",
"Cer11_3",
"Cer11_4"
],
[
"Cer12_1",
"Cer12_2",
"Cer12_3",
"Cer12_4"
],
[
"Cer13_1",
"Cer13_2",
"Cer13_3",
"Cer13_4"
],
[
"Cer14_1",
"Cer14_2",
"Cer14_3",
"Cer14_4"
],
[
"Cer21_1",
"Cer21_2",
"Cer21_3",
"Cer21_4"
],
[
"Cer22_1",
"Cer22_2",
"Cer22_3",
"Cer22_4"
],
[
"Cer23_1",
"Cer23_2",
"Cer23_3",
"Cer23_4"
],
[
"Cer24_1",
"Cer24_2",
"Cer24_3",
"Cer24_4"
],
[
"Cer31_1",
"Cer31_2",
"Cer31_3",
"Cer31_4"
],
[
"Cer32_1",
"Cer32_2",
"Cer32_3",
"Cer32_4"
],
[
"Cer33_1",
"Cer33_2",
"Cer33_3",
"Cer33_4"
],
[
"Cer34_1",
"Cer34_2",
"Cer34_3",
"Cer34_4"
],
[
"Cer41_1",
"Cer41_2",
"Cer41_3",
"Cer41_4"
],
[
"Cer42_1",
"Cer42_2",
"Cer42_3",
"Cer42_4"
],
[
"Cer43_1",
"Cer43_2",
"Cer43_3",
"Cer43_4"
],
[
"Cer44_1",
"Cer44_2",
"Cer44_3",
"Cer44_4"
]
],
"LAPPD AB": [
[
"LAPPD_A1"
],
[
"LAPPD_B1"
],
[
"LAPPD_A2"
],
[
"LAPPD_B2"
],
[
"LAPPD_A3"
],
[
"LAPPD_B3"
],
[
"LAPPD_A4"
],
[
"LAPPD_B4"
],
[
"LAPPD_A5"
],
[
"LAPPD_B5"
],
[
"LAPPD_A6"
],
[
"LAPPD_B6"
],
[
"LAPPD_A7"
],
[
"LAPPD_B7"
],
[
"LAPPD_A8"
],
[
"LAPPD_B8"
]
],
"LAPPD CD": [
[
"LAPPD_C1"
],
[
"LAPPD_D1"
],
[
"LAPPD_C2"
],
[
"LAPPD_D2"
],
[
"LAPPD_C3"
],
[
"LAPPD_D3"
],
[
"LAPPD_C4"
],
[
"LAPPD_D4"
],
[
"LAPPD_C5"
],
[
"LAPPD_D5"
],
[
"LAPPD_C6"
],
[
"LAPPD_D6"
],
[
"LAPPD_C7"
],
[
"LAPPD_D7"
],
[
"LAPPD_C8"
],
[
"LAPPD_D8"
]
],
"LAPPD EF": [
[
"LAPPD_E1"
],
[
"LAPPD_F1"
],
[
"LAPPD_E2"
],
[
"LAPPD_F2"
],
[
"LAPPD_E3"
],
[
"LAPPD_F3"
],
[
"LAPPD_E4"
],
[
"LAPPD_F4"
],
[
"LAPPD_E5"
],
[
"LAPPD_F5"
],
[
"LAPPD_E6"
],
[
"LAPPD_F6"
],
[
"LAPPD_E7"
],
[
"LAPPD_F7"
],
[
"LAPPD_E8"
],
[
"LAPPD_F8"
]
],
"LAPPD GH": [
[
"LAPPD_G1"
],
[
"LAPPD_H1"
],
[
"LAPPD_G2"
],
[
"LAPPD_H2"
],
[
"LAPPD_G3"
],
[
"LAPPD_H3"
],
[
"LAPPD_G4"
],
[
"LAPPD_H4"
],
[
"LAPPD_G5"
],
[
"LAPPD_H5"
],
[
"LAPPD_G6"
],
[
"LAPPD_H6"
],
[
"LAPPD_G7"
],
[
"LAPPD_H7"
],
[
"LAPPD_G8"
],
[
"LAPPD_H8"
]
],
"LAPPD": [
[
"LAPPD_E7",
"LAPPD_E2",
"LAPPD_E8",
"LAPPD_E4",
"LAPPD_D4",
"LAPPD_D8",
"LAPPD_D2",
"LAPPD_D7",
"LAPPD_F4",
"LAPPD_E5",
"LAPPD_E1",
"LAPPD_E6",
"LAPPD_D6",
"LAPPD_D1",
"LAPPD_D5",
"LAPPD_C4",
"LAPPD_F8",
"LAPPD_F3",
"LAPPD_F7",
"LAPPD_E3",
"LAPPD_D3",
"LAPPD_C7",
"LAPPD_C3",
"LAPPD_C8",
"LAPPD_F5",
"LAPPD_F1",
"LAPPD_F6",
"LAPPD_F2",
"LAPPD_C2",
"LAPPD_C6",
"LAPPD_C1",
"LAPPD_C5",
"LAPPD_G4",
"LAPPD_G8",
"LAPPD_G3",
"LAPPD_G7",
"LAPPD_B7",
"LAPPD_B3",
"LAPPD_B8",
"LAPPD_B4",
"LAPPD_G1",
"LAPPD_G6",
"LAPPD_G2",
"LAPPD_H6",
"LAPPD_A6",
"LAPPD_B2",
"LAPPD_B6",
"LAPPD_B1",
"LAPPD_G5",
"LAPPD_H4",
"LAPPD_H8",
"LAPPD_H3",
"LAPPD_A3",
"LAPPD_A8",
"LAPPD_A4",
"LAPPD_B5",
"LAPPD_H2",
"LAPPD_H7",
"LAPPD_H1",
"LAPPD_H5",
"LAPPD_A1",
"LAPPD_A5",
"LAPPD_A7",
"LAPPD_A2"
]
]
}
{
"Calorimeter Center": {
"refs": "run{run}_timing.json",
"channels": [
[
"C9_1", "C9_2", "C9_3", "C9_4"
]
],
"plots": [
{
"title": "Calorimeter Center Timing Distribution",
"xlabel": "Sample Timing (ns)",
"ylabel": "Counts / 4 ns",
"normalized": false,
"yscale": "linear",
"hist_range": [64, 0, 256],
"fontsize": 22,
"save": "cal_center_time_comp.png",
"subs": [
{
"path": "processed_data/run{run}_{split}.root",
"func_code": "unpack_time({ch}.peaks, true)",
"color": "royalblue",
"histtype": "stepfilled",
"alpha": 0.7,
"ls": "-",
"lw": 1,
"ec": "black",
"zorder": 0
},
{
"path": "processed_data/run{run}_{split}.root",
"func_code": "get_maximum_peak({ch}.peaks, time_cut, {cut}).time",
"filter_code": "get_maximum_peak({ch}.peaks, time_cut, {cut}).height > 0",
"color": "indianred",
"histtype": "stepfilled",
"alpha": 1.0,
"ls": "-",
"lw": 1,
"ec": "black",
"zorder": 10
}
]
}
]
},
"MaPMT Sums": {
"channels": [
[
"Cer11_5", "Cer12_5", "Cer13_5", "Cer14_5",
"Cer21_5", "Cer22_5", "Cer23_5", "Cer24_5",
"Cer31_5", "Cer32_5", "Cer33_5", "Cer34_5",
"Cer41_5", "Cer42_5", "Cer43_5", "Cer44_5"
]
],
"plots": [
{
"title": "MaPMT Sum Peak Height Distribution",
"xlabel": "ADC Value",
"ylabel": "Counts / 20 ADC Channel",
"normalized": false,
"yscale": "log",
"hist_range": [110, 0, 2200],
"fontsize": 18,
"save": "sum_peak_height_comp.png",
"subs": [
{
"path": "processed_data/run{run}_tcuts.root",
"func_code": "{ch}_peak.height",
"filter_code": "{ch}_peak.height > 0",
"color": "indianred",
"histtype": "stepfilled",
"alpha": 1.0,
"ls": "-",
"lw": 1,
"ec": "black",
"zorder": 10
},
{
"path": "processed_data/run{run}_trg.root",
"func_code": "unpack_height({ch}_p.peaks, true)",
"color": "royalblue",
"histtype": "stepfilled",
"alpha": 0.7,
"ls": "-",
"lw": 1,
"ec": "black",
"zorder": 0
}
]
},
{
"title": "MaPMT Sum Peak Timing Distribution",
"xlabel": "Relative Timing to ECal (ns)",
"ylabel": "Counts / 4 ns",
"normalized": false,
"yscale": "linear",
"hist_range": [80, -160, 160],
"fontsize": 18,
"save": "sum_peak_time_comp.png",
"subs": [
{
"path": "processed_data/run{run}_tcuts.root",
"func_code": "{ch}_peak.time - ecal.time",
"filter_code": "{ch}_peak.height > 0",
"color": "indianred",
"histtype": "stepfilled",
"alpha": 1.0,
"ls": "-",
"lw": 1,
"ec": "black",
"zorder": 10
},
{
"path": "processed_data/run{run}_trg.root",
"func_code": "unpack_time({ch}_p.peaks, true, ecal.time)",
"color": "royalblue",
"histtype": "stepfilled",
"alpha": 0.7,
"ls": "-",
"lw": 1,
"ec": "black",
"zorder": 0
}
]
}
]
}
}
{
"Calorimeter": {
"plots": [
{
"title": "ECal Number of Peaks (256 ns)",
"func_code": "{ch}.peaks.size()",
"xlabel": "Number of Peaks",
"ylabel": "Normalized Counts",
"hist_range": [10, -0.5, 9.5],
"path": "ecal_npeaks.png",
"filter_code": "{ch}.peaks.size() > 0"
},
{
"title": "ECal Number of Peaks (48 ns)",
"func_code": "count_following_peaks({ch}.peaks, 50) + 1",
"xlabel": "Number of Peaks",
"ylabel": "Normalized Counts",
"hist_range": [10, -0.5, 9.5],
"path": "ecal_npeaks_50ns.png",
"filter_code": "{ch}.peaks.size() > 0"
},
{
"title": "ECal Integral/Peak",
"func_code": "{ch}_mpeak.integral/{ch}_mpeak.height",
"xlabel": "Integral to Peak Ratio",
"ylabel": "Normalized Counts",
"hist_range": [100, 0, 20],
"path": "ecal_ratio.png",
"filter_code": "{ch}_mpeak.height > 0"
},
{
"title": "ECal Peak Heights",
"func_code": "unpack_height({ch}.peaks, true, 0., 0.001)",
"xlabel": "ADC Value / 1000",
"ylabel": "Normalized Counts",
"hist_range": [100, 0, 1],
"path": "ecal_pheights.png",
"filter_code": "{ch}_mpeak.height > 0"
},
{
"title": "ECal Peak Integrals",
"func_code": "unpack_integral({ch}.peaks, true, 0., 0.001)",
"xlabel": "Integrated ADC Value / 1000",
"ylabel": "Normalized Counts",
"hist_range": [100, 0, 3],
"path": "ecal_pintes.png",
"filter_code": "{ch}_mpeak.height > 0"
},
{
"title": "ECal Raw Integrals (256 ns)",
"func_code": "integrate_raw({ch}, 0, 63, 0.001)",
"xlabel": "Integrated ADC Value / 1000",
"ylabel": "Normalized Counts",
"hist_range": [100, 0, 3],
"path": "ecal_rawintes_256.png",
"filter_code": "{ch}.raw.size() > 0",
"pad_func": {
"SetLogy": [true]
}
},
{
"title": "ECal Raw Integrals (48 ns)",
"func_code": "integrate_raw({ch}, 10, 23, 0.001)",
"xlabel": "Integrated ADC Value / 1000",
"ylabel": "Normalized Counts",
"hist_range": [100, 0, 3],
"path": "ecal_rawintes.png",
"filter_code": "{ch}.raw.size() > 0",
"pad_func": {
"SetLogy": [true]
}
}
]
}
}
{
"module_1_10": {
"channels": [
{
"channel": 0,
"name": "S2_5",
"type": "Scint"
},
{
"channel": 1,
"name": "S2_4",
"type": "Scint"
},
{
"channel": 2,
"name": "S2_3",
"type": "Scint"
},
{
"channel": 3,
"name": "S2_2",
"type": "Scint"
},
{
"channel": 4,
"name": "S2_1",
"type": "Scint"
},
{
"channel": 5,
"name": "S1_11",
"type": "Scint"
},
{
"channel": 6,
"name": "S1_10",
"type": "Scint"
},
{
"channel": 7,
"name": "S1_9",
"type": "Scint"
},
{
"channel": 8,
"name": "S1_8",
"type": "Scint"
},
{
"channel": 9,
"name": "S1_7",
"type": "Scint"
},
{
"channel": 10,
"name": "S1_6",
"type": "Scint"
},
{
"channel": 11,
"name": "S1_5",
"type": "Scint"
},
{
"channel": 12,
"name": "S1_4",
"type": "Scint"
},
{
"channel": 13,
"name": "S1_3",
"type": "Scint"
},
{
"channel": 14,
"name": "S1_2",
"type": "Scint"
},
{
"channel": 15,
"name": "S1_1",
"type": "Scint"
}
],
"crate": 1,
"slot": 10,
"type": "FADC250"
},
"module_1_3": {
"channels": [
{
"channel": 0,
"name": "Cer14_5",
"type": "MaPMT"
},
{
"channel": 1,
"name": "Cer13_4",
"type": "MaPMT"
},
{
"channel": 2,
"name": "Cer13_3",
"type": "MaPMT"
},
{
"channel": 3,
"name": "Cer13_2",
"type": "MaPMT"
},
{
"channel": 4,
"name": "Cer13_1",
"type": "MaPMT"
},
{
"channel": 5,
"name": "Cer13_5",
"type": "MaPMT"
},
{
"channel": 6,
"name": "Cer12_4",
"type": "MaPMT"
},
{
"channel": 7,
"name": "Cer12_3",
"type": "MaPMT"
},
{
"channel": 8,
"name": "Cer12_2",
"type": "MaPMT"
},
{
"channel": 9,
"name": "Cer12_1",
"type": "MaPMT"
},
{
"channel": 10,
"name": "Cer12_5",
"type": "MaPMT"
},
{
"channel": 11,
"name": "Cer11_4",
"type": "MaPMT"
},
{
"channel": 12,
"name": "Cer11_3",
"type": "MaPMT"
},
{
"channel": 13,
"name": "Cer11_2",
"type": "MaPMT"
},
{
"channel": 14,
"name": "Cer11_1",
"type": "MaPMT"
},
{
"channel": 15,
"name": "Cer11_5",
"type": "MaPMT"
}
],
"crate": 1,
"slot": 3,
"type": "FADC250"
},
"module_1_4": {
"channels": [
{
"channel": 0,
"name": "Cer33_1",
"type": "MaPMT"
},
{
"channel": 1,
"name": "Cer33_5",
"type": "MaPMT"
},
{
"channel": 2,
"name": "Cer23_4",
"type": "MaPMT"
},
{
"channel": 3,
"name": "Cer23_3",
"type": "MaPMT"
},
{
"channel": 4,
"name": "Cer23_2",
"type": "MaPMT"
},
{
"channel": 5,
"name": "Cer23_1",
"type": "MaPMT"
},
{
"channel": 6,
"name": "Cer23_5",
"type": "MaPMT"
},
{
"channel": 7,
"name": "Cer24_4",
"type": "MaPMT"
},
{
"channel": 8,
"name": "Cer24_3",
"type": "MaPMT"
},
{
"channel": 9,
"name": "Cer24_2",
"type": "MaPMT"
},
{
"channel": 10,
"name": "Cer24_1",
"type": "MaPMT"
},
{
"channel": 11,
"name": "Cer24_5",
"type": "MaPMT"
},
{
"channel": 12,
"name": "Cer14_4",
"type": "MaPMT"
},
{
"channel": 13,
"name": "Cer14_3",
"type": "MaPMT"
},
{
"channel": 14,
"name": "Cer14_2",
"type": "MaPMT"
},
{
"channel": 15,
"name": "Cer14_1",
"type": "MaPMT"
}
],
"crate": 1,
"slot": 4,
"type": "FADC250"
},
"module_1_5": {
"channels": [
{
"channel": 0,
"name": "Cer43_2",
"type": "MaPMT"
},
{
"channel": 1,
"name": "Cer43_1",
"type": "MaPMT"
},
{
"channel": 2,
"name": "Cer43_5",
"type": "MaPMT"
},
{
"channel": 3,
"name": "Cer44_4",
"type": "MaPMT"
},
{
"channel": 4,
"name": "Cer44_3",
"type": "MaPMT"
},
{
"channel": 5,
"name": "Cer44_2",
"type": "MaPMT"
},
{
"channel": 6,
"name": "Cer44_1",
"type": "MaPMT"
},
{
"channel": 7,
"name": "Cer44_5",
"type": "MaPMT"
},
{
"channel": 8,
"name": "Cer34_4",
"type": "MaPMT"
},
{
"channel": 9,
"name": "Cer34_3",
"type": "MaPMT"
},
{
"channel": 10,
"name": "Cer34_2",
"type": "MaPMT"
},
{
"channel": 11,
"name": "Cer34_1",
"type": "MaPMT"
},
{
"channel": 12,
"name": "Cer34_5",
"type": "MaPMT"
},
{
"channel": 13,
"name": "Cer33_4",
"type": "MaPMT"
},
{
"channel": 14,
"name": "Cer33_3",
"type": "MaPMT"
},
{
"channel": 15,
"name": "Cer33_2",
"type": "MaPMT"
}
],
"crate": 1,
"slot": 5,
"type": "FADC250"
},
"module_1_6": {
"channels": [
{
"channel": 0,
"name": "Cer31_3",
"type": "MaPMT"
},
{
"channel": 1,
"name": "Cer31_2",
"type": "MaPMT"
},
{
"channel": 2,
"name": "Cer31_1",
"type": "MaPMT"
},
{
"channel": 3,
"name": "Cer31_5",
"type": "MaPMT"
},
{
"channel": 4,
"name": "Cer41_4",
"type": "MaPMT"
},
{
"channel": 5,
"name": "Cer41_3",
"type": "MaPMT"
},
{
"channel": 6,
"name": "Cer41_2",
"type": "MaPMT"
},
{
"channel": 7,
"name": "Cer41_1",
"type": "MaPMT"
},
{
"channel": 8,
"name": "Cer41_5",
"type": "MaPMT"
},
{
"channel": 9,
"name": "Cer42_4",
"type": "MaPMT"
},
{
"channel": 10,
"name": "Cer42_3",
"type": "MaPMT"
},
{
"channel": 11,
"name": "Cer42_2",
"type": "MaPMT"
},
{
"channel": 12,
"name": "Cer42_1",
"type": "MaPMT"
},
{
"channel": 13,
"name": "Cer42_5",
"type": "MaPMT"
},
{
"channel": 14,
"name": "Cer43_4",
"type": "MaPMT"
},
{
"channel": 15,
"name": "Cer43_3",
"type": "MaPMT"
}
],
"crate": 1,
"slot": 6,
"type": "FADC250"
},
"module_1_7": {
"channels": [
{
"channel": 0,
"name": "C7_4",
"type": "Calo"
},
{
"channel": 1,
"name": "C7_3",
"type": "Calo"
},
{
"channel": 2,
"name": "C7_2",
"type": "Calo"
},
{
"channel": 3,
"name": "C7_1",
"type": "Calo"
},
{
"channel": 4,
"name": "C6_4",
"type": "Calo"
},
{
"channel": 5,
"name": "C6_3",
"type": "Calo"
},
{
"channel": 6,
"name": "C6_2",
"type": "Calo"
},
{
"channel": 7,
"name": "C6_1",
"type": "Calo"
},
{
"channel": 8,
"name": "C5_4",
"type": "Calo"
},
{
"channel": 9,
"name": "C5_3",
"type": "Calo"
},
{
"channel": 10,
"name": "C5_2",
"type": "Calo"
},
{
"channel": 11,
"name": "C5_1",
"type": "Calo"
},
{
"channel": 12,
"name": "C4",
"type": "Calo"
},
{
"channel": 13,
"name": "C3",
"type": "Calo"
},
{
"channel": 14,
"name": "C2",
"type": "Calo"
},
{
"channel": 15,
"name": "C1",
"type": "Calo"
}
],
"crate": 1,
"slot": 7,
"type": "FADC250"
},
"module_1_8": {
"channels": [
{
"channel": 0,
"name": "Cer22_1",
"type": "MaPMT"
},
{
"channel": 1,
"name": "Cer22_5",
"type": "MaPMT"
},
{
"channel": 2,
"name": "Cer32_4",
"type": "MaPMT"
},
{
"channel": 3,
"name": "Cer32_3",
"type": "MaPMT"
},
{
"channel": 4,
"name": "Cer32_2",
"type": "MaPMT"
},
{
"channel": 5,
"name": "Cer32_1",
"type": "MaPMT"
},
{
"channel": 6,
"name": "Cer32_5",
"type": "MaPMT"
},
{
"channel": 7,
"name": "Cer31_4",
"type": "MaPMT"
},
{
"channel": 8,
"name": "C9_4",
"type": "Calo"
},
{
"channel": 9,
"name": "C9_3",
"type": "Calo"
},
{
"channel": 10,
"name": "C9_2",
"type": "Calo"
},
{
"channel": 11,
"name": "C9_1",
"type": "Calo"
},
{
"channel": 12,
"name": "C8_4",
"type": "Calo"
},
{
"channel": 13,
"name": "C8_3",
"type": "Calo"
},
{
"channel": 14,
"name": "C8_2",
"type": "Calo"
},
{
"channel": 15,
"name": "C8_1",
"type": "Calo"
}
],
"crate": 1,
"slot": 8,
"type": "FADC250"
},
"module_1_9": {
"channels": [
{
"channel": 2,
"name": "Cer21_4",
"type": "MaPMT"
},
{
"channel": 3,
"name": "Cer21_3",
"type": "MaPMT"
},
{
"channel": 4,
"name": "Cer21_2",
"type": "MaPMT"
},
{
"channel": 5,
"name": "Cer21_1",
"type": "MaPMT"
},
{
"channel": 6,
"name": "Cer21_5",
"type": "MaPMT"
},
{
"channel": 7,
"name": "Cer22_4",
"type": "MaPMT"
},
{
"channel": 8,
"name": "Cer22_3",
"type": "MaPMT"
},
{
"channel": 9,
"name": "Cer22_2",
"type": "MaPMT"
},
{
"channel": 10,
"name": "S2_11",
"type": "Scint"
},
{
"channel": 11,
"name": "S2_10",
"type": "Scint"
},
{
"channel": 12,
"name": "S2_9",
"type": "Scint"
},
{
"channel": 13,
"name": "S2_8",
"type": "Scint"
},
{
"channel": 14,
"name": "S2_7",
"type": "Scint"
},
{
"channel": 15,
"name": "S2_6",
"type": "Scint"
}
],
"crate": 1,
"slot": 9,
"type": "FADC250"
}
}
{
"Cer11_1": [-18.5, -14.5],
"Cer11_2": [-18.5, -14.5],
"Cer11_3": [-18.5, -14.5],
"Cer11_4": [-18.5, -14.5],
"Cer11_5": [-16.5, -12.5],
"Cer12_1": [-19.5, -15.5],
"Cer12_2": [-19.5, -15.5],
"Cer12_3": [-19.5, -15.5],
"Cer12_4": [-18.5, -14.5],
"Cer12_5": [-16.5, -12.5],
"Cer13_1": [-18.5, -14.5],
"Cer13_2": [-18.5, -14.5],
"Cer13_3": [-18.5, -14.5],
"Cer13_4": [-18.5, -14.5],
"Cer13_5": [-16.5, -12.5],
"Cer14_1": [-18.5, -14.5],
"Cer14_2": [-18.5, -14.5],
"Cer14_3": [-18.5, -14.5],
"Cer14_4": [-18.5, -14.5],
"Cer14_5": [-17.5, -13.5],
"Cer21_1": [-13.5, -9.5],
"Cer21_2": [-13.5, -9.5],
"Cer21_3": [-13.5, -9.5],
"Cer21_4": [-13.5, -9.5],
"Cer21_5": [-12.5, -8.5],
"Cer22_1": [-13.5, -9.5],
"Cer22_2": [-62, 62],
"Cer22_3": [-18.5, -14.5],
"Cer22_4": [-18.5, -14.5],
"Cer22_5": [-11.5, -7.5],
"Cer23_1": [-14.5, -10.5],
"Cer23_2": [-13.5, -9.5],
"Cer23_3": [-13.5, -9.5],
"Cer23_4": [-14.5, -10.5],
"Cer23_5": [-12.5, -8.5],
"Cer24_1": [-14.5, -10.5],
"Cer24_2": [-13.5, -9.5],
"Cer24_3": [-13.5, -9.5],
"Cer24_4": [-18.5, -14.5],
"Cer24_5": [-16.5, -12.5],
"Cer31_1": [-18.5, -14.5],
"Cer31_2": [-18.5, -14.5],
"Cer31_3": [-18.5, -14.5],
"Cer31_4": [-18.5, -14.5],
"Cer31_5": [-16.5, -12.5],
"Cer32_1": [-18.5, -14.5],
"Cer32_2": [-18.5, -14.5],
"Cer32_3": [-18.5, -14.5],
"Cer32_4": [-18.5, -14.5],
"Cer32_5": [-16.5, -12.5],
"Cer33_1": [-18.5, -14.5],
"Cer33_2": [-18.5, -14.5],
"Cer33_3": [-18.5, -14.5],
"Cer33_4": [-18.5, -14.5],
"Cer33_5": [-16.5, -12.5],
"Cer34_1": [-18.5, -14.5],
"Cer34_2": [-18.5, -14.5],
"Cer34_3": [-18.5, -14.5],
"Cer34_4": [-18.5, -14.5],
"Cer34_5": [-16.5, -12.5],
"Cer41_1": [-18.5, -14.5],
"Cer41_2": [-18.5, -14.5],
"Cer41_3": [-18.5, -14.5],
"Cer41_4": [-18.5, -14.5],
"Cer41_5": [-16.5, -12.5],
"Cer42_1": [-18.5, -14.5],
"Cer42_2": [-18.5, -14.5],
"Cer42_3": [-18.5, -14.5],
"Cer42_4": [-18.5, -14.5],
"Cer42_5": [-16.5, -12.5],
"Cer43_1": [-25.5, -21.5],
"Cer43_2": [-62, 62],
"Cer43_3": [-25.5, -21.5],
"Cer43_4": [-25.5, -21.5],
"Cer43_5": [-23.5, -19.5],
"Cer44_1": [-25.5, -21.5],
"Cer44_2": [-25.5, -21.5],
"Cer44_3": [-25.5, -21.5],
"Cer44_4": [-13.5, -9.5],
"Cer44_5": [-11.5, -7.5]
}