diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7c8891a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+productions/d2hll
+*.xml
diff --git a/file_list.txt b/file_list.txt
new file mode 100644
index 0000000..f211df4
--- /dev/null
+++ b/file_list.txt
@@ -0,0 +1,137 @@
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000001_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000002_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000003_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000004_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000005_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000006_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000007_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000008_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000009_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000010_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000011_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000012_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000013_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000014_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000015_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000016_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000017_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000018_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000019_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000020_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000021_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000022_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000023_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000024_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000025_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000026_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000027_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000028_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000029_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000030_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000031_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000032_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000033_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000034_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000035_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000036_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000037_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000038_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000039_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000040_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000041_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000042_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000043_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000044_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000045_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000046_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000047_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000048_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000049_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000050_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000051_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000052_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000053_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000054_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000055_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000056_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000057_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000058_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000059_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000060_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000061_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000062_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000063_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000064_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000065_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000066_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000067_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000068_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000069_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000070_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000071_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000072_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000073_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000074_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000075_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000076_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000077_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000078_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000079_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000080_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000081_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000082_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000083_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000084_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000085_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000086_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000087_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000088_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000089_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000090_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000091_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000092_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000093_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000094_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000096_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000097_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000098_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000099_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000100_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000101_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000102_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000103_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000104_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000105_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000106_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000107_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000108_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000109_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000110_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000111_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000112_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000113_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000114_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000115_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000116_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000117_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000118_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000119_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000120_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000121_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000122_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000123_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000124_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000125_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000126_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000127_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000128_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000129_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000130_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000131_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000132_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000133_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000134_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000135_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000136_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000137_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000138_1.charm_d2hll_dvntuple.root
diff --git a/file_list_short.txt b/file_list_short.txt
new file mode 100644
index 0000000..c40f87a
--- /dev/null
+++ b/file_list_short.txt
@@ -0,0 +1,30 @@
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000001_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000002_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000003_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000004_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000005_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000006_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000007_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000008_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000009_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000010_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000011_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000012_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000013_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000014_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000015_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000016_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000017_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000018_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000019_1.charm_d2hll_dvntuple.root
+root://eoslhcb.cern.ch//eos/lhcb/grid/prod/lhcb/LHCb/Collision17/CHARM_D2HLL_DVNTUPLE.ROOT/00075545/0000/00075545_00000020_1.charm_d2hll_dvntuple.root
+
+
+
+
+
+TChain *chain = new TChain("DpTopimumu_OS/DecayTree")
+TFileCollection *fc = new TFileCollection("dum","","file_list_short.txt")
+chain->AddFileInfoList(fc->GetList())
+TFile *file = TFile::Open("DpTopimumu_OS","RECREATE")
+chain->CloneTree(-1,"fast")
diff --git a/productions/d2hll/._main_options.py b/productions/d2hll/._main_options.py
new file mode 100644
index 0000000..a22518f
--- /dev/null
+++ b/productions/d2hll/._main_options.py
Binary files differ
diff --git a/productions/d2hll/config.py b/productions/d2hll/config.py
new file mode 100644
index 0000000..0dcb7a9
--- /dev/null
+++ b/productions/d2hll/config.py
@@ -0,0 +1,102 @@
+tuple_tools = [
+ 'TupleToolGeometry',
+ 'TupleToolKinematic',
+ 'TupleToolPid',
+ 'TupleToolANNPID',
+ 'TupleToolPrimaries',
+ 'TupleToolTrackInfo',
+ 'TupleToolBremInfo'
+]
+
+basic_loki_vars = {
+ 'ETA': 'ETA',
+ 'Loki_BPVIPCHI2': 'BPVIPCHI2()'
+}
+
+mother_loki_vars = {
+ 'Loki_BPVVDCHI2': 'BPVVDCHI2',
+ 'Loki_BPVDIRA': 'BPVDIRA',
+ 'Loki_BPVIPCHI2': 'BPVIPCHI2()',
+ 'Loki_DOCAMAX': 'DOCAMAX',
+ 'Loki_AMAXDOCA': "LoKi.Particles.PFunA(AMAXDOCA(''))",
+ 'Loki_AMINDOCA': "LoKi.Particles.PFunA(AMINDOCA(''))",
+ 'Loki_DOCACHI2MAX': 'DOCACHI2MAX',
+ 'Loki_VCHI2': 'VFASPF(VCHI2)',
+ 'Loki_VDOF': 'VFASPF(VDOF)',
+ 'Loki_VX': 'VFASPF(VX)',
+ 'Loki_VY': 'VFASPF(VY)',
+ 'Loki_VZ': 'VFASPF(VZ)',
+ 'Loki_SUMPT': 'SUMTREE(PT, ISBASIC)',
+ 'Loki_BPVLTIME': "BPVLTIME()",
+ 'Loki_M12': 'M12',
+ 'Loki_M13': 'M13',
+ 'Loki_M23': 'M23',
+}
+
+cone_angles = [1.0, 1.5, 2.0]
+cone_vars = [
+ 'CONEANGLE',
+ 'CONEMULT',
+ 'CONEPX',
+ 'CONEPY',
+ 'CONEPZ',
+ 'CONEPT',
+ 'CONEPXASYM',
+ 'CONEPYASYM',
+ 'CONEPZASYM',
+ 'CONEPASYM',
+ 'CONEPTASYM',
+ 'CONEDELTAETA',
+ 'CONEDELTAPHI'
+]
+ew_cone_angles = [0.0, 0.5, 1.0, 1.5]
+ew_cone_vars = [
+ 'EWCONEANGLE',
+ 'EWCONEMULT',
+ 'EWCONEPX',
+ 'EWCONEPY',
+ 'EWCONEPZ',
+ 'EWCONEVP',
+ 'EWCONEVPT',
+ 'EWCONESPT',
+ 'EWCONETPT',
+ 'EWCONEMINPTE',
+ 'EWCONEMAXPTE',
+ 'EWCONEMINPTMU',
+ 'EWCONEMAXPTMU',
+ 'EWCONENMULT',
+ 'EWCONENPX',
+ 'EWCONENPY',
+ 'EWCONENPZ',
+ 'EWCONENVP',
+ 'EWCONENVPT',
+ 'EWCONENSP',
+ 'EWCONENSPT',
+]
+vertex_iso_variables = [
+ 'VTXISONUMVTX',
+ 'VTXISODCHI2ONETRACK',
+ 'VTXISODCHI2MASSONETRACK',
+ 'VTXISODCHI2TWOTRACK',
+ 'VTXISODCHI2MASSTWOTRACK'
+]
+vertex_iso_bdt_variables = [
+ 'VTXISOBDTHARDFIRSTVALUE',
+ 'VTXISOBDTHARDSECONDVALUE',
+ 'VTXISOBDTHARDTHIRDVALUE'
+]
+track_iso_bdt_variables = [
+ 'TRKISOBDTFIRSTVALUE',
+ 'TRKISOBDTSECONDVALUE',
+ 'TRKISOBDTTHIRDVALUE'
+]
+Bs2MuMuTrackIsolation_variables = [
+ 'BSMUMUTRACKPLUSISO',
+ 'BSMUMUTRACKPLUSISOTWO',
+ 'ISOTWOBODYQPLUS',
+ 'ISOTWOBODYMASSISOPLUS',
+ 'ISOTWOBODYCHI2ISOPLUS',
+ 'ISOTWOBODYISO5PLUS',
+ 'BSMUMUTRACKID',
+ 'BSMUMUTRACKTOPID'
+]
diff --git a/productions/d2hll/config.pyc b/productions/d2hll/config.pyc
new file mode 100644
index 0000000..f484f67
--- /dev/null
+++ b/productions/d2hll/config.pyc
Binary files differ
diff --git a/productions/d2hll/decay_parser/__init__.py b/productions/d2hll/decay_parser/__init__.py
new file mode 100644
index 0000000..0604fa9
--- /dev/null
+++ b/productions/d2hll/decay_parser/__init__.py
@@ -0,0 +1,36 @@
+from __future__ import print_function
+
+import os
+import json
+
+from .decay import Decay
+from .particle import Particle
+from .parser import make_parser
+from . import utils
+
+
+__all__ = [
+ 'Decay',
+ 'Particle',
+ 'parse_decay',
+ 'particles',
+ 'symbols',
+ 'utils'
+]
+
+
+def parse_decay(decay_string):
+ result = parser.parseString(decay_string, parseAll=True)
+ assert len(result) == 1
+ return result[0]
+
+
+data_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'data'))
+
+with open(os.path.join(data_path, 'particles.json')) as f:
+ particles = json.load(f)
+
+with open(os.path.join(data_path, 'symbols.json')) as f:
+ symbols = json.load(f)
+
+parser = make_parser(particles, symbols)
diff --git a/productions/d2hll/decay_parser/__init__.pyc b/productions/d2hll/decay_parser/__init__.pyc
new file mode 100644
index 0000000..2991f37
--- /dev/null
+++ b/productions/d2hll/decay_parser/__init__.pyc
Binary files differ
diff --git a/productions/d2hll/decay_parser/data/particles.json b/productions/d2hll/decay_parser/data/particles.json
new file mode 100644
index 0000000..d97622a
--- /dev/null
+++ b/productions/d2hll/decay_parser/data/particles.json
@@ -0,0 +1 @@
+{"Omega*_bbb-": ["Omega*_bbb-", "Omega*_bbb~+", 15110.609999999999, -1.0, 0.0, 0.0, 5554, 5554], "Delta(1700)~--": ["Delta(1700)~--", "Delta(1700)++", 1700.0, -2.0, 2.194041e-15, 299.9999555472927, -12224, 0], "chi_b0(1P)": ["chi_b0(1P)", "chi_b0(1P)", 9859.439999999999, 0.0, 0.0, 0.0, 10551, 10551], "psi(2S)": ["psi(2S)", "psi(2S)", 3686.109, 0.0, 2.201378e-12, 0.29900008197998595, 100443, 100443], "h_b(3P)": ["h_b(3P)", "h_b(3P)", 10516.0, 0.0, 0.0, 0.0, 210553, 210553], "Xi_bb-": ["Xi_bb-", "Xi_bb~+", 10422.72, -1.0, 0.001290893, 5.09889047712659e-10, 5512, 5512], "sd_0": ["sd_0", "anti-sd_0", 0.0, -0.7, 0.0, 0.0, 3101, 3101], "sd_1": ["sd_1", "anti-sd_1", 0.0, -0.7, 0.0, 0.0, 3103, 3103], "anti-cs_1": ["anti-cs_1", "cs_1", 0.0, -0.3, 0.0, 0.0, -4303, -4303], "anti-cs_0": ["anti-cs_0", "cs_0", 0.0, -0.3, 0.0, 0.0, -4301, -4301], "H_L--": ["H_L--", "H_L++", 200000.0, -2.0, 0.0, 0.0, -9900041, -9900041], "Mo95[0.0]": ["Mo95[0.0]", null, 88404.21, 42.0, 0.0, 0.0, 1000420950, 0], "Lambda(1810)~0": ["Lambda(1810)~0", "Lambda(1810)0", 1810.0, 0.0, 4.388081e-15, 150.00001195714884, -53122, 0], "K*_2(1980)~0": ["K*_2(1980)~0", "K*_2(1980)0", 1973.0, 0.0, 0.0, 0.0, -100315, 0], "Xi_bb0": ["Xi_bb0", "Xi_bb~0", 10422.72, 0.0, 0.001290893, 5.09889047712659e-10, 5522, 5522], "B_c*+": ["B_c*+", "B_c*-", 6602.0, 1.0, 0.0, 0.0, 543, 543], "Delta(1930)++": ["Delta(1930)++", "Delta(1930)~--", 1950.0, 2.0, 1.828367e-15, 360.00004510524286, 12226, 0], "Upsilon(10860)": ["Upsilon(10860)", "Upsilon(10860)", 10876.0, 0.0, 1.196749e-14, 55.00002109623133, 9000553, 0], "Upsilon(4S)": ["Upsilon(4S)", "Upsilon(4S)", 10579.4, 0.0, 3.210791e-14, 20.500001478418795, 300553, 300553], "B_c*-": ["B_c*-", "B_c*+", 6602.0, -1.0, 0.0, 0.0, -543, -543], "Upsilon_2(2D)": ["Upsilon_2(2D)", "Upsilon_2(2D)", 10440.6, 0.0, 0.0, 0.0, 120555, 120555], "Xi_c*+": ["Xi_c*+", "Xi_c*~-", 2645.9, 1.0, 0.0, 0.0, 4324, 4324], "Upsilon(11020)": ["Upsilon(11020)", "Upsilon(11020)", 11019.0, 0.0, 8.3318e-15, 79.00000029632703, 9010553, 0], "Sigma_b0": ["Sigma_b0", "Sigma_b~0", 5807.8, 0.0, 1e-10, 0.006582122024689376, 5212, 5212], "N(1520)~0": ["N(1520)~0", "N(1520)0", 1515.0, 0.0, 5.723584000000001e-15, 115.00000741999025, -1214, 0], "Delta(1930)~+": ["Delta(1930)~+", "Delta(1930)-", 1950.0, 1.0, 1.828367e-15, 360.00004510524286, -11116, 0], "Sigma_c~--": ["Sigma_c~--", "Sigma_c++", 2453.98, -2.0, 2.912443e-13, 2.2600002900277794, -4222, -4222], "Xi(1950)0": ["Xi(1950)0", "Xi(1950)~0", 1950.0, 0.0, 1.09702e-14, 60.00001845626675, 103326, 0], "psi(3770)": ["psi(3770)", "psi(3770)", 3773.1499999999996, 0.0, 2.4198979999999998e-14, 27.19999778787939, 30443, 30443], "D_s1(2536)-": ["D_s1(2536)-", "D_s1(2536)+", 2535.1, -1.0, 7.15448e-13, 0.9200000593599221, -10433, -10433], "Xi(1950)-": ["Xi(1950)-", "Xi(1950)~+", 1950.0, -1.0, 1.09702e-14, 60.00001845626675, 103316, 0], "nu_tau": ["nu_tau", "nu_tau~", 0.0, 0.0, 1e+25, 6.582122024689376e-38, 16, 16], "Xi_c(2790)0": ["Xi_c(2790)0", "Xi_c(2790)~0", 2791.7999999999997, 0.0, 0.0, 0.0, 104314, 0], "N(1520)~-": ["N(1520)~-", "N(1520)+", 1515.0, -1.0, 5.723584000000001e-15, 115.00000741999025, -2124, 0], "chi_b0(2P)": ["chi_b0(2P)", "chi_b0(2P)", 10232.5, 0.0, 0.0, 0.0, 110551, 110551], "Xi_c*0": ["Xi_c*0", "Xi_c*~0", 2645.9, 0.0, 0.0, 0.0, 4314, 4314], "Delta(1930)~0": ["Delta(1930)~0", "Delta(1930)0", 1950.0, 0.0, 1.828367e-15, 360.00004510524286, -11216, 0], "anti-b'": ["anti-b'", "b'", 400000.0, 0.3, 0.0, 0.0, -7, -7], "Z''0": ["Z''0", "Z''0", 900000.0, 0.0, 0.0, 0.0, 33, 33], "Delta(1930)0": ["Delta(1930)0", "Delta(1930)~0", 1950.0, 0.0, 1.828367e-15, 360.00004510524286, 11216, 0], "Cr52[0.0]": ["Cr52[0.0]", null, 48370.1, 24.0, 0.0, 0.0, 1000240520, 0], "string": ["string", "string", 0.0, 0.0, 0.0, 0.0, 92, 92], "Delta(1900)~-": ["Delta(1900)~-", "Delta(1900)+", 1840.0, -1.0, 0.0, 0.0, -12122, 0], "pi_tc0": ["pi_tc0", "pi_tc0", 110000.0, 0.0, 0.0, 0.0, 3000111, 3000111], "Omega~+": ["Omega~+", "Omega-", 1672.45, 1.0, 0.0821, 8.017201004493757e-12, -3334, -3334], "rho_11_tc": ["rho_11_tc", "rho_11_tc", 400000.0, 0.0, 0.0, 0.0, 3100113, 3100113], "Delta(1930)+": ["Delta(1930)+", "Delta(1930)~-", 1950.0, 1.0, 1.828367e-15, 360.00004510524286, 12126, 0], "eta_2(1870)": ["eta_2(1870)", "eta_2(1870)", 1854.0, 0.0, 0.0, 0.0, 10335, 0], "anti-cc_1": ["anti-cc_1", "cc_1", 0.0, -1.3, 0.0, 0.0, -4403, -4403], "Omega_b-": ["Omega_b-", "Omega_b~+", 6048.8, -1.0, 0.0010999999999999998, 5.98374729517216e-10, 5332, 5332], "D*_s2-": ["D*_s2-", "D*_s2+", 2571.8999999999996, -1.0, 3.8718359999999997e-14, 17.000002129969804, -435, -435], "Delta(1910)~-": ["Delta(1910)~-", "Delta(1910)+", 1890.0, -1.0, 2.350758e-15, 279.9999840344849, -22122, 0], "N(1675)0": ["N(1675)0", "N(1675)~0", 1675.0, 0.0, 4.388081e-15, 150.00001195714884, 2116, 0], "D*_s2+": ["D*_s2+", "D*_s2-", 2571.8999999999996, 1.0, 3.8718359999999997e-14, 17.000002129969804, 435, 435], "Be9[0.0]": ["Be9[0.0]", null, 8394.792000000001, 4.0, 0.0, 0.0, 1000040090, 0], "X_2(3872)": ["X_2(3872)", "X_2(3872)", 3871.69, 0.0, 2.07634e-12, 0.3170059828683826, 9910445, 9910445], "b_1(1235)0": ["b_1(1235)0", "b_1(1235)0", 1229.5, 0.0, 4.635297e-15, 142.00000614177205, 10113, 10113], "phi_3(1850)": ["phi_3(1850)", "phi_3(1850)", 1854.0, 0.0, 7.565657e-15, 87.00000574556017, 337, 0], "b_1(1235)-": ["b_1(1235)-", "b_1(1235)+", 1229.5, -1.0, 4.635297e-15, 142.00000614177205, -10213, -10213], "t'": ["t'", "anti-t'", 500000.0, 0.7, 0.0, 0.0, 8, 8], "Mo96[0.0]": ["Mo96[0.0]", null, 89334.621, 42.0, 0.0, 0.0, 1000420960, 0], "eta_2(1645)": ["eta_2(1645)", "eta_2(1645)", 1617.0, 0.0, 3.636531e-15, 181.0000251528002, 10225, 0], "N(1675)+": ["N(1675)+", "N(1675)~-", 1675.0, 1.0, 4.388081e-15, 150.00001195714884, 2216, 0], "D_1(H)~0": ["D_1(H)~0", "D_1(H)0", 2445.0, 0.0, 2.6299999999999997e-15, 250.270799417847, -20423, -20423], "~t_2bar": ["~t_2bar", "~t_2", 500000.0, -0.7, 0.0, 0.0, -2000006, -2000006], "Sigma(1670)~+": ["Sigma(1670)~+", "Sigma(1670)-", 1670.0, 1.0, 1.09702e-14, 60.00001845626675, -13114, 0], "Fe59[0.0]": ["Fe59[0.0]", null, 54897.48, 26.0, 0.0, 0.0, 1000260590, 0], "Sigma_c*++": ["Sigma_c*++", "Sigma_c*~--", 2517.9, 2.0, 4.417531e-14, 14.900001889492966, 4224, 4224], "B_1(L)~0": ["B_1(L)~0", "B_1(L)0", 5723.4, 0.0, 3.134e-14, 21.00230384393547, -10513, -10513], "Sigma(1670)~-": ["Sigma(1670)~-", "Sigma(1670)+", 1670.0, -1.0, 1.09702e-14, 60.00001845626675, -13224, 0], "e*bar+": ["e*bar+", "e*-", 400000.0, 1.0, 0.0, 0.0, -4000011, -4000011], "~c_Lbar": ["~c_Lbar", "~c_L", 500000.0, -0.7, 0.0, 0.0, -1000004, -1000004], "~e_R+": ["~e_R+", "~e_R-", 500000.0, 1.0, 0.0, 0.0, -2000011, -2000011], "Sigma(1670)~0": ["Sigma(1670)~0", "Sigma(1670)0", 1670.0, 0.0, 1.09702e-14, 60.00001845626675, -13214, 0], "~e_R-": ["~e_R-", "~e_R+", 500000.0, -1.0, 0.0, 0.0, 2000011, 2000011], "Lambda_b~0": ["Lambda_b~0", "Lambda_b0", 5619.5, 0.0, 0.001451, 4.5362660404475367e-10, -5122, -5122], "B_1(H)~0": ["B_1(H)~0", "B_1(H)0", 5757.0, 0.0, 2.6299999999999997e-15, 250.270799417847, -20513, -20513], "O19[0.0]": ["O19[0.0]", null, 17701.716999999997, 8.0, 0.0, 0.0, 1000080190, 0], "B~0": ["B~0", "B0", 5279.58, 0.0, 0.0015190000000000002, 4.3331942229686473e-10, -511, -511], "Mo100[0.0]": ["Mo100[0.0]", null, 93063.20300000001, 42.0, 0.0, 0.0, 1000421000, 0], "cs_1": ["cs_1", "anti-cs_1", 0.0, 0.3, 0.0, 0.0, 4303, 4303], "Upsilon_3(2D)": ["Upsilon_3(2D)", "Upsilon_3(2D)", 10444.3, 0.0, 0.0, 0.0, 100557, 100557], "indep": ["indep", "indep", 0.0, 0.0, 0.0, 0.0, 93, 93], "phi(1680)": ["phi(1680)", "phi(1680)", 1680.0, 0.0, 4.388081e-15, 150.00001195714884, 100333, 0], "D_1(2420)0": ["D_1(2420)0", "D_1(2420)~0", 2421.4, 0.0, 2.428827e-14, 27.10000351893888, 10423, 10423], "D_1(2420)-": ["D_1(2420)-", "D_1(2420)+", 2423.0, -1.0, 3.2900000000000004e-14, 20.006449923068008, -10413, -10413], "Graviton": ["Graviton", "Graviton", 0.0, 0.0, 0.0, 0.0, 39, 39], "Sigma~+": ["Sigma~+", "Sigma-", 1197.449, 1.0, 0.1479, 4.450386764495859e-12, -3112, -3112], "D_1(2420)+": ["D_1(2420)+", "D_1(2420)-", 2423.0, 1.0, 3.2900000000000004e-14, 20.006449923068008, 10413, 10413], "pi(1800)+": ["pi(1800)+", "pi(1800)-", 1812.0, 1.0, 3.164482e-15, 207.99998308378358, 9010211, 0], "anti-t-hadron": ["anti-t-hadron", "t-hadron", 175000.0, -0.7, 0.0, 0.0, -86, 0], "Z0": ["Z0", "Z0", 91187.6, 0.0, 2.637914e-16, 2495.1996254196974, 23, 23], "~nu_muRbar": ["~nu_muRbar", "~nu_muR", 500000.0, 0.0, 0.0, 0.0, -2000014, -2000014], "Xi_b*~+": ["Xi_b*~+", "Xi_b*-", 5970.0, 1.0, 0.0, 0.0, -5314, -5314], "Sigma_c++": ["Sigma_c++", "Sigma_c~--", 2453.98, 2.0, 2.912443e-13, 2.2600002900277794, 4222, 4222], "Delta(1930)~-": ["Delta(1930)~-", "Delta(1930)+", 1950.0, -1.0, 1.828367e-15, 360.00004510524286, -12126, 0], "nu_mu~": ["nu_mu~", "nu_mu", 0.0, 0.0, 1e+25, 6.582122024689376e-38, -14, -14], "CLUSjet": ["CLUSjet", "CLUSjet", 0.0, 0.0, 0.0, 0.0, 97, 97], "Sigma(2030)0": ["Sigma(2030)0", "Sigma(2030)~0", 2029.9999999999998, 0.0, 3.656734e-15, 180.00002255262143, 3218, 0], "eta_b2(1D)": ["eta_b2(1D)", "eta_b2(1D)", 10157.0, 0.0, 0.0, 0.0, 10555, 10555], "D*_0+": ["D*_0+", "D*_0-", 2318.0, 1.0, 2.465213e-15, 267.00013445853875, 10411, 10411], "D*_0-": ["D*_0-", "D*_0+", 2318.0, -1.0, 2.465213e-15, 267.00013445853875, -10411, -10411], "D*_00": ["D*_00", "D*_0~0", 2318.0, 0.0, 2.465213e-15, 267.00013445853875, 10421, 10421], "K*_4(2045)~0": ["K*_4(2045)~0", "K*_4(2045)0", 2045.0, 0.0, 3.324304e-15, 198.00000314921186, -319, 0], "uu_1": ["uu_1", "anti-uu_1", 0.0, 1.3, 0.0, 0.0, 2203, 2203], "psi(4040)": ["psi(4040)", "psi(4040)", 4038.9999999999995, 0.0, 8.227652e-15, 80.00000516173236, 9000443, 0], "D*_2(2460)~0": ["D*_2(2460)~0", "D*_2(2460)0", 2462.6, 0.0, 1.34329e-14, 49.00000762820668, -425, -425], "pi(1800)-": ["pi(1800)-", "pi(1800)+", 1812.0, -1.0, 3.164482e-15, 207.99998308378358, -9010211, 0], "Sigma(2030)+": ["Sigma(2030)+", "Sigma(2030)~-", 2029.9999999999998, 1.0, 3.656734e-15, 180.00002255262143, 3228, 0], "Lambda_b(5920)0": ["Lambda_b(5920)0", "Lambda_b(5920)~0", 5919.7699999999995, 0.0, 1.316e-12, 0.5001612480767003, 5124, 5124], "Sigma-": ["Sigma-", "Sigma~+", 1197.449, -1.0, 0.1479, 4.450386764495859e-12, 3112, 3112], "B*_0~0": ["B*_0~0", "B*_00", 5738.0, 0.0, 4.39e-15, 149.93444247583997, -10511, -10511], "f_0(980)": ["f_0(980)", "f_0(980)", 990.0, 0.0, 9.403031e-15, 70.00000345302888, 9010221, 10221], "~b_1bar": ["~b_1bar", "~b_1", 500000.0, 0.3, 0.0, 0.0, -1000005, -1000005], "Sigma+": ["Sigma+", "Sigma~-", 1189.3700000000001, 1.0, 0.08018, 8.209181871650505e-12, 3222, 3222], "Xi_cc++": ["Xi_cc++", "Xi_cc~--", 3597.98, 2.0, 0.0003335641, 1.973270512231195e-09, 4422, 4422], "Sigma(2250)~+": ["Sigma(2250)~+", "Sigma(2250)-", 2250.0, 1.0, 6.58e-15, 100.03224961534006, -103112, 0], "Xi*_bb~0": ["Xi*_bb~0", "Xi*_bb0", 10441.44, 0.0, 0.0, 0.0, -5524, -5524], "~nu_eR": ["~nu_eR", "~nu_eRbar", 500000.0, 0.0, 0.0, 0.0, 2000012, 2000012], "Mg26[0.0]": ["Mg26[0.0]", null, 24202.626, 12.0, 0.0, 0.0, 1000120260, 0], "Xi*_bb~+": ["Xi*_bb~+", "Xi*_bb-", 10441.44, 1.0, 0.0, 0.0, -5514, -5514], "B*_2~0": ["B*_2~0", "B*_20", 5743.0, 0.0, 2.8617920000000004e-14, 23.000001483998048, -515, -515], "Omega'_bc0": ["Omega'_bc0", "Omega'_bc~0", 7211.01, 0.0, 0.0, 0.0, 5432, 5432], "N(1990)~0": ["N(1990)~0", "N(1990)0", 1950.0, 0.0, 0.0, 0.0, -12118, 0], "D_1(H)0": ["D_1(H)0", "D_1(H)~0", 2445.0, 0.0, 2.6299999999999997e-15, 250.270799417847, 20423, 20423], "Lambda_c(2880)~-": ["Lambda_c(2880)~-", "Lambda_c(2880)+", 2881.53, -1.0, 1.134849e-13, 5.799998083171749, -204126, 0], "~mu_R-": ["~mu_R-", "~mu_R+", 500000.0, -1.0, 0.0, 0.0, 2000013, 2000013], "Sigma0": ["Sigma0", "Sigma~0", 1192.642, 0.0, 7.4e-11, 0.00889475949282348, 3212, 3212], "W_R-": ["W_R-", "W_R+", 750000.0, -1.0, 0.0, 0.0, -9900024, -9900024], "J/psi(1S)": ["J/psi(1S)", "J/psi(1S)", 3096.9159999999997, 0.0, 7.085169e-12, 0.09290000033435161, 443, 443], "Upsilon_2(1D)": ["Upsilon_2(1D)", "Upsilon_2(1D)", 10156.2, 0.0, 0.0, 0.0, 20555, 20555], "Delta~0": ["Delta~0", "Delta0", 1232.0, 0.0, 5.6257450000000005e-15, 117.00000666026234, -2114, -2114], "Delta~-": ["Delta~-", "Delta+", 1232.0, -1.0, 5.6257450000000005e-15, 117.00000666026234, -2214, -2214], "Ar36[0.0]": ["Ar36[0.0]", null, 33503.549, 18.0, 0.0, 0.0, 1000180360, 0], "Delta~+": ["Delta~+", "Delta-", 1232.0, 1.0, 5.6257450000000005e-15, 117.00000666026234, -1114, -1114], "anti-cu_0": ["anti-cu_0", "cu_0", 0.0, -1.3, 0.0, 0.0, -4201, -4201], "Lambda(1405)~0": ["Lambda(1405)~0", "Lambda(1405)0", 1405.1, 0.0, 1.316424e-14, 50.0000153802223, -13122, 0], "rho_tc-": ["rho_tc-", "rho_tc+", 210000.0, -1.0, 0.0, 0.0, -3000213, -3000213], "K*(1680)-": ["K*(1680)-", "K*(1680)+", 1717.0, -1.0, 2.056913e-15, 320.00002064692944, -30323, 0], "Delta(1920)++": ["Delta(1920)++", "Delta(1920)~--", 1920.0, 2.0, 2.531585e-15, 260.0000404761987, 22224, 0], "Pb207[0.0]": ["Pb207[0.0]", null, 192796.76499999998, 82.0, 0.0, 0.0, 1000822070, 0], "Fe57[0.0]": ["Fe57[0.0]", null, 53034.975000000006, 26.0, 0.0, 0.0, 1000260570, 0], "CELLjet": ["CELLjet", "CELLjet", 0.0, 0.0, 0.0, 0.0, 98, 98], "anti-bs_0": ["anti-bs_0", "bs_0", 0.0, 0.7, 0.0, 0.0, -5301, -5301], "tau+": ["tau+", "tau-", 1776.8200000000002, 1.0, 0.0002903, 2.267351713637401e-09, -15, -15], "~nu_tauLbar": ["~nu_tauLbar", "~nu_tauL", 500000.0, 0.0, 0.0, 0.0, -1000016, -1000016], "Omega_b~+": ["Omega_b~+", "Omega_b-", 6048.8, 1.0, 0.0010999999999999998, 5.98374729517216e-10, -5332, -5332], "Xi*0": ["Xi*0", "Xi*~0", 1531.8, 0.0, 7.233101e-14, 9.100000158561834, 3324, 3324], "Xi*-": ["Xi*-", "Xi*~+", 1535.0, -1.0, 6.648608e-14, 9.900000157460592, 3314, 3314], "chi_b0(3P)": ["chi_b0(3P)", "chi_b0(3P)", 10500.400000000001, 0.0, 0.0, 0.0, 210551, 210551], "K*_0(1430)~0": ["K*_0(1430)~0", "K*_0(1430)0", 1425.0, 0.0, 2.437823e-15, 269.9999969107427, -10311, -10311], "rho(1450)+": ["rho(1450)+", "rho(1450)-", 1465.0, 1.0, 1.64553e-15, 400.0001230417784, 100213, 0], "Lambda(1690)0": ["Lambda(1690)0", "Lambda(1690)~0", 1690.0, 0.0, 1.09702e-14, 60.00001845626675, 13124, 0], "pi_1(1600)+": ["pi_1(1600)+", "pi_1(1600)-", 1662.0, 1.0, 2.742551e-15, 239.99998631527274, 9010213, 0], "D_s1(2536)+": ["D_s1(2536)+", "D_s1(2536)-", 2535.1, 1.0, 7.15448e-13, 0.9200000593599221, 10433, 10433], "psi(4160)": ["psi(4160)", "psi(4160)", 4191.0, 0.0, 9.403029e-15, 70.00001834184894, 9010443, 0], "rho(770)0": ["rho(770)0", "rho(770)0", 775.26, 0.0, 4.4145690000000004e-15, 149.09999197406077, 113, 113], "Upsilon_1(1D)": ["Upsilon_1(1D)", "Upsilon_1(1D)", 10163.7, 0.0, 0.0, 0.0, 30553, 30553], "Xi_b*0": ["Xi_b*0", "Xi_b*~0", 5970.0, 0.0, 0.0, 0.0, 5324, 5324], "K*(1410)+": ["K*(1410)+", "K*(1410)-", 1414.0, 1.0, 2.837122e-15, 231.99996421336044, 100323, 0], "rho(770)+": ["rho(770)+", "rho(770)-", 775.26, 1.0, 4.4145690000000004e-15, 149.09999197406077, 213, 213], "Xi_b*-": ["Xi_b*-", "Xi_b*~+", 5970.0, -1.0, 0.0, 0.0, 5314, 5314], "rho(770)-": ["rho(770)-", "rho(770)+", 775.26, -1.0, 4.4145690000000004e-15, 149.09999197406077, -213, -213], "Ni58[0.0]": ["Ni58[0.0]", null, 53966.422, 28.0, 0.0, 0.0, 1000280580, 0], "Sigma_b+": ["Sigma_b+", "Sigma_b~-", 5811.3, 1.0, 6.785693e-14, 9.699999726909802, 5222, 5222], "KS0": ["KS0", "KS0", 497.614, 0.0, 0.08956399999999999, 7.349071082900916e-12, 310, 310], "K*(892)~0": ["K*(892)~0", "K*(892)0", 895.81, 0.0, 1.388633e-14, 47.40001155589257, -313, -313], "chi_c2(2P)": ["chi_c2(2P)", "chi_c2(2P)", 3927.2, 0.0, 2.7425510000000003e-14, 23.999998631527273, 100445, 0], "Sigma~0": ["Sigma~0", "Sigma0", 1192.642, 0.0, 7.4e-11, 0.00889475949282348, -3212, -3212], "C12[0.0]": ["C12[0.0]", null, 11174.9, 6.0, 0.0, 0.0, 1000060120, 0], "K*_3(1780)~0": ["K*_3(1780)~0", "K*_3(1780)0", 1776.0, 0.0, 4.139699e-15, 159.00001484864904, -317, 0], "Xi_c(2790)~-": ["Xi_c(2790)~-", "Xi_c(2790)+", 2789.1, -1.0, 0.0, 0.0, -104324, 0], "Delta(1700)0": ["Delta(1700)0", "Delta(1700)~0", 1700.0, 0.0, 2.194041e-15, 299.9999555472927, 12114, 0], "anti-bd_1": ["anti-bd_1", "bd_1", 0.0, 0.7, 0.0, 0.0, -5103, -5103], "Delta(1700)-": ["Delta(1700)-", "Delta(1700)~+", 1700.0, -1.0, 2.194041e-15, 299.9999555472927, 11114, 0], "Sigma(1750)~+": ["Sigma(1750)~+", "Sigma(1750)-", 1750.0, 1.0, 7.313469000000001e-15, 89.99999897024757, -23112, 0], "Omega*_cc+": ["Omega*_cc+", "Omega*_cc~-", 3824.6600000000003, 1.0, 0.0, 0.0, 4434, 4434], "B*_s00": ["B*_s00", "B*_s0~0", 5841.0, 0.0, 4.39e-15, 149.93444247583997, 10531, 10531], "Sigma~-": ["Sigma~-", "Sigma+", 1189.3700000000001, -1.0, 0.08018, 8.209181871650505e-12, -3222, -3222], "Delta(1700)+": ["Delta(1700)+", "Delta(1700)~-", 1700.0, 1.0, 2.194041e-15, 299.9999555472927, 12214, 0], "anti-bc_0": ["anti-bc_0", "bc_0", 0.0, -0.3, 0.0, 0.0, -5401, -5401], "anti-bc_1": ["anti-bc_1", "bc_1", 0.0, -0.3, 0.0, 0.0, -5403, -5403], "Sigma_b-": ["Sigma_b-", "Sigma_b~+", 5815.5, -1.0, 1.34329e-13, 4.900000762820668, 5112, 5112], "Delta(1920)~--": ["Delta(1920)~--", "Delta(1920)++", 1920.0, -2.0, 2.531585e-15, 260.0000404761987, -22224, 0], "N(1700)~0": ["N(1700)~0", "N(1700)0", 1700.0, 0.0, 4.388081e-15, 150.00001195714884, -21214, 0], "Sigma(1940)~+": ["Sigma(1940)~+", "Sigma(1940)-", 1940.0, 1.0, 2.991874e-15, 219.99997408612046, -23114, 0], "triton~": ["triton~", "triton", 2809.25, -1.0, 0.0, 0.0, -1000010030, 0], "Sigma(1940)~-": ["Sigma(1940)~-", "Sigma(1940)+", 1940.0, -1.0, 2.991874e-15, 219.99997408612046, -23224, 0], "a_1(1260)0": ["a_1(1260)0", "a_1(1260)0", 1230.0, 0.0, 1.567172e-15, 419.99997605172734, 20113, 20113], "W'-": ["W'-", "W'+", 500000.0, -1.0, 0.0, 0.0, -34, -34], "C13[0.0]": ["C13[0.0]", null, 12112.545, 6.0, 0.0, 0.0, 1000060130, 0], "B_1(H)0": ["B_1(H)0", "B_1(H)~0", 5757.0, 0.0, 2.6299999999999997e-15, 250.270799417847, 20513, 20513], "psi(4415)": ["psi(4415)", "psi(4415)", 4421.0, 0.0, 1.061633e-14, 61.999975741987825, 9020443, 0], "W'+": ["W'+", "W'-", 500000.0, 1.0, 0.0, 0.0, 34, 34], "N(1900)0": ["N(1900)0", "N(1900)~0", 1850.0, 0.0, 0.0, 0.0, 41214, 0], "N(1900)+": ["N(1900)+", "N(1900)~-", 1850.0, 1.0, 0.0, 0.0, 42124, 0], "Ni61[0.0]": ["Ni61[0.0]", null, 56756.909, 28.0, 0.0, 0.0, 1000280610, 0], "a_1(1260)-": ["a_1(1260)-", "a_1(1260)+", 1230.0, -1.0, 1.567172e-15, 419.99997605172734, -20213, -20213], "Sigma(1940)~0": ["Sigma(1940)~0", "Sigma(1940)0", 1940.0, 0.0, 2.991874e-15, 219.99997408612046, -23214, 0], "eta(1405)0": ["eta(1405)0", "eta(1405)0", 1408.8, 0.0, 1.290612e-14, 51.00000638990941, 9020221, 0], "N(1700)~-": ["N(1700)~-", "N(1700)+", 1700.0, -1.0, 4.388081e-15, 150.00001195714884, -22124, 0], "a_1(1260)+": ["a_1(1260)+", "a_1(1260)-", 1230.0, 1.0, 1.567172e-15, 419.99997605172734, 20213, 20213], "N(1900)~0": ["N(1900)~0", "N(1900)0", 1850.0, 0.0, 0.0, 0.0, -41214, 0], "a_0(1450)-": ["a_0(1450)-", "a_0(1450)+", 1474.0, -1.0, 2.48382e-15, 264.9999607334418, -10211, 0], "N(1440)0": ["N(1440)0", "N(1440)~0", 1430.0, 0.0, 2.194041e-15, 299.9999555472927, 12112, 0], "anti-c": ["anti-c", "c", 1350.0, -0.7, 0.0, 0.0, -4, -4], "a_0(1450)+": ["a_0(1450)+", "a_0(1450)-", 1474.0, 1.0, 2.48382e-15, 264.9999607334418, 10211, 0], "N(1720)0": ["N(1720)0", "N(1720)~0", 1720.0, 0.0, 2.632849e-15, 249.99998194690906, 31214, 0], "N(1440)+": ["N(1440)+", "N(1440)~-", 1430.0, 1.0, 2.194041e-15, 299.9999555472927, 12212, 0], "anti-bd_0": ["anti-bd_0", "bd_0", 0.0, 0.7, 0.0, 0.0, -5101, -5101], "N(1720)+": ["N(1720)+", "N(1720)~-", 1720.0, 1.0, 2.632849e-15, 249.99998194690906, 32124, 0], "a_0(1450)0": ["a_0(1450)0", "a_0(1450)0", 1474.0, 0.0, 2.48382e-15, 264.9999607334418, 10111, 0], "nu_Rtau": ["nu_Rtau", "nu_Rtau", 500000.0, 0.0, 0.0, 0.0, 9900016, 9900016], "Ni62[0.0]": ["Ni62[0.0]", null, 57685.877, 28.0, 0.0, 0.0, 1000280620, 0], "~t_1bar": ["~t_1bar", "~t_1", 500000.0, -0.7, 0.0, 0.0, -1000006, -1000006], "pi_2(1670)+": ["pi_2(1670)+", "pi_2(1670)-", 1672.1999999999998, 1.0, 2.531585e-15, 260.0000404761987, 10215, 0], "H_20": ["H_20", "H_20", 310000.0, 0.0, 9.4e-17, 7002.257473073804, 35, 35], "N(1720)~0": ["N(1720)~0", "N(1720)0", 1720.0, 0.0, 2.632849e-15, 249.99998194690906, -31214, 0], "Upsilon(3S)": ["Upsilon(3S)", "Upsilon(3S)", 10355.2, 0.0, 3.242425e-11, 0.020299997763061215, 200553, 200553], "Sigma(1750)~-": ["Sigma(1750)~-", "Sigma(1750)+", 1750.0, -1.0, 7.313469000000001e-15, 89.99999897024757, -23222, 0], "L-": ["L-", "L+", 400000.0, -1.0, 0.0, 0.0, 17, 17], "bb_1": ["bb_1", "anti-bb_1", 0.0, -0.7, 0.0, 0.0, 5503, 5503], "L+": ["L+", "L-", 400000.0, 1.0, 0.0, 0.0, -17, -17], "Sigma(1750)0": ["Sigma(1750)0", "Sigma(1750)~0", 1750.0, 0.0, 7.313469000000001e-15, 89.99999897024757, 23212, 0], "f_1(1420)": ["f_1(1420)", "f_1(1420)", 1426.3999999999999, 0.0, 1.1989290000000001e-14, 54.90001513592026, 20333, 20333], "Sigma(1750)-": ["Sigma(1750)-", "Sigma(1750)~+", 1750.0, -1.0, 7.313469000000001e-15, 89.99999897024757, 23112, 0], "~nu_muLbar": ["~nu_muLbar", "~nu_muL", 500000.0, 0.0, 0.0, 0.0, -1000014, -1000014], "Sigma(1750)+": ["Sigma(1750)+", "Sigma(1750)~-", 1750.0, 1.0, 7.313469000000001e-15, 89.99999897024757, 23222, 0], "Delta(1905)++": ["Delta(1905)++", "Delta(1905)~--", 1880.0, 2.0, 1.9945819999999998e-15, 330.0000714279672, 2226, 0], "anti-bu_0": ["anti-bu_0", "bu_0", 0.0, -0.3, 0.0, 0.0, -5201, -5201], "anti-b-hadron": ["anti-b-hadron", "b-hadron", 5000.0, 0.3, 0.001290893, 5.09889047712659e-10, -85, -85], "Upsilon_1(2D)": ["Upsilon_1(2D)", "Upsilon_1(2D)", 10434.900000000001, 0.0, 0.0, 0.0, 130553, 130553], "N(1720)~-": ["N(1720)~-", "N(1720)+", 1720.0, -1.0, 2.632849e-15, 249.99998194690906, -32124, 0], "W_R+": ["W_R+", "W_R-", 750000.0, 1.0, 0.0, 0.0, 9900024, 9900024], "~nu_tauRbar": ["~nu_tauRbar", "~nu_tauR", 500000.0, 0.0, 0.0, 0.0, -2000016, -2000016], "Delta(1620)~--": ["Delta(1620)~--", "Delta(1620)++", 1630.0, -2.0, 4.701516e-15, 139.99999201724245, -2222, 0], "Delta(1900)++": ["Delta(1900)++", "Delta(1900)~--", 1840.0, 2.0, 0.0, 0.0, 12222, 0], "geantino": ["geantino", "geantino", 0.0, 0.0, 1e+24, 6.582122024689375e-37, 480000000, 0], "D(2S)-": ["D(2S)-", "D(2S)+", 2580.0, -1.0, 0.0, 0.0, -100411, 0], "chi_b2(2P)": ["chi_b2(2P)", "chi_b2(2P)", 10268.65, 0.0, 0.0, 0.0, 100555, 100555], "pi_22_1_tc": ["pi_22_1_tc", "pi_22_1_tc", 125000.0, 0.0, 0.0, 0.0, 3100111, 3100111], "Lambda(1800)0": ["Lambda(1800)0", "Lambda(1800)~0", 1800.0, 0.0, 2.194041e-15, 299.9999555472927, 43122, 0], "P31[0.0]": ["P31[0.0]", null, 28851.869000000002, 15.0, 0.0, 0.0, 1000150310, 0], "Xi*_cc~-": ["Xi*_cc~-", "Xi*_cc+", 3656.48, -1.0, 0.0, 0.0, -4414, -4414], "K_1(1400)~0": ["K_1(1400)~0", "K_1(1400)0", 1403.0, 0.0, 3.782829e-15, 173.9999884924583, -20313, -20313], "Lambda(1600)~0": ["Lambda(1600)~0", "Lambda(1600)0", 1600.0, 0.0, 4.388081e-15, 150.00001195714884, -23122, 0], "~chi_30": ["~chi_30", "~chi_30", 500000.0, 0.0, 0.0, 0.0, 1000025, 1000025], "ud_0": ["ud_0", "anti-ud_0", 0.0, 0.3, 0.0, 0.0, 2101, 2101], "Lambda_c+": ["Lambda_c+", "Lambda_c~-", 2286.46, 1.0, 0.0002, 3.291061012344688e-09, 4122, 4122], "anti-dd_1": ["anti-dd_1", "dd_1", 0.0, 0.7, 0.0, 0.0, -1103, -1103], "anti-rndmflav": ["anti-rndmflav", "rndmflav", 0.0, 0.0, 0.0, 0.0, -82, -82], "K_1(1270)~0": ["K_1(1270)~0", "K_1(1270)0", 1272.0, 0.0, 7.313469000000001e-15, 89.99999897024757, -10313, -10313], "nu_e": ["nu_e", "nu_e~", 0.0, 0.0, 1e+25, 6.582122024689376e-38, 12, 12], "Delta(1950)0": ["Delta(1950)0", "Delta(1950)~0", 1930.0, 0.0, 2.350758e-15, 279.9999840344849, 2118, 0], "deutron~": ["deutron~", "deuteron", 1875.613, -1.0, 0.0, 0.0, -1000010020, 0], "N(1535)~0": ["N(1535)~0", "N(1535)0", 1535.0, 0.0, 4.388081e-15, 150.00001195714884, -22112, 0], "Sigma_b~+": ["Sigma_b~+", "Sigma_b-", 5815.5, 1.0, 1.34329e-13, 4.900000762820668, -5112, -5112], "Delta(1950)+": ["Delta(1950)+", "Delta(1950)~-", 1930.0, 1.0, 2.350758e-15, 279.9999840344849, 2218, 0], "Delta(1950)-": ["Delta(1950)-", "Delta(1950)~+", 1930.0, -1.0, 2.350758e-15, 279.9999840344849, 1118, 0], "B_s1(H)~0": ["B_s1(H)~0", "B_s1(H)0", 5859.0, 0.0, 2.6299999999999997e-15, 250.270799417847, -20533, -20533], "anti-cd_0": ["anti-cd_0", "cd_0", 0.0, -0.3, 0.0, 0.0, -4101, -4101], "anti-cd_1": ["anti-cd_1", "cd_1", 0.0, -0.3, 0.0, 0.0, -4103, -4103], "Delta0": ["Delta0", "Delta~0", 1232.0, 0.0, 5.6257450000000005e-15, 117.00000666026234, 2114, 2114], "~b_1": ["~b_1", "~b_1bar", 500000.0, -0.3, 0.0, 0.0, 1000005, 1000005], "Lambda(1830)0": ["Lambda(1830)0", "Lambda(1830)~0", 1830.0, 0.0, 6.928549e-15, 95.00000685120904, 13126, 0], "Omega_bc~0": ["Omega_bc~0", "Omega_bc0", 7190.99, 0.0, 0.0005, 1.316424404937875e-09, -5342, -5342], "~nu_eLbar": ["~nu_eLbar", "~nu_eL", 500000.0, 0.0, 0.0, 0.0, -1000012, -1000012], "N(2190)~0": ["N(2190)~0", "N(2190)0", 2190.0, 0.0, 1.316424e-15, 500.00015380222294, -1218, 0], "Delta(1930)-": ["Delta(1930)-", "Delta(1930)~+", 1950.0, -1.0, 1.828367e-15, 360.00004510524286, 11116, 0], "nu_L": ["nu_L", "anti-nu_L", 0.0, 0.0, 0.0, 0.0, 18, 18], "~e_L+": ["~e_L+", "~e_L-", 500000.0, 1.0, 0.0, 0.0, -1000011, -1000011], "Sigma(2250)0": ["Sigma(2250)0", "Sigma(2250)~0", 2250.0, 0.0, 6.58e-15, 100.03224961534006, 103212, 0], "N(2190)~-": ["N(2190)~-", "N(2190)+", 2190.0, -1.0, 1.316424e-15, 500.00015380222294, -2128, 0], "~e_L-": ["~e_L-", "~e_L+", 500000.0, -1.0, 0.0, 0.0, 1000011, 1000011], "X_1(3872)": ["X_1(3872)", "X_1(3872)", 3871.69, 0.0, 2.07634e-12, 0.3170059828683826, 9920443, 9920443], "Omega*_bbc~0": ["Omega*_bbc~0", "Omega*_bbc0", 11711.470000000001, 0.0, 0.0, 0.0, -5544, -5544], "Delta+": ["Delta+", "Delta~-", 1232.0, 1.0, 5.6257450000000005e-15, 117.00000666026234, 2214, 2214], "Delta-": ["Delta-", "Delta~+", 1232.0, -1.0, 5.6257450000000005e-15, 117.00000666026234, 1114, 1114], "bd_1": ["bd_1", "anti-bd_1", 0.0, -0.7, 0.0, 0.0, 5103, 5103], "bd_0": ["bd_0", "anti-bd_0", 0.0, -0.7, 0.0, 0.0, 5101, 5101], "Delta(1905)~--": ["Delta(1905)~--", "Delta(1905)++", 1880.0, -2.0, 1.9945819999999998e-15, 330.0000714279672, -2226, 0], "K*(1680)~0": ["K*(1680)~0", "K*(1680)0", 1717.0, 0.0, 2.056913e-15, 320.00002064692944, -30313, 0], "a_2(1320)+": ["a_2(1320)+", "a_2(1320)-", 1318.3, 1.0, 6.151516e-15, 106.99999845061566, 215, 215], "Lambda(1820)~0": ["Lambda(1820)~0", "Lambda(1820)0", 1820.0, 0.0, 8.227652e-15, 80.00000516173236, -3126, 0], "R0": ["R0", "anti-R0", 5000000.0, 0.0, 0.0, 0.0, 41, 41], "a_0(980)0": ["a_0(980)0", "a_0(980)0", 980.0, 0.0, 8.776163e-15, 74.99999743269781, 9000111, 10111], "Xi_c~0": ["Xi_c~0", "Xi_c0", 2470.88, 0.0, 0.000112, 5.876894664901228e-09, -4132, -4132], "pi(1300)0": ["pi(1300)0", "pi(1300)0", 1300.0, 0.0, 1.64553e-15, 400.0001230417784, 100111, 0], "Lambda_c(2595)~-": ["Lambda_c(2595)~-", "Lambda_c(2595)+", 2592.25, -1.0, 2.531585e-13, 2.600000404761987, -14122, 0], "~nu_eL": ["~nu_eL", "~nu_eLbar", 500000.0, 0.0, 0.0, 0.0, 1000012, 1000012], "Omega*_bc~0": ["Omega*_bc~0", "Omega*_bc0", 7219.0, 0.0, 0.0, 0.0, -5434, -5434], "Xi_bc+": ["Xi_bc+", "Xi_bc~-", 6900.0, 1.0, 0.0005, 1.316424404937875e-09, 5242, 5242], "Omega*_bbc0": ["Omega*_bbc0", "Omega*_bbc~0", 11711.470000000001, 0.0, 0.0, 0.0, 5544, 5544], "chi_b2(1P)": ["chi_b2(1P)", "chi_b2(1P)", 9912.21, 0.0, 0.0, 0.0, 555, 555], "pi(1300)-": ["pi(1300)-", "pi(1300)+", 1300.0, -1.0, 1.64553e-15, 400.0001230417784, -100211, 0], "Xi_bc0": ["Xi_bc0", "Xi_bc~0", 6900.0, 0.0, 0.0005, 1.316424404937875e-09, 5142, 5142], "Lambda(1690)~0": ["Lambda(1690)~0", "Lambda(1690)0", 1690.0, 0.0, 1.09702e-14, 60.00001845626675, -13124, 0], "Be10[0.0]": ["Be10[0.0]", null, 9327.545, 4.0, 0.0, 0.0, 1000040100, 0], "a_2(1320)0": ["a_2(1320)0", "a_2(1320)0", 1318.3, 0.0, 6.151516e-15, 106.99999845061566, 115, 115], "Delta~--": ["Delta~--", "Delta++", 1232.0, -2.0, 5.6257450000000005e-15, 117.00000666026234, -2224, -2224], "N(1990)0": ["N(1990)0", "N(1990)~0", 1950.0, 0.0, 0.0, 0.0, 12118, 0], "D*(2007)~0": ["D*(2007)~0", "D*(2007)0", 2006.9599999999998, 0.0, 1.000003e-10, 0.006582102278382541, -423, -423], "anti-b'-hadron": ["anti-b'-hadron", "b'-hadron", 400000.0, 0.3, 0.0, 0.0, -87, 0], "Lambda(2110)~0": ["Lambda(2110)~0", "Lambda(2110)0", 2110.0, 0.0, 3.291061e-15, 200.000000750195, -23126, 0], "Sigma_c0": ["Sigma_c0", "Sigma_c~0", 2453.74, 0.0, 3.047279e-13, 2.159999798078671, 4112, 4112], "K*(892)-": ["K*(892)-", "K*(892)+", 891.66, -1.0, 1.295693e-14, 50.80001223043866, -323, -323], "B_c1(L)-": ["B_c1(L)-", "B_c1(L)+", 7300.0, -1.0, 0.0, 0.0, -10543, -10543], "pi_1(1600)-": ["pi_1(1600)-", "pi_1(1600)+", 1662.0, -1.0, 2.742551e-15, 239.99998631527274, -9010213, 0], "B_c1(H)+": ["B_c1(H)+", "B_c1(H)-", 7400.0, 1.0, 0.0, 0.0, 20543, 20543], "K*(892)+": ["K*(892)+", "K*(892)-", 891.66, 1.0, 1.295693e-14, 50.80001223043866, 323, 323], "N(1710)~0": ["N(1710)~0", "N(1710)0", 1710.0, 0.0, 6.582122e-15, 100.0000003750975, -42112, 0], "K*(892)0": ["K*(892)0", "K*(892)~0", 895.81, 0.0, 1.388633e-14, 47.40001155589257, 313, 313], "N(1900)~-": ["N(1900)~-", "N(1900)+", 1850.0, -1.0, 0.0, 0.0, -42124, 0], "Sigma_c+": ["Sigma_c+", "Sigma_c~-", 2452.9, 1.0, 3.999999e-13, 1.6455309175550732, 4212, 4212], "B12[0.0]": ["B12[0.0]", null, 11191.295, 5.0, 0.0, 0.0, 1000050120, 0], "anti-bb_1": ["anti-bb_1", "bb_1", 0.0, 0.7, 0.0, 0.0, -5503, -5503], "B*_s0~0": ["B*_s0~0", "B*_s00", 5841.0, 0.0, 4.39e-15, 149.93444247583997, -10531, -10531], "Xi(1820)~+": ["Xi(1820)~+", "Xi(1820)-", 1823.0, 1.0, 2.7425510000000003e-14, 23.999998631527273, -13314, 0], "Omega_c0": ["Omega_c0", "Omega_c~0", 2695.2, 0.0, 6.9e-05, 9.539307282158515e-09, 4332, 4332], "K*_0(1430)-": ["K*_0(1430)-", "K*_0(1430)+", 1425.0, -1.0, 2.437823e-15, 269.9999969107427, -10321, -10321], "Lambda(1820)0": ["Lambda(1820)0", "Lambda(1820)~0", 1820.0, 0.0, 8.227652e-15, 80.00000516173236, 3126, 0], "Mg24[0.0]": ["Mg24[0.0]", null, 22341.92, 12.0, 0.0, 0.0, 1000120240, 0], "Delta(1900)~--": ["Delta(1900)~--", "Delta(1900)++", 1840.0, -2.0, 0.0, 0.0, -12222, 0], "Xi_cc~-": ["Xi_cc~-", "Xi_cc+", 3597.98, -1.0, 0.0003335641, 1.973270512231195e-09, -4412, -4412], "~d_Rbar": ["~d_Rbar", "~d_R", 500000.0, 0.3, 0.0, 0.0, -2000001, -2000001], "B_c-": ["B_c-", "B_c+", 6273.7, -1.0, 0.000507, 1.2982489200570762e-09, -541, -541], "B*_s0": ["B*_s0", "B*_s~0", 5415.4, 0.0, 1e-10, 0.006582122024689376, 533, 533], "B_c+": ["B_c+", "B_c-", 6273.7, 1.0, 0.000507, 1.2982489200570762e-09, 541, 541], "Mn55[0.0]": ["Mn55[0.0]", null, 51174.456999999995, 25.0, 0.0, 0.0, 1000250550, 0], "cd_0": ["cd_0", "anti-cd_0", 0.0, 0.3, 0.0, 0.0, 4101, 4101], "cd_1": ["cd_1", "anti-cd_1", 0.0, 0.3, 0.0, 0.0, 4103, 4103], "Xi_c(2815)~-": ["Xi_c(2815)~-", "Xi_c(2815)+", 2816.6000000000004, -1.0, 0.0, 0.0, -104322, 0], "Xi(1820)~0": ["Xi(1820)~0", "Xi(1820)0", 1823.0, 0.0, 2.7425510000000003e-14, 23.999998631527273, -13324, 0], "sigma_0": ["sigma_0", "sigma_0", 475.0, 0.0, 1.196749e-15, 550.0002109623134, 9000221, 0], "b_1(1235)+": ["b_1(1235)+", "b_1(1235)-", 1229.5, 1.0, 4.635297e-15, 142.00000614177205, 10213, 10213], "N15[0.0]": ["N15[0.0]", null, 13043.778, 7.0, 0.0, 0.0, 1000070150, 0], "K*_3(1780)-": ["K*_3(1780)-", "K*_3(1780)+", 1776.0, -1.0, 4.139699e-15, 159.00001484864904, -327, 0], "K*_3(1780)+": ["K*_3(1780)+", "K*_3(1780)-", 1776.0, 1.0, 4.139699e-15, 159.00001484864904, 327, 0], "chi_c2(1P)": ["chi_c2(1P)", "chi_c2(1P)", 3556.2, 0.0, 3.410425e-13, 1.9300005203719113, 445, 445], "Delta(1900)~+": ["Delta(1900)~+", "Delta(1900)-", 1840.0, 1.0, 0.0, 0.0, -11112, 0], "phi(1020)": ["phi(1020)", "phi(1020)", 1019.4609999999999, 0.0, 1.545099e-13, 4.260000184253162, 333, 333], "K*_3(1780)0": ["K*_3(1780)0", "K*_3(1780)~0", 1776.0, 0.0, 4.139699e-15, 159.00001484864904, 317, 0], "N(1535)~-": ["N(1535)~-", "N(1535)+", 1535.0, -1.0, 4.388081e-15, 150.00001195714884, -22212, 0], "phasespa": ["phasespa", "phasespa", 1000.0, 0.0, 0.0, 0.0, 83, 83], "e-": ["e-", "e+", 0.5109999999999999, -1.0, 1e+25, 6.582122024689376e-38, 11, 11], "B_s0L": ["B_s0L", "B_s0L", 5366.7699999999995, 0.0, 0.001405, 4.684784359209521e-10, 350, 0], "B_s0H": ["B_s0H", "B_s0H", 5366.7699999999995, 0.0, 0.0016610000000000001, 3.9627465530941453e-10, 530, 0], "e+": ["e+", "e-", 0.5109999999999999, 1.0, 1e+25, 6.582122024689376e-38, -11, -11], "cs_0": ["cs_0", "anti-cs_0", 0.0, 0.3, 0.0, 0.0, 4301, 4301], "D_1(H)-": ["D_1(H)-", "D_1(H)+", 2445.0, -1.0, 2.6299999999999997e-15, 250.270799417847, -20413, -20413], "anti-nu_L": ["anti-nu_L", "nu_L", 0.0, 0.0, 0.0, 0.0, -18, -18], "Cr53[0.0]": ["Cr53[0.0]", null, 49313.894, 24.0, 0.0, 0.0, 1000240530, 0], "D_1(H)+": ["D_1(H)+", "D_1(H)-", 2445.0, 1.0, 2.6299999999999997e-15, 250.270799417847, 20413, 20413], "junction": ["junction", "junction", 0.0, 0.0, 0.0, 0.0, 88, 88], "pi(1800)0": ["pi(1800)0", "pi(1800)0", 1812.0, 0.0, 3.164482e-15, 207.99998308378358, 9010111, 0], "opticalphoton": ["opticalphoton", "opticalphoton", 0.0, 0.0, 1e+25, 6.582122024689376e-38, 20022, 0], "cu_1": ["cu_1", "anti-cu_1", 0.0, 1.3, 0.0, 0.0, 4203, 4203], "cu_0": ["cu_0", "anti-cu_0", 0.0, 1.3, 0.0, 0.0, 4201, 4201], "Xi_cc+": ["Xi_cc+", "Xi_cc~-", 3597.98, 1.0, 0.0003335641, 1.973270512231195e-09, 4412, 4412], "anti-Xss": ["anti-Xss", "Xss", 1800.0, 0.0, 0.0, 0.0, -30363, -30363], "anti-s": ["anti-s", "s", 199.0, 0.3, 0.0, 0.0, -3, -3], "anti-u": ["anti-u", "u", 5.6, -0.7, 0.0, 0.0, -2, -2], "anti-t": ["anti-t", "t", 173500.0, -0.7, 3.291061e-16, 2000.0000075019502, -6, -6], "g": ["g", "g", 0.0, 0.0, 1e+25, 6.582122024689376e-38, 21, 21], "anti-Xsu": ["anti-Xsu", "Xsu", 1600.0, -1.0, 0.0, 0.0, -30353, -30353], "Lambda0": ["Lambda0", "Lambda~0", 1115.683, 0.0, 0.2632, 2.5008062403835015e-12, 3122, 3122], "K_2(1770)~0": ["K_2(1770)~0", "K_2(1770)0", 1773.0, 0.0, 3.538775e-15, 186.00001482686451, -10315, 0], "alpha~": ["alpha~", "alpha", 3727.417, -2.0, 0.0, 0.0, -1000020040, 0], "pi_2(1670)0": ["pi_2(1670)0", "pi_2(1670)0", 1672.1999999999998, 0.0, 2.531585e-15, 260.0000404761987, 10115, 0], "B*_s2~0": ["B*_s2~0", "B*_s20", 5839.96, 0.0, 4.113825e-13, 1.6000004921671134, -535, -535], "D*_s+": ["D*_s+", "D*_s-", 2112.1, 1.0, 1.000003e-10, 0.006582102278382541, 433, 433], "anti-b": ["anti-b", "b", 5000.0, 0.3, 0.0, 0.0, -5, -5], "D*_s-": ["D*_s-", "D*_s+", 2112.1, -1.0, 1.000003e-10, 0.006582102278382541, -433, -433], "anti-d": ["anti-d", "d", 9.9, 0.3, 0.0, 0.0, -1, -1], "anti-Xsd": ["anti-Xsd", "Xsd", 1600.0, 0.0, 0.0, 0.0, -30343, -30343], "nu*_e0": ["nu*_e0", "nu*_ebar0", 400000.0, 0.0, 0.0, 0.0, 4000012, 4000012], "Cr54[0.0]": ["Cr54[0.0]", null, 50243.741, 24.0, 0.0, 0.0, 1000240540, 0], "pi_tc-": ["pi_tc-", "pi_tc+", 110000.0, -1.0, 0.0, 0.0, -3000211, -3000211], "Delta(1910)~0": ["Delta(1910)~0", "Delta(1910)0", 1890.0, 0.0, 2.350758e-15, 279.9999840344849, -21212, 0], "pi_tc+": ["pi_tc+", "pi_tc-", 110000.0, 1.0, 0.0, 0.0, 3000211, 3000211], "rho_tc0": ["rho_tc0", "rho_tc0", 210000.0, 0.0, 0.0, 0.0, 3000113, 3000113], "Xi(1690)~+": ["Xi(1690)~+", "Xi(1690)-", 1690.0, 1.0, 0.0, 0.0, -203312, 0], "Lambda_c(2625)~-": ["Lambda_c(2625)~-", "Lambda_c(2625)+", 2628.11, -1.0, 0.0, 0.0, -104124, 0], "Sigma_c*+": ["Sigma_c*+", "Sigma_c*~-", 2517.5, 1.0, 3.291061e-13, 2.0000000075019497, 4214, 4214], "K+": ["K+", "K-", 493.67699999999996, 1.0, 12.38, 5.3167383075035345e-14, 321, 321], "pi_1(1400)-": ["pi_1(1400)-", "pi_1(1400)+", 1354.0, -1.0, 1.9945819999999998e-15, 330.0000714279672, -9000213, 0], "K-": ["K-", "K+", 493.67699999999996, -1.0, 12.38, 5.3167383075035345e-14, -321, -321], "K0": ["K0", "K~0", 497.614, 0.0, 0.0, 0.0, 311, 311], "Delta(1910)~--": ["Delta(1910)~--", "Delta(1910)++", 1890.0, -2.0, 2.350758e-15, 279.9999840344849, -22222, 0], "H_10": ["H_10", "H_10", 125700.0, 0.0, 9.4e-17, 7002.257473073804, 25, 25], "Omega*_bbb~+": ["Omega*_bbb~+", "Omega*_bbb-", 15110.609999999999, 1.0, 0.0, 0.0, -5554, -5554], "Sigma_c*0": ["Sigma_c*0", "Sigma_c*~0", 2518.8, 0.0, 4.539394e-14, 14.500001596445198, 4114, 4114], "Sigma(1750)~0": ["Sigma(1750)~0", "Sigma(1750)0", 1750.0, 0.0, 7.313469000000001e-15, 89.99999897024757, -23212, 0], "~s_Lbar": ["~s_Lbar", "~s_L", 500000.0, 0.3, 0.0, 0.0, -1000003, -1000003], "K(1460)+": ["K(1460)+", "K(1460)-", 1432.3999999999999, 1.0, 0.0, 0.0, 100321, 0], "anti-bu_1": ["anti-bu_1", "bu_1", 0.0, -0.3, 0.0, 0.0, -5203, -5203], "d*bar": ["d*bar", "d*", 400000.0, 0.3, 0.0, 0.0, -4000001, -4000001], "B_s1(H)0": ["B_s1(H)0", "B_s1(H)~0", 5859.0, 0.0, 2.6299999999999997e-15, 250.270799417847, 20533, 20533], "K(1460)~0": ["K(1460)~0", "K(1460)0", 1432.3999999999999, 0.0, 0.0, 0.0, -100311, 0], "K*_4(2045)0": ["K*_4(2045)0", "K*_4(2045)~0", 2045.0, 0.0, 3.324304e-15, 198.00000314921186, 319, 0], "Xi(2030)0": ["Xi(2030)0", "Xi(2030)~0", 2025.0, 0.0, 3.291061e-14, 20.000000075019503, 203326, 0], "system": ["system", "system", 0.0, 0.0, 0.0, 0.0, 90, 90], "rndmflav": ["rndmflav", "anti-rndmflav", 0.0, 0.0, 0.0, 0.0, 82, 82], "rho_tc+": ["rho_tc+", "rho_tc-", 210000.0, 1.0, 0.0, 0.0, 3000213, 3000213], "K*_4(2045)+": ["K*_4(2045)+", "K*_4(2045)-", 2045.0, 1.0, 3.324304e-15, 198.00000314921186, 329, 0], "Xi(1820)-": ["Xi(1820)-", "Xi(1820)~+", 1823.0, -1.0, 2.7425510000000003e-14, 23.999998631527273, 13314, 0], "K*_4(2045)-": ["K*_4(2045)-", "K*_4(2045)+", 2045.0, -1.0, 3.324304e-15, 198.00000314921186, -329, 0], "Xi(2030)-": ["Xi(2030)-", "Xi(2030)~+", 2025.0, -1.0, 3.291061e-14, 20.000000075019503, 203316, 0], "Delta(1950)~--": ["Delta(1950)~--", "Delta(1950)++", 1930.0, -2.0, 2.350758e-15, 279.9999840344849, -2228, 0], "Sigma(1915)~-": ["Sigma(1915)~-", "Sigma(1915)+", 1915.0, -1.0, 5.485102e-15, 119.99999315763637, -13226, 0], "N14[0.0]": ["N14[0.0]", null, 13043.78, 7.0, 0.0, 0.0, 1000070140, 0], "Omega-": ["Omega-", "Omega~+", 1672.45, -1.0, 0.0821, 8.017201004493757e-12, 3334, 3334], "Delta(1900)-": ["Delta(1900)-", "Delta(1900)~+", 1840.0, -1.0, 0.0, 0.0, 11112, 0], "Omega_c*~0": ["Omega_c*~0", "Omega_c*0", 2765.8999999999996, 0.0, 0.0, 0.0, -4334, -4334], "Sigma(1775)0": ["Sigma(1775)0", "Sigma(1775)~0", 1775.0, 0.0, 5.485102e-15, 119.99999315763637, 3216, 0], "bc_1": ["bc_1", "anti-bc_1", 0.0, 0.3, 0.0, 0.0, 5403, 5403], "He3~[0.0]": ["He3~[0.0]", "He3[0.0]", 2809.23, -2.0, 0.0, 0.0, -1000020030, 0], "K*_2(1980)-": ["K*_2(1980)-", "K*_2(1980)+", 1973.0, -1.0, 0.0, 0.0, -100325, 0], "N(1700)0": ["N(1700)0", "N(1700)~0", 1700.0, 0.0, 4.388081e-15, 150.00001195714884, 21214, 0], "f_2(2010)": ["f_2(2010)", "f_2(2010)", 2011.0000000000002, 0.0, 3.291061e-15, 200.000000750195, 9060225, 0], "Graviton*": ["Graviton*", "Graviton*", 1000000.0, 0.0, 0.0, 0.0, 5000039, 5000039], "Sigma(1775)-": ["Sigma(1775)-", "Sigma(1775)~+", 1775.0, -1.0, 5.485102e-15, 119.99999315763637, 3116, 0], "nu*_ebar0": ["nu*_ebar0", "nu*_e0", 400000.0, 0.0, 0.0, 0.0, -4000012, -4000012], "Sigma(1775)+": ["Sigma(1775)+", "Sigma(1775)~-", 1775.0, 1.0, 5.485102e-15, 119.99999315763637, 3226, 0], "dd_1": ["dd_1", "anti-dd_1", 0.0, -0.7, 0.0, 0.0, 1103, 1103], "b": ["b", "anti-b", 5000.0, -0.3, 0.0, 0.0, 5, 5], "K*_2(1980)0": ["K*_2(1980)0", "K*_2(1980)~0", 1973.0, 0.0, 0.0, 0.0, 100315, 0], "Mg25[0.0]": ["Mg25[0.0]", null, 23274.154, 12.0, 0.0, 0.0, 1000120250, 0], "O18[0.0]": ["O18[0.0]", null, 16766.108, 8.0, 0.0, 0.0, 1000080180, 0], "Omega_bbc0": ["Omega_bbc0", "Omega_bbc~0", 11707.67, 0.0, 0.001290893, 5.09889047712659e-10, 5542, 5542], "Omega(2250)~+": ["Omega(2250)~+", "Omega(2250)-", 2252.0, 1.0, 1.196749e-14, 55.00002109623133, -203338, 0], "B_s1(L)~0": ["B_s1(L)~0", "B_s1(L)0", 5828.700000000001, 0.0, 1.316424e-13, 5.00000153802223, -10533, -10533], "Delta(1910)~+": ["Delta(1910)~+", "Delta(1910)-", 1890.0, 1.0, 2.350758e-15, 279.9999840344849, -21112, 0], "Xu0": ["Xu0", "Xu0", 1000.0, 0.0, 0.0, 0.0, 43, 43], "Lambda(2100)0": ["Lambda(2100)0", "Lambda(2100)~0", 2100.0, 0.0, 3.291061e-15, 200.000000750195, 3128, 0], "bu_1": ["bu_1", "anti-bu_1", 0.0, 0.3, 0.0, 0.0, 5203, 5203], "~mu_L-": ["~mu_L-", "~mu_L+", 500000.0, -1.0, 0.0, 0.0, 1000013, 1000013], "Xi(1690)-": ["Xi(1690)-", "Xi(1690)~+", 1690.0, -1.0, 0.0, 0.0, 203312, 0], "Lambda_c~-": ["Lambda_c~-", "Lambda_c+", 2286.46, -1.0, 0.0002, 3.291061012344688e-09, -4122, -4122], "Xi*_bb0": ["Xi*_bb0", "Xi*_bb~0", 10441.44, 0.0, 0.0, 0.0, 5524, 5524], "Xi*_bb-": ["Xi*_bb-", "Xi*_bb~+", 10441.44, -1.0, 0.0, 0.0, 5514, 5514], "bs_0": ["bs_0", "anti-bs_0", 0.0, -0.7, 0.0, 0.0, 5301, 5301], "bs_1": ["bs_1", "anti-bs_1", 0.0, -0.7, 0.0, 0.0, 5303, 5303], "O16[0.0]": ["O16[0.0]", null, 14895.099999999999, 8.0, 0.0, 0.0, 1000080160, 0], "Xi(1690)0": ["Xi(1690)0", "Xi(1690)~0", 1690.0, 0.0, 0.0, 0.0, 203322, 0], "Xu-": ["Xu-", "Xu+", 1000.0, -1.0, 0.0, 0.0, -44, -44], "K_1(1400)0": ["K_1(1400)0", "K_1(1400)~0", 1403.0, 0.0, 3.782829e-15, 173.9999884924583, 20313, 20313], "Xu+": ["Xu+", "Xu-", 1000.0, 1.0, 0.0, 0.0, 44, 44], "pi_1(1400)0": ["pi_1(1400)0", "pi_1(1400)0", 1354.0, 0.0, 1.9945819999999998e-15, 330.0000714279672, 9000113, 0], "rho(1700)+": ["rho(1700)+", "rho(1700)-", 1720.0, 1.0, 2.632849e-15, 249.99998194690906, 30213, 0], "rho(1450)-": ["rho(1450)-", "rho(1450)+", 1465.0, -1.0, 1.64553e-15, 400.0001230417784, -100213, 0], "D~0": ["D~0", "D0", 1864.8400000000001, 0.0, 0.0004101, 1.6050041513507378e-09, -421, -421], "Omega*_bb-": ["Omega*_bb-", "Omega*_bb~+", 10614.26, -1.0, 0.0, 0.0, 5534, 5534], "~Gravitino": ["~Gravitino", "~Gravitino", 500000.0, 0.0, 0.0, 0.0, 1000039, 1000039], "f_2(2340)": ["f_2(2340)", "f_2(2340)", 2339.0, 0.0, 2.063361e-15, 319.00002106705404, 9090225, 0], "chi_c0(1P)": ["chi_c0(1P)", "chi_c0(1P)", 3414.75, 0.0, 6.328963e-14, 10.400000797428229, 10441, 10441], "cc_1": ["cc_1", "anti-cc_1", 0.0, 1.3, 0.0, 0.0, 4403, 4403], "D*(2640)~0": ["D*(2640)~0", "D*(2640)0", 2640.0, 0.0, 0.0, 0.0, -100423, 0], "anti-R0": ["anti-R0", "R0", 5000000.0, 0.0, 0.0, 0.0, -41, -41], "rho(1700)0": ["rho(1700)0", "rho(1700)0", 1720.0, 0.0, 2.632849e-15, 249.99998194690906, 30113, 0], "pi_1(1400)+": ["pi_1(1400)+", "pi_1(1400)-", 1354.0, 1.0, 1.9945819999999998e-15, 330.0000714279672, 9000213, 0], "Omega_c*0": ["Omega_c*0", "Omega_c*~0", 2765.8999999999996, 0.0, 0.0, 0.0, 4334, 4334], "Xi(2030)~0": ["Xi(2030)~0", "Xi(2030)0", 2025.0, 0.0, 3.291061e-14, 20.000000075019503, -203326, 0], "rho(1450)0": ["rho(1450)0", "rho(1450)0", 1465.0, 0.0, 1.64553e-15, 400.0001230417784, 100113, 0], "omega_3(1670)": ["omega_3(1670)", "omega_3(1670)", 1667.0, 0.0, 3.91793e-15, 167.9999904206909, 227, 0], "chi_b1(3P)": ["chi_b1(3P)", "chi_b1(3P)", 10515.7, 0.0, 0.0, 0.0, 220553, 220553], "Si28[0.0]": ["Si28[0.0]", null, 26053.2, 14.0, 0.0, 0.0, 1000140280, 0], "omega(1420)": ["omega(1420)", "omega(1420)", 1425.0, 0.0, 3.061452e-15, 215.00000733930747, 100223, 0], "~nu_eRbar": ["~nu_eRbar", "~nu_eR", 500000.0, 0.0, 0.0, 0.0, -2000012, -2000012], "eta_b(2S)": ["eta_b(2S)", "eta_b(2S)", 9997.0, 0.0, 0.0, 0.0, 100551, 0], "Ni64[0.0]": ["Ni64[0.0]", null, 59548.512, 28.0, 0.0, 0.0, 1000280640, 0], "Omega*_ccc++": ["Omega*_ccc++", "Omega*_ccc~--", 4915.94, 2.0, 0.0, 0.0, 4444, 4444], "Lambda_b(5912)~0": ["Lambda_b(5912)~0", "Lambda_b(5912)0", 5911.97, 0.0, 1.316e-12, 0.5001612480767003, -15122, -15122], "Sigma_c*~--": ["Sigma_c*~--", "Sigma_c*++", 2517.9, -2.0, 4.417531e-14, 14.900001889492966, -4224, -4224], "alpha": ["alpha", "alpha~", 3727.417, 2.0, 1e+24, 6.582122024689375e-37, 1000020040, 0], "Al27[0.0]": ["Al27[0.0]", null, 25126.5, 13.0, 0.0, 0.0, 1000130270, 0], "Xi_b*~0": ["Xi_b*~0", "Xi_b*0", 5970.0, 0.0, 0.0, 0.0, -5324, -5324], "Xi'_bc0": ["Xi'_bc0", "Xi'_bc~0", 7037.24, 0.0, 0.0, 0.0, 5412, 5412], "Xi'_c+": ["Xi'_c+", "Xi'_c~-", 2575.6, 1.0, 0.0, 0.0, 4322, 4322], "rho_3(1690)0": ["rho_3(1690)0", "rho_3(1690)0", 1688.8000000000002, 0.0, 4.088274e-15, 161.00002163967915, 117, 0], "D+": ["D+", "D-", 1869.61, 1.0, 0.00104, 6.328963485278246e-10, 411, 411], "Lambda~0": ["Lambda~0", "Lambda0", 1115.683, 0.0, 0.2632, 2.5008062403835015e-12, -3122, -3122], "D*_s0+": ["D*_s0+", "D*_s0-", 2317.7, 1.0, 6.5821e-13, 1.0000033461493103, 10431, 10431], "Xi*_bc~-": ["Xi*_bc~-", "Xi*_bc+", 7048.5, -1.0, 0.0, 0.0, -5424, -5424], "~chi_10": ["~chi_10", "~chi_10", 500000.0, 0.0, 0.0, 0.0, 1000022, 1000022], "Mg27[0.0]": ["Mg27[0.0]", null, 25135.748, 12.0, 0.0, 0.0, 1000120270, 0], "SPHEaxis": ["SPHEaxis", "SPHEaxis", 0.0, 0.0, 0.0, 0.0, 95, 95], "Omega_bcc~-": ["Omega_bcc~-", "Omega_bcc+", 8309.45, -1.0, 0.001290893, 5.09889047712659e-10, -5442, -5442], "Sigma_b*0": ["Sigma_b*0", "Sigma_b*~0", 5829.0, 0.0, 0.0, 0.0, 5214, 5214], "Xi'_c0": ["Xi'_c0", "Xi'_c~0", 2577.9, 0.0, 0.0, 0.0, 4312, 4312], "rho_3(1690)-": ["rho_3(1690)-", "rho_3(1690)+", 1688.8000000000002, -1.0, 4.088274e-15, 161.00002163967915, -217, 0], "Xi'_bc+": ["Xi'_bc+", "Xi'_bc~-", 7037.24, 1.0, 0.0, 0.0, 5422, 5422], "ud_1": ["ud_1", "anti-ud_1", 0.0, 0.3, 0.0, 0.0, 2103, 2103], "nu_Re": ["nu_Re", "nu_Re", 500000.0, 0.0, 0.0, 0.0, 9900012, 9900012], "Xi_cc~--": ["Xi_cc~--", "Xi_cc++", 3597.98, -2.0, 0.0003335641, 1.973270512231195e-09, -4422, -4422], "rho_3(1690)+": ["rho_3(1690)+", "rho_3(1690)-", 1688.8000000000002, 1.0, 4.088274e-15, 161.00002163967915, 217, 0], "B*_2-": ["B*_2-", "B*_2+", 5743.0, -1.0, 2.8617920000000004e-14, 23.000001483998048, -525, -525], "Omega_bb~+": ["Omega_bb~+", "Omega_bb-", 10602.09, 1.0, 0.001290893, 5.09889047712659e-10, -5532, -5532], "d*": ["d*", "d*bar", 400000.0, -0.3, 0.0, 0.0, 4000001, 4000001], "Xsd": ["Xsd", "anti-Xsd", 1600.0, 0.0, 0.0, 0.0, 30343, 30343], "B*_2+": ["B*_2+", "B*_2-", 5743.0, 1.0, 2.8617920000000004e-14, 23.000001483998048, 525, 525], "eta_c(1S)": ["eta_c(1S)", "eta_c(1S)", 2983.6, 0.0, 2.216203e-14, 29.699996005281896, 441, 441], "Xi_bb~0": ["Xi_bb~0", "Xi_bb0", 10422.72, 0.0, 0.001290893, 5.09889047712659e-10, -5522, -5522], "K_2(1770)+": ["K_2(1770)+", "K_2(1770)-", 1773.0, 1.0, 3.538775e-15, 186.00001482686451, 10325, 0], "B*_20": ["B*_20", "B*_2~0", 5743.0, 0.0, 2.8617920000000004e-14, 23.000001483998048, 515, 515], "Omega*_bb~+": ["Omega*_bb~+", "Omega*_bb-", 10614.26, 1.0, 0.0, 0.0, -5534, -5534], "~chi_2+": ["~chi_2+", "~chi_2-", 500000.0, 1.0, 0.0, 0.0, 1000037, 1000037], "K*(1410)0": ["K*(1410)0", "K*(1410)~0", 1414.0, 0.0, 2.837122e-15, 231.99996421336044, 100313, 0], "Lambda_c(2625)+": ["Lambda_c(2625)+", "Lambda_c(2625)~-", 2628.11, 1.0, 0.0, 0.0, 104124, 0], "~chi_2-": ["~chi_2-", "~chi_2+", 500000.0, -1.0, 0.0, 0.0, -1000037, -1000037], "K*(1680)+": ["K*(1680)+", "K*(1680)-", 1717.0, 1.0, 2.056913e-15, 320.00002064692944, 30323, 0], "anti-ud_0": ["anti-ud_0", "ud_0", 0.0, -0.3, 0.0, 0.0, -2101, -2101], "Xi_c*~0": ["Xi_c*~0", "Xi_c*0", 2645.9, 0.0, 0.0, 0.0, -4314, -4314], "n~0": ["n~0", "n0", 939.56538, 0.0, 880300000000.0, 7.477135095637141e-25, -2112, -2112], "Sigma_b~-": ["Sigma_b~-", "Sigma_b+", 5811.3, -1.0, 6.785693e-14, 9.699999726909802, -5222, -5222], "K*(1680)0": ["K*(1680)0", "K*(1680)~0", 1717.0, 0.0, 2.056913e-15, 320.00002064692944, 30313, 0], "Xi_c*~-": ["Xi_c*~-", "Xi_c*+", 2645.9, -1.0, 0.0, 0.0, -4324, -4324], "f_0(1370)": ["f_0(1370)", "f_0(1370)", 1350.0, 0.0, 1.880606e-15, 350.00005448719065, 10221, 10331], "Xi*_cc~--": ["Xi*_cc~--", "Xi*_cc++", 3656.48, -2.0, 0.0, 0.0, -4424, -4424], "Omega_cc+": ["Omega_cc+", "Omega_cc~-", 3786.63, 1.0, 0.0003335641, 1.973270512231195e-09, 4432, 4432], "K_2(1770)0": ["K_2(1770)0", "K_2(1770)~0", 1773.0, 0.0, 3.538775e-15, 186.00001482686451, 10315, 0], "~chi_20": ["~chi_20", "~chi_20", 500000.0, 0.0, 0.0, 0.0, 1000023, 1000023], "Delta(1950)++": ["Delta(1950)++", "Delta(1950)~--", 1930.0, 2.0, 2.350758e-15, 279.9999840344849, 2228, 0], "K*(1410)-": ["K*(1410)-", "K*(1410)+", 1414.0, -1.0, 2.837122e-15, 231.99996421336044, -100323, 0], "Ne23[0.0]": ["Ne23[0.0]", null, 21419.205, 10.0, 0.0, 0.0, 1000100230, 0], "Si29[0.0]": ["Si29[0.0]", null, 26991.427000000003, 14.0, 0.0, 0.0, 1000140290, 0], "Lambda(1890)~0": ["Lambda(1890)~0", "Lambda(1890)0", 1890.0, 0.0, 6.582122e-15, 100.0000003750975, -23124, 0], "Xi-": ["Xi-", "Xi~+", 1321.71, -1.0, 0.1639, 4.015937781994738e-12, 3312, 3312], "f_0(1500)": ["f_0(1500)", "f_0(1500)", 1505.0, 0.0, 6.038644e-15, 109.00000107125666, 9030221, 0], "Xi0": ["Xi0", "Xi~0", 1314.86, 0.0, 0.29, 2.269697249892888e-12, 3322, 3322], "Cl40[0.0]": ["Cl40[0.0]", null, 37232.201, 17.0, 0.0, 0.0, 1000170400, 0], "N(1700)+": ["N(1700)+", "N(1700)~-", 1700.0, 1.0, 4.388081e-15, 150.00001195714884, 22124, 0], "Delta(1900)+": ["Delta(1900)+", "Delta(1900)~-", 1840.0, 1.0, 0.0, 0.0, 12122, 0], "h_1(1170)": ["h_1(1170)", "h_1(1170)", 1170.0, 0.0, 1.828367e-15, 360.00004510524286, 10223, 10223], "Cr50[0.0]": ["Cr50[0.0]", null, 46524.439, 24.0, 0.0, 0.0, 1000240500, 0], "B_c1(L)+": ["B_c1(L)+", "B_c1(L)-", 7300.0, 1.0, 0.0, 0.0, 10543, 10543], "D*_2(2460)0": ["D*_2(2460)0", "D*_2(2460)~0", 2462.6, 0.0, 1.34329e-14, 49.00000762820668, 425, 425], "W-": ["W-", "W+", 80385.0, -1.0, 3.156893e-16, 2085.0000379136623, -24, -24], "Fe56[0.0]": ["Fe56[0.0]", null, 52103.056000000004, 26.0, 0.0, 0.0, 1000260560, 0], "W+": ["W+", "W-", 80385.0, 1.0, 3.156893e-16, 2085.0000379136623, 24, 24], "Lambda(1670)0": ["Lambda(1670)0", "Lambda(1670)~0", 1670.0, 0.0, 1.880606e-14, 35.00000544871906, 33122, 0], "D*_2(2460)-": ["D*_2(2460)-", "D*_2(2460)+", 2464.3, -1.0, 1.778952e-14, 36.99999789027121, -415, -415], "D*_2(2460)+": ["D*_2(2460)+", "D*_2(2460)-", 2464.3, 1.0, 1.778952e-14, 36.99999789027121, 415, 415], "specflav": ["specflav", "specflav", 0.0, 0.0, 0.0, 0.0, 81, 81], "Sigma_b~0": ["Sigma_b~0", "Sigma_b0", 5807.8, 0.0, 1e-10, 0.006582122024689376, -5212, -5212], "deuteron": ["deuteron", "deutron~", 1875.613, 1.0, 1e+24, 6.582122024689375e-37, 1000010020, 0], "Omega*_bcc+": ["Omega*_bcc+", "Omega*_bcc~-", 8313.25, 1.0, 0.0, 0.0, 5444, 5444], "B*_s20": ["B*_s20", "B*_s2~0", 5839.96, 0.0, 4.113825e-13, 1.6000004921671134, 535, 535], "K_2(1770)-": ["K_2(1770)-", "K_2(1770)+", 1773.0, -1.0, 3.538775e-15, 186.00001482686451, -10325, 0], "Sigma(1915)~+": ["Sigma(1915)~+", "Sigma(1915)-", 1915.0, 1.0, 5.485102e-15, 119.99999315763637, -13116, 0], "Delta(1600)-": ["Delta(1600)-", "Delta(1600)~+", 1600.0, -1.0, 2.056913e-15, 320.00002064692944, 31114, 0], "Delta(1600)0": ["Delta(1600)0", "Delta(1600)~0", 1600.0, 0.0, 2.056913e-15, 320.00002064692944, 32114, 0], "~d_Lbar": ["~d_Lbar", "~d_L", 500000.0, 0.3, 0.0, 0.0, -1000001, -1000001], "Sigma(1915)~0": ["Sigma(1915)~0", "Sigma(1915)0", 1915.0, 0.0, 5.485102e-15, 119.99999315763637, -13216, 0], "bc_0": ["bc_0", "anti-bc_0", 0.0, 0.3, 0.0, 0.0, 5401, 5401], "Omega_bcc+": ["Omega_bcc+", "Omega_bcc~-", 8309.45, 1.0, 0.001290893, 5.09889047712659e-10, 5442, 5442], "chi_b1(1P)": ["chi_b1(1P)", "chi_b1(1P)", 9892.78, 0.0, 0.0, 0.0, 20553, 20553], "Delta(1620)-": ["Delta(1620)-", "Delta(1620)~+", 1630.0, -1.0, 4.701516e-15, 139.99999201724245, 1112, 0], "Delta(1620)+": ["Delta(1620)+", "Delta(1620)~-", 1630.0, 1.0, 4.701516e-15, 139.99999201724245, 2122, 0], "Omega_bc0": ["Omega_bc0", "Omega_bc~0", 7190.99, 0.0, 0.0005, 1.316424404937875e-09, 5342, 5342], "B0H": ["B0H", "B0H", 5279.58, 0.0, 0.0015190000000000002, 4.3331942229686473e-10, 510, 0], "omega(1650)": ["omega(1650)", "omega(1650)", 1670.0, 0.0, 2.0895630000000002e-15, 314.9999317890571, 30223, 0], "B0L": ["B0L", "B0L", 5279.58, 0.0, 0.0015190000000000002, 4.3331942229686473e-10, 150, 0], "Delta(1620)++": ["Delta(1620)++", "Delta(1620)~--", 1630.0, 2.0, 4.701516e-15, 139.99999201724245, 2222, 0], "Xi(1820)0": ["Xi(1820)0", "Xi(1820)~0", 1823.0, 0.0, 2.7425510000000003e-14, 23.999998631527273, 13324, 0], "nu_e~": ["nu_e~", "nu_e", 0.0, 0.0, 1e+25, 6.582122024689376e-38, -12, -12], "anti-ud_1": ["anti-ud_1", "ud_1", 0.0, -0.3, 0.0, 0.0, -2103, -2103], "Sigma_b*-": ["Sigma_b*-", "Sigma_b*~+", 5835.099999999999, -1.0, 8.77616e-14, 7.500002307033344, 5114, 5114], "Xi_bb~+": ["Xi_bb~+", "Xi_bb-", 10422.72, 1.0, 0.001290893, 5.09889047712659e-10, -5512, -5512], "Delta(1620)0": ["Delta(1620)0", "Delta(1620)~0", 1630.0, 0.0, 4.701516e-15, 139.99999201724245, 1212, 0], "Xi'_bc~0": ["Xi'_bc~0", "Xi'_bc0", 7037.24, 0.0, 0.0, 0.0, -5412, -5412], "Xi(1950)~+": ["Xi(1950)~+", "Xi(1950)-", 1950.0, 1.0, 1.09702e-14, 60.00001845626675, -103316, 0], "N(1675)~-": ["N(1675)~-", "N(1675)+", 1675.0, -1.0, 4.388081e-15, 150.00001195714884, -2216, 0], "~s_L": ["~s_L", "~s_Lbar", 500000.0, -0.3, 0.0, 0.0, 1000003, 1000003], "Sigma*-": ["Sigma*-", "Sigma*~+", 1387.2, -1.0, 1.670589e-14, 39.40000816891153, 3114, 3114], "H_L++": ["H_L++", "H_L--", 200000.0, 2.0, 0.0, 0.0, 9900041, 9900041], "Sigma*+": ["Sigma*+", "Sigma*~-", 1382.8, 1.0, 1.828367e-14, 36.000004510524285, 3224, 3224], "~c_L": ["~c_L", "~c_Lbar", 500000.0, 0.7, 0.0, 0.0, 1000004, 1000004], "Sigma*0": ["Sigma*0", "Sigma*~0", 1383.6999999999998, 0.0, 1.828367e-14, 36.000004510524285, 3214, 3214], "eta_b(3S)": ["eta_b(3S)", "eta_b(3S)", 10335.0, 0.0, 0.0, 0.0, 200551, 0], "Na24[0.0]": ["Na24[0.0]", null, 22347.435, 11.0, 0.0, 0.0, 1000110240, 0], "~c_Rbar": ["~c_Rbar", "~c_R", 500000.0, -0.7, 0.0, 0.0, -2000004, -2000004], "~s_R": ["~s_R", "~s_Rbar", 500000.0, -0.3, 0.0, 0.0, 2000003, 2000003], "Xi'_bc~-": ["Xi'_bc~-", "Xi'_bc+", 7037.24, -1.0, 0.0, 0.0, -5422, -5422], "N(1675)~0": ["N(1675)~0", "N(1675)0", 1675.0, 0.0, 4.388081e-15, 150.00001195714884, -2116, 0], "~c_R": ["~c_R", "~c_Rbar", 500000.0, 0.7, 0.0, 0.0, 2000004, 2000004], "c": ["c", "anti-c", 1350.0, 0.7, 0.0, 0.0, 4, 4], "Sigma(1670)+": ["Sigma(1670)+", "Sigma(1670)~-", 1670.0, 1.0, 1.09702e-14, 60.00001845626675, 13224, 0], "Sigma(1670)-": ["Sigma(1670)-", "Sigma(1670)~+", 1670.0, -1.0, 1.09702e-14, 60.00001845626675, 13114, 0], "b-hadron": ["b-hadron", "anti-b-hadron", 5000.0, -0.3, 0.001290893, 5.09889047712659e-10, 85, 85], "nu_tau~": ["nu_tau~", "nu_tau", 0.0, 0.0, 1e+25, 6.582122024689376e-38, -16, -16], "anti-sd_0": ["anti-sd_0", "sd_0", 0.0, 0.7, 0.0, 0.0, -3101, -3101], "anti-sd_1": ["anti-sd_1", "sd_1", 0.0, 0.7, 0.0, 0.0, -3103, -3103], "Sigma(2030)~-": ["Sigma(2030)~-", "Sigma(2030)+", 2029.9999999999998, -1.0, 3.656734e-15, 180.00002255262143, -3228, 0], "Sigma(2250)+": ["Sigma(2250)+", "Sigma(2250)~-", 2250.0, 1.0, 6.58e-15, 100.03224961534006, 103222, 0], "Sigma(2030)~0": ["Sigma(2030)~0", "Sigma(2030)0", 2029.9999999999998, 0.0, 3.656734e-15, 180.00002255262143, -3218, 0], "eta": ["eta", "eta", 547.862, 0.0, 5.063171e-10, 0.0012999999456248617, 221, 221], "Omega_bbc~0": ["Omega_bbc~0", "Omega_bbc0", 11707.67, 0.0, 0.001290893, 5.09889047712659e-10, -5542, -5542], "mu-": ["mu-", "mu+", 105.65837, -1.0, 2196.981, 2.9959849560325623e-16, 13, 13], "Omega_b*-": ["Omega_b*-", "Omega_b*~+", 6130.0, -1.0, 0.0, 0.0, 5334, 5334], "mu+": ["mu+", "mu-", 105.65837, 1.0, 2196.981, 2.9959849560325623e-16, -13, -13], "LQ_ue": ["LQ_ue", "LQ_uebar", 200000.0, -0.3, 0.0, 0.0, 42, 42], "~d_L": ["~d_L", "~d_Lbar", 500000.0, -0.3, 0.0, 0.0, 1000001, 1000001], "Omega_b*~+": ["Omega_b*~+", "Omega_b*-", 6130.0, 1.0, 0.0, 0.0, -5334, -5334], "Sigma_c~-": ["Sigma_c~-", "Sigma_c+", 2452.9, -1.0, 3.999999e-13, 1.6455309175550732, -4212, -4212], "f_0(1710)": ["f_0(1710)", "f_0(1710)", 1722.0, 0.0, 4.875646e-15, 134.99999845537135, 10331, 0], "Sigma_c~0": ["Sigma_c~0", "Sigma_c0", 2453.74, 0.0, 3.047279e-13, 2.159999798078671, -4112, -4112], "Lambda_b(5912)0": ["Lambda_b(5912)0", "Lambda_b(5912)~0", 5911.97, 0.0, 1.316e-12, 0.5001612480767003, 15122, 15122], "Sigma(2250)-": ["Sigma(2250)-", "Sigma(2250)~+", 2250.0, -1.0, 6.58e-15, 100.03224961534006, 103112, 0], "table": ["table", "table", 0.0, 0.0, 0.0, 0.0, 99, 99], "B*~0": ["B*~0", "B*0", 5325.2, 0.0, 1.000019e-10, 0.006581996966747007, -513, -513], "Sigma(2030)-": ["Sigma(2030)-", "Sigma(2030)~+", 2029.9999999999998, -1.0, 3.656734e-15, 180.00002255262143, 3118, 0], "Al28[0.0]": ["Al28[0.0]", null, 26064.978, 13.0, 0.0, 0.0, 1000130280, 0], "Mo97[0.0]": ["Mo97[0.0]", null, 90267.365, 42.0, 0.0, 0.0, 1000420970, 0], "Xi'_b~+": ["Xi'_b~+", "Xi'_b-", 5960.0, 1.0, 1e-10, 0.006582122024689376, -5312, -5312], "bu_0": ["bu_0", "anti-bu_0", 0.0, 0.3, 0.0, 0.0, 5201, 5201], "K*_2(1430)0": ["K*_2(1430)0", "K*_2(1430)~0", 1432.3999999999999, 0.0, 6.038644e-15, 109.00000107125666, 315, 315], "Xi_b-": ["Xi_b-", "Xi_b~+", 5794.900000000001, -1.0, 0.00156, 4.219308990185497e-10, 5132, 5132], "K_1(1270)0": ["K_1(1270)0", "K_1(1270)~0", 1272.0, 0.0, 7.313469000000001e-15, 89.99999897024757, 10313, 10313], "~b_2": ["~b_2", "~b_2bar", 500000.0, -0.3, 0.0, 0.0, 2000005, 2000005], "K_1(1270)-": ["K_1(1270)-", "K_1(1270)+", 1272.0, -1.0, 7.313469000000001e-15, 89.99999897024757, -10323, -10323], "omega_tc": ["omega_tc", "omega_tc", 210000.0, 0.0, 0.0, 0.0, 3000223, 3000223], "Z(4430)-": ["Z(4430)-", "Z(4430)+", 4433.0, -1.0, 2.07634e-12, 0.3170059828683826, -9042413, -9042413], "Xi_b0": ["Xi_b0", "Xi_b~0", 5793.1, 0.0, 0.00149, 4.417531560194212e-10, 5232, 5232], "Lambda(1520)~0": ["Lambda(1520)~0", "Lambda(1520)0", 1519.5, 0.0, 4.219309e-14, 15.599999963712959, -3124, 0], "Xi'_b~0": ["Xi'_b~0", "Xi'_b0", 5960.0, 0.0, 1e-10, 0.006582122024689376, -5322, -5322], "K*_2(1430)-": ["K*_2(1430)-", "K*_2(1430)+", 1425.6, -1.0, 6.682357e-15, 98.50000568196785, -325, -325], "K*_2(1430)+": ["K*_2(1430)+", "K*_2(1430)-", 1425.6, 1.0, 6.682357e-15, 98.50000568196785, 325, 325], "Delta(1920)+": ["Delta(1920)+", "Delta(1920)~-", 1920.0, 1.0, 2.531585e-15, 260.0000404761987, 22214, 0], "~u_R": ["~u_R", "~u_Rbar", 500000.0, 0.7, 0.0, 0.0, 2000002, 2000002], "N(1440)~-": ["N(1440)~-", "N(1440)+", 1430.0, -1.0, 2.194041e-15, 299.9999555472927, -12212, 0], "H_R--": ["H_R--", "H_R++", 200000.0, -2.0, 0.0, 0.0, -9900042, -9900042], "Fe54[0.0]": ["Fe54[0.0]", null, 50244.421, 26.0, 0.0, 0.0, 1000260540, 0], "N(2090)0": ["N(2090)0", "N(2090)~0", 2000.0, 0.0, 0.0, 0.0, 52114, 0], "eta_prime": ["eta_prime", "eta_prime", 957.78, 0.0, 3.324303e-12, 0.19800006271057047, 331, 331], "~mu_L+": ["~mu_L+", "~mu_L-", 500000.0, 1.0, 0.0, 0.0, -1000013, -1000013], "Ni60[0.0]": ["Ni60[0.0]", null, 55825.164000000004, 28.0, 0.0, 0.0, 1000280600, 0], "N(2090)+": ["N(2090)+", "N(2090)~-", 2000.0, 1.0, 0.0, 0.0, 52214, 0], "B10[0.0]": ["B10[0.0]", null, 9326.989, 5.0, 0.0, 0.0, 1000050100, 0], "~u_L": ["~u_L", "~u_Lbar", 500000.0, 0.7, 0.0, 0.0, 1000002, 1000002], "eta(1475)": ["eta(1475)", "eta(1475)", 1476.0, 0.0, 7.743673e-15, 84.99999967314444, 100331, 0], "Delta(1950)~0": ["Delta(1950)~0", "Delta(1950)0", 1930.0, 0.0, 2.350758e-15, 279.9999840344849, -2118, 0], "e*-": ["e*-", "e*bar+", 400000.0, -1.0, 0.0, 0.0, 4000011, 4000011], "~chi_1+": ["~chi_1+", "~chi_1-", 500000.0, 1.0, 0.0, 0.0, 1000024, 1000024], "Xi_bc~-": ["Xi_bc~-", "Xi_bc+", 6900.0, -1.0, 0.0005, 1.316424404937875e-09, -5242, -5242], "Delta(1905)~+": ["Delta(1905)~+", "Delta(1905)-", 1880.0, 1.0, 1.9945819999999998e-15, 330.0000714279672, -1116, 0], "Delta(1700)~+": ["Delta(1700)~+", "Delta(1700)-", 1700.0, 1.0, 2.194041e-15, 299.9999555472927, -11114, 0], "Delta(1905)~-": ["Delta(1905)~-", "Delta(1905)+", 1880.0, -1.0, 1.9945819999999998e-15, 330.0000714279672, -2126, 0], "Delta(1700)~-": ["Delta(1700)~-", "Delta(1700)+", 1700.0, -1.0, 2.194041e-15, 299.9999555472927, -12214, 0], "~chi_1-": ["~chi_1-", "~chi_1+", 500000.0, -1.0, 0.0, 0.0, -1000024, -1000024], "~tau_2+": ["~tau_2+", "~tau_2-", 500000.0, 1.0, 0.0, 0.0, -2000015, -2000015], "Delta(1700)~0": ["Delta(1700)~0", "Delta(1700)0", 1700.0, 0.0, 2.194041e-15, 299.9999555472927, -12114, 0], "Delta(1905)~0": ["Delta(1905)~0", "Delta(1905)0", 1880.0, 0.0, 1.9945819999999998e-15, 330.0000714279672, -1216, 0], "Delta(1600)++": ["Delta(1600)++", "Delta(1600)~--", 1600.0, 2.0, 2.056913e-15, 320.00002064692944, 32224, 0], "O17[0.0]": ["O17[0.0]", null, 15834.587000000001, 8.0, 0.0, 0.0, 1000080170, 0], "B_s~0": ["B_s~0", "B_s0", 5366.7699999999995, 0.0, 0.001512, 4.3532553073342427e-10, -531, -531], "Delta(1950)~+": ["Delta(1950)~+", "Delta(1950)-", 1930.0, 1.0, 2.350758e-15, 279.9999840344849, -1118, 0], "p+": ["p+", "p~-", 938.27205, 1.0, 1e+25, 6.582122024689376e-38, 2212, 2212], "Omega*_bcc~-": ["Omega*_bcc~-", "Omega*_bcc+", 8313.25, -1.0, 0.0, 0.0, -5444, -5444], "N(1990)~-": ["N(1990)~-", "N(1990)+", 1950.0, -1.0, 0.0, 0.0, -12218, 0], "Delta(1950)~-": ["Delta(1950)~-", "Delta(1950)+", 1930.0, -1.0, 2.350758e-15, 279.9999840344849, -2218, 0], "K_2(1820)-": ["K_2(1820)-", "K_2(1820)+", 1816.0, -1.0, 2.384827e-15, 275.99997923075244, -20325, 0], "anti-su_1": ["anti-su_1", "su_1", 0.0, -0.3, 0.0, 0.0, -3203, -3203], "anti-su_0": ["anti-su_0", "su_0", 0.0, -0.3, 0.0, 0.0, -3201, -3201], "K_2(1820)+": ["K_2(1820)+", "K_2(1820)-", 1816.0, 1.0, 2.384827e-15, 275.99997923075244, 20325, 0], "Upsilon(2S)": ["Upsilon(2S)", "Upsilon(2S)", 10023.26, 0.0, 2.058199e-11, 0.03198000788402567, 100553, 100553], "Delta(1600)+": ["Delta(1600)+", "Delta(1600)~-", 1600.0, 1.0, 2.056913e-15, 320.00002064692944, 32214, 0], "eta_tc0": ["eta_tc0", "eta_tc0", 350000.0, 0.0, 0.0, 0.0, 3000331, 3000331], "cluster": ["cluster", "cluster", 0.0, 0.0, 0.0, 0.0, 91, 91], "Intermediate": ["Intermediate", null, 0.0, 0.0, 0.0, 0.0, -99000000, 0], "f_2(1270)": ["f_2(1270)", "f_2(1270)", 1275.1, 0.0, 3.5559819999999995e-15, 185.09998151535572, 225, 225], "a_2(1320)-": ["a_2(1320)-", "a_2(1320)+", 1318.3, -1.0, 6.151516e-15, 106.99999845061566, -215, -215], "K_2(1820)0": ["K_2(1820)0", "K_2(1820)~0", 1816.0, 0.0, 2.384827e-15, 275.99997923075244, 20315, 0], "Omega*_ccc~--": ["Omega*_ccc~--", "Omega*_ccc++", 4915.94, -2.0, 0.0, 0.0, -4444, -4444], "N(1710)~-": ["N(1710)~-", "N(1710)+", 1710.0, -1.0, 6.582122e-15, 100.0000003750975, -42212, 0], "chi_b2(3P)": ["chi_b2(3P)", "chi_b2(3P)", 10526.199999999999, 0.0, 0.0, 0.0, 200555, 200555], "Xi~0": ["Xi~0", "Xi0", 1314.86, 0.0, 0.29, 2.269697249892888e-12, -3322, -3322], "N(2090)~0": ["N(2090)~0", "N(2090)0", 2000.0, 0.0, 0.0, 0.0, -52114, 0], "D*(2640)0": ["D*(2640)0", "D*(2640)~0", 2640.0, 0.0, 0.0, 0.0, 100423, 0], "D_s1(2460)+": ["D_s1(2460)+", "D_s1(2460)-", 2459.5, 1.0, 6.5821e-13, 1.0000033461493103, 20433, 20433], "~nu_muR": ["~nu_muR", "~nu_muRbar", 500000.0, 0.0, 0.0, 0.0, 2000014, 2000014], "N(1990)+": ["N(1990)+", "N(1990)~-", 1950.0, 1.0, 0.0, 0.0, 12218, 0], "B11[0.0]": ["B11[0.0]", null, 10255.101, 5.0, 0.0, 0.0, 1000050110, 0], "s": ["s", "anti-s", 199.0, -0.3, 0.0, 0.0, 3, 3], "Sigma(2250)~0": ["Sigma(2250)~0", "Sigma(2250)0", 2250.0, 0.0, 6.58e-15, 100.03224961534006, -103212, 0], "Xi_c(2790)+": ["Xi_c(2790)+", "Xi_c(2790)~-", 2789.1, 1.0, 0.0, 0.0, 104324, 0], "D_s+": ["D_s+", "D_s-", 1968.3, 1.0, 0.0005, 1.316424404937875e-09, 431, 431], "D*(2640)+": ["D*(2640)+", "D*(2640)-", 2640.0, 1.0, 0.0, 0.0, 100413, 0], "D*(2640)-": ["D*(2640)-", "D*(2640)+", 2640.0, -1.0, 0.0, 0.0, -100413, 0], "D_s-": ["D_s-", "D_s+", 1968.3, -1.0, 0.0005, 1.316424404937875e-09, -431, -431], "Xi~+": ["Xi~+", "Xi-", 1321.71, 1.0, 0.1639, 4.015937781994738e-12, -3312, -3312], "N(2090)~-": ["N(2090)~-", "N(2090)+", 2000.0, -1.0, 0.0, 0.0, -52214, 0], "B_c0*+": ["B_c0*+", "B_c0*-", 7250.0, 1.0, 0.0, 0.0, 10541, 10541], "Ni63[0.0]": ["Ni63[0.0]", null, 58618.605, 28.0, 0.0, 0.0, 1000280630, 0], "B_c0*-": ["B_c0*-", "B_c0*+", 7250.0, -1.0, 0.0, 0.0, -10541, -10541], "anti-ss_1": ["anti-ss_1", "ss_1", 0.0, 0.7, 0.0, 0.0, -3303, -3303], "Lambda(1520)0": ["Lambda(1520)0", "Lambda(1520)~0", 1519.5, 0.0, 4.219309e-14, 15.599999963712959, 3124, 0], "h_1(1380)": ["h_1(1380)", "h_1(1380)", 1400.0, 0.0, 0.0, 0.0, 10333, 10333], "K*_0(1430)+": ["K*_0(1430)+", "K*_0(1430)-", 1425.0, 1.0, 2.437823e-15, 269.9999969107427, 10321, 10321], "Delta(1620)~0": ["Delta(1620)~0", "Delta(1620)0", 1630.0, 0.0, 4.701516e-15, 139.99999201724245, -1212, 0], "Xi*_bc0": ["Xi*_bc0", "Xi*_bc~0", 7048.5, 0.0, 0.0, 0.0, 5414, 5414], "Lambda(1810)0": ["Lambda(1810)0", "Lambda(1810)~0", 1810.0, 0.0, 4.388081e-15, 150.00001195714884, 53122, 0], "D(2S)~0": ["D(2S)~0", "D(2S)0", 2580.0, 0.0, 0.0, 0.0, -100421, 0], "Z_R0": ["Z_R0", "Z_R0", 1200000.0, 0.0, 0.0, 0.0, 9900023, 9900023], "Sigma(1670)0": ["Sigma(1670)0", "Sigma(1670)~0", 1670.0, 0.0, 1.09702e-14, 60.00001845626675, 13214, 0], "Delta(1620)~+": ["Delta(1620)~+", "Delta(1620)-", 1630.0, 1.0, 4.701516e-15, 139.99999201724245, -1112, 0], "Delta(1620)~-": ["Delta(1620)~-", "Delta(1620)+", 1630.0, -1.0, 4.701516e-15, 139.99999201724245, -2122, 0], "Xi*_bc+": ["Xi*_bc+", "Xi*_bc~-", 7048.5, 1.0, 0.0, 0.0, 5424, 5424], "f_4(2050)": ["f_4(2050)", "f_4(2050)", 2017.9999999999998, 0.0, 2.777267e-15, 236.99997244375047, 229, 0], "omega(782)": ["omega(782)", "omega(782)", 782.65, 0.0, 7.752793999999999e-14, 8.489999895120878, 223, 223], "Mo92[0.0]": ["Mo92[0.0]", null, 85610.63, 42.0, 0.0, 0.0, 1000420920, 0], "Delta(1930)~--": ["Delta(1930)~--", "Delta(1930)++", 1950.0, -2.0, 1.828367e-15, 360.00004510524286, -12226, 0], "Pd108[0.0]": ["Pd108[0.0]", null, 100511.81599999999, 46.0, 0.0, 0.0, 1000461080, 0], "Lambda_c(2595)+": ["Lambda_c(2595)+", "Lambda_c(2595)~-", 2592.25, 1.0, 2.531585e-13, 2.600000404761987, 14122, 0], "rho(1700)-": ["rho(1700)-", "rho(1700)+", 1720.0, -1.0, 2.632849e-15, 249.99998194690906, -30213, 0], "pi(1300)+": ["pi(1300)+", "pi(1300)-", 1300.0, 1.0, 1.64553e-15, 400.0001230417784, 100211, 0], "B_1(L)0": ["B_1(L)0", "B_1(L)~0", 5723.4, 0.0, 3.134e-14, 21.00230384393547, 10513, 10513], "N(1440)~0": ["N(1440)~0", "N(1440)0", 1430.0, 0.0, 2.194041e-15, 299.9999555472927, -12112, 0], "K_1(1400)-": ["K_1(1400)-", "K_1(1400)+", 1403.0, -1.0, 3.782829e-15, 173.9999884924583, -20323, -20323], "B_1(L)-": ["B_1(L)-", "B_1(L)+", 5723.4, -1.0, 3.134e-14, 21.00230384393547, -10523, -10523], "K_1(1400)+": ["K_1(1400)+", "K_1(1400)-", 1403.0, 1.0, 3.782829e-15, 173.9999884924583, 20323, 20323], "B_1(L)+": ["B_1(L)+", "B_1(L)-", 5723.4, 1.0, 3.134e-14, 21.00230384393547, 10523, 10523], "Omega*_bc0": ["Omega*_bc0", "Omega*_bc~0", 7219.0, 0.0, 0.0, 0.0, 5434, 5434], "Au197[0.0]": ["Au197[0.0]", null, 183433.36, 79.0, 0.0, 0.0, 1000791970, 0], "~b_2bar": ["~b_2bar", "~b_2", 500000.0, 0.3, 0.0, 0.0, -2000005, -2000005], "He3[0.0]": ["He3[0.0]", "He3~[0.0]", 2809.23, 2.0, 1e+24, 6.582122024689375e-37, 1000020030, 0], "Xi*_cc++": ["Xi*_cc++", "Xi*_cc~--", 3656.48, 2.0, 0.0, 0.0, 4424, 4424], "Z'0": ["Z'0", "Z'0", 500000.0, 0.0, 0.0, 0.0, 32, 32], "anti-uu_1": ["anti-uu_1", "uu_1", 0.0, -1.3, 0.0, 0.0, -2203, -2203], "Omega_cc~-": ["Omega_cc~-", "Omega_cc+", 3786.63, -1.0, 0.0003335641, 1.973270512231195e-09, -4432, -4432], "~nu_tauL": ["~nu_tauL", "~nu_tauLbar", 500000.0, 0.0, 0.0, 0.0, 1000016, 1000016], "~nu_tauR": ["~nu_tauR", "~nu_tauRbar", 500000.0, 0.0, 0.0, 0.0, 2000016, 2000016], "K*(1410)~0": ["K*(1410)~0", "K*(1410)0", 1414.0, 0.0, 2.837122e-15, 231.99996421336044, -100313, 0], "Xi_c~-": ["Xi_c~-", "Xi_c+", 2467.8, -1.0, 0.000442, 1.489167878888999e-09, -4232, -4232], "Xss": ["Xss", "anti-Xss", 1800.0, 0.0, 0.0, 0.0, 30363, 30363], "Be8[0.0]": ["Be8[0.0]", null, 7456.893, 4.0, 0.0, 0.0, 1000040080, 0], "Xi_c(2815)+": ["Xi_c(2815)+", "Xi_c(2815)~-", 2816.6000000000004, 1.0, 0.0, 0.0, 104322, 0], "Xi'_b0": ["Xi'_b0", "Xi'_b~0", 5960.0, 0.0, 1e-10, 0.006582122024689376, 5322, 5322], "t-hadron": ["t-hadron", "anti-t-hadron", 175000.0, 0.7, 0.0, 0.0, 86, 0], "Omega'_bc~0": ["Omega'_bc~0", "Omega'_bc0", 7211.01, 0.0, 0.0, 0.0, -5432, -5432], "f_2(2300)": ["f_2(2300)", "f_2(2300)", 2297.0, 0.0, 4.41753e-15, 149.0000526241899, 9080225, 0], "Delta(1910)++": ["Delta(1910)++", "Delta(1910)~--", 1890.0, 2.0, 2.350758e-15, 279.9999840344849, 22222, 0], "pi'_tc0": ["pi'_tc0", "pi'_tc0", 110000.0, 0.0, 0.0, 0.0, 3000221, 3000221], "Xi'_b-": ["Xi'_b-", "Xi'_b~+", 5960.0, -1.0, 1e-10, 0.006582122024689376, 5312, 5312], "~tau_2-": ["~tau_2-", "~tau_2+", 500000.0, -1.0, 0.0, 0.0, 2000015, 2000015], "Xi_c(2815)0": ["Xi_c(2815)0", "Xi_c(2815)~0", 2819.6, 0.0, 0.0, 0.0, 104312, 0], "nu_Rmu": ["nu_Rmu", "nu_Rmu", 500000.0, 0.0, 0.0, 0.0, 9900014, 9900014], "N(1520)+": ["N(1520)+", "N(1520)~-", 1515.0, 1.0, 5.723584000000001e-15, 115.00000741999025, 2124, 0], "~nu_muL": ["~nu_muL", "~nu_muLbar", 500000.0, 0.0, 0.0, 0.0, 1000014, 1000014], "~chi_40": ["~chi_40", "~chi_40", 500000.0, 0.0, 0.0, 0.0, 1000035, 1000035], "D*(2010)-": ["D*(2010)-", "D*(2010)+", 2010.2600000000002, -1.0, 7.89223e-12, 0.0834000279349357, -413, -413], "h_b(1P)": ["h_b(1P)", "h_b(1P)", 9899.300000000001, 0.0, 0.0, 0.0, 10553, 10553], "H_R++": ["H_R++", "H_R--", 200000.0, 2.0, 0.0, 0.0, 9900042, 9900042], "D*(2010)+": ["D*(2010)+", "D*(2010)-", 2010.2600000000002, 1.0, 7.89223e-12, 0.0834000279349357, 413, 413], "pi_2(1670)-": ["pi_2(1670)-", "pi_2(1670)+", 1672.1999999999998, -1.0, 2.531585e-15, 260.0000404761987, -10215, 0], "N(1520)0": ["N(1520)0", "N(1520)~0", 1515.0, 0.0, 5.723584000000001e-15, 115.00000741999025, 1214, 0], "~u_Lbar": ["~u_Lbar", "~u_L", 500000.0, -0.7, 0.0, 0.0, -1000002, -1000002], "f_2(1950)": ["f_2(1950)", "f_2(1950)", 1944.0, 0.0, 1.394517e-15, 472.00012797903327, 9050225, 0], "d": ["d", "anti-d", 9.9, -0.3, 0.0, 0.0, 1, 1], "B-": ["B-", "B+", 5279.26, -1.0, 0.0016380000000000001, 4.018389514462378e-10, -521, -521], "B*-": ["B*-", "B*+", 5325.2, -1.0, 1.000019e-10, 0.006581996966747007, -523, -523], "Sigma_b*~+": ["Sigma_b*~+", "Sigma_b*-", 5835.099999999999, 1.0, 8.77616e-14, 7.500002307033344, -5114, -5114], "B*+": ["B*+", "B*-", 5325.2, 1.0, 1.000019e-10, 0.006581996966747007, 523, 523], "Sigma_b*~-": ["Sigma_b*~-", "Sigma_b*+", 5832.099999999999, -1.0, 5.723583e-14, 11.500002751230086, -5224, -5224], "B+": ["B+", "B-", 5279.26, 1.0, 0.0016380000000000001, 4.018389514462378e-10, 521, 521], "Sigma_b*~0": ["Sigma_b*~0", "Sigma_b*0", 5829.0, 0.0, 0.0, 0.0, -5214, -5214], "N(1710)+": ["N(1710)+", "N(1710)~-", 1710.0, 1.0, 6.582122e-15, 100.0000003750975, 42212, 0], "B0": ["B0", "B~0", 5279.58, 0.0, 0.0015190000000000002, 4.3331942229686473e-10, 511, 511], "LQ_uebar": ["LQ_uebar", "LQ_ue", 200000.0, 0.3, 0.0, 0.0, -42, -42], "Lambda(1830)~0": ["Lambda(1830)~0", "Lambda(1830)0", 1830.0, 0.0, 6.928549e-15, 95.00000685120904, -13126, 0], "B*0": ["B*0", "B*~0", 5325.2, 0.0, 1.000019e-10, 0.006581996966747007, 513, 513], "anti-cu_1": ["anti-cu_1", "cu_1", 0.0, -1.3, 0.0, 0.0, -4203, -4203], "THRUaxis": ["THRUaxis", "THRUaxis", 0.0, 0.0, 0.0, 0.0, 96, 96], "N(1710)0": ["N(1710)0", "N(1710)~0", 1710.0, 0.0, 6.582122e-15, 100.0000003750975, 42112, 0], "Xi_c(2790)~0": ["Xi_c(2790)~0", "Xi_c(2790)0", 2791.7999999999997, 0.0, 0.0, 0.0, -104314, 0], "b'": ["b'", "anti-b'", 400000.0, -0.3, 0.0, 0.0, 7, 7], "Delta(1905)0": ["Delta(1905)0", "Delta(1905)~0", 1880.0, 0.0, 1.9945819999999998e-15, 330.0000714279672, 1216, 0], "N(1650)0": ["N(1650)0", "N(1650)~0", 1655.0, 0.0, 4.7015139999999994e-15, 140.00005157252272, 32112, 0], "Omega_bb-": ["Omega_bb-", "Omega_bb~+", 10602.09, -1.0, 0.001290893, 5.09889047712659e-10, 5532, 5532], "pi_22_8_tc": ["pi_22_8_tc", "pi_22_8_tc", 250000.0, 0.0, 0.0, 0.0, 3200111, 3200111], "nu_mu": ["nu_mu", "nu_mu~", 0.0, 0.0, 1e+25, 6.582122024689376e-38, 14, 14], "V8_tc": ["V8_tc", "V8_tc", 500000.0, 0.0, 0.0, 0.0, 3100021, 3100021], "Pb208[0.0]": ["Pb208[0.0]", null, 193728.962, 82.0, 0.0, 0.0, 1000822080, 0], "~d_R": ["~d_R", "~d_Rbar", 500000.0, -0.3, 0.0, 0.0, 2000001, 2000001], "Lambda_c(2880)+": ["Lambda_c(2880)+", "Lambda_c(2880)~-", 2881.53, 1.0, 1.134849e-13, 5.799998083171749, 204126, 0], "C14[0.0]": ["C14[0.0]", null, 13043.934, 6.0, 0.0, 0.0, 1000060140, 0], "rho_21_tc": ["rho_21_tc", "rho_21_tc", 350000.0, 0.0, 0.0, 0.0, 3300113, 3300113], "Delta(1905)-": ["Delta(1905)-", "Delta(1905)~+", 1880.0, -1.0, 1.9945819999999998e-15, 330.0000714279672, 1116, 0], "N(1650)+": ["N(1650)+", "N(1650)~-", 1655.0, 1.0, 4.7015139999999994e-15, 140.00005157252272, 32212, 0], "Delta(1905)+": ["Delta(1905)+", "Delta(1905)~-", 1880.0, 1.0, 1.9945819999999998e-15, 330.0000714279672, 2126, 0], "N16[0.0]": ["N16[0.0]", null, 14909.585, 7.0, 0.0, 0.0, 1000070160, 0], "Omega*_cc~-": ["Omega*_cc~-", "Omega*_cc+", 3824.6600000000003, -1.0, 0.0, 0.0, -4434, -4434], "su_1": ["su_1", "anti-su_1", 0.0, 0.3, 0.0, 0.0, 3203, 3203], "su_0": ["su_0", "anti-su_0", 0.0, 0.3, 0.0, 0.0, 3201, 3201], "Xi*_cc+": ["Xi*_cc+", "Xi*_cc~-", 3656.48, 1.0, 0.0, 0.0, 4414, 4414], "D*_0~0": ["D*_0~0", "D*_00", 2318.0, 0.0, 2.465213e-15, 267.00013445853875, -10421, -10421], "~t_2": ["~t_2", "~t_2bar", 500000.0, 0.7, 0.0, 0.0, 2000006, 2000006], "~t_1": ["~t_1", "~t_1bar", 500000.0, 0.7, 0.0, 0.0, 1000006, 1000006], "N(1680)~-": ["N(1680)~-", "N(1680)+", 1685.0, -1.0, 5.0631710000000004e-15, 129.99999456248614, -12216, 0], "Sigma(1775)~0": ["Sigma(1775)~0", "Sigma(1775)0", 1775.0, 0.0, 5.485102e-15, 119.99999315763637, -3216, 0], "Upsilon(1S)": ["Upsilon(1S)", "Upsilon(1S)", 9460.3, 0.0, 1.218911e-11, 0.05400002153306825, 553, 553], "Lambda(2100)~0": ["Lambda(2100)~0", "Lambda(2100)0", 2100.0, 0.0, 3.291061e-15, 200.000000750195, -3128, 0], "Sigma(1775)~-": ["Sigma(1775)~-", "Sigma(1775)+", 1775.0, -1.0, 5.485102e-15, 119.99999315763637, -3226, 0], "N(1680)~0": ["N(1680)~0", "N(1680)0", 1685.0, 0.0, 5.0631710000000004e-15, 129.99999456248614, -12116, 0], "Sigma(1775)~+": ["Sigma(1775)~+", "Sigma(1775)-", 1775.0, 1.0, 5.485102e-15, 119.99999315763637, -3116, 0], "u*bar": ["u*bar", "u*", 400000.0, -0.7, 0.0, 0.0, -4000002, -4000002], "N(1650)~0": ["N(1650)~0", "N(1650)0", 1655.0, 0.0, 4.7015139999999994e-15, 140.00005157252272, -32112, 0], "c-hadron": ["c-hadron", "anti-c-hadron", 2000.0, 0.7, 0.0003335641, 1.973270512231195e-09, 84, 84], "B*_s~0": ["B*_s~0", "B*_s0", 5415.4, 0.0, 1e-10, 0.006582122024689376, -533, -533], "t": ["t", "anti-t", 173500.0, 0.7, 3.291061e-16, 2000.0000075019502, 6, 6], "D_1(2420)~0": ["D_1(2420)~0", "D_1(2420)0", 2421.4, 0.0, 2.428827e-14, 27.10000351893888, -10423, -10423], "Delta(1700)++": ["Delta(1700)++", "Delta(1700)~--", 1700.0, 2.0, 2.194041e-15, 299.9999555472927, 12224, 0], "rho_12_tc": ["rho_12_tc", "rho_12_tc", 350000.0, 0.0, 0.0, 0.0, 3200113, 3200113], "Delta(1600)~0": ["Delta(1600)~0", "Delta(1600)0", 1600.0, 0.0, 2.056913e-15, 320.00002064692944, -32114, 0], "N(1535)0": ["N(1535)0", "N(1535)~0", 1535.0, 0.0, 4.388081e-15, 150.00001195714884, 22112, 0], "Sigma(2250)~-": ["Sigma(2250)~-", "Sigma(2250)+", 2250.0, -1.0, 6.58e-15, 100.03224961534006, -103222, 0], "Delta(1600)~+": ["Delta(1600)~+", "Delta(1600)-", 1600.0, 1.0, 2.056913e-15, 320.00002064692944, -31114, 0], "K*_2(1430)~0": ["K*_2(1430)~0", "K*_2(1430)0", 1432.3999999999999, 0.0, 6.038644e-15, 109.00000107125666, -315, -315], "Delta(1600)~-": ["Delta(1600)~-", "Delta(1600)+", 1600.0, -1.0, 2.056913e-15, 320.00002064692944, -32214, 0], "Li7[0.0]": ["Li7[0.0]", null, 6535.365, 3.0, 0.0, 0.0, 1000030070, 0], "eta_b(1S)": ["eta_b(1S)", "eta_b(1S)", 9403.0, 0.0, 0.0, 0.0, 551, 551], "B_s0": ["B_s0", "B_s~0", 5366.7699999999995, 0.0, 0.001512, 4.3532553073342427e-10, 531, 531], "Ar40[0.0]": ["Ar40[0.0]", null, 37224.715000000004, 18.0, 0.0, 0.0, 1000180400, 0], "Delta(1920)0": ["Delta(1920)0", "Delta(1920)~0", 1920.0, 0.0, 2.531585e-15, 260.0000404761987, 22114, 0], "D(2S)0": ["D(2S)0", "D(2S)~0", 2580.0, 0.0, 0.0, 0.0, 100421, 0], "pi_1(1600)0": ["pi_1(1600)0", "pi_1(1600)0", 1662.0, 0.0, 2.742551e-15, 239.99998631527274, 9010113, 0], "Sigma_c*~0": ["Sigma_c*~0", "Sigma_c*0", 2518.8, 0.0, 4.539394e-14, 14.500001596445198, -4114, -4114], "anti-bs_1": ["anti-bs_1", "bs_1", 0.0, 0.7, 0.0, 0.0, -5303, -5303], "H+": ["H+", "H-", 310000.0, 1.0, 9.4e-17, 7002.257473073804, 37, 37], "Sigma(1940)-": ["Sigma(1940)-", "Sigma(1940)~+", 1940.0, -1.0, 2.991874e-15, 219.99997408612046, 23114, 0], "~u_Rbar": ["~u_Rbar", "~u_R", 500000.0, -0.7, 0.0, 0.0, -2000002, -2000002], "Sigma_c*~-": ["Sigma_c*~-", "Sigma_c*+", 2517.5, -1.0, 3.291061e-13, 2.0000000075019497, -4214, -4214], "H-": ["H-", "H+", 310000.0, -1.0, 9.4e-17, 7002.257473073804, -37, -37], "D(2S)+": ["D(2S)+", "D(2S)-", 2580.0, 1.0, 0.0, 0.0, 100411, 0], "B_s1(L)0": ["B_s1(L)0", "B_s1(L)~0", 5828.700000000001, 0.0, 1.3164239999999998e-12, 0.5000001538022231, 10533, 10533], "gamma": ["gamma", "gamma", 0.0, 0.0, 1e+25, 6.582122024689376e-38, 22, 22], "Delta(1920)~-": ["Delta(1920)~-", "Delta(1920)+", 1920.0, -1.0, 2.531585e-15, 260.0000404761987, -22214, 0], "triton": ["triton", "triton~", 2809.25, 1.0, 1e+24, 6.582122024689375e-37, 1000010030, 0], "Xi(1950)~0": ["Xi(1950)~0", "Xi(1950)0", 1950.0, 0.0, 1.09702e-14, 60.00001845626675, -103326, 0], "a_4(2040)-": ["a_4(2040)-", "a_4(2040)+", 1996.0, -1.0, 2.5812240000000002e-15, 255.000031949547, -219, 0], "h_b(2P)": ["h_b(2P)", "h_b(2P)", 10255.0, 0.0, 0.0, 0.0, 110553, 110553], "a_4(2040)+": ["a_4(2040)+", "a_4(2040)-", 1996.0, 1.0, 2.5812240000000002e-15, 255.000031949547, 219, 0], "~s_Rbar": ["~s_Rbar", "~s_R", 500000.0, 0.3, 0.0, 0.0, -2000003, -2000003], "D_s1(2460)-": ["D_s1(2460)-", "D_s1(2460)+", 2459.5, -1.0, 6.5821e-13, 1.0000033461493103, -20433, -20433], "eta_c(2S)": ["eta_c(2S)", "eta_c(2S)", 3639.4, 0.0, 6.582122e-14, 10.000000037509752, 100441, 100441], "Lambda(1670)~0": ["Lambda(1670)~0", "Lambda(1670)0", 1670.0, 0.0, 1.880606e-14, 35.00000544871906, -33122, 0], "Omega(2250)-": ["Omega(2250)-", "Omega(2250)~+", 2252.0, -1.0, 1.196749e-14, 55.00002109623133, 203338, 0], "Lambda(1600)0": ["Lambda(1600)0", "Lambda(1600)~0", 1600.0, 0.0, 4.388081e-15, 150.00001195714884, 23122, 0], "h_c(1P)": ["h_c(1P)", "h_c(1P)", 3525.38, 0.0, 9.403029e-13, 0.7000001834184895, 10443, 10443], "Cu63[0.0]": ["Cu63[0.0]", null, 58618.6, 29.0, 0.0, 0.0, 1000290630, 0], "tau-": ["tau-", "tau+", 1776.8200000000002, -1.0, 0.0002903, 2.267351713637401e-09, 15, 15], "Ne22[0.0]": ["Ne22[0.0]", null, 20484.841, 10.0, 0.0, 0.0, 1000100220, 0], "a_4(2040)0": ["a_4(2040)0", "a_4(2040)0", 1996.0, 0.0, 2.5812240000000002e-15, 255.000031949547, 119, 0], "p~-": ["p~-", "p+", 938.27205, -1.0, 1e+25, 6.582122024689376e-38, -2212, -2212], "Xi'_c~0": ["Xi'_c~0", "Xi'_c0", 2577.9, 0.0, 0.0, 0.0, -4312, -4312], "CMshower": ["CMshower", "CMshower", 0.0, 0.0, 0.0, 0.0, 94, 94], "K(1460)0": ["K(1460)0", "K(1460)~0", 1432.3999999999999, 0.0, 0.0, 0.0, 100311, 0], "Sigma*~0": ["Sigma*~0", "Sigma*0", 1383.6999999999998, 0.0, 1.828367e-14, 36.000004510524285, -3214, -3214], "Omega_c~0": ["Omega_c~0", "Omega_c0", 2695.2, 0.0, 6.9e-05, 9.539307282158515e-09, -4332, -4332], "Sigma*~-": ["Sigma*~-", "Sigma*+", 1382.8, -1.0, 1.828367e-14, 36.000004510524285, -3224, -3224], "Z(4430)+": ["Z(4430)+", "Z(4430)-", 4433.0, 1.0, 2.07634e-12, 0.3170059828683826, 9042413, 9042413], "Sigma*~+": ["Sigma*~+", "Sigma*-", 1387.2, 1.0, 1.670589e-14, 39.40000816891153, -3114, -3114], "K(1460)-": ["K(1460)-", "K(1460)+", 1432.3999999999999, -1.0, 0.0, 0.0, -100321, 0], "u*": ["u*", "u*bar", 400000.0, 0.7, 0.0, 0.0, 4000002, 4000002], "Xi'_c~-": ["Xi'_c~-", "Xi'_c+", 2575.6, -1.0, 0.0, 0.0, -4322, -4322], "Sigma(2030)~+": ["Sigma(2030)~+", "Sigma(2030)-", 2029.9999999999998, 1.0, 3.656734e-15, 180.00002255262143, -3118, 0], "K*_0(1430)0": ["K*_0(1430)0", "K*_0(1430)~0", 1425.0, 0.0, 2.437823e-15, 269.9999969107427, 10311, 10311], "Pb204[0.0]": ["Pb204[0.0]", null, 189999.627, 82.0, 0.0, 0.0, 1000822040, 0], "Xi*~+": ["Xi*~+", "Xi*-", 1535.0, 1.0, 6.648608e-14, 9.900000157460592, -3314, -3314], "Xi_b~0": ["Xi_b~0", "Xi_b0", 5793.1, 0.0, 0.00149, 4.417531560194212e-10, -5232, -5232], "Sigma(1660)0": ["Sigma(1660)0", "Sigma(1660)~0", 1660.0, 0.0, 6.582122e-15, 100.0000003750975, 13212, 0], "~g": ["~g", "~g", 500000.0, 0.0, 0.0, 0.0, 1000021, 1000021], "Upsilon_3(1D)": ["Upsilon_3(1D)", "Upsilon_3(1D)", 10159.9, 0.0, 0.0, 0.0, 557, 557], "N(2190)+": ["N(2190)+", "N(2190)~-", 2190.0, 1.0, 1.316424e-15, 500.00015380222294, 2128, 0], "Xsu": ["Xsu", "anti-Xsu", 1600.0, 1.0, 0.0, 0.0, 30353, 30353], "anti-t'": ["anti-t'", "t'", 500000.0, -0.7, 0.0, 0.0, -8, -8], "Xi(1690)~0": ["Xi(1690)~0", "Xi(1690)0", 1690.0, 0.0, 0.0, 0.0, -203322, 0], "K_1(1270)+": ["K_1(1270)+", "K_1(1270)-", 1272.0, 1.0, 7.313469000000001e-15, 89.99999897024757, 10323, 10323], "Sigma(1915)0": ["Sigma(1915)0", "Sigma(1915)~0", 1915.0, 0.0, 5.485102e-15, 119.99999315763637, 13216, 0], "~mu_R+": ["~mu_R+", "~mu_R-", 500000.0, 1.0, 0.0, 0.0, -2000013, -2000013], "Sigma(1915)-": ["Sigma(1915)-", "Sigma(1915)~+", 1915.0, -1.0, 5.485102e-15, 119.99999315763637, 13116, 0], "B_c1(H)-": ["B_c1(H)-", "B_c1(H)+", 7400.0, -1.0, 0.0, 0.0, -20543, -20543], "D-": ["D-", "D+", 1869.61, -1.0, 0.00104, 6.328963485278246e-10, -411, -411], "ss_1": ["ss_1", "anti-ss_1", 0.0, -0.7, 0.0, 0.0, 3303, 3303], "Sigma(1915)+": ["Sigma(1915)+", "Sigma(1915)~-", 1915.0, 1.0, 5.485102e-15, 119.99999315763637, 13226, 0], "Sigma(1660)+": ["Sigma(1660)+", "Sigma(1660)~-", 1660.0, 1.0, 6.582122e-15, 100.0000003750975, 13222, 0], "Xi_b~+": ["Xi_b~+", "Xi_b-", 5794.900000000001, 1.0, 0.00156, 4.219308990185497e-10, -5132, -5132], "Xi*~0": ["Xi*~0", "Xi*0", 1531.8, 0.0, 7.233101e-14, 9.100000158561834, -3324, -3324], "N(2190)0": ["N(2190)0", "N(2190)~0", 2190.0, 0.0, 1.316424e-15, 500.00015380222294, 1218, 0], "Sigma(1660)-": ["Sigma(1660)-", "Sigma(1660)~+", 1660.0, -1.0, 6.582122e-15, 100.0000003750975, 13112, 0], "Lambda(1800)~0": ["Lambda(1800)~0", "Lambda(1800)0", 1800.0, 0.0, 2.194041e-15, 299.9999555472927, -43122, 0], "~tau_1-": ["~tau_1-", "~tau_1+", 500000.0, -1.0, 0.0, 0.0, 1000015, 1000015], "Sigma(1660)~-": ["Sigma(1660)~-", "Sigma(1660)+", 1660.0, -1.0, 6.582122e-15, 100.0000003750975, -13222, 0], "~tau_1+": ["~tau_1+", "~tau_1-", 500000.0, 1.0, 0.0, 0.0, -1000015, -1000015], "Sigma(1660)~+": ["Sigma(1660)~+", "Sigma(1660)-", 1660.0, 1.0, 6.582122e-15, 100.0000003750975, -13112, 0], "eta(1295)": ["eta(1295)", "eta(1295)", 1294.0, 0.0, 1.196749e-14, 55.00002109623133, 100221, 0], "Xi_c+": ["Xi_c+", "Xi_c~-", 2467.8, 1.0, 0.000442, 1.489167878888999e-09, 4232, 4232], "Delta(1600)~--": ["Delta(1600)~--", "Delta(1600)++", 1600.0, -2.0, 2.056913e-15, 320.00002064692944, -32224, 0], "Xi_c0": ["Xi_c0", "Xi_c~0", 2470.88, 0.0, 0.000112, 5.876894664901228e-09, 4132, 4132], "chi_c1(1P)": ["chi_c1(1P)", "chi_c1(1P)", 3510.6600000000003, 0.0, 7.835857e-13, 0.8400002737019544, 20443, 20443], "Cl39[0.0]": ["Cl39[0.0]", null, 36298.46, 17.0, 0.0, 0.0, 1000170390, 0], "Sigma(1940)+": ["Sigma(1940)+", "Sigma(1940)~-", 1940.0, 1.0, 2.991874e-15, 219.99997408612046, 23224, 0], "Pb206[0.0]": ["Pb206[0.0]", null, 191863.937, 82.0, 0.0, 0.0, 1000822060, 0], "Sigma(1660)~0": ["Sigma(1660)~0", "Sigma(1660)0", 1660.0, 0.0, 6.582122e-15, 100.0000003750975, -13212, 0], "Mo98[0.0]": ["Mo98[0.0]", null, 91198.287, 42.0, 0.0, 0.0, 1000420980, 0], "Delta(1900)0": ["Delta(1900)0", "Delta(1900)~0", 1930.0, 0.0, 1.880606e-15, 350.00005448719065, 11212, 0], "b'-hadron": ["b'-hadron", "anti-b'-hadron", 400000.0, -0.3, 0.0, 0.0, 87, 0], "H_30": ["H_30", "H_30", 310000.0, 0.0, 9.4e-17, 7002.257473073804, 36, 36], "B*_0-": ["B*_0-", "B*_0+", 5738.0, -1.0, 4.39e-15, 149.93444247583997, -10521, -10521], "B*_0+": ["B*_0+", "B*_0-", 5738.0, 1.0, 4.39e-15, 149.93444247583997, 10521, 10521], "B*_00": ["B*_00", "B*_0~0", 5738.0, 0.0, 4.39e-15, 149.93444247583997, 10511, 10511], "B_1(H)+": ["B_1(H)+", "B_1(H)-", 5757.0, 1.0, 2.6299999999999997e-15, 250.270799417847, 20523, 20523], "D*_s0-": ["D*_s0-", "D*_s0+", 2317.7, -1.0, 6.5821e-13, 1.0000033461493103, -10431, -10431], "Sigma_b*+": ["Sigma_b*+", "Sigma_b*~-", 5832.099999999999, 1.0, 5.723583e-14, 11.500002751230086, 5224, 5224], "f'_2(1525)": ["f'_2(1525)", "f'_2(1525)", 1525.0, 0.0, 9.016605e-15, 73.00000415554831, 335, 335], "B_1(H)-": ["B_1(H)-", "B_1(H)+", 5757.0, -1.0, 2.6299999999999997e-15, 250.270799417847, -20523, -20523], "Xi_bc~0": ["Xi_bc~0", "Xi_bc0", 6900.0, 0.0, 0.0005, 1.316424404937875e-09, -5142, -5142], "Lambda_b0": ["Lambda_b0", "Lambda_b~0", 5619.5, 0.0, 0.001451, 4.5362660404475367e-10, 5122, 5122], "Xi(2030)~+": ["Xi(2030)~+", "Xi(2030)-", 2025.0, 1.0, 3.291061e-14, 20.000000075019503, -203316, 0], "Cu65[0.0]": ["Cu65[0.0]", null, 60479.842, 29.0, 0.0, 0.0, 1000290650, 0], "anti-c-hadron": ["anti-c-hadron", "c-hadron", 2000.0, -0.7, 0.0003335641, 1.973270512231195e-09, -84, -84], "B_c2*+": ["B_c2*+", "B_c2*-", 7350.0, 1.0, 0.0, 0.0, 545, 545], "K_2(1820)~0": ["K_2(1820)~0", "K_2(1820)0", 1816.0, 0.0, 2.384827e-15, 275.99997923075244, -20315, 0], "KL0": ["KL0", "KL0", 497.614, 0.0, 51.160000000000004, 1.2865758453263047e-14, 130, 130], "B_c2*-": ["B_c2*-", "B_c2*+", 7350.0, -1.0, 0.0, 0.0, -545, -545], "N(1535)+": ["N(1535)+", "N(1535)~-", 1535.0, 1.0, 4.388081e-15, 150.00001195714884, 22212, 0], "K*_2(1980)+": ["K*_2(1980)+", "K*_2(1980)-", 1973.0, 1.0, 0.0, 0.0, 100325, 0], "Lambda_b(5920)~0": ["Lambda_b(5920)~0", "Lambda_b(5920)0", 5919.7699999999995, 0.0, 1.316e-12, 0.5001612480767003, -5124, -5124], "Delta(1920)-": ["Delta(1920)-", "Delta(1920)~+", 1920.0, -1.0, 2.531585e-15, 260.0000404761987, 21114, 0], "F19[0.0]": ["F19[0.0]", null, 17696.896, 9.0, 0.0, 0.0, 1000090190, 0], "pi+": ["pi+", "pi-", 139.57018, 1.0, 26.032999999999998, 2.528376301113731e-14, 211, 211], "pi-": ["pi-", "pi+", 139.57018, -1.0, 26.032999999999998, 2.528376301113731e-14, -211, -211], "Delta(1920)~0": ["Delta(1920)~0", "Delta(1920)0", 1920.0, 0.0, 2.531585e-15, 260.0000404761987, -22114, 0], "Delta(1910)-": ["Delta(1910)-", "Delta(1910)~+", 1890.0, -1.0, 2.350758e-15, 279.9999840344849, 21112, 0], "Xi*_bc~0": ["Xi*_bc~0", "Xi*_bc0", 7048.5, 0.0, 0.0, 0.0, -5414, -5414], "rho_22_tc": ["rho_22_tc", "rho_22_tc", 300000.0, 0.0, 0.0, 0.0, 3400113, 3400113], "Sigma(1940)0": ["Sigma(1940)0", "Sigma(1940)~0", 1940.0, 0.0, 2.991874e-15, 219.99997408612046, 23214, 0], "Delta(1910)+": ["Delta(1910)+", "Delta(1910)~-", 1890.0, 1.0, 2.350758e-15, 279.9999840344849, 22122, 0], "Delta(1920)~+": ["Delta(1920)~+", "Delta(1920)-", 1920.0, 1.0, 2.531585e-15, 260.0000404761987, -21114, 0], "Delta(1910)0": ["Delta(1910)0", "Delta(1910)~0", 1890.0, 0.0, 2.350758e-15, 279.9999840344849, 21212, 0], "f_1(1285)": ["f_1(1285)", "f_1(1285)", 1281.9, 0.0, 2.7198850000000002e-14, 24.20000119376141, 20223, 20223], "pi0": ["pi0", "pi0", 134.9766, 0.0, 8.52e-08, 7.72549533414246e-06, 111, 111], "D*(2007)0": ["D*(2007)0", "D*(2007)~0", 2006.9599999999998, 0.0, 1.000003e-10, 0.006582102278382541, 423, 423], "Si30[0.0]": ["Si30[0.0]", null, 27920.383, 14.0, 0.0, 0.0, 1000140300, 0], "Delta++": ["Delta++", "Delta~--", 1232.0, 2.0, 5.6257450000000005e-15, 117.00000666026234, 2224, 2224], "Lambda(2110)0": ["Lambda(2110)0", "Lambda(2110)~0", 2110.0, 0.0, 3.291061e-15, 200.000000750195, 23126, 0], "Lambda(1405)0": ["Lambda(1405)0", "Lambda(1405)~0", 1405.1, 0.0, 1.316424e-14, 50.0000153802223, 13122, 0], "Lambda(1890)0": ["Lambda(1890)0", "Lambda(1890)~0", 1890.0, 0.0, 6.582122e-15, 100.0000003750975, 23124, 0], "N(1680)0": ["N(1680)0", "N(1680)~0", 1685.0, 0.0, 5.0631710000000004e-15, 129.99999456248614, 12116, 0], "eta_b2(2D)": ["eta_b2(2D)", "eta_b2(2D)", 10441.0, 0.0, 0.0, 0.0, 110555, 110555], "N(1650)~-": ["N(1650)~-", "N(1650)+", 1655.0, -1.0, 4.7015139999999994e-15, 140.00005157252272, -32212, 0], "K~0": ["K~0", "K0", 497.614, 0.0, 0.0, 0.0, -311, -311], "a_0(980)+": ["a_0(980)+", "a_0(980)-", 980.0, 1.0, 8.776163e-15, 74.99999743269781, 9000211, 10211], "vpho": ["vpho", "vpho", 0.0, 0.0, 0.0, 0.0, 10022, 0], "N(1680)+": ["N(1680)+", "N(1680)~-", 1685.0, 1.0, 5.0631710000000004e-15, 129.99999456248614, 12216, 0], "u": ["u", "anti-u", 5.6, 0.7, 0.0, 0.0, 2, 2], "D0": ["D0", "D~0", 1864.8400000000001, 0.0, 0.0004101, 1.6050041513507378e-09, 421, 421], "a_0(980)-": ["a_0(980)-", "a_0(980)+", 980.0, -1.0, 8.776163e-15, 74.99999743269781, -9000211, -10211], "n0": ["n0", "n~0", 939.56538, 0.0, 880300000000.0, 7.477135095637141e-25, 2112, 2112], "Xi_c(2815)~0": ["Xi_c(2815)~0", "Xi_c(2815)0", 2819.6, 0.0, 0.0, 0.0, -104312, 0], "chi_b1(2P)": ["chi_b1(2P)", "chi_b1(2P)", 10255.46, 0.0, 0.0, 0.0, 120553, 120553], "Delta(1900)~0": ["Delta(1900)~0", "Delta(1900)0", 1930.0, 0.0, 1.880606e-15, 350.00005448719065, -11212, 0]}
\ No newline at end of file
diff --git a/productions/d2hll/decay_parser/data/symbols.json b/productions/d2hll/decay_parser/data/symbols.json
new file mode 100644
index 0000000..52725ba
--- /dev/null
+++ b/productions/d2hll/decay_parser/data/symbols.json
@@ -0,0 +1 @@
+["Xu", true, "Any particle with u-quark", ["Delta(1700)~--", "Lambda(1810)~0", "Xi_bb0", "Delta(1930)++", "Xi_c*+", "Sigma_b0", "N(1520)~0", "Sigma_c~--", "Xi(1950)0", "N(1520)~-", "Delta(1930)~0", "Delta(1930)0", "Delta(1900)~-", "Delta(1930)+", "Delta(1910)~-", "N(1675)0", "b_1(1235)-", "eta_2(1645)", "N(1675)+", "D_1(H)~0", "Sigma_c*++", "Sigma(1670)~-", "Sigma(1670)~0", "Lambda_b~0", "D_1(2420)0", "pi(1800)+", "Sigma_c++", "Delta(1930)~-", "Sigma(2030)0", "D*_00", "uu_1", "D*_2(2460)~0", "pi(1800)-", "Sigma(2030)+", "Lambda_b(5920)0", "f_0(980)", "Sigma+", "Xi_cc++", "Xi*_bb~0", "N(1990)~0", "D_1(H)0", "Lambda_c(2880)~-", "Sigma0", "Delta~0", "Delta~-", "anti-cu_0", "Lambda(1405)~0", "rho_tc-", "K*(1680)-", "Delta(1920)++", "Xi*0", "rho(1450)+", "Lambda(1690)0", "pi_1(1600)+", "Xi_b*0", "K*(1410)+", "rho(770)+", "rho(770)-", "Sigma_b+", "Sigma~0", "Xi_c(2790)~-", "Delta(1700)0", "Sigma~-", "Delta(1700)+", "Delta(1920)~--", "N(1700)~0", "Sigma(1940)~-", "N(1900)0", "N(1900)+", "a_1(1260)-", "Sigma(1940)~0", "eta(1405)0", "N(1700)~-", "a_1(1260)+", "N(1900)~0", "a_0(1450)-", "N(1440)0", "a_0(1450)+", "N(1720)0", "N(1440)+", "N(1720)+", "pi_2(1670)+", "N(1720)~0", "Sigma(1750)~-", "Sigma(1750)0", "Sigma(1750)+", "Delta(1905)++", "anti-bu_0", "N(1720)~-", "Delta(1620)~--", "Delta(1900)++", "Lambda(1800)0", "Lambda(1600)~0", "ud_0", "Lambda_c+", "Delta(1950)0", "N(1535)~0", "Delta(1950)+", "Delta0", "Lambda(1830)0", "N(2190)~0", "Sigma(2250)0", "N(2190)~-", "Delta+", "Delta(1905)~--", "a_2(1320)+", "Lambda(1820)~0", "Lambda_c(2595)~-", "Xi_bc+", "pi(1300)-", "Lambda(1690)~0", "Delta~--", "N(1990)0", "D*(2007)~0", "Lambda(2110)~0", "K*(892)-", "pi_1(1600)-", "K*(892)+", "N(1710)~0", "N(1900)~-", "Sigma_c+", "K*_0(1430)-", "Lambda(1820)0", "Delta(1900)~--", "Xi_c(2815)~-", "Xi(1820)~0", "sigma_0", "b_1(1235)+", "K*_3(1780)-", "K*_3(1780)+", "N(1535)~-", "opticalphoton", "cu_1", "cu_0", "anti-u", "Lambda0", "pi_tc-", "Delta(1910)~0", "pi_tc+", "Lambda_c(2625)~-", "Sigma_c*+", "K+", "pi_1(1400)-", "K-", "Delta(1910)~--", "Sigma(1750)~0", "K(1460)+", "anti-bu_1", "Xi(2030)0", "rho_tc+", "K*_4(2045)+", "K*_4(2045)-", "Delta(1950)~--", "Sigma(1915)~-", "Sigma(1775)0", "K*_2(1980)-", "N(1700)0", "f_2(2010)", "Sigma(1775)+", "Lambda(2100)0", "bu_1", "Lambda_c~-", "Xi*_bb0", "Xi(1690)0", "rho(1700)+", "rho(1450)-", "D~0", "f_2(2340)", "D*(2640)~0", "pi_1(1400)+", "Xi(2030)~0", "omega_3(1670)", "omega(1420)", "Lambda_b(5912)~0", "Sigma_c*~--", "Xi_b*~0", "Xi'_c+", "Lambda~0", "Xi*_bc~-", "Sigma_b*0", "rho_3(1690)-", "Xi'_bc+", "ud_1", "Xi_cc~--", "rho_3(1690)+", "B*_2-", "B*_2+", "Xi_bb~0", "K_2(1770)+", "Lambda_c(2625)+", "K*(1680)+", "anti-ud_0", "n~0", "Sigma_b~-", "Xi_c*~-", "f_0(1370)", "Xi*_cc~--", "Delta(1950)++", "K*(1410)-", "Lambda(1890)~0", "f_0(1500)", "Xi0", "N(1700)+", "Delta(1900)+", "h_1(1170)", "D*_2(2460)0", "Lambda(1670)0", "Sigma_b~0", "K_2(1770)-", "Delta(1600)0", "Sigma(1915)~0", "Delta(1620)+", "omega(1650)", "Delta(1620)++", "Xi(1820)0", "anti-ud_1", "Delta(1620)0", "N(1675)~-", "Sigma*+", "Sigma*0", "Xi'_bc~-", "N(1675)~0", "Sigma(1670)+", "Sigma(2030)~-", "Sigma(2250)+", "Sigma(2030)~0", "eta", "Sigma_c~-", "Lambda_b(5912)0", "bu_0", "K_1(1270)-", "omega_tc", "Z(4430)-", "Xi_b0", "Lambda(1520)~0", "Xi'_b~0", "K*_2(1430)-", "K*_2(1430)+", "Delta(1920)+", "N(1440)~-", "N(2090)0", "N(2090)+", "Delta(1950)~0", "Xi_bc~-", "Delta(1905)~-", "Delta(1700)~-", "Delta(1700)~0", "Delta(1905)~0", "Delta(1600)++", "p+", "N(1990)~-", "Delta(1950)~-", "K_2(1820)-", "anti-su_1", "anti-su_0", "K_2(1820)+", "Delta(1600)+", "f_2(1270)", "a_2(1320)-", "N(1710)~-", "Xi~0", "N(2090)~0", "D*(2640)0", "N(1990)+", "Sigma(2250)~0", "Xi_c(2790)+", "N(2090)~-", "Lambda(1520)0", "K*_0(1430)+", "Delta(1620)~0", "Lambda(1810)0", "D(2S)~0", "Sigma(1670)0", "Delta(1620)~-", "Xi*_bc+", "f_4(2050)", "omega(782)", "Delta(1930)~--", "Lambda_c(2595)+", "rho(1700)-", "pi(1300)+", "N(1440)~0", "K_1(1400)-", "B_1(L)-", "K_1(1400)+", "B_1(L)+", "Xi*_cc++", "anti-uu_1", "Xi_c~-", "Xi_c(2815)+", "Xi'_b0", "f_2(2300)", "Delta(1910)++", "pi'_tc0", "N(1520)+", "pi_2(1670)-", "N(1520)0", "f_2(1950)", "B-", "B*-", "B*+", "Sigma_b*~-", "B+", "Sigma_b*~0", "N(1710)+", "Lambda(1830)~0", "anti-cu_1", "N(1710)0", "Delta(1905)0", "N(1650)0", "Lambda_c(2880)+", "N(1650)+", "Delta(1905)+", "su_1", "su_0", "D*_0~0", "N(1680)~-", "Sigma(1775)~0", "Lambda(2100)~0", "Sigma(1775)~-", "N(1680)~0", "N(1650)~0", "D_1(2420)~0", "Delta(1700)++", "Delta(1600)~0", "N(1535)0", "Sigma(2250)~-", "Delta(1600)~-", "Delta(1920)0", "D(2S)0", "Sigma_c*~-", "Delta(1920)~-", "Xi(1950)~0", "a_4(2040)-", "a_4(2040)+", "Lambda(1670)~0", "Lambda(1600)0", "p~-", "Sigma*~0", "Sigma*~-", "Z(4430)+", "K(1460)-", "Xi'_c~-", "Xi_b~0", "Sigma(1660)0", "N(2190)+", "Xi(1690)~0", "K_1(1270)+", "Sigma(1915)0", "Sigma(1915)+", "Sigma(1660)+", "Xi*~0", "N(2190)0", "Lambda(1800)~0", "Sigma(1660)~-", "eta(1295)", "Xi_c+", "Delta(1600)~--", "Sigma(1940)+", "Sigma(1660)~0", "Delta(1900)0", "B*_0-", "B*_0+", "B_1(H)+", "Sigma_b*+", "B_1(H)-", "Lambda_b0", "N(1535)+", "K*_2(1980)+", "Lambda_b(5920)~0", "pi+", "pi-", "Delta(1920)~0", "Sigma(1940)0", "Delta(1910)+", "Delta(1910)0", "f_1(1285)", "D*(2007)0", "Delta++", "Lambda(2110)0", "Lambda(1405)0", "Lambda(1890)0", "N(1680)0", "N(1650)~-", "a_0(980)+", "vpho", "N(1680)+", "u", "D0", "a_0(980)-", "n0", "Delta(1900)~0"]]
\ No newline at end of file
diff --git a/productions/d2hll/decay_parser/decay.py b/productions/d2hll/decay_parser/decay.py
new file mode 100644
index 0000000..a366307
--- /dev/null
+++ b/productions/d2hll/decay_parser/decay.py
@@ -0,0 +1,43 @@
+from .particle import Particle
+
+
+class Decay(Particle):
+ def __init__(self, name, search_type, children, cc=False, marked=False):
+ super(Decay, self).__init__(name, cc=cc, marked=marked)
+ self.children = children
+ self.search_type = search_type
+
+ @property
+ def children(self):
+ return self._children
+
+ @children.setter
+ def children(self, children):
+ self._children = children
+
+ @property
+ def search_type(self):
+ return self._search_type
+
+ @search_type.setter
+ def search_type(self, search_type):
+ self._search_type = search_type
+
+ def __str__(self):
+ def convert_child(child):
+ if isinstance(child, Decay) and not child.cc:
+ return '(' + str(child) + ')'
+ else:
+ return str(child)
+
+ return (
+ ['', '^'][self.marked] + ['', '['][self.cc] + self.name + ' ' +
+ self.search_type + ' ' +
+ ' '.join(map(convert_child, self.children)) + ['', ']CC'][self.cc]
+ ).replace('(^', '^(')
+
+ def __repr__(self):
+ return (
+ 'Decay(' + self.name + ', ' + self.search_type + ', ' +
+ repr(self.children) + ', ' + str(self.cc) + ')'
+ )
diff --git a/productions/d2hll/decay_parser/decay.pyc b/productions/d2hll/decay_parser/decay.pyc
new file mode 100644
index 0000000..236b51b
--- /dev/null
+++ b/productions/d2hll/decay_parser/decay.pyc
Binary files differ
diff --git a/productions/d2hll/decay_parser/parser.py b/productions/d2hll/decay_parser/parser.py
new file mode 100644
index 0000000..add5574
--- /dev/null
+++ b/productions/d2hll/decay_parser/parser.py
@@ -0,0 +1,48 @@
+import pyparsing as pp
+
+from .decay import Decay
+from .particle import Particle
+
+
+__all__ = [
+ 'make_parser'
+]
+
+
+def make_parser(particles, symbols):
+ # Make the inputs to the parser
+ particle_literals = map(lambda s: pp.Literal(s).setName(s), particles.keys())
+
+ # Make the parser
+ element = pp.Forward().setName('Element')
+
+ particle = pp.Or(particle_literals).setName('Particle')
+ particle = particle.setParseAction(lambda x: Particle(x[0]))
+
+ decay = element + pp.Or(['->', '-->', '=>']) + pp.OneOrMore(element)
+ decay = decay.setParseAction(lambda x: Decay(x[0], x[1], x[2:]))
+ decay = decay.setName('Decay')
+
+ element_cc = supress('[', pp.Or([element, decay]), ']CC')
+ element_cc = element_cc.setParseAction(lambda x: x[0]._enable_cc() or x[0])
+
+ element << pp.Or([
+ supress('(', element, ')'), mark(supress('(', element, ')')),
+ supress('(', decay, ')'), mark(supress('(', decay, ')')),
+ element_cc, mark(element_cc),
+ particle, mark(particle)
+ ])
+
+ return pp.Or([decay, element_cc])
+
+
+def supress(prefix, body, suffix):
+ prefix = pp.Literal(prefix).suppress().setName(prefix)
+ suffix = pp.Literal(suffix).suppress().setName(suffix)
+ return prefix + body + suffix
+
+
+def mark(obj):
+ marked_obj = pp.Literal('^').suppress().setName('^') + obj
+ marked_obj = marked_obj.setParseAction(lambda x: x[0]._enable_marked() or x[0])
+ return marked_obj
diff --git a/productions/d2hll/decay_parser/parser.pyc b/productions/d2hll/decay_parser/parser.pyc
new file mode 100644
index 0000000..3a4ec4b
--- /dev/null
+++ b/productions/d2hll/decay_parser/parser.pyc
Binary files differ
diff --git a/productions/d2hll/decay_parser/particle.py b/productions/d2hll/decay_parser/particle.py
new file mode 100644
index 0000000..5ed25c7
--- /dev/null
+++ b/productions/d2hll/decay_parser/particle.py
@@ -0,0 +1,63 @@
+class Particle(object):
+ def __init__(self, name, cc=False, marked=False):
+ self.name = name
+ self.cc = cc
+ self.marked = marked
+
+ def _enable_cc(self):
+ if self.cc:
+ raise ValueError(self.name, 'has been charge conjugated twice')
+ self.cc = True
+
+ def _enable_marked(self):
+ if self.marked:
+ raise ValueError(self.name, 'has been marked twice')
+ self.marked = True
+
+ @property
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ self._name = str(name)
+
+ @property
+ def cc(self):
+ return self._cc
+
+ @cc.setter
+ def cc(self, cc):
+ self._cc = cc
+
+ @property
+ def marked(self):
+ return self._marked
+
+ @marked.setter
+ def marked(self, marked):
+ self._marked = marked
+
+ def __str__(self):
+ if self.cc:
+ prefix, suffix = '[', ']CC'
+ else:
+ prefix, suffix = '', ''
+ return ['', '^'][self.marked] + prefix + self.name + suffix
+
+ def __repr__(self):
+ return (
+ 'Particle(' +
+ self.name + ', ' +
+ str(self.cc) + ', ' +
+ str(self.marked) + ')'
+ )
+
+ def __eq__(self, other):
+ return all([
+ isinstance(other, self.__class__) or isinstance(self, other.__class__),
+ self.__dict__ == other.__dict__
+ ])
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
diff --git a/productions/d2hll/decay_parser/particle.pyc b/productions/d2hll/decay_parser/particle.pyc
new file mode 100644
index 0000000..26d963e
--- /dev/null
+++ b/productions/d2hll/decay_parser/particle.pyc
Binary files differ
diff --git a/productions/d2hll/decay_parser/utils.py b/productions/d2hll/decay_parser/utils.py
new file mode 100644
index 0000000..add0dfc
--- /dev/null
+++ b/productions/d2hll/decay_parser/utils.py
@@ -0,0 +1,47 @@
+from copy import deepcopy
+
+
+def mark_all(decay):
+ marked_decay = deepcopy(decay)
+
+ marked_decay.children[0].marked = True
+ marked_decay.children[1].marked = True
+ marked_decay.children[2].marked = True
+ # marked_decay.children[1].marked = True
+ # marked_decay.children[1].children[0].marked = True
+ # marked_decay.children[1].children[1].marked = True
+
+ return marked_decay
+
+
+def get_branches(decay):
+ decay = deepcopy(decay)
+
+ branches = {}
+ branches['Dp'] = str(decay)
+
+ decay.children[0].marked = True
+ branches['Dp_h'] = str(decay)
+ decay.children[0].marked = False
+
+ decay.children[1].marked = True
+ branches['Dp_l1'] = str(decay)
+ decay.children[1].marked = False
+
+ decay.children[2].marked = True
+ branches['Dp_l2'] = str(decay)
+ decay.children[2].marked = False
+
+ # decay.children[1].marked = True
+ # branches['Dp_phi'] = str(decay)
+ # decay.children[1].marked = False
+
+ # decay.children[1].children[0].marked = True
+ # branches['Dp_l1'] = str(decay)
+ # decay.children[1].children[0].marked = False
+
+ # decay.children[1].children[1].marked = True
+ # branches['Dp_l2'] = str(decay)
+ # decay.children[1].children[1].marked = False
+
+ return branches
diff --git a/productions/d2hll/decay_parser/utils.pyc b/productions/d2hll/decay_parser/utils.pyc
new file mode 100644
index 0000000..ecd946e
--- /dev/null
+++ b/productions/d2hll/decay_parser/utils.pyc
Binary files differ
diff --git a/productions/d2hll/info.json b/productions/d2hll/info.json
new file mode 100644
index 0000000..95bfb8c
--- /dev/null
+++ b/productions/d2hll/info.json
@@ -0,0 +1,50 @@
+{
+ "2015_MagDown": {
+ "options": ["main_options.py"],
+ "bookkeeping_path": "/LHCb/Collision15/Beam6500GeV-VeloClosed-MagDown/Real Data/Reco15a/Stripping24r1/90000000/CHARM.MDST",
+ "dq_flag": "OK",
+ "application": "DaVinci",
+ "application_version": "v44r2",
+ "output_type": "CHARM_D2HLL_DVNTUPLE.ROOT"
+ },
+ "2015_MagUp": {
+ "options": ["main_options.py"],
+ "bookkeeping_path": "/LHCb/Collision15/Beam6500GeV-VeloClosed-MagUp/Real Data/Reco15a/Stripping24r1/90000000/CHARM.MDST",
+ "dq_flag": "OK",
+ "application": "DaVinci",
+ "application_version": "v44r2",
+ "output_type": "CHARM_D2HLL_DVNTUPLE.ROOT"
+ },
+ "2016_MagDown": {
+ "options": ["main_options.py"],
+ "bookkeeping_path": "/LHCb/Collision16/Beam6500GeV-VeloClosed-MagDown/Real Data/Reco16/Stripping28r1/90000000/CHARM.MDST",
+ "dq_flag": "OK",
+ "application": "DaVinci",
+ "application_version": "v44r2",
+ "output_type": "CHARM_D2HLL_DVNTUPLE.ROOT"
+ },
+ "2016_MagUp": {
+ "options": ["main_options.py"],
+ "bookkeeping_path": "/LHCb/Collision16/Beam6500GeV-VeloClosed-MagUp/Real Data/Reco16/Stripping28r1/90000000/CHARM.MDST",
+ "dq_flag": "OK",
+ "application": "DaVinci",
+ "application_version": "v44r2",
+ "output_type": "CHARM_D2HLL_DVNTUPLE.ROOT"
+ },
+ "2017_MagDown": {
+ "options": ["main_options.py"],
+ "bookkeeping_path": "/LHCb/Collision17/Beam6500GeV-VeloClosed-MagDown/Real Data/Reco17/Stripping29r2/90000000/CHARM.MDST",
+ "dq_flag": "OK",
+ "application": "DaVinci",
+ "application_version": "v44r2",
+ "output_type": "CHARM_D2HLL_DVNTUPLE.ROOT"
+ },
+ "2017_MagUp": {
+ "options": ["main_options.py"],
+ "bookkeeping_path": "/LHCb/Collision17/Beam6500GeV-VeloClosed-MagUp/Real Data/Reco17/Stripping29r2/90000000/CHARM.MDST",
+ "dq_flag": "OK",
+ "application": "DaVinci",
+ "application_version": "v44r2",
+ "output_type": "CHARM_D2HLL_DVNTUPLE.ROOT"
+ }
+}
diff --git a/productions/d2hll/main_options.py b/productions/d2hll/main_options.py
new file mode 100644
index 0000000..87ab955
--- /dev/null
+++ b/productions/d2hll/main_options.py
@@ -0,0 +1,220 @@
+from collections import namedtuple
+import subprocess
+import re
+import json
+import glob
+import os
+from os.path import normpath, join, isfile
+import sys
+
+from Configurables import DaVinci, CondDB, MCDecayTreeTuple
+
+if "CHARMWGPRODROOT" in os.environ:
+ # We are running a released version
+ sys.path.append(join(os.environ["CHARMWGPRODROOT"], 'productions/d2hll'))
+elif "CI_PROJECT_DIR" in os.environ:
+ # We are running inside the CI
+ sys.path.append(join(os.environ["CI_PROJECT_DIR"], 'productions/d2hll'))
+else:
+ # We are running with a local version
+ sys.path.append(normpath(os.getcwd()))
+
+try:
+ from make_decay_tree_tuples import make_decay_tree_tuple
+ from decay_parser import parse_decay
+ from decay_parser import utils as decay_utils
+except ImportError as e:
+ raise Exception(str(os.listdir(os.getcwd())) + '\n' + repr(e))
+
+# Keep the linter happy
+if False:
+ unicode = str
+
+
+Decay = namedtuple('Decay', ['name', 'decay_descriptor', 'stripping_line', 'dp_event_type', 'dsp_event_type'])
+
+decays = [
+ Decay('DpToKmumu_OS', '[D+ -> K+ mu+ mu-]CC', 'D2XMuMuSS_KOSLine', '21113001', '23113001'),
+ Decay('DpToKmumu_SS', '[D+ -> K- mu+ mu+]CC', 'D2XMuMuSS_KSSLine', '21113003', '23113004'),
+ Decay('DpToKmue_OS', '[D+ -> K+ mu+ e-]CC', 'D2XMuMuSS_K_MuE_OSLine', '21113015', '23113015'),
+ Decay('DpToKmue_SS', '[D+ -> K- mu+ e+]CC', 'D2XMuMuSS_K_MuE_SSLine', '21113035', '23113035'),
+ Decay('DpToKemu_OS', '[D+ -> K+ e+ mu-]CC', 'D2XMuMuSS_K_EMu_OSLine', '21113005', '23113010'),
+ Decay('DpToKee_OS', '[D+ -> K+ e+ e-]CC', 'D2XMuMuSS_K_EE_OSLine', '21123000', '23123000'),
+ Decay('DpToKee_SS', '[D+ -> K- e+ e+]CC', 'D2XMuMuSS_K_EE_SSLine', '21123010', '23123010'),
+ Decay('DpTopimumu_OS', '[D+ -> pi+ mu+ mu-]CC', 'D2XMuMuSS_PiOSLine', '21113000', '23113000'),
+ Decay('DpTopimumu_SS', '[D+ -> pi- mu+ mu+]CC', 'D2XMuMuSS_PiSSLine', '21113002', '23113003'),
+ Decay('DpTopimue_OS', '[D+ -> pi+ mu+ e-]CC', 'D2XMuMuSS_Pi_MuE_OSLine', '21113016', '23113016'),
+ Decay('DpTopimue_SS', '[D+ -> pi- mu+ e+]CC', 'D2XMuMuSS_Pi_MuE_SSLine', '21113036', '23113036'),
+ Decay('DpTopiemu_OS', '[D+ -> pi+ e+ mu-]CC', 'D2XMuMuSS_Pi_EMu_OSLine', '21113006', '23113011'),
+ Decay('DpTopiee_OS', '[D+ -> pi+ e+ e-]CC', 'D2XMuMuSS_Pi_EE_OSLine', '21123001', '23123001'),
+ Decay('DpTopiee_SS', '[D+ -> pi- e+ e+]CC', 'D2XMuMuSS_Pi_EE_SSLine', '21123011', '23123011'),
+ # Unphysical channels
+ Decay('DpTopimumu_WS', '[D+ -> pi+ mu+ mu+]CC', 'D2XMuMuSS_PiMuMuCalLine', None, None),
+ Decay('DpTopimue_WS', '[D+ -> pi+ mu+ e+]CC', 'D2XMuMuSS_PiEMuCalLine', None, None),
+ Decay('DpTopiee_WS', '[D+ -> pi+ e+ e+]CC', 'D2XMuMuSS_PiEECalLine', None, None),
+ Decay('DpToKmumu_WS', '[D+ -> K+ mu+ mu+]CC', 'D2XMuMuSS_KMuMuCalLine', None, None),
+ Decay('DpToKmue_WS', '[D+ -> K+ mu+ e+]CC', 'D2XMuMuSS_KEMuCalLine', None, None),
+ Decay('DpToKee_WS', '[D+ -> K+ e+ e+]CC', 'D2XMuMuSS_KEECalLine', None, None),
+ # Calibration channels
+ Decay('DpToKKpi_SS', '[D+ -> K- K+ pi+]CC', 'D2XMuMuSS_2KPiLine', None, None),
+ Decay('DpToKpipi_SS', '[D+ -> K- pi+ pi+]CC', 'D2XMuMuSS_K2PiLine', None, None),
+ Decay('DpTopipipi_SS', '[D+ -> pi- pi+ pi+]CC', 'D2XMuMuSS_PiCalLine', None, None),
+]
+
+norms = [
+ Decay('DpToKphi_phiTomumu_OS', '[D+ -> K+ mu+ mu-]CC', 'D2XMuMuSS_KOSLine', None, '23113002'),
+ Decay('DpTopiphi_phiTomumu_OS', '[D+ -> pi+ mu+ mu-]CC', 'D2XMuMuSS_PiOSLine', '21173001', '23173001'),
+ Decay('DpTopiphi_phiToemu_OS', '[D+ -> pi+ e+ mu-]CC', 'D2XMuMuSS_Pi_EMu_OSLine', '21313000', None),
+ Decay('DpTopiphi_phiToee_OS', '[D+ -> pi+ e+ e-]CC', 'D2XMuMuSS_Pi_EE_OSLine', '21123020', '23123022'),
+
+ Decay('DspToXphi_phiToemu_OS', '[D+ -> pi+ e+ mu-]CC', 'D2XMuMuSS_Pi_EMu_OSLine', None, '23712012'),
+ Decay('DspToXphi_phiTomumu_OS', '[D+ -> pi+ mu+ mu-]CC', 'D2XMuMuSS_PiOSLine', None, '23712020'),
+ Decay('DspToXphi_phiToee_OS', '[D+ -> pi+ e+ e-]CC', 'D2XMuMuSS_Pi_EE_OSLine', None, '23722012'),
+]
+
+
+def get_file_info_using_bender():
+ file_info_fn = 'file_info_from_bender.json'
+ if not isfile(file_info_fn):
+ # Load the production configuration so we know what to do
+ prod_conf_matches = glob.glob('prodConf_DaVinci_*.py')
+ assert len(prod_conf_matches) == 1, prod_conf_matches
+ with open(prod_conf_matches[0], 'rt') as fp:
+ prod_conf = fp.read()
+
+ # Find the XMLFileCatalog filename
+ matches = re.findall("XMLFileCatalog=['\"]([^'\"]+\.xml)['\"]", prod_conf)
+ assert len(matches) == 1, (matches, prod_conf)
+ xml_catalog_fn = matches[0]
+
+ # Find the LFNs
+ lfns = re.findall("['\"](LFN:/[^'\"]+)['\"]", prod_conf)
+ assert lfns, (lfns, prod_conf)
+
+ # Use Bender to find the event type, DB tag and data type
+ subprocess.check_call(
+ "lb-run Bender/latest bender -c '"
+ 'import json; '
+ 'from BenderTools.Parser import dataType; '
+ 'data_type, simulation, input_type = dataType("' + lfns[0] + '"); '
+ 'json.dump({'
+ '"event_type": str(evt["/Event/Gen/Header"].evType()) if simulation else None, '
+ '"db_tags": dict(evt["/Event/MC/Header"].condDBTags()) if simulation else None, '
+ '"data_type": data_type, '
+ '"simulation": simulation, '
+ '"input_type": input_type'
+ '}, open("file_info_from_bender.json", "wt"))'
+ "' --no-color --xml '" + xml_catalog_fn + "' -b "
+ "'" + lfns[0] + "'",
+ shell=True
+ )
+ with open('file_info_from_bender.json', 'rt') as fp:
+ _file_info = json.load(fp)
+
+ # Convert everything to Python 2 strings to keep Gaudi happy
+ file_info = {}
+ for k, v in _file_info.items():
+ k = str(k)
+ if isinstance(v, unicode):
+ v = str(v)
+ elif isinstance(v, dict):
+ v = {str(_k): str(_v) for _k, _v in v.items()}
+ file_info[k] = v
+
+ return file_info
+
+
+file_info = get_file_info_using_bender()
+
+# Finally configure DaVinci
+DaVinci().InputType = file_info['input_type']
+DaVinci().TupleFile = 'Charm_D2hll_DVntuple.root'
+DaVinci().PrintFreq = 100
+# DaVinci().EvtMax = 2000
+DaVinci().DataType = file_info['data_type']
+DaVinci().Simulation = file_info['simulation']
+# Only ask for luminosity information when not using simulated data
+DaVinci().Lumi = not DaVinci().Simulation
+
+#decay tree location Lb line 61
+if DaVinci().Simulation:
+ DaVinci().CondDBtag = file_info['db_tags']['SIMCOND']
+ DaVinci().DDDBtag = file_info['db_tags']['DDDB']
+ if file_info['input_type'] == 'MDST':
+ DaVinci().RootInTES = '/Event/AllStreams'
+ elif file_info['input_type'] == 'DST':
+ pass
+ else:
+ raise ValueError(file_info)
+else:
+ db = CondDB(LatestGlobalTagByDataType=file_info['data_type'])
+ DaVinci().RootInTES = '/Event/Charm'
+
+
+# Setup the needed DecayTreeTuples
+decays_to_consider = decays[:]
+
+dtts = []
+for decay in decays_to_consider:
+ dtt_name = decay_descriptor = None
+
+ if DaVinci().Simulation:
+ if file_info['event_type'] == decay.dp_event_type:
+ dtt_name = decay.name
+ decay_descriptor = decay.decay_descriptor
+ elif file_info['event_type'] == decay.dsp_event_type:
+ dtt_name = decay.name.replace('Dp', 'Dsp')
+ decay_descriptor = decay.decay_descriptor.replace('D+', 'D_s+')
+ else:
+ matches = [norm_decay for norm_decay in norms
+ if file_info['event_type'] == norm_decay.dp_event_type or
+ file_info['event_type'] == norm_decay.dsp_event_type]
+ if matches:
+ assert len(matches) == 1, matches
+ if file_info['event_type'] == matches[0].dp_event_type:
+ dtt_name = decay.name
+ decay_descriptor = decay.decay_descriptor
+ elif file_info['event_type'] == matches[0].dsp_event_type:
+ dtt_name = decay.name.replace('Dp', 'Dsp')
+ decay_descriptor = decay.decay_descriptor.replace('D+', 'D_s+')
+ else:
+ raise RuntimeError(file_info['event_type'])
+ else:
+ # Nothing should be added to dtts
+ continue
+ else:
+ dtt_name = decay.name
+ decay_descriptor = decay.decay_descriptor
+
+ assert dtt_name and decay_descriptor
+ dtts.append(make_decay_tree_tuple(
+ name=dtt_name,
+ line=decay.stripping_line,
+ decay_descriptor=decay_descriptor,
+ input_type=file_info['input_type'],
+ year=file_info['data_type'],
+ mc=DaVinci().Simulation
+ ))
+
+ # Add MCDecayTreeTuple so we can get the Generator+Reconstruction+Stripping efficiency
+ if DaVinci().Simulation:
+ mctuple = MCDecayTreeTuple("MC"+dtt_name)
+ assert decay_descriptor.count('->') == 1, decay_descriptor
+ _decay = parse_decay(decay_descriptor)
+ mctuple.Decay = str(decay_utils.mark_all(_decay)).replace('->', '==>')
+ mctuple.addBranches({k: v.replace('->', '==>')
+ for k, v in decay_utils.get_branches(_decay).items()})
+
+ mctuple.ToolList = [
+ "MCTupleToolHierarchy",
+ "LoKi::Hybrid::MCTupleTool/LoKi_Photos"
+ ]
+ # Add a 'number of photons' branch
+ mctuple.addTupleTool("MCTupleToolKinematic").Verbose = True
+ mctuple.addTupleTool("LoKi::Hybrid::TupleTool/LoKi_Photos").Variables = {
+ "nPhotos": "MCNINTREE(('gamma' == MCABSID))"
+ }
+ dtts.append(mctuple)
+
+assert dtts, file_info
+DaVinci().UserAlgorithms += dtts
diff --git a/productions/d2hll/make_decay_tree_tuples.py b/productions/d2hll/make_decay_tree_tuples.py
new file mode 100644
index 0000000..13e723e
--- /dev/null
+++ b/productions/d2hll/make_decay_tree_tuples.py
@@ -0,0 +1,727 @@
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+
+from copy import deepcopy
+from collections import defaultdict
+from itertools import product
+
+from Configurables import DecayTreeTuple
+from Configurables import MCMatchObjP2MCRelator
+from Configurables import SubstitutePID
+# This import is required even when not using GaudiSequencer
+from DecayTreeTuple.Configuration import GaudiSequencer # NOQA
+from PhysSelPython.Wrappers import AutomaticData
+from PhysSelPython.Wrappers import Selection
+from PhysSelPython.Wrappers import SelectionSequence
+
+from decay_parser import parse_decay
+from decay_parser import utils as decay_utils
+
+import config
+
+
+def make_decay_tree_tuple(name, line, decay_descriptor, input_type, year, mc=False):
+ assert str(year)[:2] == '20', year
+ decay = parse_decay(decay_descriptor.replace('D_s', 'D'))
+
+ if input_type == 'MDST':
+ input_location = 'Phys/{line}/Particles'
+ else:
+ assert input_type == 'DST' and mc, input_type
+ input_location = '/Event/AllStreams/Phys/{line}/Particles'
+
+ # Create an ntuple
+ dtt = DecayTreeTuple(name)
+ dtt.Inputs = [input_location.format(line=line)]
+ dtt.Decay = str(decay_utils.mark_all(decay))
+
+ # Add the branches
+ dtt.addBranches(decay_utils.get_branches(decay))
+
+ # Add the basic tools
+ if mc:
+ dtt.ToolList = config.tuple_tools + ['TupleToolMCBackgroundInfo'] # 'TupleToolMCTruth']
+
+ # Add TupleToolMCTruth with fix for "Fatal error No valid data at '/Event/Hlt2/Long/Protos'"
+ default_rel_locs = MCMatchObjP2MCRelator().getDefaultProperty('RelTableLocations')
+ rel_locs = [loc for loc in default_rel_locs if 'Turbo' not in loc]
+
+ mctruth = dtt.addTupleTool('TupleToolMCTruth')
+ mctruth.addTool(MCMatchObjP2MCRelator)
+ mctruth.MCMatchObjP2MCRelator.RelTableLocations = rel_locs
+ else:
+ dtt.ToolList = config.tuple_tools + ['TupleToolEventInfo']
+
+ # Add verbose reconstruction information
+ dtt.addTupleTool('TupleToolRecoStats').Verbose = True
+
+ # Setup for the related info variables
+ parent_vars = deepcopy(config.mother_loki_vars)
+ child_vars = defaultdict(dict)
+ add_related_info(parent_vars, child_vars, line, mc)
+
+ # Extra information from LoKi
+ loki = dtt.addTupleTool('LoKi::Hybrid::TupleTool/basicLoKiTT')
+ loki.Variables = config.basic_loki_vars
+ loki.Preambulo = ['from LoKiTracks.decorators import TrIDC']
+
+ # Add mother-specific varaibles
+ loki = dtt.Dp.addTupleTool('LoKi::Hybrid::TupleTool/Dp_LoKiTT')
+ loki.Variables = parent_vars
+ if mc:
+ # Add secondary info if a particle has a parent with lifetime > 1e-7 ns
+ mctruth = dtt.Dp.addTupleTool('TupleToolMCTruth')
+ mctruth.addTool(MCMatchObjP2MCRelator)
+ mctruth.MCMatchObjP2MCRelator.RelTableLocations = rel_locs
+ mctruth.ToolList = ['MCTupleToolPrompt']
+
+ # Related info variables
+ for child in ['Dp_h', 'Dp_l1', 'Dp_l2']:
+ dtt.Dp.addTupleTool(
+ 'LoKi::Hybrid::TupleTool/{0}LoKiTT'.format(child)
+ ).Variables = child_vars[child]
+
+ # Add trigger information
+ trigger = dtt.addTupleTool('TupleToolTISTOS')
+ trigger.VerboseL0 = True
+ trigger.VerboseHlt1 = True
+ trigger.VerboseHlt2 = True
+ trigger.TriggerList = get_triggers(mc, year)
+
+ # Add calorimeter information
+ l0_calo_tool = dtt.addTupleTool('TupleToolL0Calo')
+ l0_calo_tool.WhichCalo = 'ECAL'
+
+ # Add a decay tree fit to constrain the phi mass
+ # dtt.Dp.addTupleTool('TupleToolDecayTreeFitter/DTFphi')
+ # dtt.Dp.DTFphi.constrainToOriginVertex = False
+ # dtt.Dp.DTFphi.Verbose = True
+ # dtt.Dp.DTFphi.daughtersToConstrain = ['Dp_phi']
+
+ return dtt
+
+
+def make_substitute_pid(name, decay_descriptor, decay, input_location):
+ raise NotImplementedError('Broken for uDST, see "Tupling MicroDSTs issue"')
+
+ subs = SubstitutePID(
+ 'SubPID_' + name,
+ Code="DECTREE('{0}')".format(decay_descriptor.replace('D_s', 'D')),
+ Substitutions={
+ 'D+ -> X+ l+ l-': 'D_s+',
+ 'D+ -> X- l+ l+': 'D_s+',
+ 'D- -> X- l+ l-': 'D_s-',
+ 'D- -> X+ l- l-': 'D_s-'
+ },
+ MaxChi2PerDoF=-1
+ )
+
+ selSub = Selection(
+ 'Sel_' + name,
+ Algorithm=subs,
+ RequiredSelections=[AutomaticData(Location=input_location)]
+ )
+
+ return SelectionSequence('SelSeq_' + name, TopSelection=selSub)
+
+
+def add_related_info(parent_vars, child_vars, line, mc):
+ def add_relinfo(location, functor, prefix=None, parent=True, child=True):
+ var_name = '_'.join(filter(None, ['Loki', str(prefix or ''), functor]))
+
+ loki_var = "RELINFO('{location}', '{functor}', -42)".format(
+ location='/'.join(filter(None, [
+ '/Event', 'AllStreams' if mc else 'Charm', 'Phys', line, 'RelInfo'+location
+ ])),
+ functor=functor
+ )
+
+ if parent:
+ parent_vars[var_name] = loki_var
+ if child:
+ for child in ['Dp_h', 'Dp_l1', 'Dp_l2']:
+ child_vars[child][var_name] = loki_var.replace(location, location+'_'+child)
+
+ for func, angle in product(config.cone_vars, config.cone_angles):
+ add_relinfo('ConeVariables_{}'.format(angle), func, prefix=angle)
+
+ # for func, angle in product(config.ew_cone_vars, config.ew_cone_angles):
+ # add_relinfo('ConeVariablesForEW_{}'.format(angle), func, prefix=angle)
+
+ # add_relinfo('BstautauCDFIso', 'BSTAUTAUCDFISO', child=False)
+
+ # for var in config.vertex_iso_variables:
+ # add_relinfo('VertexIsolation', var, child=False)
+
+ # for var in config.vertex_iso_bdt_variables:
+ # add_relinfo('VertexIsolationBDT', var, child=False)
+
+ # for var in config.track_iso_bdt_variables:
+ # add_relinfo('TrackIsolationBDT', var)
+
+ # for var in config.Bs2MuMuTrackIsolation_variables:
+ # add_relinfo('Bs2MuMuTrackIsolations', var, parent=False)
+
+
+def get_triggers(is_mc, year):
+ # getL0Channels(0x6138160F)
+ L0_LINES = [
+ 'L0B1gasDecision',
+ 'L0B2gasDecision',
+ 'L0CALODecision',
+ 'L0DiEM,lowMultDecision',
+ 'L0DiHadron,lowMultDecision',
+ 'L0DiMuonDecision',
+ 'L0DiMuon,lowMultDecision',
+ 'L0ElectronDecision',
+ 'L0Electron,lowMultDecision',
+ 'L0HadronDecision',
+ 'L0JetElDecision',
+ 'L0JetPhDecision',
+ 'L0MuonDecision',
+ 'L0Muon,lowMultDecision',
+ 'L0MuonEWDecision',
+ 'L0PhotonDecision',
+ 'L0Photon,lowMultDecision',
+ ]
+ # getHlt1Lines(0x11321609)
+ HLT1_LINES = [
+ 'Hlt1TrackMVADecision',
+ 'Hlt1TwoTrackMVADecision',
+ 'Hlt1TrackMVALooseDecision',
+ 'Hlt1TwoTrackMVALooseDecision',
+ 'Hlt1TrackMuonDecision',
+ 'Hlt1DiMuonHighMassDecision',
+ 'Hlt1DiMuonLowMassDecision',
+ 'Hlt1SingleMuonHighPTDecision',
+ 'Hlt1DiMuonNoL0Decision',
+ 'Hlt1B2GammaGammaDecision',
+ 'Hlt1B2HH_LTUNB_KKDecision',
+ 'Hlt1B2HH_LTUNB_KPiDecision',
+ 'Hlt1B2HH_LTUNB_PiPiDecision',
+ 'Hlt1B2PhiGamma_LTUNBDecision',
+ 'Hlt1B2PhiPhi_LTUNBDecision',
+ 'Hlt1BeamGasBeam1Decision',
+ 'Hlt1BeamGasBeam1VeloOpenDecision',
+ 'Hlt1BeamGasBeam2Decision',
+ 'Hlt1BeamGasBeam2VeloOpenDecision',
+ 'Hlt1BeamGasHighRhoVerticesDecision',
+ 'Hlt1Bottomonium2KstarKstarDecision',
+ 'Hlt1Bottomonium2PhiPhiDecision',
+ 'Hlt1CalibHighPTLowMultTrksDecision',
+ 'Hlt1CalibMuonAlignJpsiDecision',
+ 'Hlt1CalibRICHMirrorRICH1Decision',
+ 'Hlt1CalibRICHMirrorRICH2Decision',
+ 'Hlt1CalibTrackingKKDecision',
+ 'Hlt1CalibTrackingKPiDecision',
+ 'Hlt1CalibTrackingKPiDetachedDecision',
+ 'Hlt1CalibTrackingPiPiDecision',
+ 'Hlt1DiMuonNoIPDecision',
+ 'Hlt1DiProtonDecision',
+ 'Hlt1DiProtonLowMultDecision',
+ 'Hlt1IncPhiDecision',
+ 'Hlt1L0AnyDecision',
+ 'Hlt1L0AnyNoSPDDecision',
+ 'Hlt1LowMultDecision',
+ 'Hlt1LowMultMaxVeloCutDecision',
+ 'Hlt1LowMultPassThroughDecision',
+ 'Hlt1LowMultVeloAndHerschel_HadronsDecision',
+ 'Hlt1LowMultVeloCut_HadronsDecision',
+ 'Hlt1LowMultVeloCut_LeptonsDecision',
+ 'Hlt1LumiDecision',
+ 'Hlt1MBNoBiasDecision',
+ 'Hlt1MultiDiMuonNoIPDecision',
+ 'Hlt1MultiMuonNoL0Decision',
+ 'Hlt1NoBiasNonBeamBeamDecision',
+ 'Hlt1ODINTechnicalDecision',
+ 'Hlt1SingleElectronNoIPDecision',
+ 'Hlt1SingleMuonNoIPDecision',
+ 'Hlt1Tell1ErrorDecision',
+ 'Hlt1VeloClosingMicroBiasDecision',
+ 'Hlt1ErrorEventDecision',
+ ]
+ # getHlt2Lines(0x6138160F)
+ if str(year) == '2015':
+ HLT2_LINES = [
+ 'Hlt2RareCharmD2KeeFilterDecision',
+ 'Hlt2RareCharmD2KeeSSFilterDecision',
+ 'Hlt2RareCharmD2KMueFilterDecision',
+ 'Hlt2RareCharmD2KMueSSFilterDecision',
+ 'Hlt2RareCharmD2KMuMuFilterDecision',
+ 'Hlt2RareCharmD2KMuMuSSFilterDecision',
+ 'Hlt2RareCharmD2PieeFilterDecision',
+ 'Hlt2RareCharmD2PieeSSFilterDecision',
+ 'Hlt2RareCharmD2PiMueFilterDecision',
+ 'Hlt2RareCharmD2PiMueSSFilterDecision',
+ 'Hlt2RareCharmD2PiMuMuFilterDecision',
+ 'Hlt2RareCharmD2PiMuMuSSFilterDecision',
+ 'Hlt2SingleMuonDecision',
+ ]
+ else:
+ HLT2_LINES = [
+ 'Hlt2RareCharmD2KEEOSDecision',
+ 'Hlt2RareCharmD2KEESSDecision',
+ 'Hlt2RareCharmD2KEEWSDecision',
+ 'Hlt2RareCharmD2KEMuOSDecision',
+ 'Hlt2RareCharmD2KMuEOSDecision',
+ 'Hlt2RareCharmD2KMuESSDecision',
+ 'Hlt2RareCharmD2KMuEWSDecision',
+ 'Hlt2RareCharmD2KMuMuOSDecision',
+ 'Hlt2RareCharmD2KMuMuSSDecision',
+ 'Hlt2RareCharmD2KMuMuWSDecision',
+ 'Hlt2RareCharmD2PiEEOSDecision',
+ 'Hlt2RareCharmD2PiEESSDecision',
+ 'Hlt2RareCharmD2PiEEWSDecision',
+ 'Hlt2RareCharmD2PiEMuOSDecision',
+ 'Hlt2RareCharmD2PiMuEOSDecision',
+ 'Hlt2RareCharmD2PiMuESSDecision',
+ 'Hlt2RareCharmD2PiMuEWSDecision',
+ 'Hlt2RareCharmD2PiMuMuOSDecision',
+ 'Hlt2RareCharmD2PiMuMuSSDecision',
+ 'Hlt2RareCharmD2PiMuMuWSDecision',
+ 'Hlt2SingleMuonDecision',
+ ]
+
+ if is_mc:
+ # Add all HLT2 lines to MC
+ HLT2_LINES += [
+ 'Hlt2B2HH_B2HHDecision',
+ 'Hlt2B2HH_B2KKDecision',
+ 'Hlt2B2HH_B2KPiDecision',
+ 'Hlt2B2HH_B2PiPiDecision',
+ 'Hlt2B2HH_Lb2PKDecision',
+ 'Hlt2B2HH_Lb2PPiDecision',
+ 'Hlt2B2Kpi0_B2K0pi0Decision',
+ 'Hlt2B2Kpi0_B2Kpi0Decision',
+ 'Hlt2BHadB02PpPpPmPmDecision',
+ 'Hlt2Bc2JpsiXTFBc2JpsiMuXDecision',
+ 'Hlt2BeamGasDecision',
+ 'Hlt2BottomoniumDiKstarTurboDecision',
+ 'Hlt2BottomoniumDiPhiDecision',
+ 'Hlt2CcDiHadronDiPhiDecision',
+ 'Hlt2CcDiHadronDiProtonDecision',
+ 'Hlt2CcDiHadronDiProtonLowMultDecision',
+ 'Hlt2CharmHadD02KmPipTurboDecision',
+ 'Hlt2CharmHadDp2EtaKp_Eta2EmEpGDecision',
+ 'Hlt2CharmHadDp2EtaKp_Eta2PimPipGDecision',
+ 'Hlt2CharmHadDp2EtaKp_Eta2PimPipPi0_Pi0MDecision',
+ 'Hlt2CharmHadDp2EtaKp_Eta2PimPipPi0_Pi0RDecision',
+ 'Hlt2CharmHadDp2EtaPip_Eta2EmEpGDecision',
+ 'Hlt2CharmHadDp2EtaPip_Eta2PimPipGDecision',
+ 'Hlt2CharmHadDp2EtaPip_Eta2PimPipPi0_Pi0MDecision',
+ 'Hlt2CharmHadDp2EtaPip_Eta2PimPipPi0_Pi0RDecision',
+ 'Hlt2CharmHadDp2EtapKp_Etap2EtaPimPip_EtaRDecision',
+ 'Hlt2CharmHadDp2EtapKp_Etap2PimPipGDecision',
+ 'Hlt2CharmHadDp2EtapPip_Etap2EtaPimPip_EtaRDecision',
+ 'Hlt2CharmHadDp2EtapPip_Etap2PimPipGDecision',
+ 'Hlt2CharmHadDp2KS0KS0KpTurboDecision',
+ 'Hlt2CharmHadDp2KS0KS0PipTurboDecision',
+ 'Hlt2CharmHadDp2KS0KmKpPip_KS0DDTurboDecision',
+ 'Hlt2CharmHadDp2KS0KmKpPip_KS0LLTurboDecision',
+ 'Hlt2CharmHadDp2KS0KmPipPip_KS0DDTurboDecision',
+ 'Hlt2CharmHadDp2KS0KmPipPip_KS0LLTurboDecision',
+ 'Hlt2CharmHadDp2KS0KpKpPim_KS0DDTurboDecision',
+ 'Hlt2CharmHadDp2KS0KpKpPim_KS0LLTurboDecision',
+ 'Hlt2CharmHadDp2KS0KpPimPip_KS0DDTurboDecision',
+ 'Hlt2CharmHadDp2KS0KpPimPip_KS0LLTurboDecision',
+ 'Hlt2CharmHadDp2KS0Kp_KS0DDTurboDecision',
+ 'Hlt2CharmHadDp2KS0Kp_KS0LLTurboDecision',
+ 'Hlt2CharmHadDp2KS0PimPipPip_KS0DDTurboDecision',
+ 'Hlt2CharmHadDp2KS0PimPipPip_KS0LLTurboDecision',
+ 'Hlt2CharmHadDp2KS0Pip_KS0DDTurboDecision',
+ 'Hlt2CharmHadDp2KS0Pip_KS0LLTurboDecision',
+ 'Hlt2CharmHadDp2KmKmKpPipPipTurboDecision',
+ 'Hlt2CharmHadDp2KmKpPimPipPipTurboDecision',
+ 'Hlt2CharmHadDp2KmPimPipPipPipTurboDecision',
+ 'Hlt2CharmHadDp2KpPi0_Pi02EmEpGDecision',
+ 'Hlt2CharmHadDp2PipPi0_Pi02EmEpGDecision',
+ 'Hlt2CharmHadDpDsp2KmKpKpPi0Decision',
+ 'Hlt2CharmHadDpDsp2KmKpPipPi0Decision',
+ 'Hlt2CharmHadDpDsp2KmPipPipPi0Decision',
+ 'Hlt2CharmHadDpDsp2KpKpPimPi0Decision',
+ 'Hlt2CharmHadDpDsp2KpPimPipPi0Decision',
+ 'Hlt2CharmHadDpDsp2PimPipPipPi0Decision',
+ 'Hlt2CharmHadDpToKmKpKpTurboDecision',
+ 'Hlt2CharmHadDpToKmKpPipTurboDecision',
+ 'Hlt2CharmHadDpToKmPipPipTurboDecision',
+ 'Hlt2CharmHadDpToKmPipPip_ForKPiAsymTurboDecision',
+ 'Hlt2CharmHadDpToKmPipPip_LTUNBTurboDecision',
+ 'Hlt2CharmHadDpToKpKpPimTurboDecision',
+ 'Hlt2CharmHadDpToKpPimPipTurboDecision',
+ 'Hlt2CharmHadDpToPimPipPipTurboDecision',
+ 'Hlt2CharmHadDsp2KS0KS0KpTurboDecision',
+ 'Hlt2CharmHadDsp2KS0KS0PipTurboDecision',
+ 'Hlt2CharmHadDsp2KS0KmKpPip_KS0DDTurboDecision',
+ 'Hlt2CharmHadDsp2KS0KmKpPip_KS0LLTurboDecision',
+ 'Hlt2CharmHadDsp2KS0KmPipPip_KS0DDTurboDecision',
+ 'Hlt2CharmHadDsp2KS0KmPipPip_KS0LLTurboDecision',
+ 'Hlt2CharmHadDsp2KS0KpKpPim_KS0DDTurboDecision',
+ 'Hlt2CharmHadDsp2KS0KpKpPim_KS0LLTurboDecision',
+ 'Hlt2CharmHadDsp2KS0KpPimPip_KS0DDTurboDecision',
+ 'Hlt2CharmHadDsp2KS0KpPimPip_KS0LLTurboDecision',
+ 'Hlt2CharmHadDsp2KS0PimPipPip_KS0DDTurboDecision',
+ 'Hlt2CharmHadDsp2KS0PimPipPip_KS0LLTurboDecision',
+ 'Hlt2CharmHadDsp2KmKmKpPipPipTurboDecision',
+ 'Hlt2CharmHadDsp2KmKpPimPipPipTurboDecision',
+ 'Hlt2CharmHadDsp2KmPimPipPipPipTurboDecision',
+ 'Hlt2CharmHadDspToKmKpKpTurboDecision',
+ 'Hlt2CharmHadDspToKmKpPipDecision',
+ 'Hlt2CharmHadDspToKmKpPipTurboDecision',
+ 'Hlt2CharmHadDspToKmKpPip_LTUNBTurboDecision',
+ 'Hlt2CharmHadDspToKmPipPipTurboDecision',
+ 'Hlt2CharmHadDspToKpKpPimTurboDecision',
+ 'Hlt2CharmHadDspToKpPimPipTurboDecision',
+ 'Hlt2CharmHadDspToPimPipPipTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02EmEpDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02GG_G2EmEpDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KS0_KS0DDTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KS0_KS0LLTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KS0_KS0LL_KS0DDTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KmKp_KS0DDTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KmKp_KS0DD_LTUNBTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KmKp_KS0LLTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KmKp_KS0LL_LTUNBTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KmPip_KS0DDTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KmPip_KS0DD_LTUNBTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KmPip_KS0LLTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KmPip_KS0LL_LTUNBTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KpPim_KS0DDTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KpPim_KS0DD_LTUNBTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KpPim_KS0LLTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0KpPim_KS0LL_LTUNBTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0PimPip_KS0DDTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0PimPip_KS0DD_LTUNBTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0PimPip_KS0LLTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KS0PimPip_KS0LL_LTUNBTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmKmKpPipTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmKpKpPimTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmKpPi0_Pi0MDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmKpPi0_Pi0RDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmKpPimPipTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmKpTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmKp_LTUNBTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmPimPipPipTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmPipPi0_Pi0MDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmPipPi0_Pi0RDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmPipTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KmPip_LTUNBTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KpPimPi0_Pi0MDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KpPimPi0_Pi0RDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KpPimPimPipTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KpPimTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02KpPim_LTUNBTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02PimPimPipPipTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02PimPipPi0_Pi0MDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02PimPipPi0_Pi0RDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02PimPipTurboDecision',
+ 'Hlt2CharmHadDstp2D0Pip_D02PimPip_LTUNBTurboDecision',
+ 'Hlt2CharmHadInclDst2PiD02HHXBDTDecision',
+ 'Hlt2CharmHadInclSigc2PiLc2HHXBDTDecision',
+ 'Hlt2CharmHadLcp2KS0KS0PpTurboDecision',
+ 'Hlt2CharmHadLcp2LamKmKpPip_Lam2PpPimTurboDecision',
+ 'Hlt2CharmHadLcp2LamKmPipPip_Lam2PpPimTurboDecision',
+ 'Hlt2CharmHadLcp2LamKp_LamDDTurboDecision',
+ 'Hlt2CharmHadLcp2LamKp_LamLLTurboDecision',
+ 'Hlt2CharmHadLcp2LamPip_LamDDTurboDecision',
+ 'Hlt2CharmHadLcp2LamPip_LamLLTurboDecision',
+ 'Hlt2CharmHadLcpToPpKmKmPipPipTurboDecision',
+ 'Hlt2CharmHadLcpToPpKmKpPimPipTurboDecision',
+ 'Hlt2CharmHadLcpToPpKmKpTurboDecision',
+ 'Hlt2CharmHadLcpToPpKmPimPipPipTurboDecision',
+ 'Hlt2CharmHadLcpToPpKmPipTurboDecision',
+ 'Hlt2CharmHadLcpToPpKmPip_LTUNBTurboDecision',
+ 'Hlt2CharmHadLcpToPpKpKpPimPimTurboDecision',
+ 'Hlt2CharmHadLcpToPpKpPimPimPipTurboDecision',
+ 'Hlt2CharmHadLcpToPpKpPimTurboDecision',
+ 'Hlt2CharmHadLcpToPpPimPimPipPipTurboDecision',
+ 'Hlt2CharmHadLcpToPpPimPipTurboDecision',
+ 'Hlt2CharmHadOmm2LamKm_DDDTurboDecision',
+ 'Hlt2CharmHadOmm2LamKm_DDLTurboDecision',
+ 'Hlt2CharmHadOmm2LamKm_LLLTurboDecision',
+ 'Hlt2CharmHadPentaToPhiPpPimTurboDecision',
+ 'Hlt2CharmHadPromptH2LamLamBar_LamDDTurboDecision',
+ 'Hlt2CharmHadPromptH2LamLamBar_LamLLTurboDecision',
+ 'Hlt2CharmHadPromptH2LamLamBar_LamLL_LamDDTurboDecision',
+ 'Hlt2CharmHadPromptH2LamLam_LamDDTurboDecision',
+ 'Hlt2CharmHadPromptH2LamLam_LamLLTurboDecision',
+ 'Hlt2CharmHadPromptH2LamLam_LamLL_LamDDTurboDecision',
+ 'Hlt2CharmHadSecondaryH2LamPipPmDDDDTurboDecision',
+ 'Hlt2CharmHadSecondaryH2LamPipPmDDLLTurboDecision',
+ 'Hlt2CharmHadSecondaryH2LamPipPmLLLLTurboDecision',
+ 'Hlt2CharmHadSecondaryH2LamPpPimDDDDTurboDecision',
+ 'Hlt2CharmHadSecondaryH2LamPpPimDDLLTurboDecision',
+ 'Hlt2CharmHadSecondaryH2LamPpPimLLLLTurboDecision',
+ 'Hlt2CharmHadXic0ToPpKmKmPipTurboDecision',
+ 'Hlt2CharmHadXic0ToPpKmKmPip_LTUNBTurboDecision',
+ 'Hlt2CharmHadXiccp2D0PpKmPim_D02KmPipTurboDecision',
+ 'Hlt2CharmHadXiccp2D0PpKmPip_D02KmPipTurboDecision',
+ 'Hlt2CharmHadXiccp2D0PpKpPim_D02KmPipTurboDecision',
+ 'Hlt2CharmHadXiccp2DpPpKm_Dp2KmPipPipTurboDecision',
+ 'Hlt2CharmHadXiccp2DpPpKp_Dp2KmPipPipTurboDecision',
+ 'Hlt2CharmHadXiccp2LcpKmPim_Lcp2PpKmPipTurboDecision',
+ 'Hlt2CharmHadXiccp2LcpKmPip_Lcp2PpKmPipTurboDecision',
+ 'Hlt2CharmHadXiccp2LcpKpPim_Lcp2PpKmPipTurboDecision',
+ 'Hlt2CharmHadXiccp2Xic0Pim_Xic0ToPpKmKmPipTurboDecision',
+ 'Hlt2CharmHadXiccp2Xic0Pip_Xic0ToPpKmKmPipTurboDecision',
+ 'Hlt2CharmHadXiccp2XicpPimPim_Xicp2PpKmPipTurboDecision',
+ 'Hlt2CharmHadXiccp2XicpPimPip_Xicp2PpKmPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2D0PpKmPimPip_D02KmPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2D0PpKmPipPip_D02KmPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2D0PpKpPimPip_D02KmPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2DpPpKmPim_Dp2KmPipPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2DpPpKmPip_Dp2KmPipPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2DpPpKpPip_Dp2KmPipPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2LcpKmPimPip_Lcp2PpKmPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2LcpKmPipPip_Lcp2PpKmPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2LcpKpPimPip_Lcp2PpKmPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2Xic0PimPip_Xic0ToPpKmKmPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2Xic0PipPip_Xic0ToPpKmKmPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2XicpPim_Xicp2PpKmPipTurboDecision',
+ 'Hlt2CharmHadXiccpp2XicpPip_Xicp2PpKmPipTurboDecision',
+ 'Hlt2CharmHadXicpToPpKmPipTurboDecision',
+ 'Hlt2CharmHadXim2LamPim_DDDTurboDecision',
+ 'Hlt2CharmHadXim2LamPim_DDLTurboDecision',
+ 'Hlt2CharmHadXim2LamPim_LLLTurboDecision',
+ 'Hlt2DPS2muHcDecision',
+ 'Hlt2DPS2x2muDecision',
+ 'Hlt2DPS2xHcDecision',
+ 'Hlt2DebugEventDecision',
+ 'Hlt2DiElectronElSoftDecision',
+ 'Hlt2DiMuonBDecision',
+ 'Hlt2DiMuonBTurboDecision',
+ 'Hlt2DiMuonDetachedDecision',
+ 'Hlt2DiMuonDetachedHeavyDecision',
+ 'Hlt2DiMuonDetachedJPsiDecision',
+ 'Hlt2DiMuonDetachedPsi2SDecision',
+ 'Hlt2DiMuonJPsiDecision',
+ 'Hlt2DiMuonJPsiHighPTDecision',
+ 'Hlt2DiMuonJPsiTurboDecision',
+ 'Hlt2DiMuonPsi2SDecision',
+ 'Hlt2DiMuonPsi2SHighPTDecision',
+ 'Hlt2DiMuonPsi2STurboDecision',
+ 'Hlt2DiMuonSoftDecision',
+ 'Hlt2DiMuonZDecision',
+ 'Hlt2DisplVerticesDoubleDecision',
+ 'Hlt2DisplVerticesDoublePSDecision',
+ 'Hlt2DisplVerticesSingleDecision',
+ 'Hlt2DisplVerticesSingleHighFDDecision',
+ 'Hlt2DisplVerticesSingleHighMassDecision',
+ 'Hlt2DisplVerticesSingleLoosePSDecision',
+ 'Hlt2DisplVerticesSinglePSDecision',
+ 'Hlt2DisplVerticesSingleVeryHighFDDecision',
+ 'Hlt2EWDiElectronDYDecision',
+ 'Hlt2EWDiElectronHighMassDecision',
+ 'Hlt2EWDiMuonDY1Decision',
+ 'Hlt2EWDiMuonDY2Decision',
+ 'Hlt2EWDiMuonDY3Decision',
+ 'Hlt2EWDiMuonDY4Decision',
+ 'Hlt2EWDiMuonZDecision',
+ 'Hlt2EWSingleElectronHighPtDecision',
+ 'Hlt2EWSingleElectronLowPtDecision',
+ 'Hlt2EWSingleElectronVHighPtDecision',
+ 'Hlt2EWSingleMuonHighPtDecision',
+ 'Hlt2EWSingleMuonLowPtDecision',
+ 'Hlt2EWSingleMuonVHighPtDecision',
+ 'Hlt2EWSingleTauHighPt2ProngDecision',
+ 'Hlt2EWSingleTauHighPt3ProngDecision',
+ 'Hlt2ExoticaDiMuonNoIPTurboDecision',
+ 'Hlt2ExoticaDiRHNuDecision',
+ 'Hlt2ExoticaDisplDiMuonDecision',
+ 'Hlt2ExoticaDisplDiMuonNoPointDecision',
+ 'Hlt2ExoticaDisplPhiPhiDecision',
+ 'Hlt2ExoticaPrmptDiMuonHighMassDecision',
+ 'Hlt2ExoticaPrmptDiMuonSSTurboDecision',
+ 'Hlt2ExoticaPrmptDiMuonTurboDecision',
+ 'Hlt2ExoticaQuadMuonNoIPDecision',
+ 'Hlt2ExoticaRHNuDecision',
+ 'Hlt2ExoticaRHNuHighMassDecision',
+ 'Hlt2ForwardDecision',
+ 'Hlt2JetsDiJetDecision',
+ 'Hlt2JetsDiJetLowPtDecision',
+ 'Hlt2JetsDiJetMVLowPtDecision',
+ 'Hlt2JetsDiJetMuMuDecision',
+ 'Hlt2JetsDiJetMuMuLowPtDecision',
+ 'Hlt2JetsDiJetSVDecision',
+ 'Hlt2JetsDiJetSVLowPtDecision',
+ 'Hlt2JetsDiJetSVMuDecision',
+ 'Hlt2JetsDiJetSVMuLowPtDecision',
+ 'Hlt2JetsDiJetSVSVDecision',
+ 'Hlt2JetsDiJetSVSVLowPtDecision',
+ 'Hlt2JetsJetLowPtDecision',
+ 'Hlt2JetsJetMuLowPtDecision',
+ 'Hlt2JetsJetSVLowPtDecision',
+ 'Hlt2LFVJpsiMuETurboDecision',
+ 'Hlt2LFVPhiMuETurboDecision',
+ 'Hlt2LFVPromptPhiMuETurboDecision',
+ 'Hlt2LFVUpsilonMuETurboDecision',
+ 'Hlt2LowMultChiC2HHDecision',
+ 'Hlt2LowMultChiC2HHHHDecision',
+ 'Hlt2LowMultChiC2HHHHWSDecision',
+ 'Hlt2LowMultChiC2HHWSDecision',
+ 'Hlt2LowMultChiC2PPDecision',
+ 'Hlt2LowMultChiC2PPWSDecision',
+ 'Hlt2LowMultD2K3PiDecision',
+ 'Hlt2LowMultD2K3PiWSDecision',
+ 'Hlt2LowMultD2KKPiDecision',
+ 'Hlt2LowMultD2KKPiWSDecision',
+ 'Hlt2LowMultD2KPiDecision',
+ 'Hlt2LowMultD2KPiPiDecision',
+ 'Hlt2LowMultD2KPiPiWSDecision',
+ 'Hlt2LowMultD2KPiWSDecision',
+ 'Hlt2LowMultDiElectronDecision',
+ 'Hlt2LowMultDiElectron_noTrFiltDecision',
+ 'Hlt2LowMultDiMuonDecision',
+ 'Hlt2LowMultDiMuon_PSDecision',
+ 'Hlt2LowMultDiPhotonDecision',
+ 'Hlt2LowMultDiPhoton_HighMassDecision',
+ 'Hlt2LowMultHadron_noTrFiltDecision',
+ 'Hlt2LowMultL2pPiDecision',
+ 'Hlt2LowMultL2pPiWSDecision',
+ 'Hlt2LowMultLMR2HHDecision',
+ 'Hlt2LowMultLMR2HHHHDecision',
+ 'Hlt2LowMultLMR2HHHHWSDecision',
+ 'Hlt2LowMultLMR2HHWSDecision',
+ 'Hlt2LowMultMuonDecision',
+ 'Hlt2LowMultPi0Decision',
+ 'Hlt2LowMultTechnical_MinBiasDecision',
+ 'Hlt2LumiDecision',
+ 'Hlt2MBNoBiasDecision',
+ 'Hlt2MajoranaBLambdaMuDDDecision',
+ 'Hlt2MajoranaBLambdaMuLLDecision',
+ 'Hlt2NoBiasNonBeamBeamDecision',
+ 'Hlt2PIDB2KJPsiEENegTaggedTurboCalibDecision',
+ 'Hlt2PIDB2KJPsiEEPosTaggedTurboCalibDecision',
+ 'Hlt2PIDB2KJPsiMuMuNegTaggedTurboCalibDecision',
+ 'Hlt2PIDB2KJPsiMuMuPosTaggedTurboCalibDecision',
+ 'Hlt2PIDD02KPiTagTurboCalibDecision',
+ 'Hlt2PIDDetJPsiMuMuNegTaggedTurboCalibDecision',
+ 'Hlt2PIDDetJPsiMuMuPosTaggedTurboCalibDecision',
+ 'Hlt2PIDDs2KKPiSSTaggedTurboCalibDecision',
+ 'Hlt2PIDDs2MuMuPiNegTaggedTurboCalibDecision',
+ 'Hlt2PIDDs2MuMuPiPosTaggedTurboCalibDecision',
+ 'Hlt2PIDDs2PiPhiKKNegTaggedTurboCalibDecision',
+ 'Hlt2PIDDs2PiPhiKKPosTaggedTurboCalibDecision',
+ 'Hlt2PIDDs2PiPhiMuMuNegTaggedTurboCalibDecision',
+ 'Hlt2PIDDs2PiPhiMuMuPosTaggedTurboCalibDecision',
+ 'Hlt2PIDKs2PiPiLLTurboCalibDecision',
+ 'Hlt2PIDLambda2PPiLLTurboCalibDecision',
+ 'Hlt2PIDLambda2PPiLLhighPTTurboCalibDecision',
+ 'Hlt2PIDLambda2PPiLLisMuonTurboCalibDecision',
+ 'Hlt2PIDLambda2PPiLLveryhighPTTurboCalibDecision',
+ 'Hlt2PIDLb2LcMuNuTurboCalibDecision',
+ 'Hlt2PIDLb2LcPiTurboCalibDecision',
+ 'Hlt2PIDLc2KPPiTurboCalibDecision',
+ 'Hlt2PassThroughDecision',
+ 'Hlt2PhiBs2PhiPhiDecision',
+ 'Hlt2PhiIncPhiDecision',
+ 'Hlt2PhiPhi2EETurboDecision',
+ 'Hlt2PhiPhi2KsKsDecision',
+ 'Hlt2PhiPhi2KsKsD0CtrlDecision',
+ 'Hlt2PhiPromptPhi2EETurboDecision',
+ 'Hlt2RadiativeB2GammaGammaDecision',
+ 'Hlt2RadiativeB2GammaGammaDDDecision',
+ 'Hlt2RadiativeB2GammaGammaDoubleDecision',
+ 'Hlt2RadiativeB2GammaGammaLLDecision',
+ 'Hlt2RadiativeBd2KstGammaDecision',
+ 'Hlt2RadiativeBd2KstGammaULUnbiasedDecision',
+ 'Hlt2RadiativeBs2PhiGammaDecision',
+ 'Hlt2RadiativeBs2PhiGammaUnbiasedDecision',
+ 'Hlt2RadiativeHypb2L0HGammaOmDecision',
+ 'Hlt2RadiativeHypb2L0HGammaOmEEDecision',
+ 'Hlt2RadiativeHypb2L0HGammaXiDecision',
+ 'Hlt2RadiativeHypb2L0HGammaXiEEDecision',
+ 'Hlt2RadiativeIncHHGammaDecision',
+ 'Hlt2RadiativeIncHHGammaEEDecision',
+ 'Hlt2RadiativeIncHHHGammaDecision',
+ 'Hlt2RadiativeIncHHHGammaEEDecision',
+ 'Hlt2RadiativeLb2L0GammaEELLDecision',
+ 'Hlt2RadiativeLb2L0GammaLLDecision',
+ 'Hlt2RareCharmD02EMuDecision',
+ 'Hlt2RareCharmD02KKMuMuDecision',
+ 'Hlt2RareCharmD02KKMueDecision',
+ 'Hlt2RareCharmD02KKeeDecision',
+ 'Hlt2RareCharmD02KMuDecision',
+ 'Hlt2RareCharmD02KPiDecision',
+ 'Hlt2RareCharmD02KPiMuMuDecision',
+ 'Hlt2RareCharmD02KPiMuMuSSDecision',
+ 'Hlt2RareCharmD02KPiMueDecision',
+ 'Hlt2RareCharmD02KPieeDecision',
+ 'Hlt2RareCharmD02MuMuDecision',
+ 'Hlt2RareCharmD02PiPiDecision',
+ 'Hlt2RareCharmD02PiPiMuMuDecision',
+ 'Hlt2RareCharmD02PiPiMueDecision',
+ 'Hlt2RareCharmD02PiPieeDecision',
+ 'Hlt2RareCharmLc2PMuMuDecision',
+ 'Hlt2RareCharmLc2PMuMuSSDecision',
+ 'Hlt2RareCharmLc2PMueDecision',
+ 'Hlt2RareCharmLc2PeeDecision',
+ 'Hlt2RareStrangeKPiMuMuDecision',
+ 'Hlt2RareStrangeKPiMuMuSSDecision',
+ 'Hlt2RareStrangeSigmaPMuMuDecision',
+ 'Hlt2SLB_B2D0Mu_D02KmKpTurboDecision',
+ 'Hlt2SLB_B2D0Mu_D02KmPipTurboDecision',
+ 'Hlt2SLB_B2D0Mu_D02PimPipTurboDecision',
+ 'Hlt2SLB_B2DstMu_D02KmKpTurboDecision',
+ 'Hlt2SLB_B2DstMu_D02KmPipTurboDecision',
+ 'Hlt2SLB_B2DstMu_D02PimPipTurboDecision',
+ 'Hlt2SingleMuonHighPTDecision',
+ 'Hlt2SingleMuonLowPTDecision',
+ 'Hlt2SingleMuonRareDecision',
+ 'Hlt2SingleMuonVHighPTDecision',
+ 'Hlt2StrangeKPiPiPiTurboDecision',
+ 'Hlt2StrangeLFVMuonElectronSoftDecision',
+ 'Hlt2Topo2BodyDecision',
+ 'Hlt2Topo3BodyDecision',
+ 'Hlt2Topo4BodyDecision',
+ 'Hlt2TopoE2BodyDecision',
+ 'Hlt2TopoE3BodyDecision',
+ 'Hlt2TopoE4BodyDecision',
+ 'Hlt2TopoEE2BodyDecision',
+ 'Hlt2TopoEE3BodyDecision',
+ 'Hlt2TopoEE4BodyDecision',
+ 'Hlt2TopoMu2BodyDecision',
+ 'Hlt2TopoMu3BodyDecision',
+ 'Hlt2TopoMu4BodyDecision',
+ 'Hlt2TopoMuE2BodyDecision',
+ 'Hlt2TopoMuE3BodyDecision',
+ 'Hlt2TopoMuE4BodyDecision',
+ 'Hlt2TopoMuMu2BodyDecision',
+ 'Hlt2TopoMuMu3BodyDecision',
+ 'Hlt2TopoMuMu4BodyDecision',
+ 'Hlt2TopoMuMuDDDecision',
+ 'Hlt2TrackEffDiMuonDownstreamMinusHighStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonDownstreamMinusHighStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonDownstreamMinusLowStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonDownstreamMinusLowStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonDownstreamPlusHighStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonDownstreamPlusHighStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonDownstreamPlusLowStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonDownstreamPlusLowStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonMuonTTMinusHighStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonMuonTTMinusHighStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonMuonTTMinusLowStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonMuonTTMinusLowStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonMuonTTPlusHighStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonMuonTTPlusHighStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonMuonTTPlusLowStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonMuonTTPlusLowStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonVeloMuonMinusHighStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonVeloMuonMinusHighStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonVeloMuonMinusLowStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonVeloMuonMinusLowStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonVeloMuonPlusHighStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonVeloMuonPlusHighStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonVeloMuonPlusLowStatMatchedTurboCalibDecision',
+ 'Hlt2TrackEffDiMuonVeloMuonPlusLowStatTaggedTurboCalibDecision',
+ 'Hlt2TrackEff_D0ToKpiKaonProbeTurboDecision',
+ 'Hlt2TrackEff_D0ToKpiPionProbeTurboDecision',
+ 'Hlt2TransparentDecision',
+ 'Hlt2TriMuonDetachedDecision',
+ 'Hlt2TriMuonTau23MuDecision',
+ 'Hlt2XcMuXForTauB2XcFakeMuDecision',
+ 'Hlt2XcMuXForTauB2XcMuDecision',
+ 'Hlt2ErrorEventDecision',
+ ]
+
+ return L0_LINES + HLT1_LINES + HLT2_LINES
diff --git a/productions/d2hll/make_decay_tree_tuples.pyc b/productions/d2hll/make_decay_tree_tuples.pyc
new file mode 100644
index 0000000..d2d734c
--- /dev/null
+++ b/productions/d2hll/make_decay_tree_tuples.pyc
Binary files differ
diff --git a/productions/local_test_data/._Ds_eepi_data.py b/productions/local_test_data/._Ds_eepi_data.py
new file mode 100644
index 0000000..c474c16
--- /dev/null
+++ b/productions/local_test_data/._Ds_eepi_data.py
Binary files differ
diff --git a/productions/local_test_data/._Ds_mumupi_data.py b/productions/local_test_data/._Ds_mumupi_data.py
new file mode 100644
index 0000000..ed257c7
--- /dev/null
+++ b/productions/local_test_data/._Ds_mumupi_data.py
Binary files differ
diff --git a/productions/local_test_data/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/productions/local_test_data/.ipynb_checkpoints/Untitled-checkpoint.ipynb
new file mode 100644
index 0000000..2fd6442
--- /dev/null
+++ b/productions/local_test_data/.ipynb_checkpoints/Untitled-checkpoint.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/productions/local_test_data/Ds_eepi_data.py b/productions/local_test_data/Ds_eepi_data.py
new file mode 100644
index 0000000..ae7920e
--- /dev/null
+++ b/productions/local_test_data/Ds_eepi_data.py
@@ -0,0 +1,255 @@
+# -*- coding: utf-8 -*-
+# @Author: Marcin Chrzaszcz
+# @Date: 2016-08-27
+# @Last Modified by: Anna Lupato
+# @Last Modified time: 2016-09-28
+########################################################################
+from os import environ
+import math
+
+
+# use CommonParticlesArchive
+from CommonParticlesArchive import CommonParticlesArchiveConf
+CommonParticlesArchiveConf().redirect('stripping28')
+
+
+from Gaudi.Configuration import *
+#from GaudiPython import AppMgr
+from Configurables import DecayTreeTuple, BTaggingTool, SubstitutePID, TrackScaleState
+from Configurables import CombineParticles, FilterDesktop, TupleToolDecayTreeFitter, TupleToolDecay
+from Configurables import TupleToolTrigger, BackgroundCategory, TupleToolTISTOS, TupleToolRecoStats, TupleToolTagging
+from Configurables import DaVinci, HltSelReportsDecoder, HltVertexReportsDecoder, HltDecReportsDecoder, LoKi__Hybrid__TupleTool, TupleToolJets
+from DecayTreeTuple.Configuration import *
+from StrippingConf.Configuration import StrippingConf, StrippingStream
+from StrippingSettings.Utils import strippingConfiguration
+from StrippingArchive.Utils import buildStreams, cloneLinesFromStream
+from Configurables import CombineParticles
+from StrippingArchive import strippingArchive
+from Configurables import FilterInTrees
+from PhysSelPython.Wrappers import Selection, DataOnDemand, AutomaticData, SelectionSequence
+msgSvc = getConfigurable("MessageSvc")
+msgSvc.Format = "% F%60W%S%7W%R%T %0W%M"
+
+#try and match it with what is in main_opt.py
+
+trigger_list = [
+ 'L0MuonDecision',
+ 'L0ElectronDecision',
+ 'L0HadronDecision',
+ 'Hlt1TrackMVADecision',
+ 'Hlt1TrackMVALooseDecision',
+ 'Hlt2RareCharmD2piMuMuOSDecision',
+ 'Hlt2RareCharmD2piEEOSDecision',
+]
+
+#StdPions = DataOnDemand(Location = "Phys/StdAllLoosePions/Particles")
+
+particle_list = []
+
+#no need for a WS decay so get rid of it
+
+
+decay_OSee = "[D_s+ -> ^(phi(1020) -> ^e+ ^e-) ^pi+]CC"
+
+#decay_OSmumu = "[D+ -> ^pi+ ^mu+ ^mu-]CC"
+
+#for mc /Event/
+# find my own decay_tree_location using main_opt and make_decay_tree_tuples.py
+decay_tree_location_Dplus_electrons = 'Phys/D2XMuMuSS_Pi_EE_OSLine/Particles'
+#decay_tree_location_Dplus_muons = 'Phys/D2XMuMuSS_PiOSLine/Particles'
+
+#ACCESSING TO THE DECAY DAUGHTERS
+StrippingSel = AutomaticData(decay_tree_location_Dplus_electrons)
+
+
+electron_from_Ds = FilterInTrees('electron_from_Ds', Code="('e-' == ABSID)")
+electron_from_Ds_sel = Selection("electron_from_Ds_sel",
+ Algorithm=electron_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+electron_Filter = FilterDesktop('electron_Filter', Code="PPINFO(PROBNNe)>0.05")#
+electron_Filter_sel = Selection("Filtered_electron_sel",
+ Algorithm=electron_Filter,
+ RequiredSelections=[electron_from_Ds_sel])
+
+
+pion_from_Ds = FilterInTrees('pion_from_Ds', Code="('pi+' == ABSID)")
+pion_from_Ds_sel = Selection("pion_from_Ds_sel",
+ Algorithm=pion_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+pion_Filter = FilterDesktop('pionFilter', Code="PPINFO(PROBNNpi)>0.2")
+pionFilter_sel = Selection("Filtered_pion_sel",
+ Algorithm=pion_Filter,
+ RequiredSelections=[pion_from_Ds_sel])
+
+
+#############################################################################
+#RECOMBINE THE LEPTONS TO A PHI
+
+
+phi = CombineParticles("phi")
+
+phi.DecayDescriptors = ["phi(1020) -> e+ e-"] #no cc here
+#phi.MotherCut = "ALL" #"(VFASPF(VCHI2/VDOF) < 6.0) " #leaving the chisquared cut
+phi.MotherCut = "BPVDIRA>0.999" #in order to cut uninteresting events from the data BPV = Best Primary Vertex
+
+
+phi_sel = Selection("phi_sel",
+ Algorithm=phi,
+ RequiredSelections=[electron_from_Ds_sel])
+
+############
+#Remake the Ds
+
+
+Ds = CombineParticles("D_s+")
+Ds.DecayDescriptors = ["[D_s+ -> phi(1020) pi+]cc"]
+Ds.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+Ds_sel = Selection("Ds_sel",
+ Algorithm=Ds,
+ RequiredSelections=[phi_sel, pionFilter_sel]) #the order matters!! It makes sense to put the rarer decay first in order to
+ #save time -> put the most distinctive decay first
+
+Ds_phi_pi_sel_seq = SelectionSequence('Ds_phi_pi_selection_seq',
+ TopSelection=Ds_sel
+ )
+
+
+#############################################################################
+# Now WS:
+# Lb_SL_WS = CombineParticles("Lb_SL_WS")
+# Lb_SL_WS.DecayDescriptors = ["[Lambda_b0 -> Lambda_c(2595)+ mu+]cc"]
+# Lb_SL_WS.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+
+
+
+# Creating the DecayTreeTuple objects
+decay_trees = []
+
+#replace thedecays you're intereste in here
+Ds_OfflineTree = DecayTreeTuple("Ds_OfflineTree")
+Ds_OfflineTree.Inputs = Ds_phi_pi_sel_seq.outputLocations()
+Ds_OfflineTree.Decay = decay_OSee
+Ds_OfflineTree.addBranches({
+ "Ds":"[D_s+ -> phi(1020) pi+]CC",
+
+ "phi":"[D_s+ -> ^phi(1020) pi+]CC",
+ "pi":"[D_s+ -> phi(1020) ^pi+]CC",
+
+ "e_plus":"[D+ -> (phi(1020) -> ^e+ e-) pi+]CC",
+ "e_minus":"[D+ -> (phi(1020) -> e+ ^e-) pi+]CC",
+
+
+})
+decay_trees.append(Ds_OfflineTree)
+
+# Lb_SL_OfflineTree_WS = DecayTreeTuple("Lb_SL_OfflineTree_WS")
+# Lb_SL_OfflineTree_WS.Inputs = ["Phys/Lb_SL_WS/Particles"]
+# Lb_SL_OfflineTree_WS.Decay = decay0_WS
+# Lb_SL_OfflineTree_WS.addBranches({
+# "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) ^mu+ ]CC",
+# "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_plus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+ pi-) mu+ ]CC",
+# "pi_minus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ ^pi-) mu+ ]CC",
+# "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+ pi-) mu+ ]CC",
+# "K": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+ pi-) mu+ ]CC"
+# })
+# decay_trees.append(Lb_SL_OfflineTree_WS)
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Double charm tree
+
+
+
+
+from Configurables import TupleToolNeutrinoReco
+from Configurables import TupleToolKinematic
+from Configurables import TupleToolGeometry
+from Configurables import TupleToolTrackIsolation
+from Configurables import TupleToolANNPID
+# from Configurables import Rich__Rec__DetailedTrSegMakerFromRecoTracks
+# from Configurables import TupleToolRICHPid
+#from Configurables import TupleToolApplyIsolation
+
+#from Configurables import TupleToolSLTools
+
+for DTT in decay_trees:
+ DTT.ToolList = [
+ "TupleToolKinematic",
+ "TupleToolGeometry",
+ "TupleToolTrackInfo",
+ "TupleToolEventInfo",
+ "TupleToolRecoStats",
+ "TupleToolANNPID",
+ "TupleToolPid",
+ # "TupleToolMCTruth",
+ # 'TupleToolTrigger',
+ # 'TupleToolTISTOS',
+ # 'TupleToolRICHPid',
+ ]
+ # DTT.pi_plus.addTool(TupleToolANNPID,name='TupleToolANNPID')
+ # DTT.pi_plus.ToolList+=['TupleToolANNPID']
+ # DTT.pi_plus.TupleToolANNPID.ANNPIDTunes = ['MC15TuneV1','MC15TuneDNNV1','MC15TuneFLAT4dV1','MC15TuneCatBoostV1']
+ # print 'PID tunes',DTT.pi_plus.TupleToolANNPID.ANNPIDTunes
+ DTT.Ds.addTool(TupleToolTrigger, name='TupleToolTrigger')
+ DTT.Ds.TupleToolTrigger.Verbose = True
+ DTT.Ds.TupleToolTrigger.TriggerList = trigger_list
+ DTT.Ds.addTool(TupleToolTISTOS, name='TupleToolTISTOS')
+ DTT.Ds.TupleToolTISTOS.Verbose = True
+ DTT.Ds.TupleToolTISTOS.TriggerList = trigger_list
+ DTT.Ds.ToolList += ["TupleToolTISTOS"]
+ #DTT.Lambda_b0.addTool(TupleToolSLTools, name='TupleToolSLTools')
+ #DTT.Lambda_b0.ToolList += ["TupleToolSLTools"]
+
+# Isolation from the R(D*) SL analysis
+#for DTT in decay_trees:
+
+ #toolIso = DTT.Lambda_b0.addTupleTool(
+ # TupleToolApplyIsolation, name="TupleToolApplyIsolation")
+ #toolIso.WeightsFile = "weights.xml"
+ #DTT.Lambda_b0.ToolList += ["TupleToolApplyIsolation/TupleToolApplyIsolation"]
+
+# Isolation from the R(D*) SL analysis (adding VELO tracks)
+# from Configurables import ChargedProtoParticleMaker
+# veloprotos = ChargedProtoParticleMaker("myProtoPMaker")
+# veloprotos.Inputs = ["Rec/Track/Best"]
+# veloprotos.Output = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# DaVinci().appendToMainSequence([veloprotos])
+from Configurables import ProtoParticleCALOFilter, CombinedParticleMaker, NoPIDsParticleMaker
+from CommonParticles.Utils import *
+# algorithm = NoPIDsParticleMaker('StdNoPIDsVeloPions', Particle='pion',)
+# algorithm.Input = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# selector = trackSelector(algorithm, trackTypes=['Velo'])
+# locations = updateDoD(algorithm)
+# DaVinci().appendToMainSequence([algorithm])
+from PhysConf.Filters import LoKi_Filters
+# fltrs = LoKi_Filters(
+# STRIP_Code = "HLT_PASS('Strippingb2LcMuXB2DMuForTauMuLineDecision')")
+##################################################
+from Configurables import DaVinci
+# DaVinci().EventPreFilters = fltrs.filters('Filters')
+DaVinci().EvtMax = -1 # 200 # Number of events
+DaVinci().SkipEvents = 0 # Events to skip
+DaVinci().PrintFreq = 10000
+DaVinci().Simulation = False
+DaVinci().Lumi = True
+DaVinci().RootInTES = '/Event/Charm'
+DaVinci().InputType = 'MDST'
+#DaVinci().appendToMainSequence([muons_from_Lc_sel_seq.sequence(),
+# muons_from_Lc_sel_WC_seq.sequence()])
+DaVinci().appendToMainSequence([Ds_phi_pi_sel_seq.sequence()])
+DaVinci().appendToMainSequence(decay_trees)
+
+#DaVinci().UserAlgorithms.extend(decay_trees)
+
+DaVinci().TupleFile = "Ds_eepi.root"
+#DaVinci().Input = ['PFN:/disk/data12/lhcb/davide/Rphipi/00070442_00006584_1.charm.mdst']
+
+
+DaVinci().DataType = "2016"
diff --git a/productions/local_test_data/Ds_mumupi_data.py b/productions/local_test_data/Ds_mumupi_data.py
new file mode 100644
index 0000000..1b9f222
--- /dev/null
+++ b/productions/local_test_data/Ds_mumupi_data.py
@@ -0,0 +1,256 @@
+# -*- coding: utf-8 -*-
+# @Author: Marcin Chrzaszcz
+# @Date: 2016-08-27
+# @Last Modified by: Anna Lupato
+# @Last Modified time: 2016-09-28
+########################################################################
+from os import environ
+import math
+
+
+# use CommonParticlesArchive
+from CommonParticlesArchive import CommonParticlesArchiveConf
+CommonParticlesArchiveConf().redirect('stripping28')
+
+
+from Gaudi.Configuration import *
+#from GaudiPython import AppMgr
+from Configurables import DecayTreeTuple, BTaggingTool, SubstitutePID, TrackScaleState
+from Configurables import CombineParticles, FilterDesktop, TupleToolDecayTreeFitter, TupleToolDecay
+from Configurables import TupleToolTrigger, BackgroundCategory, TupleToolTISTOS, TupleToolRecoStats, TupleToolTagging
+from Configurables import DaVinci, HltSelReportsDecoder, HltVertexReportsDecoder, HltDecReportsDecoder, LoKi__Hybrid__TupleTool, TupleToolJets
+from DecayTreeTuple.Configuration import *
+from StrippingConf.Configuration import StrippingConf, StrippingStream
+from StrippingSettings.Utils import strippingConfiguration
+from StrippingArchive.Utils import buildStreams, cloneLinesFromStream
+from Configurables import CombineParticles
+from StrippingArchive import strippingArchive
+from Configurables import FilterInTrees
+from PhysSelPython.Wrappers import Selection, DataOnDemand, AutomaticData, SelectionSequence
+msgSvc = getConfigurable("MessageSvc")
+msgSvc.Format = "% F%60W%S%7W%R%T %0W%M"
+
+#try and match it with what is in main_opt.py
+
+trigger_list = [
+ 'L0MuonDecision',
+ 'L0ElectronDecision',
+ 'L0HadronDecision',
+ 'Hlt1TrackMVADecision',
+ 'Hlt1TrackMVALooseDecision',
+ 'Hlt2RareCharmD2piMuMuOSDecision',
+ 'Hlt2RareCharmD2piEEOSDecision',
+]
+
+#StdPions = DataOnDemand(Location = "Phys/StdAllLoosePions/Particles")
+
+particle_list = []
+
+#no need for a WS decay so get rid of it
+
+
+decay_OSmumu = "[D_s+ -> ^(phi(1020) -> ^mu+ ^mu-) ^pi+]CC"
+#decay_OSmumu = "[D+ -> ^pi+ ^mu+ ^mu-]CC"
+
+#for mc /Event/
+#decay_tree_location_Dplus_electrons = 'Phys/D2XMuMuSS_Pi_EE_OSLine/Particles'
+decay_tree_location_Dplus_muons = 'Phys/D2XMuMuSS_PiOSLine/Particles'
+
+
+StrippingSel = AutomaticData(decay_tree_location_Dplus_muons)
+#ACCESSING TO THE DECAY DAUGHTERS
+
+muon_from_Ds = FilterInTrees('muon_from_Ds', Code="('mu-' == ABSID)")
+muon_from_Ds_sel = Selection("muon_from_Ds_sel",
+ Algorithm=muon_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+#muon_Filter = FilterDesktop('muon_Filter', Code="ALL")
+#aplying cuts to the muons prob NN in order to filter out background events
+muon_Filter = FilterDesktop('muon_Filter', Code="PPINFO(PROBNNmu)>0.1")
+
+muon_Filter_sel = Selection("Filtered_muon_sel",
+ Algorithm=muon_Filter,
+ RequiredSelections=[muon_from_Ds_sel])
+
+
+pion_from_Ds = FilterInTrees('pion_from_Ds', Code="('pi+' == ABSID)")
+pion_from_Ds_sel = Selection("pion_from_Ds_sel",
+ Algorithm=pion_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+# pion_Filter = FilterDesktop('pionFilter', Code="ALL")
+pion_Filter = FilterDesktop('pionFilter', Code="PPINFO(PROBNNpi)>0.2")
+
+pionFilter_sel = Selection("Filtered_pion_sel",
+ Algorithm=pion_Filter,
+ RequiredSelections=[pion_from_Ds_sel])
+
+
+#############################################################################
+#RECOMBINE THE LEPTONS TO A PHI
+
+
+phi = CombineParticles("phi")
+
+phi.DecayDescriptors = ["phi(1020) -> mu+ mu-"] #no cc here
+#phi.MotherCut = "ALL" #"(VFASPF(VCHI2/VDOF) < 6.0) " #leaving the chisquared cut
+phi.MotherCut = "BPVDIRA>0.999" #in order to cut uninteresting events from the data BPV = Best Primary Vertex
+
+
+phi_sel = Selection("phi_sel",
+ Algorithm=phi,
+ RequiredSelections=[muon_from_Ds_sel])
+
+############
+#Remake the Ds
+
+
+Ds = CombineParticles("D_s+")
+Ds.DecayDescriptors = ["[D_s+ -> phi(1020) pi+]cc"]
+Ds.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+Ds_sel = Selection("Ds_sel",
+ Algorithm=Ds,
+ RequiredSelections=[phi_sel, pionFilter_sel]) #the order matters!! It makes sense to put the rarer decay first in order to
+ #save time -> put the most distinctive decay first
+
+Ds_phi_pi_sel_seq = SelectionSequence('Ds_phi_pi_selection_seq',
+ TopSelection=Ds_sel
+ )
+#############################################################################
+# Now WS:
+# Lb_SL_WS = CombineParticles("Lb_SL_WS")
+# Lb_SL_WS.DecayDescriptors = ["[Lambda_b0 -> Lambda_c(2595)+ mu+]cc"]
+# Lb_SL_WS.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+
+
+
+# Creating the DecayTreeTuple objects
+decay_trees = []
+
+#replace thedecays you're intereste in here
+Ds_OfflineTree = DecayTreeTuple("Ds_OfflineTree")
+Ds_OfflineTree.Inputs = Ds_phi_pi_sel_seq.outputLocations()
+Ds_OfflineTree.Decay = decay_OSmumu
+Ds_OfflineTree.addBranches({
+ "Ds":"[D_s+ -> phi(1020) pi+]CC",
+
+ "phi":"[D_s+ -> ^phi(1020) pi+]CC",
+ "pi":"[D_s+ -> phi(1020) ^pi+]CC",
+
+ "e_plus":"[D+ -> (phi(1020) -> ^mu+ mu-) pi+]CC",
+ "e_minus":"[D+ -> (phi(1020) -> mu+ ^mu-) pi+]CC",
+
+
+})
+decay_trees.append(Ds_OfflineTree)
+
+# Lb_SL_OfflineTree_WS = DecayTreeTuple("Lb_SL_OfflineTree_WS")
+# Lb_SL_OfflineTree_WS.Inputs = ["Phys/Lb_SL_WS/Particles"]
+# Lb_SL_OfflineTree_WS.Decay = decay0_WS
+# Lb_SL_OfflineTree_WS.addBranches({
+# "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) ^mu+ ]CC",
+# "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_plus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+ pi-) mu+ ]CC",
+# "pi_minus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ ^pi-) mu+ ]CC",
+# "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+ pi-) mu+ ]CC",
+# "K": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+ pi-) mu+ ]CC"
+# })
+# decay_trees.append(Lb_SL_OfflineTree_WS)
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Double charm tree
+
+
+
+
+from Configurables import TupleToolNeutrinoReco
+from Configurables import TupleToolKinematic
+from Configurables import TupleToolGeometry
+from Configurables import TupleToolTrackIsolation
+from Configurables import TupleToolANNPID
+# from Configurables import Rich__Rec__DetailedTrSegMakerFromRecoTracks
+# from Configurables import TupleToolRICHPid
+#from Configurables import TupleToolApplyIsolation
+
+#from Configurables import TupleToolSLTools
+
+for DTT in decay_trees:
+ DTT.ToolList = [
+ "TupleToolKinematic",
+ "TupleToolGeometry",
+ "TupleToolTrackInfo",
+ "TupleToolEventInfo",
+ "TupleToolRecoStats",
+ "TupleToolANNPID",
+ "TupleToolPid",
+ # "TupleToolMCTruth",
+ # 'TupleToolTrigger',
+ # 'TupleToolTISTOS',
+ # 'TupleToolRICHPid',
+ ]
+ # DTT.pi_plus.addTool(TupleToolANNPID,name='TupleToolANNPID')
+ # DTT.pi_plus.ToolList+=['TupleToolANNPID']
+ # DTT.pi_plus.TupleToolANNPID.ANNPIDTunes = ['MC15TuneV1','MC15TuneDNNV1','MC15TuneFLAT4dV1','MC15TuneCatBoostV1']
+ # print 'PID tunes',DTT.pi_plus.TupleToolANNPID.ANNPIDTunes
+ DTT.Ds.addTool(TupleToolTrigger, name='TupleToolTrigger')
+ DTT.Ds.TupleToolTrigger.Verbose = True
+ DTT.Ds.TupleToolTrigger.TriggerList = trigger_list
+ DTT.Ds.addTool(TupleToolTISTOS, name='TupleToolTISTOS')
+ DTT.Ds.TupleToolTISTOS.Verbose = True
+ DTT.Ds.TupleToolTISTOS.TriggerList = trigger_list
+ DTT.Ds.ToolList += ["TupleToolTISTOS"]
+ #DTT.Lambda_b0.addTool(TupleToolSLTools, name='TupleToolSLTools')
+ #DTT.Lambda_b0.ToolList += ["TupleToolSLTools"]
+
+# Isolation from the R(D*) SL analysis
+#for DTT in decay_trees:
+
+ #toolIso = DTT.Lambda_b0.addTupleTool(
+ # TupleToolApplyIsolation, name="TupleToolApplyIsolation")
+ #toolIso.WeightsFile = "weights.xml"
+ #DTT.Lambda_b0.ToolList += ["TupleToolApplyIsolation/TupleToolApplyIsolation"]
+
+# Isolation from the R(D*) SL analysis (adding VELO tracks)
+# from Configurables import ChargedProtoParticleMaker
+# veloprotos = ChargedProtoParticleMaker("myProtoPMaker")
+# veloprotos.Inputs = ["Rec/Track/Best"]
+# veloprotos.Output = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# DaVinci().appendToMainSequence([veloprotos])
+from Configurables import ProtoParticleCALOFilter, CombinedParticleMaker, NoPIDsParticleMaker
+from CommonParticles.Utils import *
+# algorithm = NoPIDsParticleMaker('StdNoPIDsVeloPions', Particle='pion',)
+# algorithm.Input = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# selector = trackSelector(algorithm, trackTypes=['Velo'])
+# locations = updateDoD(algorithm)
+# DaVinci().appendToMainSequence([algorithm])
+from PhysConf.Filters import LoKi_Filters
+# fltrs = LoKi_Filters(
+# STRIP_Code = "HLT_PASS('Strippingb2LcMuXB2DMuForTauMuLineDecision')")
+##################################################
+from Configurables import DaVinci
+# DaVinci().EventPreFilters = fltrs.filters('Filters')
+DaVinci().EvtMax = -1 # # Number of events set to all of them
+DaVinci().SkipEvents = 0 # Events to skip
+DaVinci().PrintFreq = 10000
+DaVinci().Simulation = False
+DaVinci().Lumi = True
+DaVinci().RootInTES = '/Event/Charm'
+DaVinci().InputType = 'MDST'
+#DaVinci().appendToMainSequence([muons_from_Lc_sel_seq.sequence(),
+# muons_from_Lc_sel_WC_seq.sequence()])
+DaVinci().appendToMainSequence([Ds_phi_pi_sel_seq.sequence()])
+DaVinci().appendToMainSequence(decay_trees)
+
+#DaVinci().UserAlgorithms.extend(decay_trees)
+
+DaVinci().TupleFile = "Ds_mumupi.root"
+#DaVinci().Input = ['PFN:/disk/data12/lhcb/davide/Rphipi/00070442_00006584_1.charm.mdst']
+#remove this for the grid and specify in ganga j.inputdata
+
+DaVinci().DataType = "2016"
diff --git a/productions/local_test_mc/._Ds_eepi_mc_local.py b/productions/local_test_mc/._Ds_eepi_mc_local.py
new file mode 100644
index 0000000..b88ca8a
--- /dev/null
+++ b/productions/local_test_mc/._Ds_eepi_mc_local.py
Binary files differ
diff --git a/productions/local_test_mc/._Ds_mumupi_mc_local.py b/productions/local_test_mc/._Ds_mumupi_mc_local.py
new file mode 100644
index 0000000..fde2def
--- /dev/null
+++ b/productions/local_test_mc/._Ds_mumupi_mc_local.py
Binary files differ
diff --git a/productions/local_test_mc/.bender_history b/productions/local_test_mc/.bender_history
new file mode 100644
index 0000000..975fbec
--- /dev/null
+++ b/productions/local_test_mc/.bender_history
@@ -0,0 +1 @@
+y
diff --git a/productions/local_test_mc/Ds_eepi.root b/productions/local_test_mc/Ds_eepi.root
new file mode 100644
index 0000000..0179105
--- /dev/null
+++ b/productions/local_test_mc/Ds_eepi.root
Binary files differ
diff --git a/productions/local_test_mc/Ds_eepi_mc_local.py b/productions/local_test_mc/Ds_eepi_mc_local.py
new file mode 100644
index 0000000..083d51a
--- /dev/null
+++ b/productions/local_test_mc/Ds_eepi_mc_local.py
@@ -0,0 +1,265 @@
+# -*- coding: utf-8 -*-
+# @Author: Marcin Chrzaszcz
+# @Date: 2016-08-27
+# @Last Modified by: Anna Lupato
+# @Last Modified time: 2016-09-28
+########################################################################
+from os import environ
+import math
+
+
+# use CommonParticlesArchive
+from CommonParticlesArchive import CommonParticlesArchiveConf
+CommonParticlesArchiveConf().redirect('stripping28')
+
+
+from Gaudi.Configuration import *
+#from GaudiPython import AppMgr
+from Configurables import DecayTreeTuple, BTaggingTool, SubstitutePID, TrackScaleState
+from Configurables import CombineParticles, FilterDesktop, TupleToolDecayTreeFitter, TupleToolDecay
+from Configurables import TupleToolTrigger, BackgroundCategory, TupleToolTISTOS, TupleToolRecoStats, TupleToolTagging
+from Configurables import DaVinci, HltSelReportsDecoder, HltVertexReportsDecoder, HltDecReportsDecoder, LoKi__Hybrid__TupleTool, TupleToolJets
+from DecayTreeTuple.Configuration import *
+from StrippingConf.Configuration import StrippingConf, StrippingStream
+from StrippingSettings.Utils import strippingConfiguration
+from StrippingArchive.Utils import buildStreams, cloneLinesFromStream
+from Configurables import CombineParticles
+from StrippingArchive import strippingArchive
+from Configurables import FilterInTrees
+from PhysSelPython.Wrappers import Selection, DataOnDemand, AutomaticData, SelectionSequence
+msgSvc = getConfigurable("MessageSvc")
+msgSvc.Format = "% F%60W%S%7W%R%T %0W%M"
+
+#try and match it with what is in main_opt.py
+
+trigger_list = [
+ 'L0MuonDecision',
+ 'L0ElectronDecision',
+ 'L0HadronDecision',
+ 'Hlt1TrackMVADecision',
+ 'Hlt1TrackMVALooseDecision',
+ 'Hlt2RareCharmD2piMuMuOSDecision',
+ 'Hlt2RareCharmD2piEEOSDecision',
+]
+
+#StdPions = DataOnDemand(Location = "Phys/StdAllLoosePions/Particles")
+
+particle_list = []
+
+#no need for a WS decay so get rid of it
+
+
+decay_OSee = "[D_s+ -> ^(phi(1020) -> ^e+ ^e-) ^pi+]CC"
+
+#decay_OSmumu = "[D+ -> ^pi+ ^mu+ ^mu-]CC"
+
+# find my own decay_tree_location using main_opt and make_decay_tree_tuples.py
+decay_tree_location_Dplus_electrons = 'Phys/D2XMuMuSS_Pi_EE_OSLine/Particles'
+#decay_tree_location_Dplus_muons = 'Phys/D2XMuMuSS_PiOSLine/Particles'
+
+#ACCESSING TO THE DECAY DAUGHTERS
+StrippingSel = AutomaticData(decay_tree_location_Dplus_electrons)
+
+
+electron_from_Ds = FilterInTrees('electron_from_Ds', Code="('e-' == ABSID)")
+electron_from_Ds_sel = Selection("electron_from_Ds_sel",
+ Algorithm=electron_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+electron_Filter = FilterDesktop('electron_Filter', Code="PPINFO(PROBNNe)>0.05")#
+electron_Filter_sel = Selection("Filtered_electron_sel",
+ Algorithm=electron_Filter,
+ RequiredSelections=[electron_from_Ds_sel])
+
+
+pion_from_Ds = FilterInTrees('pion_from_Ds', Code="('pi+' == ABSID)")
+pion_from_Ds_sel = Selection("pion_from_Ds_sel",
+ Algorithm=pion_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+pion_Filter = FilterDesktop('pionFilter', Code="PPINFO(PROBNNpi)>0.2")
+pionFilter_sel = Selection("Filtered_pion_sel",
+ Algorithm=pion_Filter,
+ RequiredSelections=[pion_from_Ds_sel])
+
+
+#############################################################################
+#RECOMBINE THE LEPTONS TO A PHI
+
+
+phi = CombineParticles("phi")
+
+phi.DecayDescriptors = ["phi(1020) -> e+ e-"] #no cc here
+#phi.MotherCut = "ALL" #"(VFASPF(VCHI2/VDOF) < 6.0) " #leaving the chisquared cut
+phi.MotherCut = "BPVDIRA>0.999" #in order to cut uninteresting events from the data BPV = Best Primary Vertex
+
+
+phi_sel = Selection("phi_sel",
+ Algorithm=phi,
+ RequiredSelections=[electron_from_Ds_sel])
+
+############
+#Remake the Ds
+
+
+Ds = CombineParticles("D_s+")
+Ds.DecayDescriptors = ["[D_s+ -> phi(1020) pi+]cc"]
+Ds.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+Ds_sel = Selection("Ds_sel",
+ Algorithm=Ds,
+ RequiredSelections=[phi_sel, pionFilter_sel]) #the order matters!! It makes sense to put the rarer decay first in order to
+ #save time -> put the most distinctive decay first
+
+Ds_phi_pi_sel_seq = SelectionSequence('Ds_phi_pi_selection_seq',
+ TopSelection=Ds_sel
+ )
+
+
+#############################################################################
+# Now WS:
+# Lb_SL_WS = CombineParticles("Lb_SL_WS")
+# Lb_SL_WS.DecayDescriptors = ["[Lambda_b0 -> Lambda_c(2595)+ mu+]cc"]
+# Lb_SL_WS.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+
+
+
+# Creating the DecayTreeTuple objects
+decay_trees = []
+
+#replace thedecays you're intereste in here
+Ds_OfflineTree = DecayTreeTuple("Ds_OfflineTree")
+Ds_OfflineTree.Inputs = Ds_phi_pi_sel_seq.outputLocations()
+Ds_OfflineTree.Decay = decay_OSee
+Ds_OfflineTree.addBranches({
+ "Ds":"[D_s+ -> phi(1020) pi+]CC",
+
+ "phi":"[D_s+ -> ^phi(1020) pi+]CC",
+ "pi":"[D_s+ -> phi(1020) ^pi+]CC",
+
+ "e_plus":"[D_s+ -> (phi(1020) -> ^e+ e-) pi+]CC",
+ "e_minus":"[D_s+ -> (phi(1020) -> e+ ^e-) pi+]CC",
+
+
+})
+
+Ds_OfflineTree.Ds.addTupleTool('TupleToolDecayTreeFitter/ConsD')
+
+#Ds_OfflineTree.Ds.ConsD.constrainToOriginVertex = True
+Ds_OfflineTree.Ds.ConsD.Verbose = True
+Ds_OfflineTree.Ds.ConsD.daughtersToConstrain = ['phi(1020)']
+Ds_OfflineTree.Ds.ConsD.UpdateDaughters = True
+
+decay_trees.append(Ds_OfflineTree)
+
+# Lb_SL_OfflineTree_WS = DecayTreeTuple("Lb_SL_OfflineTree_WS")
+# Lb_SL_OfflineTree_WS.Inputs = ["Phys/Lb_SL_WS/Particles"]
+# Lb_SL_OfflineTree_WS.Decay = decay0_WS
+# Lb_SL_OfflineTree_WS.addBranches({
+# "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) ^mu+ ]CC",
+# "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_plus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+ pi-) mu+ ]CC",
+# "pi_minus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ ^pi-) mu+ ]CC",
+# "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+ pi-) mu+ ]CC",
+# "K": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+ pi-) mu+ ]CC"
+# })
+# decay_trees.append(Lb_SL_OfflineTree_WS)
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Double charm tree
+
+
+
+
+from Configurables import TupleToolNeutrinoReco
+from Configurables import TupleToolKinematic
+from Configurables import TupleToolGeometry
+from Configurables import TupleToolTrackIsolation
+from Configurables import TupleToolANNPID
+# from Configurables import Rich__Rec__DetailedTrSegMakerFromRecoTracks
+# from Configurables import TupleToolRICHPid
+#from Configurables import TupleToolApplyIsolation
+
+#from Configurables import TupleToolSLTools
+
+for DTT in decay_trees:
+ DTT.ToolList = [
+ "TupleToolKinematic",
+ "TupleToolGeometry",
+ "TupleToolTrackInfo",
+ "TupleToolEventInfo",
+ "TupleToolRecoStats",
+ "TupleToolANNPID",
+ "TupleToolPid",
+ # "TupleToolMCTruth",
+ # 'TupleToolTrigger',
+ # 'TupleToolTISTOS',
+ # 'TupleToolRICHPid',
+ ]
+ # DTT.pi_plus.addTool(TupleToolANNPID,name='TupleToolANNPID')
+ # DTT.pi_plus.ToolList+=['TupleToolANNPID']
+ # DTT.pi_plus.TupleToolANNPID.ANNPIDTunes = ['MC15TuneV1','MC15TuneDNNV1','MC15TuneFLAT4dV1','MC15TuneCatBoostV1']
+ # print 'PID tunes',DTT.pi_plus.TupleToolANNPID.ANNPIDTunes
+ DTT.Ds.addTool(TupleToolTrigger, name='TupleToolTrigger')
+ DTT.Ds.TupleToolTrigger.Verbose = True
+ DTT.Ds.TupleToolTrigger.TriggerList = trigger_list
+ DTT.Ds.addTool(TupleToolTISTOS, name='TupleToolTISTOS')
+ DTT.Ds.TupleToolTISTOS.Verbose = True
+ DTT.Ds.TupleToolTISTOS.TriggerList = trigger_list
+ DTT.Ds.ToolList += ["TupleToolTISTOS"]
+ #DTT.Lambda_b0.addTool(TupleToolSLTools, name='TupleToolSLTools')
+ #DTT.Lambda_b0.ToolList += ["TupleToolSLTools"]
+
+# Isolation from the R(D*) SL analysis
+#for DTT in decay_trees:
+
+ #toolIso = DTT.Lambda_b0.addTupleTool(
+ # TupleToolApplyIsolation, name="TupleToolApplyIsolation")
+ #toolIso.WeightsFile = "weights.xml"
+ #DTT.Lambda_b0.ToolList += ["TupleToolApplyIsolation/TupleToolApplyIsolation"]
+
+# Isolation from the R(D*) SL analysis (adding VELO tracks)
+# from Configurables import ChargedProtoParticleMaker
+# veloprotos = ChargedProtoParticleMaker("myProtoPMaker")
+# veloprotos.Inputs = ["Rec/Track/Best"]
+# veloprotos.Output = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# DaVinci().appendToMainSequence([veloprotos])
+from Configurables import ProtoParticleCALOFilter, CombinedParticleMaker, NoPIDsParticleMaker
+from CommonParticles.Utils import *
+# algorithm = NoPIDsParticleMaker('StdNoPIDsVeloPions', Particle='pion',)
+# algorithm.Input = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# selector = trackSelector(algorithm, trackTypes=['Velo'])
+# locations = updateDoD(algorithm)
+# DaVinci().appendToMainSequence([algorithm])
+from PhysConf.Filters import LoKi_Filters
+# fltrs = LoKi_Filters(
+# STRIP_Code = "HLT_PASS('Strippingb2LcMuXB2DMuForTauMuLineDecision')")
+##################################################
+from Configurables import DaVinci
+# DaVinci().EventPreFilters = fltrs.filters('Filters')
+DaVinci().EvtMax = 2000 # 200 # Number of events
+DaVinci().SkipEvents = 0 # Events to skip
+DaVinci().PrintFreq = 10000
+DaVinci().Simulation = True
+DaVinci().Lumi = True
+DaVinci().RootInTES = '/Event/AllStreams'
+DaVinci().InputType = 'MDST'
+#DaVinci().appendToMainSequence([muons_from_Lc_sel_seq.sequence(),
+# muons_from_Lc_sel_WC_seq.sequence()])
+DaVinci().appendToMainSequence([Ds_phi_pi_sel_seq.sequence()])
+DaVinci().appendToMainSequence(decay_trees)
+
+DaVinci().DDDBtag= "dddb-20170721-3"
+DaVinci().CondDBtag= "sim-20170721-2-vc-md100"
+
+#DaVinci().UserAlgorithms.extend(decay_trees)
+
+DaVinci().TupleFile = "Ds_eepi.root"
+DaVinci().Input = ['PFN:/disk/gangadir/davide/workspace/davide/local_MC/Ds_phipi_ee/00071955_00000002_7.AllStreams.mdst']
+
+
+DaVinci().DataType = "2016"
diff --git a/productions/local_test_mc/Ds_mumupi.root b/productions/local_test_mc/Ds_mumupi.root
new file mode 100644
index 0000000..02dcef2
--- /dev/null
+++ b/productions/local_test_mc/Ds_mumupi.root
Binary files differ
diff --git a/productions/local_test_mc/Ds_mumupi_mc_local.py b/productions/local_test_mc/Ds_mumupi_mc_local.py
new file mode 100644
index 0000000..0a54b19
--- /dev/null
+++ b/productions/local_test_mc/Ds_mumupi_mc_local.py
@@ -0,0 +1,265 @@
+# -*- coding: utf-8 -*-
+# @Author: Marcin Chrzaszcz
+# @Date: 2016-08-27
+# @Last Modified by: Anna Lupato
+# @Last Modified time: 2016-09-28
+########################################################################
+from os import environ
+import math
+
+
+# use CommonParticlesArchive
+from CommonParticlesArchive import CommonParticlesArchiveConf
+CommonParticlesArchiveConf().redirect('stripping28')
+
+
+from Gaudi.Configuration import *
+#from GaudiPython import AppMgr
+from Configurables import DecayTreeTuple, BTaggingTool, SubstitutePID, TrackScaleState
+from Configurables import CombineParticles, FilterDesktop, TupleToolDecayTreeFitter, TupleToolDecay
+from Configurables import TupleToolTrigger, BackgroundCategory, TupleToolTISTOS, TupleToolRecoStats, TupleToolTagging
+from Configurables import DaVinci, HltSelReportsDecoder, HltVertexReportsDecoder, HltDecReportsDecoder, LoKi__Hybrid__TupleTool, TupleToolJets
+from DecayTreeTuple.Configuration import *
+from StrippingConf.Configuration import StrippingConf, StrippingStream
+from StrippingSettings.Utils import strippingConfiguration
+from StrippingArchive.Utils import buildStreams, cloneLinesFromStream
+from Configurables import CombineParticles
+from StrippingArchive import strippingArchive
+from Configurables import FilterInTrees
+from PhysSelPython.Wrappers import Selection, DataOnDemand, AutomaticData, SelectionSequence
+msgSvc = getConfigurable("MessageSvc")
+msgSvc.Format = "% F%60W%S%7W%R%T %0W%M"
+
+#try and match it with what is in main_opt.py
+
+trigger_list = [
+ 'L0MuonDecision',
+ 'L0ElectronDecision',
+ 'L0HadronDecision',
+ 'Hlt1TrackMVADecision',
+ 'Hlt1TrackMVALooseDecision',
+ 'Hlt2RareCharmD2PiMuMuOSDecision',
+ 'Hlt2RareCharmD2PiEEOSDecision',
+]
+
+#StdPions = DataOnDemand(Location = "Phys/StdAllLoosePions/Particles")
+
+particle_list = []
+
+#no need for a WS decay so get rid of it
+
+
+decay_OSmumu = "[D_s+ -> ^(phi(1020) -> ^mu+ ^mu-) ^pi+]CC"
+#decay_OSmumu = "[D+ -> ^pi+ ^mu+ ^mu-]CC"
+
+#for mc /Event/
+#decay_tree_location_Dplus_electrons = 'Phys/D2XMuMuSS_Pi_EE_OSLine/Particles'
+decay_tree_location_Dplus_muons = 'Phys/D2XMuMuSS_PiOSLine/Particles'
+
+
+StrippingSel = AutomaticData(decay_tree_location_Dplus_muons)
+#ACCESSING TO THE DECAY DAUGHTERS
+
+muon_from_Ds = FilterInTrees('muon_from_Ds', Code="('mu-' == ABSID)")
+muon_from_Ds_sel = Selection("muon_from_Ds_sel",
+ Algorithm=muon_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+#muon_Filter = FilterDesktop('muon_Filter', Code="ALL")
+#aplying cuts to the muons prob NN in order to filter out background events
+muon_Filter = FilterDesktop('muon_Filter', Code="PPINFO(PROBNNmu)>0.1")
+
+muon_Filter_sel = Selection("Filtered_muon_sel",
+ Algorithm=muon_Filter,
+ RequiredSelections=[muon_from_Ds_sel])
+
+
+pion_from_Ds = FilterInTrees('pion_from_Ds', Code="('pi+' == ABSID)")
+pion_from_Ds_sel = Selection("pion_from_Ds_sel",
+ Algorithm=pion_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+# pion_Filter = FilterDesktop('pionFilter', Code="ALL")
+pion_Filter = FilterDesktop('pionFilter', Code="PPINFO(PROBNNpi)>0.2")
+
+pion_Filter_sel = Selection("Filtered_pion_sel",
+ Algorithm=pion_Filter,
+ RequiredSelections=[pion_from_Ds_sel])
+
+
+#############################################################################
+#RECOMBINE THE LEPTONS TO A PHI
+
+
+phi = CombineParticles("phi")
+
+phi.DecayDescriptors = ["phi(1020) -> mu+ mu-"] #no cc here
+#phi.MotherCut = "ALL" #"(VFASPF(VCHI2/VDOF) < 6.0) " #leaving the chisquared cut
+phi.MotherCut = "BPVDIRA>0.999" #in order to cut uninteresting events from the data BPV = Best Primary Vertex
+
+
+phi_sel = Selection("phi_sel",
+ Algorithm=phi,
+ RequiredSelections=[muon_Filter_sel])
+
+############
+#Remake the Ds
+
+
+Ds = CombineParticles("D_s+")
+Ds.DecayDescriptors = ["[D_s+ -> phi(1020) pi+]cc"]
+Ds.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+Ds_sel = Selection("Ds_sel",
+ Algorithm=Ds,
+ RequiredSelections=[phi_sel, pion_Filter_sel]) #the order matters!! It makes sense to put the rarer decay first in order to
+ #save time -> put the most distinctive decay first
+
+Ds_phi_pi_sel_seq = SelectionSequence('Ds_phi_pi_selection_seq',
+ TopSelection=Ds_sel
+ )
+#############################################################################
+# Now WS:
+# Lb_SL_WS = CombineParticles("Lb_SL_WS")
+# Lb_SL_WS.DecayDescriptors = ["[Lambda_b0 -> Lambda_c(2595)+ mu+]cc"]
+# Lb_SL_WS.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+
+
+
+# Creating the DecayTreeTuple objects
+decay_trees = []
+
+#replace thedecays you're intereste in here
+Ds_OfflineTree = DecayTreeTuple("Ds_OfflineTree")
+Ds_OfflineTree.Inputs = Ds_phi_pi_sel_seq.outputLocations()
+Ds_OfflineTree.Decay = decay_OSmumu
+Ds_OfflineTree.addBranches({
+ "Ds":"[D_s+ -> phi(1020) pi+]CC",
+
+ "phi":"[D_s+ -> ^phi(1020) pi+]CC",
+ "pi":"[D_s+ -> phi(1020) ^pi+]CC",
+
+ "mu_plus":"[D_s+ -> (phi(1020) -> ^mu+ mu-) pi+]CC",
+ "mu_minus":"[D_s+ -> (phi(1020) -> mu+ ^mu-) pi+]CC",
+
+
+})
+
+Ds_OfflineTree.Ds.addTupleTool('TupleToolDecayTreeFitter/ConsD')
+
+#Ds_OfflineTree.Ds.ConsD.constrainToOriginVertex = True
+Ds_OfflineTree.Ds.ConsD.Verbose = True
+Ds_OfflineTree.Ds.ConsD.daughtersToConstrain = ['phi(1020)']
+Ds_OfflineTree.Ds.ConsD.UpdateDaughters = True
+
+decay_trees.append(Ds_OfflineTree)
+
+# Lb_SL_OfflineTree_WS = DecayTreeTuple("Lb_SL_OfflineTree_WS")
+# Lb_SL_OfflineTree_WS.Inputs = ["Phys/Lb_SL_WS/Particles"]
+# Lb_SL_OfflineTree_WS.Decay = decay0_WS
+# Lb_SL_OfflineTree_WS.addBranches({
+# "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) ^mu+ ]CC",
+# "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_plus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+ pi-) mu+ ]CC",
+# "pi_minus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ ^pi-) mu+ ]CC",
+# "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+ pi-) mu+ ]CC",
+# "K": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+ pi-) mu+ ]CC"
+# })
+# decay_trees.append(Lb_SL_OfflineTree_WS)
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Double charm tree
+
+
+from Configurables import TupleToolNeutrinoReco
+from Configurables import TupleToolKinematic
+from Configurables import TupleToolGeometry
+from Configurables import TupleToolTrackIsolation
+from Configurables import TupleToolANNPID
+# from Configurables import Rich__Rec__DetailedTrSegMakerFromRecoTracks
+# from Configurables import TupleToolRICHPid
+#from Configurables import TupleToolApplyIsolation
+
+#from Configurables import TupleToolSLTools
+
+for DTT in decay_trees:
+ DTT.ToolList = [
+ "TupleToolKinematic",
+ "TupleToolGeometry",
+ "TupleToolTrackInfo",
+ "TupleToolEventInfo",
+ "TupleToolRecoStats",
+ "TupleToolANNPID",
+ "TupleToolPid",
+ # "TupleToolMCTruth",
+ # 'TupleToolTrigger',
+ # 'TupleToolTISTOS',
+ # 'TupleToolRICHPid',
+ ]
+ # DTT.pi_plus.addTool(TupleToolANNPID,name='TupleToolANNPID')
+ # DTT.pi_plus.ToolList+=['TupleToolANNPID']
+ # DTT.pi_plus.TupleToolANNPID.ANNPIDTunes = ['MC15TuneV1','MC15TuneDNNV1','MC15TuneFLAT4dV1','MC15TuneCatBoostV1']
+ # print 'PID tunes',DTT.pi_plus.TupleToolANNPID.ANNPIDTunes
+ DTT.Ds.addTool(TupleToolTrigger, name='TupleToolTrigger')
+ DTT.Ds.TupleToolTrigger.Verbose = True
+ DTT.Ds.TupleToolTrigger.TriggerList = trigger_list
+ DTT.Ds.addTool(TupleToolTISTOS, name='TupleToolTISTOS')
+ DTT.Ds.TupleToolTISTOS.Verbose = True
+ DTT.Ds.TupleToolTISTOS.TriggerList = trigger_list
+ DTT.Ds.ToolList += ["TupleToolTISTOS"]
+ #DTT.Lambda_b0.addTool(TupleToolSLTools, name='TupleToolSLTools')
+ #DTT.Lambda_b0.ToolList += ["TupleToolSLTools"]
+
+# Isolation from the R(D*) SL analysis
+#for DTT in decay_trees:
+
+ #toolIso = DTT.Lambda_b0.addTupleTool(
+ # TupleToolApplyIsolation, name="TupleToolApplyIsolation")
+ #toolIso.WeightsFile = "weights.xml"
+ #DTT.Lambda_b0.ToolList += ["TupleToolApplyIsolation/TupleToolApplyIsolation"]
+
+# Isolation from the R(D*) SL analysis (adding VELO tracks)
+# from Configurables import ChargedProtoParticleMaker
+# veloprotos = ChargedProtoParticleMaker("myProtoPMaker")
+# veloprotos.Inputs = ["Rec/Track/Best"]
+# veloprotos.Output = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# DaVinci().appendToMainSequence([veloprotos])
+from Configurables import ProtoParticleCALOFilter, CombinedParticleMaker, NoPIDsParticleMaker
+from CommonParticles.Utils import *
+# algorithm = NoPIDsParticleMaker('StdNoPIDsVeloPions', Particle='pion',)
+# algorithm.Input = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# selector = trackSelector(algorithm, trackTypes=['Velo'])
+# locations = updateDoD(algorithm)
+# DaVinci().appendToMainSequence([algorithm])
+from PhysConf.Filters import LoKi_Filters
+# fltrs = LoKi_Filters(
+# STRIP_Code = "HLT_PASS('Strippingb2LcMuXB2DMuForTauMuLineDecision')")
+##################################################
+from Configurables import DaVinci
+# DaVinci().EventPreFilters = fltrs.filters('Filters')
+DaVinci().EvtMax = 2000 # # Number of events set to all of them
+DaVinci().SkipEvents = 0 # Events to skip
+DaVinci().PrintFreq = 10000
+DaVinci().Simulation = True
+DaVinci().Lumi = True
+DaVinci().RootInTES = '/Event/AllStreams'
+DaVinci().InputType = 'MDST'
+#DaVinci().appendToMainSequence([muons_from_Lc_sel_seq.sequence(),
+# muons_from_Lc_sel_WC_seq.sequence()])
+DaVinci().appendToMainSequence([Ds_phi_pi_sel_seq.sequence()])
+DaVinci().appendToMainSequence(decay_trees)
+
+DaVinci().DDDBtag= "dddb-20170721-3"
+DaVinci().CondDBtag= "sim-20170721-2-vc-md100"
+
+#DaVinci().UserAlgorithms.extend(decay_trees)
+
+DaVinci().TupleFile = "Ds_mumupi.root"
+DaVinci().Input = ['PFN:/disk/gangadir/davide/workspace/davide/local_MC/Ds_phipi_mumu/00071953_00000001_7.AllStreams.mdst']
+#
+
+DaVinci().DataType = "2016"
diff --git a/productions/local_test_mc/first.py b/productions/local_test_mc/first.py
new file mode 100644
index 0000000..d21bd0f
--- /dev/null
+++ b/productions/local_test_mc/first.py
@@ -0,0 +1,44 @@
+import sys
+
+import GaudiPython as GP
+from GaudiConf import IOHelper
+from Configurables import DaVinci
+
+dv = DaVinci()
+dv.DataType = '2016'
+dv.Simulation = True
+
+# Pass file to open as first command line argument
+inputFiles = [sys.argv[-1]]
+IOHelper('ROOT').inputFiles(inputFiles)
+
+appMgr = GP.AppMgr()
+evt = appMgr.evtsvc()
+
+appMgr.run(1)
+evt.dump()
+
+
+def nodes(evt, node=None):
+ """List all nodes in `evt`"""
+ nodenames = []
+
+ if node is None:
+ root = evt.retrieveObject('')
+ node = root.registry()
+
+ if node.object():
+ nodenames.append(node.identifier())
+ for l in evt.leaves(node):
+ # skip a location that takes forever to load
+ # XXX How to detect these automatically??
+ if 'Swum' in l.identifier():
+ continue
+
+ temp = evt[l.identifier()]
+ nodenames += nodes(evt, l)
+
+ else:
+ nodenames.append(node.identifier())
+
+ return nodenames
diff --git a/productions/local_test_mc/summary.xml b/productions/local_test_mc/summary.xml
new file mode 100644
index 0000000..05ec376
--- /dev/null
+++ b/productions/local_test_mc/summary.xml
@@ -0,0 +1,17 @@
+
+
+
+ True
+ finalize
+
+ 2233024.0
+
+
+ 1
+
+
+
+ 2
+
+
+
diff --git a/productions/online_test_data/._Ds_eepi_data_online.py b/productions/online_test_data/._Ds_eepi_data_online.py
new file mode 100644
index 0000000..cfb9b4f
--- /dev/null
+++ b/productions/online_test_data/._Ds_eepi_data_online.py
Binary files differ
diff --git a/productions/online_test_data/._Ds_mumupi_data_online.py b/productions/online_test_data/._Ds_mumupi_data_online.py
new file mode 100644
index 0000000..48b68ba
--- /dev/null
+++ b/productions/online_test_data/._Ds_mumupi_data_online.py
Binary files differ
diff --git a/productions/online_test_data/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/productions/online_test_data/.ipynb_checkpoints/Untitled-checkpoint.ipynb
new file mode 100644
index 0000000..2fd6442
--- /dev/null
+++ b/productions/online_test_data/.ipynb_checkpoints/Untitled-checkpoint.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/productions/online_test_data/Ds_eepi_data_online.py b/productions/online_test_data/Ds_eepi_data_online.py
new file mode 100644
index 0000000..2292590
--- /dev/null
+++ b/productions/online_test_data/Ds_eepi_data_online.py
@@ -0,0 +1,264 @@
+# -*- coding: utf-8 -*-
+# @Author: Marcin Chrzaszcz
+# @Date: 2016-08-27
+# @Last Modified by: Anna Lupato
+# @Last Modified time: 2016-09-28
+########################################################################
+from os import environ
+import math
+
+
+# use CommonParticlesArchive
+from CommonParticlesArchive import CommonParticlesArchiveConf
+CommonParticlesArchiveConf().redirect('stripping28')
+
+
+from Gaudi.Configuration import *
+#from GaudiPython import AppMgr
+from Configurables import DecayTreeTuple, BTaggingTool, SubstitutePID, TrackScaleState
+from Configurables import CombineParticles, FilterDesktop, TupleToolDecayTreeFitter, TupleToolDecay
+from Configurables import TupleToolTrigger, BackgroundCategory, TupleToolTISTOS, TupleToolRecoStats, TupleToolTagging
+from Configurables import DaVinci, HltSelReportsDecoder, HltVertexReportsDecoder, HltDecReportsDecoder, LoKi__Hybrid__TupleTool, TupleToolJets
+from DecayTreeTuple.Configuration import *
+from StrippingConf.Configuration import StrippingConf, StrippingStream
+from StrippingSettings.Utils import strippingConfiguration
+from StrippingArchive.Utils import buildStreams, cloneLinesFromStream
+from Configurables import CombineParticles
+from StrippingArchive import strippingArchive
+from Configurables import FilterInTrees
+from PhysSelPython.Wrappers import Selection, DataOnDemand, AutomaticData, SelectionSequence
+msgSvc = getConfigurable("MessageSvc")
+msgSvc.Format = "% F%60W%S%7W%R%T %0W%M"
+
+#try and match it with what is in main_opt.py
+
+trigger_list = [
+ 'L0MuonDecision',
+ 'L0ElectronDecision',
+ 'L0HadronDecision',
+ 'Hlt1TrackMVADecision',
+ 'Hlt1TrackMVALooseDecision',
+ 'Hlt2RareCharmD2PiMuMuOSDecision',
+ 'Hlt2RareCharmD2PiEEOSDecision',
+]
+
+#StdPions = DataOnDemand(Location = "Phys/StdAllLoosePions/Particles")
+
+particle_list = []
+
+#no need for a WS decay so get rid of it
+
+
+decay_OSee = "[D_s+ -> ^(phi(1020) -> ^e+ ^e-) ^pi+]CC"
+
+#decay_OSmumu = "[D+ -> ^pi+ ^mu+ ^mu-]CC"
+
+#for mc /Event/
+# find my own decay_tree_location using main_opt and make_decay_tree_tuples.py
+decay_tree_location_Dplus_electrons = 'Phys/D2XMuMuSS_Pi_EE_OSLine/Particles'
+#decay_tree_location_Dplus_muons = 'Phys/D2XMuMuSS_PiOSLine/Particles'
+
+#ACCESSING TO THE DECAY DAUGHTERS
+StrippingSel = AutomaticData(decay_tree_location_Dplus_electrons)
+
+
+electron_from_Ds = FilterInTrees('electron_from_Ds', Code="('e-' == ABSID)")
+electron_from_Ds_sel = Selection("electron_from_Ds_sel",
+ Algorithm=electron_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+electron_Filter = FilterDesktop('electron_Filter', Code="PPINFO(PROBNNe)>0.05")#
+electron_Filter_sel = Selection("Filtered_electron_sel",
+ Algorithm=electron_Filter,
+ RequiredSelections=[electron_from_Ds_sel])
+
+
+pion_from_Ds = FilterInTrees('pion_from_Ds', Code="('pi+' == ABSID)")
+pion_from_Ds_sel = Selection("pion_from_Ds_sel",
+ Algorithm=pion_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+pion_Filter = FilterDesktop('pionFilter', Code="PPINFO(PROBNNpi)>0.2")
+pion_Filter_sel = Selection("Filtered_pion_sel",
+ Algorithm=pion_Filter,
+ RequiredSelections=[pion_from_Ds_sel])
+
+
+#############################################################################
+#RECOMBINE THE LEPTONS TO A PHI
+
+
+phi = CombineParticles("phi")
+
+phi.DecayDescriptors = ["phi(1020) -> e+ e-"] #no cc here
+#phi.MotherCut = "ALL" #"(VFASPF(VCHI2/VDOF) < 6.0) " #leaving the chisquared cut
+phi.MotherCut = "BPVDIRA>0.999" #in order to cut uninteresting events from the data BPV = Best Primary Vertex
+
+
+phi_sel = Selection("phi_sel",
+ Algorithm=phi,
+ RequiredSelections=[electron_Filter_sel])
+
+############
+#Remake the Ds
+
+
+Ds = CombineParticles("D_s+")
+Ds.DecayDescriptors = ["[D_s+ -> phi(1020) pi+]cc"]
+Ds.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+Ds_sel = Selection("Ds_sel",
+ Algorithm=Ds,
+ RequiredSelections=[phi_sel, pion_Filter_sel]) #the order matters!! It makes sense to put the rarer decay first in order to
+ #save time -> put the most distinctive decay first
+
+Ds_phi_pi_sel_seq = SelectionSequence('Ds_phi_pi_selection_seq',
+ TopSelection=Ds_sel
+ )
+
+
+#############################################################################
+# Now WS:
+# Lb_SL_WS = CombineParticles("Lb_SL_WS")
+# Lb_SL_WS.DecayDescriptors = ["[Lambda_b0 -> Lambda_c(2595)+ mu+]cc"]
+# Lb_SL_WS.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+
+
+
+# Creating the DecayTreeTuple objects
+decay_trees = []
+
+#replace thedecays you're intereste in here
+Ds_OfflineTree = DecayTreeTuple("Ds_OfflineTree")
+Ds_OfflineTree.Inputs = Ds_phi_pi_sel_seq.outputLocations()
+Ds_OfflineTree.Decay = decay_OSee
+Ds_OfflineTree.addBranches({
+ "Ds":"[D_s+ -> phi(1020) pi+]CC",
+
+ "phi":"[D_s+ -> ^phi(1020) pi+]CC",
+ "pi":"[D_s+ -> phi(1020) ^pi+]CC",
+
+ "e_plus":"[D_s+ -> (phi(1020) -> ^e+ e-) pi+]CC",
+ "e_minus":"[D_s+ -> (phi(1020) -> e+ ^e-) pi+]CC",
+
+
+})
+
+
+Ds_OfflineTree.Ds.addTupleTool('TupleToolDecayTreeFitter/ConsD')
+
+#Ds_OfflineTree.Ds.ConsD.constrainToOriginVertex = True
+Ds_OfflineTree.Ds.ConsD.Verbose = True
+Ds_OfflineTree.Ds.ConsD.daughtersToConstrain = ['phi(1020)']
+Ds_OfflineTree.Ds.ConsD.UpdateDaughters = True
+
+decay_trees.append(Ds_OfflineTree)
+
+# Lb_SL_OfflineTree_WS = DecayTreeTuple("Lb_SL_OfflineTree_WS")
+# Lb_SL_OfflineTree_WS.Inputs = ["Phys/Lb_SL_WS/Particles"]
+# Lb_SL_OfflineTree_WS.Decay = decay0_WS
+# Lb_SL_OfflineTree_WS.addBranches({
+# "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) ^mu+ ]CC",
+# "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_plus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+ pi-) mu+ ]CC",
+# "pi_minus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ ^pi-) mu+ ]CC",
+# "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+ pi-) mu+ ]CC",
+# "K": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+ pi-) mu+ ]CC"
+# })
+# decay_trees.append(Lb_SL_OfflineTree_WS)
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Double charm tree
+
+
+
+
+from Configurables import TupleToolNeutrinoReco
+from Configurables import TupleToolKinematic
+from Configurables import TupleToolGeometry
+from Configurables import TupleToolTrackIsolation
+from Configurables import TupleToolANNPID
+# from Configurables import Rich__Rec__DetailedTrSegMakerFromRecoTracks
+# from Configurables import TupleToolRICHPid
+#from Configurables import TupleToolApplyIsolation
+
+#from Configurables import TupleToolSLTools
+
+for DTT in decay_trees:
+ DTT.ToolList = [
+ "TupleToolKinematic",
+ "TupleToolGeometry",
+ "TupleToolTrackInfo",
+ "TupleToolEventInfo",
+ "TupleToolRecoStats",
+ "TupleToolANNPID",
+ "TupleToolPid",
+ # "TupleToolMCTruth",
+ # 'TupleToolTrigger',
+ # 'TupleToolTISTOS',
+ # 'TupleToolRICHPid',
+ ]
+ # DTT.pi_plus.addTool(TupleToolANNPID,name='TupleToolANNPID')
+ # DTT.pi_plus.ToolList+=['TupleToolANNPID']
+ # DTT.pi_plus.TupleToolANNPID.ANNPIDTunes = ['MC15TuneV1','MC15TuneDNNV1','MC15TuneFLAT4dV1','MC15TuneCatBoostV1']
+ # print 'PID tunes',DTT.pi_plus.TupleToolANNPID.ANNPIDTunes
+ DTT.Ds.addTool(TupleToolTrigger, name='TupleToolTrigger')
+ DTT.Ds.TupleToolTrigger.Verbose = True
+ DTT.Ds.TupleToolTrigger.TriggerList = trigger_list
+ DTT.Ds.addTool(TupleToolTISTOS, name='TupleToolTISTOS')
+ DTT.Ds.TupleToolTISTOS.Verbose = True
+ DTT.Ds.TupleToolTISTOS.TriggerList = trigger_list
+ DTT.Ds.ToolList += ["TupleToolTISTOS"]
+ #DTT.Lambda_b0.addTool(TupleToolSLTools, name='TupleToolSLTools')
+ #DTT.Lambda_b0.ToolList += ["TupleToolSLTools"]
+
+# Isolation from the R(D*) SL analysis
+#for DTT in decay_trees:
+
+ #toolIso = DTT.Lambda_b0.addTupleTool(
+ # TupleToolApplyIsolation, name="TupleToolApplyIsolation")
+ #toolIso.WeightsFile = "weights.xml"
+ #DTT.Lambda_b0.ToolList += ["TupleToolApplyIsolation/TupleToolApplyIsolation"]
+
+# Isolation from the R(D*) SL analysis (adding VELO tracks)
+# from Configurables import ChargedProtoParticleMaker
+# veloprotos = ChargedProtoParticleMaker("myProtoPMaker")
+# veloprotos.Inputs = ["Rec/Track/Best"]
+# veloprotos.Output = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# DaVinci().appendToMainSequence([veloprotos])
+from Configurables import ProtoParticleCALOFilter, CombinedParticleMaker, NoPIDsParticleMaker
+from CommonParticles.Utils import *
+# algorithm = NoPIDsParticleMaker('StdNoPIDsVeloPions', Particle='pion',)
+# algorithm.Input = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# selector = trackSelector(algorithm, trackTypes=['Velo'])
+# locations = updateDoD(algorithm)
+# DaVinci().appendToMainSequence([algorithm])
+from PhysConf.Filters import LoKi_Filters
+# fltrs = LoKi_Filters(
+# STRIP_Code = "HLT_PASS('Strippingb2LcMuXB2DMuForTauMuLineDecision')")
+##################################################
+from Configurables import DaVinci
+# DaVinci().EventPreFilters = fltrs.filters('Filters')
+DaVinci().EvtMax = -1 # 200 # Number of events
+DaVinci().SkipEvents = 0 # Events to skip
+DaVinci().PrintFreq = 10000
+DaVinci().Simulation = False
+DaVinci().Lumi = True
+DaVinci().RootInTES = '/Event/Charm'
+DaVinci().InputType = 'MDST'
+#DaVinci().appendToMainSequence([muons_from_Lc_sel_seq.sequence(),
+# muons_from_Lc_sel_WC_seq.sequence()])
+DaVinci().appendToMainSequence([Ds_phi_pi_sel_seq.sequence()])
+DaVinci().appendToMainSequence(decay_trees)
+
+#DaVinci().UserAlgorithms.extend(decay_trees)
+
+DaVinci().TupleFile = "Ds_eepi.root"
+#DaVinci().Input = ['PFN:/disk/data12/lhcb/davide/Rphipi/00070442_00006584_1.charm.mdst']
+
+
+DaVinci().DataType = "2016"
diff --git a/productions/online_test_data/Ds_mumupi_data_online.py b/productions/online_test_data/Ds_mumupi_data_online.py
new file mode 100644
index 0000000..e1db977
--- /dev/null
+++ b/productions/online_test_data/Ds_mumupi_data_online.py
@@ -0,0 +1,262 @@
+# -*- coding: utf-8 -*-
+# @Author: Marcin Chrzaszcz
+# @Date: 2016-08-27
+# @Last Modified by: Anna Lupato
+# @Last Modified time: 2016-09-28
+########################################################################
+from os import environ
+import math
+
+
+# use CommonParticlesArchive
+from CommonParticlesArchive import CommonParticlesArchiveConf
+CommonParticlesArchiveConf().redirect('stripping28')
+
+
+from Gaudi.Configuration import *
+#from GaudiPython import AppMgr
+from Configurables import DecayTreeTuple, BTaggingTool, SubstitutePID, TrackScaleState
+from Configurables import CombineParticles, FilterDesktop, TupleToolDecayTreeFitter, TupleToolDecay
+from Configurables import TupleToolTrigger, BackgroundCategory, TupleToolTISTOS, TupleToolRecoStats, TupleToolTagging
+from Configurables import DaVinci, HltSelReportsDecoder, HltVertexReportsDecoder, HltDecReportsDecoder, LoKi__Hybrid__TupleTool, TupleToolJets
+from DecayTreeTuple.Configuration import *
+from StrippingConf.Configuration import StrippingConf, StrippingStream
+from StrippingSettings.Utils import strippingConfiguration
+from StrippingArchive.Utils import buildStreams, cloneLinesFromStream
+from Configurables import CombineParticles
+from StrippingArchive import strippingArchive
+from Configurables import FilterInTrees
+from PhysSelPython.Wrappers import Selection, DataOnDemand, AutomaticData, SelectionSequence
+msgSvc = getConfigurable("MessageSvc")
+msgSvc.Format = "% F%60W%S%7W%R%T %0W%M"
+
+#try and match it with what is in main_opt.py
+
+trigger_list = [
+ 'L0MuonDecision',
+ 'L0ElectronDecision',
+ 'L0HadronDecision',
+ 'Hlt1TrackMVADecision',
+ 'Hlt1TrackMVALooseDecision',
+ 'Hlt2RareCharmD2PiMuMuOSDecision',
+ 'Hlt2RareCharmD2PiEEOSDecision',
+]
+
+#StdPions = DataOnDemand(Location = "Phys/StdAllLoosePions/Particles")
+
+particle_list = []
+
+#no need for a WS decay so get rid of it
+
+
+decay_OSmumu = "[D_s+ -> ^(phi(1020) -> ^mu+ ^mu-) ^pi+]CC"
+#decay_OSmumu = "[D+ -> ^pi+ ^mu+ ^mu-]CC"
+
+
+decay_tree_location_Dplus_muons = 'Phys/D2XMuMuSS_PiOSLine/Particles'
+
+
+StrippingSel = AutomaticData(decay_tree_location_Dplus_muons)
+#ACCESSING TO THE DECAY DAUGHTERS
+
+muon_from_Ds = FilterInTrees('muon_from_Ds', Code="('mu-' == ABSID)")
+muon_from_Ds_sel = Selection("muon_from_Ds_sel",
+ Algorithm=muon_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+#muon_Filter = FilterDesktop('muon_Filter', Code="ALL")
+#aplying cuts to the muons prob NN in order to filter out background events
+muon_Filter = FilterDesktop('muon_Filter', Code="PPINFO(PROBNNmu)>0.1")
+muon_Filter_sel = Selection("Filtered_muon_sel",
+ Algorithm=muon_Filter,
+ RequiredSelections=[muon_from_Ds_sel])
+
+
+pion_from_Ds = FilterInTrees('pion_from_Ds', Code="('pi+' == ABSID)")
+pion_from_Ds_sel = Selection("pion_from_Ds_sel",
+ Algorithm=pion_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+# pion_Filter = FilterDesktop('pionFilter', Code="ALL")
+pion_Filter = FilterDesktop('pionFilter', Code="PPINFO(PROBNNpi)>0.2")
+
+pion_Filter_sel = Selection("Filtered_pion_sel",
+ Algorithm=pion_Filter,
+ RequiredSelections=[pion_from_Ds_sel])
+
+
+#############################################################################
+#RECOMBINE THE LEPTONS TO A PHI
+
+
+phi = CombineParticles("phi")
+
+phi.DecayDescriptors = ["phi(1020) -> mu+ mu-"] #no cc here
+#phi.MotherCut = "ALL" #"(VFASPF(VCHI2/VDOF) < 6.0) " #leaving the chisquared cut
+phi.MotherCut = "BPVDIRA>0.999" #in order to cut uninteresting events from the data BPV = Best Primary Vertex
+
+
+phi_sel = Selection("phi_sel",
+ Algorithm=phi,
+ RequiredSelections=[muon_Filter_sel])
+
+############
+#Remake the Ds
+
+
+Ds = CombineParticles("D_s+")
+Ds.DecayDescriptors = ["[D_s+ -> phi(1020) pi+]cc"]
+Ds.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+Ds_sel = Selection("Ds_sel",
+ Algorithm=Ds,
+ RequiredSelections=[phi_sel, pion_Filter_sel]) #the order matters!! It makes sense to put the rarer decay first in order to
+ #save time -> put the most distinctive decay first
+
+Ds_phi_pi_sel_seq = SelectionSequence('Ds_phi_pi_selection_seq',
+ TopSelection=Ds_sel
+ )
+#############################################################################
+# Now WS:
+# Lb_SL_WS = CombineParticles("Lb_SL_WS")
+# Lb_SL_WS.DecayDescriptors = ["[Lambda_b0 -> Lambda_c(2595)+ mu+]cc"]
+# Lb_SL_WS.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+
+
+
+# Creating the DecayTreeTuple objects
+decay_trees = []
+
+#replace thedecays you're intereste in here
+Ds_OfflineTree = DecayTreeTuple("Ds_OfflineTree")
+Ds_OfflineTree.Inputs = Ds_phi_pi_sel_seq.outputLocations()
+Ds_OfflineTree.Decay = decay_OSmumu
+Ds_OfflineTree.addBranches({
+ "Ds":"[D_s+ -> phi(1020) pi+]CC",
+
+ "phi":"[D_s+ -> ^phi(1020) pi+]CC",
+ "pi":"[D_s+ -> phi(1020) ^pi+]CC",
+
+ "mu_plus":"[D_s+ -> (phi(1020) -> ^mu+ mu-) pi+]CC",
+ "mu_minus":"[D_s+ -> (phi(1020) -> mu+ ^mu-) pi+]CC",
+
+
+})
+
+Ds_OfflineTree.Ds.addTupleTool('TupleToolDecayTreeFitter/ConsD')
+
+#Ds_OfflineTree.Ds.ConsD.constrainToOriginVertex = True
+Ds_OfflineTree.Ds.ConsD.Verbose = True
+Ds_OfflineTree.Ds.ConsD.daughtersToConstrain = ['phi(1020)']
+Ds_OfflineTree.Ds.ConsD.UpdateDaughters = True
+
+decay_trees.append(Ds_OfflineTree)
+
+# Lb_SL_OfflineTree_WS = DecayTreeTuple("Lb_SL_OfflineTree_WS")
+# Lb_SL_OfflineTree_WS.Inputs = ["Phys/Lb_SL_WS/Particles"]
+# Lb_SL_OfflineTree_WS.Decay = decay0_WS
+# Lb_SL_OfflineTree_WS.addBranches({
+# "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) ^mu+ ]CC",
+# "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_plus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+ pi-) mu+ ]CC",
+# "pi_minus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ ^pi-) mu+ ]CC",
+# "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+ pi-) mu+ ]CC",
+# "K": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+ pi-) mu+ ]CC"
+# })
+# decay_trees.append(Lb_SL_OfflineTree_WS)
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Double charm tree
+
+
+
+
+from Configurables import TupleToolNeutrinoReco
+from Configurables import TupleToolKinematic
+from Configurables import TupleToolGeometry
+from Configurables import TupleToolTrackIsolation
+from Configurables import TupleToolANNPID
+# from Configurables import Rich__Rec__DetailedTrSegMakerFromRecoTracks
+# from Configurables import TupleToolRICHPid
+#from Configurables import TupleToolApplyIsolation
+
+#from Configurables import TupleToolSLTools
+
+for DTT in decay_trees:
+ DTT.ToolList = [
+ "TupleToolKinematic",
+ "TupleToolGeometry",
+ "TupleToolTrackInfo",
+ "TupleToolEventInfo",
+ "TupleToolRecoStats",
+ "TupleToolANNPID",
+ "TupleToolPid",
+ # "TupleToolMCTruth",
+ # 'TupleToolTrigger',
+ # 'TupleToolTISTOS',
+ # 'TupleToolRICHPid',
+ ]
+ # DTT.pi_plus.addTool(TupleToolANNPID,name='TupleToolANNPID')
+ # DTT.pi_plus.ToolList+=['TupleToolANNPID']
+ # DTT.pi_plus.TupleToolANNPID.ANNPIDTunes = ['MC15TuneV1','MC15TuneDNNV1','MC15TuneFLAT4dV1','MC15TuneCatBoostV1']
+ # print 'PID tunes',DTT.pi_plus.TupleToolANNPID.ANNPIDTunes
+ DTT.Ds.addTool(TupleToolTrigger, name='TupleToolTrigger')
+ DTT.Ds.TupleToolTrigger.Verbose = True
+ DTT.Ds.TupleToolTrigger.TriggerList = trigger_list
+ DTT.Ds.addTool(TupleToolTISTOS, name='TupleToolTISTOS')
+ DTT.Ds.TupleToolTISTOS.Verbose = True
+ DTT.Ds.TupleToolTISTOS.TriggerList = trigger_list
+ DTT.Ds.ToolList += ["TupleToolTISTOS"]
+ #DTT.Lambda_b0.addTool(TupleToolSLTools, name='TupleToolSLTools')
+ #DTT.Lambda_b0.ToolList += ["TupleToolSLTools"]
+
+# Isolation from the R(D*) SL analysis
+#for DTT in decay_trees:
+
+ #toolIso = DTT.Lambda_b0.addTupleTool(
+ # TupleToolApplyIsolation, name="TupleToolApplyIsolation")
+ #toolIso.WeightsFile = "weights.xml"
+ #DTT.Lambda_b0.ToolList += ["TupleToolApplyIsolation/TupleToolApplyIsolation"]
+
+# Isolation from the R(D*) SL analysis (adding VELO tracks)
+# from Configurables import ChargedProtoParticleMaker
+# veloprotos = ChargedProtoParticleMaker("myProtoPMaker")
+# veloprotos.Inputs = ["Rec/Track/Best"]
+# veloprotos.Output = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# DaVinci().appendToMainSequence([veloprotos])
+from Configurables import ProtoParticleCALOFilter, CombinedParticleMaker, NoPIDsParticleMaker
+from CommonParticles.Utils import *
+# algorithm = NoPIDsParticleMaker('StdNoPIDsVeloPions', Particle='pion',)
+# algorithm.Input = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# selector = trackSelector(algorithm, trackTypes=['Velo'])
+# locations = updateDoD(algorithm)
+# DaVinci().appendToMainSequence([algorithm])
+from PhysConf.Filters import LoKi_Filters
+# fltrs = LoKi_Filters(
+# STRIP_Code = "HLT_PASS('Strippingb2LcMuXB2DMuForTauMuLineDecision')")
+##################################################
+from Configurables import DaVinci
+# DaVinci().EventPreFilters = fltrs.filters('Filters')
+DaVinci().EvtMax = -1 # # Number of events set to all of them
+DaVinci().SkipEvents = 0 # Events to skip
+DaVinci().PrintFreq = 10000
+DaVinci().Simulation = False
+DaVinci().Lumi = True
+DaVinci().RootInTES = '/Event/Charm'
+DaVinci().InputType = 'MDST'
+#DaVinci().appendToMainSequence([muons_from_Lc_sel_seq.sequence(),
+# muons_from_Lc_sel_WC_seq.sequence()])
+DaVinci().appendToMainSequence([Ds_phi_pi_sel_seq.sequence()])
+DaVinci().appendToMainSequence(decay_trees)
+
+#DaVinci().UserAlgorithms.extend(decay_trees)
+
+DaVinci().TupleFile = "Ds_mumupi.root"
+#DaVinci().Input = ['PFN:/disk/data12/lhcb/davide/Rphipi/00070442_00006584_1.charm.mdst']
+#remove this for the grid and specify in ganga j.inputdata
+
+DaVinci().DataType = "2016"
diff --git a/productions/online_test_mc/._Ds_eepi_mc_online.py b/productions/online_test_mc/._Ds_eepi_mc_online.py
new file mode 100644
index 0000000..54d42c5
--- /dev/null
+++ b/productions/online_test_mc/._Ds_eepi_mc_online.py
Binary files differ
diff --git a/productions/online_test_mc/._Ds_mumupi_mc_online.py b/productions/online_test_mc/._Ds_mumupi_mc_online.py
new file mode 100644
index 0000000..7894309
--- /dev/null
+++ b/productions/online_test_mc/._Ds_mumupi_mc_online.py
Binary files differ
diff --git a/productions/online_test_mc/.bender_history b/productions/online_test_mc/.bender_history
new file mode 100644
index 0000000..975fbec
--- /dev/null
+++ b/productions/online_test_mc/.bender_history
@@ -0,0 +1 @@
+y
diff --git a/productions/online_test_mc/Ds_eepi_mc_online.py b/productions/online_test_mc/Ds_eepi_mc_online.py
new file mode 100644
index 0000000..abea48c
--- /dev/null
+++ b/productions/online_test_mc/Ds_eepi_mc_online.py
@@ -0,0 +1,265 @@
+# -*- coding: utf-8 -*-
+# @Author: Marcin Chrzaszcz
+# @Date: 2016-08-27
+# @Last Modified by: Anna Lupato
+# @Last Modified time: 2016-09-28
+########################################################################
+from os import environ
+import math
+
+
+# use CommonParticlesArchive
+from CommonParticlesArchive import CommonParticlesArchiveConf
+CommonParticlesArchiveConf().redirect('stripping28')
+
+
+from Gaudi.Configuration import *
+#from GaudiPython import AppMgr
+from Configurables import DecayTreeTuple, BTaggingTool, SubstitutePID, TrackScaleState
+from Configurables import CombineParticles, FilterDesktop, TupleToolDecayTreeFitter, TupleToolDecay
+from Configurables import TupleToolTrigger, BackgroundCategory, TupleToolTISTOS, TupleToolRecoStats, TupleToolTagging
+from Configurables import DaVinci, HltSelReportsDecoder, HltVertexReportsDecoder, HltDecReportsDecoder, LoKi__Hybrid__TupleTool, TupleToolJets
+from DecayTreeTuple.Configuration import *
+from StrippingConf.Configuration import StrippingConf, StrippingStream
+from StrippingSettings.Utils import strippingConfiguration
+from StrippingArchive.Utils import buildStreams, cloneLinesFromStream
+from Configurables import CombineParticles
+from StrippingArchive import strippingArchive
+from Configurables import FilterInTrees
+from PhysSelPython.Wrappers import Selection, DataOnDemand, AutomaticData, SelectionSequence
+msgSvc = getConfigurable("MessageSvc")
+msgSvc.Format = "% F%60W%S%7W%R%T %0W%M"
+
+#try and match it with what is in main_opt.py
+
+trigger_list = [
+ 'L0MuonDecision',
+ 'L0ElectronDecision',
+ 'L0HadronDecision',
+ 'Hlt1TrackMVADecision',
+ 'Hlt1TrackMVALooseDecision',
+ 'Hlt2RareCharmD2PiMuMuOSDecision',
+ 'Hlt2RareCharmD2PiEEOSDecision',
+]
+
+#StdPions = DataOnDemand(Location = "Phys/StdAllLoosePions/Particles")
+
+particle_list = []
+
+#no need for a WS decay so get rid of it
+
+
+decay_OSee = "[D_s+ -> ^(phi(1020) -> ^e+ ^e-) ^pi+]CC"
+#decay_OSmumu = "[D+ -> ^pi+ ^mu+ ^mu-]CC"
+
+
+#decay_tree_location_Dplus_muons = 'Phys/D2XMuMuSS_PiOSLine/Particles'
+decay_tree_location_Dplus_electrons = 'Phys/D2XMuMuSS_Pi_EE_OSLine/Particles'
+
+
+#ACCESSING TO THE DECAY DAUGHTERS
+StrippingSel = AutomaticData(decay_tree_location_Dplus_electrons)
+
+
+electron_from_Ds = FilterInTrees('electron_from_Ds', Code="('e-' == ABSID)")
+electron_from_Ds_sel = Selection("electron_from_Ds_sel",
+ Algorithm=electron_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+electron_Filter = FilterDesktop('electron_Filter', Code="PPINFO(PROBNNe)>0.05")#
+electron_Filter_sel = Selection("Filtered_electron_sel",
+ Algorithm=electron_Filter,
+ RequiredSelections=[electron_from_Ds_sel])
+
+
+pion_from_Ds = FilterInTrees('pion_from_Ds', Code="('pi+' == ABSID)")
+pion_from_Ds_sel = Selection("pion_from_Ds_sel",
+ Algorithm=pion_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+pion_Filter = FilterDesktop('pionFilter', Code="PPINFO(PROBNNpi)>0.2")
+pion_Filter_sel = Selection("Filtered_pion_sel",
+ Algorithm=pion_Filter,
+ RequiredSelections=[pion_from_Ds_sel])
+
+
+#############################################################################
+#RECOMBINE THE LEPTONS TO A PHI
+
+
+phi = CombineParticles("phi")
+
+phi.DecayDescriptors = ["phi(1020) -> e+ e-"] #no cc here
+#phi.MotherCut = "ALL" #"(VFASPF(VCHI2/VDOF) < 6.0) " #leaving the chisquared cut
+phi.MotherCut = "BPVDIRA>0.999" #in order to cut uninteresting events from the data BPV = Best Primary Vertex
+
+
+phi_sel = Selection("phi_sel",
+ Algorithm=phi,
+ RequiredSelections=[electron_Filter_sel])
+
+############
+#Remake the Ds
+
+
+Ds = CombineParticles("D_s+")
+Ds.DecayDescriptors = ["[D_s+ -> phi(1020) pi+]cc"]
+Ds.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+Ds_sel = Selection("Ds_sel",
+ Algorithm=Ds,
+ RequiredSelections=[phi_sel, pion_Filter_sel]) #the order matters!! It makes sense to put the rarer decay first in order to
+ #save time -> put the most distinctive decay first
+
+Ds_phi_pi_sel_seq = SelectionSequence('Ds_phi_pi_selection_seq',
+ TopSelection=Ds_sel
+ )
+
+
+#############################################################################
+# Now WS:
+# Lb_SL_WS = CombineParticles("Lb_SL_WS")
+# Lb_SL_WS.DecayDescriptors = ["[Lambda_b0 -> Lambda_c(2595)+ mu+]cc"]
+# Lb_SL_WS.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+
+
+
+# Creating the DecayTreeTuple objects
+decay_trees = []
+
+#replace thedecays you're intereste in here
+Ds_OfflineTree = DecayTreeTuple("Ds_OfflineTree")
+Ds_OfflineTree.Inputs = Ds_phi_pi_sel_seq.outputLocations()
+Ds_OfflineTree.Decay = decay_OSee
+Ds_OfflineTree.addBranches({
+ "Ds":"[D_s+ -> phi(1020) pi+]CC",
+
+ "phi":"[D_s+ -> ^phi(1020) pi+]CC",
+ "pi":"[D_s+ -> phi(1020) ^pi+]CC",
+
+ "e_plus":"[D_s+ -> (phi(1020) -> ^e+ e-) pi+]CC",
+ "e_minus":"[D_s+ -> (phi(1020) -> e+ ^e-) pi+]CC",
+
+
+})
+
+Ds_OfflineTree.Ds.addTupleTool('TupleToolDecayTreeFitter/ConsD')
+
+#Ds_OfflineTree.Ds.ConsD.constrainToOriginVertex = True
+Ds_OfflineTree.Ds.ConsD.Verbose = True
+Ds_OfflineTree.Ds.ConsD.daughtersToConstrain = ['phi(1020)']
+Ds_OfflineTree.Ds.ConsD.UpdateDaughters = True
+
+decay_trees.append(Ds_OfflineTree)
+
+# Lb_SL_OfflineTree_WS = DecayTreeTuple("Lb_SL_OfflineTree_WS")
+# Lb_SL_OfflineTree_WS.Inputs = ["Phys/Lb_SL_WS/Particles"]
+# Lb_SL_OfflineTree_WS.Decay = decay0_WS
+# Lb_SL_OfflineTree_WS.addBranches({
+# "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) ^mu+ ]CC",
+# "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_plus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+ pi-) mu+ ]CC",
+# "pi_minus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ ^pi-) mu+ ]CC",
+# "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+ pi-) mu+ ]CC",
+# "K": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+ pi-) mu+ ]CC"
+# })
+# decay_trees.append(Lb_SL_OfflineTree_WS)
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Double charm tree
+
+
+
+
+from Configurables import TupleToolNeutrinoReco
+from Configurables import TupleToolKinematic
+from Configurables import TupleToolGeometry
+from Configurables import TupleToolTrackIsolation
+from Configurables import TupleToolANNPID
+# from Configurables import Rich__Rec__DetailedTrSegMakerFromRecoTracks
+# from Configurables import TupleToolRICHPid
+#from Configurables import TupleToolApplyIsolation
+
+#from Configurables import TupleToolSLTools
+
+for DTT in decay_trees:
+ DTT.ToolList = [
+ "TupleToolKinematic",
+ "TupleToolGeometry",
+ "TupleToolTrackInfo",
+ "TupleToolEventInfo",
+ "TupleToolRecoStats",
+ "TupleToolANNPID",
+ "TupleToolPid",
+ # "TupleToolMCTruth",
+ # 'TupleToolTrigger',
+ # 'TupleToolTISTOS',
+ # 'TupleToolRICHPid',
+ ]
+ # DTT.pi_plus.addTool(TupleToolANNPID,name='TupleToolANNPID')
+ # DTT.pi_plus.ToolList+=['TupleToolANNPID']
+ # DTT.pi_plus.TupleToolANNPID.ANNPIDTunes = ['MC15TuneV1','MC15TuneDNNV1','MC15TuneFLAT4dV1','MC15TuneCatBoostV1']
+ # print 'PID tunes',DTT.pi_plus.TupleToolANNPID.ANNPIDTunes
+ DTT.Ds.addTool(TupleToolTrigger, name='TupleToolTrigger')
+ DTT.Ds.TupleToolTrigger.Verbose = True
+ DTT.Ds.TupleToolTrigger.TriggerList = trigger_list
+ DTT.Ds.addTool(TupleToolTISTOS, name='TupleToolTISTOS')
+ DTT.Ds.TupleToolTISTOS.Verbose = True
+ DTT.Ds.TupleToolTISTOS.TriggerList = trigger_list
+ DTT.Ds.ToolList += ["TupleToolTISTOS"]
+ #DTT.Lambda_b0.addTool(TupleToolSLTools, name='TupleToolSLTools')
+ #DTT.Lambda_b0.ToolList += ["TupleToolSLTools"]
+
+# Isolation from the R(D*) SL analysis
+#for DTT in decay_trees:
+
+ #toolIso = DTT.Lambda_b0.addTupleTool(
+ # TupleToolApplyIsolation, name="TupleToolApplyIsolation")
+ #toolIso.WeightsFile = "weights.xml"
+ #DTT.Lambda_b0.ToolList += ["TupleToolApplyIsolation/TupleToolApplyIsolation"]
+
+# Isolation from the R(D*) SL analysis (adding VELO tracks)
+# from Configurables import ChargedProtoParticleMaker
+# veloprotos = ChargedProtoParticleMaker("myProtoPMaker")
+# veloprotos.Inputs = ["Rec/Track/Best"]
+# veloprotos.Output = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# DaVinci().appendToMainSequence([veloprotos])
+from Configurables import ProtoParticleCALOFilter, CombinedParticleMaker, NoPIDsParticleMaker
+from CommonParticles.Utils import *
+# algorithm = NoPIDsParticleMaker('StdNoPIDsVeloPions', Particle='pion',)
+# algorithm.Input = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# selector = trackSelector(algorithm, trackTypes=['Velo'])
+# locations = updateDoD(algorithm)
+# DaVinci().appendToMainSequence([algorithm])
+from PhysConf.Filters import LoKi_Filters
+# fltrs = LoKi_Filters(
+# STRIP_Code = "HLT_PASS('Strippingb2LcMuXB2DMuForTauMuLineDecision')")
+##################################################
+from Configurables import DaVinci
+# DaVinci().EventPreFilters = fltrs.filters('Filters')
+DaVinci().EvtMax = -1 # 200 # Number of events
+DaVinci().SkipEvents = 0 # Events to skip
+DaVinci().PrintFreq = 10000
+DaVinci().Simulation = True
+DaVinci().Lumi = True
+DaVinci().RootInTES = '/Event/AllStreams'
+DaVinci().InputType = 'MDST'
+#DaVinci().appendToMainSequence([muons_from_Lc_sel_seq.sequence(),
+# muons_from_Lc_sel_WC_seq.sequence()])
+DaVinci().appendToMainSequence([Ds_phi_pi_sel_seq.sequence()])
+DaVinci().appendToMainSequence(decay_trees)
+
+DaVinci().DDDBtag= "dddb-20170721-3"
+DaVinci().CondDBtag= "sim-20170721-2-vc-md100"
+
+#DaVinci().UserAlgorithms.extend(decay_trees)
+
+DaVinci().TupleFile = "Ds_eepi.root"
+#DaVinci().Input = ['PFN:/disk/gangadir/davide/workspace/davide/00071955_00000002_7.AllStreams.mdst']
+
+
+DaVinci().DataType = "2016"
diff --git a/productions/online_test_mc/Ds_mumupi_mc_online.py b/productions/online_test_mc/Ds_mumupi_mc_online.py
new file mode 100644
index 0000000..a894ae5
--- /dev/null
+++ b/productions/online_test_mc/Ds_mumupi_mc_online.py
@@ -0,0 +1,263 @@
+# -*- coding: utf-8 -*-
+# @Author: Marcin Chrzaszcz
+# @Date: 2016-08-27
+# @Last Modified by: Anna Lupato
+# @Last Modified time: 2016-09-28
+########################################################################
+from os import environ
+import math
+
+
+# use CommonParticlesArchive
+from CommonParticlesArchive import CommonParticlesArchiveConf
+CommonParticlesArchiveConf().redirect('stripping28')
+
+
+from Gaudi.Configuration import *
+#from GaudiPython import AppMgr
+from Configurables import DecayTreeTuple, BTaggingTool, SubstitutePID, TrackScaleState
+from Configurables import CombineParticles, FilterDesktop, TupleToolDecayTreeFitter, TupleToolDecay
+from Configurables import TupleToolTrigger, BackgroundCategory, TupleToolTISTOS, TupleToolRecoStats, TupleToolTagging
+from Configurables import DaVinci, HltSelReportsDecoder, HltVertexReportsDecoder, HltDecReportsDecoder, LoKi__Hybrid__TupleTool, TupleToolJets
+from DecayTreeTuple.Configuration import *
+from StrippingConf.Configuration import StrippingConf, StrippingStream
+from StrippingSettings.Utils import strippingConfiguration
+from StrippingArchive.Utils import buildStreams, cloneLinesFromStream
+from Configurables import CombineParticles
+from StrippingArchive import strippingArchive
+from Configurables import FilterInTrees
+from PhysSelPython.Wrappers import Selection, DataOnDemand, AutomaticData, SelectionSequence
+msgSvc = getConfigurable("MessageSvc")
+msgSvc.Format = "% F%60W%S%7W%R%T %0W%M"
+
+#try and match it with what is in main_opt.py
+
+trigger_list = [
+ 'L0MuonDecision',
+ 'L0ElectronDecision',
+ 'L0HadronDecision',
+ 'Hlt1TrackMVADecision',
+ 'Hlt1TrackMVALooseDecision',
+ 'Hlt2RareCharmD2PiMuMuOSDecision',
+ 'Hlt2RareCharmD2PiEEOSDecision',
+]
+
+#StdPions = DataOnDemand(Location = "Phys/StdAllLoosePions/Particles")
+
+particle_list = []
+
+#no need for a WS decay so get rid of it
+
+
+decay_OSmumu = "[D_s+ -> ^(phi(1020) -> ^mu+ ^mu-) ^pi+]CC"
+#decay_OSmumu = "[D+ -> ^pi+ ^mu+ ^mu-]CC"
+
+
+#decay_tree_location_Dplus_electrons = 'Phys/D2XMuMuSS_Pi_EE_OSLine/Particles'
+decay_tree_location_Dplus_muons = 'Phys/D2XMuMuSS_PiOSLine/Particles'
+
+#ACCESSING TO THE DECAY DAUGHTERS
+StrippingSel = AutomaticData(decay_tree_location_Dplus_muons)
+
+muon_from_Ds = FilterInTrees('muon_from_Ds', Code="('mu-' == ABSID)")
+muon_from_Ds_sel = Selection("muon_from_Ds_sel",
+ Algorithm=muon_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+#muon_Filter = FilterDesktop('muon_Filter', Code="ALL")
+#aplying cuts to the muons prob NN in order to filter out background events
+muon_Filter = FilterDesktop('muon_Filter', Code="PPINFO(PROBNNmu)>0.1")
+
+muon_Filter_sel = Selection("Filtered_muon_sel",
+ Algorithm=muon_Filter,
+ RequiredSelections=[muon_from_Ds_sel])
+
+
+pion_from_Ds = FilterInTrees('pion_from_Ds', Code="('pi+' == ABSID)")
+pion_from_Ds_sel = Selection("pion_from_Ds_sel",
+ Algorithm=pion_from_Ds,
+ RequiredSelections=[StrippingSel])
+
+# pion_Filter = FilterDesktop('pionFilter', Code="ALL")
+pion_Filter = FilterDesktop('pionFilter', Code="PPINFO(PROBNNpi)>0.2")
+pion_Filter_sel = Selection("Filtered_pion_sel",
+ Algorithm=pion_Filter,
+ RequiredSelections=[pion_from_Ds_sel])
+
+
+#############################################################################
+#RECOMBINE THE LEPTONS TO A PHI
+
+
+phi = CombineParticles("phi")
+
+phi.DecayDescriptors = ["phi(1020) -> mu+ mu-"] #no cc here
+#phi.MotherCut = "ALL" #"(VFASPF(VCHI2/VDOF) < 6.0) " #leaving the chisquared cut
+phi.MotherCut = "BPVDIRA>0.999" #in order to cut uninteresting events from the data BPV = Best Primary Vertex
+
+
+phi_sel = Selection("phi_sel",
+ Algorithm=phi,
+ RequiredSelections=[muon_Filter_sel])
+
+############
+#Remake the Ds
+
+
+Ds = CombineParticles("D_s+")
+Ds.DecayDescriptors = ["[D_s+ -> phi(1020) pi+]cc"]
+Ds.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+Ds_sel = Selection("Ds_sel",
+ Algorithm=Ds,
+ RequiredSelections=[phi_sel, pion_Filter_sel]) #the order matters!! It makes sense to put the rarer decay first in order to
+ #save time -> put the most distinctive decay first
+
+Ds_phi_pi_sel_seq = SelectionSequence('Ds_phi_pi_selection_seq',
+ TopSelection=Ds_sel
+ )
+#############################################################################
+# Now WS:
+# Lb_SL_WS = CombineParticles("Lb_SL_WS")
+# Lb_SL_WS.DecayDescriptors = ["[Lambda_b0 -> Lambda_c(2595)+ mu+]cc"]
+# Lb_SL_WS.MotherCut = "(M<6500) & (VFASPF(VCHI2/VDOF) < 6.0) & (BPVDIRA>0.999)"
+
+
+
+# Creating the DecayTreeTuple objects
+decay_trees = []
+
+#replace thedecays you're intereste in here
+Ds_OfflineTree = DecayTreeTuple("Ds_OfflineTree")
+Ds_OfflineTree.Inputs = Ds_phi_pi_sel_seq.outputLocations()
+Ds_OfflineTree.Decay = decay_OSmumu
+Ds_OfflineTree.addBranches({
+ "Ds":"[D_s+ -> phi(1020) pi+]CC",
+
+ "phi":"[D_s+ -> ^phi(1020) pi+]CC",
+ "pi":"[D_s+ -> phi(1020) ^pi+]CC",
+
+ "mu_plus":"[D_s+ -> (phi(1020) -> ^mu+ mu-) pi+]CC",
+ "mu_minus":"[D_s+ -> (phi(1020) -> mu+ ^mu-) pi+]CC",
+
+
+})
+
+Ds_OfflineTree.Ds.addTupleTool('TupleToolDecayTreeFitter/ConsD')
+
+#Ds_OfflineTree.Ds.ConsD.constrainToOriginVertex = True
+Ds_OfflineTree.Ds.ConsD.Verbose = True
+Ds_OfflineTree.Ds.ConsD.daughtersToConstrain = ['phi(1020)']
+Ds_OfflineTree.Ds.ConsD.UpdateDaughters = True
+
+decay_trees.append(Ds_OfflineTree)
+
+# Lb_SL_OfflineTree_WS = DecayTreeTuple("Lb_SL_OfflineTree_WS")
+# Lb_SL_OfflineTree_WS.Inputs = ["Phys/Lb_SL_WS/Particles"]
+# Lb_SL_OfflineTree_WS.Decay = decay0_WS
+# Lb_SL_OfflineTree_WS.addBranches({
+# "Lambda_b0": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "Lambda_c_STAR": "[Lambda_b0 -> ^(Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "mu": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ pi-) ^mu+ ]CC",
+# "Lambda_c": "[Lambda_b0 -> (Lambda_c(2595)+ -> ^(Lambda_c+ -> K- p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_plus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) ^pi+ pi-) mu+ ]CC",
+# "pi_minus": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ pi+ ) pi+ ^pi-) mu+ ]CC",
+# "p": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- ^p+ pi+ ) pi+ pi-) mu+ ]CC",
+# "pi_Lc": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> K- p+ ^pi+ ) pi+ pi-) mu+ ]CC",
+# "K": "[Lambda_b0 -> (Lambda_c(2595)+ -> (Lambda_c+ -> ^K- p+ pi+ ) pi+ pi-) mu+ ]CC"
+# })
+# decay_trees.append(Lb_SL_OfflineTree_WS)
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Lambda_b from wrong sign Lambda_c* tree
+
+# Double charm tree
+
+
+from Configurables import TupleToolNeutrinoReco
+from Configurables import TupleToolKinematic
+from Configurables import TupleToolGeometry
+from Configurables import TupleToolTrackIsolation
+from Configurables import TupleToolANNPID
+# from Configurables import Rich__Rec__DetailedTrSegMakerFromRecoTracks
+# from Configurables import TupleToolRICHPid
+#from Configurables import TupleToolApplyIsolation
+
+#from Configurables import TupleToolSLTools
+
+for DTT in decay_trees:
+ DTT.ToolList = [
+ "TupleToolKinematic",
+ "TupleToolGeometry",
+ "TupleToolTrackInfo",
+ "TupleToolEventInfo",
+ "TupleToolRecoStats",
+ "TupleToolANNPID",
+ "TupleToolPid",
+ # "TupleToolMCTruth",
+ # 'TupleToolTrigger',
+ # 'TupleToolTISTOS',
+ # 'TupleToolRICHPid',
+ ]
+ # DTT.pi_plus.addTool(TupleToolANNPID,name='TupleToolANNPID')
+ # DTT.pi_plus.ToolList+=['TupleToolANNPID']
+ # DTT.pi_plus.TupleToolANNPID.ANNPIDTunes = ['MC15TuneV1','MC15TuneDNNV1','MC15TuneFLAT4dV1','MC15TuneCatBoostV1']
+ # print 'PID tunes',DTT.pi_plus.TupleToolANNPID.ANNPIDTunes
+ DTT.Ds.addTool(TupleToolTrigger, name='TupleToolTrigger')
+ DTT.Ds.TupleToolTrigger.Verbose = True
+ DTT.Ds.TupleToolTrigger.TriggerList = trigger_list
+ DTT.Ds.addTool(TupleToolTISTOS, name='TupleToolTISTOS')
+ DTT.Ds.TupleToolTISTOS.Verbose = True
+ DTT.Ds.TupleToolTISTOS.TriggerList = trigger_list
+ DTT.Ds.ToolList += ["TupleToolTISTOS"]
+ #DTT.Lambda_b0.addTool(TupleToolSLTools, name='TupleToolSLTools')
+ #DTT.Lambda_b0.ToolList += ["TupleToolSLTools"]
+
+# Isolation from the R(D*) SL analysis
+#for DTT in decay_trees:
+
+ #toolIso = DTT.Lambda_b0.addTupleTool(
+ # TupleToolApplyIsolation, name="TupleToolApplyIsolation")
+ #toolIso.WeightsFile = "weights.xml"
+ #DTT.Lambda_b0.ToolList += ["TupleToolApplyIsolation/TupleToolApplyIsolation"]
+
+# Isolation from the R(D*) SL analysis (adding VELO tracks)
+# from Configurables import ChargedProtoParticleMaker
+# veloprotos = ChargedProtoParticleMaker("myProtoPMaker")
+# veloprotos.Inputs = ["Rec/Track/Best"]
+# veloprotos.Output = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# DaVinci().appendToMainSequence([veloprotos])
+from Configurables import ProtoParticleCALOFilter, CombinedParticleMaker, NoPIDsParticleMaker
+from CommonParticles.Utils import *
+# algorithm = NoPIDsParticleMaker('StdNoPIDsVeloPions', Particle='pion',)
+# algorithm.Input = "Rec/ProtoP/myProtoPMaker/ProtoParticles"
+# selector = trackSelector(algorithm, trackTypes=['Velo'])
+# locations = updateDoD(algorithm)
+# DaVinci().appendToMainSequence([algorithm])
+from PhysConf.Filters import LoKi_Filters
+# fltrs = LoKi_Filters(
+# STRIP_Code = "HLT_PASS('Strippingb2LcMuXB2DMuForTauMuLineDecision')")
+##################################################
+from Configurables import DaVinci
+# DaVinci().EventPreFilters = fltrs.filters('Filters')
+DaVinci().EvtMax = -1 # # Number of events set to all of them
+DaVinci().SkipEvents = 0 # Events to skip
+DaVinci().PrintFreq = 10000
+DaVinci().Simulation = True
+DaVinci().Lumi = True
+DaVinci().RootInTES = '/Event/AllStreams'
+DaVinci().InputType = 'MDST'
+#DaVinci().appendToMainSequence([muons_from_Lc_sel_seq.sequence(),
+# muons_from_Lc_sel_WC_seq.sequence()])
+DaVinci().appendToMainSequence([Ds_phi_pi_sel_seq.sequence()])
+DaVinci().appendToMainSequence(decay_trees)
+
+DaVinci().DDDBtag= "dddb-20170721-3"
+DaVinci().CondDBtag= "sim-20170721-2-vc-md100"
+
+#DaVinci().UserAlgorithms.extend(decay_trees)
+
+DaVinci().TupleFile = "Ds_mumupi.root"
+#DaVinci().Input = ['PFN:/disk/gangadir/davide/workspace/davide/00071953_00000001_7.AllStreams.mdst']
+#
+
+DaVinci().DataType = "2016"
diff --git a/productions/online_test_mc/first.py b/productions/online_test_mc/first.py
new file mode 100644
index 0000000..d21bd0f
--- /dev/null
+++ b/productions/online_test_mc/first.py
@@ -0,0 +1,44 @@
+import sys
+
+import GaudiPython as GP
+from GaudiConf import IOHelper
+from Configurables import DaVinci
+
+dv = DaVinci()
+dv.DataType = '2016'
+dv.Simulation = True
+
+# Pass file to open as first command line argument
+inputFiles = [sys.argv[-1]]
+IOHelper('ROOT').inputFiles(inputFiles)
+
+appMgr = GP.AppMgr()
+evt = appMgr.evtsvc()
+
+appMgr.run(1)
+evt.dump()
+
+
+def nodes(evt, node=None):
+ """List all nodes in `evt`"""
+ nodenames = []
+
+ if node is None:
+ root = evt.retrieveObject('')
+ node = root.registry()
+
+ if node.object():
+ nodenames.append(node.identifier())
+ for l in evt.leaves(node):
+ # skip a location that takes forever to load
+ # XXX How to detect these automatically??
+ if 'Swum' in l.identifier():
+ continue
+
+ temp = evt[l.identifier()]
+ nodenames += nodes(evt, l)
+
+ else:
+ nodenames.append(node.identifier())
+
+ return nodenames
diff --git a/productions/online_test_mc/summary.xml b/productions/online_test_mc/summary.xml
new file mode 100644
index 0000000..05ec376
--- /dev/null
+++ b/productions/online_test_mc/summary.xml
@@ -0,0 +1,17 @@
+
+
+
+ True
+ finalize
+
+ 2233024.0
+
+
+ 1
+
+
+
+ 2
+
+
+